From bf6971c0b5972ca420a83a7b069b4674702beb1f Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Wed, 17 Nov 2021 17:41:10 +0100 Subject: [PATCH 001/114] [Lens] Allow palette configuration for metric (#116170) * :sparkles: Metrics have colors * :label: Fix type issues * :bug: Fix dimension removal bug * :bug: Fix initial stops computation * :bug: Fix various bugs + unit tests * :white_check_mark: Add functional tests * :bug: Fix the reverse bug and failing tests * bug: Fix custom stops issue with attached tests * :bug: Reintroduced continuity logic and fixed 2 stops problem * :bug: Fix palette display + default palette behaviour * :bug: Fix edge case when switching to default palettes * :lipstick: Display custom stop when available or uniform palette for defaults * :lipstick: Integrated feedback * commit using @elastic.co * commit using @elastic.co * :camera_flash: Updated snapshots * Update x-pack/plugins/lens/public/metric_visualization/expression.scss Co-authored-by: Michael Marcialis * :ok_hand: integrated feedback * :bug: Revert codeline change * :feature: Add palette display on field dimension * :white_check_mark: Fix functional test Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Michael Marcialis --- .../expressions/metric_chart/metric_chart.ts | 33 +- .../common/expressions/metric_chart/types.ts | 13 +- .../dimension_editor.scss | 3 + .../dimension_editor.test.tsx | 224 +++++++++++++ .../metric_visualization/dimension_editor.tsx | 224 +++++++++++++ .../metric_visualization/expression.scss | 13 +- .../metric_visualization/expression.test.tsx | 308 +++++++++++++++--- .../metric_visualization/expression.tsx | 80 ++++- .../lens/public/metric_visualization/index.ts | 13 +- .../metric_visualization/palette_config.tsx | 18 + .../visualization.test.ts | 95 +++++- .../metric_visualization/visualization.tsx | 77 ++++- .../coloring/palette_configuration.test.tsx | 11 + .../coloring/palette_configuration.tsx | 182 ++++++----- .../coloring/palette_picker.tsx | 7 +- .../shared_components/coloring/utils.ts | 15 +- x-pack/test/functional/apps/lens/heatmap.ts | 8 +- x-pack/test/functional/apps/lens/index.ts | 1 + x-pack/test/functional/apps/lens/metrics.ts | 59 ++++ .../test/functional/page_objects/lens_page.ts | 16 + 20 files changed, 1214 insertions(+), 186 deletions(-) create mode 100644 x-pack/plugins/lens/public/metric_visualization/dimension_editor.scss create mode 100644 x-pack/plugins/lens/public/metric_visualization/dimension_editor.test.tsx create mode 100644 x-pack/plugins/lens/public/metric_visualization/dimension_editor.tsx create mode 100644 x-pack/plugins/lens/public/metric_visualization/palette_config.tsx create mode 100644 x-pack/test/functional/apps/lens/metrics.ts diff --git a/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts b/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts index 6676ead2bca9e..4a79644d7fe54 100644 --- a/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts +++ b/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { i18n } from '@kbn/i18n'; +import { ColorMode } from '../../../../../../src/plugins/charts/common'; import type { ExpressionFunctionDefinition } from '../../../../../../src/plugins/expressions/common'; import type { LensMultiTable } from '../../types'; import type { MetricConfig } from './types'; @@ -32,7 +34,9 @@ export const metricChart: ExpressionFunctionDefinition< args: { title: { types: ['string'], - help: 'The chart title.', + help: i18n.translate('xpack.lens.metric.title.help', { + defaultMessage: 'The chart title.', + }), }, description: { types: ['string'], @@ -40,17 +44,38 @@ export const metricChart: ExpressionFunctionDefinition< }, metricTitle: { types: ['string'], - help: 'The title of the metric shown.', + help: i18n.translate('xpack.lens.metric.metricTitle.help', { + defaultMessage: 'The title of the metric shown.', + }), }, accessor: { types: ['string'], - help: 'The column whose value is being displayed', + help: i18n.translate('xpack.lens.metric.accessor.help', { + defaultMessage: 'The column whose value is being displayed', + }), }, mode: { types: ['string'], options: ['reduced', 'full'], default: 'full', - help: 'The display mode of the chart - reduced will only show the metric itself without min size', + help: i18n.translate('xpack.lens.metric.mode.help', { + defaultMessage: + 'The display mode of the chart - reduced will only show the metric itself without min size', + }), + }, + colorMode: { + types: ['string'], + default: `"${ColorMode.None}"`, + options: [ColorMode.None, ColorMode.Labels, ColorMode.Background], + help: i18n.translate('xpack.lens.metric.colorMode.help', { + defaultMessage: 'Which part of metric to color', + }), + }, + palette: { + types: ['palette'], + help: i18n.translate('xpack.lens.metric.palette.help', { + defaultMessage: 'Provides colors for the values', + }), }, }, inputTypes: ['lens_multitable'], diff --git a/x-pack/plugins/lens/common/expressions/metric_chart/types.ts b/x-pack/plugins/lens/common/expressions/metric_chart/types.ts index 65a72632a5491..8a52506a83ec8 100644 --- a/x-pack/plugins/lens/common/expressions/metric_chart/types.ts +++ b/x-pack/plugins/lens/common/expressions/metric_chart/types.ts @@ -5,17 +5,26 @@ * 2.0. */ -import { LayerType } from '../../types'; +import { + ColorMode, + CustomPaletteState, + PaletteOutput, +} from '../../../../../../src/plugins/charts/common'; +import { CustomPaletteParams, LayerType } from '../../types'; export interface MetricState { layerId: string; accessor?: string; layerType: LayerType; + colorMode?: ColorMode; + palette?: PaletteOutput; } -export interface MetricConfig extends MetricState { +export interface MetricConfig extends Omit { title: string; description: string; metricTitle: string; mode: 'reduced' | 'full'; + colorMode: ColorMode; + palette: PaletteOutput; } diff --git a/x-pack/plugins/lens/public/metric_visualization/dimension_editor.scss b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.scss new file mode 100644 index 0000000000000..d7664b9d2da16 --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.scss @@ -0,0 +1,3 @@ +.lnsDynamicColoringRow { + align-items: center; +} \ No newline at end of file diff --git a/x-pack/plugins/lens/public/metric_visualization/dimension_editor.test.tsx b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.test.tsx new file mode 100644 index 0000000000000..ef0687a2cd519 --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.test.tsx @@ -0,0 +1,224 @@ +/* + * Copyright 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 { EuiButtonGroup } from '@elastic/eui'; +import { FramePublicAPI, VisualizationDimensionEditorProps } from '../types'; +import { createMockDatasource, createMockFramePublicAPI } from '../mocks'; +import { mountWithIntl } from '@kbn/test/jest'; +import { MetricDimensionEditor } from './dimension_editor'; +import { chartPluginMock } from 'src/plugins/charts/public/mocks'; +import { ColorMode, PaletteOutput, PaletteRegistry } from 'src/plugins/charts/public'; +import { act } from 'react-dom/test-utils'; +import { CustomizablePalette, PalettePanelContainer } from '../shared_components'; +import { CustomPaletteParams, layerTypes } from '../../common'; +import { MetricState } from '../../common/expressions'; + +// mocking random id generator function +jest.mock('@elastic/eui', () => { + const original = jest.requireActual('@elastic/eui'); + + return { + ...original, + htmlIdGenerator: (fn: unknown) => { + let counter = 0; + return () => counter++; + }, + }; +}); + +function paletteParamsContaining(paramsToCheck: PaletteOutput['params']) { + return expect.objectContaining({ + palette: expect.objectContaining({ + params: expect.objectContaining(paramsToCheck), + }), + }); +} + +describe('metric dimension editor', () => { + let frame: FramePublicAPI; + let state: MetricState; + let setState: (newState: MetricState) => void; + let props: VisualizationDimensionEditorProps & { + paletteService: PaletteRegistry; + }; + + function testState(): MetricState { + return { + layerId: 'first', + layerType: layerTypes.DATA, + accessor: 'foo', + }; + } + + beforeEach(() => { + state = testState(); + frame = createMockFramePublicAPI(); + frame.datasourceLayers = { + first: createMockDatasource('test').publicAPIMock, + }; + frame.activeData = { + first: { + type: 'datatable', + columns: [ + { + id: 'foo', + name: 'foo', + meta: { + type: 'string', + }, + }, + ], + rows: [{ foo: 5 }], + }, + }; + setState = jest.fn(); + props = { + accessor: 'foo', + frame, + groupId: 'columns', + layerId: 'first', + state, + setState, + paletteService: chartPluginMock.createPaletteRegistry(), + panelRef: React.createRef(), + }; + // add a div to the ref + props.panelRef.current = document.createElement('div'); + }); + + it('should not show the dynamic coloring option for non numeric columns', () => { + const instance = mountWithIntl(); + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_groups"]').exists()).toBe( + false + ); + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_palette"]').exists()).toBe( + false + ); + }); + + it('should set the dynamic coloring default to "none"', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + const instance = mountWithIntl(); + expect( + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('idSelected') + ).toEqual(expect.stringContaining(ColorMode.None)); + + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_palette"]').exists()).toBe( + false + ); + }); + + it('should show the dynamic palette display ony when colorMode is different from "none"', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + state.colorMode = ColorMode.Labels; + const instance = mountWithIntl(); + expect( + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('idSelected') + ).toEqual(expect.stringContaining(ColorMode.Labels)); + + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_palette"]').exists()).toBe( + true + ); + }); + + it('should prefill the palette stops with some colors when enabling coloring', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + const instance = mountWithIntl(); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('onChange')!(ColorMode.Labels); + }); + instance.update(); + + expect(props.setState).toHaveBeenCalledWith( + paletteParamsContaining({ + stops: expect.any(Array), // shallow check it's ok + }) + ); + }); + + it('should open the palette panel when "Settings" link is clicked in the palette input', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + state.colorMode = ColorMode.Background; + const instance = mountWithIntl(); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_trigger"]') + .first() + .simulate('click'); + }); + instance.update(); + + expect(instance.find(PalettePanelContainer).exists()).toBe(true); + }); + + it('should provide have a special data min/max for zero metric value', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + frame.activeData!.first.rows[0].foo = 0; + state.colorMode = ColorMode.Background; + const instance = mountWithIntl(); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_trigger"]') + .first() + .simulate('click'); + }); + instance.update(); + + expect(instance.find(CustomizablePalette).prop('dataBounds')).toEqual({ min: -50, max: 100 }); + }); + + it('should work for negative metric value', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + frame.activeData!.first.rows[0].foo = -1; + state.colorMode = ColorMode.Background; + const instance = mountWithIntl(); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_trigger"]') + .first() + .simulate('click'); + }); + instance.update(); + + expect(instance.find(CustomizablePalette).prop('dataBounds')).toEqual({ min: -2, max: 0 }); + }); + + it('should apply an initial range with shifted stops (first stop === rangeMin)', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + frame.activeData!.first.rows[0].foo = 5; + state.colorMode = ColorMode.None; + state.palette = undefined; + const instance = mountWithIntl(); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('onChange')!(ColorMode.Background); + }); + + expect(setState).toHaveBeenCalledWith( + paletteParamsContaining({ + stops: expect.arrayContaining([]), + }) + ); + }); +}); diff --git a/x-pack/plugins/lens/public/metric_visualization/dimension_editor.tsx b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.tsx new file mode 100644 index 0000000000000..fd804ee5a82ad --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.tsx @@ -0,0 +1,224 @@ +/* + * Copyright 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 { + EuiButtonEmpty, + EuiButtonGroup, + EuiColorPaletteDisplay, + EuiFlexGroup, + EuiFlexItem, + EuiFormRow, + htmlIdGenerator, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React, { useCallback, useState } from 'react'; +import { ColorMode } from '../../../../../src/plugins/charts/common'; +import type { PaletteRegistry } from '../../../../../src/plugins/charts/public'; +import { isNumericFieldForDatatable, MetricState } from '../../common/expressions'; +import { + applyPaletteParams, + CustomizablePalette, + CUSTOM_PALETTE, + FIXED_PROGRESSION, + getStopsForFixedMode, + PalettePanelContainer, +} from '../shared_components'; +import type { VisualizationDimensionEditorProps } from '../types'; +import { defaultPaletteParams } from './palette_config'; + +import './dimension_editor.scss'; + +const idPrefix = htmlIdGenerator()(); + +export function MetricDimensionEditor( + props: VisualizationDimensionEditorProps & { + paletteService: PaletteRegistry; + } +) { + const { state, setState, frame, accessor } = props; + const [isPaletteOpen, setIsPaletteOpen] = useState(false); + + const togglePalette = useCallback(() => { + setIsPaletteOpen(!isPaletteOpen); + }, [isPaletteOpen]); + + const currentData = frame.activeData?.[state.layerId]; + const [firstRow] = currentData?.rows || []; + + if (accessor == null || firstRow == null || !isNumericFieldForDatatable(currentData, accessor)) { + return null; + } + const currentColorMode = state?.colorMode || ColorMode.None; + const hasDynamicColoring = currentColorMode !== ColorMode.None; + + const currentMinMax = { + min: Math.min(firstRow[accessor] * 2, firstRow[accessor] === 0 ? -50 : 0), + // if value is 0, then fallback to 100 as last resort + max: Math.max(firstRow[accessor] * 2, firstRow[accessor] === 0 ? 100 : 0), + }; + + const activePalette = state?.palette || { + type: 'palette', + name: defaultPaletteParams.name, + params: { + ...defaultPaletteParams, + stops: undefined, + colorStops: undefined, + rangeMin: currentMinMax.min, + rangeMax: (currentMinMax.max * 3) / 4, + }, + }; + + // need to tell the helper that the colorStops are required to display + const displayStops = applyPaletteParams(props.paletteService, activePalette, currentMinMax); + + return ( + <> + + { + const newMode = id.replace(idPrefix, '') as ColorMode; + const params: Partial = { + colorMode: newMode, + }; + if (!state?.palette && newMode !== ColorMode.None) { + params.palette = { + ...activePalette, + params: { + ...activePalette.params, + // align this initial computation with same format for default + // palettes in the panel. This to avoid custom computation issue with metric + // fake data range + stops: displayStops.map((v, i, array) => ({ + ...v, + stop: currentMinMax.min + (i === 0 ? 0 : array[i - 1].stop), + })), + }, + }; + } + // clear up when switching to no coloring + if (state?.palette && newMode === ColorMode.None) { + params.palette = undefined; + } + setState({ + ...state, + ...params, + }); + }} + /> + + {hasDynamicColoring && ( + + + + color) + } + type={FIXED_PROGRESSION} + onClick={togglePalette} + /> + + + + {i18n.translate('xpack.lens.paletteTableGradient.customize', { + defaultMessage: 'Edit', + })} + + + { + // if the new palette is not custom, replace the rangeMin with the artificial one + if ( + newPalette.name !== CUSTOM_PALETTE && + newPalette.params && + newPalette.params.rangeMin !== currentMinMax.min + ) { + newPalette.params.rangeMin = currentMinMax.min; + } + setState({ + ...state, + palette: newPalette, + }); + }} + showRangeTypeSelector={false} + /> + + + + + )} + + ); +} diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.scss b/x-pack/plugins/lens/public/metric_visualization/expression.scss index 2339031539997..ad2a175b5b5fc 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.scss +++ b/x-pack/plugins/lens/public/metric_visualization/expression.scss @@ -6,4 +6,15 @@ width: 100%; height: 100%; text-align: center; -} + + .lnsMetricExpression__value { + font-size: $euiSizeXXL * 2; + font-weight: $euiFontWeightSemiBold; + border-radius: $euiBorderRadius; + padding: 0 $euiSize; + } + + .lnsMetricExpression__title { + font-size: $euiSizeXL; + } +} \ No newline at end of file diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx b/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx index baa0a5adc3b70..56bb9235aa3a1 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx @@ -13,6 +13,8 @@ import { createMockExecutionContext } from '../../../../../src/plugins/expressio import type { IFieldFormat } from '../../../../../src/plugins/field_formats/common'; import { layerTypes } from '../../common'; import type { LensMultiTable } from '../../common'; +import { IUiSettingsClient } from 'kibana/public'; +import { ColorMode } from 'src/plugins/charts/common'; function sampleArgs() { const data: LensMultiTable = { @@ -43,6 +45,8 @@ function sampleArgs() { description: 'Fancy chart description', metricTitle: 'My fanci metric chart', mode: 'full', + colorMode: ColorMode.None, + palette: { type: 'palette', name: 'status' }, }; const noAttributesArgs: MetricConfig = { @@ -53,6 +57,8 @@ function sampleArgs() { description: '', metricTitle: 'My fanci metric chart', mode: 'full', + colorMode: ColorMode.None, + palette: { type: 'palette', name: 'status' }, }; return { data, args, noAttributesArgs }; @@ -82,6 +88,7 @@ describe('metric_expression', () => { data={data} args={args} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -92,23 +99,15 @@ describe('metric_expression', () => { key="3" >
3
My fanci metric chart
@@ -127,6 +126,7 @@ describe('metric_expression', () => { data={data} args={args} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -137,23 +137,15 @@ describe('metric_expression', () => { key="last" >
last
My fanci metric chart
@@ -171,6 +163,7 @@ describe('metric_expression', () => { data={data} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -181,23 +174,15 @@ describe('metric_expression', () => { key="3" >
3
My fanci metric chart
@@ -215,6 +200,7 @@ describe('metric_expression', () => { data={data} args={{ ...noAttributesArgs, mode: 'reduced' }} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -225,13 +211,9 @@ describe('metric_expression', () => { key="3" >
3
@@ -249,6 +231,7 @@ describe('metric_expression', () => { data={{ ...data, tables: {} }} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -273,6 +256,7 @@ describe('metric_expression', () => { data={data} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -297,6 +281,7 @@ describe('metric_expression', () => { data={data} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -307,23 +292,15 @@ describe('metric_expression', () => { key="0" >
0
My fanci metric chart
@@ -336,8 +313,237 @@ describe('metric_expression', () => { const { data, args } = sampleArgs(); const factory = jest.fn(() => ({ convert: (x) => x } as IFieldFormat)); - shallow(); + shallow( + + ); expect(factory).toHaveBeenCalledWith({ id: 'percent', params: { format: '0.000%' } }); }); + + test('it renders the correct color styling for numeric value if coloring config is passed', () => { + const { data, args } = sampleArgs(); + + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + }; + + const instance = shallow( + ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect(instance.find('[data-test-subj="lns_metric_value"]').first().prop('style')).toEqual( + expect.objectContaining({ + color: 'red', + }) + ); + }); + + test('it renders no color styling for numeric value if value is lower then rangeMin and continuity is "above"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = -1; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'above', + }; + + const instance = shallow( + ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + test('it renders no color styling for numeric value if value is higher than rangeMax and continuity is "below"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = 500; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'below', + }; + + const instance = shallow( + ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + + test('it renders no color styling for numeric value if value is higher than rangeMax and continuity is "none"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = 500; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'none', + }; + + const instance = shallow( + ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + + test('it renders no color styling for numeric value if value is lower than rangeMin and continuity is "none"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = -1; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'none', + }; + + const instance = shallow( + ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + + test('it renders the color styling for numeric value if value is higher than rangeMax and continuity is "all"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = 500; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'all', + }; + + const instance = shallow( + ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect(instance.find('[data-test-subj="lns_metric_value"]').first().prop('style')).toEqual( + expect.objectContaining({ + color: 'green', + }) + ); + }); + + test('it renders the color styling for numeric value if value is lower than rangeMin and continuity is "all"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = -1; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'all', + }; + + const instance = shallow( + ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect(instance.find('[data-test-subj="lns_metric_value"]').first().prop('style')).toEqual( + expect.objectContaining({ + color: 'red', + }) + ); + }); }); }); diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.tsx b/x-pack/plugins/lens/public/metric_visualization/expression.tsx index 6ec9e94bde585..fd4b4f20c5c50 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/expression.tsx @@ -9,20 +9,27 @@ import './expression.scss'; import { I18nProvider } from '@kbn/i18n/react'; import React from 'react'; import ReactDOM from 'react-dom'; +import { IUiSettingsClient } from 'kibana/public'; import type { ExpressionRenderDefinition, IInterpreterRenderHandlers, } from '../../../../../src/plugins/expressions/public'; +import { + ColorMode, + CustomPaletteState, + PaletteOutput, +} from '../../../../../src/plugins/charts/public'; import { AutoScale } from './auto_scale'; import { VisualizationContainer } from '../visualization_container'; -import { EmptyPlaceholder } from '../shared_components'; +import { EmptyPlaceholder, getContrastColor } from '../shared_components'; import { LensIconChartMetric } from '../assets/chart_metric'; import type { FormatFactory } from '../../common'; import type { MetricChartProps } from '../../common/expressions'; export type { MetricChartProps, MetricState, MetricConfig } from '../../common/expressions'; export const getMetricChartRenderer = ( - formatFactory: FormatFactory + formatFactory: FormatFactory, + uiSettings: IUiSettingsClient ): ExpressionRenderDefinition => ({ name: 'lens_metric_chart_renderer', displayName: 'Metric chart', @@ -32,7 +39,7 @@ export const getMetricChartRenderer = ( render: (domNode: Element, config: MetricChartProps, handlers: IInterpreterRenderHandlers) => { ReactDOM.render( - + , domNode, () => { @@ -43,12 +50,61 @@ export const getMetricChartRenderer = ( }, }); +function getColorStyling( + value: number, + colorMode: ColorMode, + palette: PaletteOutput | undefined, + isDarkTheme: boolean +) { + if ( + colorMode === ColorMode.None || + !palette?.params || + !palette?.params.colors?.length || + isNaN(value) + ) { + return {}; + } + + const { continuity = 'above', rangeMin, stops, colors } = palette.params; + const penultimateStop = stops[stops.length - 2]; + + if (continuity === 'none' && (value < rangeMin || value > penultimateStop)) { + return {}; + } + if (continuity === 'below' && value > penultimateStop) { + return {}; + } + if (continuity === 'above' && value < rangeMin) { + return {}; + } + const cssProp = colorMode === ColorMode.Background ? 'backgroundColor' : 'color'; + const rawIndex = stops.findIndex((v) => v > value); + + let colorIndex = rawIndex; + if (['all', 'below'].includes(continuity) && value < rangeMin && colorIndex < 0) { + colorIndex = 0; + } + if (['all', 'above'].includes(continuity) && value > penultimateStop && colorIndex < 0) { + colorIndex = stops.length - 1; + } + + const color = colors[colorIndex]; + const styling = { + [cssProp]: color, + }; + if (colorMode === ColorMode.Background && color) { + styling.color = getContrastColor(color, isDarkTheme); + } + return styling; +} + export function MetricChart({ data, args, formatFactory, -}: MetricChartProps & { formatFactory: FormatFactory }) { - const { metricTitle, accessor, mode } = args; + uiSettings, +}: MetricChartProps & { formatFactory: FormatFactory; uiSettings: IUiSettingsClient }) { + const { metricTitle, accessor, mode, colorMode, palette } = args; const firstTable = Object.values(data.tables)[0]; const getEmptyState = () => ( @@ -66,27 +122,29 @@ export function MetricChart({ if (!column || !row) { return getEmptyState(); } + const rawValue = row[accessor]; // NOTE: Cardinality and Sum never receives "null" as value, but always 0, even for empty dataset. // Mind falsy values here as 0! - const shouldShowResults = row[accessor] != null; - if (!shouldShowResults) { + if (!['number', 'string'].includes(typeof rawValue)) { return getEmptyState(); } const value = column && column.meta?.params - ? formatFactory(column.meta?.params).convert(row[accessor]) - : Number(Number(row[accessor]).toFixed(3)).toString(); + ? formatFactory(column.meta?.params).convert(rawValue) + : Number(Number(rawValue).toFixed(3)).toString(); + + const color = getColorStyling(rawValue, colorMode, palette, uiSettings.get('theme:darkMode')); return ( -
+
{value}
{mode === 'full' && ( -
+
{metricTitle}
)} diff --git a/x-pack/plugins/lens/public/metric_visualization/index.ts b/x-pack/plugins/lens/public/metric_visualization/index.ts index 20c25b285bd5b..bff5f71f8ba1d 100644 --- a/x-pack/plugins/lens/public/metric_visualization/index.ts +++ b/x-pack/plugins/lens/public/metric_visualization/index.ts @@ -7,6 +7,7 @@ import type { CoreSetup } from 'kibana/public'; import type { ExpressionsSetup } from '../../../../../src/plugins/expressions/public'; +import type { ChartsPluginSetup } from '../../../../../src/plugins/charts/public'; import type { EditorFrameSetup } from '../types'; import type { FormatFactory } from '../../common'; @@ -14,18 +15,20 @@ export interface MetricVisualizationPluginSetupPlugins { expressions: ExpressionsSetup; formatFactory: FormatFactory; editorFrame: EditorFrameSetup; + charts: ChartsPluginSetup; } export class MetricVisualization { setup( - _core: CoreSetup | null, - { expressions, formatFactory, editorFrame }: MetricVisualizationPluginSetupPlugins + core: CoreSetup, + { expressions, formatFactory, editorFrame, charts }: MetricVisualizationPluginSetupPlugins ) { editorFrame.registerVisualization(async () => { - const { metricVisualization, getMetricChartRenderer } = await import('../async_services'); + const { getMetricVisualization, getMetricChartRenderer } = await import('../async_services'); + const palettes = await charts.palettes.getPalettes(); - expressions.registerRenderer(() => getMetricChartRenderer(formatFactory)); - return metricVisualization; + expressions.registerRenderer(() => getMetricChartRenderer(formatFactory, core.uiSettings)); + return getMetricVisualization({ paletteService: palettes }); }); } } diff --git a/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx b/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx new file mode 100644 index 0000000000000..59147a33963d1 --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { RequiredPaletteParamTypes } from '../../common'; +import { defaultPaletteParams as sharedDefaultParams } from '../shared_components/'; + +export const DEFAULT_PALETTE_NAME = 'status'; +export const DEFAULT_COLOR_STEPS = 3; +export const defaultPaletteParams: RequiredPaletteParamTypes = { + ...sharedDefaultParams, + name: DEFAULT_PALETTE_NAME, + rangeType: 'number', + steps: DEFAULT_COLOR_STEPS, +}; diff --git a/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts b/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts index ef9d7959ed109..889b711739fb3 100644 --- a/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts +++ b/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts @@ -5,12 +5,14 @@ * 2.0. */ -import { metricVisualization } from './visualization'; +import { getMetricVisualization } from './visualization'; import { MetricState } from '../../common/expressions'; import { layerTypes } from '../../common'; import { createMockDatasource, createMockFramePublicAPI } from '../mocks'; import { generateId } from '../id_generator'; import { DatasourcePublicAPI, FramePublicAPI } from '../types'; +import { chartPluginMock } from 'src/plugins/charts/public/mocks'; +import { ColorMode } from 'src/plugins/charts/common'; jest.mock('../id_generator'); @@ -32,6 +34,10 @@ function mockFrame(): FramePublicAPI { }; } +const metricVisualization = getMetricVisualization({ + paletteService: chartPluginMock.createPaletteRegistry(), +}); + describe('metric_visualization', () => { describe('#initialize', () => { it('loads default state', () => { @@ -110,6 +116,54 @@ describe('metric_visualization', () => { ], }); }); + + it('should show the palette when metric has coloring enabled', () => { + expect( + metricVisualization.getConfiguration({ + state: { + accessor: 'a', + layerId: 'l1', + layerType: layerTypes.DATA, + palette: { + type: 'palette', + name: 'status', + }, + }, + layerId: 'l1', + frame: mockFrame(), + }) + ).toEqual({ + groups: [ + expect.objectContaining({ + accessors: expect.arrayContaining([ + { columnId: 'a', triggerIcon: 'colorBy', palette: [] }, + ]), + }), + ], + }); + }); + + it('should not show the palette when not enabled', () => { + expect( + metricVisualization.getConfiguration({ + state: { + accessor: 'a', + layerId: 'l1', + layerType: layerTypes.DATA, + }, + layerId: 'l1', + frame: mockFrame(), + }) + ).toEqual({ + groups: [ + expect.objectContaining({ + accessors: expect.arrayContaining([ + { columnId: 'a', triggerIcon: undefined, palette: undefined }, + ]), + }), + ], + }); + }); }); describe('#setDimension', () => { @@ -151,6 +205,41 @@ describe('metric_visualization', () => { accessor: undefined, layerId: 'l1', layerType: layerTypes.DATA, + colorMode: ColorMode.None, + palette: undefined, + }); + }); + + it('removes the palette configuration', () => { + expect( + metricVisualization.removeDimension({ + prevState: { + accessor: 'a', + layerId: 'l1', + layerType: layerTypes.DATA, + colorMode: ColorMode.Background, + palette: { + type: 'palette', + name: 'status', + params: { + rangeType: 'number', + stops: [ + { color: 'blue', stop: 100 }, + { color: 'red', stop: 150 }, + ], + }, + }, + }, + layerId: 'l1', + columnId: 'a', + frame: mockFrame(), + }) + ).toEqual({ + accessor: undefined, + layerId: 'l1', + layerType: layerTypes.DATA, + colorMode: ColorMode.None, + palette: undefined, }); }); }); @@ -196,6 +285,9 @@ describe('metric_visualization', () => { "accessor": Array [ "a", ], + "colorMode": Array [ + "None", + ], "description": Array [ "", ], @@ -205,6 +297,7 @@ describe('metric_visualization', () => { "mode": Array [ "full", ], + "palette": Array [], "title": Array [ "", ], diff --git a/x-pack/plugins/lens/public/metric_visualization/visualization.tsx b/x-pack/plugins/lens/public/metric_visualization/visualization.tsx index 5693d67546f99..63da7c4b44317 100644 --- a/x-pack/plugins/lens/public/metric_visualization/visualization.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/visualization.tsx @@ -5,18 +5,26 @@ * 2.0. */ +import React from 'react'; import { i18n } from '@kbn/i18n'; +import { I18nProvider } from '@kbn/i18n/react'; +import { render } from 'react-dom'; import { Ast } from '@kbn/interpreter/common'; +import { ColorMode } from '../../../../../src/plugins/charts/common'; +import { PaletteRegistry } from '../../../../../src/plugins/charts/public'; import { getSuggestions } from './metric_suggestions'; import { LensIconChartMetric } from '../assets/chart_metric'; import { Visualization, OperationMetadata, DatasourcePublicAPI } from '../types'; -import type { MetricState } from '../../common/expressions'; +import type { MetricConfig, MetricState } from '../../common/expressions'; import { layerTypes } from '../../common'; +import { CUSTOM_PALETTE, getStopsForFixedMode, shiftPalette } from '../shared_components'; +import { MetricDimensionEditor } from './dimension_editor'; const toExpression = ( + paletteService: PaletteRegistry, state: MetricState, datasourceLayers: Record, - attributes?: { mode?: 'reduced' | 'full'; title?: string; description?: string } + attributes?: Partial> ): Ast | null => { if (!state.accessor) { return null; @@ -25,6 +33,22 @@ const toExpression = ( const [datasource] = Object.values(datasourceLayers); const operation = datasource && datasource.getOperationForColumnId(state.accessor); + const stops = state.palette?.params?.stops || []; + const isCustomPalette = state.palette?.params?.name === CUSTOM_PALETTE; + + const paletteParams = { + ...state.palette?.params, + colors: stops.map(({ color }) => color), + stops: + isCustomPalette || state.palette?.params?.rangeMax == null + ? stops.map(({ stop }) => stop) + : shiftPalette( + stops, + Math.max(state.palette?.params?.rangeMax, ...stops.map(({ stop }) => stop)) + ).map(({ stop }) => stop), + reverse: false, + }; + return { type: 'expression', chain: [ @@ -34,16 +58,24 @@ const toExpression = ( arguments: { title: [attributes?.title || ''], description: [attributes?.description || ''], - metricTitle: [(operation && operation.label) || ''], + metricTitle: [operation?.label || ''], accessor: [state.accessor], mode: [attributes?.mode || 'full'], + colorMode: [state?.colorMode || ColorMode.None], + palette: + state?.colorMode && state?.colorMode !== ColorMode.None + ? [paletteService.get(CUSTOM_PALETTE).toExpression(paletteParams)] + : [], }, }, ], }; }; - -export const metricVisualization: Visualization = { +export const getMetricVisualization = ({ + paletteService, +}: { + paletteService: PaletteRegistry; +}): Visualization => ({ id: 'lnsMetric', visualizationTypes: [ @@ -97,15 +129,30 @@ export const metricVisualization: Visualization = { }, getConfiguration(props) { + const hasColoring = props.state.palette != null; + const stops = props.state.palette?.params?.stops || []; return { groups: [ { groupId: 'metric', groupLabel: i18n.translate('xpack.lens.metric.label', { defaultMessage: 'Metric' }), layerId: props.state.layerId, - accessors: props.state.accessor ? [{ columnId: props.state.accessor }] : [], + accessors: props.state.accessor + ? [ + { + columnId: props.state.accessor, + triggerIcon: hasColoring ? 'colorBy' : undefined, + palette: hasColoring + ? props.state.palette?.params?.name === CUSTOM_PALETTE + ? getStopsForFixedMode(stops, props.state.palette?.params.colorStops) + : stops.map(({ color }) => color) + : undefined, + }, + ] + : [], supportsMoreColumns: !props.state.accessor, filterOperations: (op: OperationMetadata) => !op.isBucketed && op.dataType === 'number', + enableDimensionEditor: true, required: true, }, ], @@ -129,20 +176,30 @@ export const metricVisualization: Visualization = { } }, - toExpression, + toExpression: (state, datasourceLayers, attributes) => + toExpression(paletteService, state, datasourceLayers, { ...attributes }), toPreviewExpression: (state, datasourceLayers) => - toExpression(state, datasourceLayers, { mode: 'reduced' }), + toExpression(paletteService, state, datasourceLayers, { mode: 'reduced' }), setDimension({ prevState, columnId }) { return { ...prevState, accessor: columnId }; }, removeDimension({ prevState }) { - return { ...prevState, accessor: undefined }; + return { ...prevState, accessor: undefined, colorMode: ColorMode.None, palette: undefined }; + }, + + renderDimensionEditor(domElement, props) { + render( + + + , + domElement + ); }, getErrorMessages(state) { // Is it possible to break it? return undefined; }, -}; +}); diff --git a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx index 120975b5f3859..0840c19495eaa 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx @@ -257,6 +257,17 @@ describe('palette panel', () => { }) ); }); + + it('should not render the switch disabled from props', () => { + const instance = mountWithIntl( + + ); + expect( + instance + .find('[data-test-subj="lnsPalettePanel_dynamicColoring_custom_range_groups"]') + .exists() + ).toBe(false); + }); }); describe('custom stops', () => { diff --git a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx index 0493a212f46de..d1f1bc813deab 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx @@ -73,12 +73,14 @@ export function CustomizablePalette({ setPalette, dataBounds, showContinuity = true, + showRangeTypeSelector = true, }: { palettes: PaletteRegistry; activePalette?: PaletteOutput; setPalette: (palette: PaletteOutput) => void; dataBounds?: { min: number; max: number }; showContinuity?: boolean; + showRangeTypeSelector?: boolean; }) { if (!dataBounds || !activePalette) { return null; @@ -218,98 +220,100 @@ export function CustomizablePalette({ /> )} - - {i18n.translate('xpack.lens.table.dynamicColoring.rangeType.label', { - defaultMessage: 'Value type', - })}{' '} - - - } - display="rowCompressed" - > - + {i18n.translate('xpack.lens.table.dynamicColoring.rangeType.label', { + defaultMessage: 'Value type', + })}{' '} + + } - onChange={(id) => { - const newRangeType = id.replace( - idPrefix, - '' - ) as RequiredPaletteParamTypes['rangeType']; + display="rowCompressed" + > + { + const newRangeType = id.replace( + idPrefix, + '' + ) as RequiredPaletteParamTypes['rangeType']; - const params: CustomPaletteParams = { rangeType: newRangeType }; - const { min: newMin, max: newMax } = getDataMinMax(newRangeType, dataBounds); - const { min: oldMin, max: oldMax } = getDataMinMax( - activePalette.params?.rangeType, - dataBounds - ); - const newColorStops = remapStopsByNewInterval(colorStopsToShow, { - oldInterval: oldMax - oldMin, - newInterval: newMax - newMin, - newMin, - oldMin, - }); - if (isCurrentPaletteCustom) { - const stops = getPaletteStops( - palettes, - { ...activePalette.params, colorStops: newColorStops, ...params }, - { dataBounds } - ); - params.colorStops = newColorStops; - params.stops = stops; - } else { - params.stops = getPaletteStops( - palettes, - { ...activePalette.params, ...params }, - { prevPalette: activePalette.name, dataBounds } + const params: CustomPaletteParams = { rangeType: newRangeType }; + const { min: newMin, max: newMax } = getDataMinMax(newRangeType, dataBounds); + const { min: oldMin, max: oldMax } = getDataMinMax( + activePalette.params?.rangeType, + dataBounds ); - } - // why not use newMin/newMax here? - // That's because there's the concept of continuity to accomodate, where in some scenarios it has to - // take into account the stop value rather than the data value - params.rangeMin = newColorStops[0].stop; - params.rangeMax = newColorStops[newColorStops.length - 1].stop; - setPalette(mergePaletteParams(activePalette, params)); - }} - /> - + const newColorStops = remapStopsByNewInterval(colorStopsToShow, { + oldInterval: oldMax - oldMin, + newInterval: newMax - newMin, + newMin, + oldMin, + }); + if (isCurrentPaletteCustom) { + const stops = getPaletteStops( + palettes, + { ...activePalette.params, colorStops: newColorStops, ...params }, + { dataBounds } + ); + params.colorStops = newColorStops; + params.stops = stops; + } else { + params.stops = getPaletteStops( + palettes, + { ...activePalette.params, ...params }, + { prevPalette: activePalette.name, dataBounds } + ); + } + // why not use newMin/newMax here? + // That's because there's the concept of continuity to accomodate, where in some scenarios it has to + // take into account the stop value rather than the data value + params.rangeMin = newColorStops[0].stop; + params.rangeMax = newColorStops[newColorStops.length - 1].stop; + setPalette(mergePaletteParams(activePalette, params)); + }} + /> + + )} { const colors = getCategoricalColors( - DEFAULT_COLOR_STEPS, + activePalette?.params?.steps || DEFAULT_COLOR_STEPS, id === activePalette?.name ? activePalette?.params : undefined ); return { diff --git a/x-pack/plugins/lens/public/shared_components/coloring/utils.ts b/x-pack/plugins/lens/public/shared_components/coloring/utils.ts index 182e502563cd0..6b61b4e568cf4 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/utils.ts +++ b/x-pack/plugins/lens/public/shared_components/coloring/utils.ts @@ -42,19 +42,19 @@ export function applyPaletteParams> dataBounds: { min: number; max: number } ) { // make a copy of it as they have to be manipulated later on - let displayStops = getPaletteStops(palettes, activePalette?.params || {}, { + const displayStops = getPaletteStops(palettes, activePalette?.params || {}, { dataBounds, defaultPaletteName: activePalette?.name, }); if (activePalette?.params?.reverse && activePalette?.params?.name !== CUSTOM_PALETTE) { - displayStops = reversePalette(displayStops); + return reversePalette(displayStops); } return displayStops; } // Need to shift the Custom palette in order to correctly visualize it when in display mode -function shiftPalette(stops: ColorStop[], max: number) { +export function shiftPalette(stops: ColorStop[], max: number) { // shift everything right and add an additional stop at the end const result = stops.map((entry, i, array) => ({ ...entry, @@ -136,14 +136,16 @@ export function getPaletteStops( // need to generate the palette from the existing controlStops return shiftPalette(activePaletteParams.colorStops, maxValue); } + + const steps = activePaletteParams?.steps || defaultPaletteParams.steps; // generate a palette from predefined ones and customize the domain const colorStopsFromPredefined = palettes .get( prevPalette || activePaletteParams?.name || defaultPaletteName || defaultPaletteParams.name ) - .getCategoricalColors(defaultPaletteParams.steps, otherParams); + .getCategoricalColors(steps, otherParams); - const newStopsMin = mapFromMinValue ? minValue : interval / defaultPaletteParams.steps; + const newStopsMin = mapFromMinValue ? minValue : interval / steps; const stops = remapStopsByNewInterval( colorStopsFromPredefined.map((color, index) => ({ color, stop: index })), @@ -198,7 +200,8 @@ export function isValidColor(colorString: string) { export function roundStopValues(colorStops: ColorStop[]) { return colorStops.map(({ color, stop }) => { - const roundedStop = Number(stop.toFixed(2)); + // when rounding mind to not go in excess, rather use the floor function + const roundedStop = Number((Math.floor(stop * 100) / 100).toFixed(2)); return { color, stop: roundedStop }; }); } diff --git a/x-pack/test/functional/apps/lens/heatmap.ts b/x-pack/test/functional/apps/lens/heatmap.ts index 3f8456e9d75f6..e4f20d075541f 100644 --- a/x-pack/test/functional/apps/lens/heatmap.ts +++ b/x-pack/test/functional/apps/lens/heatmap.ts @@ -130,10 +130,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { // assert legend has changed expect(debugState.legend!.items).to.eql([ - { key: '0 - 8,529.22', name: '0 - 8,529.22', color: '#6092c0' }, - { key: '8,529.22 - 11,335.66', name: '8,529.22 - 11,335.66', color: '#a8bfda' }, - { key: '11,335.66 - 14,142.11', name: '11,335.66 - 14,142.11', color: '#ebeff5' }, - { key: '14,142.11 - 16,948.55', name: '14,142.11 - 16,948.55', color: '#ecb385' }, + { key: '0 - 8,529.21', name: '0 - 8,529.21', color: '#6092c0' }, + { key: '8,529.21 - 11,335.66', name: '8,529.21 - 11,335.66', color: '#a8bfda' }, + { key: '11,335.66 - 14,142.1', name: '11,335.66 - 14,142.1', color: '#ebeff5' }, + { key: '14,142.1 - 16,948.55', name: '14,142.1 - 16,948.55', color: '#ecb385' }, { key: '≥ 16,948.55', name: '≥ 16,948.55', color: '#e7664c' }, ]); }); diff --git a/x-pack/test/functional/apps/lens/index.ts b/x-pack/test/functional/apps/lens/index.ts index 26fb100adf133..e63aadf3451d7 100644 --- a/x-pack/test/functional/apps/lens/index.ts +++ b/x-pack/test/functional/apps/lens/index.ts @@ -57,6 +57,7 @@ export default function ({ getService, loadTestFile, getPageObjects }: FtrProvid loadTestFile(require.resolve('./geo_field')); loadTestFile(require.resolve('./formula')); loadTestFile(require.resolve('./heatmap')); + loadTestFile(require.resolve('./metrics')); loadTestFile(require.resolve('./reference_lines')); loadTestFile(require.resolve('./inspector')); loadTestFile(require.resolve('./error_handling')); diff --git a/x-pack/test/functional/apps/lens/metrics.ts b/x-pack/test/functional/apps/lens/metrics.ts new file mode 100644 index 0000000000000..4bc589b1a3b85 --- /dev/null +++ b/x-pack/test/functional/apps/lens/metrics.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const PageObjects = getPageObjects(['visualize', 'lens', 'common', 'header']); + const listingTable = getService('listingTable'); + const testSubjects = getService('testSubjects'); + + describe('lens metrics', () => { + it('should render a numeric metric', async () => { + await PageObjects.visualize.gotoVisualizationLandingPage(); + await listingTable.searchForItemWithName('Artistpreviouslyknownaslens'); + await PageObjects.lens.clickVisualizeListItemTitle('Artistpreviouslyknownaslens'); + await PageObjects.lens.goToTimeRange(); + await PageObjects.lens.assertMetric('Maximum of bytes', '19,986'); + }); + + it('should color the metric text based on value', async () => { + await PageObjects.lens.openDimensionEditor('lns-dimensionTrigger'); + await PageObjects.lens.setMetricDynamicColoring('labels'); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj['background-color']).to.be(undefined); + expect(styleObj.color).to.be('rgb(214, 191, 87)'); + }); + + it('should change the color of the metric when tweaking the values in the panel', async () => { + await PageObjects.lens.openPalettePanel('lnsMetric'); + await PageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.setValue('lnsPalettePanel_dynamicColoring_stop_value_1', '21000', { + clearWithKeyboard: true, + }); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj.color).to.be('rgb(32, 146, 128)'); + }); + + it('should change the color when reverting the palette', async () => { + await testSubjects.click('lnsPalettePanel_dynamicColoring_reverse'); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj.color).to.be('rgb(204, 86, 66)'); + }); + + it('should reset the color stops when changing palette to a predefined one', async () => { + await PageObjects.lens.changePaletteTo('temperature'); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj.color).to.be('rgb(235, 239, 245)'); + }); + }); +} diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index ca097ffe757cc..5b7136a8d677b 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -944,6 +944,22 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont await this.assertExactText('[data-test-subj="lns_metric_value"]', count); }, + async setMetricDynamicColoring(coloringType: 'none' | 'labels' | 'background') { + await testSubjects.click('lnsMetric_dynamicColoring_groups_' + coloringType); + }, + + async getMetricStyle() { + const el = await testSubjects.find('lns_metric_value'); + const styleString = await el.getAttribute('style'); + return styleString.split(';').reduce>((memo, cssLine) => { + const [prop, value] = cssLine.split(':'); + if (prop && value) { + memo[prop.trim()] = value.trim(); + } + return memo; + }, {}); + }, + async assertMissingValues(option: string) { await this.assertExactText('[data-test-subj="lnsMissingValuesSelect"]', option); }, From 64379cde4cdd9b85e50b57dac6fca19939b99110 Mon Sep 17 00:00:00 2001 From: Kylie Geller Date: Wed, 17 Nov 2021 11:57:15 -0500 Subject: [PATCH 002/114] [Ingest Node Pipelines] Copy update for upload by csv error message (#118611) --- .../server/lib/mapper.test.ts | 31 +++++++++++++------ .../ingest_pipelines/server/lib/mapper.ts | 8 +++-- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts b/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts index 0c2f52d3c3bdf..2e02d83b17bfd 100644 --- a/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts +++ b/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts @@ -31,16 +31,29 @@ describe('mapper', () => { ); }); - it('missing the required headers errors', () => { - const noHeadersCsv = 'srcip,,,,source.address,Copying srcip to source.address'; + describe('missing the required headers errors', () => { + it('single missing headers', () => { + const noHeadersCsv = + 'test_header,copy_action,format_action,timestamp_format,destination_field,Notes\nsrcip,,,,source.address,Copying srcip to source.address'; - expect(() => { - csvToIngestPipeline(noHeadersCsv, FieldCopyAction.Copy); - }).toThrow( - new Error( - 'Missing required headers: Include [source_field, destination_field] header(s) in the CSV file.' - ) - ); + expect(() => { + csvToIngestPipeline(noHeadersCsv, FieldCopyAction.Copy); + }).toThrow( + new Error('Missing required headers: Include source_field header in the CSV file.') + ); + }); + + it('multiple missing headers', () => { + const noHeadersCsv = 'srcip,,,,source.address,Copying srcip to source.address'; + + expect(() => { + csvToIngestPipeline(noHeadersCsv, FieldCopyAction.Copy); + }).toThrow( + new Error( + 'Missing required headers: Include source_field, destination_field headers in the CSV file.' + ) + ); + }); }); it('unacceptable format action errors', () => { diff --git a/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts b/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts index 86a2a886156d8..421ee636856b8 100644 --- a/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts +++ b/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts @@ -79,8 +79,12 @@ function parseAndValidate(file: string) { if (missingHeaders.length > 0) { throw new Error( i18n.translate('xpack.ingestPipelines.mapToIngestPipeline.error.missingHeaders', { - defaultMessage: 'Missing required headers: Include [{missing}] header(s) in the CSV file.', - values: { missing: missingHeaders.join(', ') }, + defaultMessage: + 'Missing required headers: Include {missingHeaders} {missingHeadersCount, plural, one {header} other {headers}} in the CSV file.', + values: { + missingHeaders: missingHeaders.join(', '), + missingHeadersCount: missingHeaders.length, + }, }) ); } From 42f21e2a55174ed1e649053f1c613baa347f8249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20FOUCRET?= Date: Wed, 17 Nov 2021 18:13:01 +0100 Subject: [PATCH 003/114] Update Search UI field config route. (#118885) --- .../server/routes/app_search/search_ui.test.ts | 2 +- .../enterprise_search/server/routes/app_search/search_ui.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts index fa0694fed9d03..e92dc63952eb5 100644 --- a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts +++ b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts @@ -33,7 +33,7 @@ describe('reference application routes', () => { }); expect(mockRequestHandler.createRequest).toHaveBeenCalledWith({ - path: '/as/engines/:engineName/reference_application/field_config', + path: '/as/engines/:engineName/search_experience/field_config', }); }); }); diff --git a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts index 2a9d99e6e5882..3d9a671b6e81a 100644 --- a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts +++ b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts @@ -23,7 +23,7 @@ export function registerSearchUIRoutes({ }, }, enterpriseSearchRequestHandler.createRequest({ - path: '/as/engines/:engineName/reference_application/field_config', + path: '/as/engines/:engineName/search_experience/field_config', }) ); } From 7d081a97c97550b45f866bd788ae6cd0fc52c127 Mon Sep 17 00:00:00 2001 From: Thom Heymann <190132+thomheymann@users.noreply.github.com> Date: Wed, 17 Nov 2021 17:23:24 +0000 Subject: [PATCH 004/114] use root CA for interactive setup (#118364) * use root CA for interactive setup * Use intermediate CA for end-to-end test * Align setup CLI enrollment token param with ES * Add CA private key to certificate Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- src/cli_setup/cli_setup.ts | 8 +- .../public/cluster_configuration_form.tsx | 4 +- .../fixtures/README.md | 87 +++++++++++++++--- .../fixtures/elasticsearch.p12 | Bin 7131 -> 7047 bytes 4 files changed, 79 insertions(+), 20 deletions(-) diff --git a/src/cli_setup/cli_setup.ts b/src/cli_setup/cli_setup.ts index a23a0a9f25c1e..715a74b606732 100644 --- a/src/cli_setup/cli_setup.ts +++ b/src/cli_setup/cli_setup.ts @@ -33,7 +33,7 @@ program .description( 'This command walks you through all required steps to securely connect Kibana with Elasticsearch' ) - .option('-t, --token ', 'Elasticsearch enrollment token') + .option('-t, --enrollment-token ', 'Elasticsearch enrollment token') .option('-s, --silent', 'Prevent all logging'); program.parse(process.argv); @@ -82,9 +82,9 @@ async function initCommand() { } catch (error) { if (!options.silent) { spinner.fail( - `${chalk.bold('Unable to enroll with Elasticsearch:')} ${chalk.red( - `${getDetailedErrorMessage(error)}` - )}` + `${chalk.bold( + 'Unable to connect to Elasticsearch with the provided enrollment token:' + )} ${chalk.red(`${getDetailedErrorMessage(error)}`)}` ); } logger.error(''); diff --git a/src/plugins/interactive_setup/public/cluster_configuration_form.tsx b/src/plugins/interactive_setup/public/cluster_configuration_form.tsx index 967a069df3834..7b6733999d87f 100644 --- a/src/plugins/interactive_setup/public/cluster_configuration_form.tsx +++ b/src/plugins/interactive_setup/public/cluster_configuration_form.tsx @@ -258,9 +258,9 @@ export const ClusterConfigurationForm: FunctionComponent { - const intermediateCa = certificateChain[Math.min(1, certificateChain.length - 1)]; + const rootCa = certificateChain[certificateChain.length - 1]; form.setTouched('caCert'); - form.setValue('caCert', form.values.caCert ? '' : intermediateCa.raw); + form.setValue('caCert', form.values.caCert ? '' : rootCa.raw); }} > diff --git a/test/interactive_setup_api_integration/fixtures/README.md b/test/interactive_setup_api_integration/fixtures/README.md index 5a7238bbba75a..e259030190108 100644 --- a/test/interactive_setup_api_integration/fixtures/README.md +++ b/test/interactive_setup_api_integration/fixtures/README.md @@ -6,27 +6,86 @@ The Elasticsearch HTTP layer keystore is supposed to mimic the PKCS12 keystore t - A PrivateKeyEntry for the CA's key and certificate - A TrustedCertificateEntry for the CA's certificate +__IMPORTANT:__ CA keystore (ca.p12) is not checked in intentionally, talk to @elastic/kibana-security if you need it to sign new certificates. + ```bash -$ES_HOME/bin/elasticsearch-certutil cert \ - --out $KIBANA_HOME/test/interactive_setup_api_integration/fixtures/elasticsearch.p12 \ - --ca $KIBANA_HOME/packages/kbn-dev-utils/certs/ca.p12 --ca-pass "castorepass" --pass "storepass" \ - --dns=localhost --dns=localhost.localdomain --dns=localhost4 --dns=localhost4.localdomain4 \ +ROOT_CA_PATH='packages/kbn-dev-utils/certs/ca.p12' +ROOT_CA_NAME='root' +INTERMEDIATE_CA_NAME='intermediate' +INSTANCE_NAME='elasticsearch' + +# Create intermediate CA +bin/elasticsearch-certutil ca --ca-dn "CN=Elastic Intermediate CA" -days 18250 --out $INTERMEDIATE_CA_NAME.p12 --pass castorepass + +# Create instance certificate +bin/elasticsearch-certutil cert \ + --ca $INTERMEDIATE_CA_NAME.p12 --ca-pass castorepass --name $INSTANCE_NAME \ + --dns=localhost --dns=localhost.localdomain \ + --dns=localhost4 --dns=localhost4.localdomain4 \ --dns=localhost6 --dns=localhost6.localdomain6 \ - --ip=127.0.0.1 --ip=0:0:0:0:0:0:0:1 -``` + --ip=127.0.0.1 --ip=0:0:0:0:0:0:0:1 \ + -days 18250 --out $INSTANCE_NAME.p12 --pass storepass -Change the alias of the TrustedCertificateEntry so that it won't clash with the CA PrivateKeyEntry -```bash +# Convert P12 keystores to PEM files +openssl pkcs12 -in $ROOT_CA_PATH -out $ROOT_CA_NAME.crt -nokeys -passin pass:castorepass -passout pass: +openssl pkcs12 -in $ROOT_CA_PATH -nocerts -passin pass:castorepass -passout pass:keypass | openssl rsa -passin pass:keypass -out $ROOT_CA_NAME.key + +openssl pkcs12 -in $INTERMEDIATE_CA_NAME.p12 -out $INTERMEDIATE_CA_NAME.crt -nokeys -passin pass:castorepass -passout pass: +openssl pkcs12 -in $INTERMEDIATE_CA_NAME.p12 -nocerts -passin pass:castorepass -passout pass:keypass | openssl rsa -passin pass:keypass -out $INTERMEDIATE_CA_NAME.key + +openssl pkcs12 -in $INSTANCE_NAME.p12 -out $INSTANCE_NAME.crt -clcerts -passin pass:storepass -passout pass: +openssl pkcs12 -in $INSTANCE_NAME.p12 -nocerts -passin pass:storepass -passout pass:keypass | openssl rsa -passin pass:keypass -out $INSTANCE_NAME.key + +# Re-sign intermediate CA +mkdir -p ./tmp +openssl x509 -x509toreq -in $INTERMEDIATE_CA_NAME.crt -signkey $INTERMEDIATE_CA_NAME.key -out ./tmp/$INTERMEDIATE_CA_NAME.csr +dd if=/dev/urandom of=./tmp/rand bs=256 count=1 +touch ./tmp/index.txt +echo "01" > ./tmp/serial +cp /System/Library/OpenSSL/openssl.cnf ./tmp/ +echo " +[ tmpcnf ] +dir = ./ +certs = ./ +new_certs_dir = ./tmp +crl_dir = ./tmp/crl +database = ./tmp/index.txt +unique_subject = no +certificate = ./$ROOT_CA_NAME.crt +serial = ./tmp/serial +crlnumber = ./tmp/crlnumber +crl = ./tmp/crl.pem +private_key = ./$ROOT_CA_NAME.key +RANDFILE = ./tmp/rand +x509_extensions = v3_ca +name_opt = ca_default +cert_opt = ca_default +default_days = 18250 +default_crl_days= 30 +default_md = sha256 +preserve = no +policy = policy_anything +" >> ./tmp/openssl.cnf + +openssl ca -batch -config ./tmp/openssl.cnf -name tmpcnf -in ./tmp/$INTERMEDIATE_CA_NAME.csr -out $INTERMEDIATE_CA_NAME.crt + +# Convert PEM files back to P12 keystores +cat $INTERMEDIATE_CA_NAME.key $INTERMEDIATE_CA_NAME.crt $ROOT_CA_NAME.crt | openssl pkcs12 -export -name $INTERMEDIATE_CA_NAME -passout pass:castorepass -out $INTERMEDIATE_CA_NAME.p12 +cat $INSTANCE_NAME.key $INSTANCE_NAME.crt $ROOT_CA_NAME.crt $INTERMEDIATE_CA_NAME.crt | openssl pkcs12 -export -name $INSTANCE_NAME -passout pass:storepass -out $INSTANCE_NAME.p12 + +# Verify contents of keystores +openssl pkcs12 -info -in $INTERMEDIATE_CA_NAME.p12 -passin pass:"castorepass" -nodes +openssl pkcs12 -info -in $INSTANCE_NAME.p12 -passin pass:"storepass" -nodes + +# Change the alias of the TrustedCertificateEntry so that it won't clash with the CA PrivateKeyEntry keytool -changealias -alias ca -destalias cacert -keystore \ - $KIBANA_HOME/test/interactive_setup_api_integration/fixtures/elasticsearch.p12 \ + $INSTANCE_NAME.p12 \ -deststorepass "storepass" -``` -Import the CA PrivateKeyEntry -```bash +# Import the CA PrivateKeyEntry keytool -importkeystore \ - -srckeystore $KIBANA_HOME/packages/kbn-dev-utils/certs/ca.p12 \ + -srckeystore $ROOT_CA_PATH \ -srcstorepass "castorepass" \ - -destkeystore $KIBANA_HOME/test/interactive_setup_api_integration/fixtures/elasticsearch.p12 \ + -destkeystore $INSTANCE_NAME.p12 \ -deststorepass "storepass" ``` diff --git a/test/interactive_setup_api_integration/fixtures/elasticsearch.p12 b/test/interactive_setup_api_integration/fixtures/elasticsearch.p12 index 964932d8ffe5e8ccc8a5c7ed93f6f73c52437dc4..62cecb487804df5cba8522b3c0e33baf0ac66888 100644 GIT binary patch literal 7047 zcmZ9QRZtwz5~h*CVQ`1RJ-`g^?k>RzuE9OHy99S<@Sp*L1P>70f(Ew`U~t#X*6!ZB zyANI6{rCC%@vE)_4kHgofJX#}k&7auu|_FG-C@C_z!!&+a{$7~S^vq5;4lot|7V1L z4G2R&2Zy1bfWwe9kumV9$kyZDu1@Z2i%!5!;tM$wV0hsfnpZ|sMC z$vKt0z(ryH@rE&otfBUFdIk)ou@FOJzh%8Mj!(;BXIes11Xh1)?$iuER8JW4Opj=t z?YdI+>O5)K7fVn#$Ka!)eEms?Po<+Nm7ro^`$Cfs&tiwJdo!W@QR5kdtE!i6@_jVY zW@8D=qwHfIsT+^Z_NgfocLT_)E_-f>ZlvJcZ*n*w`dXkSx{-rB(SEh##9s5`Qc+M> z#6H;s>W(g!N^QDMGDhj)70-iSC?UZ1E}3r<2P8OEu6^?e5HtCe4R$zLQ?76 z9-@bb%}*jr5qU(9pw<17#_%Cwt@xgC9>p|(!M-?He+_wVlje4h|AJ$7u^rWgQ{u?G z55rA?BYjBWT5>>TMgWEQMFg^{a!}8Nn=|ShkgT6-7a6TtZF1~ASsz;+oOKlP2z^O0 z4D6U&3yF&F@a+Xge!)pp;Cg@4^F7Yh0it#a}?BEfD%pQ+&Dms2gydQTPHjF&V zY8Z}P)l((rxoY>ju>B-Bj*>`hk{+RVYNpbw6Wg@)Eztq;J(>a2uV>8mMG;t)-Z9I@ z)AxhlSp$QdKkw5xnCG;L)TD{8* zG#sDWGX9lhOK$G>dioXIM@Nk}@Xdg?)smc;``uFpH$DwTpgJ!$0>q}3W;5|1Q-Bmo zDT295NfMyB0UEk2-uuM2qKA7=6Mgxr1wPJJJgN`zTn`cq@$Ps(YBIyD@5j>Tr|>f^ zQi0gqPd#}fQk{2X&1&U3k(YZ@6>%AhD@o6-PkDAgTT~16tC|;~F@;csYT?m|wsr8=)s##oEhFR81XKSEEK{ylK2 z-}<)FwqrSPH@36DL8N?KM)_$(%_hxy2_KSd))=80KeD8ulNk-HQ4#T_UwF!zuE&s| zGuIax>12TiysbLvPeYGH47~oJ+vLL31s_|bBhds_r_DS9O9leyt-Z{KED9Ew<~dUI zn)h(A;|GJ%#?7`?@WSPh+K+CO6XN8HG)mKwqv1B_^+6FEgqHa0%0K*(REF|+U_Rp~IqA`r_&0rL zim|^fNBZ=?rsE(f#B?N^@>_PZ)Ym|+*WgI5m2zSNEL^lG#AGZ4KT}p=!ixDp#YJ=S;INPnZtR& zdBWMlS^mq`|2p@7l^vMwzfTDvL;!*;kV?5%D)5({g6YS-_b2-2{$Rs@P)+;)po%2% zPZR;${Kt)i1vUT+{I|sfvjGSy)KX>>>q*BV_YD%1u~DD;fSGFu2uwH#@YG;TWYqt~ zV+1rLI4~tLnpuKo)v(@)4?&LXA7<>!FjkD=uFAoYrO|kjnnoHw%;VD+&vsu8n{JbAPdlU*- zzGnJ_pw-cKUJ$o90a2EA-lA#GOj9bW8`W>+yo2`N>J;gf9(a(_ zV6rIMN_{1+);;uXzsvzPRSj7Vm-%FwU3Bo@1;poeG=YGHX3SsCF_a}Khu}H`ztaD>t{0|DRO`i;_%L9)&aQB7$cucAb2}5=RmDk(w5fRi zSIkPbx7fy2BOV!u)r>Ql4#|?os2=!oW}Y~0A(W)KmzO#E{GIkiX(|(q-s8N>$NF5KQodI#tP!10Ssj-o#K_j|Rv2fIgAQZQvJOpS_@?lo zo2g1tDGF~NUs=(&PP}qRcL_y0oj*>g^9t7RM}LjxKueaw!_XR}V@g748xP8}mFS6g zbxC){Iic7c^HW#5NEI1Ry$Tz~AGI&uWN(7xHqlwmj z7;gni>X>6aOnK)#NEJcOVS;wB#UVnMXR_1@K74b^o?6FORTc(9<67@jiJ~DQDO_ z2V%-pkhT?zOO%VuH3s%5B&=!poC=|2nJWR_auHv2B%j$Ur9Qskhn>Br z1NfRNiNu^lvLCWyb0r==k=F2LmmNy&cUW9_R_14n-&Fnf_To_?F$Yi@yce0pq{wadn8Z~$EtFMd9^l}69r1iHRazxD;@g488UtM(1 z`0)vBLx(urEY4hhq&n$jx>yNu03cCQSA=+r&K=aXUa|gNjJULZwoR%VM_T6qLidKJ zPlAKrB4v2joDVKG%J{C#T6c@+8f2FrhE8Q%Tw+%9S&T%GEIRRILgTa zQqBG?RQYN}h1ROBvO9BL2TwWuFM^#5I8Y-YYsVm4c;o3$yJfMh>j<2|RQ>L_E9j^u z+;rx|6DNZMlY++YCf<8#eJ2fuj+fS__VW513YI)rf-vk2*o|3Xk}0jGy>_>W;cN2u zX6i}Ah^1^TqHIB2o@R1OpJ~TBB$JsS5@7QG;PM})fgsF(KsNsu*8kA#38wk)kPt!u zzL~p(4P;{Y&uwv7^9)ng6fb7a2?j zAW)uD?2$En3%%gb^32Vla#IxK3;dsVa7Y;T&#jV<&KC~VA!>{&-6gydCSD>td9BBM z{vDx_K~mRQw~$M;TlRqc;y-g(ny7n~&>ePH$F=1;l*DWDKTR2_1GwMkBS>2ys~z9E zByRLr!`gF#+ptid?>B=VuyuNh`1suHr3}BVHyk}ttn+U%Zn&;6+;7WFuer-9NkN{) z+kb_!qN%hF`bFrCG@ z4<)54Cj@#8T`jY}X*WnlYD}TM^T`OmPQ=ue>~n|exdZIWe1V-$F0%BF7E4C zi_selhBAM0+-$u`#A?dq9=>lBhorHmr{ZyFRk^QR`Sq1(QgEybd}X*NRib#C7qkRQ zY-~})5mL?yzPC3!&%^X{g8`%G=bhnhvGp&))B=*?@WhA4vr%OFFUeBg41vL!isGvV z7vV;uarpSqAWd+Yzs?T#%jTyX9@ac z+|gu8R|#X%q0VOKXp8Vrlxe$6^%R>9>wY?jd1k`^Ew|kHP;TP{F8gr3VVQ@V)ZAv> z>AS;wTYaZwYy|@=ov3eV#)9x~OTk{$vKGdr!cv@3v%dLbBteoNgp-Od*=RV5-5vJS zDaGC3BoQ$zag+2m+a2L@*61~uYW=e%tB^3zJCMQ&>75QiNR*VWSEl z$yC?jw)pVIp7KsJBe-L8iBmo-gPYOp((czBGagX+5UI%PY#26%Dp2LN`&K0F;!||| zCaI<5RPuduyseeeI1|PG912Fy8piQPlU=13^NO{CYQPJ-GptRlt4;2pblyOxIL27= z#Y&qdQgcwat9l;}f%71ybQp=u@#l_%?r>4qo#jMU=|(^tqxL!QcY+y;qOvRr&Wp=9&5M}pYx zXKb4xzn2z@?A7>SD7t4{VL!m|kk&uNWJ2u^=D@z-dKbyh$&T9Uh(+^FGl!$>%TW&^ zuEsaQShIOb!MAlJgqpB70UATaLyq>8^cCOW64J-&kA`)q$rCg+7&L{Cd0u||)!*&d z*-Ejf{;C@@qL`F$?*}gqbLA3VH&EVNR^7-qNrG#0KtLR!Xzik_L}5y>L%$G_&B@Av&e5-kDxX(-g53Oz zTca-urrhi6G9`%Z9(N3vVygm}=+#}g5u3m)wLU=t-E$}Wnw~=VnQbUr?I(515bqXo z@X4{?OZ%&xh@b6pJ^eH`WgI2LOYbY0AZ}xcb6`-}prl|#7qRyhM$QPu63al+yVZTP zz{pEQQK&z`A`XS-61p444sW_kTDKPtCYw{j^GI{SwcCAIPT5*KikgZ+bkZ}K*b1V9 zfe3fMhS`#++hiclX)J%pe&k9lAlpa?R)p<36CYAd{E@5oROeJFyJyBR**wT4_2BHz zr-r@?sC9s&Cm8BN^|_nt)0xwCTzfu)qF?r7Oj1WZAwulCb&JuX0M0x(TJ4h1$ax)N z0HgJDQkem~YMk+rdEUTOCR=kCY5LoIOPXlWaCG0d&uPbP=u9VC-;&orLh33tI1t+j zTcHe5_49!|cA80Y=^it73}|Pdb}#CtE86XEnslV+@aLlP{g6=Aj0tXb-I%NeYpMy{C)pt&cHmF?777lpRm}?v1FRT>iEO8|Aw}AQx=|%gsv&OweVl`7 z?4@hJn?8wga4IzqZehPE(no_yfy{PO?n8>m;~ha}4FVSSUu^;Ove~bPN&xIjwL%0H z^#1xOq6GH8Q-Ba3*&^Sz1vXTBLQxw*WBwU2CgdvuR^~)mue4gY z@tItlCZnoQ(ZpfT>@kbG$NGu;i;u}g&(|gbi&IL);gOa}@YBw>AE4V-WC5{O8Ao*TO1iqc1GTxD z5s!65W}<%!hIiU>OltG_D@h{pgonpc@BavwO0!r(2EDxOJcy#mq%?d$k~L*n4?Wf= zoyh6}3_2z&A(rlEjG4z}IDIBuDu}cRq0S)@8|yXB9Gu>)qB2-7-wc;IDmJJIwbfvjiHY>(x_UU2e4rA2eoSWrELEE2&R$p4Xhe*n3yUHv0!}iY}K6 zHW&ZRcYmD{;X`4Ej*=TRMlIVFb1^sgFc|SDUryg?nGAVuzB}H}{2cT(M#3gR@k^A^ z-rx(1a^FsHg~P8v;+*E43FO!uZ12M%th}dSDQn4a$wd@Dt0oGj^dJhB22mk=W@4;b zE?E5Kvgbn{_BPquZG3dOM_r6*2GS^H^=#X10}pgz%M;_}RRCNM2F{9kWQOt@XFi<$ zp5k=&iXQT~8N_1&7Fu2ooR({FZorWRM=sN&hjxn4E#1lfY|jv24079zq-SIH5%^$j zc}MEP@mn(~d*X&)4|GhqtJY%lqak8lk<|hXm)?)VNanSmEI0+)T?yvkss4p$wV76B zoZG_m<)*Xj;%a=LrdV|@C_azh`vov?SOA@x{PjdOBM{W{+Nr!%D726vcw$C47@Y~B z{(S4;H&&6?Y@(3;5nX?MhzEpTiJvQQpFBNXGLp z-2#di{OuNAf9uh{X(aZ{9dq8wrzn_gWGn_|RJn*+!a5~f*z@}s3~YHN2qaA>8X90d zOd3qBbG<2ai!gWSv{w2O+8w*~w5Pf4mvpDYh80`zgYe*dW~$=x#RDSC3w!3|36g zN>xjbH}tV!$y62geZhK1=79W%`+QCWS2D<@T-`rk#zl2hr&XbzSALGCKh2Z?2B?Rx zYFk?WHf1GrT%D%>?3og8wcq3;eq=AAKn_nUAgAwg<6m;VkWOVsa)f*OJ`x1Q%)k!3>X9V&8iNQY@V^(Ny&ale(eM8 ziB#3eBD6sA$Eq*Lhz37K+EIRO-8{#H4C{E?WyQ|aJRD+DVjYNbPT^{4i@V$7}`Xt!?5cq>n#nX0cOgk`Xm<&uv=;034$Rip|Yawv=nJdT5 zyWxj=+@eanzhif@$kpR5Kl-XaGryN}3vnfE)nuHqY@oSU1c^_o-aX`$JW-whb})A{ z=j!a=%SHyAXpO6H!O1W-bRve@1P3Uwo^kR9&(XORyMQLBv()) zHiy?~v<;09ZODIEpJ;gxNZOq^&V3KHw;iX2JBZT!all+{#)6C(Epo2@_^f$!EqtBr zde1q9+~#BDYNbK+M^AAtN$V6$T6udl^ww+yM}P@97M**?xg7QMD7 zL@b1#lu|7!9p~!RqLBC_e)qlQs9lo{v4UqTT>DSm(oL%?%7v4C-@ciogQ0;*T`IxH zCd!SfXN)&0Zd-E(+I7c`t>#XP$ryGYOtyqMQ8pN1V!~-HjhFME&*52ZgLNZ3n0vnw z4>pct71^%_vsFIEiw;ixm{jVfNOy9W^KRbCFps5`ZQ+ynZ0ACR-^g11b->*DX6wgh z0*~whjWZ_W1%EeCs zl|z`LWsc<7cFPJ)mAaNLU|XCS{b3TBHyM~NSw+F&@R1e}YZo1I!1S4d-oB4^!*(C3 zZg>3PdunF)wLA75qr&(DwI6dK^5Sw$L95x^;;2n}Ep(qOB_BB_%lGk+B(hHI2_hb% zoENr9h<9+9GG?($@flE?+kf^kF80^jtrD}$#E~aj;@QOdw}jkkM8Jv3Xfa1oHX|#& zMP}n55wmbEX9dyA4~cGkG9B3sF-X^!VKmfJ$!wvDa_+kzQB3B~VkDshIkAh6q!ihl zWN`>=ewfLYTMa-x*)j>eUD~W3j}TuwBsCQESj=h}@ZYW)5Ru||GgL}|s7@R$ysT=` z<9n#3B2x89#4wk840(AbOVl7#(FQZrOniVP>W>yWl_UNl`!(aiqKA=jO&>oc>-Avu zSh(7#3FEV|6(g|6_m595+t~GkHGLj9hc$LW#@$+L2nyfcX{`kl#B5v)TdktfGj7aq z{@r$dRp#8Y$qlw-Xw8W2sg_rp^(|ARbkqUx2iRyBG{b=>)HRU{r3H^Lfmz6 za3t~>W7+7`dzq}HMz(t?;sXwApnUiWkFa!323qmv>1wm}fDf*kL5HZ*q3L(yny*-_ z-wD4lGuq_rE{cz_YQh<(=fLP{Zl`k?MX;s-@3-Dze-6@`c!?yXv@cMs#uSdPf>zLY(v6ZyfVc6{-ZB6;mI4dXQ8Mudn- ztrq<|yR`2UOXgE`!M1-Wq?GL0wz-s^xOjOiQnI~ZyUnhe-{3AYX19FoCZ#G1E*$(;!5QHJs{I(y1Si0 zc^sX_ETaC=h-R7wx*EVmyj$mf6dfMLe8rUgd-Af_&W3g2F9i9l+*x2#v1|Zgb+jS$ zSW&h^9u$P=92i|ocyYA@76sFQ(U6hYfQSfWNN@mxoH)uKfpPY&U)EuLF9;IB)b`QO f0D{6_w>Y%j5(oS1;uyzg&p!*hjqLyDSHS-OA00S@ literal 7131 zcmbW+RZtwvx-MYcWzgX6I)l3gCqRO`4z2?Mf;$Wr+}$BK!6gLu1jz(e`o0_3Se^g@ff;}RPXok4LHqBH28xp{A=FRl$ z0$pE-r)mtEG|T}h1nD=ozxlP(J{maPl}Q>0^0?qNFv!NWN<4zP?Z_(p(fEt9dxDfQ zgg?%;sjM%4VfDI`6gzmuRE8E&V$9;bJ_P(1MphRneldX{^Xs z?WHepr`wm{#bi@Ha+xwA>;R(8dkydW}l4h&p0R0IgncsF*B@j_J<=+PW^}I5)PpcULY&4m3nEE zNe>sx<5dPY&p-tDq3@6Lf|H|H2d(|pz&yxNo&OFT|>$@$`u8TFTWo%-; z#hrh3?%nTOUq?a|24jOIGFz{qR3tes)eV~~Dfigl?XegH5)O%c-(y`pmCTi;dGDHye(K^o$JJ$ger3`qm}D_d!0D$7bEyKvy0vKGT!nQ~7k zm9nPhK3)DG6N|2NtDI<=&_Bd&vDd3(bU;cs)=ecm-7Z`XvX}2ikVp|XX*p@j`02lC z5nG-#lpLNoG3d|@&JeI%N|_tO|FaQe-&!N-5KX4U?gtx7QNV6AZEY8dS04O*2WnPjhNmEmd8gRZnk@plyAbLQ09>~bR84| zsG)O}(G*WqbbG?zCBzHSiK{=^r`)AmPE7@0>ZDQg8lw@AlP4C!edRFLsNBGd^>&!T(Q8H6y{2HWwGsP!qdn0OUJwYk zKP-e+$$mv+)|=<=L7Aj>|LJGj#70#q5pC%<2Oqw{_&TUJSF@jM|6(6nfWKAH&zA$x zdm#0{xkM)f;Zp(N?BJZ?+~GXn%>NlJ;lM!J|7;)v5hCGh**Sq}KmxpcARZoGAg`dX z&_4>t{D0A`d>wJqfe(YCm{@E$nJRU%QNW&$8q4h$FzdI)v^9^XaR0H=~TYdon}WLYosc` zx7u&R(@IWZ%z33bSiXY!i7qKIFJqM}{VGb^Z~OTM=CxmpyIm|kvFTS&cm`t9S@4>V z4GR_669A~xC}0f3y|)i_%iQaoxMDvzS%ugz04FTl4%tgnMm$5RUDD}~O-^PF9Y*_Vju379eTRkZO>8qBx%Vo8VbyxM$`o!zWMj5Ob1+VIj|-i^cg+LM=x=9&b~?& zbumrprA4pg7BfvVjGs5qmCZ1a*)({v8|^6@QHM+;OT9S|1x99ud`~R1)a!2Xz_2>&OUDysaU)LX{L!)WvMC#@ck}$Aa;W#9#)o zPY~frQoJ@TF^Fq=7h~nFFljW*I*Z$j`1{myc|BU^cc9oXNmb!YM(u~YVfAzVa-h73 zR}QuOa4~Jxwj7En;bY*wI~?45^(odLnd2y*QJt@88g4ym+VF30zx{dLX-qCAu#$W3 z&BVkN-E+|Y{c4xU!vDWc&Z1|=Dmh3dU)p1r6D>OjR%FCv zXZ|-l9|bGdC(+-@ywwU{aEot<2Zi7!xco7X^xB@xBi{9Bd`yb8hJ2eX9S`rUi2+!l zJ{fM3&m`Xt=v7nclV!3%7@`nxRC9ao~X; z+Z4y%>7-VO=>?%AkV+d8!qw32&LV>0v*e&El_JTfvyxtVpuid=v3+NZMSr#m`d)26 zG5+vMn!lG>k!^ZM25o1fUwWTkcQ59)Z^1 z_v=h|rK*g*wf2gz3Luc`V;VKJ>C`Xb2X~Rk9OZF|+2y%tYSCnP+snV}dP_DBY6AkV zhj*S?nZ)sJayuQnA!4x!_Ne2F#tsTxVd-d_biXma}qt75-O8_$K26 z!{)l$9*^ds_K_s<9WoySD6<6w;VH9{4__@ia5e7`NyjtP(@5KYX#<`zsBo+3XEIeD zQt$33E%Qnh-*VX9y zeEJ+^GO{U4AqPXgC5QM&;hIHz$6)3oVp0ZD>Bef>=E#{(k!2`RqtAY)!zUB|X;)!K zh)rk(SRyC#Xa$>*d>R4$DfJ825X;yN4qdRUv6$bDXxE_X3IqrDBEEr{dD42LEZ|at zWxy6~+kmn!CE$yOLW3T##jTp;9n(*}G!JF!y3ZsH+@e=$>h=XORsx(^In-oP{s-5+ zAYK>g$tU;|`f@3;+ISsPSj&*Wj-RY`9wl;MneVE<5&9|!t_%4EWyQ1x|7#cMit94; z*Zai!kH$Q^ORhV_MJp#T9PRu&0ra9jMD~5Q?@6Jb6l$k`E|!Ef>!B8MBRx zYscyhAv@_2q(uJ+E!6@Ia9(t3EPoTH7wD^I?okdGCU+Ee;1Vk&RZ)sKHoD|bOWR<9 zU{^ruIXCREXlU3ymn(R}GZp@X{-ZHz z%~%s0%(i01jHrjIwS>D-7|uUPdp~;-Kv5T3Q<1q1E_22$U0-I6Mvgrx1Id(#jW7D~ zLQal-w-i^A#vgf1iL+7ZG@<@Bxs5_(AToo@kBCjoM2;T4EU}B=uW~YuN($RmqN12k zvaU@;9qFd`_s1@EiJo!Y2%v&L?Nv^2zAZ>dJ0zkp-)F9MDt+*H!i{>R+D+eE!*u+9P^zaGuAjY1sKU^stT&gp5cO@uN+viM z6vYIvJl88dr!$;)?R3ZF)T+))M{X@4);#mbJDV-(tD*SFE#Qe~_j$m(K-FtPAx!d9 z&vA6w>TDp+Qod>0W|IF9%ATm(;q504(w{%9yRoC0~J5uU)? zit>-&tz z6Cw9)72ef_333UTM++E5CTynnjO^T$mb zbX0;g+Z`ktv|W;yIV&uR19|gT$e7{S>o0%oIY}B|4U;Bsw<*f)nN83hgRa7o_8WX+ z3|{EQS$=Gv2|%K7OkYoKO)k@~rxF_3*=RQuiWxKr+c+N7p4nMPf81xhPR7RP7tlR34ESqr z)Z}+9#eH(g-hBmVg^=5|1Owu2>t6ocdzlSWD z=_~~jsskjVP^6Y@R82`KdzpmXo^KMM&Awga8Su)TL^T3|%*MlGh?1Hrr?W%dU2Pa+HP(2> zy*>1PF^DGzQ`NE;!l8anJ+In|-W|J+rNMKT@=*ed8ZS{NS|I20Z*9${>e^Xm3^F@x zwd1N?_Kq`5Kvs&0Juxcj<`Ypv2El_i#5Ad5CJdC|?u61x5Z8?uDhJEDngVB~4|1dC z_9bZf8u)wN0;pvzYdL+hOCdz+by2}6%|9p5$MPn8G;f8y$QkdL$-3_s%L=sECZc^n z5(kgZsG~I^TKw9eevqJpFg#G)yYYD0rUekWX^dsO<T>L~RFX zPcBo67y~x0T3f44F~n4uggW1t%_nuyN!jNDc1jcY1bO6MwH`0sxZD(9^y}`58_P4n zw^m#DO6}p!;&h6P&vKK{{q;9>y4bhSYdz%2OLu1JIXhRDDL{w)MIOMKT?{dw(9;7f zd3SRz_RuGtu0KX=S0>l)-%(G+Xw-q8D*d5x%p#d87gm27FY!L07QY0`i)UUrTU8d` zmfjNxQ@NlX(!kE|iu$@PpgDQl=Q(hQz};2lm#;>#FPf8m#K=PXr89ws_08`doGbNCucPWpuWVst*wE^7qncO>TMc$c7%0Vwim0X$BMdeK!?FbEH~v z*tL_JYVVAh=2pW2Y!J@#?ipyUvGT?Hn#(^Rr_`Z|3OZV8>iG4e_`V2QQXYfcrW*nBQ?02QBB$bp;O7R zys^pJG^Hw+p*=Vxs58;4>=kZdYn$}`&kxSpg(3&mC~n@O(lTa{kK5;j>FqShSm1R1yV*PJr7yG>?L?SUgJi7e@h&E%Gyy)rV? zlp3t9UmzCvT^?TK;BcNjL?_ij8y59oP!4gRqCg+0h~ZY27wc9x0EJ2;SS&10vJ;1~ z<3wg&VCp4}JE<`f@G=GJp5!~UE2YH~YSmE@Umqbt_^0z0@o$A!UDz4EO^);?g}aaq zxD|-FkT8tEGv5Ld{&M{eAI(JT%?=DdC!ykj45!!Zane87`HBRe=;ff=Ztiz2(MY4s zd3vl3r2`?B7PT%4Zf~!e>*#{3A>Z;=xP&ZeY^O(|j%>7Lx#(I?!xGNU!6GXGC85PT zQCO{}Q8E)0%Pz=%&0ulFSlvP z+*~S%xC4G0Nm=a+!<9Whu~0u}Cjj2{?s(wBktpH7jdbnI7RNj#+|sVN0}7ZhyP@Ya zj`zq6ww?%I!e>3{I69mNRsfkWVSTpEltV1_#9@@lv%wT7*{?D8{k>;qNI+=&)ehRC zEfy6Vw%jnHAs!`qP7eetueVG0Nqdu0jSPEsjce%*+i`o^;tKXmxWBMjD$C=QdFwI z`=E_MoATi(eUp(l@az6Jw8_4t#R8HpB%gT#!YhDt?+Nn_oXPmWyEd}gB@vvv%gOU8 zdIytcmg3j~*^=rjB7I)XYjz%VrSoqQ!0<;L`28UouZ`0q#FnF9A2nSG8*0?mC|ruJ z^xO?q${FGxsLP_Syt!uH^0BbrpJ*D!3xiL{M_scYNA6n0d%g*$3$j%QUMnhEcY zKrXj#F4ElhZddNvu4gzZg~@8^06l7*R%HC{82*H?38=mNs=q-b=2Nm8Chn<$%CLEm*hGEU)Y*I!_+F>+cLWk@9GG;4Q?(w~lnbenp7s`z z;5p;4GyJQ!3EM2#TQ5%GO9ZuT z7OS4n^mj`Pq{osmsCvuVS8T zrd~UNAAler_P;;85a5yFkZ8Cv(*togqz{GeSvo=u>C1Oi*Fvw!crQAT?a%kP$%>H( dYo`g-Xg=Sh%X+HG`Bj8g{vv-D{jVp1{{nRlMNt3% From c225e3bc6f5ff28249f9eced678c2325a5f2c1b0 Mon Sep 17 00:00:00 2001 From: James Rodewig Date: Wed, 17 Nov 2021 12:37:40 -0500 Subject: [PATCH 005/114] [DOCS] Update rollup jobs screenshot (#118813) Updates a screenshot in the rollup jobs docs. The previous *Index patterns* feature is now *Data views*. Also fixes some erroneous replacements of "index pattern" with "data view." The UI still uses "index pattern" to mean a wildcard expression that matches one or more indices. --- docs/management/advanced-options.asciidoc | 2 +- .../management-create-rollup-bar-chart.png | Bin 32780 -> 26007 bytes .../create_and_manage_rollups.asciidoc | 53 +++++++++--------- 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index 7e7ff1137794c..db48b33c712ad 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -387,7 +387,7 @@ A custom image to use in the footer of the PDF. ==== Rollup [horizontal] -[[rollups-enabledataviews]]`rollups:enableDataViews`:: +[[rollups-enableindexpatterns]]`rollups:enableIndexPatterns`:: Enables the creation of data views that capture rollup indices, which in turn enables visualizations based on rollup data. Refresh the page to apply the changes. diff --git a/docs/management/images/management-create-rollup-bar-chart.png b/docs/management/images/management-create-rollup-bar-chart.png index 68ba4344c0ecf6c28cbe32e374a70f0064f7f8a5..cf7b83c53261a75cea725c4f45bb53b6f1f1e546 100644 GIT binary patch literal 26007 zcmV+BKpDS@P)009380ssI27&{0c003oPNklR>gKeH41K`hg(q8H{pYdef|yKh&UqejPUb`kL=#~qDp z>I|Gn=}F=01$nR9uC|O;&k~)M_W%H5NyeSm+s3@`mrUY06?o}jjTX) zs^X{T-5HIGyZb5@!QDOX zuDEO5-Q5!)?#UW*>;39EyFSX(MJDd8dr@uZUJ@apyZ+Rlj;*wG?ud^{RanKPF zQC{BXO3TWil>pE4I+5pj*vQDt^6>CZPtSzbhiv(+<{h>&|A!ABeUAzrKUN%>r%tr| zE&^~G8yhcOzUt=}@a?zX(o{V(eI7k}?BnBi`SR83>S~b@NayDl{P_1>tZnR||A_Q9wA}-e>8}#nnTg z(z<(WW1p_B9xGRWk(XZp4ffi;izOwcOlHWiadma|%|{X9+i$yJuUbr<#ivFXyee_yo1f zZO7a5ne9K=&+Qhv{qUAwh^xQ0a9%LH8yXsLJM|4bjfF);qWap}x`F~)_r!_u#Ky(5 zJyzDXtop>s)6i*Y>F^5+i;9a&o;-d6U0q$1PgnKzm{|CwrDYEvJ_Imyg)e>H-e13d zgWfJ&yev#6P+VM`m!DrzQQ2f0hk># z`n-1S#@AneEzHKoubBo*f}p9!q95L6lENV*dF71{H*Pdy6?JuWIXSs9^QO;t-+i}y z#o8|2`{(85)2ytl%FWGVV(>Y>g@yNEo;qzR7Laf~CpWLArnc$wSsH6WZ|b0zl$N4x znheTUVqBCw)04Hgc=A+>#j-{uYieuNw`#Zt#l`4KUZ*RDqshd01x?DPvm%C8Z=o+1 z1qVIwt?-F%SlZ<)*VOKyLtaD=t$<|vj@_E}la!QHXxU9VXK3`Sgmqn~7XWXi9bex7cI)IR(}jyxXxdxo5vMeH%50cCM#kF!8)8w>F*Hq0EqL$H;iJ&m zIk}vYAN{t|ij|*X8jx{w^Mvo~=Z{g)e$#2mvNgw!osxb|o;0ngscEW2H3ytnD=I&v1J69eU@EkNkX}fwu41qxbX=3k&N(L&i;+HjiV+IXHae_-k+VkWtJn ztQmUiwq4q<-km&k7Mz2Jj`4bARP@NvlSSt9FE?<=6%`el z_FK?PSKU7N82<4Srxn-~yl2i@sA+!ypQvlv^m&MdhexKSrfJ$cM~|IE=J@ebFb^L& zF>bRAVQ7ibTinOY%q-s0w7+UhqC=lsx9`HlyfPdNjpxVjo;Ybzt0RBsu6=L5*T>q% zev-b?q+KB)VIxLPgkJmUS7IoS9mj~jVP*30paZ84nH9w zammuvn)XvT{RfT=4GV7%!ghDi> z5?)?W4S6cNyliD<3$bkZT24uPLL#)8nI-QX*5Qo_d{A5hfve<{)0KmRGtIkqeZko8 z{?b9yehE&_oH@68&FAnvJt4A6ytPZ0u0Y$`IzSWIUcY{G#?1N9vX@{6dhOaT z&z-w4Y4R-SMT=KdRaJw3=)L<6Mn}g;Oc5Cw9TO9)o2QqL963&iQCn9xWA?&9Lq_}i z2VS{)9hpg!XQOz0yV$R|xP)VR|0E!Ivv)f5{>2|VeEQkC6DLkjo-zymox472!V2CW z^&G@N0%IpJ$eFq&b%c=^~otIB7?aU8T5nv#!W`h0L;wX za^CzU&?ctl@ULCJ3C%`eq1JCOXddtjoG?sVx9;RyPp>m!;So!ht@_PBy0Ix3GMEO2 zTbSyRqsO5!!N~91e-L`f(pCHRA09hyDsEKQ#=ADVa1p1T0? z%RhG}QYf#e=-8z%O^O#-a83I?w2O;7N*gn7nw$`9(BL7Xfx2=PKdcnWE-ziS#@*dh zm;`A5!nx|$o-%C?)<;RU6W++&y6rP-_QH#ot_>YFHaaFA&gWljz;xQ!I!v2B7k{3c zSJQ zH)j4%|LC$}<)?Leh~@0!2H)4$9{~LI<*t4D4U_CNEGz=Pfx%{+t?bG(-dl$^mW4_c z&Uw(_QAK)1Dljk@{=WT(7-jCf#oABaPSkBblMyFVT~l-Q+I8qXdkHC|W@Up+P98BTVZtx}*tt)?A;hk{ z>+0qqhwRzh``h^omiOp2h&k{rXOSZdAInISXhILp&7jYoJuf-Sgo!i%{EsdvDQPql zSw?bdVbMKnYdd7{e)@#>Lf`fAg$@h~hTgV)7kLEk5$i)83u8**L)>O_c(dx2t3K2H z@ELLeas(2Q$B&=zj|Q=E35m(1GnSS%2$-5#AdlsO4h;>5c6N4y_VDn67U-ThVFE4w z^NhX(;J0|mN}3#fjGgQk;m>=WdJh=*iLYM(nVh4OtHgIL7EKHdfwz{Oox}1WSg*{S zQ%=+0pGAj?CBpJ51$ud(B~E|4Lm%iXSFYve=A&eC0nA4`FFS}6@jZ;L_?(TglG0h1F>W0UioVCmYsO-?410Qr_5+3B&Ik!yT4#~`}p{y zJF#RiG1WAImV8TSN)z8meOq~N1#imf;-VWG8xW+Uv`f zV{~hq!<*n-j*FDFFes>ADzw_q-X@9zx6^0L`=G}^CH>=D;%A~byc2d;vRt0wBgTU? zu%s()2OL}$v^X5Rz0}MG4IcSn&%x#8&90qtx)BO0|yR6pEfa5l_adB@#Y;g0V+#4ecEiuu(33!PMgc8 zwY4oWTec#grKYA!>{qP5U`YfPaxNr=^X~w;8?G|%g?|=f^&>iP;dx@gM-sk?-D@s{P|1Quiw&x3lHHF1JZPI za)l=A5#zhS(6drz4Jeneyx{EeH8 z0i+be>Y`BZr!4Ds+Bg#Y}>XInjiuirAfxY9JX!S1%37Ebz&ncklW^TUuK4`r*UJpk>;G7|>U*-GIi9L!Z*&O`((3Izkk2^Rp^V#z5V{H za&Lh*w;j^th~SXleCH$FsRY|x_7EZxQ%P{ni;~4Ka{qzDJ$esTx%WFA zdTQEh6niMK0&KNa%^%6VL4pbvI9PP@+2`w|H~5DR9fKxBx3RGs{>cRB)oZ?>{z332 zAzWHo2KlqPu-UeKw;+VTAyPLk2M!(q+hmN;gNKd<4DNz7J4eoq7%Y1SCyuF}Coh(` za3Ysywzl@jZ`I)q{uR8@XK7hExdSxzF*PlnB}3zuTfF`tnf#!~KmbNozhKdF zBr$v^fv84$e;#vYym`AAXyhr5iq(duoB>U-1Dbe8d2c;DX7{IidU{J0X7bcI9HeJ9OW#Lkx@E<=7JrC zzxi(OnX~4T;-QD3!^cXH|HE?c7V{d;wu&niF8-HP&WWPKK%JXx=2Oxxe zbWE(wijb0bH*S(TEgAc|QKKgl+hZE|qe!F1+PQNt(Hb5Jdg7#+5cG57=53W82LuEu zNQ@Xc37R|&jS*`>0}_7oBRMkySQF?SJNLc*b`OXF{~XDb;8S_({^3A4?{w^AWV{`M zlWhanE)L5C20q9xA0roAb`fA~i?Ng0UtKj<+C z4#3-F0Kl}P$4|1sXz0U-kE`H(_nrepVN!dOC7eBbfhM~kHyTo% zk%y88S|#gIyUg_Xd-&+ly7imX0`a{Q_4+6ep&!*yn8M$o+Y3yacy-buRS|e9-ye&w z68jf;_1!$*{@-x#jR(edVk4XC3*Uw9C(=_FfPjP>GAfo5s&Oa8;e(bvCg_s8O0pNQ z4Nf>}M6e|#0I-be4qrWu1OGT??9@+2P6TG1I``#3AWY9dUFEl2dQr#A9sndl zUq(^CJej{>nIM^I;Fgi+F1%^Qg-R@eB4s(5JgyaIi!hU?2PuZ}SyWVn&t%$|S>cqH zmU2evN|eJ_lFxH{#JJL7S$R2PWTem>Vx~uCfiO&Q`vmzc3YU(VU>Y)2d5|QUr5`54 zOhl!;RZ>zyl~^OZ7=ms^QP5I%IHntGu*bME0qKyPLWZ~W79Qz)A`x^b1ySa#MS?G}^& z?_Oj4o6u~5aN#7RXa{!PJ-h-9jBKJ~lYvD$upWR#JVGU|#ERxZOvhsiB9|`^F95sQ zz$O5)8Ukz>!0#ALjhN=(uVippjmz)w7{s5+fs^^JZUMk97<|BqV0;mF9t>a&C1B+Y zoboU-v2$?p0`^>h!$1TB3c%iZC^xFRQ9SSeVE#u&?mHc{QSZSzF?{hl}{!Wr_bea4uiXN+Cv6GA_+ zrjSc)0=us3vMh_D$Od5si&%+G1LUX8b=I`Hzo#dJcJ2wG)%85z`|5t{7btwZlEUL1 z2NBzdXaqG#w$_4bDW#jiG#|#Ip(J;0b!d`LV}io|HAh#~88yGYu>Tl{qg9}g-c9>( zYxjrZjn@O-Wwl3u;~-jesAgSLyBvUb-M*>oBG17zbylbQD1mp9Bp|&g@}{X#427}J zl?)-ws+;{Pkc*8ds}`)4!25Gw8gEBVnv=T7c&B1=AZwdedTNYpHXgtWfg$ld9<@>;5&)vD>lrx?;cB zWz`gAlNYtMrAe(+X_Ck=jA!#@5QOeF4<{NDXuS#Mi&YrKD6Djvrn$|_qNq_7D&+6t zon3oPP!L2k9aH^P&ffv=G1y;lQ9k_UPHgka<}?F8u5_E&FL!3kG%HM+E1e}mhf%T( z!rQyWX1f~?8|D`GUAJ6q?qp350d?WK<<9+j)H283E}f1$lrvw ztHlR1IiD0%W*eXaS3o;v+e7$vHeUt1D2j!UMjMN&P$3h3C3duvF9i9Gk8MJlerL{U zR*cpnCpRnyC zyz9F48m;v8E{x+?q7qc)2*-5v!8-eo*`8fEo38L^@$!X>XTL$1=6%#SJK%|PALOsX zyE#_PRmZ_WLeQ1dOVrGKxRj32mM_Grb@9!Xh=V+zAxL_*?OI|2cD^jn{yy zs;0P@UMz)BgI1Sdzx)!kU_gXRF-_}TVTK9yX zWH{MJcvXK9Z+96+=`2n(a+}96VzDL}OseY+LTbc#W(%A5c$Zb5_wD0AJY?L*Klpfm?A;xXscj;W4}>3{!CM4tx&5L3{ylz^!={fJQkSW%Kf{|^=0o>pwcZ4inFZb_r{6Gm_TioS@Qz}!T5nP5`N%= z-s1ot6Mj5;(|Z^&AQsEjR!V(6x#}LERhA`nwqdcpdm*hi+W>ge={Mnx04KbC0e*ix zK7%)1@$T`CfcIvM_aE%N1zeO{_x?SC$OcXxM-f&zlAASR84pjecI zbk__q#4wa`o>TApWtQiDkij`44<4NJ-`8h5pUs|qr*rMK_PY1IF5wtqyuhF!|9}8W zKw!{~8#hS1+l+)wp{4%fjQG@Aw4B@4%DC2&>ug9RIyy$D(*=iwJZcZ}r*&QV4hjxB z_bxL^Xsu4B-}cZOez)M9Tb_8=NGdO046d}Ix1(_7W+2bh;kBW-c=u}!-mY<(*G#aG^ ztqd2JUG&+sd5g(pk|BWQH+sFE!Giqz&3H&kk%EE(q&DPFf_ynSIgDMXaNLZH(wqfM zy1`JKmzQ5vWzsg}xU2x6PUpP5Jo$>%KSf1)LvgVj+99Bz-ucZd&@W!&>b%G2kWX+} zM2w-t$jUV_;KFU0ez#2Tn!69tTTA-GP+_s&rWWZ9Pax{cFTc)kBJFNT0|yS~vvb#;%%7p<;331MTc^(5u3Wj&RG#|q;Ul!~KX6cn zhBa%~@n>Sq&%*>=d zYV=q}1ZB?^9EINbg@)CeJ$HE?-?``bCg-D`hy7DCaxuzw)BEG*^d?hGnb5oP5%ktW z@4tKbmDkJ5E2O=+xCHVH8#V$1doeVWy34LzIMUa;{gMKLby z-094p{{8{s;o(2{;m@gK$+fFWO-<9-NP-gT-}u&#%r!Mvu0&8jaIlf~PEI?hA3Ah6 zHul!gVI!z#=j5cPr&DorbH{+MUALb4zx>B{>g(%qG^ih7yl^0HD=2yw7*=iablZQ@ z^RVyUBmOR)C%3!#Wabp$l0)(@r8lf@f!<%=*?jsVZEU@X?3N&q@ZecpYF;$_&&$t`iHRLFcqm`R#V5#Bi7(yX zV(JSEi&9ckskpkj(;gNcPCYO%u%x7f$}fKPTPE{(<4!wv@+Y1G0|%8kbLM7bWQ=D( zu^=TS)!EsFN_>3079DU1C@6Zb-MSa&e8Y~zPVPSYjt1=7d+LC9a79(MFuX;2!*7k= zTCxY7tTq>VBY*Lw^w#FUIXStsj2$~3hqBH6>DEZ^xcH`~)%%zajX}X7US8f*A|oSd3<){g*ccR?nVCi9m%sYm^Dn+e zrBC1fuf5UX^qDj4dG_qNI^DlRczpg18#n#Se|~q{cBcswCeaOTJ!QQe32N@0ub;KV z3G015GX7LRsFVBg{a%4vcOQ$6OX0mS8}zPtB)!Y4cwNjEz4g%hf8KbrgUr1l`A&;% zJaqU7lj_Nnr&13N4k489>gF!=)~4T(mO4WKb&!ydfEk}Re}Sc**!04PrO`NL>a-p` z-{V+xqY+}$7!VjJdwBKrx8OOEx#X0TOJU(zS=sc#S>UT5{OFf&cj$zZzi81C%c1^l z!NSFg*p3B7Zw#&T9`B6I9444&0>kjk_a139;HQJa38BMn7~V3ytLim+3&VBtGKtXJ zw)OtzcYpeeU;cK-j-9)9?e5oqpoKsG0MBu%VIzO=fEsGaS3>VIXM8Qw=`jh3iJ4hh zVzjfevY1Z)_@}?Nc+Lq;FO1N^)M*dQJHv!DGHURrm$x_d88c>4_c?w7Zg1YQl{yn_ z+VKLg-uyXt-U5s{^KI&YXY|T+I~EkZc?~o#zkugZq2V`oxcj&rIJ4)VAD;)jgUq${ zE&Jy-=#6JC^v;FeGPSm%cOjPZVXWV^{|N9Nezhd=$bSaQs%SnTdS8kx^0rdV8V zFks-|k)uXaiM@5J>4j;w+A>%~KWMSg+tYKe#PdduWWxtowQ7y{-W3&2-y&$sc_OG``fE2N$0*!a>!%Vhe^L+SMN45sUJ zpc}8YHaifH#0a?)Ip>JdLTAEwEU(wzhUKC6?c2B6T!tPw4czsT(o&8tXUpSv&Q?X# z91hBQlPC3J*fm3=(yM;&VLxY&6EJ-DzSBofo+rPeIOmiWt#@^c^k%`iDAe)Z*khed ztG{ji{%!YBuDF9k(VJI4W-NB{4GcxaIpo6C&AYs?+fHuBFIY;fio`l<*T)ZxX zM_QJh-xqpYO}}Bc4d>ig*_7T23hfR>?_HiJTs%)~-Q|7K{}KWOa2tkyVZDXke|cPb zOz?bMuSlt#IDza%8)!H`bfCN=)V&i2d-Jq0KWZ+M+jagDU6zX@G*FH%vTm z)Ym^G{OXNcx%v7AOTre?I#}m*5PDPWr+1a2w}L`Df`_|$gMk$&HH`@!>a~o>P3e8l zPI}9V)W6cZT+O`|6xtIk^kDrcxsY+Cc|lt;GX0g_5Av=(2EG4ky^ZZpZv_QK?}AdO zSjqA+b2EBBNZUebLT}2KTkq_g{HKB53JQwe7;j9s&>Ma~Oz$Rn9qgdDsVTkNW#N~C zf`ZUa=#6uZYu+NgVX(dQ=5;X%tr?0-+mqf33JMR?yP^rb@y~738-9N|z1w|Ri-LlR zoZFzcjb~%!mGw2XEz-NJk>14Xa`Fv@#ioMds`e2Ido5*=_W7bu^{)q3s+MuoZ@A5KveNQe zllcx6_S2l+{*IMZ z7J65)tM(18DJUoi@8EN6Tv}>+enwVNc5ZQQepz0jF~6vsH06i@QV{YrlvEo^&BdkW z5@QWMd36oT(Lb^jYkHSArFTU;UY>%20){#xGq+G*%(H4H;Kp)OMWvY~s^m?pHWM3X znQB8#?VZ}XyS4Rq>l^Ofxx<@e2o>>(^|noKV|&tDK|z6a=9yV}dP51U#G8hpRVLwf z9eTc$+PXV+7GmS5!)hsyMelZV&J`3Cy|c3O;3Esy;3le`1l#b~%{9!xh1+-P8}16X zEe^ST^k%2ZdMhZjyFzGkN*1qz7V1m&1|w46rDdkF@@iv+xuUYBqN=viR98i*t~Z&{ zEx3b=t}(m?dK>MfH>plPyD#!Ztu3mkq6#a_Y%EGOn``3|(lW9NvU3f&`6c;<#zI3y zQE{cdq^h{oR8m%5VyrGTno9|)Rn!_Q>Znvy)#0m4Xw4SAZG_f1Etb5Y58nEsiYltq z-GfIBcRsT5N(l-ADEL=a@mx$Ed&^TXo```5*;*`_m>SosHQfEkSXn1)S{~Oqmk|YB z?oZJE|M=s-F>Sblf&$VYpTlr0t@T%;Qj(jO-{iS>jjUR0n$dxxWm9Bb3u{|oIBU*r z(Oa|LpIe32%r)!{m23qCg*JFC?97D;QlcUX z3UKO^Pd>9r@5)Eg`(AT;84>)qbE zKMD$p-XA}L-bO3y{aEyd(xTKUp#E6We@BjZaXnNN6coK5%Q>gmZ@o)eL2qHHRCpBE zRFT(Cde59S&ulhp;{qQ|_t_5fb4T$_6qNP8|Cc97Zy_^plZRiv;Q*cLuiGmGM_-V|r7b5WO`u@4710Db}9T?tA+dN zU{8PHGvHWhX_-ZFpG|oGH#!p(XxAH^BSEquD zo|%~?J#8~>#mY59N6(6kzGeOT3fDx1i(I&D6EDY6_df2sdczJTBSJI4!dq?v%W?WE-J@GG*0wi)wd zVsBlExTewGHof}}nGziv->d^^TQ_Xk4PnS7H)ZB>h<7vU)|8pc<}X>lc*T~2LOp#7 z3W`>)-9B~pin)u{UB3}6`$SuD?}1~x+z!yFMF9X6cH-u7XwJfQvlpxhJ{!u;ErV3P zlk;A`!1K%3Y@0M==@G9}v@=MtlUeguPoKNebH6v;@XU{RpJHd!Nrkm`qcb~Muyn(X z$QW8cWOSU1+X26TbBmU5nl@);%&i2DDT0qXcki1yfAx%ctHLi^yB-RP-qyL+@^M$2 z(VGAp#Qx;d&l>4XdD8SwNVt9JQg|~HEqsoQjJ|v&!XA1rU$J_`xHpZP!n7p;LFZ}bpj|&4v)$RFwA7fFS1@_zvcp~{ zY3EjK-sZ~upIa-V215oFj>}}hKj=Is78ifJ&ycBv2891_b{`QM7J-%KtojX`j>V>Z z`RZ*xC;ZTjNlVXMvT_U36E<#(f}%IBUx6hNGQU7Aa?S^QhUCd9X-vPh=iX1yIcJRV zK6XNLlBH2Ty}W!<)6(s6&X+D-IepHGd5hPtT##&-mY0u2cUA%lV*TLX5bKYvM zmd3El*IYdgQvso2SLZEW2lw!<@qRt_9d-9?{L0Jc^odge)<;ZD%N#Rlp?Js=DjPp_ zF+&5a9ynq~g@tvNMB4|r37x~tdkprW;}+vF_t-nezQ zI5PYP%vrb=zkvFjg=>zV3gG@w=YPRAu@w}(Q&ZE<_y)k|@`{RzN)r{lPNDRUox4`8 z-TKD){O$0O1(% ziRtD97+^z1coCSP`%*>oedFBd=-olscoSZ*D_r|5L%XJM6 zc;`5?5-@k#;j(D)a@elXoAP8IjMdfE9XNR8VrW=dnUT80)vjK>?%}z=DUEH{l zMf+qR95r!4#MPU!6bDPYZKntI;^NYd?~TGQpw98}z=f_B>+MeDT~6b^&@|N z=8bdbL$Th=SFFKqV>6(!1lTA~oZcG40Wq+`_;}vu0-6By=kB6 z8QJ5fEankDGAu(HpL>@{6q-0WPIY0Cfj`e*ygXpUOoHKr(?^V-2k~g!<+lIi>A)DE%Ok?o5OIw}Xxy?d*h8|}7)S-9(;WKvcIf#qC+x;N3 zdK=Rg1x0UuJlQ$9MARa#ULQ7M+}j=B-R|U!krQq|*<~#@7;fECq}NNu7QI)jPD)DQ zlA0M?o<$ew4Olr$dSQ`XC?t=;Z^b3TdFh#7P=tG&keJMsO9!S280tqI4p*FoaYVf3 zh+>VQI=+44?Ucx2Uf)f=#)UnRY@m&Sk%&ObVG zzQTHqx=n+x9l};0d%hA!np=rGz>=BdCCiD8+vsD1FxE@NZ5-FSzfAIZ*1c-|PJHGjeOm4h>_4t`yH-)K6KYW^ zeyE6qex+;9+Yl_l`x_^s8f98%ejzzNv&O(y??=7vrr_YOlzfe$prGiD5o+TC_-wE8 z|Fy$8sG^F{TjWaGpWfygLcR(L3T*~fk+Vjno#`!;#wzo@jNGb<>bsTI_f%0ul~$Ju z(>+to{p^BjgRu@~eYNy9woLCk_di*-FG<(ul5X&2-9S}TQKhwI=oMYRu%0WU4CM_L zg0+M7e)tKqEQS5#^U#=*{eBq-{n8ISeo;jgRSx=R9PrCHbGe|p{x3qacDCL&){rPD zD6|s7sdl3G=PjNM!E=0d{t2YgV%@r%9iO1(O{Ca!Xz&$uZn=Z~om)H{uzf#U+gWwC z?oYi(gYXjN$6lS8Y{~yOqEq;Q*|xkH|845H4MK~TXz?dQ-sxyL~r>e zk^D3xBU95MkcwV!ICaXGr+vJnotT(pmAA}Z2|;@rTeq!syX`*mDajR+lT!($wEC>L zV`*vWQrA8oDAlNM@^KJ<{E*c zqGDcotux*WNtbmx9RWrgsa@L8=+Ui3TDFOEAz4#--0|E?9iyXTTP;y|;lic<14eMi zWS`cz6#gIe@*ySrW2KaGbKA3i!xq_R^FG!a+TP*gL(#jUIlUV+de=j52esa47|orx znCE)hHH#1m6-(a2>bE-dEG{mgPVz(Tccu}hhTG8akiMU!ULx@m`)tP2+S*##t?l1E zeJECqb!@D47ReOJLc>9|*_5P_l?_Q9EvcZ)X7eXs@Q@Az2amiJ7vFRaX5*|ha9emX zO6A6l$SG523BBbeki|!mHwqX#bh`gF6qj&lZHGK};Z$uL<=~+s&d#n>aG~UIxEOpk z+XPRF+bG#@>fF40JtIdk62uXXLz<-?GWbF#O9fS^sAosdR){>6@C#!gAk z$dt|n1%*qOt$yjXt{pnP@8feq)AzMjYuMwlugAOnUVEdv&+(JejU#T`zVnT@dc68Z zcURXv3@E~}wd*!{dHeM4J9NUt>Evnj^9$(lUcav0dq+pd2n}}ab|(q^b|;tb{OGw^ za~9G^tatCeLtji?4Kk{mt&XcDV~}I1}r;gbeGr@l*f!>{}REclW&u7A_TP zq3+1td-Ls{ob&nf7cF8bIoy!0-9PNsqwl$MjV(n*MJraW?a=W(x*hX5!Kl|F0}mWL zOd?*XCnu+j9y6&+x87sMO-WDB)cTyi5c>LC-8**qz}x${hsSAkfLMemHv+`^)VoO7aU==VHec-)U_mwCQu{z=Qt&14r<4M4gFE*f2FUo%VwV4^wBK zrKM$LR)6n<{vr=LedfGn%U6|@l)`hJ?i)96MvC@uGi&3ycmJ5NlS#3RbU6cuNSeF4 zdGsGJtcYQ@xOmWzQHKv7r4dOc4s`I~5xv2%efv)8(8FLb?D5$9tsnfEB?;K}F=Hpu zj(bv4QnG6Gx?leG75+ytC&y#_M%V8dCn7dSb&G#zWS3YqrUkIODs zgP}MyG>rO^r7JBrr@l|WVLNy3!g|NYCup;nbLTI<)uBgxd?I&`5oGn64b!I2#$#vD z{PS~fMMPX{ajJaaz#&F4i?BqtPWN-4<0r`O$N2S+|NT3elglMviMYzGaB*>^e)jBn z+Tr%F;bYmqWn}q)5l2zi9`L_Ia&DZgGT2yARaJ$nTGJ$Ke#a6v|C_A$=TC$6Uc6+b zzkg7_0mD%mkgp(fw;sKzSmxgUA@&gP`~K6jZ(+Bo^W$R&l6btwyM4pL!iAr!*R0oK zMIZJaR9IL@oi%?#W*lt%0xz#))+_?6RsnOf9CnOIZx_?hmQ94_Msw1`<2(b-nem-V{ulAx0BevPWRt8Z$^C~ zb(r{{-}-~Gyj-k$)9HFpaL5O}25Kj{ckhAm>xfYk z#7NTU;j!1*#f=JJtKlQYA|Uw*aI`~^#xNMpJuPMXf4#ZC&VwKK%YcXn~5 zA`W?2*kvw6WKxonk{NEsjGH`h(hP2b=rkie`Sv?KD=RCh1B-v*%zc|WZ4Lv5c8t=#3?7Xwc{l8tHA3>uQYhz-Nba&LbkO4j4Eb$FE1vKK=ngUnq(vcI^DV z7@Tka;LkE^1zdlJj_;3_{11sM@w|oJ>~qkN(J~(vOq@I;IQT3FWs1SGG0P?Vl}&&Z$r z{&4BhqSEQUf8`2&6k1DfE9(u#`5Exh3hUke&UtwFops!y5KOk-a-G1@wmzljtL>>E&ITa5R|5@|op|{ak&Xk)yQ;~bx^S!=@4|}!v z;0mfRvdEtw_8xfjs5dv6Z6S;}x;VG!ya~Or-lDsbo{_gn~hK|7| zOFS80fc-H0Wx-mXenaCeN8$OFM5h39Q;crH=VrKlJBe*Gv$Cnc7A92NWGGw9nP)zEfn8XJhzdTU>XU=?ok+V(-3#)UCnX+hvy<6@UN0 zmtXBHw~Np3{OFl;=Pt-7^TLZAOG``n<()r&f!*Rq(9TWMjP|I}6W!cAlmTxmdVdTo z^ybHT_ufau*zBS=vw0zRyJxYucrmnhpCR%9=I{|Oel!Fbl9E%XNaS3n`?ry!CldQ5 zoi=3Js{M3V8qX_slIlauqBwHvj$_s@Ry3Ra6cn|JHkXT!!VgwyFv)K|QH zF_Tneo#>&%jVC}zeAb)=oE27)Ziu2j_hJWpQDW45yJX2q8aZ6w{=>w2r=+CN4zVR7 zK%EWQ?d&-V2?{VZUAKOdPWNBzM`owr{NXb)<%aFw{mFC0y*OvKf?b@D2$)(tiqAMf z&Wb8u>2yEh{0T#L>D~)}o-^m>FgGEr#r`K)oO6O|;ymM7{QZCa4lP%@ZQ8uOW9Roc z{~5F9(+ACF;T>1q)OzoBbzi<>tvtHhym|XOo!)1X|Js|~@P^o-Ofk5<-}v4$OmGS~?dUE1{+R!!`}hB17risH^2*AD-tF(46Z*!<TZmZ&vXi0cdC@sm%T_NAw6D@4M2@HmROAMI=<4}r9w7k)U~;gN~8o_ScIJxh;@ie_74!Z`c{(j=Ol znU%#&7putG$_T|LV-uhJC(W6=DD+Yo=f?CEe?+9t_{7iGR;`tmm0h@S5xXr>`ZA-D zM}YI^FJVwvwrn+f*t%^e|Gyk4Cgv7)mD9uD#uKJR;sO^gh7y?M#2Co934gsg;g^}k zP)E|7X!)5lepy*La_wPZSC}W`i7-@Arc9kpjDYKvnZGcZOZN5kkBW|I@*qtl6AkQy z3*>nL!?85-*n&&ofrYpUZ3{(jz&K1BA#{7_ohvH&?GEeUR_m9b*_Hvb0;2#AnRt9n zpziwh8}J!x|5yv)ZP)p)VzNz4fx7*xMDe|^U%v?(uU)@EVICV3dyD_(R@?_0eV}o8 z_!Z7g3U&Ml8)qdx1xnO-88Qc93WLSw^Q&^g6}>;Rh= zfDK|xA8FC*w%_HFy7jiU4`3Ls2Kd&|dq5>WKM2fgn&7`^RBt6veZ?%ax=k98pVp=0Ryf0CBA zIx+hzP7EDfS#iX_zZ|D}4Rm zQP-fjt>~?wprGijprGij=&hj8N+^1>kO`^rHY}>BqKbqm+MnKc?~^V4FKt*t6%-WI+*?6GLD5@5K|#^`$wNUw(OW@5LD5@5K|#@5K|w*$TV6tLe^E{a1x0U% zd#B1ecY=a~qW4#(5L%8xD7IB=X+vR3`ATvITW26pP*C)K(h8xWBto^;yR;|Ci9LUk z`j6X19)AWA()vnjeg(&b%C+Wb*87S@A@m`=%No(Ue2Ar7wJ7Y-fh%u%kGM6~sydn< zj_|;u#VeL9Sx#n8GVkZ-7b*kph)|hQAIEx^8lN78Q1W97W68x&TH<#)eenK=gG9bZ zKvwWBU3-yv8`T?hut={ho0GBl!`_1trrfY`tEdH7r!+*OWaX;$Ity;zjHX4w5us!Z zkQ017dVl_O&>Q(KDqPlE9o|Ln1|1CY6I<9AWzpzJrjEof8a)RO9i@)?EbU|qM(>hL z=49|BrM|BpoNobWXduD6blJ*%`wo)an;gK(dMiBr^ajvd0Jr(9HrLvl=ltoBF$iy@ z_YBefKpsf*(odiEMT?8dx^-BAm6eI17Jr@zHnc}k zlnmiWg^0)&cL$A2QhDRvi>`=*Lc0UM@)7g~59lol7JQm(YSI0M*!GJM3EE#{3~?VS zINr|AyQxUlepEa94H$;n21*?we91+#1tNIJ=!g!{(q*f3x^IpcH9jaP1cqA%1;0_F zCahe!76lUg0_|AHj7d;UneL|t%6jYdddv^cbTn??zX7o%PTPO)qmLf)%=y_P{SALH z-6#P&m;f-=8(~^Y4D7_xr7Nij(A??N`8~$61q+uRKYmJUN30Xkd`+bc6OHaadbe)w zo?^yjuEK{9UenM5v@32aJSBkAOf6B%A#Z#svF=6@e?+BBRilRCw{&#U~Frdye*kf&v=R=AkaSvpDmjTnUi!L}A;; zu^_o3w!%}D#~uRTx|NWYmdRu}CnrBIudtv{j|_B?z66pQ45h^-WhJHMFxOmDkLhj& zz1v?Q6ahVSaG|a!#sA_rub_s>1bgJDiK4T|SLpSkcR6(UIE3}kxW~?m{4G@Hp&II+ zXzn6;Co~q(Pd*i&6`p1wYnhUok(*Ztr47YprKROYV`X_oRYipfwpLb|t4uZ3<~r;) z0dtMp4(6QWkZ5|B5HmSB1<_AL?L?|h`oL8j7=qr+N8H>ziGj-=kg7z>9vdzyzX}Qt z1mfUn>DdKWs>6N}Xp0>(_7o&X1lQ zG-T8>&v!U+;xsl~Iso-Tn1bWdn_0I;?+OdOG1|gy&2CF^FnZfhc$uZ63vVzOcuuB- zDHXn!^e%sx-Vdzz1A052^;Xh+3O1mucfD9|$9B$@Fr|WRDCfN15v;d@f`X#Af`XcR zf4!Y^1qBsaqqIJ9t`tI5X|JLbLhI`5VIq8lm2k7NvYLn9P2y?|7Q0Qk*Lv%%6hc*L zm!cFxYijF~Q!{h&iVBK~^~GhyB^4!QRb}NSV?}j&rMaTArqWbfX{xKLuB)xP3!jy9 z?l4eLuas1o%-13l;*&COr{<<) zV%54e>ozZ4v1XUsUc7WnHzbGNln3-KQuJ0(a2$G9RGMPq({4m1y!`TOfB55{7A{^f zV$|4m8@5{LT@JmK^;S@DV0y zQtz=m5h!}!O3Vm8AO4%){C4d4$Q(c$g#yc3 zu16&#S=O{*v<+ou|DX#n{CZ?UL2;E9TKigAZ`%ZJW=PNY`e$e7wwU&K`HD6B_8-(X zf2{p$EycyfckbRjea4TZ%cPhuDJ@lIybYn~9UYf??&1~C{YNn4#>$4!@Eg$k%Jta7 zuMNFLjX_?Zp-x5W2pBZuUQKN+x-Cuf$ad`Xo_|1)Y>u!4LTiBBY%mZFHe_71&eUmd zCNPZtgEU$X0m9*np<&1yu358T)v9%fr9?%?Xez}D3av-ex%as+C_Q1~)RSj|-s#lk z{SW)FxFxU1@tt#FRBY_6m8;f~$-G;SK2Rt(FaPAJGhMp%e)s+UiMNxaC;CC#ot&S0 zv18Zny^kF`POJ-Nu3Ej}*%#h^|APTk$e@fRcXoDNyKYn8{=-SDO2$QBUw=*TWYFMI z-Fx<(zi_FRGWpuI8#KQ9M)w5^mx=EUrJJ1_!v%szItxyn_EpY#8$!`rob%-LeBXd` z{RRwv>E+j^&6vZJa0#t_P3VpM0OUar5WOYT0;zj>`;hv1$Ie|Zz0wJTOt%dix6GZl zh_~htbU=+HFero#QE%zpXR!CN6J-{ya^WFjW9YeHt5>gCFG_<+NhvzrcLM^0ka*d> z+g+#o2H%n(ozC&`iKw@2+Pux##kIvV3^{wA@nZ9q?UXfZH(tMfQ(5n}f&#*U*Bck5 zX0mE6BS)W_SqPb}AB;KbvKDzuE+XRUs4)}8!H$nlc&F2QNUKpt?)RlvJ0r71WD6>y z?N6qhh4p)y-q$#;sHYtJiGs_Ya^#j&zu>&B@UZ#qE!ai)WuA z1`I@9kYNH{(Ws~x@~ERaOiNXj30bnB;1B|JY+F@Tr3`o*Le0Hp&3R%8U^Jojli&yg#Fmi#$%_}G}3Sea>S%w(eOzGp8CA2@gv0^o=< z(nzbjH=k$g9YCn?t=)a^3RASaRBf7eXKP##n)c-W64~cO8!2 z7{=Li7Q#K5Bo7!g5@|K+g+)cLzttU?v81Hr|N8bH(NfeK49uJhi}VPIX&ud=a5sJnJeiW zSh&UvoMJ3ARGQ2U4wlYAQwSY0bc|TVBW^z7T>oaYx5;yjaPPTHyCHZNSXjEaQT z0I_kM?(a5i+zS1+Zre!!ObblTo4#_F>2 zYGb9jys`$Lyr%Y!<0NCURtU{{pb&~HjuS3VzX`CVq@>>a;^{YGu;Adc!6D}em`jUj z0~7tm{IWR_IFwYiuL#AJl$1!Fr{z2b3k(d#&zFOWXMXH~jDe7|wPxJ9n^G55P$EPM3hfJ}5US{{prGij z=&hij=&hijpy;ijpx_wv{{PuK3p8h8Ab{Tggum`W9T|ulVP&f89;%b?)#J%)i}(Fa zObS5|x3|ZkH&Y(CYs621^pQ`U^gRO?92s6lemmMhBCmlJDELuq7;98l@=ytaAd>Nx z-niFVmQNhHfR{OvA^vaSJ|wq=|ztybuE%O2^i zNN?h#AicHLd7c+V(KNt0lTzY4#u#fY-lQ^&Yq2$)^d^WC(>u#D)EfX8V?qd})LL)n zocCU9%Sms7_>hwO;j>MpH-@F&Aq1%m7xd?xAl?O3tYw!LP)Ho;*Bb-sZH(hWlimdJ z9@(7#zApb{8-8!@k>_vjct0|N8RiRto)7fr9QDS>i_p7ZzT~?n>GC}MpT=c1KG*h_ zZ~FEB!*vd)&&xhZ0P1%=Yx8MsT}X&?0Uf&@SNVd&+L{4=y-{z*)tT#Eiy&Oz=&o8l zX>}}lf>D>Q2YJZ$mLjye!xp_8ZQbPO_2jN+Hlo|iL~i4$EB&%h687Xjj^pbW80o!%*@2??xd}-?b!T&>67W#gKzLIo@Ujm zds4OQoW1wi|E=nE>m!QZJw4qFctiGY1aAxuDQ&Pm)PczGJiO?|CA!$fWO~788`T|ColA4c2U*(cZYit` z1&4*bs2l2rz~X8VTLY`YCFK;mk172vUHv*|L%BIBD9@YW5<+oY74aoxPZsvl3KS1s zdh3Nw*yTVYl0yFhop^Vkq0?Cxx?0>0B>lStS#Mw8M+EQAWO%pyd%zpxi?#Iy8#}#` z)+?z=1kwO4=Z5y)L@dRBi$8I_M5o$d`?a$*2gD_XTqoK8{&mZfA5|_adNj6778=ogJXTlbT=RfNjn%a9;AF7sF zqRhq>X#ODuPn~PNTogWq7`3m&^M|QQe`6OB7)n-2b{RrHf1Rq_TkIj%KpPP76#j1H z3Vp^-Tlc`=@*Kx&OY|ZcNnUH1&vSVYQiwCcisdd!e2F6=!g&`_h{&*#HzJx?sA>4Y z#I7;m;1&c8;=!iwrjEY6QtzKW11WnWI>(H zU4x!*%gni1#|p|?dj`33S?B7Fc6wu-gs&=Jt2f#K1F^OtJUhLufuqG6;{-M=5AWnw&lWCg#GB3n120vB)Hf|w) zU8tk8Z*WzJD?2rok1{{JRl+(HD%IP(aA zWLhxkjdeLZEle&Jf|4=Y;foD1jC!H*#X6n7R(KG|X9l5I1ZT(5DzZ~?9FqGU&(sdV zyX^zRyX8vZogAq9`uf7*a47x{u!+0>B6xRw-0%k2jU59-X$HyIZt5KLMcby#NL{jW z1AE2+!KFJW1ft_g-@B`f>AUUHd*w%_n&c;WxDyjoR2zg<#e#6n)cb4m=k+O;FOl0zL zbaf@K%N4u3`Ii$FMDNbt0f(n`?l$YMrz-z2O||Mk6`%zn*sj*u@cjIWFO64>TxDEy zxOVJ1bA8-=$s-;})Bbdd^6BgfV@;zc*7e?M)33(M{yt4PVzr4S0MGLLDiV#aO;EhI z!cbAw2;fo3NloC%EZq+$D<4YN%FL0r?*4qHny1Du+%Zq{<4H;exC2&CqyUT`O;P8T zc)I!r@e7Y;>Q)}A0WE1e?HiBQpoet_s$O1LIe(wy##!p0Pgd?e;|j$=3wYKYsrl=4 z)mO(WUSFb@TcYi~1LnG>(Q8eM@~YlnX^_UsQ+C+m5)Bcr7sL}3uPv@r+hc(3yzLXd zl1c#)zCUS5gkpUNEd`spjw*Z)rfGjPNqO5G^Q><=weqi&-`nlU}%lB7ZGgJM`$x3!D(Adol)cZ*K#|Q7^kHZSG*4DO^)Qr^B zjM1aV^No!_FeqsLC*Vz8ZLV^I8DmwXwN-P^9RWbrUUJeaB=T>9I3Q zavU;K7(>}p=#t(kJ1Y0-s~bnJG~7K`O)vp1!0AX5ywUW;Rr&?{9KeR~TW*Pda;)6p zYpe0MNpF;1H&t;;?N{5P_s>BKGxs>#VY@c#aIxxS_eJAP-G{*e?7MQm|p zNE%tbEWe6SgHQR@WaX6grV3{)uf)x?PiJWTP2C!M3{P~R%tOGLu*NuNn+*<)HBGln zS1!w|0zdeUyiyM|r?mm1+~jq}7Zy}BcJx^(2S&(toUCK!g?sHUFRp}*qe{Q@LUHPL zEAs9ssFz+VJ*5fY(cm@_y&s&bKCTY1%Jnl;?=I7G5&XQlxN>=p9eD3LSt~tUn6|?T zpL@@^q^F7w$$TBX1E@=Sr~J6WN0d(4X1RBshVDR(ul1WF%O6YE%FU6&ilFpz$+nYq zqyUGLi05s!Je8#*t|p;NV7mwZB8`%5KUr7pYh9M-d@`#d(%ORy{?Y`+vK$9;KN>Hm zi=%VIq}NNKgdQd^M+~$!)N!cX`-2GzceInR2|q;jJLae(t-U3cK|ok)2oHgqQTTay8Ia9^JP}9hR1Udo~NUI98!NviZ?eiVma%1>x?;TvU z&q2l!j;G%!1Rluz_ZGSTI$1$C(G_a{))-m2DZ&@kI{ODRciSg#FvE;1oJ3scx_g$& z>1}~e`cgt^cwYJoWJ%}>_2R7{Mn;(Q(Yx}uAs|jiW{v)Ig1o3QgnxWAO}pt>EedJt z9!T46oxRD-7!9vER6Sy)p{cVUSN^r}3Mv9PhnWpWYVMw`VrG(ay!poiZ$K-~d~@#^XtN%FMZ$z_`6{kVe|%tHgE!-noVKZ!FPMdD4_3 z8UFKBB~cWc_C-6{+7YXbWSIWO?gvt}fG0UQpSI4pIM>PkHMU_@F|s=h6r=p+IC-Tr z1_SPC?0_M22rj19cMf4W@aEw?|K}I7zTTEh% zAlw4IV^$ef<~i6h!sg_)#t?i)JK&^1?f>Is1vH4i<#_E2*}4}NRDNT;{Jz;L0AK5G zMZ+pvl#K?}s}5F=Tx|rXbU+fsUmPcYCS7Cq#NnNUu1Ng6@o25|ZrR^vsOD|8T3pQ{ zIX|xQzq?fbM5gYcR1J4e>4Kp2?m6lMB`y*)n91C3nYYaf=HYO|;p!193@zRLfd8H4 z2I>MI;djyE}y)L7X0LiH&0w=1II2N8ukF-T+us+I(I%B{h@Zkz7bq zP;iD1&i}8#TLf@|HUl6%H*I0HJ3M`M#?qA=n!Bz7+X;B*7r9+*pi>ul|+ksNg z_41^fL1ix%Z95mE;0&LZm_>;LYm%IcAM<)6p7Uci|%vz4YhPH4FCI>CAt5 zjEqdUy{Dh<0CmBt{2_R+&Ud`Cq*8SFNg_y(Z=0ni-ys41^jP^}nUAGON&YfbiL=AY z(1%x8qc9BEXb|8~V(op4avYyOOH2w4GHE@EW|+VgXV?R85R;;lgS@|7fAcIg;3UbX za#?q{hQh>9+jPTB^$AUY*YXdfXz<-^1THUqyJhYc3vP>zSbwN` zIOnM1FH@9g54{n+F$q-7Ji>dz40|nJm!Kbn4Sh)P-n%zPlD=~4RDoQsC@A2A)P)@U zr=+Bm?_P}TsAuilsS@+omhQ2B4xJhA-g3GZi7}=^}7K?foF|j(4E}?btOYf*Y^>2&bmHCYFZV zhvuqJr~_29PiN|ID8YCKo&dNy-^mi&kJm^q7Be9M69-3dCgqN{_t9@l-)SQWZ|xb_ zc%`nwgl|;xUAjcq?SJLPn26HEaMJPw?mks}=Uk09ZpVZm zY?>hXbe3+`7K=2ZeDm>I5CUj_J57~e>LHE%`9#IeleIkqgEDiJyq9J*#7|~d0Arh{ zwZ`B2(}{|wGPLinG`_oBPocQ8pq`qR^q#B_;BkQbaBHuvzKKeh7BO*yzBFz2sTOn=M4V*A`V|?X+T^YY#Z3H_K20 z(_S-Ob;~R@kOP?nScr*}UAgRwGl8Cq+=uiP9VH2`4n@Z5q*2IRvDVhC_mGy)0K zbVG#F5FFoUtZVwhcsUJr*81fnMap(7y2TG(J41!*8NJ$g$6O7)JsN?``PFf9Hkas4 z0zxGw&QbqnvZAuO5tBeCUz?~PWm8xp z()Fj0DSWg=CayI~BjoryI|V(gprwZhpz?7|}B>E$3DX>di~g%S~LV;{ht1{ggU+&^7b9^oRk zLVZZ0TWSc^g*!C%DDe%W#Kg-Cp)zB5>xnvMAkffHn!VLRFKYG{%Z$yI$?HwD+;J!x zTNJ|u-b_n`-&f?`U+Uq-EH99lig-mt0#QuG(#O<6{Ep~gK?8tEgH_gOEY3O68y`o% z4V>^SF`Qd?mcoh<@izuXuG7%YwFLLvl59JE1cV6AV0k}@6-LbVJH ze4-PWL~2^`<%SR*giIJ=p`=+r4#L5-)C+_`$S{3)&^ltfPP+=U0RWEzMI44Pq-Hq| zDg`?B%$!6Vq|0cjZ$inW?f{-whA3_NCiC=7791JR;yBnHL?Dk~Etr6-+!8nbmxXAZ zQ0Xwa=Il%D4#p$pCspNZo2?AVh;P7-nf?K_X<~E;BIL zbhwILAeCL3=d{*0BkAHjw#B<`5HMy2CWH(vE!ksZ2JUhZ{+X7^Q3d>P2p(WE!2@Du zB5962dzk0pXBnX91Tp*|*X)fZ>9rE+iNYb(p|od9E{`FZyV(DxM7E!aKGiQo!V@cNAo0*wZoJMShgti7-B zN2$R}!aGq^6T_RETSTBv{`ZmoYOTJ${=3C=l%F10O21uh>JlOrN#5aK5k!dcL8F=>f#vQX#o$@yHKBj*t_hIzDf zp5EXvS%hK6hF9m{?)f{## z9vN>I@r@U@@a~>?y6%qJ+Mm-eqk5-o3f{wbS5@`j@!k&OeLUYl_(5A+dpzG?3vcfEgm>J(6L`Iy zF524KV|oB@&Ur81r_<^FuQ&eX za?t@?OY5zaWmymgnaIF)U01u8-QghF2H|yG^EhEqEb?mT>p>g5lQidX7BzXP_9_!O z;r%*#X$xhGs)x(noi;AWHS9RnMnT>3bOqD z`zZeY?YoxN|0}x3M!92K2#_Qi&{S&HXg(*Jz_V%Dw&N^UuIu~0Tx4^eBY&@J8Kh`AIT|KoVIlp8-L_Z+Q zvg|?QAq#jsp8HL0NbN$etiNvzD>iPLb!yZb_xJz48>9U38aL|c#KND}4c0aEEVNDS zTZTG!zS9yh(lFz?E|DbB^1L7j!Z2Wran9p7&eAj&qAZIVYJU#&XTI7QOXjLp#rq#d WMb+%3ToK&>0000gw+5-kI*d{@O?-1xaKCJOnT>Fl1>dF%>W{a2Zg38V&~ZS@rS40!qMLR3t^f>Lv(| zK_{VRU!=|D<-uq{c{ng=aC9)pzapSF7&smn^gnqpFd1 zj5a9!`;r13pwj=PkOkoXS7QOh|44(&6hQt@9&Gw=u}~MOYET02D5d2B28M|7_W%dW z%E19?)3Q?g;`&8ij@QJ&j?u`}!Ptz^)6Vg4DKMZXFDPqg=4u4+w6nE$;q~Mv{YQcq zl>d8~i4^dUh^q}h=@)q=fT)AB8Gw_KnUR@P009610G&%r zV)F3tVDw;Pba1v{V&UQ8VPa-wVr69jNiev0*}EEfGT6J2{j21E^oW_cm^fQGx>`Bd z1ODnYGInrtC^Zh<<;^!FPk7Di^K|J4mD3jBMOSJBzZ z3{>-9{Q@k&ebIkoYbGr&?)!? zB^5yK!z9g!3?L{)Z|LXG+NRA5e=feC9*3@Eyb~fTR#5B^ctO6wfzi<}Wj5M? zSsGV}*gy#(vV=+0DY48+JY7vqvI4XrAVd~5TYRQMA=(t&9vc+9@<9{K;`}_EB@}CX zpscqv!e_^#Y%T`Z*|&w>%IBL2OdejVx(`0)!9Q=syPV;lcr{`*P@z5^%E?Skro+? zB|}MD&zjm_pliFw_MDS|LBkV(G4`CHuYtu4IWR&i8*jsKO3VHDuFTr)2CHWfD?|&& zOc;pKgS_?i^*{xkVpE{OF(g~!J%p^Aqr0wN0$>6ch}Z+a1+xsE+-T}Wsew=g#b+Hn z#&%v!SA;gC0u_pXO(I-EK0+U+ZczrZFvuK&AcMOE;Gf`Gf<|aLCXjN(7UqjZ{a^F@ z|26+R=N!jh!EdYHFWzfo@qjPaW3tw4brCBrGQK$P5e&Xf<2pT8t2idbd!Jk&BxS zzjXs&q5^Y-MF7O&S@%w?F0sHkBK`qIg|!0KQrYD0?tD}OZLyjeF}-euQrYyPBJn6V z8dBumDFHr@^RjuH1?5eF2j$Wz%%iF8zRwsKvSy8cll<~{6|fyO=^Ux;dA4| z;P*BHG4;hV(-zgxAZo=tp!8dKS9T3Bb%MVBS`~Lod$^!?j$@}sv0wR}mM9LN%dYSV z5$j5Ro4z}-zn`)?$|Qe4mvLfzn;UkUQM)}yANMV658gIa)vL;eKs~EpR&%O}OrUJG zd_u~nqIH1o`&We=ZgIiMFXGrt`YEjbFD3%9&zJaZZCm>g<~(ZeLy!S*E}!d0xOOP& zWzDaZoX+E`K2`Zr#79|tipX!**f!4`KcppkC09%hj6d)^a8XUM6`}WJ`oi78W|F%&D%XOCPGY-=!gVbsG1R=f#IHHM}BKTiQ%F;Z9^r)*KDr zAMRV%n<+3l|IYYGLQJr&L|La-Q0nA=b#*m^D-=o_C)WHTjI+~RshS1^#$4NL+eZ=a z_1>z;^9ciKnOxcDz>O~Zc;XVk751Y$)QN^r{@jPi%5_NV{PB@-M9zutCa@Qa?@u3!0Vwu^GL zvx}?>rEg7V^(fiz;>H5f@b%VXr116jQn?k+&ZnGw6n}s1eoiNd7~MGti(XqsJnD1V z%6IFj88f;{yK1btZ)PsMy{f(AIxWNOi^;Gq>nj{yTO0`!^}Oaq-zuFXV`HPKbcPHEQ%?x|U77UO$zi?xxvpRe^R_}p0m)|GP`|ga=ZMDmU>U^UqpOlo0roa-d%Ao#}dcB5vLm;xp zX$xWVM-K@+)7b23_}!_>`O5c#86^l5tPEySp7X5lAFS>#OQGBH=c_G+th!yo+QUvl zoh+C0$i}Ppgt`L?G=IAE*Qqla*E%hTFI-4r?M3Wsz)dJoJN6uSJs+u488L^x{3zP# zkCr90U;BD+zbqUPM^Fki@zZn|eXd5@B$0%YGW=jdr^k+9u$9BaS3!B|3PUYswbJi} zll2W2SMR5LY>Vx>!eAWis7}jh3ZwXV7AM*(!F=CZ9qcE962hPNUt_|6{FUah)^n}O zqRt*n)YEZJI^cuRzRA}IoVCN}^992E_M0Nj4x8Z9W7%AGasmPy^nIVMZ*RA{7J{@= zEXTV~kFWRXV#G16`~6mvZ#Dtmf+6 zWUExmTRQe7(Yk37cai?2to?8hwA;G6xmAt7d6aE`s`gxV3Z<7J8VV9@9ecKju*Ds} zX^BLK7DoKFwdAwKjCp@k$N-#*%ST9z!yxbt?s_wV=w4;bv$LQ$@*NU?_UO~_-bsWz z+4$ZxMAORRPU8lRsMqEkrctvhqfV>2*NU@;)$VwO&hX)Z$lI1 zWtOG+r>JDyY^AD&)n!4sEmS$4EP5reO`#=lEs+I|QZaWpQ~cv`G^R$qdtMBm7|U_MSi@*~*pZ<<&i#(&++ml*XPhrN?tj)5s~27+CsA;P zg{wS1dbqDlLmOri%fhAm8=Pt-WE>z-WYSTSW9v22nqQ_|D{7t z3Rm8l{Rj%0rBFc7H34;SuaeEOH=nM;<7fEZ?z#9!-KH2mmqYnSC%4?tt>u(cR9sx? z7Do9o?Wk6Q1LqN+QOsM@B(R@z3g`KK5dLXs?FH@Z`>H$PR#?9$v^l{`ktkr&uJEwGLxrN@xXUYuvtjzu%W;;5j zLQrDRAi9)cpPx8d1xT+6m5t?y_T>`-R_wjGa%z&$zGVz6TfJu9P11VVQ{>Z=$RuEI zC?5`b7|Io2*llKQZ1J^Xyu1lm)Zu*m`7<5a&dOr^%jn=t(6fM{e1*eC>QG}AOA^!3 z$-Qt#+}Epte0j}qHiWpDzg48BG+a_lWme*@^5KpDc|KbA)`lSeX7rl;7$4vrT=#Y-;u5BMhdo&Q_y(nqq-87Q@-783DErdGjb0v0q?T z6K5!prN2(UB?A>^M%W~k^~>z};)6d6;aCPo#3=7*)+_u%bCq&!*8I`xkLpHF-SqF= z9xZ~C1>?R=K}Zy`FbJ9Yi18&bch<^W7Z|G^XGNIR3sG49sb+2m-p$4xD?jY|?KBOf z%y;Tl+xQhnk*hr$jh!J)#3?fS41uGFK|~k!YKQXI}8ylV0EOM-F zWg%%A#NexResG>IwaMClig==o4nmxv8RNpg9ZomEAw3tgxPZuG$SJnZ<(qO`u*PQ4 zr!Db1xz$R9RP}PW2+6SSex700-@7huyZJD#bthi*;Zr}rjU=r#g|PSq4G656(#=22 z9$Iq3u-a0Mcf`jrjU){vMni&5SsQo6+_DEY)@eNJ5NX zukXeqyE4GP3LoR1xrS{q@V&~M6Hcrp@9GoOvM!F<<*UcG!OtKy!NiP(V*rN=reTF4 z)KHMUGK7zBRnP=I1%qJmOH2kOT;8cTF(VDtS2LHG*S7$DS71TmGlAuW0=A;nN?kzp ztsry^49UgbzWxDtEfu#MqFG-#yT+Y3TbBL1!%xIL+Un;k9ON`-kyG@>tyjVm8FgNs zo8ez_z>=LF;_8+X$a{Jz)VS0(I3Hc*8Fh4Z)@+i{` zdm##qy|a68#P#Bf(1Bs~lS{@`9q#A6S;JyTb_(`sIg-|&zF{)y$1v)BDlZ-kK0b_0 zell-XT`5-X3lAn4!%@#@?Ir8or~DLre|?>j-99wn71}gl5H8PkR6Wlva1y#K$FY&B zoOc?H|5`e_SYl9!(c9v`uMIU{sjj#3!_g?*uan1_J!&CE3KjT67nB&yRmp6to~XpE!m}bK z!E>FRonBRZUutW%Q2r+d+AL`jczy|>;3t7$eJoD6cMmBpT_hFzOk z-7M%OFwjxjeNp}@NTV@>3x|8h(ZDK))#_x#at@Jvu82W-)%=W<%BU41 zUE1Ef2){6t0$InLSdonpXYX4an5LB=$mJOIBRcl!Ub011LaB|FLMytS_6@!)c8;Jy zGS`Xi`K)tMOLa|NGLEpkbo7HnE`qPch9v8?`;>EPPRr#f{9@vpy2%cm{L3ezgLW|J zzU>2WHl(4=jPorC>p5&T%3H}>@S81hZ+fvJ`yOaF5pMfiOH{+??7|U@JLn?-M5qyO z6!VLJp{dNDuRx)|DEjUXD^mWqy}l&d>*md){_SweNbaxIdIzXODn)A5fvDhw1B0uQ zXWWG~$~nfxeoxN()F~X_5)jkBggB_I0vnoO>-mK5b$J`CU?q}qlM~!myW~ycAB4RU+L3V*L z2|+j3mSfq(vpB~E?M%MF6dDyJONvP}@}Cu08c4kBdT3(6AP@A5OBhUbzyV05pxB-D6c(#h`dT$sYfu~Hr7;)`<1I+w8afd$Wv~dX z<*om`W?#uqtJf8``FM+WKie4P9HV4yg%*8B1Gd>a9=QJkgMl{`8reZvM1-3E2+FfX z>5`z+s4or!>Jk5L5m8)7Q-8^5>@!xFy4vlqRF_|Yind5VMD)V;#Gn2}_G_+1T-5vE zxEu;&iC#I66ibv|lye`JHAt{dF;_tTkSSDUa^n1WTJjk&GbWpP8a1ddwk6cvIt{@u z?!0sji_4SAicSCZbn!>L<#*Y4eG*Q!vvhu6sQbO(+p$2&O8HZbZ%4PAX@tf;67~rQ zZY(+K68D&yPq5d8U)ahLVBfB&FL+HC<2$#rXrOt-+=FtxfK*P7TJ-bIFC4~Je9lF1!~`3o##a9C8V zw???2)VXrX596DI+x$!{z~XCSlElTVT=i>Acj6Euf`X3KesVHc?W8Q9 z^pf{RBc89arz=42^aNs_C-Z%3&L29JRu!)aH_pNu;OuS`lu!5+@zVilV=sd!^xXR{ z(7coHCX%q^>bGr7jk&G9?YzbU&dytH4WJ-q*FhZh;^z&AH3_x^Z=kSWZ;9r#U7>8@ zUb}j@5R_A=OD(qU;Ej@BK*pad)C!<43zOBDT5-c)hQXO2KM`GAQb0(G-^YABl=KrW zjrLaEeBr%eUrRqv(-b#Pfahf|OFe>;O|LcP)BZfaTPe`oEtPi<+IFSiU!Uwj)Vg9b0nYgyLl0E0ao&(iBp&2$Zg^N>$-#jeA$szbRTJkup6TeGZzB=(m-pe`6rqGrLHg99rf``S%_`d8pWG1)VFXf8wk$7JoA3xLRwGrsyFtOT3WAQCsuodl6J2 z%=0z6jUC@Riqr~4v?yCfS&^ZSHEMN(i2N$@6X44v=d0995zHXNfJ&P$-tMVXQ4@`2 zYZ<4X`n+#oY!{o!8xHyrWq|UG`Zd&t(-Gx~9HxQTW=ZX1)umjX4aPk!cIztlNyfi+ znQh1bmlDXQ-v+Q4IoI3WtcP2Qqc9N>gU)u7C`EnZJoO!>X( zzuw508rL$=P1tHL}!aWe_Hy|FiK=Py*{@eoXf`*dSmPGdThV)F=Iv>Cm`2wrHA+yDB97rTY zubu+xyF^4Ix#Ij@7z4eOg59|rG3i4CgQJXrm=#Cg}UZ%>g}ui5XochpYyB3 z(%gCXSb20BtoU}9x8tDESvFY`@D@>#LS1tCn&l$AP73ibJP=%X*&EpD%M+3J7H$FT zpbh_Xmi$=pkNvw$tlFqYnbF8}Q=8h?crx zK6&bz3JaVlL=1@e2~~VW#DHMuOo?We%WlAnv+}g+atS#b{9ujzk(Fbyy4Tb}QSt2z zBgO)kB|}-0{=KIm4hVp}4uXNZ4i{{u-U{^=`FXW}j9=&U$ymhq6&!L8cQhaUe#Z)r zS?C?`CN^NOAKQwc(@ZlWB>Cnyk#D;Rl&KfRe;+O(WVa-G9P1~$~yoW&Wf(5&09BNj}*1nNoq|H*EHY6grxKANLP%kJmhJpCUEZ>ck zYt0Hp4R(d+ntZSulh?PL`^YlpxL?UPD-W5z^s1T?;{q=shcTHn#H4zVlz^*z7Guxr zoL?}^My!VrwTy_(giRAdlzcNvjM(}Po=`S(WfV~^#4tUr=>t<^3?sNM3*)Vr`^_|4-tV7ojCk1nkB7!smu-9ySW2Tq9= zDvL7+&QdHl6n{gW#16wVhTsUG;x17&+amb1I7Dnl!o+Pkb0nDb12Z7QOzlm{!u1w? zEzdkcC2@0)X7*{!(nX!p^rw{`k{bSLBJ5Y9CmJtD#{C9h0-|$4?HngN1=9|Iz(+CP z^A#;^SwxepPF7EObDvHF9xX)1@T0R^lWRF>>-X;%*96J+J><0{duq5v#zT?>Gdv1g zueI^n8j@$QhhOwgM@j$#0*jA#Sivx-Frqy_zYIoW+USWIf->v4sIX?7j7py4rktsq zh0X###dL?EWWFU-{}2vvxkFm@DuAN3p)6W+b~bQ5O!aHV4Rd;g;|sH-{{cJqBvKlT zM)*M}mEuS$9oedL;Ou#O%#e4rSxMTDHoI{zNDQD}sjfCoDQ4M>#op2O#jh9Z9}WCo z$g5&HO;#19O9s=IRrMiXuOi%g!5V%^Vgs?L6NA&SX;Y(V=(Gobh1c&HOO*|RqvhL!#TdMf7 z8KD(^Km3%Q=q@79iucFeI(Lp(OjV-WFi?G!4mXhhSy*1?R$`AfKjUIf$ z?FnRVmqFDQ@p+QuURGK~i5-f5<=;roY6|kB&O1Fyo(09C(V;OgUX)e_RYW{58FMgJ zqnXp5R)KYXJmJdOd+hLl`&pMPVG&hII>pwXjo#6#wyIsgilpExnxq?}?9MPcE?p}?>Xjsq za?})T{|RwB+*b;frfg$r2asLhHO)x8lX%G2UW`C%EJrFGLf=>lH%T_Cll-{$)q-H$ zieSI;?HUVW3*rLe`Vxklw7cyy9tDv+?VeUb?;{HnwuQvN(tZL(YsIfrip*mN-o-x8 zm-yTGpS0L?&K?O3s;CsraKua=ULi6Bf{JGc#tEe-?=+3S3}uh2{hT==qR3;j(}goE zeU^daikRDtK;Q+e9r`E5w4ve{U$Xw}7@>@To34!T>cyqZ@|||oy)&W&mSac0{yA1k z@X3dt$tc~IZw<3;=4`=vwx0KfZwa8?Ql_h#81}i<;skvU#`}eU@ zF}p?ZajGSLh5?nyh$(ikv`jvdP->wVZd6K8@3qV4K1z5#_$e{`-7tWq4lpTmX!H3O z+GOA^roCsqG1~im^s?T8hvH6H$D=Of#mK-YQH;ZTLB1hE+~N$pdX%}9LhYmrF~nNZ zT3!Z&RKT_Xq=+y|5@**q0?Fhp+zDs2R3gEC;h(a7g5eaoVs?y@5jalTH7&8AW_SOP zmfw=%$tE)SroTQh#TaF?4&`8HiT|V*0z-zCM8qZ&jFXdVV_Af5i~-x?Bm-a~XpV8bIcP-zF31pTip;x83Ql6yyBhtYN6P!@(~tL8 ztgC}+-CT!c>*{XWpOjcLZ?KBgzz=?#cavwFrO3EI%<{|>p}G*2Z6W1m;ZupiyOyw{ z3TZMYla(#Pu~JUWxJOLt6RIp}+cCDFQs8m$G=Zdu9Yth{SKmAk85%`5k_8SJjn2Sz0?Oy>yH zdh*hf!QqfcW&orNZRCE$VlQS%qvx;7PgZh2er~*i&|acTCRov4Zem@%kZwC_A_xL| zz-%f?S!XqC>CR~DN3*DSonzsDQYSiiylj&1R1ckFWsRtIQJ7>jVXk7Y+^>IYLIDr! z%p|`uHhK+WzS18LEV8mmx}Sm9`c@SbUskAk74ReqTw+vCqm=cTyLI!1tLVzo2fBD_ zTP5|z2t>JZd0`r$74l}?^tH*9_p0W4R}V=QpjQ_2s7m_7X+l>xy4fjIPl9UM`ZR|5 z&K=w_r!T#fS14_an831rKibS3K0XuKE#ehB+kQn%X*H1FI5=|zYp&%gIK)22D~tzM z@m~9!+TNmQ90T2lEe2mcvsLjPgCpHt^`|Vun+ySBJYZzf_qUh!guda+Y4glULyZua zouwzkiLTTgG;TS;;deW9>O6MN3x@t3Xv5C52Z#U$ze z8Oc~74L|}>cSc{T1iWB~P;4=&EW!AvD_d0u%z`otxaJR4r!9v+1W(I@(~BOk;PY|P zV#5aFrb$r4+ibsnoQ7JqIc(3id!G7$0}B8pR!g)Fyts-FYxX?6of3d1xTR#Gi#_NX zJc?`9=Z#+qIXa0!a`^iM6!G1$wkUo z<_ze>;-j>%z5RaNIoOHJCIx%nW@ z4(M?-3m14pT3k13tECTS!a+#$jovUjjinPWz8UxB?A5oEU3%kqVP^j??Z*QeJfS#U zlSC^$XeUG0OOBjGMv5|YSdzIKRuHOQ0Nh8jWFgG@AAS&DOdw*i*{@*x-XLmin#6{t z(V0)ctNDDc_1}`xZsY&+|0uYR&u}WR2@j< z;sT3vvQ z6~V9SA12K;GKA9S#*tVub{X!RRsE=68w*^xbetTd#|HoE3_#r~9}!9uNs-1YJ=byw z5lH^R{sC5O^KbFbpwedE3|S?t;wu}HR+9y^THcbP;_@>hjn=069Gctr@5lSun!QFi z;iL6;lXT}5r-=cmsGP~^gO?AzHNNI#BRWCgcS3mcx0+Sv_wfrNOtOH%2GepkyNkGml{JZj+aswTynQk z0whdTovtPZYju81hkv{mUtWHdJ4{ae_Kh^|$-L~E?WOX$g4u5lZqE%$Eq@R#K)QNE z*99|!2u|iEgU>-=zGgLLrNvH^khi&<({4p6yX9df;KMG3K4G(DShZre^I>YE^Cij5 zh7s}bz(%aOTO)G({r>QNkv8_pG7d7}#Rd}_s{4I&zS-hI|4PNJMbShd-sQEj6%7q- zu0~7MdbXVd#3azTR(4Y3xqr%hV{@@*ir}f`kxMOqoybQi%=gDrR4rF1KRU9M4$nS( zeF~UPH}IG50l!lQ-KzH;0&;Ob=4PsZx5{LWT&P0b><{ueRA{A3Ov$#fmGBj;Us`N= z?oMC8^pN>QL-Ghkk}2g2w){ zUbh=b4t;pfA?5Oj)ouoWge#6v{8zsNSgVv>8HqMF;)Z#i*jXwfS`J{(;o)te!BO`x*TOvi>d!%yCISv zaD{2N+LB7ERspzT_9U4_Qh3?d+?+~d(5aA0BrO_O$mGmDS*Rr2tb*C5*Y61J+Torp zn=HWi^-HZvO?p^#9$8)7|8$|YJhRCHLmyS8R0cB`Nw5hifrcMJaCh-Qv;)@{va6R3M%}&klNQ#+ME!m(S#N`s`senT@9H z-?NRlcs!KIq*hNQm5x^UJ~=m^{n=-?-(j!PZG<2Mx_%W|>X<3=av^zQ(D^a5xaljo zJE&NY%jc08UyqW?sD~#$9fb*E4k0pK`N;WMKIC<>Kj%JF@Yu|CPdhAbnZc9oVDd-QhH93WLIPMO-(Z7pF zr?=dmne9dT28V=D5Zvu%hvj^*UTH?Y+;MGcEBz2a0a7no4PO>&!8j*Bx}9()?EVUg zAm3Co<8~71{p*4KozH8RMR9g*799|%d}tR#m17M##Itjkh@PJFws&-P;h^i13*!9I zUJb@_oy2%=co-1taNCTgiAH=Hb=#-qpm#gvNO8%d`6AJ6*DP5&!U1X(1cPVJrG(xcc@Yca2dg@)2fEKznn+sD zw6eTZ*8f3ErO}Jx7*TDudvUj(X$~vlnZWz33v$?+p7`(lmd<)PB>oKrc<1|K62#pf z1wG{U(Y0=-47XAq9{|77;Y66r8 zJ0=_%zgKlTuGwwYTf6y^X__|C@>g(J(n5zwtv<)$#Ra2L*xTEFMi$cHWPbUNR3w+f zMoQn1GPz8dm-~w(S0W-J`o3v3vy4%zt#A~4+QH*li-cs?dqgL(=) zW(%!9MA;gH^7x$+o*x3lg43A{NS0C=)ua61+|X@~VcYU<#G1rHp%Jl_?@s0|A1?Sm zyPlyweZ%skVNYpyJ(erpAdsF!!jl^e`81ugSvK98@4tl-p;wBn?=5~EKEM~Sk#C$8 zIH)KXiy_~J+Wq+X(?wB{gU0}%nKcrR{1GPhu z6l=yh;B0aqyg|G%Y&KRG7kIk1wuQxVkQj>KTs{cYkd4LX*s;=OlMZo^?Q{FH5lgE^ zuV}MSQ;2QgEnSv<86O*IcmnXa;x>G57@o7szdJ^!y)w8fwl%z0JXaJ~xmdI6wwn%3 zwaIdwtbC7F54TtQ?rk^B!jJp@?gQOFFwn?T2wa6NpRGzAJ-%TINVruLuv(HPiO!_X zePjbMgYyZ0Q--Ppk7FnTDg9qi2=@GZ*Hvx>Ne=-B8~;BCAFfQrP>NVSB!dMD!+u6Uk|!Dt@9fYpPS7cE%(WPwS@ z=PuVQSt9zl(diReZVV+~X3*Uwf&=H`!Spo*HL1M3v1j+-fR^~q>oIZA>Z+)l+;>jL zK{dkN?zpFGeeXBaU|W=+{~99R3L#wI?Cg|2YTeLSF1F%lmR-C4ys#K(@-;ZMeq~M= zSNZ_C3Pzi63_7nvD=GEoWFjrSDm>DPFpB!kDh?5YX!pF_qA;R5ih3}`bqTO_w#UY5 zG3QwbOjqo0)TW=_3u>>C|26-UBL0Bc1P9!^CS(t zwYYfa)|QNBp;nVrlvff@*&j_WFPs#ho$fO0dru^jG$nzXUFDMK60eWP98t((Wf~sdc(-GQPKqWUZaY(~u@R z|C`M_aAm@WdAr4KQ$pv5t(sPn2Og_hwTAi-OxB-1MWiyk?{S;LmBluvkJRSWV9Avc(q0?UapA?m{gKoxa+GYv)}zOmD_Qj6BiRbmvCk9L*Gj}X)KE)#7=Mi_-pj?l-ok>@3EC0^nEY>}IJ5Y@ z*!_3W7wE(WtHlc#Y5sFtgvP36JUZsIp?`BwF+KN9T}Qjcn~cL@TBhaWmDQ-D5i=b2 zd$$|f@4j|w2)MakxO<7-rFc6!3drb@JaNnN-GFzkgljWor2R_pcyJ`x?xa$PeS#8X zSmdjR&BLh#l0Gd}Um>hmp*2T7~2tI);%pP z$LIHm{QiZNYE8u|5SeN`heviVgU_Q2HMWWgn2U(x!`2M~$E{bIS;n(?awKItp##B!bl%$MttRUjJ`?zgjNr3+ zGH+f!&lEyNSb^M{&Z_vVk6I){qehxXPlpjr2OZG@JLme{3a?r#zvsv0XS}akDECX= zW_l*Vx|NGSaS~LdhO@L!zmI$SnTh%yCB%a1$F}rr_eWC|7R_Ph!9u_ogCoIJx#YSV zJWv(FLP`ptf9aQ(`NX|~7Fv`NA4Rqg!F|S%Gh36&zLr(gkcg;UkC91`FDPH->p&}9 zwK6%YUIgzZjdN=Dy=FN+y6Zfl{kqFMF-x`gcYn^8{3Ol(Aa|%*bk=gJkm%^@@q>u= z@G!kJaikgg*BXDQ;)f@a?S$W`N^baKDBr6ML3WH~ z;5Nqkp1lNCRks;bJU&;Twd%kX`(NacZ&?u6qorUr4Ebf1pWd~unJR^zy5Ete}dVRV%nDW?+#f&vyzTTf} zkw?tb=)Re-Y@-9@k$G*GzuIMP>_m=8&Wr11H>vv5#wE!G5AYET{Y4WX`D85^D`YR)vv!zz)>7#KQMU0)O#-6> zqIZe0sU$i-qhYFss51}=H-&^lT6~&3b{mfI%{VCPWabz0`#uYb{IN#?kD>Bsm29Cj zW?~UoM}BXR?{r{#`I(JJUO6-cEDa&fA)Wq7XSR@@XDT}U+~F4Y7p6gn5J`zrO6qXg z%p_xV-AjM5E~8igX}iFJh{C_~J-7cJ$oNmh7Y7^;o>?85CgQ(1$OQpJxWsV1jw~(f zZuPpf)otcKfYZ=0fM z;6VGaRm-ILewh@2^uMrCphOQEL`x-C*_u1~33b=~-;RMq3BY&N6U^C4P)j=nDj$ds zuKWwC%Rz7sw-|up0r%|4(Fb+o*H=wX_~MnOioUb&<^MLOAFe?fojh|Wp7~o)(#Pj3 z+`|P)9HXw^H#3hQN322)Je&Aff9hh9%|ED?97&G@n8_#C?Y0*BlP|M)V(^@1C`;6c zml1sG2Qfz}(%KZ=?#i^~&2l#KSN@VFb@tc^)rnKR z|LSZ;WA3uGzRXi0Vwr8J_0CSt*7O;B2l;{u{zh(@K_Oj)=&^#P(2ZRu6EzR*v&=tV zETJ0yEInUqA1VGmOfL41X%jwB9ZR^hBUM&OZwx%9IR1_iYj7aFGgW+svwa>=*Wka< zy}-a+ZL4)juT#uHHNEROnd91!3e~^kupAO-`@+)lzNP^FLoOvUl8ffVn;_tYhvgWa zs5W6kLFcIX?}X4G1-$qmCAqq}QPzvtzmf>dev_jdk&#GoUoo#*4kWMFk3N|E-Ja0h zT@IWk<75A>kx6UL`w!UI2PfoYq5x69-ik(*v;XHXk>s10O4CMq3^kiJvSkuL+MzyJ zTAE#&(x`CqZG};S;<(TRCPJEpL@KujCOVGT`2q#HWFXjCnpC&x7kIRs!gYirw{G_2 z`OPr$Vw>LkT3{nca{?CVM`jHu!(?GI8bX0`d%Q%`{$`5X-#>WMCCe2R)h_IIGFNi3 z-ahg@Dm}A9U03|;$qF}RB4uwXTRvU)Dvi#5qMoGBGQn`Zp4q7{2;U4!firEBsDyc{ zQvaA5kk_&7QH@s}P72cfhSA^OKeO`v^k{Z+V9KVxOH5y1|3`^dQB1)u6*ViX3>@w} zMCNZc5>0A@v?weF5t{{j05P$H^;`pyUaMzhoqneTN0sJxl7!^pL3$n1fFry8lYmN* zwr^^++WR`aqZ(FzMWCs>h7O@6lM+Q94}u!$G-}E~tDy{ddTB;%Y{ip}PCASXl(*Yi zDDStskL9n7G#bwqTu-uAvlip!1sE0;YKCAza=N;@N4iotv7S~1sQXa?@4F5kPzcII zysjw+jJndB0e3{0hC%KZE3%6YVyf91<4KrhAcE4w_E?G8r*t7$!F#8(`o!O75iV|>6!S+z+k z3NA$Oy4en9nFjlQMov-f8UB**9dP@hR7CFXwr?@x*BL8&P!bXmKmC*-%UPr*M)EXr zNSjM8NUmW7ID~+X=@@rQf{+tLfW(Adq(v!ymxeN%z%b|*TWdNLJ*uauu8=*vSIH}n zfc5*h^Vu8W0xi2z3ws^e53_YYrQ~+_?v-A%9TrahodM)fNfHK0n|8V4gTF6RxRYek z87ZEqlYT?PlnBF#aoDJpV^Ar~)S^-xibcXls`WfmqM{ad>U6kL*rbJ3+MOPV5O5W? zu}Hu21i;&Ev`1``?+80|-9Yo-EkUZ~mNx@ZKtYtVC*QNhCR%ElO$H{L@ek8U$jA<+0}Js$Gjnk|p5{lNr-t<~$r9yS+Kqp)b`cSz2*wgD66=x^UG z|L%il`OmYa`OjAqva{(F8yBY`D5V7rn7q%&6~D9ysMXsuWC^%1ayV$`pUlSl!B9KE07}F7v$D1z&#bG&l4OR+w;(;PEEG8BucXWSZ zDS&8>Wu35bN%%~4cNg=Kc$^h#Sl7_xt0N?MjW_AgiMjQ8{0qkOolj^>^mOqDmIfPvGuo zCGXRODaX?`B*k zzjn^_6$9Eb*ya0IQ|VGIAZSEMuth4ZlEYQ}FC$giE#48H{l_d3kmwox_eatSxi$$! z*W1@*DWYH-@-e)%JD z;%C6cBK-NrR0i z{w5ig)zl@<`v`kB^PHthAnbJtj$9NV8;K4T?w1scw@|KL{a*NTaY_>=9Ib2`DU5h- zxq6>_3&V8KQ_0*mG=zeoO0O7Uqfsvv>!psr8lS=7^?YL9L}na?A}INZQyvv{FBq6E z()Y#QA}{F=st;A!QNr=wvJ%LTQ-n&fgUy5mSl-q}OK(R5prEE?K~OO}{rrhtGV#z- zw(f(1pj^~pojQtuTYX4|{09t-zv1tH0l5C3#@;bHlJ9%tjgyI;nK%=3Vsm0oY}>Xb zwr$(CC${Z$%#MBg`~Th7cinzjr>ag>ty*1sKl`(vvs9^q_7ib0`9-l9f-6=X4ezkD zr#8mPglKEXgG4@#Y`ibJ+_!uEengL!>H>(>V$w0bTxqDPK~nb%qngKVCgKS1yDNnA z+& z?a2E6V8+KTROhvC77p!-E8UAyk3$NgX1ItAWXLc#XKZvY!f4lfR$u2kBGb!Gg!&R%aWzA-C8ZAV( zI$TqHV$7zqupAX3In#|Tbk#X^!12JTFHuFRv>gi+{+S0=0O2ti4Lv-t_RHU7&n9V4 zd_3JsVPEg_bon~#S~PQ|U{V-aIVecAa*#1q=9phGcao9qn)NVHMy z97iq(2uESnvr*bXiP=&qi8Vyp^FnD??o#5i-DU!Bc+Y>KwKd#oER|MYbq-Yn)C=#| z=AX0Ko@#5T5u+%3;>HH+FE68i6Zfxp*R$nHrJ|6Ehskq}Og^d>f?#Lz#Usut@d(yw zX(hOrBGwc4h1EPy3!jjoLphp_Vk#ASo$x*^u0JuhxLWjd3&s|F3rT);lOiw^^T|{a zOdYED_;huj#QSck3unrO#zNJ5kOW{e=*sat5$-MBss6;?*M&zo=F4-U4jO~cJo5W= z!Dh4h6R3|7e0Otij0dpL$O_*dB1($xPU2|ix6kHj$(Pl7noH*+X3HBj?+Laj!T@tU{I{S+R{=u(ddRMhQb zf>>jIP(AcFN~TE$pbQ!HMYtN1Psj^+q=H0t$-*7atr8(F?1k->@YW9ZNZEOQ5uLy? zgOR|%ElgMLVl;M3^;F~=ihDJ2Kgry#kDnXL=Mkel@j z0z(n68zoCEQOX9|@@=|&9dP-+FIyrx)1KqX&xNgeB@HH0(wt50E%ayOEyYg)FS>Ab zVoUI>_I-mbT~IahgI8p_5oBf`m`&r*&hk|5ZR%*o?ry9wd8yE;B zDgO5r4EehdjF6x5FEgB(Jn#bnSFbn%V7+i?T>k>0xel0E@u*Oj$Z@PkY3+sK+D9o0 z7XTy?U09}xWezH5HN_DBimORSoxH7wk14fBttmMomcb65V3yzsAo9Q8t(I9GEZfA| z_6_9A`0Nrua}@ymAq4(TkIAY)8Hlr!aYh8mUU2Dy-AP?+ zTIi<**IgoASye^dPsya~3EIAK>V&=~Z7x9Q`TaP{3fhAGdp`*ZfNm2`p$ixVb7v&0 z!sWzuwkhL#)PQ9>o3cdHH4ZBtlzA|SLS{qZp0u~O$KVGSsszAQd;Kp}W+dHJ=VKlj z9d=@AH#TCTZcqgT;3u)XQTqW(_l@tv?#J#JS$R;FKWS2EhgjSWxIOSm-Be28os>(s zg3y&l!iT`+%q=>y)K>=AH)@l@vjO_{HK^7vD%l-T)Y|z7*Q8#78O`4o< z?jg0enW||KsqvgNH6IEhe*#uv&#eAK6MsOoiY0wF`6F2c$*&Rf`cnmJa$!fA^c3vB zK`+!cr0MbZ#Y_aHh31QL+3l&Nw5y}7*V7COC`WFH0iEw*>CWlPR7_flDwgLFmJ|~c zD|6AOwml(&YPukc5Y#@Ymij@8yPum73i~>7*d2}!FxMvcyEc^WxMDN?EGXUo=MJ;^ z11gI0r6w4UN6vPrC6~G&XdOO!eqe?a<;?+w03ouF*%vyU^IFEmh5A2i<3AopALw7uJWTi9uEqS4J!5)(icG%VH||N3izDe?q|( zCPdn~rZ)VaoseJ){ilclomK2qjcR5kk?`?+usVmaf*jV@vGw-|7MX4~SqQxU@<9Kr zu)i3+rAz9q?5tyxneZ&KNq_ri>7onKi75vPP5viUz=H>pEvX#Er0)H-*rWs74hhVJG=icmCg|t#4yRRGt?0R-Piy3&}gGbI0shg zV~yAWUzDVmz(RyqC)jcGeIHGyw(C)L%H#=(TjfR5;k*GCEGQKfPj~t!uY>*|#UkE$ zbLj>s#o~BC2bzTq(C}F1u5}SK+n53rJyxH>Cyxpbj%}cTMPlDB_1_+|F|l3OUdiI~ z`3(Q`5%6G(G@5?MfnqPmZl4i3cqAlgY&D2`d1j~^@+q4Q*U=|$RQ+HUjjT!CGWPI@ z4mqt>+vC`5of&)VR%zP^vKbJG!RPg8(xy$o^hFX!8IDf00xGG;qyEgmg#3*JuMG=L zP&z{Bl_sDv5tuLtiU&kOkqN}&rpm#qc;`FCc%AU?+I`Xrt)96YEdYUaO#><*-7KQE z2F;egHMVxZPIJf8F<8KEqshYPlfgYqWXSAqVyQfJ?D)cG**tYar~B9T)q;Uy8d zR~cs?W=9BSDR^KNLZdDBERIBm1#42~^iQa*L(KE8d3zNX^+U%J_Zz643tKW;@@m$xpBW4{`7MqB2pfKo^-Edr0N4sVkqB!| zwC4dnvculwgVQ1dy5!d(4HU2{nwf%qdf8zvzH}x{78aSX1Z9Va9v6@$a5T43C@y8x z-q|_V?nL6O|K*&)=m67fJr|Zk!1}jBrPA{JJ~S4;_(#@A%ca-z#(J^EO{2V0p%@a` z2MFA-c#GLmZnd?^;Prq3WuUVQkc5TP*;mQ-Nq(>QKQhJ^K3vW@lmrFQaG&pu7He#@ z2<>CuB5|$Lu;sGZ6G8SGl0%$Z2s0@8+%A?Ag3!0M+7Bonj~m(@-#yd0UCm|X`Cq<+ z>_v$GJzTm8DC)#`9ZmkoV6tN1djU1Hw%XZgw%S6R`Q$L8iA+a9kwA<+SA;fZGD8VfK{Yl+G| z-dyX=Rw&)v`!;9Gg(ygbujmi$y|8=_i$;ozuMc>fQ}~~UW$~u7ERbc^Ys@XKO{uUe zanvM)9E_;Mqt_Jl+HGN`(>c-(?;5+GA6KQYL>JP~2pwxc|8M)p-xAGddPwh=M{&kh zW@3@?IYnlWi0EvbK;^lo;L|3z9g+(5a{TW50mh0y`CasU<4X)r#Bm&KQdgG_^}}v$ zbC?HyITG^xw^T^D&qdzj5Bo#X_uHKU8=9cbe6WYptyD?kh@O`-;ZHeNk_z4K3{)D4 ztCKk+<-l4YL?U0t2+-4&0~r|<6L^A zN*wG67@z+^G2tc_n+K}96(C=3%w6$$k#*0D90vGdrtfZS2#5Ag2C}Knv)L`HOI%K- zH=?@$lTH`AwQ$as8WDV+wsB)hkUpM&IHvusHeXtJF*K}x zZ`*%;w1#W4+KD}FZ^UeSc>Nba2IY7>dPGD;BzRW3qo?~Rch>-07reH=s73^&^kO`6 zE0oJcX1bqCrc9%rrBmrJfY!qhfA}NFvzJI;C0^b^}cj&P)PVURBTq;A`$8x zm=^0dnEcdJf+>{j?92JQ38Sw@qo&$2IlRe)?z;xK{Pz~Px9bS^b7n@T8`s0*Q?MTf z$J0870p=jbp6HK9qyD=bSI#nE)gcr+>K)8F?8j6L&^@%OU(|) zG?V#bE;xS#oZs}v(|UDT{7%#8&hJHllX`swd7QSLL){U`!TB-^FNB>3dcTk6IB^$} z2~do0gSCFMBPM;9LQtGjm8`Med~Nx1aret+uS!8Z1ktA-cxquG96hCHSD| zgO88S@2gw;UA0Pm%p|EnL_}H zKnA;{CNLnNUm|5NG;8U^w$t} zkNcS7bZrzl1%=qVyPy_4R<*@iw^yw87q>;kP^CSamZv*|c3av)Qr%`7noYa?ZNU(2 z9`+MPVQfuT7@x{)6+9cyXmuw* z;qUihl7QA)rLdshRapw)9=r|6D)t5pr;LtLY2i~;U|NiJHvmTGjL^mRD$uDsQhwY#vd+D`WB;Td; z^IJH*o~}S0GfS@3@{SY`Cm2E_^6D{8dLXc<3UJYm`ZAHIWM>NjV#E-A9;Vb^ZI&@L z%7^Z0`T2EOrGiFox$s$o;v&`DJGQiIn3f!kGF7hMyc}PNPMg*Aj;JlsUY3VJf6Sth zypD&Q)gNZxtng-}ab^799(qH&y1R_e;HDZu&%7o0o1Pv~g=RJUN2hJKd1)vzQ6bUr zbY2IBrL^bh?r1U{mV``M!b+?_%yGG|@Qag!L(0jlXMKQx+qPbo9cm`Dt3tFTcvqi8 z;QPl1HR}b9%CTee-QjhF+vTzd<6oj47TscPg$T2ky*dQ_(LPu*dbjWCwjAbva)r^U zgK+G%q!9l?7_sQET>hfx~ zWcq438H!%>sysueW6o!_YOhkETyn+tR$pH9LpI|cd8t+}7nk*q-LjkxjAWIcBN>E; z>lpzdp->P1Hmm*apV!3F7-B(?@^1mz!!5e zya%=+`lXP~hFfVSu$#D02jS+Ji7{C9Mg19n#l9;3kA85;eSfGP(472its4P}5SSMi z6psrpkr0UZeUY%MkLf5<-h60W#W|+*dMcBnm@)@nB$Xjp%6Qqb4CI^lZ=D7t(F77+ z?SzICTcANT=vP$XPYXqiYT*+ZWF8bFoEHb{*;@{cN^OhzbX6_Li5UIfI~g6R4CC3j zgjWPVhESgECf+-c?dxFQ5Z%K}aWr@p(rR<^=EN!mOFdTkH%PHT`_h8D8~;FzNJ&6cbQe-) zH8qMb;XOFQj`_R!*SUFs*Ru!`*F>kr2qdM+E^d-FCeznY)RlX)-u6 zW%k^zOElN-F}|8j;N2b3DJR*!jrY@zqm7X_+Me#Q$xa~>n?B7*x;N<3VpSJ1v_JTM z+nx?h${%Zr%)2x?_Yj(amis$|Ix;NP!FrCHERd_(gfXy}!}3d7n@ zTSY%WVq2at|SN!nTy z8irnVZ3;Ofbo~__6;&`2$97-kNjTxluJ=nw&+maNu|Y`exB2gukdUI51AHD=ZB^@3 zdMzQ4Oj_l|R~y%x+Z(63fc*qaa;}YA@P~vw?S2w4Kzp|~{!7iN8k-Esq}OXJBb=;f zt`0TA1cw*sdpE42C?HeqcD*f)a!({Q{p9# zlRq`0o5&9cEt|_d z=b9+$Bb7`enaOSw-_joiRRglL;j&D?{O-6U4(j z<8dCv!FR9!3-@`Faljc5d0lO+Z{M-TH_t;K9%iLLl;sszxl-o(p{rbKN(_RiYt75j zd<_LC*|lh+VQz)Cq22$iRA~hIetpQ}avr)=DD%h3W%UrtW0u=U9{9aRa7e}GUHhhq zm`GtAV4cbRh8l&efwz-(XiQ+LAu%Iw*`na0v|KOiu<1bRBq|B3YiGCH3Y3G@D|{08 zE;1OxPb-;M?sl!ZLqY3`u8+HwKT)V$srjSB{gkFQ?N?EV^~xbMqep;vJSj66i9s*f z#n5b!o;N`DHN-?*i4(`nyPw zg>P?<&j~2iC_>rBlP%o#j+V5Al1*otNjZuahYiz3nd0T;-K5}=>W@a$BsHedsR$Z{ zMSAd=J};E#FV*d0zE+)0wp^)_I`DlD@$Tv_w$W^{mLnd#?s*G0oy-#d)x#KOI`f&` ze2etcJMw7il#)I2{_2UYRY(%P8(mHsM3i2J!(~uGmuNp61gY4W3$zs)S|*PM{#T7? zK~ArshDGKK|W(1JPR1o|t~Ap6S^k z+9x6mWL*M%!ALN)sKOOQTGJ3Y@WpI57;Y9NokYcO8t=N*fwWkogLk(0;@dGT0)2_T z5g-KvGkc+tSpFyfx8X)aSd<|~Krf=D3QSBHWs|Icu6cg}OijLyP$mXq)q|+E@U)0l zHwjTm6@23DfuBLAHD@;$kZlf?L|RZ#fefp3U)VN?8mIqJ-})Qy?#{@AZ|Lp37Su$B z;#*)EO(WSGF!khq; z%QO_My)9#C|7bCbOnjnX*FD40i&b@+e~CVpz44a2J5-5iDkYijrB{*Z%7N_oQC?!@a7%kGcqNBT6<(a1Kp&;d`>4r^Do)Me(hf4M*X$ z0{=LQ$Ni}jk!%hSq5By~<&gom4k{g08uugZMUWAUh1g#@5HOd?tUuku^I{$B9elqmACeasCt$_vPyO zso94}8rS5UzDLGg@IM_+56-+`Qtz_bs`5WF0RrTdYzNMoEdr8aNA=(~6Qbukis}4F zivMr;@Eer7nP!PjNjN&$kAA!M(2K&ErS%un&7puK5UWa4M7oXL zc`tG{IRBuJuhQe~rqsM@>q0+W|=aUq<~m~gjVq5^ig;HU1@FKeEZ+~1Ovlz z%bSkh_JQ_JN7vN{Ucj~5b%PEh*#^4AqR7+45jXf>-VM}sZA1hD1T;!t7rs+EG1`;; zTO^&dwmW&x-&f+5(3+l}**<9uz&q@@GT5&Wl6h3H9U^?g%jIhaco()92OtzN|?~&qqpSDEaPgFP^?w`qo z%8UJJ)eD59>EY^bw|2r&I2MCt#$-=QP8oE@%hfxX2H^8xjAi`5E4__fAQ4ch@nJt( z$7gt`#|{A%E9Cd`YJ`**QgVxS@8Xr??BHmAk<$W2*3LA?a(`1yk0gg*9tNK;`WT{$ zZtvD|F^5=gmU*jq;;Z=hTg|Rf750QtHSBlp$T`1nx_J6p!0E&q$mV=>I&6o^2TNJH!ewL5M)RDb7Am@^m0;Q|3B$*O(%e{$H{WTOhBjT8gkx(D2K6DyRN}@>RW!_3hulE-S*BglUXCi*Y$Yt?I@kf8=Dg<_~s|%BW8a8n5X$A zjz+%dff5_weA5U1`uy=^CtWv3?-LPhIyEF$}^UFB$RJq>$GmxWWJ zkQVY&9ubZcUuTUD?906-3|>5a++deDx`J|ANdLF8cC1=T=IPCY5X6oQ4)yi*LGqFZD7ngFxuand>QzyPNxoS;mW5DY#KPi&eLD*a*&sbp zA`pgG8sml5?RlA{r}cu$*HT4zlM_U(zpXe_sLiFi5_XEc{VuRLLvR^QAJbnux?}ZG zq6!wHRJ_jMU+fkBL9>5A5%`S&ncxpM5f18@6jBKraqN>BL2;-StYY`LFS8FXhG*a~ z1DEVqXD=_-lT#^^A7LRyvJch0C7n+rb(AJl+nf@Cl;TH4FuAWKut05RH>TG7`(Y2q zNria}Z0$dVJ3%+x)pkS`noHUG`taWp#{;&rO;~2;W4Bai>OH6~R``Mwt|4wM?ytt=%T| zEKE|Sdu=kt%e5P-OxLrktaB|{CyEi36odo?Q^3|pUIb=*dU5zsm9@2cDv5SFHvyYY zGagr5$J^IFrHGLOlHvJu^5dg{U$&cp0KG$!>LO&)10RQ_Fm(~P3qju{(kKj>vuVSw z)*e(VH#Gxm`CB$zl230n?ziE6xpG1kIwNetqQ$N!UY$!j4clp~Z%tIvH+C&7cR)f@ z{H}D$&N^I#9hpHRt4K!PalFLov#1=Mz{$6EETRpO^;C|+Zh@C8QR0{D5Ztr{!)gW6K>-31OW4739?MwijVA7Y2VPg^pLK$(E?*i2eLEzl1Y>&g413$s7)eC4#^chi|J-SkB=wbn$xt`&o>iU|7lEoQn5%O!-!4Gjfncp zW+CQeVlIbwGCIvi{MX0x1=BcXpLt2@J#Lzjl+F+~Kwd}PTp6$<{cn7J)2SES) zHZx~d{+$*aC%C`GST4iN4Ht5m6=LZa-SRdJY*)oFauIrBc|PpP*EJ=xmEBWoSZ((& z*`o%$m-P-zC%9+fdv|_}d1l&{M;7#_a(v*Lsu@YHCxe-D9OJNe!$Si*f!M30<)fq2 zp|NgWm`Tb;>jm_yJ*DV(!y=?419%5|tNx|zSa{^KJH{S(x+kJk@L4d z{29{v*!GeblR#P|*~>veB99}pqnUOcRO!?@6v{l4n>DLkPl^@sC-#oezwjmey*T5|aNw~ghGg18`oELSOp_FZQXi0}Y zq@^=j@bRf?f*hTCNRIBzNULv?Bw2Ov5fwMjZbRed&bnZ%fNDC7z_$@-Cb%0%;qd@v z>n#;S^NlRssH7D0nRP3QzY!6*n{UImUGk{CS5a_La>)OJN?mvH9wmJewRRL=Sd)*7 zmb6vbR2vGO6irL$w@l-{o$p;aBCVincn=B0&IV5?yz!Qq1E1JPeQc|?DgP2Ba8)1H<6(Fwb9Aw*m zF=CZGEuhV9IL`L-`_rnbcZYAR$yVdEQSXI$2%zqB)!Q1``*NdoB#Osw=pgokh|tFv z+_uvN_lUo)Pha$|D|G2bfu^Zfw7u7u$U*6>PR6o*Ayqz2U$CyAAj0-H56jzl0;Ytn zXqdnCDg_ zp%FXapeyP7{Jf(T#122EHgy5|YpO)t=f z<&BhiGL!GXl5*p1@LWTzzWMciw}YtOTANi2@yvSkgNCAS_UimH#-ORlw0d*^Op`|V zP5fr9fDI0K_phSUbN^|~;G~ZiGV%Q8VnuY+7~e^7<`0H|?6;?XCksYs`zwT!4*pS0 zS2kIg^+)z}`tNBJ&6Y!SHKU^0P*gA9kF=Og$lk@RJB@aTi&W3S!$3=0s)Y1#*zl%Y^-^tV)=MeuYOKo_V~b zwF+i?Q!{Cm{BOpIEgkPrH6bo;3@wh??)jw`6B#w?$H{Lu_(ux+FXNWmGFa{!GNMCV z@emhA)rmJfQxf`C^l}fC)wWO+Gt(ZQt{qB#I6vL=$ZrVC2a1{p-3O3N#MDU+oSICC z(m_zI;$|ItCPjM7PIUd??7-?qj&GDY8u*Xw9#zs*g%Dn}dJxwqlG z`>YGU&vTNw0{e5in}_k@XsaYapE=X6e{{$HoF1eBHD`d>1wz@O&3uBnU;JRbq`7QA z#wJc=|GtxSLrtjJj+g?S2)6EQL1bFgUO_7oun#5yAH!PV(8rM1m(u zN8r5i#^8eH1;({hdmCEv$~2Qxw2sq!cBeyEOtuiP zT~xY$cQ07ISy8Dx3X(>Y(wA{zj!r;i^ec@#>-Ex<}kz0`|_QiEeCo z+JPi=lbv?C%RDFyo&q>5Gvw9td7=--c2Hspqd=1{59YI*zYcXZauDyXBc7; znl=|283Lo!8tEk)<>IYCjkMs&N(*9G+ggSd?`GF#zZ2Xjxpg9aYzjnp;iY-os#RsB zfCax)O!j0 z)&0zfqAqcw)HpB=W&?K)a_x$_*3Eo=hDhFOH~&JI_jg%FI%;})JoV)g;tuK`iS&9k z7&_y9mjG)Vz=*k+)|;<vA(*hZTr0_qV`X8Lk$UC{UZta`n1UNfu2chvnwDum3Ge zgNOV_*CUhiR@Mb})~46b5M7sW2U=r@?R&F1Yzgmec0JfqD&>yE;O@)LLFK(8hFJS^ z5$a;auNe3#vcg+a^x4P~?%U|p!*=s`>XeR30aH5V+99|~l>JE4#bM4mm0X}!vGbxM z_v%NAbn{2W4;E}KkvQ$=$-C#>Ek6<(8uaAkWbG~s?SFGG@=#;4_jD|-CQ7i6jeG0c z&kA()L~O1jF@|_0G)uH@nkk0~IM@cudS-_6L=;B1PLY!@@f{nor!Lk?@x-@<8d6u% zN3kxe?Vb3gvnmOq<(vly<>YCi2r~Nj7{N-S7i4wK37O&N7AmT=MN%)K$&2n*!7)R# z;Ss&IWR%1R%ugYbS; z4f)J`{T0=ARu`Oz^9*LrAXMaTzlfNrdFLkLxc}Dou|nn)+};g7;&FXkmI+hj>Nq!0 z8%SC6V}U>|w-trRH#-pFvz@?5i5tV3vnKj=3>{k?9!_STkG{>kA>pBX%v{`r&$c^{ zrNbF0IzQsK&IIGM$NT2Ms^xo@ zOIlksoY1Fk+KU3es`d_n8FEw*&RZQtGirL&(E4k!1LHxhohm~QoX8ZLxKT7vJiTD3 zJ;mXvQlfEKLTeSXRh3W3myp8s@|?a+2=K_BOw?|8%i@kQue1@y`C3fWt{Pzk3cRQ*R`sLAcgMAdmOH zz-ES8NlSmNQ=a)Mmjh=-&j~We_mTRZdm!!bGilK%wn_v(a9F73k9HA}X-Sa&tMtb0 zzkjY23{Phx>8mO_u|huFxHyTP)-B}{KcFnrtAxQQMFlb|Cs4W)p#?fZ0Z^$gv@B?& z-;3$U0Z4#?!ObtMeDPzMj$)E$hU)LFT{(d`wU?%U7yd%w{K7?VmM_)J-x1!OfBbG2 zaN|7;S_mk|KkSd)eHc=oCe3PAEJB^7X2Cb4v^HG&-pR$f5w7!_ z*m{#R{QX8aMmD7F58~xXyp{Q)-&e*^XiF(}H$#2%&aVOyro-51yY@T#Bo9{N>-SD8 zfimAgi(hrDFy?ga210cCI0dY+V-oBKKh2M4%=WmlSO_cxz?~Wf4^paRU&Mfi)3oG6 zlUI`obaz<1)M{+or2QS5`iGL8tOCq)SRc*)Hh63^+;HBJo_vbPu>ZHA=ubG^7U8DG z&DOM{bN;4<(9vG&{1T}VQ-u?B0{y({o$Ld4qMWaW&v7+t==*5~iofF?hspPMAsC~H zJ&7Hi5Xst$fx*I`(L6P>F8~@lm2h%x8Cs*VqhW{J;eGGtrRo#hIq-v-2vG*1j~=yo z`=K~E#F7hXfg;Kg8V?}Hn%nlH*<{8C$EMfy)(P&)kb08lWTR(giYOQ*iJM#Fu2l`b zbitw^-n;{})Es$TRaKQ(Y>-IT*DVc=qL9?L(Q(($_xwaNRG%l zSI!)(X2Z_J4s|7Ki0uykh}32xC%jWNHXKTsqAEm>lD*;B$SV?61g_z@4n_H0_NAs< zsE^wy9V12YO+q$@AAAYRu>T}^vD8~MgEX}KGGq5aFd=|6iJ}+;nj1sOL-WDd^8j#!>+FNMlOt@s33w*3>MU~cJVbdAm zGLPlJ-TuLPeAjfYsYf~th@?}ZJ_=L%ITZta+!ITLDPq-0P<^S1v61pXU)LZ-m9mB0 z{XJ0I-G$E7iHZDuLHlr)$HNi7Rhc|Eo%0~^pmXoa@A_XPo;2#-Wk^0B#H_z}B4XGt zN(>1A$%(q;NbdogtZ9M5juDj~?k@n9$%h*f(jY@kPOQ(q7dOj;yS@k%13&4oel&KP z7;~@c8M*k6O)P~`$pok9`mElmiaZlq{f7O8Ul&v(?LL-a@)bJSjVH4oM)3^ohd&Q2 zp9mS@K}(DLRxV<*Xjx35P(L0kFXkP2%h0m5_5F~4^JT7_Z*F!u;_1=CLCzamJc5$c zhd*^)4On>p%+HDZVL1q8H>FQtITm=laNSrO#0(&}mnu*jK@Wf5r#aAtFS^&-U+10( zX2)Ad7m6TR5mC+CSC@i-nCdD9G@F_z)$?s&r7p3Weu{1S=wiY=oI}}Y%tY--)rjq(#NNioS$69ak@r|(UuNcdsBo{qY*3W@$?bSo9Q zsN3`PNAYkm#vrDt6GuCF9i|QqZBKaYe&(|wdubw}&-v5#BV&YE^2$IUPwf}rRF*S# z!&t2NUtSaf*0^14^bdm1@Lc_mi^Fns$pagO&M<#sxQ7zK!1SNWr3KZRK!nTjK>-hO>t&WhP z^lAl&*_h3wT4OJ^{r2?-)v$nr;`*kyY898}()yKNsYiu88aA9?>lurt4hl@3|6HuG zXfL?4{q0_WYN+CojUY-b5BCflfIny1PPh+-?L z@mk@b8nQ|BpWs0WJ-i-zw) zvfuUlH==IIpMRiw+yqaJ(pL+E8I|ZNXK2oAh!$hE7l=xZY+r=FYRM8S5S~R@C_T}x z;%I>^X&!Vcr}?AAX;kWEkOcN)_g$=qZ^GAP5&#Jr+L0E8ZQwjih`)+c_EPRT_c!RF z(>^S@J?DO^bwXesGb{2plWSr|{6R-?rV~`klDkx`6DSb*P+*VFy`tt?s9{nhN}eGU z2RIO#nOf9$o$X9uJz;~Kw2mFWs@ESJqLkQ1B!NZ7C;Mq0iF(@?QHRCrf71>X4rqy0 zE;ezUDrJ;B8Xrj0cD?SNMU>?5me@RcKP9mvzD-xC-Bgx$5i!X!iEE_zP9-k+uMr0~BTfGI9vAxNHDR6Y$!ix;}Zq+>Rg*q z7Zy5>hXSP1;%zi@k+7#u&GX{dRCJFWYmM8xS(;&w7F2W|W#i`(?$99_4cx2hcWry< z=2-PJ9GgmkQ;9x1FF9K!cWlRw)mv&hQ<;Byja}5{6usXvYEC9ES#6_)8M>+KhSoOQ zk&lf!eKK{kTSfG&n$`d)k6Vf!&7^=9)&>itv)lw7IYjg6z`(i9rs0nnq>cEp2cyhZ z$eUMl9bW1+ZfH7oQ^tnz;yZ|Mn}m6n>* zo|x&c6}iOYISEU~S^*RX-`)$+P}9OF9Sbi6tI zL(A|Jdn!CMz65~BAzOxnlZQSsxZD!O@adPUL!x7UCLZ|z z{XKN$aOmEk>2j1_veud)DB2M}W^Xru9G@${*=-IZavWnrExCk@UhS{6Vhe4nIUV~a z2e=+zF-(}9KVX(}?s~I@GvAAKH#h{%^i}obxpZG3dnt;V09Pt#6IP*l1_JRAv z7H|drtCfIijCe}*=VEb!To+%?BxjBdm&=@sI|SE_6RuMxHiYuu-e1-2N3n@qkKX9t zG!ZRt@~ktEXPfFTlde&L?6sx>d5ba*bw$b3reah55p7qUoV)vdwMmfcXD$VbT7!O} zV0QEnr@n$~h76PpWh5^z>xR2h49IQ&?e;4i(s>?bB#(FVd$GEc#Ok~Betx7X4y-o5 zy+fWTGOK!$4U@stzEI>+J3|NPfWMKDz0Sz9aEpGWoJHVLW*f6FrdC@n;3igC4mxfQ zeMA0w+^|_U_4%|hR8=W&4;F1#-1eZ&;5e|pjrgdT>tcoW^{3}2_zvPW9}eXIn`pOn z*dOM?Nj(}{J>wW!-L#0ooV5Lsd}$eYD_wK=-<%A{@57wL7ma@XMqaDPkqKG$+Vvdv zDYrW8Qb?IxQ|afi|LxPpd2@dFH`)aNz{37>rpCsuIKRNoB(*`5s!~qmkCU1Nd}?PK z7H_3}c4-({qWy33=V~Xx@01snN3^t3Qqog{|6I1iB2BM3<)=igghsYaa=Up_^~c=c z?{a9{|KHnJMgAUFWRRAaXw^YAvkq1aiQ_V7Bkzj_p4{8Gcg^;YIn|L{Rho5fas1%@ zTU=is%x~rt7NzHDz!w;@T~>B@I>zyEdRho$_40Q1``Rg6RbwO+`lHzK6t zTspncMuG1<@#{JM<)MJ|vrb3<(49VLx_HwwFe3p;6(VACQik{OdB@>FMJ?Z~Hs|Qu zkMi+rB$pX9u^naq>RTdh^@xVybB~ZG-9C$`KkG7NFtd zTZ3)2@9eJ~>(z)Em%@?VpTwvT`Tiyp&3AK@@5#A?Jv=@(symo_o(5=-fZp3IF5-uh z_1kDrx!s|zw*wDIPq`dG14wna1$kBNv-sNPI&kbzm8+TGh}{7@{)s_++y@a?()-XF zNw4mk%eYPD_goky>K%LIXL%67;?%fU@5Se&O9{vIYNXb{lRfZCEftiaQ_p-s8kX2Q U5SKi6gMogMqH-cNzx4zDAIBzfM*si- diff --git a/docs/management/rollups/create_and_manage_rollups.asciidoc b/docs/management/rollups/create_and_manage_rollups.asciidoc index bdfd3f65b3c87..998aa5f7d39ca 100644 --- a/docs/management/rollups/create_and_manage_rollups.asciidoc +++ b/docs/management/rollups/create_and_manage_rollups.asciidoc @@ -4,10 +4,10 @@ experimental::[] -A rollup job is a periodic task that aggregates data from indices specified -by a data view, and then rolls it into a new index. Rollup indices are a good way to -compactly store months or years of historical -data for use in visualizations and reports. +A rollup job is a periodic task that aggregates data from indices specified by +an index pattern, and then rolls it into a new index. Rollup indices are a good +way to compactly store months or years of historical data for use in +visualizations and reports. To get started, open the main menu, then click *Stack Management > Rollup Jobs*. @@ -15,7 +15,8 @@ To get started, open the main menu, then click *Stack Management > Rollup Jobs*. image::images/management_rollup_list.png[][List of currently active rollup jobs] Before using this feature, you should be familiar with how rollups work. -{ref}/xpack-rollup.html[Rolling up historical data] is a good source for more detailed information. +{ref}/xpack-rollup.html[Rolling up historical data] is a good source for more +detailed information. [float] === Required permissions @@ -33,10 +34,10 @@ the process. You fill in the name, data flow, and how often you want to roll up the data. Then you define a date histogram aggregation for the rollup job and optionally define terms, histogram, and metrics aggregations. -When defining the data view, you must enter a name that is different than -the output rollup index. Otherwise, the job -will attempt to capture the data in the rollup index. For example, if your data view is `metricbeat-*`, -you can name your rollup index `rollup-metricbeat`, but not `metricbeat-rollup`. +When defining the index pattern, you must enter a name that is different than +the output rollup index. Otherwise, the job will attempt to capture the data in +the rollup index. For example, if your index pattern is `metricbeat-*`, you can +name your rollup index `rollup-metricbeat`, but not `metricbeat-rollup`. [role="screenshot"] image::images/management_create_rollup_job.png[][Wizard that walks you through creation of a rollup job] @@ -53,11 +54,12 @@ You must first stop a rollup job before deleting it. [role="screenshot"] image::images/management_rollup_job_details.png[][Rollup job details] -You can’t change a rollup job after you’ve created it. To select additional fields -or redefine terms, you must delete the existing job, and then create a new one -with the updated specifications. Be sure to use a different name for the new rollup -job—reusing the same name can lead to problems with mismatched job configurations. -You can read more at {ref}/rollup-job-config.html[rollup job configuration]. +You can’t change a rollup job after you’ve created it. To select additional +fields or redefine terms, you must delete the existing job, and then create a +new one with the updated specifications. Be sure to use a different name for the +new rollup job—reusing the same name can lead to problems with mismatched +job configurations. Refer to {ref}/rollup-job-config.html[rollup job +configuration]. [float] [[rollup-data-tutorial]] @@ -66,10 +68,10 @@ You can read more at {ref}/rollup-job-config.html[rollup job configuration]. This example creates a rollup job to capture log data from sample web logs. Before you start, <>. -In this example, you want data that is older than 7 days in the target data view `kibana_sample_data_logs` -to roll up into the `rollup_logstash` index. You’ll bucket the -rolled up data on an hourly basis, using 60m for the time bucket configuration. -This allows for more granular queries, such as 2h and 12h. +In this example, you want data that is older than 7 days in the +`kibana_sample_data_logs` index to roll up into the `rollup_logstash` index. +You’ll bucket the rolled up data on an hourly basis, using `60m` for the time +bucket configuration. For this example, the job will perform the rollup every minute. However, you'd typically roll up less frequently in production. @@ -85,7 +87,7 @@ As you walk through the *Create rollup job* UI, enter the data: |Name |`logs_job` -|Data view +|Index pattern |`kibana_sample_data_logs` |Rollup index name @@ -129,9 +131,10 @@ the key information to retain in the rolled up data: where visitors are from (ge what operating system they are using (machine.os.keyword), and how much data is being sent (bytes). -You can now use the rolled up data for analysis at a fraction of the storage cost -of the original index. The original data can live side by side with the new -rollup index, or you can remove or archive it using <>. +You can now use the rolled up data for analysis at a fraction of the storage +cost of the original index. The original data can live side by side with the new +rollup index, or you can remove or archive it using +{ref}/index-lifecycle-management.html[{ilm} ({ilm-init})]. [float] ==== Visualize the rolled up data @@ -146,9 +149,9 @@ Most visualizations support rolled up data, with the exception of Timelion and V . Enter *rollup_logstash,kibana_sample_logs* as your *Data View* and `@timestamp` as the *Time Filter field name*. + -The notation for a combination data view with both raw and rolled up data -is `rollup_logstash,kibana_sample_data_logs`. In this data view, `rollup_logstash` -matches the rolled up data view and `kibana_sample_data_logs` matches the data view for raw data. +The notation for a combination data view with both raw and rolled up data is +`rollup_logstash,kibana_sample_data_logs`. In this data view, `rollup_logstash` +matches the rollup index and `kibana_sample_data_logs` matches the raw data. . Open the main menu, click *Dashboard*, then *Create dashboard*. From 50ad304a1bdcf28961ff02c1b3f736dccd5279e4 Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau Date: Wed, 17 Nov 2021 13:54:51 -0500 Subject: [PATCH 006/114] [SECURITY] add clone functionality to role mapping (#118434) * add clobe to role mapping and update functionalit in role to match UX * fix some I * fix jest test + fix table selection when canceling deletion * add tests around clone action in role mapping * fix i18n * remove i18n * review Greg I * fix styling + name * add explaination Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../public/management/management_urls.ts | 5 + .../delete_provider/delete_provider.tsx | 18 +- .../edit_role_mapping_page.test.tsx | 1 + .../edit_role_mapping_page.tsx | 14 +- .../role_mappings_grid_page.test.tsx | 57 ++++- .../role_mappings_grid_page.tsx | 203 ++++++++++------ .../role_mappings_management_app.test.tsx | 4 +- .../role_mappings_management_app.tsx | 10 +- .../roles/roles_grid/roles_grid_page.test.tsx | 14 +- .../roles/roles_grid/roles_grid_page.tsx | 220 ++++++++++++------ .../public/management/table_utils.tsx | 37 +++ .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - .../functional/apps/security/role_mappings.ts | 12 +- 14 files changed, 424 insertions(+), 175 deletions(-) create mode 100644 x-pack/plugins/security/public/management/table_utils.tsx diff --git a/x-pack/plugins/security/public/management/management_urls.ts b/x-pack/plugins/security/public/management/management_urls.ts index 4a950b2ba1a16..371de4fb7f481 100644 --- a/x-pack/plugins/security/public/management/management_urls.ts +++ b/x-pack/plugins/security/public/management/management_urls.ts @@ -9,3 +9,8 @@ export const EDIT_ROLE_MAPPING_PATH = `/edit`; export const getEditRoleMappingHref = (roleMappingName: string) => `${EDIT_ROLE_MAPPING_PATH}/${encodeURIComponent(roleMappingName)}`; + +export const CLONE_ROLE_MAPPING_PATH = `/clone`; + +export const getCloneRoleMappingHref = (roleMappingName: string) => + `${CLONE_ROLE_MAPPING_PATH}/${encodeURIComponent(roleMappingName)}`; diff --git a/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx b/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx index f9194860ddded..9130a6ba1830c 100644 --- a/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx @@ -24,10 +24,12 @@ interface Props { export type DeleteRoleMappings = ( roleMappings: RoleMapping[], - onSuccess?: OnSuccessCallback + onSuccess?: OnSuccessCallback, + onCancel?: OnCancelCallback ) => void; type OnSuccessCallback = (deletedRoleMappings: string[]) => void; +type OnCancelCallback = () => void; export const DeleteProvider: React.FunctionComponent = ({ roleMappingsAPI, @@ -39,10 +41,12 @@ export const DeleteProvider: React.FunctionComponent = ({ const [isDeleteInProgress, setIsDeleteInProgress] = useState(false); const onSuccessCallback = useRef(null); + const onCancelCallback = useRef(null); const deleteRoleMappingsPrompt: DeleteRoleMappings = ( roleMappingsToDelete, - onSuccess = () => undefined + onSuccess = () => undefined, + onCancel = () => undefined ) => { if (!roleMappingsToDelete || !roleMappingsToDelete.length) { throw new Error('No Role Mappings specified for delete'); @@ -50,6 +54,7 @@ export const DeleteProvider: React.FunctionComponent = ({ setIsModalOpen(true); setRoleMappings(roleMappingsToDelete); onSuccessCallback.current = onSuccess; + onCancelCallback.current = onCancel; }; const closeModal = () => { @@ -57,6 +62,13 @@ export const DeleteProvider: React.FunctionComponent = ({ setRoleMappings([]); }; + const handleCancelModel = () => { + closeModal(); + if (onCancelCallback.current) { + onCancelCallback.current(); + } + }; + const deleteRoleMappings = async () => { let result; @@ -161,7 +173,7 @@ export const DeleteProvider: React.FunctionComponent = ({ } ) } - onCancel={closeModal} + onCancel={handleCancelModel} onConfirm={deleteRoleMappings} cancelButtonText={i18n.translate( 'xpack.security.management.roleMappings.deleteRoleMapping.confirmModal.cancelButtonLabel', diff --git a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx index b624da2cd88b4..af7a2fb8d5240 100644 --- a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx @@ -39,6 +39,7 @@ describe('EditRoleMappingPage', () => { return mountWithIntl( ; rolesAPIClient: PublicMethodsOf; @@ -295,13 +296,17 @@ export class EditRoleMappingPage extends Component { }); }; - private editingExistingRoleMapping = () => typeof this.props.name === 'string'; + private editingExistingRoleMapping = () => + typeof this.props.name === 'string' && this.props.action === 'edit'; + + private cloningExistingRoleMapping = () => + typeof this.props.name === 'string' && this.props.action === 'clone'; private async loadAppData() { try { const [features, roleMapping] = await Promise.all([ this.props.roleMappingsAPI.checkRoleMappingFeatures(), - this.editingExistingRoleMapping() + this.editingExistingRoleMapping() || this.cloningExistingRoleMapping() ? this.props.roleMappingsAPI.getRoleMapping(this.props.name!) : Promise.resolve({ name: '', @@ -327,7 +332,10 @@ export class EditRoleMappingPage extends Component { hasCompatibleRealms, canUseStoredScripts, canUseInlineScripts, - roleMapping, + roleMapping: { + ...roleMapping, + name: this.cloningExistingRoleMapping() ? '' : roleMapping.name, + }, }); } catch (e) { this.props.notifications.toasts.addDanger({ diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx index 5f237e6504d32..d9009d49b592b 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx @@ -10,7 +10,7 @@ import { act } from '@testing-library/react'; import React from 'react'; import { findTestSubject, mountWithIntl, nextTick } from '@kbn/test/jest'; -import type { CoreStart, ScopedHistory } from 'src/core/public'; +import type { CoreStart } from 'src/core/public'; import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; import { KibanaContextProvider } from 'src/plugins/kibana_react/public'; @@ -21,7 +21,7 @@ import { EmptyPrompt } from './empty_prompt'; import { RoleMappingsGridPage } from './role_mappings_grid_page'; describe('RoleMappingsGridPage', () => { - let history: ScopedHistory; + let history: ReturnType; let coreStart: CoreStart; const renderView = ( @@ -44,6 +44,7 @@ describe('RoleMappingsGridPage', () => { beforeEach(() => { history = scopedHistoryMock.create(); + history.createHref.mockImplementation((location) => location.pathname!); coreStart = coreMock.createStart(); }); @@ -188,6 +189,7 @@ describe('RoleMappingsGridPage', () => { expect(roleMappingsAPI.getRoleMappings).toHaveBeenCalledTimes(1); expect(roleMappingsAPI.deleteRoleMappings).not.toHaveBeenCalled(); + findTestSubject(wrapper, `euiCollapsedItemActionsButton`).simulate('click'); findTestSubject(wrapper, `deleteRoleMappingButton-some-realm`).simulate('click'); expect(findTestSubject(wrapper, 'deleteRoleMappingConfirmationModal')).toHaveLength(1); @@ -246,4 +248,55 @@ describe('RoleMappingsGridPage', () => { `"The kibana_user role is deprecated. I don't like you."` ); }); + + it('renders role mapping actions as appropriate', async () => { + const roleMappingsAPI = roleMappingsAPIClientMock.create(); + roleMappingsAPI.getRoleMappings.mockResolvedValue([ + { + name: 'some-realm', + enabled: true, + roles: ['superuser'], + rules: { field: { username: '*' } }, + }, + ]); + roleMappingsAPI.checkRoleMappingFeatures.mockResolvedValue({ + canManageRoleMappings: true, + hasCompatibleRealms: true, + }); + roleMappingsAPI.deleteRoleMappings.mockResolvedValue([ + { + name: 'some-realm', + success: true, + }, + ]); + + const wrapper = renderView(roleMappingsAPI); + await nextTick(); + wrapper.update(); + + const editButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="editRoleMappingButton-some-realm"]' + ); + expect(editButton).toHaveLength(1); + expect(editButton.prop('href')).toBe('/edit/some-realm'); + + const cloneButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="cloneRoleMappingButton-some-realm"]' + ); + expect(cloneButton).toHaveLength(1); + expect(cloneButton.prop('href')).toBe('/clone/some-realm'); + + const actionMenuButton = wrapper.find( + 'EuiButtonIcon[data-test-subj="euiCollapsedItemActionsButton"]' + ); + expect(actionMenuButton).toHaveLength(1); + + actionMenuButton.simulate('click'); + wrapper.update(); + + const deleteButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="deleteRoleMappingButton-some-realm"]' + ); + expect(deleteButton).toHaveLength(1); + }); }); diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx index ec386d75228e8..373f3366f36c8 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx @@ -6,7 +6,7 @@ */ import { EuiButton, - EuiButtonIcon, + EuiButtonEmpty, EuiCallOut, EuiFlexGroup, EuiFlexItem, @@ -32,18 +32,23 @@ import type { import { reactRouterNavigate } from '../../../../../../../src/plugins/kibana_react/public'; import type { Role, RoleMapping } from '../../../../common/model'; import { DisabledBadge, EnabledBadge } from '../../badges'; -import { EDIT_ROLE_MAPPING_PATH, getEditRoleMappingHref } from '../../management_urls'; +import { + EDIT_ROLE_MAPPING_PATH, + getCloneRoleMappingHref, + getEditRoleMappingHref, +} from '../../management_urls'; import { RoleTableDisplay } from '../../role_table_display'; import type { RolesAPIClient } from '../../roles'; +import { ActionsEuiTableFormatting } from '../../table_utils'; import { DeleteProvider, NoCompatibleRealms, PermissionDenied, SectionLoading, } from '../components'; +import type { DeleteRoleMappings } from '../components/delete_provider/delete_provider'; import type { RoleMappingsAPIClient } from '../role_mappings_api_client'; import { EmptyPrompt } from './empty_prompt'; - interface Props { rolesAPIClient: PublicMethodsOf; roleMappingsAPI: PublicMethodsOf; @@ -63,6 +68,7 @@ interface State { } export class RoleMappingsGridPage extends Component { + private tableRef: React.RefObject>; constructor(props: any) { super(props); this.state = { @@ -73,6 +79,7 @@ export class RoleMappingsGridPage extends Component { selectedItems: [], error: undefined, }; + this.tableRef = React.createRef(); } public componentDidMount() { @@ -224,7 +231,13 @@ export class RoleMappingsGridPage extends Component { {(deleteRoleMappingsPrompt) => { return ( deleteRoleMappingsPrompt(selectedItems, this.onRoleMappingsDeleted)} + onClick={() => + deleteRoleMappingsPrompt( + selectedItems, + this.onRoleMappingsDeleted, + this.onRoleMappingsDeleteCancel + ) + } color="danger" data-test-subj="bulkDeleteActionButton" > @@ -260,27 +273,40 @@ export class RoleMappingsGridPage extends Component { }; return ( - { - return { - 'data-test-subj': 'roleMappingRow', - }; + + {(deleteRoleMappingPrompt) => { + return ( + + { + return { + 'data-test-subj': 'roleMappingRow', + }; + }} + /> + + ); }} - /> + ); }; - private getColumnConfig = () => { + private getColumnConfig = (deleteRoleMappingPrompt: DeleteRoleMappings) => { const config = [ { field: 'name', @@ -357,72 +383,97 @@ export class RoleMappingsGridPage extends Component { }), actions: [ { + isPrimary: true, render: (record: RoleMapping) => { + const title = i18n.translate( + 'xpack.security.management.roleMappings.actionCloneTooltip', + { defaultMessage: 'Clone' } + ); + const label = i18n.translate( + 'xpack.security.management.roleMappings.actionCloneAriaLabel', + { + defaultMessage: `Clone '{name}'`, + values: { name: record.name }, + } + ); return ( - - + = 1} {...reactRouterNavigate( this.props.history, - getEditRoleMappingHref(record.name) + getCloneRoleMappingHref(record.name) )} - /> + > + {title} + + + ); + }, + }, + { + render: (record: RoleMapping) => { + const title = i18n.translate( + 'xpack.security.management.roleMappings.actionDeleteTooltip', + { defaultMessage: 'Delete' } + ); + const label = i18n.translate( + 'xpack.security.management.roleMappings.actionDeleteAriaLabel', + { + defaultMessage: `Delete '{name}'`, + values: { name: record.name }, + } + ); + return ( + + = 1} + onClick={() => deleteRoleMappingPrompt([record], this.onRoleMappingsDeleted)} + > + {title} + ); }, }, { + isPrimary: true, render: (record: RoleMapping) => { + const label = i18n.translate( + 'xpack.security.management.roleMappings.actionEditAriaLabel', + { + defaultMessage: `Edit '{name}'`, + values: { name: record.name }, + } + ); + const title = i18n.translate( + 'xpack.security.management.roleMappings.actionEditTooltip', + { defaultMessage: 'Edit' } + ); return ( - - - - {(deleteRoleMappingPrompt) => { - return ( - - - deleteRoleMappingPrompt([record], this.onRoleMappingsDeleted) - } - /> - - ); - }} - - - + + = 1} + {...reactRouterNavigate( + this.props.history, + getEditRoleMappingHref(record.name) + )} + > + {title} + + ); }, }, @@ -438,6 +489,10 @@ export class RoleMappingsGridPage extends Component { } }; + private onRoleMappingsDeleteCancel = () => { + this.tableRef.current?.setSelection([]); + }; + private async checkPrivileges() { try { const { canManageRoleMappings, hasCompatibleRealms } = diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx index f6d17327b7118..892c7940675d3 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx @@ -100,7 +100,7 @@ describe('roleMappingsManagementApp', () => { expect(docTitle.reset).not.toHaveBeenCalled(); expect(container).toMatchInlineSnapshot(`
- Role Mapping Edit Page: {"roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit","search":"","hash":""}}} + Role Mapping Edit Page: {"action":"edit","roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit","search":"","hash":""}}}
`); @@ -128,7 +128,7 @@ describe('roleMappingsManagementApp', () => { expect(docTitle.reset).not.toHaveBeenCalled(); expect(container).toMatchInlineSnapshot(`
- Role Mapping Edit Page: {"name":"role@mapping","roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit/role@mapping","search":"","hash":""}}} + Role Mapping Edit Page: {"action":"edit","name":"role@mapping","roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit/role@mapping","search":"","hash":""}}}
`); diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx index 22d09e9e2a678..41e6a9562612d 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx @@ -56,7 +56,7 @@ export const roleMappingsManagementApp = Object.freeze({ const roleMappingsAPIClient = new RoleMappingsAPIClient(core.http); - const EditRoleMappingsPageWithBreadcrumbs = () => { + const EditRoleMappingsPageWithBreadcrumbs = ({ action }: { action: 'edit' | 'clone' }) => { const { name } = useParams<{ name?: string }>(); // Additional decoding is a workaround for a bug in react-router's version of the `history` module. @@ -64,7 +64,7 @@ export const roleMappingsManagementApp = Object.freeze({ const decodedName = name ? tryDecodeURIComponent(name) : undefined; const breadcrumbObj = - name && decodedName + action === 'edit' && name && decodedName ? { text: decodedName, href: `/edit/${encodeURIComponent(name)}` } : { text: i18n.translate('xpack.security.roleMappings.createBreadcrumb', { @@ -75,6 +75,7 @@ export const roleMappingsManagementApp = Object.freeze({ return ( - + + + + diff --git a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx index 9194fea271442..aa507cf823eff 100644 --- a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx +++ b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx @@ -144,31 +144,33 @@ describe('', () => { expect(wrapper.find(PermissionDenied)).toHaveLength(0); - let editButton = wrapper.find('EuiButtonIcon[data-test-subj="edit-role-action-test-role-1"]'); + let editButton = wrapper.find('EuiButtonEmpty[data-test-subj="edit-role-action-test-role-1"]'); expect(editButton).toHaveLength(1); expect(editButton.prop('href')).toBe('/edit/test-role-1'); editButton = wrapper.find( - 'EuiButtonIcon[data-test-subj="edit-role-action-special%chars%role"]' + 'EuiButtonEmpty[data-test-subj="edit-role-action-special%chars%role"]' ); expect(editButton).toHaveLength(1); expect(editButton.prop('href')).toBe('/edit/special%25chars%25role'); - let cloneButton = wrapper.find('EuiButtonIcon[data-test-subj="clone-role-action-test-role-1"]'); + let cloneButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="clone-role-action-test-role-1"]' + ); expect(cloneButton).toHaveLength(1); expect(cloneButton.prop('href')).toBe('/clone/test-role-1'); cloneButton = wrapper.find( - 'EuiButtonIcon[data-test-subj="clone-role-action-special%chars%role"]' + 'EuiButtonEmpty[data-test-subj="clone-role-action-special%chars%role"]' ); expect(cloneButton).toHaveLength(1); expect(cloneButton.prop('href')).toBe('/clone/special%25chars%25role'); expect( - wrapper.find('EuiButtonIcon[data-test-subj="edit-role-action-disabled-role"]') + wrapper.find('EuiButtonEmpty[data-test-subj="edit-role-action-disabled-role"]') ).toHaveLength(1); expect( - wrapper.find('EuiButtonIcon[data-test-subj="clone-role-action-disabled-role"]') + wrapper.find('EuiButtonEmpty[data-test-subj="clone-role-action-disabled-role"]') ).toHaveLength(1); }); diff --git a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx index 909c5b1193cd9..d34a8bfea27bf 100644 --- a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx +++ b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx @@ -8,7 +8,7 @@ import type { EuiBasicTableColumn, EuiSwitchEvent } from '@elastic/eui'; import { EuiButton, - EuiButtonIcon, + EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiInMemoryTable, @@ -17,6 +17,7 @@ import { EuiSpacer, EuiSwitch, EuiText, + EuiToolTip, } from '@elastic/eui'; import _ from 'lodash'; import React, { Component } from 'react'; @@ -36,6 +37,7 @@ import { isRoleReserved, } from '../../../../common/model'; import { DeprecatedBadge, DisabledBadge, ReservedBadge } from '../../badges'; +import { ActionsEuiTableFormatting } from '../../table_utils'; import type { RolesAPIClient } from '../roles_api_client'; import { ConfirmDelete } from './confirm_delete'; import { PermissionDenied } from './permission_denied'; @@ -61,6 +63,7 @@ const getRoleManagementHref = (action: 'edit' | 'clone', roleName?: string) => { }; export class RolesGridPage extends Component { + private tableRef: React.RefObject>; constructor(props: Props) { super(props); this.state = { @@ -72,6 +75,7 @@ export class RolesGridPage extends Component { permissionDenied: false, includeReservedRoles: true, }; + this.tableRef = React.createRef(); } public componentDidMount() { @@ -129,53 +133,56 @@ export class RolesGridPage extends Component { /> ) : null} - !role.metadata || !role.metadata._reserved, - selectableMessage: (selectable: boolean) => (!selectable ? 'Role is reserved' : ''), - onSelectionChange: (selection: Role[]) => this.setState({ selection }), - }} - pagination={{ - initialPageSize: 20, - pageSizeOptions: [10, 20, 30, 50, 100], - }} - items={this.state.visibleRoles} - loading={roles.length === 0} - search={{ - toolsLeft: this.renderToolsLeft(), - toolsRight: this.renderToolsRight(), - box: { - incremental: true, - 'data-test-subj': 'searchRoles', - }, - onChange: (query: Record) => { - this.setState({ - filter: query.queryText, - visibleRoles: this.getVisibleRoles( - this.state.roles, - query.queryText, - this.state.includeReservedRoles - ), - }); - }, - }} - sorting={{ - sort: { - field: 'name', - direction: 'asc', - }, - }} - rowProps={() => { - return { - 'data-test-subj': 'roleRow', - }; - }} - isSelectable - /> + + !role.metadata || !role.metadata._reserved, + selectableMessage: (selectable: boolean) => (!selectable ? 'Role is reserved' : ''), + onSelectionChange: (selection: Role[]) => this.setState({ selection }), + }} + pagination={{ + initialPageSize: 20, + pageSizeOptions: [10, 20, 30, 50, 100], + }} + items={this.state.visibleRoles} + loading={roles.length === 0} + search={{ + toolsLeft: this.renderToolsLeft(), + toolsRight: this.renderToolsRight(), + box: { + incremental: true, + 'data-test-subj': 'searchRoles', + }, + onChange: (query: Record) => { + this.setState({ + filter: query.queryText, + visibleRoles: this.getVisibleRoles( + this.state.roles, + query.queryText, + this.state.includeReservedRoles + ), + }); + }, + }} + sorting={{ + sort: { + field: 'name', + direction: 'asc', + }, + }} + ref={this.tableRef} + rowProps={(role: Role) => { + return { + 'data-test-subj': `roleRow`, + }; + }} + isSelectable + /> + ); }; @@ -219,48 +226,98 @@ export class RolesGridPage extends Component { width: '150px', actions: [ { - available: (role: Role) => !isRoleReadOnly(role), + available: (role: Role) => !isRoleReserved(role), + isPrimary: true, render: (role: Role) => { - const title = i18n.translate('xpack.security.management.roles.editRoleActionName', { - defaultMessage: `Edit {roleName}`, + const title = i18n.translate('xpack.security.management.roles.cloneRoleActionName', { + defaultMessage: `Clone`, + }); + + const label = i18n.translate('xpack.security.management.roles.cloneRoleActionLabel', { + defaultMessage: `Clone {roleName}`, values: { roleName: role.name }, }); return ( - + + = 1} + iconType={'copy'} + {...reactRouterNavigate( + this.props.history, + getRoleManagementHref('clone', role.name) + )} + > + {title} + + ); }, }, { - available: (role: Role) => !isRoleReserved(role), + available: (role: Role) => !role.metadata || !role.metadata._reserved, render: (role: Role) => { - const title = i18n.translate('xpack.security.management.roles.cloneRoleActionName', { - defaultMessage: `Clone {roleName}`, + const title = i18n.translate('xpack.security.management.roles.deleteRoleActionName', { + defaultMessage: `Delete`, + }); + + const label = i18n.translate( + 'xpack.security.management.roles.deleteRoleActionLabel', + { + defaultMessage: `Delete {roleName}`, + values: { roleName: role.name }, + } + ); + + return ( + + = 1} + iconType={'trash'} + onClick={() => this.deleteOneRole(role)} + > + {title} + + + ); + }, + }, + { + available: (role: Role) => !isRoleReadOnly(role), + enable: () => this.state.selection.length === 0, + isPrimary: true, + render: (role: Role) => { + const title = i18n.translate('xpack.security.management.roles.editRoleActionName', { + defaultMessage: `Edit`, + }); + + const label = i18n.translate('xpack.security.management.roles.editRoleActionLabel', { + defaultMessage: `Edit {roleName}`, values: { roleName: role.name }, }); return ( - + + = 1} + iconType={'pencil'} + {...reactRouterNavigate( + this.props.history, + getRoleManagementHref('edit', role.name) + )} + > + {title} + + ); }, }, @@ -337,6 +394,13 @@ export class RolesGridPage extends Component { this.loadRoles(); }; + private deleteOneRole = (roleToDelete: Role) => { + this.setState({ + selection: [roleToDelete], + showDeleteConfirmation: true, + }); + }; + private async loadRoles() { try { const roles = await this.props.rolesAPIClient.getRoles(); @@ -385,6 +449,7 @@ export class RolesGridPage extends Component {
); } + private renderToolsRight() { return ( { ); } private onCancelDelete = () => { - this.setState({ showDeleteConfirmation: false }); + this.setState({ showDeleteConfirmation: false, selection: [] }); + this.tableRef.current?.setSelection([]); }; } diff --git a/x-pack/plugins/security/public/management/table_utils.tsx b/x-pack/plugins/security/public/management/table_utils.tsx new file mode 100644 index 0000000000000..3f240daf3bd03 --- /dev/null +++ b/x-pack/plugins/security/public/management/table_utils.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 { css } from '@emotion/react'; +import type { ReactNode } from 'react'; +import React from 'react'; + +interface ActionsEuiTableFormattingProps { + children: ReactNode; +} + +/* + * Notes to future engineer: + * We created this component because as this time EUI actions table where not allowing to pass + * props href on an action. In our case, we want our actions to work with href + * and onClick. Then the problem is that the design did not match with EUI example, therefore + * we are doing some css magic to only have icon showing up when user is hovering a row + */ +export const ActionsEuiTableFormatting = React.memo( + ({ children }) => ( +
+ {children} +
+ ) +); diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index d8bef37f6dc8f..1a5335ef93e72 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -19835,7 +19835,6 @@ "xpack.security.management.roleMappings.rolesColumnName": "ロール", "xpack.security.management.roleMappingsTitle": "ロールマッピング", "xpack.security.management.roles.actionsColumnName": "アクション", - "xpack.security.management.roles.cloneRoleActionName": "{roleName} を複製", "xpack.security.management.roles.confirmDelete.cancelButtonLabel": "キャンセル", "xpack.security.management.roles.confirmDelete.deleteButtonLabel": "削除", "xpack.security.management.roles.confirmDelete.removingRolesDescription": "これらのロールを削除しようとしています:", @@ -19846,7 +19845,6 @@ "xpack.security.management.roles.deleteSelectedRolesButtonLabel": "ロール {numSelected} {numSelected, plural, one { } other {}} を削除しました", "xpack.security.management.roles.deletingRolesWarningMessage": "この操作は元に戻すことができません。", "xpack.security.management.roles.deniedPermissionTitle": "ロールを管理するにはパーミッションが必要です", - "xpack.security.management.roles.editRoleActionName": "{roleName} を編集", "xpack.security.management.roles.fetchingRolesErrorMessage": "ロールの取得中にエラーが発生:{message}", "xpack.security.management.roles.nameColumnName": "ロール", "xpack.security.management.roles.noIndexPatternsPermission": "利用可能なインデックスパターンのリストへのアクセス権が必要です。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 30951b200dbda..529b692e3552e 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -20130,7 +20130,6 @@ "xpack.security.management.roleMappings.roleTemplates": "{templateCount, plural, other {# 个角色模板}}已定义", "xpack.security.management.roleMappingsTitle": "角色映射", "xpack.security.management.roles.actionsColumnName": "操作", - "xpack.security.management.roles.cloneRoleActionName": "克隆 {roleName}", "xpack.security.management.roles.confirmDelete.cancelButtonLabel": "取消", "xpack.security.management.roles.confirmDelete.deleteButtonLabel": "删除", "xpack.security.management.roles.confirmDelete.removingRolesDescription": "您即将删除以下角色:", @@ -20141,7 +20140,6 @@ "xpack.security.management.roles.deleteSelectedRolesButtonLabel": "删除 {numSelected} 个角色{numSelected, plural, other {}}", "xpack.security.management.roles.deletingRolesWarningMessage": "此操作无法撤消。", "xpack.security.management.roles.deniedPermissionTitle": "您需要用于管理角色的权限", - "xpack.security.management.roles.editRoleActionName": "编辑 {roleName}", "xpack.security.management.roles.fetchingRolesErrorMessage": "获取用户时出错:{message}", "xpack.security.management.roles.nameColumnName": "角色", "xpack.security.management.roles.noIndexPatternsPermission": "您需要访问可用索引模式列表的权限。", diff --git a/x-pack/test/functional/apps/security/role_mappings.ts b/x-pack/test/functional/apps/security/role_mappings.ts index 190323b8aaf18..54c92c4815b5d 100644 --- a/x-pack/test/functional/apps/security/role_mappings.ts +++ b/x-pack/test/functional/apps/security/role_mappings.ts @@ -81,7 +81,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); it('allows a role mapping to be deleted', async () => { - await testSubjects.click(`deleteRoleMappingButton-new_role_mapping`); + await testSubjects.click('euiCollapsedItemActionsButton'); + await testSubjects.click('deleteRoleMappingButton-new_role_mapping'); await testSubjects.click('confirmModalConfirmButton'); await testSubjects.existOrFail('deletedRoleMappingSuccessToast'); }); @@ -162,6 +163,15 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { } }); + it('allows a role mapping to be cloned', async () => { + await testSubjects.click('cloneRoleMappingButton-a_enabled_role_mapping'); + await testSubjects.setValue('roleMappingFormNameInput', 'cloned_role_mapping'); + await testSubjects.click('saveRoleMappingButton'); + await testSubjects.existOrFail('savedRoleMappingSuccessToast'); + const rows = await testSubjects.findAll('roleMappingRow'); + expect(rows.length).to.eql(mappings.length + 1); + }); + it('allows a role mapping to be edited', async () => { await testSubjects.click('roleMappingName'); await testSubjects.click('saveRoleMappingButton'); From 8f158e665f30ad3039de4b6d6d54a4cf32037d93 Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Wed, 17 Nov 2021 12:29:29 -0700 Subject: [PATCH 007/114] Completed the first part which is the backend tests to run less than 600 megs (#118734) ## Summary This addresses parts of https://github.com/elastic/kibana/issues/117255 By introducing top level mocks for: * `core/server/index.ts` * `task_manager/server/index.ts` * `alerting/server/index.ts` * `actions/server/index.ts` These top level mocks add the few required functions we use sparingly and adds them from the "restricted zones" to avoid giant typescript imports from happening from the server side which also pulls in the memory leaks. ```ts moduleNameMapper: { 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', 'task_manager/server$': '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', }, ``` For testing this you can now run: ```sh node --max-old-space-size=600 --expose-gc ./node_modules/.bin/jest --runInBand --logHeapUsage --detectOpenHandles --no-cache --config x-pack/plugins/security_solution/jest.config.dev.js x-pack/plugins/security_solution/server ``` And the server side tests will be able to complete in less than 600 megs of memory. The memory leaks and memory consumption issues are mitigated through the layers but this doesn't guarantee that in the future these won't show up again. The root of the issue(s) with the memory leaks from `core/server` aren't addressed here as those are separate concerns at this point but this at least mitigates the amount of leakage from our side for now. ### 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 --- .../delete_exception_list_items_by_list.ts | 2 +- .../exception_lists/get_exception_list.ts | 2 +- .../get_exception_list_item.ts | 2 +- .../get_exception_list_summary.ts | 2 +- .../security_solution/common/jest.config.js | 8 ++++++++ .../public/app/jest.config.js | 8 ++++++++ .../public/cases/jest.config.js | 8 ++++++++ .../public/common/jest.config.js | 8 ++++++++ .../public/detections/jest.config.js | 8 ++++++++ .../public/hosts/jest.config.js | 8 ++++++++ .../security_solution/public/jest.config.js | 8 ++++++++ .../public/management/jest.config.js | 8 ++++++++ .../public/network/jest.config.js | 8 ++++++++ .../public/overview/jest.config.js | 8 ++++++++ .../public/resolver/jest.config.js | 8 ++++++++ .../public/timelines/jest.config.js | 8 ++++++++ .../public/transforms/jest.config.js | 8 ++++++++ .../server/__mocks__/action.mock.ts | 9 +++++++++ .../server/__mocks__/alert.mock.ts | 19 +++++++++++++++++++ .../server/__mocks__/core.mock.ts | 15 +++++++++++++++ .../server/__mocks__/task_manager.mock.ts | 14 ++++++++++++++ .../server/client/jest.config.js | 8 ++++++++ .../server/endpoint/jest.config.js | 8 ++++++++ .../server/fleet_integration/jest.config.js | 8 ++++++++ .../security_solution/server/jest.config.js | 8 ++++++++ .../routes/__mocks__/request_context.ts | 6 +++++- .../server/lib/jest.config.js | 8 ++++++++ .../server/lib/machine_learning/authz.ts | 2 +- .../server/search_strategy/jest.config.js | 8 ++++++++ .../server/usage/jest.config.js | 8 ++++++++ .../server/utils/jest.config.js | 8 ++++++++ 31 files changed, 235 insertions(+), 6 deletions(-) create mode 100644 x-pack/plugins/security_solution/server/__mocks__/action.mock.ts create mode 100644 x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts create mode 100644 x-pack/plugins/security_solution/server/__mocks__/core.mock.ts create mode 100644 x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts diff --git a/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts b/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts index 23c389f2a5331..873fe66b1ad3b 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts @@ -9,7 +9,7 @@ import type { ListId, NamespaceType } from '@kbn/securitysolution-io-ts-list-typ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { asyncForEach } from '@kbn/std'; -import { SavedObjectsClientContract } from '../../../../../../src/core/server/'; +import { SavedObjectsClientContract } from '../../../../../../src/core/server'; import { findExceptionListItem } from './find_exception_list_item'; diff --git a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts index 2b09642f59c9c..b0b66ffb70d77 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts @@ -16,7 +16,7 @@ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { SavedObjectsClientContract, SavedObjectsErrorHelpers, -} from '../../../../../../src/core/server/'; +} from '../../../../../../src/core/server'; import { ExceptionListSoSchema } from '../../schemas/saved_objects'; import { transformSavedObjectToExceptionList } from './utils'; diff --git a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts index ef825b4cf5e3e..12580af8a1d07 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts @@ -16,7 +16,7 @@ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { SavedObjectsClientContract, SavedObjectsErrorHelpers, -} from '../../../../../../src/core/server/'; +} from '../../../../../../src/core/server'; import { ExceptionListSoSchema } from '../../schemas/saved_objects'; import { transformSavedObjectToExceptionListItem } from './utils'; diff --git a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts index f5722ea26ccf7..272fd70bcb322 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts @@ -16,7 +16,7 @@ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { SavedObjectsClientContract, SavedObjectsErrorHelpers, -} from '../../../../../../src/core/server/'; +} from '../../../../../../src/core/server'; import { ExceptionListSoSchema } from '../../schemas/saved_objects'; interface GetExceptionListSummaryOptions { diff --git a/x-pack/plugins/security_solution/common/jest.config.js b/x-pack/plugins/security_solution/common/jest.config.js index ca6f7cd368f2b..1b5f75f8380ba 100644 --- a/x-pack/plugins/security_solution/common/jest.config.js +++ b/x-pack/plugins/security_solution/common/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/common', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/common/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/app/jest.config.js b/x-pack/plugins/security_solution/public/app/jest.config.js index 452cee5e5b3a6..8674e6754aabf 100644 --- a/x-pack/plugins/security_solution/public/app/jest.config.js +++ b/x-pack/plugins/security_solution/public/app/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/app', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/app/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/cases/jest.config.js b/x-pack/plugins/security_solution/public/cases/jest.config.js index 4b0a49fd65aff..9089585ce8687 100644 --- a/x-pack/plugins/security_solution/public/cases/jest.config.js +++ b/x-pack/plugins/security_solution/public/cases/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/cases', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/cases/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/common/jest.config.js b/x-pack/plugins/security_solution/public/common/jest.config.js index e59f9c68f7590..3fedce946d633 100644 --- a/x-pack/plugins/security_solution/public/common/jest.config.js +++ b/x-pack/plugins/security_solution/public/common/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/common', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/common/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/detections/jest.config.js b/x-pack/plugins/security_solution/public/detections/jest.config.js index 23bc914b6493b..1121326c4ee34 100644 --- a/x-pack/plugins/security_solution/public/detections/jest.config.js +++ b/x-pack/plugins/security_solution/public/detections/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '/x-pack/plugins/security_solution/public/detections/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/hosts/jest.config.js b/x-pack/plugins/security_solution/public/hosts/jest.config.js index b0ead04130b74..d8354b47c3cbe 100644 --- a/x-pack/plugins/security_solution/public/hosts/jest.config.js +++ b/x-pack/plugins/security_solution/public/hosts/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/hosts', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/hosts/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/jest.config.js b/x-pack/plugins/security_solution/public/jest.config.js index f2bde770370f4..5eb349b2c16e9 100644 --- a/x-pack/plugins/security_solution/public/jest.config.js +++ b/x-pack/plugins/security_solution/public/jest.config.js @@ -15,4 +15,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/management/jest.config.js b/x-pack/plugins/security_solution/public/management/jest.config.js index fdb6212ef6c81..3e5560b56aa09 100644 --- a/x-pack/plugins/security_solution/public/management/jest.config.js +++ b/x-pack/plugins/security_solution/public/management/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '/x-pack/plugins/security_solution/public/management/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/network/jest.config.js b/x-pack/plugins/security_solution/public/network/jest.config.js index 6059805c0652a..98b45b1e5699b 100644 --- a/x-pack/plugins/security_solution/public/network/jest.config.js +++ b/x-pack/plugins/security_solution/public/network/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/network', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/network/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/overview/jest.config.js b/x-pack/plugins/security_solution/public/overview/jest.config.js index 673eece7a36fd..b34dea8802c5e 100644 --- a/x-pack/plugins/security_solution/public/overview/jest.config.js +++ b/x-pack/plugins/security_solution/public/overview/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/overview', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/overview/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/resolver/jest.config.js b/x-pack/plugins/security_solution/public/resolver/jest.config.js index 43e1202d9d8da..f517075bf5962 100644 --- a/x-pack/plugins/security_solution/public/resolver/jest.config.js +++ b/x-pack/plugins/security_solution/public/resolver/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/resolver', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/public/resolver/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/timelines/jest.config.js b/x-pack/plugins/security_solution/public/timelines/jest.config.js index 94434b9303d47..ac28fe2d34979 100644 --- a/x-pack/plugins/security_solution/public/timelines/jest.config.js +++ b/x-pack/plugins/security_solution/public/timelines/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '/x-pack/plugins/security_solution/public/timelines/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/transforms/jest.config.js b/x-pack/plugins/security_solution/public/transforms/jest.config.js index 30847fa39a8d8..095a70933abc1 100644 --- a/x-pack/plugins/security_solution/public/transforms/jest.config.js +++ b/x-pack/plugins/security_solution/public/transforms/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '/x-pack/plugins/security_solution/public/transforms/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts new file mode 100644 index 0000000000000..2a430c47cc127 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/action.mock.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. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. +module.exports = {}; diff --git a/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts new file mode 100644 index 0000000000000..917eb205837a6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts @@ -0,0 +1,19 @@ +/* + * Copyright 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. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. + +import { parseDuration } from '../../../alerting/common/parse_duration'; +// We _must_ import from the restricted path or we pull in _everything_ including memory leaks from Kibana core +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { ReadOperations, WriteOperations } from '../../../alerting/server/authorization'; + +module.exports = { + parseDuration, + ReadOperations, + WriteOperations, +}; diff --git a/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts new file mode 100644 index 0000000000000..c5e07f9c135a7 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. + +// We _must_ import from the restricted path or we pull in _everything_ including memory leaks from Kibana core +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { SavedObjectsUtils } from '../../../../../src/core/server/saved_objects/service/lib/utils'; +module.exports = { + SavedObjectsUtils, +}; diff --git a/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts new file mode 100644 index 0000000000000..e61080e56ea69 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { TaskStatus } from '../../../task_manager/server/task'; +module.exports = { + TaskStatus, +}; diff --git a/x-pack/plugins/security_solution/server/client/jest.config.js b/x-pack/plugins/security_solution/server/client/jest.config.js index ba3dd88f83303..593eb77b287e1 100644 --- a/x-pack/plugins/security_solution/server/client/jest.config.js +++ b/x-pack/plugins/security_solution/server/client/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/client', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/server/client/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/endpoint/jest.config.js b/x-pack/plugins/security_solution/server/endpoint/jest.config.js index 4fed1c5e7ac15..9bdafcc7668e3 100644 --- a/x-pack/plugins/security_solution/server/endpoint/jest.config.js +++ b/x-pack/plugins/security_solution/server/endpoint/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/endpoint', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/server/endpoint/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js b/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js index 81625081c40c6..abcd1a214c200 100644 --- a/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js +++ b/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '/x-pack/plugins/security_solution/server/fleet_integration/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/jest.config.js b/x-pack/plugins/security_solution/server/jest.config.js index 2fc23670388b9..3f5aa91c5faec 100644 --- a/x-pack/plugins/security_solution/server/jest.config.js +++ b/x-pack/plugins/security_solution/server/jest.config.js @@ -15,4 +15,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/server', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/server/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; 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 fc88e7b8b2be0..86bba69699195 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 @@ -11,7 +11,11 @@ import { coreMock } from 'src/core/server/mocks'; import { ActionsApiRequestHandlerContext } from '../../../../../../actions/server'; import { AlertingApiRequestHandlerContext } from '../../../../../../alerting/server'; import { rulesClientMock } from '../../../../../../alerting/server/mocks'; -import { actionsClientMock } from '../../../../../../actions/server/mocks'; + +// See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. +// We cannot import from "../../../../../../actions/server" directly here or we have a really bad memory issue. We cannot add this to the existing mocks we created, this fix must be here. +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { actionsClientMock } from '../../../../../../actions/server/actions_client.mock'; import { licensingMock } from '../../../../../../licensing/server/mocks'; import { listMock } from '../../../../../../lists/server/mocks'; import { ruleRegistryMocks } from '../../../../../../rule_registry/server/mocks'; diff --git a/x-pack/plugins/security_solution/server/lib/jest.config.js b/x-pack/plugins/security_solution/server/lib/jest.config.js index 4c4c7d8d4a6b7..88b4ff927971d 100644 --- a/x-pack/plugins/security_solution/server/lib/jest.config.js +++ b/x-pack/plugins/security_solution/server/lib/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/lib', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/server/lib/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts b/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts index d5e8e951397c2..3b96de2d4b1d1 100644 --- a/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts +++ b/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; import { Type } from '@kbn/securitysolution-io-ts-alerting-types'; -import { KibanaRequest, SavedObjectsClientContract } from '../../../../../../src/core/server/'; +import { KibanaRequest, SavedObjectsClientContract } from '../../../../../../src/core/server'; import { ILicense } from '../../../../licensing/server'; import { MlPluginSetup } from '../../../../ml/server'; import { SetupPlugins } from '../../plugin'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/jest.config.js b/x-pack/plugins/security_solution/server/search_strategy/jest.config.js index 93b9ddbf7a27d..22999d3c5820e 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/jest.config.js +++ b/x-pack/plugins/security_solution/server/search_strategy/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '/x-pack/plugins/security_solution/server/search_strategy/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/usage/jest.config.js b/x-pack/plugins/security_solution/server/usage/jest.config.js index 82386fea363fe..193590dbff542 100644 --- a/x-pack/plugins/security_solution/server/usage/jest.config.js +++ b/x-pack/plugins/security_solution/server/usage/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/usage', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/server/usage/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/utils/jest.config.js b/x-pack/plugins/security_solution/server/utils/jest.config.js index d3a2e138b789d..ceaa2d790da2f 100644 --- a/x-pack/plugins/security_solution/server/utils/jest.config.js +++ b/x-pack/plugins/security_solution/server/utils/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/utils', coverageReporters: ['text', 'html'], collectCoverageFrom: ['/x-pack/plugins/security_solution/server/utils/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; From 023df37780f8924cb835ed3304161687b232080e Mon Sep 17 00:00:00 2001 From: Quynh Nguyen <43350163+qn895@users.noreply.github.com> Date: Wed, 17 Nov 2021 13:58:06 -0600 Subject: [PATCH 008/114] [ML] Fix field stats assertions to match fields sampled (#118203) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../tests/correlations/failed_transactions.spec.ts | 2 +- .../apm_api_integration/tests/correlations/latency.spec.ts | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts b/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts index 22909d5431b4b..0a175762fe3e8 100644 --- a/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts +++ b/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts @@ -201,7 +201,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(finalRawResponse?.percentileThresholdValue).to.be(1309695.875); expect(finalRawResponse?.errorHistogram?.length).to.be(101); expect(finalRawResponse?.overallHistogram?.length).to.be(101); - expect(finalRawResponse?.fieldStats?.length).to.be(26); + expect(finalRawResponse?.fieldStats?.length).to.be(fieldsToSample.size); expect(finalRawResponse?.failedTransactionsCorrelations?.length).to.eql( 30, diff --git a/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts b/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts index 6be2399729339..70a4071bfbb04 100644 --- a/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts +++ b/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts @@ -105,8 +105,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { { config: 'trial', archives: ['8.0.0'] }, () => { // putting this into a single `it` because the responses depend on each other - // FLAKY: https://github.com/elastic/kibana/issues/118023 - it.skip('runs queries and returns results', async () => { + it('runs queries and returns results', async () => { const overallDistributionResponse = await apmApiClient.readUser({ endpoint: 'POST /internal/apm/latency/overall_distribution', params: { @@ -210,7 +209,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { // Fetched 95th percentile value of 1309695.875 based on 1244 documents. expect(finalRawResponse?.percentileThresholdValue).to.be(1309695.875); expect(finalRawResponse?.overallHistogram?.length).to.be(101); - expect(finalRawResponse?.fieldStats?.length).to.be(12); + expect(finalRawResponse?.fieldStats?.length).to.be(fieldsToSample.size); // Identified 13 significant correlations out of 379 field/value pairs. expect(finalRawResponse?.latencyCorrelations?.length).to.eql( From 063fb2e56e933e421b3c3dfe1282d85aafc2e652 Mon Sep 17 00:00:00 2001 From: Dominique Clarke Date: Wed, 17 Nov 2021 15:40:44 -0500 Subject: [PATCH 009/114] synthetics - fall back to checking verification mode to determine if tls is enabled (#117181) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- ...ics_policy_edit_extension_wrapper.test.tsx | 48 +++++++++++++++---- ...nthetics_policy_edit_extension_wrapper.tsx | 6 ++- 2 files changed, 42 insertions(+), 12 deletions(-) diff --git a/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx b/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx index c141e33ea1595..51b7ddd90a052 100644 --- a/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx +++ b/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx @@ -573,16 +573,43 @@ describe('', () => { }); }); - it('shows tls fields when metadata.is_tls_enabled is true', async () => { - const { getByLabelText } = render(); - const verificationMode = getByLabelText('Verification mode') as HTMLInputElement; - const enableTLSConfig = getByLabelText('Enable TLS configuration') as HTMLInputElement; - expect(enableTLSConfig.getAttribute('aria-checked')).toEqual('true'); - expect(verificationMode).toBeInTheDocument(); - expect(verificationMode.value).toEqual( - `${defaultHTTPConfig[ConfigKeys.TLS_VERIFICATION_MODE]}` - ); - }); + it.each([[true], [false]])( + 'shows tls fields when metadata.is_tls_enabled is or verification mode is truthy true', + async (isTLSEnabledInUIMetadataKey) => { + const currentPolicy = { + ...defaultCurrentPolicy, + inputs: [ + { + ...defaultNewPolicy.inputs[0], + enabled: true, + streams: [ + { + ...defaultNewPolicy.inputs[0].streams[0], + vars: { + ...defaultNewPolicy.inputs[0].streams[0].vars, + __ui: { + type: 'yaml', + value: JSON.stringify({ + is_tls_enabled: isTLSEnabledInUIMetadataKey, + }), + }, + }, + }, + ], + }, + ], + }; + + const { getByLabelText } = render(); + const verificationMode = getByLabelText('Verification mode') as HTMLInputElement; + const enableTLSConfig = getByLabelText('Enable TLS configuration') as HTMLInputElement; + expect(enableTLSConfig.getAttribute('aria-checked')).toEqual('true'); + expect(verificationMode).toBeInTheDocument(); + expect(verificationMode.value).toEqual( + `${defaultHTTPConfig[ConfigKeys.TLS_VERIFICATION_MODE]}` + ); + } + ); it('handles browser validation', async () => { const currentPolicy = { @@ -1128,6 +1155,7 @@ describe('', () => { expect(getByText(text)).toBeInTheDocument(); } ); + it('hides tls fields when metadata.is_tls_enabled is false', async () => { const { getByLabelText, queryByLabelText } = render( = { [type]: formattedDefaultConfigForMonitorType, From d52e4bb0c69319240974c4b2b3bbbec9b2dfcc7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Nov 2021 16:17:03 -0500 Subject: [PATCH 010/114] Update babel to ^7.16.4 (main) (#118819) Co-authored-by: Renovate Bot --- package.json | 6 +- yarn.lock | 170 +++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 161 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index da8d75668708f..d1639068c1cd4 100644 --- a/package.json +++ b/package.json @@ -415,15 +415,15 @@ "@babel/eslint-parser": "^7.16.3", "@babel/eslint-plugin": "^7.14.5", "@babel/generator": "^7.16.0", - "@babel/parser": "^7.16.3", + "@babel/parser": "^7.16.4", "@babel/plugin-proposal-class-properties": "^7.16.0", "@babel/plugin-proposal-export-namespace-from": "^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", "@babel/plugin-proposal-object-rest-spread": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.0", "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.0", - "@babel/preset-env": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", "@babel/preset-react": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/register": "^7.16.0", diff --git a/yarn.lock b/yarn.lock index 60a1c1dcf17ce..9f661aca62673 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44,6 +44,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== +"@babel/compat-data@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -147,7 +152,7 @@ "@babel/helper-explode-assignable-expression" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== @@ -191,6 +196,20 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-define-polyfill-provider@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" + integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + "@babel/helper-explode-assignable-expression@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" @@ -275,6 +294,15 @@ "@babel/helper-wrap-function" "^7.16.0" "@babel/types" "^7.16.0" +"@babel/helper-remap-async-to-generator@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-replace-supers@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" @@ -349,7 +377,12 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.3.tgz#271bafcb811080905a119222edbc17909c82261d" integrity sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0": +"@babel/parser@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": version "7.16.2" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== @@ -374,6 +407,15 @@ "@babel/helper-remap-async-to-generator" "^7.16.0" "@babel/plugin-syntax-async-generators" "^7.8.4" +"@babel/plugin-proposal-async-generator-functions@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" + integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.4" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-proposal-class-properties@7.3.0": version "7.3.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" @@ -866,7 +908,7 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.16.0" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.4.4": +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3", "@babel/plugin-transform-parameters@^7.4.4": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== @@ -953,16 +995,16 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-runtime@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.0.tgz#3fe0da36c2f0834bef7c4d3e7f2b2db0ee0c8909" - integrity sha512-zlPf1/XFn5+vWdve3AAhf+Sxl+MVa5VlwTwWgnLx23u4GlatSRQJ3Eoo9vllf0a9il3woQsT4SK+5Z7c06h8ag== +"@babel/plugin-transform-runtime@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz#f9ba3c7034d429c581e1bd41b4952f3db3c2c7e8" + integrity sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A== dependencies: "@babel/helper-module-imports" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.3" - babel-plugin-polyfill-corejs3 "^0.3.0" - babel-plugin-polyfill-regenerator "^0.2.3" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.16.0", "@babel/plugin-transform-shorthand-properties@^7.2.0": @@ -1079,7 +1121,7 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.0": +"@babel/preset-env@^7.12.1": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.0.tgz#97228393d217560d6a1c6c56f0adb9d12bca67f5" integrity sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg== @@ -1159,6 +1201,86 @@ core-js-compat "^3.19.0" semver "^6.3.0" +"@babel/preset-env@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" + integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-compilation-targets" "^7.16.3" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-async-generator-functions" "^7.16.4" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-class-static-block" "^7.16.0" + "@babel/plugin-proposal-dynamic-import" "^7.16.0" + "@babel/plugin-proposal-export-namespace-from" "^7.16.0" + "@babel/plugin-proposal-json-strings" "^7.16.0" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-object-rest-spread" "^7.16.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-proposal-private-property-in-object" "^7.16.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.16.0" + "@babel/plugin-transform-async-to-generator" "^7.16.0" + "@babel/plugin-transform-block-scoped-functions" "^7.16.0" + "@babel/plugin-transform-block-scoping" "^7.16.0" + "@babel/plugin-transform-classes" "^7.16.0" + "@babel/plugin-transform-computed-properties" "^7.16.0" + "@babel/plugin-transform-destructuring" "^7.16.0" + "@babel/plugin-transform-dotall-regex" "^7.16.0" + "@babel/plugin-transform-duplicate-keys" "^7.16.0" + "@babel/plugin-transform-exponentiation-operator" "^7.16.0" + "@babel/plugin-transform-for-of" "^7.16.0" + "@babel/plugin-transform-function-name" "^7.16.0" + "@babel/plugin-transform-literals" "^7.16.0" + "@babel/plugin-transform-member-expression-literals" "^7.16.0" + "@babel/plugin-transform-modules-amd" "^7.16.0" + "@babel/plugin-transform-modules-commonjs" "^7.16.0" + "@babel/plugin-transform-modules-systemjs" "^7.16.0" + "@babel/plugin-transform-modules-umd" "^7.16.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" + "@babel/plugin-transform-new-target" "^7.16.0" + "@babel/plugin-transform-object-super" "^7.16.0" + "@babel/plugin-transform-parameters" "^7.16.3" + "@babel/plugin-transform-property-literals" "^7.16.0" + "@babel/plugin-transform-regenerator" "^7.16.0" + "@babel/plugin-transform-reserved-words" "^7.16.0" + "@babel/plugin-transform-shorthand-properties" "^7.16.0" + "@babel/plugin-transform-spread" "^7.16.0" + "@babel/plugin-transform-sticky-regex" "^7.16.0" + "@babel/plugin-transform-template-literals" "^7.16.0" + "@babel/plugin-transform-typeof-symbol" "^7.16.0" + "@babel/plugin-transform-unicode-escapes" "^7.16.0" + "@babel/plugin-transform-unicode-regex" "^7.16.0" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.0" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.19.1" + semver "^6.3.0" + "@babel/preset-flow@^7.12.1": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.12.13.tgz#71ee7fe65a95b507ac12bcad65a4ced27d8dfc3e" @@ -8216,6 +8338,15 @@ babel-plugin-polyfill-corejs2@^0.2.3: "@babel/helper-define-polyfill-provider" "^0.2.4" semver "^6.1.1" +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" + integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.0" + semver "^6.1.1" + babel-plugin-polyfill-corejs3@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.3.0.tgz#fa7ca3d1ee9ddc6193600ffb632c9785d54918af" @@ -8224,6 +8355,14 @@ babel-plugin-polyfill-corejs3@^0.3.0: "@babel/helper-define-polyfill-provider" "^0.2.4" core-js-compat "^3.18.0" +babel-plugin-polyfill-corejs3@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" + integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + core-js-compat "^3.18.0" + babel-plugin-polyfill-regenerator@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz#2e9808f5027c4336c994992b48a4262580cb8d6d" @@ -8231,6 +8370,13 @@ babel-plugin-polyfill-regenerator@^0.2.3: dependencies: "@babel/helper-define-polyfill-provider" "^0.2.4" +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" + integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + babel-plugin-react-docgen@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz#7cc8e2f94e8dc057a06e953162f0810e4e72257b" @@ -10431,7 +10577,7 @@ core-js-compat@^3.18.0: browserslist "^4.17.1" semver "7.0.0" -core-js-compat@^3.19.0: +core-js-compat@^3.19.0, core-js-compat@^3.19.1: version "3.19.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== From 20b1b71fef956adc2d54e03a6c840f597d3ba7bc Mon Sep 17 00:00:00 2001 From: Oliver Gupte Date: Wed, 17 Nov 2021 16:49:58 -0500 Subject: [PATCH 011/114] [APM] fixes missing legacy apm schema config translation (#117645) (#118908) --- .../lib/fleet/get_apm_package_policy_definition.test.ts | 2 ++ .../apm/server/lib/fleet/get_apm_package_policy_definition.ts | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.test.ts b/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.test.ts index 3940fa60a38f4..805099d87e1c6 100644 --- a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.test.ts +++ b/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.test.ts @@ -10,6 +10,7 @@ import { preprocessLegacyFields } from './get_apm_package_policy_definition'; const apmServerSchema = { 'apm-server.host': '0.0.0.0:8200', 'apm-server.secret_token': 'asdfkjhasdf', + 'apm-server.api_key.enabled': true, 'apm-server.read_timeout': 3600, 'apm-server.rum.event_rate.limit': 100, 'apm-server.rum.event_rate.lru_size': 100, @@ -29,6 +30,7 @@ describe('get_apm_package_policy_definition', () => { "apm-server.auth.anonymous.allow_service": "opbeans-test", "apm-server.auth.anonymous.rate_limit.event_limit": 100, "apm-server.auth.anonymous.rate_limit.ip_limit": 100, + "apm-server.auth.api_key.enabled": true, "apm-server.auth.secret_token": "asdfkjhasdf", "apm-server.host": "0.0.0.0:8200", "apm-server.read_timeout": 3600, diff --git a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts b/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts index df922dd18fe4d..9e1889fbe1ed8 100644 --- a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts +++ b/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts @@ -68,6 +68,10 @@ export function preprocessLegacyFields({ key: 'apm-server.auth.secret_token', legacyKey: 'apm-server.secret_token', }, + { + key: 'apm-server.auth.api_key.enabled', + legacyKey: 'apm-server.api_key.enabled', + }, ].forEach(({ key, legacyKey }) => { if (!copyOfApmServerSchema[key]) { copyOfApmServerSchema[key] = copyOfApmServerSchema[legacyKey]; From 77acb68973955a18d408f1cea8293c47c49f4b5b Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Wed, 17 Nov 2021 16:28:03 -0600 Subject: [PATCH 012/114] [ci] Add yarn.lock to buildkite library (#118629) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .buildkite/scripts/lifecycle/pre_command.sh | 2 +- .buildkite/yarn.lock | 208 ++++++++++++++++++++ 2 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 .buildkite/yarn.lock diff --git a/.buildkite/scripts/lifecycle/pre_command.sh b/.buildkite/scripts/lifecycle/pre_command.sh index cae6a07708d46..7016cf41d79e9 100755 --- a/.buildkite/scripts/lifecycle/pre_command.sh +++ b/.buildkite/scripts/lifecycle/pre_command.sh @@ -9,7 +9,7 @@ export BUILDKITE_TOKEN echo '--- Install buildkite dependencies' cd '.buildkite' -retry 5 15 yarn install +retry 5 15 yarn install --production --pure-lockfile cd - node .buildkite/scripts/lifecycle/print_agent_links.js || true diff --git a/.buildkite/yarn.lock b/.buildkite/yarn.lock new file mode 100644 index 0000000000000..0b92d21c87e26 --- /dev/null +++ b/.buildkite/yarn.lock @@ -0,0 +1,208 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@octokit/auth-token@^2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56" + integrity sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q== + dependencies: + "@octokit/types" "^6.0.0" + +"@octokit/core@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" + integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.0" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.6" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.6.tgz#4f09f2b468976b444742a1d5069f6fa45826d999" + integrity sha512-7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ== + dependencies: + "@octokit/types" "^5.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.5.8": + version "4.5.8" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.8.tgz#d42373633c3015d0eafce64a8ce196be167fdd9b" + integrity sha512-WnCtNXWOrupfPJgXe+vSmprZJUr0VIu14G58PMlkWGj3cH+KLZEfKMmbUQ6C3Wwx6fdhzVW1CD5RTnBdUHxhhA== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^6.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^11.2.0": + version "11.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" + integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== + +"@octokit/openapi-types@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-2.2.0.tgz#123e0438a0bc718ccdac3b5a2e69b3dd00daa85b" + integrity sha512-274lNUDonw10kT8wHg8fCcUc1ZjZHbWv0/TbAwb0ojhBQqZYc1cQ/4yqTVTtPMDeZ//g7xVEYe/s3vURkRghPg== + +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" + integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== + dependencies: + "@octokit/types" "^6.34.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" + integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== + dependencies: + "@octokit/types" "^6.34.0" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" + integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + dependencies: + "@octokit/types" "^5.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.3.0": + version "5.4.12" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.12.tgz#b04826fa934670c56b135a81447be2c1723a2ffc" + integrity sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" + once "^1.4.0" + universal-user-agent "^6.0.0" + +"@octokit/request@^5.6.0": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.2.tgz#1aa74d5da7b9e04ac60ef232edd9a7438dcf32d8" + integrity sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.10.0": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== + dependencies: + "@octokit/core" "^3.5.1" + "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" + integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^6.0.0", "@octokit/types@^6.0.3": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.2.1.tgz#7f881fe44475ab1825776a4a59ca1ae082ed1043" + integrity sha512-jHs9OECOiZxuEzxMZcXmqrEO8GYraHF+UzNVH2ACYh8e/Y7YoT+hUf9ldvVd6zIvWv4p3NdxbQ0xx3ku5BnSiA== + dependencies: + "@octokit/openapi-types" "^2.2.0" + "@types/node" ">= 8" + +"@octokit/types@^6.16.1", "@octokit/types@^6.34.0": + version "6.34.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" + integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== + dependencies: + "@octokit/openapi-types" "^11.2.0" + +"@types/node@>= 8": + version "16.10.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" + integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ== + +axios@^0.21.4: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +before-after-hook@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +follow-redirects@^1.14.0: + version "1.14.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" + integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g== + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +kibana-buildkite-library@elastic/kibana-buildkite-library: + version "1.0.0" + resolved "https://codeload.github.com/elastic/kibana-buildkite-library/tar.gz/ee34f75c00712b639124cbef60f68132fa662643" + dependencies: + "@octokit/rest" "^18.10.0" + axios "^0.21.4" + +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= From dfa856eb4c4c54cd599e4a2eabf12ae4ffd94a61 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 17 Nov 2021 14:46:27 -0800 Subject: [PATCH 013/114] [ftr] label global hooks which tie into lifecycle service (#118949) --- .../src/functional_test_runner/lib/mocha/decorate_mocha_ui.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kbn-test/src/functional_test_runner/lib/mocha/decorate_mocha_ui.js b/packages/kbn-test/src/functional_test_runner/lib/mocha/decorate_mocha_ui.js index c6693245da28b..7610ca9128694 100644 --- a/packages/kbn-test/src/functional_test_runner/lib/mocha/decorate_mocha_ui.js +++ b/packages/kbn-test/src/functional_test_runner/lib/mocha/decorate_mocha_ui.js @@ -57,7 +57,7 @@ export function decorateMochaUi(log, lifecycle, context, { isDockerGroup, rootTa } argumentsList[1] = function () { - before(async () => { + before('beforeTestSuite.trigger', async () => { await lifecycle.beforeTestSuite.trigger(this); }); @@ -87,7 +87,7 @@ export function decorateMochaUi(log, lifecycle, context, { isDockerGroup, rootTa provider.call(this); - after(async () => { + after('afterTestSuite.trigger', async () => { await lifecycle.afterTestSuite.trigger(this); }); }; From dc0d219c32ef04d28fd03a850f109ff86ad273cb Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau Date: Wed, 17 Nov 2021 18:43:26 -0500 Subject: [PATCH 014/114] [SECURITY] Fix Users grid loading state if there are no users found (#118886) * fix loading issue on the table without user * fix check * review --- .../users/users_grid/users_grid_page.test.tsx | 60 +++++++++++++++++++ .../users/users_grid/users_grid_page.tsx | 15 +++-- 2 files changed, 70 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx index e3ad83fd0b934..b340a915bc054 100644 --- a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx +++ b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx @@ -73,6 +73,66 @@ describe('UsersGridPage', () => { expect(findTestSubject(wrapper, 'userDisabled')).toHaveLength(0); }); + it('renders the loading indication on the table when fetching user with data', async () => { + const apiClientMock = userAPIClientMock.create(); + apiClientMock.getUsers.mockImplementation(() => { + return Promise.resolve([ + { + username: 'foo', + email: 'foo@bar.net', + full_name: 'foo bar', + roles: ['kibana_user'], + enabled: true, + }, + { + username: 'reserved', + email: 'reserved@bar.net', + full_name: '', + roles: ['superuser'], + enabled: true, + metadata: { + _reserved: true, + }, + }, + ]); + }); + + const wrapper = mountWithIntl( + + ); + + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeTruthy(); + await waitForRender(wrapper); + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeFalsy(); + }); + + it('renders the loading indication on the table when fetching user with no data', async () => { + const apiClientMock = userAPIClientMock.create(); + apiClientMock.getUsers.mockImplementation(() => { + return Promise.resolve([]); + }); + + const wrapper = mountWithIntl( + + ); + + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeTruthy(); + await waitForRender(wrapper); + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeFalsy(); + }); + it('generates valid links when usernames contain special characters', async () => { const apiClientMock = userAPIClientMock.create(); apiClientMock.getUsers.mockImplementation(() => { diff --git a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx index b7cdf27dc6be5..974ca2be219c4 100644 --- a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx +++ b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx @@ -51,6 +51,7 @@ interface State { permissionDenied: boolean; filter: string; includeReservedUsers: boolean; + isTableLoading: boolean; } export class UsersGridPage extends Component { @@ -65,6 +66,7 @@ export class UsersGridPage extends Component { permissionDenied: false, filter: '', includeReservedUsers: true, + isTableLoading: false, }; } @@ -73,7 +75,7 @@ export class UsersGridPage extends Component { } public render() { - const { users, roles, permissionDenied, showDeleteConfirmation, selection } = this.state; + const { roles, permissionDenied, showDeleteConfirmation, selection } = this.state; if (permissionDenied) { return ( @@ -268,7 +270,7 @@ export class UsersGridPage extends Component { selection={selectionConfig} pagination={pagination} items={this.state.visibleUsers} - loading={users.length === 0} + loading={this.state.isTableLoading} search={search} sorting={sorting} rowProps={rowProps} @@ -311,11 +313,15 @@ export class UsersGridPage extends Component { private async loadUsersAndRoles() { try { + this.setState({ + isTableLoading: true, + }); const [users, roles] = await Promise.all([ this.props.userAPIClient.getUsers(), this.props.rolesAPIClient.getRoles(), ]); this.setState({ + isTableLoading: false, users, roles, visibleUsers: this.getVisibleUsers( @@ -325,9 +331,8 @@ export class UsersGridPage extends Component { ), }); } catch (e) { - if (e.body.statusCode === 403) { - this.setState({ permissionDenied: true }); - } else { + this.setState({ permissionDenied: e.body.statusCode === 403, isTableLoading: false }); + if (e.body.statusCode !== 403) { this.props.notifications.toasts.addDanger( i18n.translate('xpack.security.management.users.fetchingUsersErrorMessage', { defaultMessage: 'Error fetching users: {message}', From 104baa0f00daaf8b23b7af94b742d854df65b750 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 17 Nov 2021 16:36:47 -0800 Subject: [PATCH 015/114] [ftr/remote] delay chrome restarts, limit attempts (#118945) --- test/functional/services/remote/webdriver.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/test/functional/services/remote/webdriver.ts b/test/functional/services/remote/webdriver.ts index 82a9f9b7d3f27..9ae848d95473a 100644 --- a/test/functional/services/remote/webdriver.ts +++ b/test/functional/services/remote/webdriver.ts @@ -10,7 +10,7 @@ import { resolve } from 'path'; import Fs from 'fs'; import * as Rx from 'rxjs'; -import { mergeMap, map, takeUntil, catchError } from 'rxjs/operators'; +import { mergeMap, map, takeUntil, catchError, ignoreElements } from 'rxjs/operators'; import { Lifecycle } from '@kbn/test'; import { ToolingLog } from '@kbn/dev-utils'; import chromeDriver from 'chromedriver'; @@ -53,6 +53,8 @@ const chromiumUserPrefs = { }, }; +const sleep$ = (ms: number) => Rx.timer(ms).pipe(ignoreElements()); + /** * Best we can tell WebDriver locks up sometimes when we send too many * commands at once, sometimes... It causes random lockups where we never @@ -331,6 +333,7 @@ export async function initWebDriver( edgePaths = await installDriver(); } + let attempt = 1; return await Rx.race( Rx.timer(2 * MINUTE).pipe( map(() => { @@ -355,8 +358,14 @@ export async function initWebDriver( catchError((error, resubscribe) => { log.warning('Failure while creating webdriver instance'); log.warning(error); - log.warning('...retrying...'); - return resubscribe; + + if (attempt > 5) { + throw new Error('out of retry attempts'); + } + + attempt += 1; + log.warning('...retrying in 15 seconds...'); + return Rx.concat(sleep$(15000), resubscribe); }) ) ).toPromise(); From dd941438027382ce235ab924aaab01496374089d Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 17 Nov 2021 18:00:41 -0700 Subject: [PATCH 016/114] prevent creating babel/core-js upgrade PRs until versions are 7 days old --- renovate.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/renovate.json b/renovate.json index 21df347cf038f..82005e82299b1 100644 --- a/renovate.json +++ b/renovate.json @@ -18,7 +18,8 @@ "packageRules": [ { "matchPackagePatterns": [".*"], - "enabled": false + "enabled": false, + "prCreation": "not-pending" }, { "groupName": "@elastic/charts", @@ -60,7 +61,8 @@ "reviewers": ["team:kibana-operations"], "matchBaseBranches": ["main"], "labels": ["Team:Operations", "release_note:skip"], - "enabled": true + "enabled": true, + "stabilityDays": 7 }, { "groupName": "polyfills", @@ -70,7 +72,8 @@ "reviewers": ["team:kibana-operations"], "matchBaseBranches": ["main"], "labels": ["Team:Operations", "release_note:skip"], - "enabled": true + "enabled": true, + "stabilityDays": 7 }, { "groupName": "vega related modules", From e2c916a577165b16a260cde373b1293444b51834 Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Wed, 17 Nov 2021 19:08:10 -0700 Subject: [PATCH 017/114] [Security Solutions] Removes plugins/data/public deprecations from security_solutions plugin (#118938) ## Summary This removes all the areas marked as deprecated from `.../src/plugins/data/public` with their `@kbn/es-query` equivalent or it uses the directly exported version from `.../src/plugins/data/public`. Anywhere else this adds the `import type {` where it can to encourage the build system to do more type erasures. ### 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 --- .../components/builder/builder.stories.tsx | 2 +- .../builder/entry_renderer.stories.tsx | 2 +- .../builder/entry_renderer.test.tsx | 2 +- .../components/builder/entry_renderer.tsx | 2 +- .../builder/exception_item_renderer.tsx | 2 +- .../builder/exception_items_renderer.tsx | 2 +- .../components/builder/helpers.test.ts | 2 +- .../detection_engine/get_query_filter.test.ts | 2 +- .../common/search_strategy/common/index.ts | 2 +- .../security_solution/cti/index.mock.ts | 2 +- .../security_solution/cti/index.ts | 2 +- .../security_solution/hosts/all/index.ts | 2 +- .../hosts/authentications/index.ts | 2 +- .../security_solution/hosts/details/index.ts | 2 +- .../hosts/first_last_seen/index.ts | 2 +- .../hosts/kpi/authentications/index.ts | 2 +- .../hosts/kpi/hosts/index.ts | 2 +- .../hosts/kpi/unique_ips/index.ts | 2 +- .../security_solution/hosts/overview/index.ts | 2 +- .../hosts/risk_score/index.ts | 2 +- .../hosts/uncommon_processes/index.ts | 2 +- .../security_solution/index.ts | 2 +- .../matrix_histogram/index.ts | 2 +- .../network/details/index.ts | 2 +- .../security_solution/network/dns/index.ts | 2 +- .../security_solution/network/http/index.ts | 2 +- .../network/kpi/dns/index.ts | 2 +- .../network/kpi/network_events/index.ts | 2 +- .../network/kpi/tls_handshakes/index.ts | 2 +- .../network/kpi/unique_flows/index.ts | 2 +- .../network/kpi/unique_private_ips/index.ts | 2 +- .../network/overview/index.ts | 2 +- .../security_solution/network/tls/index.ts | 2 +- .../network/top_countries/index.ts | 2 +- .../network/top_n_flow/index.ts | 2 +- .../security_solution/network/users/index.ts | 2 +- .../ueba/host_rules/index.ts | 2 +- .../ueba/host_tactics/index.ts | 2 +- .../ueba/risk_score/index.ts | 2 +- .../ueba/user_rules/index.ts | 2 +- .../common/search_strategy/timeline/index.ts | 2 +- .../common/types/timeline/store.ts | 3 +- .../helpers.ts | 2 +- .../add_filter_to_global_search_bar/index.tsx | 3 +- .../components/alerts_viewer/alerts_table.tsx | 2 +- .../common/components/alerts_viewer/types.ts | 2 +- .../event_details/table/field_name_cell.tsx | 2 +- .../common/components/events_viewer/index.tsx | 2 +- .../components/exceptions/helpers.test.tsx | 2 +- .../common/components/exceptions/helpers.tsx | 2 +- .../hover_actions/actions/show_top_n.tsx | 2 +- .../common/components/navigation/helpers.ts | 2 +- .../navigation/tab_navigation/types.ts | 2 +- .../common/components/query_bar/index.tsx | 2 +- .../common/components/search_bar/index.tsx | 4 +-- .../common/components/search_bar/selectors.ts | 3 +- .../threat_match/entry_item.test.tsx | 2 +- .../components/threat_match/entry_item.tsx | 2 +- .../components/threat_match/helpers.test.tsx | 4 +-- .../components/threat_match/helpers.tsx | 2 +- .../components/threat_match/index.test.tsx | 2 +- .../common/components/threat_match/index.tsx | 2 +- .../threat_match/list_item.test.tsx | 2 +- .../components/threat_match/list_item.tsx | 2 +- .../public/common/components/top_n/index.tsx | 6 ++-- .../public/common/components/top_n/top_n.tsx | 2 +- .../common/components/url_state/helpers.ts | 3 +- .../url_state/initialize_redux_by_url.tsx | 2 +- .../components/url_state/test_dependencies.ts | 2 +- .../common/components/url_state/types.ts | 4 +-- .../containers/cti/event_enrichment/api.ts | 2 +- .../public/common/containers/source/index.tsx | 2 +- .../public/common/hooks/eql/api.ts | 2 +- .../hooks/eql/eql_search_response.mock.ts | 2 +- .../public/common/hooks/eql/helpers.test.ts | 2 +- .../public/common/hooks/eql/helpers.ts | 2 +- .../common/hooks/eql/use_eql_preview.test.ts | 2 +- .../common/hooks/use_app_toasts.test.ts | 2 +- .../common/hooks/use_invalid_filter_query.tsx | 2 +- .../expanded_cell_value_actions.tsx | 2 +- .../public/common/mock/timeline_results.ts | 2 +- .../public/common/store/inputs/actions.ts | 4 ++- .../public/common/store/inputs/model.ts | 3 +- .../public/common/store/inputs/selectors.ts | 2 +- .../security_solution/public/common/types.ts | 2 +- .../alerts_count_panel/index.test.tsx | 11 ++++--- .../alerts_kpis/alerts_count_panel/index.tsx | 5 ++-- .../alerts_histogram_panel/index.test.tsx | 11 +++---- .../alerts_histogram_panel/index.tsx | 7 +++-- .../components/alerts_table/actions.test.tsx | 2 +- .../alerts_table/default_config.tsx | 3 +- .../components/alerts_table/helpers.test.ts | 4 +-- .../components/alerts_table/index.tsx | 5 ++-- .../components/alerts_table/types.ts | 2 +- .../rules/autocomplete_field/index.tsx | 2 +- .../rules/description_step/helpers.test.tsx | 8 ++--- .../rules/description_step/helpers.tsx | 9 ++++-- .../rules/description_step/index.test.tsx | 20 +++++-------- .../rules/description_step/index.tsx | 6 ++-- .../rules/description_step/types.ts | 4 +-- .../components/rules/query_bar/index.tsx | 2 +- .../rules/query_preview/index.test.tsx | 2 +- .../components/rules/query_preview/reducer.ts | 2 +- .../rules/risk_score_mapping/index.tsx | 2 +- .../components/rules/rule_preview/helpers.ts | 3 +- .../rules/severity_mapping/index.tsx | 2 +- .../rules/threatmatch_input/index.tsx | 2 +- .../rules/all/__mocks__/mock.ts | 6 ++-- .../detection_engine/rules/helpers.test.tsx | 5 ++-- .../pages/detection_engine/rules/helpers.tsx | 2 +- .../pages/detection_engine/rules/types.ts | 2 +- .../hosts/pages/details/helpers.test.ts | 2 +- .../public/hosts/pages/details/helpers.ts | 2 +- .../public/hosts/pages/details/index.tsx | 5 ++-- .../public/hosts/pages/details/types.ts | 2 +- .../public/hosts/pages/hosts.test.tsx | 2 +- .../public/hosts/pages/hosts.tsx | 6 ++-- .../navigation/alerts_query_tab_body.tsx | 2 +- .../public/hosts/pages/navigation/types.ts | 3 +- .../endpoint_hosts/models/index_pattern.ts | 6 ++-- .../pages/endpoint_hosts/store/action.ts | 2 +- .../pages/endpoint_hosts/store/middleware.ts | 2 +- .../pages/endpoint_hosts/store/selectors.ts | 2 +- .../management/pages/endpoint_hosts/types.ts | 2 +- .../view/components/search_bar.tsx | 3 +- .../components/embeddables/embedded_map.tsx | 2 +- .../embeddables/embedded_map_helpers.tsx | 3 +- .../network_top_countries_table/columns.tsx | 2 +- .../network_top_countries_table/index.tsx | 2 +- .../public/network/pages/details/index.tsx | 4 +-- .../public/network/pages/details/types.ts | 2 +- .../navigation/alerts_query_tab_body.tsx | 2 +- .../public/network/pages/navigation/types.ts | 2 +- .../public/network/pages/network.test.tsx | 2 +- .../public/network/pages/network.tsx | 6 ++-- .../components/alerts_by_category/index.tsx | 6 ++-- .../components/event_counts/index.tsx | 8 ++--- .../components/events_by_dataset/index.tsx | 6 ++-- .../use_filters_for_signals_by_category.ts | 2 +- .../use_request_event_counts.ts | 2 +- .../use_hosts_risk_score_complete.ts | 9 +++--- .../create_field_button/index.test.tsx | 2 +- .../components/create_field_button/index.tsx | 6 ++-- .../components/flyout/header/index.tsx | 6 ++-- .../components/netflow/index.test.tsx | 2 +- .../network_details/expandable_network.tsx | 4 +-- .../body/renderers/column_renderer.ts | 2 +- .../body/renderers/plain_column_renderer.tsx | 2 +- .../components/timeline/header/index.tsx | 2 +- .../components/timeline/helpers.test.tsx | 10 +++---- .../timelines/components/timeline/helpers.tsx | 2 +- .../timeline/query_bar/index.test.tsx | 7 +++-- .../components/timeline/query_bar/index.tsx | 9 +++--- .../timeline/query_tab_content/index.tsx | 6 ++-- .../timeline/search_or_filter/index.tsx | 3 +- .../search_or_filter/search_or_filter.tsx | 3 +- .../timelines/containers/details/index.tsx | 2 +- .../public/timelines/containers/index.tsx | 3 +- .../timelines/store/timeline/actions.ts | 2 +- .../timelines/store/timeline/epic.test.ts | 6 ++-- .../public/timelines/store/timeline/epic.ts | 30 ++++++++++++------- .../timelines/store/timeline/helpers.ts | 3 +- .../timelines/store/timeline/reducer.test.ts | 2 +- .../plugins/security_solution/public/types.ts | 2 +- .../public/ueba/pages/details/helpers.ts | 2 +- .../public/ueba/pages/details/index.tsx | 5 ++-- .../public/ueba/pages/details/types.ts | 2 +- .../public/ueba/pages/navigation/types.ts | 2 +- .../public/ueba/pages/ueba.tsx | 6 ++-- .../server/endpoint/routes/policy/service.ts | 2 +- .../endpoint/utils/audit_log_helpers.ts | 2 +- .../rule_types/__mocks__/eql.ts | 2 +- .../build_threat_mapping_filter.mock.ts | 3 +- .../build_threat_mapping_filter.ts | 2 +- .../threshold/get_threshold_bucket_filters.ts | 2 +- .../server/lib/detection_engine/types.ts | 2 +- .../factory/hosts/all/__mocks__/index.ts | 2 +- .../factory/hosts/all/index.ts | 2 +- .../factory/hosts/all/query.all_hosts.dsl.ts | 2 +- .../hosts/all/query.all_hosts_entities.dsl.ts | 2 +- .../hosts/authentications/__mocks__/index.ts | 2 +- .../factory/hosts/authentications/index.tsx | 2 +- .../factory/hosts/details/__mocks__/index.ts | 2 +- .../factory/hosts/details/index.ts | 2 +- .../hosts/details/query.host_details.dsl.ts | 2 +- .../hosts/kpi/authentications/index.ts | 2 +- .../factory/hosts/kpi/hosts/index.ts | 2 +- .../factory/hosts/kpi/unique_ips/index.ts | 2 +- .../factory/hosts/last_first_seen/index.ts | 2 +- .../factory/hosts/overview/__mocks__/index.ts | 2 +- .../factory/hosts/overview/index.ts | 2 +- .../hosts/overview/query.overview_host.dsl.ts | 2 +- .../factory/hosts/risk_score/index.ts | 2 +- .../factory/hosts/uncommon_processes/index.ts | 2 +- .../matrix_histogram/__mocks__/index.ts | 2 +- .../factory/matrix_histogram/index.ts | 2 +- .../network/details/__mocks__/index.ts | 2 +- .../factory/network/details/index.ts | 2 +- .../factory/network/dns/__mocks__/index.ts | 2 +- .../factory/network/dns/helpers.ts | 2 +- .../factory/network/dns/index.ts | 2 +- .../factory/network/http/__mocks__/index.ts | 2 +- .../factory/network/http/helpers.ts | 2 +- .../factory/network/http/index.ts | 2 +- .../factory/network/kpi/dns/index.ts | 2 +- .../network/kpi/network_events/index.ts | 2 +- .../network/kpi/tls_handshakes/index.ts | 2 +- .../factory/network/kpi/unique_flows/index.ts | 2 +- .../network/kpi/unique_private_ips/index.ts | 2 +- .../network/overview/__mocks__/index.ts | 2 +- .../factory/network/overview/index.ts | 2 +- .../overview/query.overview_network.dsl.ts | 2 +- .../factory/network/tls/__mocks__/index.ts | 2 +- .../factory/network/tls/helpers.ts | 2 +- .../factory/network/tls/index.ts | 2 +- .../network/top_countries/__mocks__/index.ts | 2 +- .../factory/network/top_countries/helpers.ts | 2 +- .../factory/network/top_countries/index.ts | 2 +- .../network/top_n_flow/__mocks__/index.ts | 2 +- .../factory/network/top_n_flow/helpers.ts | 2 +- .../factory/network/top_n_flow/index.ts | 2 +- .../factory/network/users/__mocks__/index.ts | 2 +- .../factory/network/users/helpers.ts | 2 +- .../factory/network/users/index.ts | 2 +- .../security_solution/factory/types.ts | 8 ++--- .../factory/ueba/host_rules/index.ts | 2 +- .../factory/ueba/host_tactics/index.ts | 2 +- .../factory/ueba/risk_score/index.ts | 2 +- .../factory/ueba/user_rules/index.ts | 2 +- 229 files changed, 349 insertions(+), 328 deletions(-) diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx index 73b7fe53b1ccc..5fcb8270c33ad 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx @@ -9,7 +9,7 @@ import { Story, addDecorator } from '@storybook/react'; import React from 'react'; import { HttpStart } from 'kibana/public'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; import { getEntryMatchAnyMock } from '../../../../common/schemas/types/entry_match_any.mock'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx index b1357f35d140b..b0a32df8b4d02 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx @@ -14,7 +14,7 @@ import { ListOperatorTypeEnum as OperatorTypeEnum, } from '@kbn/securitysolution-io-ts-list-types'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { fields } from '../../../../../../../src/plugins/data/common/mocks'; import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx index a06115c970221..1ac35608f884a 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx @@ -20,7 +20,7 @@ import { isOperator, } from '@kbn/securitysolution-list-utils'; import { useFindLists } from '@kbn/securitysolution-list-hooks'; -import { FieldSpec } from 'src/plugins/data/common'; +import type { FieldSpec } from 'src/plugins/data/common'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx index e2650b9c8cfb3..88a83b354cf89 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx @@ -37,7 +37,7 @@ import { } from '@kbn/securitysolution-autocomplete'; import { IndexPatternBase, IndexPatternFieldBase } from '@kbn/es-query'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { HttpStart } from '../../../../../../../src/core/public'; import { getEmptyValue } from '../../../common/empty_value'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx index 4b3f094aa4f22..708543ac8888e 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx @@ -9,7 +9,7 @@ import React, { useCallback, useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; import { HttpStart } from 'kibana/public'; -import { AutocompleteStart } from 'src/plugins/data/public'; +import type { AutocompleteStart } from 'src/plugins/data/public'; import { ExceptionListType, OsTypeArray } from '@kbn/securitysolution-io-ts-list-types'; import { BuilderEntry, diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx index 280dd8acbc7e5..064d227c6f3d4 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx @@ -33,7 +33,7 @@ import { } from '@kbn/securitysolution-list-utils'; import { IndexPatternBase } from '@kbn/es-query'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { AndOrBadge } from '../and_or_badge'; import { BuilderExceptionListItemComponent } from './exception_item_renderer'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts index fab49453958dd..43d392b40e9fd 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts +++ b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts @@ -58,7 +58,7 @@ import { ENTRIES_WITH_IDS } from '../../../../common/constants.mock'; import { getEntryExistsMock } from '../../../../common/schemas/types/entry_exists.mock'; import { getExceptionListItemSchemaMock } from '../../../../common/schemas/response/exception_list_item_schema.mock'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; -import { FieldSpec } from '../../../../../../../src/plugins/data/common'; +import type { FieldSpec } from '../../../../../../../src/plugins/data/common'; import { getEntryNestedMock } from '../../../../common/schemas/types/entry_nested.mock'; import { getEntryMatchMock } from '../../../../common/schemas/types/entry_match.mock'; import { getEntryMatchAnyMock } from '../../../../common/schemas/types/entry_match_any.mock'; diff --git a/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts b/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts index d017d0095e895..61e1ebb47464b 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts @@ -6,7 +6,7 @@ */ import { getQueryFilter, getAllFilters, buildEqlSearchRequest } from './get_query_filter'; -import { Filter } from 'src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { getExceptionListItemSchemaMock } from '../../../lists/common/schemas/response/exception_list_item_schema.mock'; describe('get_filter', () => { diff --git a/x-pack/plugins/security_solution/common/search_strategy/common/index.ts b/x-pack/plugins/security_solution/common/search_strategy/common/index.ts index 095ba4ca20afc..f1a2977b27e19 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/common/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/common/index.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { IEsSearchResponse } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../src/plugins/data/common'; export type { Inspect, SortField, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts index 4656a200ccac6..9d98a480a6201 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from 'src/plugins/data/public'; +import type { IEsSearchResponse } from 'src/plugins/data/public'; import { CtiEnrichment, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts index 69a6841c7c14f..26bf4ce6740a9 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from 'src/plugins/data/public'; +import type { IEsSearchResponse } from 'src/plugins/data/public'; import { EVENT_ENRICHMENT_INDICATOR_FIELD_MAP } from '../../../cti/constants'; import { Inspect } from '../../common'; import { RequestBasicOptions } from '..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts index 974e892a7312f..feb2f6e19e491 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostItem, HostsFields } from '../common'; import { CursorType, Direction, Inspect, Maybe, PageInfoPaginated } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts index a000fcf6136e5..85255f51382fa 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { UserEcs } from '../../../../ecs/user'; import { SourceEcs } from '../../../../ecs/source'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts index 315f6eeb69f34..e17703ff57a2a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts @@ -6,7 +6,7 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, TimerangeInput } from '../../../common'; import { HostItem, HostsFields } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts index df95f859e3f37..70a7af9356d1a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, Direction } from '../../../common'; import { RequestOptionsPaginated } from '../..'; import { HostsFields } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts index 81e1945dcd010..73729b613c38c 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; import { HostsKpiHistogramData } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts index 816b240223b59..ca03a9a7252b2 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; import { HostsKpiHistogramData } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts index 0551ceb055cf8..a51b08ad77f56 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; import { HostsKpiHistogramData } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts index 72f65e978aab9..dcf10173ccfd9 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, SearchHit } from '../../../common'; import { RequestBasicOptions } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts index 39f648eab8cd0..f931694a4e229 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts @@ -6,7 +6,7 @@ */ import { FactoryQueryTypes } from '../..'; -import { +import type { IEsSearchRequest, IEsSearchResponse, } from '../../../../../../../../src/plugins/data/common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts index 4e885dee113d2..0b987f4bf3f42 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostEcs } from '../../../../ecs/host'; import { UserEcs } from '../../../../ecs/user'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts index 91a2956e25286..00cbdb941c11b 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts @@ -5,7 +5,7 @@ * 2.0. */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; import { ESQuery } from '../../typed_json'; import { HostDetailsStrategyResponse, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts index a229ce2281b0b..a4d68d251e5a6 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../src/plugins/data/common'; import { AuthenticationHit } from '../hosts'; import { Inspect, Maybe, TimerangeInput } from '../../common'; import { RequestBasicOptions } from '../'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts index 3843a6505a672..0495ad24a6b16 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostEcs } from '../../../../ecs/host'; import { GeoEcs } from '../../../../ecs/geo'; import { Inspect, Maybe, TotalValue, Hit, ShardsResponse } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts index e302d0bd3a5c9..bd79532e4885a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; import { RequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts index 2edba849b1dd4..0b19f475c452b 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Maybe, CursorType, Inspect, PageInfoPaginated, GenericBuckets } from '../../../common'; import { RequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts index 2a4535c82bf38..8e631ffcdb746 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts index fc9e5f9b491e6..5a404c2c0c0a1 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts index 4da67551e8320..c772d5d0c6ceb 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts index 95b6452be4ae3..9f72eac8afad0 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts index 65591df10fe39..f1b06c68e3786 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts index ed124d22c2e12..22325dff8e148 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, SearchHit } from '../../../common'; import { RequestBasicOptions } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts index 80b6e10444bab..c4c3ece61005a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated } from '../../../common'; import { RequestOptionsPaginated } from '../..'; import { FlowTargetSourceDest } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts index 7860cde41f570..7de0bbbb53f50 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated } from '../../../common'; import { RequestOptionsPaginated } from '../..'; import { diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts index 207d24d920bb0..676daa1086921 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { GeoItem, FlowTargetSourceDest, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts index 0bd6b7ed6490b..029ae4aa62335 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; import { FlowTarget } from '../common'; import { RequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts index cb6469c6209a6..98ea5ce58e13e 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostRulesItem, HostRulesFields } from '../common'; import { CursorType, Hit, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts index c55058dc6be04..13c8550e7a48d 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostTacticsItem, HostTacticsFields } from '../common'; import { CursorType, Hit, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts index 14c1533755056..c753dbb9e0e3b 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { RiskScoreItem, RiskScoreFields } from '../common'; import { CursorType, Hit, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts index c7302c10fab3b..5329d12b62b71 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostRulesFields, UserRulesFields } from '../common'; import { Hit, Inspect, Maybe, PageInfoPaginated, SearchHit, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts b/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts index 2d94a36a937d5..a66a10110f5b2 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts @@ -6,7 +6,7 @@ */ import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; import { ESQuery } from '../../typed_json'; import { TimelineEventsQueries, diff --git a/x-pack/plugins/security_solution/common/types/timeline/store.ts b/x-pack/plugins/security_solution/common/types/timeline/store.ts index 75cd44ba2b7d7..1b32f12dafd5b 100644 --- a/x-pack/plugins/security_solution/common/types/timeline/store.ts +++ b/x-pack/plugins/security_solution/common/types/timeline/store.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { ColumnHeaderOptions, ColumnId, @@ -12,8 +13,6 @@ import { TimelineExpandedDetail, TimelineTypeLiteral, } from '.'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Filter } from '../../../../../../src/plugins/data/public'; import { Direction } from '../../search_strategy'; import { DataProvider } from './data_provider'; diff --git a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts index f009b96a8d2a6..68da00bd7ef06 100644 --- a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; export const createFilter = ( key: string, diff --git a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx index 7c26a7eb17e8c..85e3a435af816 100644 --- a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx @@ -7,8 +7,7 @@ import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; import React, { useCallback, useMemo } from 'react'; - -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { WithHoverActions } from '../with_hover_actions'; import { useKibana } from '../../lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx index fff5b465956de..a9335fe7f4c6c 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx +++ b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx @@ -7,8 +7,8 @@ import React, { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; +import type { Filter } from '@kbn/es-query'; import { timelineActions } from '../../../timelines/store/timeline'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { TimelineIdLiteral } from '../../../../common/types/timeline'; import { StatefulEventsViewer } from '../events_viewer'; import { alertsDefaultModel } from './default_headers'; diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts index 3c439a9eff1ea..010c8b4e0e8e5 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import type { EntityType } from '../../../../../timelines/common'; import { TimelineIdLiteral } from '../../../../common/types/timeline'; import { HostsComponentsQueryProps } from '../../../hosts/pages/navigation/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx index 5482288b7d279..a52099b905d2a 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx +++ b/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx @@ -10,7 +10,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiBadge, EuiText, EuiToolTip } from '@elast import { isEmpty } from 'lodash'; import { FieldIcon } from '@kbn/react-field/field_icon'; import * as i18n from '../translations'; -import { DataViewField } from '../../../../../../../../src/plugins/data_views/common'; +import type { DataViewField } from '../../../../../../../../src/plugins/data_views/common'; import { getExampleText } from '../helpers'; import { BrowserField } from '../../../containers/source'; import { EventFieldsData } from '../types'; diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx index 55be8ad94ec5d..5c2312a8795c1 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx @@ -9,13 +9,13 @@ import React, { useCallback, useMemo, useEffect } from 'react'; import { connect, ConnectedProps, useDispatch } from 'react-redux'; import deepEqual from 'fast-deep-equal'; import styled from 'styled-components'; +import type { Filter } from '@kbn/es-query'; import { inputsModel, inputsSelectors, State } from '../../store'; import { inputsActions } from '../../store/actions'; import { ControlColumnProps, RowRenderer, TimelineId } from '../../../../common/types/timeline'; import { timelineSelectors, timelineActions } from '../../../timelines/store/timeline'; import type { SubsetTimelineModel, TimelineModel } from '../../../timelines/store/timeline/model'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { InspectButtonContainer } from '../inspect'; import { useGlobalFullScreen } from '../../containers/use_full_screen'; import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx index 37f250ffd2d4d..3ef80794275dc 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx @@ -42,7 +42,7 @@ import { getCommentsArrayMock } from '../../../../../lists/common/schemas/types/ import { fields } from '../../../../../../../src/plugins/data/common/mocks'; import { ENTRIES, OLD_DATE_RELATIVE_TO_DATE_NOW } from '../../../../../lists/common/constants.mock'; import { CodeSignature } from '../../../../common/ecs/file'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; jest.mock('uuid', () => ({ v4: jest.fn().mockReturnValue('123'), diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx index e14c151ed367c..4030c1f90d102 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx @@ -33,7 +33,7 @@ import { addIdToEntries, ExceptionsBuilderExceptionItem, } from '@kbn/securitysolution-list-utils'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import * as i18n from './translations'; import { AlertData, Flattened } from './types'; diff --git a/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx b/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx index 40b978cfe20fb..3e49ef7632731 100644 --- a/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx +++ b/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx @@ -14,6 +14,7 @@ import { EuiToolTip, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import type { Filter } from '@kbn/es-query'; import { StatefulTopN } from '../../top_n'; import { TimelineId } from '../../../../../common/types/timeline'; import { SourcererScopeName } from '../../../store/sourcerer/model'; @@ -21,7 +22,6 @@ import { useSourcererDataView } from '../../../containers/sourcerer'; import { TooltipWithKeyboardShortcut } from '../../accessibility'; import { getAdditionalScreenReaderOnlyContext } from '../utils'; import { SHOW_TOP_N_KEYBOARD_SHORTCUT } from '../keyboard_shortcut_constants'; -import { Filter } from '../../../../../../../../src/plugins/data/public'; const SHOW_TOP = (fieldName: string) => i18n.translate('xpack.securitySolution.hoverActions.showTopTooltip', { diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts b/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts index 610a3c086fc2c..35b5f62629dca 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts @@ -8,6 +8,7 @@ import { isEmpty } from 'lodash/fp'; import { Location } from 'history'; +import type { Filter, Query } from '@kbn/es-query'; import { UrlInputsModel } from '../../store/inputs/model'; import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { CONSTANTS } from '../url_state/constants'; @@ -17,7 +18,6 @@ import { replaceStateKeyInQueryString, getQueryStringFromLocation, } from '../url_state/helpers'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { SearchNavTab } from './types'; import { SourcererUrlState } from '../../store/sourcerer/model'; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts b/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts index 9a066037b2768..75f18abf75559 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts @@ -5,11 +5,11 @@ * 2.0. */ +import type { Filter, Query } from '@kbn/es-query'; import { UrlInputsModel } from '../../../store/inputs/model'; import { CONSTANTS } from '../../url_state/constants'; import { SourcererUrlState } from '../../../store/sourcerer/model'; import { TimelineUrl } from '../../../../timelines/store/timeline/model'; -import { Filter, Query } from '../../../../../../../../src/plugins/data/public'; import { SecuritySolutionTabNavigationProps } from '../types'; import { SiemRouteType } from '../../../utils/route/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx b/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx index 253f2c3862e0c..18f60db89595d 100644 --- a/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx @@ -8,7 +8,7 @@ import React, { memo, useMemo, useCallback } from 'react'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { FilterManager, TimeHistory, diff --git a/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx b/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx index 9531443e98514..22cba877b4962 100644 --- a/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx @@ -14,8 +14,8 @@ import { Subscription } from 'rxjs'; import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; -import { FilterManager, TimeRange, SavedQuery } from 'src/plugins/data/public'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { FilterManager, TimeRange, SavedQuery } from 'src/plugins/data/public'; import { OnTimeChangeProps } from '@elastic/eui'; diff --git a/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts b/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts index d47638b2067c0..3e4f7acd1ee85 100644 --- a/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts +++ b/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts @@ -6,8 +6,9 @@ */ import { createSelector } from 'reselect'; +import type { Query } from '@kbn/es-query'; import { InputsRange } from '../../store/inputs/model'; -import { Query, SavedQuery } from '../../../../../../../src/plugins/data/public'; +import type { SavedQuery } from '../../../../../../../src/plugins/data/public'; export { endSelector, diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx index 0550ef389585e..d99d813e1af8f 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx @@ -11,7 +11,7 @@ import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; import { EntryItem } from './entry_item'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; jest.mock('../../../common/lib/kibana'); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx index 777ef2069ff4f..3087a92aba72c 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx @@ -10,7 +10,7 @@ import { EuiFormRow, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; import { FieldComponent } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import { FormattedEntry, Entry } from './types'; import * as i18n from './translations'; import { getEntryOnFieldChange, getEntryOnThreatFieldChange } from './helpers'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx index 9a5051fe0cafb..272d056eed143 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx @@ -7,8 +7,8 @@ import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; import { Entry, EmptyEntry, ThreatMapEntries, FormattedEntry } from './types'; -import { FieldSpec } from '../../../../../../../src/plugins/data/common'; -import { DataViewBase } from '@kbn/es-query'; +import type { FieldSpec } from '../../../../../../../src/plugins/data/common'; +import type { DataViewBase } from '@kbn/es-query'; import moment from 'moment-timezone'; import { diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx index 7b0385ab6902f..2358f4dd5b9c1 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { addIdToItem } from '@kbn/securitysolution-utils'; import { ThreatMap, threatMap, ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import { Entry, FormattedEntry, ThreatMapEntries, EmptyEntry } from './types'; import { ValidationFunc } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; import { ERROR_CODE } from '../../../../../../../src/plugins/es_ui_shared/static/forms/helpers/field_validators/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx index e26c889b7e94a..20fd2821ed9be 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx @@ -16,7 +16,7 @@ import { useKibana } from '../../../common/lib/kibana'; import { ThreatMatchComponent } from './'; import { ThreatMapEntries } from './types'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { getMockTheme } from '../../lib/kibana/kibana_react.mock'; const mockTheme = getMockTheme({ diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx index 5ea17939ed780..1f3268b84bdba 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx @@ -8,7 +8,7 @@ import React, { useCallback, useEffect, useReducer } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { ListItemComponent } from './list_item'; import { AndOrBadge } from '../and_or_badge'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx index e2325ace26591..0cb1ed830ceca 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx @@ -14,7 +14,7 @@ import { fields } from '../../../../../../../src/plugins/data/common/mocks'; import { ListItemComponent } from './list_item'; import { ThreatMapEntries } from './types'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { getMockTheme } from '../../lib/kibana/kibana_react.mock'; const mockTheme = getMockTheme({ diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx index e01c28ecb54eb..47d367e6c04ad 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx @@ -9,7 +9,7 @@ import React, { useMemo, useCallback } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { getFormattedEntries, getUpdatedEntriesOnDelete } from './helpers'; import { FormattedEntry, ThreatMapEntries, Entry } from './types'; import { EntryItem } from './entry_item'; diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx index ac9acb62c5834..28f942dfa61cb 100644 --- a/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx @@ -8,11 +8,11 @@ import React, { useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { useGlobalTime } from '../../containers/use_global_time'; import { BrowserFields } from '../../containers/source'; import { useKibana } from '../../lib/kibana'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { inputsModel, inputsSelectors, State } from '../../store'; import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { timelineSelectors } from '../../../timelines/store/timeline'; @@ -117,7 +117,7 @@ const StatefulTopNComponent: React.FC = ({ timelineId === TimelineId.active ? combineQueries({ browserFields, - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders, filters: activeTimelineFilters, indexPattern, diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx index 9c99189e1b79e..f0d7000e4ed95 100644 --- a/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx +++ b/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx @@ -11,7 +11,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import styled from 'styled-components'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { GlobalTimeArgs } from '../../containers/use_global_time'; import { EventsByDataset } from '../../../overview/components/events_by_dataset'; import { SignalsByCategory } from '../../../overview/components/signals_by_category'; diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts index 1ff98528a20b8..4537b7be01f54 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts @@ -10,7 +10,8 @@ import { parse, stringify } from 'query-string'; import { decode, encode } from 'rison-node'; import * as H from 'history'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter, Query } from '@kbn/es-query'; + import { url } from '../../../../../../../src/plugins/kibana_utils/public'; import { TimelineId, TimelineTabs } from '../../../../common/types/timeline'; diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx b/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx index 11312e942c1eb..7c87aa19484bc 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx +++ b/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx @@ -10,7 +10,7 @@ import { Dispatch } from 'redux'; import { useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter, Query } from '@kbn/es-query'; import { inputsActions, sourcererActions } from '../../store/actions'; import { InputsModelId, TimeRangeKinds } from '../../store/inputs/constants'; import { diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts b/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts index f722c5ec0da00..9820b771ca123 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts @@ -5,13 +5,13 @@ * 2.0. */ +import type { Query } from '@kbn/es-query'; import { navTabs } from '../../../app/home/home_navigations'; import { SecurityPageName } from '../../../app/types'; import { inputsActions } from '../../store/actions'; import { CONSTANTS } from './constants'; import { UrlStateContainerPropTypes, LocationTypes } from './types'; -import { Query } from '../../../../../../../src/plugins/data/public'; import { networkModel } from '../../../network/store'; import { hostsModel } from '../../../hosts/store'; import { HostsTableType } from '../../../hosts/store/model'; diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/types.ts b/x-pack/plugins/security_solution/public/common/components/url_state/types.ts index 2626f4fb03c23..d9c91f3371856 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/types.ts @@ -5,8 +5,8 @@ * 2.0. */ -import { Filter, FilterManager, Query, SavedQueryService } from 'src/plugins/data/public'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { FilterManager, SavedQueryService } from 'src/plugins/data/public'; import { UrlInputsModel } from '../../store/inputs/model'; import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { RouteSpyState } from '../../utils/route/types'; diff --git a/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts b/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts index 179b4a53e3676..f668f96cce966 100644 --- a/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts +++ b/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts @@ -8,7 +8,7 @@ import { Observable } from 'rxjs'; import { filter } from 'rxjs/operators'; -import { DataPublicPluginStart } from 'src/plugins/data/public'; +import type { DataPublicPluginStart } from 'src/plugins/data/public'; import { isErrorResponse, isCompleteResponse, diff --git a/x-pack/plugins/security_solution/public/common/containers/source/index.tsx b/x-pack/plugins/security_solution/public/common/containers/source/index.tsx index 8ddd33d76034f..f833c2f8c4fc0 100644 --- a/x-pack/plugins/security_solution/public/common/containers/source/index.tsx +++ b/x-pack/plugins/security_solution/public/common/containers/source/index.tsx @@ -8,7 +8,7 @@ import { isEmpty, isEqual, isUndefined, keyBy, pick } from 'lodash/fp'; import memoizeOne from 'memoize-one'; import { useCallback, useEffect, useRef, useState } from 'react'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { Subscription } from 'rxjs'; import { useKibana } from '../../lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts index 7e7942317788b..a5b73517c4fb5 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; import { EqlSearchStrategyRequest, EqlSearchStrategyResponse, diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts index 107a691b6dbeb..278e84f327d08 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { Source } from './types'; import { EqlSearchResponse } from '../../../../common/detection_engine/types'; import type { Connection } from '@elastic/elasticsearch'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts index 2dba3e3af3773..abdb3d2d06e9c 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts @@ -7,7 +7,7 @@ import moment from 'moment'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { Source } from './types'; import { EqlSearchResponse } from '../../../../common/detection_engine/types'; import { inputsModel } from '../../../common/store'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts index 68a8cb53b3815..7594696336eda 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts @@ -9,7 +9,7 @@ import moment from 'moment'; import { Unit } from '@elastic/datemath'; import { inputsModel } from '../../../common/store'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { InspectResponse } from '../../../types'; import { EqlPreviewResponse, Source } from './types'; import { BaseHit, EqlSearchResponse } from '../../../../common/detection_engine/types'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts index b1cd14fa039b5..00edace90b7fd 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts @@ -11,7 +11,7 @@ import { of, throwError } from 'rxjs'; import { delay } from 'rxjs/operators'; import * as i18n from '../translations'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { Source } from './types'; import { EqlSearchResponse } from '../../../../common/detection_engine/types'; import { useKibana } from '../../../common/lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts b/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts index fffc982d8aa58..786f25d8c6aba 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts @@ -6,7 +6,7 @@ */ import { renderHook } from '@testing-library/react-hooks'; -import { IEsError } from 'src/plugins/data/public'; +import type { IEsError } from 'src/plugins/data/public'; import { KibanaError, SecurityAppError } from '@kbn/securitysolution-t-grid'; import { useToasts } from '../lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx b/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx index e03efcac4bbf6..a0cb9f941783e 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx +++ b/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx @@ -7,7 +7,7 @@ import { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; -import { Query } from 'src/plugins/data/public'; +import type { Query } from '@kbn/es-query'; import { appSelectors } from '../store'; import { appActions } from '../store/app'; import { useAppToasts } from './use_app_toasts'; diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx index 4b50fff48fe06..94ae557dfc300 100644 --- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx +++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx @@ -9,7 +9,7 @@ import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { noop } from 'lodash/fp'; import React, { useMemo, useState, useCallback } from 'react'; import styled from 'styled-components'; -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { BrowserFields } from '../../../../../timelines/common/search_strategy'; import { allowTopN } from '../../components/drag_and_drop/helpers'; import { ShowTopNButton } from '../../components/hover_actions/actions/show_top_n'; diff --git a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts index a6c16a82deca0..0f814d758e7f5 100644 --- a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts +++ b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { FilterStateStore } from '../../../../../../src/plugins/data/common'; +import { FilterStateStore } from '@kbn/es-query'; import { TimelineId, diff --git a/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts b/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts index 1e38b76909ca4..3da18090eb443 100644 --- a/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts +++ b/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts @@ -7,9 +7,11 @@ import actionCreatorFactory from 'typescript-fsa'; +import type { Filter } from '@kbn/es-query'; import { InspectQuery, Refetch, RefetchKql } from './model'; import { InputsModelId } from './constants'; -import { Filter, SavedQuery } from '../../../../../../../src/plugins/data/public'; + +import type { SavedQuery } from '../../../../../../../src/plugins/data/public'; const actionCreator = actionCreatorFactory('x-pack/security_solution/local/inputs'); diff --git a/x-pack/plugins/security_solution/public/common/store/inputs/model.ts b/x-pack/plugins/security_solution/public/common/store/inputs/model.ts index 5791a4940cbed..f5e31d42e22ea 100644 --- a/x-pack/plugins/security_solution/public/common/store/inputs/model.ts +++ b/x-pack/plugins/security_solution/public/common/store/inputs/model.ts @@ -6,9 +6,10 @@ */ import { Dispatch } from 'redux'; +import type { Filter, Query } from '@kbn/es-query'; import { InputsModelId } from './constants'; import { CONSTANTS } from '../../components/url_state/constants'; -import { Query, Filter, SavedQuery } from '../../../../../../../src/plugins/data/public'; +import type { SavedQuery } from '../../../../../../../src/plugins/data/public'; export interface AbsoluteTimeRange { kind: 'absolute'; diff --git a/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts b/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts index 3aedc4696f301..864a473a82099 100644 --- a/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts +++ b/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts @@ -7,7 +7,7 @@ import { createSelector } from 'reselect'; -import { Filter, Query } from '../../../../../../../src/plugins/data/public'; +import type { Filter, Query } from '@kbn/es-query'; import { State } from '../types'; import { InputsModel, InputsRange, GlobalQuery } from './model'; diff --git a/x-pack/plugins/security_solution/public/common/types.ts b/x-pack/plugins/security_solution/public/common/types.ts index 83a93769603e7..443edc0a9c4a5 100644 --- a/x-pack/plugins/security_solution/public/common/types.ts +++ b/x-pack/plugins/security_solution/public/common/types.ts @@ -6,7 +6,7 @@ */ import { ResponseErrorAttributes } from 'kibana/server'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { FieldSpec } from '../../../../../src/plugins/data_views/common'; export interface ServerApiError { diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx index f1b7d8b06644d..9660916d4f32c 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx @@ -9,8 +9,6 @@ import React from 'react'; import { waitFor, act } from '@testing-library/react'; import { mount } from 'enzyme'; -import { esQuery } from '../../../../../../../../src/plugins/data/public'; - import { TestProviders } from '../../../../common/mock'; import { AlertsCountPanel } from './index'; @@ -34,10 +32,11 @@ describe('AlertsCountPanel', () => { describe('Query', () => { it('it render with a illegal KQL', async () => { - const spyOnBuildEsQuery = jest.spyOn(esQuery, 'buildEsQuery'); - spyOnBuildEsQuery.mockImplementation(() => { - throw new Error('Something went wrong'); - }); + jest.mock('@kbn/es-query', () => ({ + buildEsQuery: jest.fn().mockImplementation(() => { + throw new Error('Something went wrong'); + }), + })); const props = { ...defaultProps, query: { query: 'host.name: "', language: 'kql' } }; const wrapper = mount( diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx index 29324d186784e..94b09c4a5ea21 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx @@ -8,6 +8,8 @@ import React, { memo, useMemo, useState, useEffect } from 'react'; import uuid from 'uuid'; +import type { Filter, Query } from '@kbn/es-query'; +import { buildEsQuery } from '@kbn/es-query'; import { useGlobalTime } from '../../../../common/containers/use_global_time'; import { HeaderSection } from '../../../../common/components/header_section'; @@ -20,7 +22,6 @@ import { AlertsCount } from './alerts_count'; import type { AlertsCountAggregation } from './types'; import { DEFAULT_STACK_BY_FIELD } from '../common/config'; import type { AlertsStackByField } from '../common/types'; -import { Filter, esQuery, Query } from '../../../../../../../../src/plugins/data/public'; import { KpiPanel, StackBySelect } from '../common/components'; import { useInspectButton } from '../common/hooks'; @@ -52,7 +53,7 @@ export const AlertsCountPanel = memo( const additionalFilters = useMemo(() => { try { return [ - esQuery.buildEsQuery( + buildEsQuery( undefined, query != null ? [query] : [], filters?.filter((f) => f.meta.disabled === false) ?? [] diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx index f53141ca9c109..09c184bb62bd5 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { waitFor, act } from '@testing-library/react'; import { mount } from 'enzyme'; -import { esQuery, Filter } from '../../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { TestProviders } from '../../../../common/mock'; import { SecurityPageName } from '../../../../app/types'; @@ -133,10 +133,11 @@ describe('AlertsHistogramPanel', () => { describe('Query', () => { it('it render with a illegal KQL', async () => { await act(async () => { - const spyOnBuildEsQuery = jest.spyOn(esQuery, 'buildEsQuery'); - spyOnBuildEsQuery.mockImplementation(() => { - throw new Error('Something went wrong'); - }); + jest.mock('@kbn/es-query', () => ({ + buildEsQuery: jest.fn().mockImplementation(() => { + throw new Error('Something went wrong'); + }), + })); const props = { ...defaultProps, query: { query: 'host.name: "', language: 'kql' } }; const wrapper = mount( diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx index 9095f181b00c1..873b5d40184ef 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx @@ -13,13 +13,14 @@ import styled from 'styled-components'; import { isEmpty } from 'lodash/fp'; import uuid from 'uuid'; +import { Filter, buildEsQuery, Query } from '@kbn/es-query'; import { useGlobalTime } from '../../../../common/containers/use_global_time'; import { DEFAULT_NUMBER_FORMAT, APP_UI_ID } from '../../../../../common/constants'; import type { UpdateDateRange } from '../../../../common/components/charts/common'; import type { LegendItem } from '../../../../common/components/charts/draggable_legend_item'; import { escapeDataProviderId } from '../../../../common/components/drag_and_drop/helpers'; import { HeaderSection } from '../../../../common/components/header_section'; -import { Filter, esQuery, Query } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { useQueryAlerts } from '../../../containers/detection_engine/alerts/use_query'; import { getDetectionEngineUrl, useFormatUrl } from '../../../../common/components/link_to'; import { defaultLegendColors } from '../../../../common/components/matrix_histogram/utils'; @@ -214,12 +215,12 @@ export const AlertsHistogramPanel = memo( if (combinedQueries != null) { converted = parseCombinedQueries(combinedQueries); } else { - converted = esQuery.buildEsQuery( + converted = buildEsQuery( undefined, query != null ? [query] : [], filters?.filter((f) => f.meta.disabled === false) ?? [], { - ...esQuery.getEsQueryConfig(kibana.services.uiSettings), + ...getEsQueryConfig(kibana.services.uiSettings), dateFormatTZ: undefined, } ); diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx index d37ba65eb8a89..73af793275122 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx @@ -23,7 +23,7 @@ import { TimelineStatus, TimelineTabs, } from '../../../../common/types/timeline'; -import { ISearchStart } from '../../../../../../../src/plugins/data/public'; +import type { ISearchStart } from '../../../../../../../src/plugins/data/public'; import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; import { getTimelineTemplate } from '../../../timelines/containers/api'; import { defaultHeaders } from '../../../timelines/components/timeline/body/column_headers/default_headers'; diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx index 6c9d41b27ae25..3d64d2d45fbf3 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx @@ -17,11 +17,10 @@ import { ALERT_RULE_CATEGORY, } from '@kbn/rule-data-utils/technical_field_names'; +import type { Filter } from '@kbn/es-query'; import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers'; import { ColumnHeaderOptions, RowRendererId } from '../../../../common/types/timeline'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; -import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; - import { SubsetTimelineModel } from '../../../timelines/store/timeline/model'; import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { columns } from '../../configurations/security_solution_detections/columns'; diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts b/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts index 44d4c62c384a4..11c25e4d3c9ea 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts @@ -6,7 +6,7 @@ */ import { TimelineType } from '../../../../common/types/timeline'; -import { esFilters, Filter } from '../../../../../../../src/plugins/data/public'; +import { Filter, FilterStateStore } from '@kbn/es-query'; import { DataProvider, DataProviderType, @@ -563,7 +563,7 @@ describe('helpers', () => { }, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, }, ]); diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx index 76603c637f4c6..bbab423738ca0 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx @@ -9,7 +9,8 @@ import { isEmpty } from 'lodash/fp'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { connect, ConnectedProps, useDispatch } from 'react-redux'; import { Dispatch } from 'redux'; -import { esQuery, Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; import { RowRendererId, TimelineIdLiteral } from '../../../../common/types/timeline'; import { StatefulEventsViewer } from '../../../common/components/events_viewer'; @@ -113,7 +114,7 @@ export const AlertsTableComponent: React.FC = ({ (customFilters: Filter[]) => { if (browserFields != null && indexPatterns != null) { return combineQueries({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), dataProviders: [], indexPattern: indexPatterns, browserFields, diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts b/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts index 3e525bfe25ad9..1ca0fc9b7ca23 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ISearchStart } from '../../../../../../../src/plugins/data/public'; +import type { ISearchStart } from '../../../../../../../src/plugins/data/public'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; import { Ecs } from '../../../../common/ecs'; import { NoteResult } from '../../../../common/types/timeline/note'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx index 91dbadbb209e1..3c733870e8498 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx @@ -8,7 +8,7 @@ import React, { useCallback, useMemo } from 'react'; import { EuiFormRow } from '@elastic/eui'; import { FieldComponent } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import { FieldHook } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; interface AutocompleteFieldProps { diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx index 1ab9f92bc6d80..7c345c3e07a2b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx @@ -11,11 +11,11 @@ import { EuiLoadingSpinner } from '@elastic/eui'; import { coreMock } from '../../../../../../../../src/core/public/mocks'; import { - esFilters, FilterManager, UI_SETTINGS, + FilterLabel, } from '../../../../../../../../src/plugins/data/public'; -import { DataViewBase } from '@kbn/es-query'; +import { DataViewBase, FilterStateStore } from '@kbn/es-query'; import { SeverityBadge } from '../severity_badge'; import * as i18n from './translations'; @@ -49,7 +49,7 @@ const mockQueryBar = { filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -149,7 +149,7 @@ describe('helpers', () => { } as unknown as DataViewBase, }); const wrapper = shallow(result[0].description as React.ReactElement); - const filterLabelComponent = wrapper.find(esFilters.FilterLabel).at(0); + const filterLabelComponent = wrapper.find(FilterLabel).at(0); expect(result[0].title).toEqual(<>{i18n.FILTERS_LABEL} ); expect(filterLabelComponent.prop('valueLabel')).toEqual('file'); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx index 305e0fcd46ef8..b72c11fc35687 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx @@ -28,7 +28,10 @@ import { assertUnreachable } from '../../../../../common/utility_types'; import * as i18nSeverity from '../severity_mapping/translations'; import * as i18nRiskScore from '../risk_score_mapping/translations'; import { Threshold } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { esFilters } from '../../../../../../../../src/plugins/data/public'; +import { + getDisplayValueFromFilter, + FilterLabel, +} from '../../../../../../../../src/plugins/data/public'; import { subtechniquesOptions, @@ -82,9 +85,9 @@ export const buildQueryBarDescription = ({ {indexPatterns != null ? ( - ) : ( diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx index b403e4a6fe194..70fc4cf61503b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx @@ -15,12 +15,8 @@ import { getDescriptionItem, } from '.'; -import { - esFilters, - Filter, - FilterManager, - UI_SETTINGS, -} from '../../../../../../../../src/plugins/data/public'; +import { FilterManager, UI_SETTINGS } from '../../../../../../../../src/plugins/data/public'; +import { Filter, FilterStateStore } from '@kbn/es-query'; import { mockAboutStepRule, mockDefineStepRule, @@ -85,7 +81,7 @@ describe('description_step', () => { const filters: Filter[] = [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -105,7 +101,7 @@ describe('description_step', () => { }, { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -128,7 +124,7 @@ describe('description_step', () => { const expected: Filter[] = [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -148,7 +144,7 @@ describe('description_step', () => { }, { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -211,7 +207,7 @@ describe('description_step', () => { const expected: Filter[] = [ { $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, meta: { alias: null, @@ -231,7 +227,7 @@ describe('description_step', () => { }, { $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, meta: { alias: null, diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx index e403da9e49090..62ea034dd0b33 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx @@ -11,8 +11,8 @@ import React, { memo, useState } from 'react'; import styled from 'styled-components'; import { ThreatMapping, Threats, Type } from '@kbn/securitysolution-io-ts-alerting-types'; -import { DataViewBase } from '@kbn/es-query'; -import { Filter, esFilters, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { DataViewBase, Filter, FilterStateStore } from '@kbn/es-query'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { DEFAULT_TIMELINE_TITLE } from '../../../../timelines/components/timeline/translations'; import { useKibana } from '../../../../common/lib/kibana'; import { AboutStepRiskScore, AboutStepSeverity } from '../../../pages/detection_engine/rules/types'; @@ -144,7 +144,7 @@ export const buildListItems = ( export const addFilterStateIfNotThere = (filters: Filter[]): Filter[] => { return filters.map((filter) => { if (filter.$state == null) { - return { $state: { store: esFilters.FilterStateStore.APP_STATE }, ...filter }; + return { $state: { store: FilterStateStore.APP_STATE }, ...filter }; } else { return filter; } diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts index 02c25e5c12bee..ab7c0ea9ed47d 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts @@ -7,8 +7,8 @@ import { ReactNode } from 'react'; import { Threats } from '@kbn/securitysolution-io-ts-alerting-types'; -import { DataViewBase } from '@kbn/es-query'; -import { Filter, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import type { DataViewBase, Filter } from '@kbn/es-query'; +import type { FilterManager } from '../../../../../../../../src/plugins/data/public'; export interface ListItems { title: NonNullable; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx index 42f92f8cb6ce1..0440ca8c311fd 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx @@ -10,7 +10,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import { Subscription } from 'rxjs'; import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { FilterManager, SavedQuery } from '../../../../../../../../src/plugins/data/public'; import { BrowserFields } from '../../../../common/containers/source'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx index 2ef114a25f32a..f14bd5f7354d9 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx @@ -17,7 +17,7 @@ import { getMockEqlResponse } from '../../../../common/hooks/eql/eql_search_resp import { useMatrixHistogram } from '../../../../common/containers/matrix_histogram'; import { useEqlPreview } from '../../../../common/hooks/eql/'; import { getMockTheme } from '../../../../common/lib/kibana/kibana_react.mock'; -import { FilterMeta } from 'src/plugins/data/common'; +import type { FilterMeta } from '@kbn/es-query'; const mockTheme = getMockTheme({ eui: { diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts index 690e685619887..4e83db29de65b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts @@ -9,8 +9,8 @@ import { Unit } from '@elastic/datemath'; import { EuiSelectOption } from '@elastic/eui'; import { Type, Language } from '@kbn/securitysolution-io-ts-alerting-types'; +import type { Filter } from '@kbn/es-query'; import * as i18n from '../rule_preview/translations'; -import { Filter } from '../../../../../../../../src/plugins/data/common/es_query'; import { ESQuery } from '../../../../../common/typed_json'; import { FieldValueQueryBar } from '../query_bar'; import { formatDate } from '../../../../common/components/super_date_picker'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx index fbeea64cae7da..fcc95f2398cf7 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx @@ -21,7 +21,7 @@ import styled from 'styled-components'; import { noop } from 'lodash/fp'; import { RiskScoreMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { FieldComponent } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import * as i18n from './translations'; import { FieldHook } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; import { AboutStepRiskScore } from '../../../pages/detection_engine/rules/types'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts index 9844afdf360bf..9de802a39bf08 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts @@ -9,14 +9,13 @@ import { Position, ScaleType } from '@elastic/charts'; import { EuiSelectOption } from '@elastic/eui'; import { Type, Language, ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { Unit } from '@elastic/datemath'; +import type { Filter } from '@kbn/es-query'; import * as i18n from './translations'; import { histogramDateTimeFormatter } from '../../../../common/components/utils'; import { ChartSeriesConfigs } from '../../../../common/components/charts/common'; import { getQueryFilter } from '../../../../../common/detection_engine/get_query_filter'; import { FieldValueQueryBar } from '../query_bar'; import { ESQuery } from '../../../../../common/typed_json'; -import { Filter } from '../../../../../../../../src/plugins/data/common/es_query'; - /** * Determines whether or not to display noise warning. * Is considered noisy if alerts/hour rate > 1 diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx index f6578fab0c5fb..da7b1e0067691 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx @@ -29,7 +29,7 @@ import { AutocompleteFieldMatchComponent, } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import * as i18n from './translations'; import { FieldHook } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; import { SeverityOptionItem } from '../step_about_rule/data'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx index 91158979a82c5..961007f2dac4d 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx @@ -7,7 +7,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiFormRow } from '@elastic/eui'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ThreatMapEntries } from '../../../../common/components/threat_match/types'; import { ThreatMatchComponent } from '../../../../common/components/threat_match'; import { BrowserField } from '../../../../common/containers/source'; diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts index 821413b361701..77de8902be33a 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { esFilters } from '../../../../../../../../../../src/plugins/data/public'; +import { FilterStateStore } from '@kbn/es-query'; import { Rule, RuleError } from '../../../../../containers/detection_engine/rules'; import { AboutStepRule, ActionsStepRule, DefineStepRule, ScheduleStepRule } from '../../types'; import { FieldValueQueryBar } from '../../../../../components/rules/query_bar'; @@ -20,7 +20,7 @@ export const mockQueryBar: FieldValueQueryBar = { filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -94,7 +94,7 @@ export const mockRuleWithEverything = (id: string): Rule => ({ filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx index fa600d9ce4a0e..d8c17f064d016 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx @@ -22,7 +22,8 @@ import { fillEmptySeverityMappings, } from './helpers'; import { mockRuleWithEverything, mockRule } from './all/__mocks__/mock'; -import { esFilters } from '../../../../../../../../src/plugins/data/public'; +import { FilterStateStore } from '@kbn/es-query'; + import { Rule } from '../../../containers/detection_engine/rules'; import { AboutStepRule, @@ -60,7 +61,7 @@ describe('rule helpers', () => { filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx index 18b5d74516199..39a6b12d63132 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx @@ -19,12 +19,12 @@ import { Severity, } from '@kbn/securitysolution-io-ts-alerting-types'; import { ENDPOINT_LIST_ID } from '@kbn/securitysolution-list-constants'; +import type { Filter } from '@kbn/es-query'; import { ActionVariables } from '../../../../../../triggers_actions_ui/public'; import { normalizeThresholdField } from '../../../../../common/detection_engine/utils'; import { RuleAlertAction } from '../../../../../common/detection_engine/types'; import { assertUnreachable } from '../../../../../common/utility_types'; import { transformRuleToAlertAction } from '../../../../../common/detection_engine/transform_actions'; -import { Filter } from '../../../../../../../../src/plugins/data/public'; import { Rule } from '../../../containers/detection_engine/rules'; import { AboutStepRule, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts index dc580f591da56..c1141ba527dbd 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts @@ -15,9 +15,9 @@ import { SeverityMapping, Severity, } from '@kbn/securitysolution-io-ts-alerting-types'; +import type { Filter } from '@kbn/es-query'; import { RuleAlertAction } from '../../../../../common/detection_engine/types'; import { AlertAction } from '../../../../../../alerting/common'; -import { Filter } from '../../../../../../../../src/plugins/data/common'; import { FieldValueQueryBar } from '../../../components/rules/query_bar'; import { FieldValueTimeline } from '../../../components/rules/pick_timeline'; import { FieldValueThreshold } from '../../../components/rules/threshold_input'; diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts index 3139cc4ed4ff7..77cb6f5f54a76 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts @@ -6,7 +6,7 @@ */ import { getHostDetailsEventsKqlQueryExpression, getHostDetailsPageFilters } from './helpers'; -import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; describe('hosts page helpers', () => { describe('getHostDetailsEventsKqlQueryExpression', () => { diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts index b768e3188d14b..0a09c7ec6dad5 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts @@ -5,8 +5,8 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { escapeQueryValue } from '../../../common/lib/keury'; -import { Filter } from '../../../../../../../src/plugins/data/public'; /** Returns the kqlQueryExpression for the `Events` widget on the `Host Details` page */ export const getHostDetailsEventsKqlQueryExpression = ({ diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx index 55c799f3bda43..15011b88f439a 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx @@ -10,6 +10,7 @@ import { noop } from 'lodash/fp'; import React, { useEffect, useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; +import type { Filter } from '@kbn/es-query'; import { HostItem, LastEventIndexKey } from '../../../../common/search_strategy'; import { SecurityPageName } from '../../../app/types'; import { UpdateDateRange } from '../../../common/components/charts/common'; @@ -33,7 +34,7 @@ import { inputsSelectors } from '../../../common/store'; import { setHostDetailsTablesActivePageToZero } from '../../store/actions'; import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; import { SpyRoute } from '../../../common/utils/route/spy_routes'; -import { esQuery, Filter } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { HostDetailsTabs } from './details_tabs'; @@ -106,7 +107,7 @@ const HostDetailsComponent: React.FC = ({ detailName, hostDeta skip: selectedPatterns.length === 0, }); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters: getFilters(), diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts b/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts index cd9ee9ce01869..a06aac50b7604 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts @@ -6,7 +6,7 @@ */ import { ActionCreator } from 'typescript-fsa'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { InputsModelId } from '../../../common/store/inputs/constants'; import { HostsTableType } from '../../store/model'; import { HostsQueryProps } from '../types'; diff --git a/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx b/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx index 51dd9d230324f..2305c2faad8ad 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx @@ -9,7 +9,7 @@ import { mount } from 'enzyme'; import React from 'react'; import { Router } from 'react-router-dom'; -import { Filter } from '../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; import '../../common/mock/match_media'; import { TestProviders, diff --git a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx index 8417e8f3ae8b3..96086e2de1b3e 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx @@ -33,7 +33,7 @@ import { inputsSelectors } from '../../common/store'; import { setAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { esQuery } from '../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; import { useMlCapabilities } from '../../common/components/ml/hooks/use_ml_capabilities'; import { OverviewEmpty } from '../../overview/components/overview_empty'; import { Display } from './display'; @@ -115,7 +115,7 @@ const HostsComponent = () => { const [filterQuery, kqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, @@ -125,7 +125,7 @@ const HostsComponent = () => { const [tabsFilterQuery] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: tabsFilters, diff --git a/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx b/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx index 2d83efa7b0bd2..41c0f93760cb7 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx @@ -7,7 +7,7 @@ import React, { useMemo } from 'react'; -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { TimelineId } from '../../../../common/types/timeline'; import { AlertsView } from '../../../common/components/alerts_viewer'; import { AlertsComponentQueryProps } from './types'; diff --git a/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts b/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts index c051d85f05563..0daf3cad34aa8 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts @@ -5,8 +5,9 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { ESTermQuery } from '../../../../common/typed_json'; -import { Filter } from '../../../../../../../src/plugins/data/public'; + import { NarrowDateRange } from '../../../common/components/ml/types'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { HostsTableType, HostsType } from '../../store/model'; diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts index 71e7c82f4a654..65aa832226d54 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts @@ -6,9 +6,9 @@ */ import { all } from 'deepmerge'; -import { IIndexPattern } from '../../../../../../../../src/plugins/data/common'; +import type { DataViewBase } from '@kbn/es-query'; import { Immutable } from '../../../../../common/endpoint/types'; -export function clone(value: IIndexPattern | Immutable): IIndexPattern { - return all([value]) as IIndexPattern; +export function clone(value: DataViewBase | Immutable): DataViewBase { + return all([value]) as DataViewBase; } diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts index 6e9c1f69cb060..c838f0bee7c69 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts @@ -7,7 +7,7 @@ import { Action } from 'redux'; import { EuiSuperDatePickerRecentRange } from '@elastic/eui'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { HostResultList, HostInfo, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts index 9f8c280fac30b..287f66a48fce8 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts @@ -9,7 +9,7 @@ import { Dispatch } from 'redux'; import semverGte from 'semver/functions/gte'; import { CoreStart, HttpStart } from 'kibana/public'; -import { DataViewBase, Query } from '@kbn/es-query'; +import type { DataViewBase, Query } from '@kbn/es-query'; import { ActivityLog, GetHostPolicyResponse, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts index a6fed8d6528cf..caf5b40a6834f 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts @@ -10,6 +10,7 @@ import querystring from 'querystring'; import { createSelector } from 'reselect'; import { matchPath } from 'react-router-dom'; import { decode } from 'rison-node'; +import { Query } from '@kbn/es-query'; import { Immutable, HostPolicyResponseAppliedAction, @@ -26,7 +27,6 @@ import { MANAGEMENT_DEFAULT_PAGE_SIZE, MANAGEMENT_ROUTING_ENDPOINTS_PATH, } from '../../../common/constants'; -import { Query } from '../../../../../../../../src/plugins/data/common/query/types'; import { getLastLoadedResourceState, isFailedResourceState, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts index 1a87223cdd01f..0a5e1362edafe 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts @@ -6,7 +6,7 @@ */ import { EuiSuperDatePickerRecentRange } from '@elastic/eui'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ActivityLog, HostInfo, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx index 18d22e0cd1b15..ec65239d340d2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx @@ -9,7 +9,8 @@ import React, { memo, useCallback, useMemo } from 'react'; import { useHistory } from 'react-router-dom'; import { encode, RisonValue } from 'rison-node'; import styled from 'styled-components'; -import { Query, SearchBar, TimeHistory } from '../../../../../../../../../src/plugins/data/public'; +import type { Query } from '@kbn/es-query'; +import { SearchBar, TimeHistory } from '../../../../../../../../../src/plugins/data/public'; import { Storage } from '../../../../../../../../../src/plugins/kibana_utils/public'; import { urlFromQueryParams } from '../url_from_query_params'; import { useEndpointSelector } from '../hooks'; diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx index 15a0f870d7bda..cc87a3894443d 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx @@ -11,6 +11,7 @@ import React, { useEffect, useState, useMemo } from 'react'; import { createPortalNode, InPortal } from 'react-reverse-portal'; import styled, { css } from 'styled-components'; +import type { Filter, Query } from '@kbn/es-query'; import { ErrorEmbeddable, isErrorEmbeddable, @@ -26,7 +27,6 @@ import { MapToolTip } from './map_tool_tip/map_tool_tip'; import * as i18n from './translations'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { MapEmbeddable } from '../../../../../../plugins/maps/public/embeddable'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { useKibana } from '../../../common/lib/kibana'; import { getLayerList } from './map_config'; import { sourcererSelectors } from '../../../common/store/sourcerer'; diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx index b02e6513d9b43..3789c41f23a78 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx @@ -9,6 +9,7 @@ import uuid from 'uuid'; import React from 'react'; import { OutPortal, PortalNode } from 'react-reverse-portal'; import minimatch from 'minimatch'; +import type { Filter, Query } from '@kbn/es-query'; import { IndexPatternMapping } from './types'; import { getLayerList } from './map_config'; import { MAP_SAVED_OBJECT_TYPE } from '../../../../../maps/public'; @@ -18,7 +19,7 @@ import type { MapEmbeddableInput, } from '../../../../../../plugins/maps/public'; import * as i18n from './translations'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; + import { EmbeddableStart, isErrorEmbeddable, diff --git a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx index 4c50a3a0f49c5..5a2780164a8a2 100644 --- a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx @@ -8,7 +8,7 @@ import { get } from 'lodash/fp'; import numeral from '@elastic/numeral'; import React from 'react'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { CountryFlagAndName } from '../source_destination/country_flag'; import { FlowTargetSourceDest, diff --git a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx index 23b453c0f7384..80de694f89484 100644 --- a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx +++ b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx @@ -9,7 +9,7 @@ import { last } from 'lodash/fp'; import React, { useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { networkActions, networkModel, networkSelectors } from '../../store'; import { diff --git a/x-pack/plugins/security_solution/public/network/pages/details/index.tsx b/x-pack/plugins/security_solution/public/network/pages/details/index.tsx index e0ede2d23846e..ef7dea5164468 100644 --- a/x-pack/plugins/security_solution/public/network/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/details/index.tsx @@ -45,7 +45,7 @@ import { NetworkTopNFlowQueryTable } from './network_top_n_flow_query_table'; import { TlsQueryTable } from './tls_query_table'; import { UsersQueryTable } from './users_query_table'; import { AnomaliesQueryTabBody } from '../../../common/containers/anomalies/anomalies_query_tab_body'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { networkModel } from '../../store'; import { SecurityPageName } from '../../../app/types'; import { useSourcererDataView } from '../../../common/containers/sourcerer'; @@ -95,7 +95,7 @@ const NetworkDetailsComponent: React.FC = () => { const { docValueFields, indicesExist, indexPattern, selectedPatterns } = useSourcererDataView(); const ip = decodeIpv6(detailName); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, diff --git a/x-pack/plugins/security_solution/public/network/pages/details/types.ts b/x-pack/plugins/security_solution/public/network/pages/details/types.ts index 02722f4709bcc..7a8b95c1e62f3 100644 --- a/x-pack/plugins/security_solution/public/network/pages/details/types.ts +++ b/x-pack/plugins/security_solution/public/network/pages/details/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ESTermQuery } from '../../../../common/typed_json'; import { NetworkType } from '../../store/model'; diff --git a/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx b/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx index 553281144ebff..026aa9f68871f 100644 --- a/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx @@ -7,7 +7,7 @@ import React from 'react'; -import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; import { TimelineId } from '../../../../common/types/timeline'; import { AlertsView } from '../../../common/components/alerts_viewer'; import { NetworkComponentQueryProps } from './types'; diff --git a/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts b/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts index 96b72caf03300..6c1fd99415c49 100644 --- a/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ESTermQuery } from '../../../../common/typed_json'; import { NavTab } from '../../../common/components/navigation/types'; diff --git a/x-pack/plugins/security_solution/public/network/pages/network.test.tsx b/x-pack/plugins/security_solution/public/network/pages/network.test.tsx index d0fff882cdc86..014beb28c374d 100644 --- a/x-pack/plugins/security_solution/public/network/pages/network.test.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/network.test.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { Router } from 'react-router-dom'; import { waitFor } from '@testing-library/react'; import '../../common/mock/match_media'; -import { Filter } from '../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; import { useSourcererDataView } from '../../common/containers/sourcerer'; import { TestProviders, diff --git a/x-pack/plugins/security_solution/public/network/pages/network.tsx b/x-pack/plugins/security_solution/public/network/pages/network.tsx index f38a26da00599..d1d686bfe09df 100644 --- a/x-pack/plugins/security_solution/public/network/pages/network.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/network.tsx @@ -13,7 +13,7 @@ import { useParams } from 'react-router-dom'; import styled from 'styled-components'; import { isTab } from '../../../../timelines/public'; -import { esQuery } from '../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; import { SecurityPageName } from '../../app/types'; import { UpdateDateRange } from '../../common/components/charts/common'; import { EmbeddedMap } from '../components/embeddables/embedded_map'; @@ -136,13 +136,13 @@ const NetworkComponent = React.memo( ); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters, }); const [tabsFilterQuery] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters: tabsFilters, diff --git a/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx b/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx index bce9dd9fa9d0c..acf85dcf55d18 100644 --- a/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx @@ -9,13 +9,13 @@ import numeral from '@elastic/numeral'; import React, { useEffect, useMemo, useCallback } from 'react'; import { Position } from '@elastic/charts'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { DEFAULT_NUMBER_FORMAT, APP_UI_ID } from '../../../../common/constants'; import { SHOWING, UNIT } from '../../../common/components/alerts_viewer/translations'; import { MatrixHistogram } from '../../../common/components/matrix_histogram'; import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { HostsTableType } from '../../../hosts/store/model'; import * as i18n from '../../pages/translations'; @@ -101,7 +101,7 @@ const AlertsByCategoryComponent: React.FC = ({ const [filterQuery, kqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, 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 8ec38549477fa..b8e04e40e6dfe 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 @@ -9,7 +9,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React, { useMemo } from 'react'; import styled from 'styled-components'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { ID as OverviewHostQueryId } from '../../containers/overview_host'; import { OverviewHost } from '../overview_host'; import { OverviewNetwork } from '../overview_network'; @@ -17,7 +17,7 @@ import { filterHostData } from '../../../hosts/pages/navigation/alerts_query_tab import { useKibana } from '../../../common/lib/kibana'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; import { filterNetworkData } from '../../../network/pages/navigation/alerts_query_tab_body'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query'; @@ -46,7 +46,7 @@ const EventCountsComponent: React.FC = ({ const [hostFilterQuery, hostKqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: [...filters, ...filterHostData], @@ -57,7 +57,7 @@ const EventCountsComponent: React.FC = ({ const [networkFilterQuery] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: [...filters, ...filterNetworkData], diff --git a/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx b/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx index a184ba572d77c..7f0726b143053 100644 --- a/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx @@ -10,7 +10,7 @@ import numeral from '@elastic/numeral'; import React, { useEffect, useMemo, useCallback } from 'react'; import uuid from 'uuid'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { DEFAULT_NUMBER_FORMAT, APP_UI_ID } from '../../../../common/constants'; import { SHOWING, UNIT } from '../../../common/components/events_viewer/translations'; import { getTabsOnHostsUrl } from '../../../common/components/link_to/redirect_to_hosts'; @@ -23,7 +23,7 @@ import { eventsStackByOptions } from '../../../hosts/pages/navigation'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; import { histogramConfigs } from '../../../hosts/pages/navigation/events_query_tab_body'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { HostsTableType } from '../../../hosts/store/model'; import { InputsModelId } from '../../../common/store/inputs/constants'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; @@ -120,7 +120,7 @@ const EventsByDatasetComponent: React.FC = ({ const [filterQuery, kqlError] = useMemo(() => { if (combinedQueries == null) { return convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters, diff --git a/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts b/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts index 6f87cb72763d3..69d43d822eff7 100644 --- a/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts +++ b/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts @@ -6,7 +6,7 @@ */ import { useMemo } from 'react'; -import { Filter } from '@kbn/es-query'; +import type { Filter } from '@kbn/es-query'; import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; import { diff --git a/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts b/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts index 14a5bf8ca2542..a1bf4d9d35f65 100644 --- a/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts +++ b/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts @@ -7,7 +7,7 @@ import { useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; -import { getEsQueryConfig } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { MatrixHistogramType } from '../../../../common/search_strategy'; import { EVENT_DATASET } from '../../../../common/cti/constants'; import { useMatrixHistogram } from '../../../common/containers/matrix_histogram'; diff --git a/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts b/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts index 22e3b58692120..f925339e68490 100644 --- a/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts +++ b/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts @@ -8,11 +8,10 @@ import { Observable } from 'rxjs'; import { filter } from 'rxjs/operators'; import { useObservable, withOptionalSignal } from '@kbn/securitysolution-hook-utils'; -import { - DataPublicPluginStart, - isCompleteResponse, - isErrorResponse, -} from '../../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; + +import { isCompleteResponse, isErrorResponse } from '../../../../../../../src/plugins/data/common'; + import { HostsQueries, HostsRiskScoreRequestOptions, diff --git a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx index 4fb2b9419c377..d373710c29444 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx @@ -15,7 +15,7 @@ import { import { TestProviders } from '../../../common/mock'; import { useKibana } from '../../../common/lib/kibana'; -import { DataView } from '../../../../../../../src/plugins/data/common'; +import type { DataView } from '../../../../../../../src/plugins/data/common'; import { TimelineId } from '../../../../common'; const useKibanaMock = useKibana as jest.Mocked; diff --git a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx index 33d8587eca818..8c6b8a01ea1f6 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx @@ -10,7 +10,7 @@ import { EuiButton } from '@elastic/eui'; import styled from 'styled-components'; import { useDispatch } from 'react-redux'; -import { IndexPattern, IndexPatternField } from '../../../../../../../src/plugins/data/public'; +import type { DataViewField, DataView } from '../../../../../../../src/plugins/data_views/common'; import { useKibana } from '../../../common/lib/kibana'; import * as i18n from './translations'; @@ -34,7 +34,7 @@ const StyledButton = styled(EuiButton)` export const CreateFieldButton = React.memo( ({ selectedDataViewId, onClick: onClickParam, timelineId }) => { - const [dataView, setDataView] = useState(null); + const [dataView, setDataView] = useState(null); const dispatch = useDispatch(); const { indexFieldsSearch } = useDataView(); @@ -53,7 +53,7 @@ export const CreateFieldButton = React.memo( if (dataView) { indexPatternFieldEditor?.openEditor({ ctx: { indexPattern: dataView }, - onSave: (field: IndexPatternField) => { + onSave: (field: DataViewField) => { // Fetch the updated list of fields indexFieldsSearch(selectedDataViewId); diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx index 2f54cd6ce2962..bddd6256a992c 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx @@ -39,7 +39,7 @@ import { SaveTimelineButton } from '../../timeline/header/save_timeline_button'; import { useGetUserCasesPermissions, useKibana } from '../../../../common/lib/kibana'; import { InspectButton } from '../../../../common/components/inspect'; import { useTimelineKpis } from '../../../containers/kpis'; -import { esQuery } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import { TimelineModel } from '../../../../timelines/store/timeline/model'; import { @@ -78,7 +78,7 @@ const FlyoutHeaderPanelComponent: React.FC = ({ timeline const dispatch = useDispatch(); const { browserFields, indexPattern } = useSourcererDataView(SourcererScopeName.timeline); const { uiSettings } = useKibana().services; - const esQueryConfig = useMemo(() => esQuery.getEsQueryConfig(uiSettings), [uiSettings]); + const esQueryConfig = useMemo(() => getEsQueryConfig(uiSettings), [uiSettings]); const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); const { activeTab, @@ -367,7 +367,7 @@ const FlyoutHeaderComponent: React.FC = ({ timelineId }) => { } }); const { uiSettings } = useKibana().services; - const esQueryConfig = useMemo(() => esQuery.getEsQueryConfig(uiSettings), [uiSettings]); + const esQueryConfig = useMemo(() => getEsQueryConfig(uiSettings), [uiSettings]); const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); const timeline: TimelineModel = useSelector( (state: State) => getTimeline(state, timelineId) ?? timelineDefaults diff --git a/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx index 23a52b878472f..8a88a7182af03 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx @@ -11,7 +11,6 @@ import { shallow } from 'enzyme'; import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils'; import { asArrayIfExists } from '../../../common/lib/helpers'; -import { getMockNetflowData } from '../../../common/mock'; import '../../../common/mock/match_media'; import { TestProviders } from '../../../common/mock/test_providers'; import { @@ -61,6 +60,7 @@ import { NETWORK_TRANSPORT_FIELD_NAME, } from '../../../network/components/source_destination/field_names'; import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { getMockNetflowData } from '../../../common/mock/netflow'; jest.mock('../../../common/lib/kibana'); diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx index 5b13f3f2a3b1b..1330795841653 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx @@ -23,7 +23,7 @@ import { convertToBuildEsQuery } from '../../../../common/lib/keury'; import { inputsSelectors } from '../../../../common/store'; import { setAbsoluteRangeDatePicker } from '../../../../common/store/inputs/actions'; import { OverviewEmpty } from '../../../../overview/components/overview_empty'; -import { esQuery } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import { useNetworkDetails } from '../../../../network/containers/details'; import { networkModel } from '../../../../network/store'; @@ -100,7 +100,7 @@ export const ExpandableNetworkDetails = ({ const { docValueFields, indicesExist, indexPattern, selectedPatterns } = useSourcererDataView(); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts index 0ec974f876894..d05386c2504c5 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts @@ -6,7 +6,7 @@ */ import type React from 'react'; -import { Filter } from '../../../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { BrowserFields } from '../../../../../../../timelines/common/search_strategy'; import { ColumnHeaderOptions, RowRenderer } from '../../../../../../common'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx index 2f0653826d11b..f00eb332c564b 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx @@ -7,7 +7,7 @@ import { head } from 'lodash/fp'; import React from 'react'; -import { Filter } from '../../../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { ColumnHeaderOptions } from '../../../../../../common'; import { TimelineNonEcsData } from '../../../../../../common/search_strategy/timeline'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx index 5741f0d2ea396..61b9c8b2e9585 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx @@ -7,7 +7,7 @@ import { EuiCallOut } from '@elastic/eui'; import React from 'react'; -import { FilterManager } from 'src/plugins/data/public'; +import type { FilterManager } from 'src/plugins/data/public'; import { DataProviders } from '../data_providers'; import { StatefulSearchOrFilter } from '../search_or_filter'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx index 8383da6bf28a4..8014a0e257971 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx @@ -12,7 +12,7 @@ import { DataProviderType } from './data_providers/data_provider'; import { mockDataProviders } from './data_providers/mock/mock_data_providers'; import { buildGlobalQuery, combineQueries, resolverIsShowing, showGlobalFilters } from './helpers'; import { mockBrowserFields } from '../../../common/containers/source/mock'; -import { EsQueryConfig, Filter, esFilters } from '../../../../../../../src/plugins/data/public'; +import { EsQueryConfig, FilterStateStore, Filter } from '@kbn/es-query'; const cleanUpKqlQuery = (str: string) => str.replace(/\n/g, '').replace(/\s\s+/g, ' '); @@ -269,7 +269,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -281,7 +281,7 @@ describe('Combined Queries', () => { query: { match_phrase: { 'event.category': 'file' } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -521,7 +521,7 @@ describe('Combined Queries', () => { }, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, } as Filter, ], @@ -543,7 +543,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx index d9b1be8c20b61..04b108835d53c 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx @@ -8,7 +8,7 @@ import { isEmpty, get } from 'lodash/fp'; import memoizeOne from 'memoize-one'; -import { DataViewBase, EsQueryConfig, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, EsQueryConfig, Filter, Query } from '@kbn/es-query'; import { handleSkipFocus, elementOrChildrenHasFocus, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx index 0f0f2a8641ac0..066d466bf9149 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx @@ -14,7 +14,8 @@ import { mockBrowserFields } from '../../../../common/containers/source/mock'; import { convertKueryToElasticSearchQuery } from '../../../../common/lib/keury'; import { mockIndexPattern, TestProviders } from '../../../../common/mock'; import { QueryBar } from '../../../../common/components/query_bar'; -import { esFilters, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { FilterStateStore } from '@kbn/es-query'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { mockDataProviders } from '../data_providers/mock/mock_data_providers'; import { buildGlobalQuery } from '../helpers'; @@ -44,7 +45,7 @@ describe('Timeline QueryBar ', () => { test('check if we format the appropriate props to QueryBar', () => { const filters = [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, controlledBy: TIMELINE_FILTER_DROP_AREA, @@ -58,7 +59,7 @@ describe('Timeline QueryBar ', () => { query: { match: { 'event.category': { query: 'file', type: 'phrase' } } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, controlledBy: undefined, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx index 450a43b43ef5f..c561c26383896 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx @@ -11,12 +11,11 @@ import { useDispatch } from 'react-redux'; import { Subscription } from 'rxjs'; import deepEqual from 'fast-deep-equal'; +import { FilterStateStore, Filter, Query } from '@kbn/es-query'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import { SourcererScopeName } from '../../../../common/store/sourcerer/model'; -import { - Query, - Filter, - esFilters, + +import type { FilterManager, SavedQuery, SavedQueryTimeFilter, @@ -300,7 +299,7 @@ export const getDataProviderFilter = (dataProviderDsl: string): Filter => { value: dataProviderDsl, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, }; }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx index 643bd679e04ee..ca89933252686 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx @@ -33,7 +33,8 @@ import { Footer, footerHeight } from '../footer'; import { TimelineHeader } from '../header'; import { calculateTotalPages, combineQueries } from '../helpers'; import { TimelineRefetch } from '../refetch_timeline'; -import { esQuery, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { ControlColumnProps, KueryFilterQueryKind, @@ -60,7 +61,6 @@ import { HeaderActions } from '../body/actions/header_actions'; import { getDefaultControlColumn } from '../body/control_columns'; import { useDeepEqualSelector } from '../../../../common/hooks/use_selector'; import { Sourcerer } from '../../../../common/components/sourcerer'; - const TimelineHeaderContainer = styled.div` margin-top: 6px; width: 100%; @@ -205,7 +205,7 @@ export const QueryTabContentComponent: React.FC = ({ [activeFilterManager, uiSettings] ); - const esQueryConfig = useMemo(() => esQuery.getEsQueryConfig(uiSettings), [uiSettings]); + const esQueryConfig = useMemo(() => getEsQueryConfig(uiSettings), [uiSettings]); const kqlQuery: { query: string; language: KueryFilterQueryKind; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx index 96ca26a099d2f..98e74269ae2df 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx @@ -10,8 +10,9 @@ import React, { useCallback } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; import deepEqual from 'fast-deep-equal'; +import type { Filter } from '@kbn/es-query'; -import { Filter, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { State, inputsModel, inputsSelectors } from '../../../../common/store'; import { timelineActions, timelineSelectors } from '../../../store/timeline'; import { KqlMode, TimelineModel } from '../../../../timelines/store/timeline/model'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx index f1c4b7c3ef089..127f404a40751 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx @@ -8,8 +8,9 @@ import { EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; import React, { useCallback } from 'react'; import styled, { createGlobalStyle } from 'styled-components'; +import type { Filter } from '@kbn/es-query'; -import { Filter, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { KqlMode } from '../../../../timelines/store/timeline/model'; import { DispatchUpdateReduxTime } from '../../../../common/components/super_date_picker'; import { KueryFilterQuery } from '../../../../../common/types/timeline'; diff --git a/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx b/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx index ac96cc334f795..9dfbad3a39065 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx @@ -20,7 +20,7 @@ import { TimelineEventsDetailsRequestOptions, TimelineEventsDetailsStrategyResponse, } from '../../../../common/search_strategy'; -import { isCompleteResponse, isErrorResponse } from '../../../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../../../src/plugins/data/common'; import { useAppToasts } from '../../../common/hooks/use_app_toasts'; import * as i18n from './translations'; import { EntityType } from '../../../../../timelines/common'; diff --git a/x-pack/plugins/security_solution/public/timelines/containers/index.tsx b/x-pack/plugins/security_solution/public/timelines/containers/index.tsx index c755159dd6b10..1b0e42806df4f 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/index.tsx @@ -13,7 +13,8 @@ import { Subscription } from 'rxjs'; import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ESQuery } from '../../../common/typed_json'; -import { isCompleteResponse, isErrorResponse } from '../../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../../src/plugins/data/common'; + import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features'; import { inputsModel } from '../../common/store'; import { useKibana } from '../../common/lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts index 6002a7b2cf398..2264e62d6bed7 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts @@ -6,8 +6,8 @@ */ import actionCreatorFactory from 'typescript-fsa'; +import type { Filter } from '@kbn/es-query'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { DataProvider, DataProviderType, diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts index 175e6804c04a1..ba376a0b4097b 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter, esFilters } from '../../../../../../../src/plugins/data/public'; +import { FilterStateStore, Filter } from '@kbn/es-query'; import { Direction } from '../../../../common/search_strategy'; import { TimelineType, TimelineStatus, TimelineTabs } from '../../../../common/types/timeline'; import { convertTimelineAsInput } from './epic'; @@ -106,7 +106,7 @@ describe('Epic Timeline', () => { historyIds: [], filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -118,7 +118,7 @@ describe('Epic Timeline', () => { query: { match_phrase: { 'event.category': 'file' } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts index c973cf9a5bbbf..57580c96d06b8 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts @@ -18,7 +18,17 @@ import { import { Action } from 'redux'; import { Epic } from 'redux-observable'; import { from, empty, merge } from 'rxjs'; -import { Filter, MatchAllFilter, isScriptedRangeFilter } from '@kbn/es-query'; +import { + Filter, + MatchAllFilter, + isScriptedRangeFilter, + isExistsFilter, + isRangeFilter, + isMatchAllFilter, + isPhraseFilter, + isQueryStringFilter, + isPhrasesFilter, +} from '@kbn/es-query'; import { filter, map, @@ -31,7 +41,6 @@ import { takeUntil, } from 'rxjs/operators'; -import { esFilters } from '../../../../../../.../../../src/plugins/data/public'; import { TimelineStatus, TimelineErrorResponse, @@ -375,10 +384,10 @@ export const convertTimelineAsInput = ( meta: { ...basicFilter.meta, field: - (esFilters.isMatchAllFilter(basicFilter) || - esFilters.isPhraseFilter(basicFilter) || - esFilters.isPhrasesFilter(basicFilter) || - esFilters.isRangeFilter(basicFilter)) && + (isMatchAllFilter(basicFilter) || + isPhraseFilter(basicFilter) || + isPhrasesFilter(basicFilter) || + isRangeFilter(basicFilter)) && basicFilter.meta.field != null ? convertToString(basicFilter.meta.field) : null, @@ -391,7 +400,7 @@ export const convertTimelineAsInput = ( ? convertToString(basicFilter.meta.params) : null, }, - ...(esFilters.isMatchAllFilter(basicFilter) + ...(isMatchAllFilter(basicFilter) ? { query: { match_all: convertToString( @@ -400,15 +409,14 @@ export const convertTimelineAsInput = ( }, } : { match_all: null }), - ...(esFilters.isExistsFilter(basicFilter) && basicFilter.query.exists != null + ...(isExistsFilter(basicFilter) && basicFilter.query.exists != null ? { query: { exists: convertToString(basicFilter.query.exists) } } : { exists: null }), - ...((esFilters.isQueryStringFilter(basicFilter) || - get('query', basicFilter) != null) && + ...((isQueryStringFilter(basicFilter) || get('query', basicFilter) != null) && basicFilter.query != null ? { query: convertToString(basicFilter.query) } : { query: null }), - ...(esFilters.isRangeFilter(basicFilter) && basicFilter.query.range != null + ...(isRangeFilter(basicFilter) && basicFilter.query.range != null ? { query: { range: convertToString(basicFilter.query.range) } } : { range: null }), ...(isScriptedRangeFilter(basicFilter) && diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts index b7af561ae2a04..a123cdeb8f928 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts @@ -8,7 +8,8 @@ import { getOr, omit, uniq, isEmpty, isEqualWith, union } from 'lodash/fp'; import uuid from 'uuid'; -import { Filter } from '../../../../../../../src/plugins/data/public'; + +import type { Filter } from '@kbn/es-query'; import { Sort } from '../../../timelines/components/timeline/body/sort'; import { diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts index 50992cf7b21de..3e7ebed675d80 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts @@ -52,7 +52,7 @@ import { TimelineModel } from './model'; import { timelineDefaults } from './defaults'; import { TimelineById } from './types'; import { Direction } from '../../../../common/search_strategy'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../src/plugins/data/public'; jest.mock('../../../common/components/url_state/normalize_time_range.ts'); jest.mock('../../../common/utils/default_date_settings', () => { diff --git a/x-pack/plugins/security_solution/public/types.ts b/x-pack/plugins/security_solution/public/types.ts index 7c0b8d46b8bba..475aa71a4b564 100644 --- a/x-pack/plugins/security_solution/public/types.ts +++ b/x-pack/plugins/security_solution/public/types.ts @@ -7,7 +7,7 @@ import { CoreStart } from '../../../../src/core/public'; import { HomePublicPluginSetup } from '../../../../src/plugins/home/public'; -import { DataPublicPluginStart } from '../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../src/plugins/data/public'; import { EmbeddableStart } from '../../../../src/plugins/embeddable/public'; import { LensPublicStart } from '../../../plugins/lens/public'; import { NewsfeedPublicPluginStart } from '../../../../src/plugins/newsfeed/public'; diff --git a/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts b/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts index 70f8027b1f55b..d8a824a07ddf3 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts +++ b/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts @@ -5,8 +5,8 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { escapeQueryValue } from '../../../common/lib/keury'; -import { Filter } from '../../../../../../../src/plugins/data/public'; /** Returns the kqlQueryExpression for the `Events` widget on the `Host Details` page */ export const getUebaDetailsEventsKqlQueryExpression = ({ diff --git a/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx b/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx index 51c06fffb7b63..599b003ff034a 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx @@ -10,6 +10,7 @@ import { noop } from 'lodash/fp'; import React, { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; +import type { Filter } from '@kbn/es-query'; import { LastEventIndexKey } from '../../../../common/search_strategy'; import { SecurityPageName } from '../../../app/types'; import { FiltersGlobal } from '../../../common/components/filters_global'; @@ -25,7 +26,7 @@ import { inputsSelectors } from '../../../common/store'; import { setUebaDetailsTablesActivePageToZero } from '../../store/actions'; import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; import { SpyRoute } from '../../../common/utils/route/spy_routes'; -import { esQuery, Filter } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { UebaDetailsTabs } from './details_tabs'; @@ -74,7 +75,7 @@ const UebaDetailsComponent: React.FC = ({ detailName, uebaDeta ); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters: getFilters(), diff --git a/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts b/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts index e46a128e15f85..45d75637fd7cc 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts +++ b/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts @@ -6,7 +6,7 @@ */ import { ActionCreator } from 'typescript-fsa'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { InputsModelId } from '../../../common/store/inputs/constants'; import { UebaTableType } from '../../store/model'; import { UebaQueryProps } from '../types'; diff --git a/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts b/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts index e24b3271cf534..a8aea32f71399 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts @@ -5,11 +5,11 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { UebaTableType, UebaType } from '../../store/model'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { ESTermQuery } from '../../../../common/typed_json'; import { DocValueFields } from '../../../../../timelines/common'; -import { Filter } from '../../../../../../../src/plugins/data/common'; import { UpdateDateRange } from '../../../common/components/charts/common'; import { NarrowDateRange } from '../../../common/components/ml/types'; import { NavTab } from '../../../common/components/navigation/types'; diff --git a/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx b/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx index 93e22efdba3dd..0c837e60cd2dc 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx +++ b/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx @@ -29,7 +29,7 @@ import { inputsSelectors } from '../../common/store'; import { setAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { esQuery } from '../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; import { OverviewEmpty } from '../../overview/components/overview_empty'; import { Display } from './display'; import { UebaTabs } from './ueba_tabs'; @@ -82,7 +82,7 @@ const UebaComponent = () => { const [filterQuery, kqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, @@ -92,7 +92,7 @@ const UebaComponent = () => { const [tabsFilterQuery] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: tabsFilters, diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts b/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts index ce46395a1f09f..ced0e00d34585 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts @@ -14,7 +14,7 @@ import { GetHostPolicyResponse, HostPolicyResponse } from '../../../../common/en import { INITIAL_POLICY_ID } from './index'; import { Agent } from '../../../../../fleet/common/types/models'; import { EndpointAppContext } from '../../types'; -import { ISearchRequestParams } from '../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../src/plugins/data/common'; export const getESQueryPolicyResponseByAgentID = ( agentID: string, diff --git a/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts b/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts index c50a460a377c7..c601f5954be7f 100644 --- a/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts +++ b/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts @@ -6,7 +6,7 @@ */ import { Logger } from 'kibana/server'; -import { SearchRequest } from 'src/plugins/data/public'; +import type { SearchRequest } from 'src/plugins/data/public'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { TransportResult } from '@elastic/elasticsearch'; import { AGENT_ACTIONS_INDEX, AGENT_ACTIONS_RESULTS_INDEX } from '../../../../fleet/common'; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts index 096d2a5330047..da65c7e483428 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; import { EqlSearchResponse } from '../../../../../common/detection_engine/types'; export const sequenceResponse = { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts index 592ab137ee289..0e660b6038b5d 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts @@ -6,7 +6,8 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; -import { Filter } from 'src/plugins/data/common'; + +import type { Filter } from '@kbn/es-query'; import { ThreatListDoc, ThreatListItem } from './types'; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts index 2aaa57ff96cab..dfc66f7c5222e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts @@ -6,7 +6,7 @@ */ import get from 'lodash/fp/get'; -import { Filter } from '@kbn/es-query'; +import type { Filter } from '@kbn/es-query'; import { ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { BooleanFilter, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts index 610be59deaa5f..bc9dc69dbe19e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from 'src/plugins/data/common'; +import type { Filter } from '@kbn/es-query'; import { ESFilter } from '../../../../../../../../src/core/types/elasticsearch'; import { ThresholdSignalHistory, ThresholdSignalHistoryRecord } from '../types'; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts index 9eb160ed2da56..206ccb3b78351 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts @@ -27,6 +27,7 @@ import { import { Version } from '@kbn/securitysolution-io-ts-types'; import type { ListArrayOrUndefined } from '@kbn/securitysolution-io-ts-list-types'; +import type { Filter } from '@kbn/es-query'; import { AnomalyThresholdOrUndefined, Description, @@ -52,7 +53,6 @@ import { EventCategoryOverrideOrUndefined, } from '../../../common/detection_engine/schemas/common/schemas'; -import { Filter } from '../../../../../../src/plugins/data/server'; import { AlertTypeParams } from '../../../../alerting/common'; export type PartialFilter = Partial; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts index d6e456e706673..ce640f7d367d6 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts index 7c318b24a7a35..987420f4bf4bd 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { HostAggEsItem, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts index bc405e89bf7a6..d3758df94074f 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { Direction, HostsRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts index 94124bc9567b7..73f35091ae093 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { Direction, HostsRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts index bdc4755c6a02b..6e43d771d1a02 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { AuthenticationHit, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx index fa78a8d59803d..e32d3592d3417 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts index ec8c7d7ca6866..0cb4f3dd90074 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, HostsQueries, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts index 562b7e4fbc167..7a4301185de4c 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts @@ -7,7 +7,7 @@ import { get } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { HostAggEsData, HostDetailsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts index 003149a9501bb..d34e9d9c84537 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { cloudFieldsMap, hostFieldsMap } from '../../../../../../common/ecs/ecs_fields'; import { HostDetailsRequestOptions } from '../../../../../../common/search_strategy/security_solution'; import { reduceFields } from '../../../../../utils/build_query/reduce_fields'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts index 88c8bed1dbceb..1512dc1b7da61 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostsKpiQueries, HostsKpiAuthenticationsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts index 6bf2ccd5a2739..a8082822b2775 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostsKpiQueries, HostsKpiHostsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts index 83849f886163e..b81d9a4d2322b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostsKpiQueries, HostsKpiUniqueIpsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts index fee9a49e42c48..bab799620ad6e 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { HostFirstLastSeenStrategyResponse, HostsQueries, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts index 85bce797f52ae..33623c198913a 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostOverviewRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts index 5866695ab1641..19ea4c3bc37d2 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { HostsOverviewStrategyResponse, HostsQueries, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts index 92d194e78284b..7a215a2e781fa 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts @@ -6,7 +6,7 @@ */ import { createQueryFilterClauses } from '../../../../../utils/build_query'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { HostOverviewRequestOptions } from '../../../../../../common/search_strategy/security_solution/hosts'; export const buildOverviewHostQuery = ({ diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts index 2a440ad614d93..a609a8b356f10 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts @@ -11,7 +11,7 @@ import { HostsQueries, HostsRiskScoreStrategyResponse, } from '../../../../../../common'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { inspectStringifyObject } from '../../../../../utils/build_query'; import { buildHostsRiskScoreQuery } from './query.hosts_risk.dsl'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts index 08e1f66019769..79cd2973a309b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { HostsQueries } from '../../../../../../common/search_strategy/security_solution'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts index c75b20f44035a..a357e1ee92165 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { MatrixHistogramStrategyResponse } from '../../../../../../common/search_strategy'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts index 6e3a6d8f8d4b0..db9fcc6067a74 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { FactoryQueryTypes, MatrixHistogramRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts index 158b63e6e8455..12452c7a79fbf 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkDetailsRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts index 6b7d7f7493b3c..c5689954942ec 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkDetailsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts index f1bae35f53ebb..ac5272b8d04fc 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts index a8dea7fdcefae..85f836463686b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkDnsBuckets, NetworkDnsEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts index 9a73fb30a074d..87bcc9a1225e8 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts index f831b9f20e8ca..733b8584e77d4 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts index e8155a998f3f8..fb0217f0aebf8 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkHttpBuckets, NetworkHttpEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts index 259b45f436124..cada5212b812b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts index c5298c4498cda..b8a21d4791c57 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiDnsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts index ca29aac1bb6d5..ac3d01512428a 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiNetworkEventsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts index f911eaa0c406b..cb57d63f4f3a6 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiTlsHandshakesStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts index b5e6c3db35918..2581249d179f5 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiUniqueFlowsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts index ffe53c95efaf2..927e2a2fb5aee 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiUniquePrivateIpsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts index 0b5019d6fec9a..ad2a6dd7cdf73 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkOverviewRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts index 069125c6700eb..473a192b72920 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkQueries, NetworkOverviewStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts index f911850c8cd94..d2b530c2b4a1e 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts @@ -6,7 +6,7 @@ */ import { createQueryFilterClauses } from '../../../../../utils/build_query'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { NetworkOverviewRequestOptions } from '../../../../../../common/search_strategy/security_solution/network'; export const buildOverviewNetworkQuery = ({ diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts index c34ec2225ed95..4e5c3f4074b94 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts index 6b4fdd2827ae6..cabaae2e54b70 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkTlsBuckets, NetworkTlsEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts index 6a5e1e42abb9f..39029089a4306 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts index 490ade26ad2a5..79ff8a74c220f 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts index e96df32513a7f..9540da3eb65f7 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkTopCountriesBuckets, NetworkTopCountriesEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts index 80c2050fd1423..e65ff6e4d1ad7 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts index fa759661772d5..59150354613f0 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts index f078c21a7d845..f504727812760 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts @@ -8,7 +8,7 @@ import { getOr } from 'lodash/fp'; import { assertUnreachable } from '../../../../../../common/utility_types'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Direction, GeoItem, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts index 31529f6771941..06fac027685bd 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts index acb98b7e347bc..d36d38564392b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts index b67facab8f237..0e1286c8c2fc0 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts @@ -6,7 +6,7 @@ */ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkUsersBucketsItem, NetworkUsersEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts index 5a7409200f9a0..32778ba2bc665 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts index 4bdf97b489805..8fc1192fa95a6 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts @@ -5,20 +5,20 @@ * 2.0. */ -import { +import type { IScopedClusterClient, SavedObjectsClientContract, } from '../../../../../../../src/core/server'; -import { +import type { IEsSearchResponse, ISearchRequestParams, } from '../../../../../../../src/plugins/data/common'; -import { +import type { FactoryQueryTypes, StrategyRequestType, StrategyResponseType, } from '../../../../common/search_strategy/security_solution'; -import { EndpointAppContext } from '../../../endpoint/types'; +import type { EndpointAppContext } from '../../../endpoint/types'; export interface SecuritySolutionFactory { buildDsl: (options: StrategyRequestType) => ISearchRequestParams; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts index 39fa7193fd5d2..78a1cfe20d212 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts @@ -15,7 +15,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildHostRulesQuery } from './query.host_rules.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatHostRulesData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts index 0ba8cbef1d144..c90ad5a311790 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts @@ -15,7 +15,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildHostTacticsQuery } from './query.host_tactics.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatHostTacticsData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts index 6b3a956c9c1b7..8e65b53c3e68d 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts @@ -15,7 +15,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildRiskScoreQuery } from './query.risk_score.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatRiskScoreData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts index aa525f2c5b741..8a5099618d109 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts @@ -17,7 +17,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildUserRulesQuery } from './query.user_rules.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatUserRulesData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; From f202c5ae030d0ccf3ec7bd3177ba20643ace05c8 Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Wed, 17 Nov 2021 19:08:31 -0700 Subject: [PATCH 018/114] Removes plugins/data/public deprecations from timelines plugin (#118975) ## Summary This removes all the areas marked as deprecated from `.../src/plugins/data/public` with their `@kbn/es-query` equivalent or it uses the directly exported version from `.../src/plugins/data/public`. Anywhere else this adds the `import type {` where it can to encourage the build system to do more type erasures. ### 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 --- .../common/search_strategy/index_fields/index.ts | 2 +- .../timeline/events/details/index.ts | 2 +- .../search_strategy/timeline/events/eql/index.ts | 2 +- .../timeline/events/last_event_time/index.ts | 2 +- .../common/search_strategy/timeline/index.ts | 2 +- .../timelines/common/types/timeline/cells/index.ts | 3 +-- .../common/types/timeline/columns/index.tsx | 2 +- .../timelines/common/types/timeline/store.ts | 3 +-- .../components/hover_actions/actions/types.ts | 2 +- .../public/components/hover_actions/utils.ts | 2 +- .../public/components/t_grid/body/index.tsx | 2 +- .../public/components/t_grid/helpers.test.tsx | 10 +++++----- .../public/components/t_grid/integrated/index.tsx | 8 +++++--- .../public/components/t_grid/standalone/index.tsx | 13 +++++-------- x-pack/plugins/timelines/public/container/index.tsx | 7 ++----- .../timelines/public/container/source/index.tsx | 8 +++----- .../timelines/public/hooks/use_app_toasts.ts | 2 +- .../plugins/timelines/public/store/t_grid/model.ts | 3 ++- x-pack/plugins/timelines/public/types.ts | 2 +- .../server/search_strategy/index_fields/index.ts | 2 +- .../server/search_strategy/index_fields/mock.ts | 2 +- .../search_strategy/timeline/eql/__mocks__/index.ts | 2 +- .../server/search_strategy/timeline/eql/helpers.ts | 2 +- .../timeline/factory/events/all/index.ts | 2 +- .../timeline/factory/events/details/index.ts | 2 +- .../timeline/factory/events/kpi/index.ts | 2 +- .../factory/events/last_event_time/index.ts | 2 +- .../query.events_last_event_time.dsl.ts | 2 +- .../search_strategy/timeline/factory/types.ts | 2 +- x-pack/plugins/timelines/server/types.ts | 7 +++---- 30 files changed, 48 insertions(+), 56 deletions(-) diff --git a/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts b/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts index 3579a45d2fcbb..0b83cf28f9bb7 100644 --- a/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts @@ -10,9 +10,9 @@ import type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesW import type { IEsSearchRequest, IEsSearchResponse, + FieldSpec, } from '../../../../../../src/plugins/data/common'; import type { DocValueFields, Maybe } from '../common'; -import { FieldSpec } from '../../../../../../src/plugins/data/common'; export type BeatFieldsFactoryQueryType = 'beatFields'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts index f9f6a2ea57917..c8b1c8ef43cec 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts @@ -7,7 +7,7 @@ import { JsonObject } from '@kbn/utility-types'; -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../common'; import { TimelineRequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts index 1e5164684bf6e..fee5014524fe7 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts @@ -6,7 +6,7 @@ */ import { EuiComboBoxOptionOption } from '@elastic/eui'; -import { +import type { EqlSearchStrategyRequest, EqlSearchStrategyResponse, } from '../../../../../../../../src/plugins/data/common'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts index 8673359d230b4..95d82e605ef1b 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../common'; import { TimelineRequestBasicOptions } from '../..'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts index f576392910495..c328ba49493f5 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts @@ -6,7 +6,7 @@ */ import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; import { ESQuery } from '../../typed_json'; import { TimelineEventsQueries, diff --git a/x-pack/plugins/timelines/common/types/timeline/cells/index.ts b/x-pack/plugins/timelines/common/types/timeline/cells/index.ts index e922fed97a4df..c2f785d54c5d8 100644 --- a/x-pack/plugins/timelines/common/types/timeline/cells/index.ts +++ b/x-pack/plugins/timelines/common/types/timeline/cells/index.ts @@ -6,9 +6,8 @@ */ import { EuiDataGridCellValueElementProps } from '@elastic/eui'; +import type { Filter } from '@kbn/es-query'; import { RowRenderer } from '../../..'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Filter } from '../../../../../../../src/plugins/data/public'; import { Ecs } from '../../../ecs'; import { BrowserFields, TimelineNonEcsData } from '../../../search_strategy'; import { ColumnHeaderOptions } from '../columns'; diff --git a/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx b/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx index bd4cd2d7192df..88caa779d0592 100644 --- a/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx +++ b/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx @@ -8,7 +8,7 @@ import { ReactNode } from 'react'; import { EuiDataGridColumn, EuiDataGridColumnCellActionProps } from '@elastic/eui'; -import { IFieldSubType } from '../../../../../../../src/plugins/data/common'; +import type { IFieldSubType } from '@kbn/es-query'; import { BrowserFields } from '../../../search_strategy/index_fields'; import { TimelineNonEcsData } from '../../../search_strategy/timeline'; import { Ecs } from '../../../ecs'; diff --git a/x-pack/plugins/timelines/common/types/timeline/store.ts b/x-pack/plugins/timelines/common/types/timeline/store.ts index 8e3a9fda9475c..db2f09e4f74c7 100644 --- a/x-pack/plugins/timelines/common/types/timeline/store.ts +++ b/x-pack/plugins/timelines/common/types/timeline/store.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { ColumnHeaderOptions, ColumnId, @@ -13,8 +14,6 @@ import { TimelineExpandedDetail, TimelineTypeLiteral, } from '.'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Filter } from '../../../../../../src/plugins/data/public'; import { Direction } from '../../search_strategy'; import { DataProvider } from './data_provider'; diff --git a/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts b/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts index b6c9e794625e4..b24b1fdf8501a 100644 --- a/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts +++ b/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts @@ -6,7 +6,7 @@ */ import { EuiButtonEmpty, EuiButtonIcon, EuiButtonIconPropsForButton } from '@elastic/eui'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../src/plugins/data/public'; export interface FilterValueFnArgs { /** `Component` is only used with `EuiDataGrid`; the grid keeps a reference to `Component` for show / hide functionality */ diff --git a/x-pack/plugins/timelines/public/components/hover_actions/utils.ts b/x-pack/plugins/timelines/public/components/hover_actions/utils.ts index f34506eaa795e..019253a280b62 100644 --- a/x-pack/plugins/timelines/public/components/hover_actions/utils.ts +++ b/x-pack/plugins/timelines/public/components/hover_actions/utils.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from '../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; export const getAdditionalScreenReaderOnlyContext = ({ field, diff --git a/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx index 6f4fc6217ecdf..d69cd4bb42c6e 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx @@ -36,6 +36,7 @@ import { ALERT_RULE_CONSUMER, ALERT_RULE_PRODUCER, } from '@kbn/rule-data-utils/technical_field_names'; +import { Filter } from '@kbn/es-query'; import { TGridCellAction, BulkActionsProp, @@ -77,7 +78,6 @@ import type { EuiTheme } from '../../../../../../../src/plugins/kibana_react/com import { ViewSelection } from '../event_rendered_view/selector'; import { EventRenderedView } from '../event_rendered_view'; import { useDataGridHeightHack } from './height_hack'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { REMOVE_COLUMN } from './column_headers/translations'; const StatefulAlertStatusBulkActions = lazy( diff --git a/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx b/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx index 1998bef233748..535c856d51e8f 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx @@ -6,7 +6,7 @@ */ import { cloneDeep } from 'lodash/fp'; -import { esFilters, EsQueryConfig, Filter } from '../../../../../../src/plugins/data/public'; +import { Filter, EsQueryConfig, FilterStateStore } from '@kbn/es-query'; import { DataProviderType } from '../../../common/types/timeline'; import { mockBrowserFields, mockDataProviders, mockIndexPattern } from '../../mock'; @@ -267,7 +267,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -279,7 +279,7 @@ describe('Combined Queries', () => { query: { match_phrase: { 'event.category': 'file' } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -495,7 +495,7 @@ describe('Combined Queries', () => { }, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, } as Filter, ], @@ -517,7 +517,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, diff --git a/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx index b83c1570d9073..462a4900dc55f 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx @@ -35,7 +35,9 @@ import type { RowRenderer, AlertStatus, } from '../../../../common/types/timeline'; -import { esQuery, DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; + +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { useDeepEqualSelector } from '../../../hooks/use_selector'; import { defaultHeaders } from '../body/column_headers/default_headers'; import { buildCombinedQuery, getCombinedFilterQuery, resolverIsShowing } from '../helpers'; @@ -190,7 +192,7 @@ const TGridIntegratedComponent: React.FC = ({ const justTitle = useMemo(() => {title}, [title]); const combinedQueries = buildCombinedQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders, indexPattern, browserFields, @@ -247,7 +249,7 @@ const TGridIntegratedComponent: React.FC = ({ const filterQuery = useMemo( () => getCombinedFilterQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), browserFields, dataProviders, filters, diff --git a/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx index 1cb13a9d6cbb9..3f9fa6765056f 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx @@ -10,6 +10,7 @@ import React, { useEffect, useMemo, useState, useRef } from 'react'; import styled from 'styled-components'; import { useDispatch, useSelector } from 'react-redux'; import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { Filter, Query } from '@kbn/es-query'; import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; import { Direction, EntityType } from '../../../../common/search_strategy'; import type { CoreStart } from '../../../../../../../src/core/public'; @@ -25,12 +26,8 @@ import type { BulkActionsProp, AlertStatus, } from '../../../../common/types/timeline'; -import { - esQuery, - Filter, - Query, - DataPublicPluginStart, -} from '../../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { useDeepEqualSelector } from '../../../hooks/use_selector'; import { defaultHeaders } from '../body/column_headers/default_headers'; import { combineQueries, getCombinedFilterQuery } from '../helpers'; @@ -176,7 +173,7 @@ const TGridStandaloneComponent: React.FC = ({ const combinedQueries = useMemo( () => combineQueries({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders: EMPTY_DATA_PROVIDERS, indexPattern: indexPatterns, browserFields, @@ -290,7 +287,7 @@ const TGridStandaloneComponent: React.FC = ({ const filterQuery = useMemo( () => getCombinedFilterQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders: EMPTY_DATA_PROVIDERS, indexPattern: indexPatterns, browserFields, diff --git a/x-pack/plugins/timelines/public/container/index.tsx b/x-pack/plugins/timelines/public/container/index.tsx index 8a6c4ac53faa5..e43d9571f8001 100644 --- a/x-pack/plugins/timelines/public/container/index.tsx +++ b/x-pack/plugins/timelines/public/container/index.tsx @@ -14,11 +14,8 @@ import { Subscription } from 'rxjs'; import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { tGridActions } from '..'; -import { - DataPublicPluginStart, - isCompleteResponse, - isErrorResponse, -} from '../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../src/plugins/data/common'; import { Direction, TimelineFactoryQueryTypes, diff --git a/x-pack/plugins/timelines/public/container/source/index.tsx b/x-pack/plugins/timelines/public/container/source/index.tsx index f66eedb94f881..f13e48d82ac80 100644 --- a/x-pack/plugins/timelines/public/container/source/index.tsx +++ b/x-pack/plugins/timelines/public/container/source/index.tsx @@ -21,11 +21,9 @@ import { } from '../../../common'; import * as i18n from './translations'; -import { - DataPublicPluginStart, - isCompleteResponse, - isErrorResponse, -} from '../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../../src/plugins/data/common'; + import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; import { useAppToasts } from '../../hooks/use_app_toasts'; diff --git a/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts b/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts index 8b4bf582e6d83..8b05aa6df27a7 100644 --- a/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts +++ b/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts @@ -11,7 +11,7 @@ import { isAppError, isKibanaError, isSecurityAppError } from '@kbn/securitysolu import type { AppError } from '@kbn/securitysolution-t-grid'; import { useKibana } from '../../../../../src/plugins/kibana_react/public'; -import { +import type { ErrorToastOptions, ToastsStart, Toast, diff --git a/x-pack/plugins/timelines/public/store/t_grid/model.ts b/x-pack/plugins/timelines/public/store/t_grid/model.ts index 739bcbef3e20c..bc44a5fc159ce 100644 --- a/x-pack/plugins/timelines/public/store/t_grid/model.ts +++ b/x-pack/plugins/timelines/public/store/t_grid/model.ts @@ -6,7 +6,8 @@ */ import type { EuiDataGridColumn } from '@elastic/eui'; -import type { Filter, FilterManager } from '../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; +import type { FilterManager } from '../../../../../../src/plugins/data/public'; import type { TimelineNonEcsData } from '../../../common/search_strategy'; import type { ColumnHeaderOptions, diff --git a/x-pack/plugins/timelines/public/types.ts b/x-pack/plugins/timelines/public/types.ts index f81632e29ab17..9c42f941ee03b 100644 --- a/x-pack/plugins/timelines/public/types.ts +++ b/x-pack/plugins/timelines/public/types.ts @@ -9,7 +9,7 @@ import { ReactElement } from 'react'; import type { SensorAPI } from 'react-beautiful-dnd'; import { Store } from 'redux'; import { CoreStart } from '../../../../src/core/public'; -import { DataPublicPluginStart } from '../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../src/plugins/data/public'; import { CasesUiStart } from '../../cases/public'; import type { LastUpdatedAtProps, diff --git a/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts b/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts index 2427ec8bb6071..7e2c03486d890 100644 --- a/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts @@ -24,7 +24,7 @@ import { DELETED_SECURITY_SOLUTION_DATA_VIEW, } from '../../../common'; import { StartPlugins } from '../../types'; -import { FieldSpec } from '../../../../../../src/plugins/data_views/common'; +import type { FieldSpec } from '../../../../../../src/plugins/data_views/common'; const apmIndexPattern = 'apm-*-transaction*'; const apmDataStreamsPattern = 'traces-apm*'; diff --git a/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts b/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts index f55cd069ecd57..6ec6ca86538bd 100644 --- a/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts +++ b/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { FieldDescriptor } from '../../../../../../src/plugins/data/server'; +import type { FieldDescriptor } from '../../../../../../src/plugins/data/server'; export const mockAuditbeatIndexField: FieldDescriptor[] = [ { diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts index 9e950132b5b69..ea212f07f442b 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; import { EqlSearchResponse } from '../../../../../common'; export const sequenceResponse = { diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts index 976185bb1b176..50ef2ccd0293f 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../common/constants'; import { EqlSearchResponse, EqlSequence, EventHit } from '../../../../common'; import { TimelineEdges } from '../../../../common/search_strategy'; diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts index 3ab924440152d..476ac196de811 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts @@ -7,7 +7,7 @@ import { cloneDeep, getOr } from 'lodash/fp'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { EventHit, TimelineEventsQueries, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts index e2491c403945e..4e2876b4e19c9 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts @@ -7,7 +7,7 @@ import { cloneDeep, merge, unionBy } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { EventHit, TimelineEventsQueries, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts index 86a7819e64156..50484bbda0e6e 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { TimelineEventsQueries, TimelineRequestBasicOptions, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts index 9b96743ff8508..528230d660a40 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { TimelineEventsQueries, TimelineEventsLastEventTimeStrategyResponse, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts index 4ff86c9a9f290..54bd3ec522b87 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { ISearchRequestParams } from 'src/plugins/data/common'; +import type { ISearchRequestParams } from 'src/plugins/data/common'; import { TimelineEventsLastEventTimeRequestOptions, LastEventIndexKey, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts index 831e3266ad8ee..3eb35c88f8ea9 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { +import type { IEsSearchResponse, ISearchRequestParams, } from '../../../../../../../src/plugins/data/common'; diff --git a/x-pack/plugins/timelines/server/types.ts b/x-pack/plugins/timelines/server/types.ts index f9a80908fbc71..4367022573037 100644 --- a/x-pack/plugins/timelines/server/types.ts +++ b/x-pack/plugins/timelines/server/types.ts @@ -5,8 +5,7 @@ * 2.0. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { DataPluginSetup, DataPluginStart } from '../../../../src/plugins/data/server/plugin'; +import type { PluginSetup, PluginStart } from '../../../../src/plugins/data/server'; import { PluginStartContract as AlertingPluginStartContract } from '../../alerting/server'; import { SecurityPluginSetup } from '../../security/server'; @@ -16,11 +15,11 @@ export interface TimelinesPluginUI {} export interface TimelinesPluginStart {} export interface SetupPlugins { - data: DataPluginSetup; + data: PluginSetup; security?: SecurityPluginSetup; } export interface StartPlugins { - data: DataPluginStart; + data: PluginStart; alerting: AlertingPluginStartContract; } From cadac0717bc2827ab1e08482ed7a4c59f67996e4 Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Wed, 17 Nov 2021 19:08:43 -0700 Subject: [PATCH 019/114] [Security Solutions] Removes plugins/data/public deprecations from cases plugin (#118977) ## Summary This removes all the areas marked as deprecated from `.../src/plugins/data/public` with their `@kbn/es-query` equivalent or it uses the directly exported version from `.../src/plugins/data/public`. Anywhere else this adds the `import type {` where it can to encourage the build system to do more type erasures. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios --- x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts | 2 +- x-pack/plugins/cases/server/authorization/types.ts | 2 +- x-pack/plugins/cases/server/authorization/utils.test.ts | 2 +- x-pack/plugins/cases/server/authorization/utils.ts | 2 +- x-pack/plugins/cases/server/client/attachments/add.ts | 2 +- x-pack/plugins/cases/server/client/cases/update.ts | 2 +- x-pack/plugins/cases/server/client/sub_cases/update.ts | 2 +- x-pack/plugins/cases/server/client/utils.ts | 5 ++--- x-pack/plugins/cases/server/common/types.ts | 2 +- x-pack/plugins/cases/server/services/attachments/index.ts | 2 +- x-pack/plugins/cases/server/services/cases/index.ts | 2 +- 11 files changed, 12 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts b/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts index ca8b26a09c84a..b6b061fcb41d9 100644 --- a/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts +++ b/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts @@ -11,8 +11,8 @@ import markdown from 'remark-parse'; import remarkStringify from 'remark-stringify'; import unified from 'unified'; -import { TimeRange } from 'src/plugins/data/server'; import { SerializableRecord } from '@kbn/utility-types'; +import type { TimeRange } from 'src/plugins/data/common'; import { LENS_ID, LensParser, LensSerializer } from './lens'; import { TimelineSerializer, TimelineParser } from './timeline'; diff --git a/x-pack/plugins/cases/server/authorization/types.ts b/x-pack/plugins/cases/server/authorization/types.ts index 40d2b1fc4f6e5..8abea391cc9ac 100644 --- a/x-pack/plugins/cases/server/authorization/types.ts +++ b/x-pack/plugins/cases/server/authorization/types.ts @@ -6,7 +6,7 @@ */ import { EcsEventType, KibanaRequest } from 'kibana/server'; -import { KueryNode } from 'src/plugins/data/common'; +import type { KueryNode } from '@kbn/es-query'; import { Space } from '../../../spaces/server'; /** diff --git a/x-pack/plugins/cases/server/authorization/utils.test.ts b/x-pack/plugins/cases/server/authorization/utils.test.ts index 3ebf6ee398e38..2afffbbb768b8 100644 --- a/x-pack/plugins/cases/server/authorization/utils.test.ts +++ b/x-pack/plugins/cases/server/authorization/utils.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { nodeBuilder } from '../../../../../src/plugins/data/common'; +import { nodeBuilder } from '@kbn/es-query'; import { OWNER_FIELD } from '../../common'; import { combineFilterWithAuthorizationFilter, diff --git a/x-pack/plugins/cases/server/authorization/utils.ts b/x-pack/plugins/cases/server/authorization/utils.ts index 92293d2814474..f3a8512548430 100644 --- a/x-pack/plugins/cases/server/authorization/utils.ts +++ b/x-pack/plugins/cases/server/authorization/utils.ts @@ -6,7 +6,7 @@ */ import { remove, uniq } from 'lodash'; -import { nodeBuilder, KueryNode } from '../../../../../src/plugins/data/common'; +import { nodeBuilder, KueryNode } from '@kbn/es-query'; import { OWNER_FIELD } from '../../common'; export const getOwnersFilter = ( diff --git a/x-pack/plugins/cases/server/client/attachments/add.ts b/x-pack/plugins/cases/server/client/attachments/add.ts index 159ff3b41aba9..7f6ede930e4c3 100644 --- a/x-pack/plugins/cases/server/client/attachments/add.ts +++ b/x-pack/plugins/cases/server/client/attachments/add.ts @@ -10,6 +10,7 @@ import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; +import { nodeBuilder } from '@kbn/es-query'; import { SavedObject, SavedObjectsClientContract, @@ -17,7 +18,6 @@ import { SavedObjectsUtils, } from '../../../../../../src/core/server'; import { LensServerPluginSetup } from '../../../../lens/server'; -import { nodeBuilder } from '../../../../../../src/plugins/data/common'; import { AlertCommentRequestRt, diff --git a/x-pack/plugins/cases/server/client/cases/update.ts b/x-pack/plugins/cases/server/client/cases/update.ts index ed19444414d57..da1c25c83a37b 100644 --- a/x-pack/plugins/cases/server/client/cases/update.ts +++ b/x-pack/plugins/cases/server/client/cases/update.ts @@ -18,7 +18,7 @@ import { SavedObjectsFindResult, } from 'kibana/server'; -import { nodeBuilder } from '../../../../../../src/plugins/data/common'; +import { nodeBuilder } from '@kbn/es-query'; import { AssociationType, diff --git a/x-pack/plugins/cases/server/client/sub_cases/update.ts b/x-pack/plugins/cases/server/client/sub_cases/update.ts index c8cb96cbb6b8c..c0d3d571bb1e8 100644 --- a/x-pack/plugins/cases/server/client/sub_cases/update.ts +++ b/x-pack/plugins/cases/server/client/sub_cases/update.ts @@ -16,7 +16,7 @@ import { Logger, } from 'kibana/server'; -import { nodeBuilder } from '../../../../../../src/plugins/data/common'; +import { nodeBuilder } from '@kbn/es-query'; import { CasesService } from '../../services'; import { CASE_COMMENT_SAVED_OBJECT, diff --git a/x-pack/plugins/cases/server/client/utils.ts b/x-pack/plugins/cases/server/client/utils.ts index a6fd9984bfea6..87bf4d04b3e8f 100644 --- a/x-pack/plugins/cases/server/client/utils.ts +++ b/x-pack/plugins/cases/server/client/utils.ts @@ -12,8 +12,7 @@ import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; import { pipe } from 'fp-ts/lib/pipeable'; -import { nodeBuilder, KueryNode } from '../../../../../src/plugins/data/common'; -import { esKuery } from '../../../../../src/plugins/data/server'; +import { nodeBuilder, fromKueryExpression, KueryNode } from '@kbn/es-query'; import { AlertCommentRequestRt, ActionsCommentRequestRt, @@ -183,7 +182,7 @@ export function stringToKueryNode(expression?: string): KueryNode | undefined { return; } - return esKuery.fromKueryExpression(expression); + return fromKueryExpression(expression); } /** diff --git a/x-pack/plugins/cases/server/common/types.ts b/x-pack/plugins/cases/server/common/types.ts index 067f2fc7c311b..364be027221d0 100644 --- a/x-pack/plugins/cases/server/common/types.ts +++ b/x-pack/plugins/cases/server/common/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { KueryNode } from '../../../../../src/plugins/data/server'; +import type { KueryNode } from '@kbn/es-query'; import { SavedObjectFindOptions } from '../../common'; /** diff --git a/x-pack/plugins/cases/server/services/attachments/index.ts b/x-pack/plugins/cases/server/services/attachments/index.ts index 105b6a3125523..95a66fd9af192 100644 --- a/x-pack/plugins/cases/server/services/attachments/index.ts +++ b/x-pack/plugins/cases/server/services/attachments/index.ts @@ -12,7 +12,7 @@ import { SavedObjectsUpdateOptions, } from 'kibana/server'; -import { KueryNode } from '../../../../../../src/plugins/data/common'; +import type { KueryNode } from '@kbn/es-query'; import { AttributesTypeAlerts, CASE_COMMENT_SAVED_OBJECT, diff --git a/x-pack/plugins/cases/server/services/cases/index.ts b/x-pack/plugins/cases/server/services/cases/index.ts index 4a22793f78af5..15e60c49768a5 100644 --- a/x-pack/plugins/cases/server/services/cases/index.ts +++ b/x-pack/plugins/cases/server/services/cases/index.ts @@ -20,7 +20,7 @@ import { } from 'kibana/server'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { nodeBuilder, KueryNode } from '../../../../../../src/plugins/data/common'; +import { nodeBuilder, KueryNode } from '@kbn/es-query'; import { SecurityPluginSetup } from '../../../../security/server'; import { From a3169fe4660a6e69421cd53ba954cab8f6e922e4 Mon Sep 17 00:00:00 2001 From: Yaroslav Kuznietsov Date: Thu, 18 Nov 2021 09:05:48 +0200 Subject: [PATCH 020/114] [Canvas] Fixes Canvas needs to validate for a value before letting the user save a variable. (#118694) * Added validation to the variable form. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../public/components/var_config/edit_var.tsx | 4 +++- .../components/var_config/var_value_field.tsx | 18 +++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/canvas/public/components/var_config/edit_var.tsx b/x-pack/plugins/canvas/public/components/var_config/edit_var.tsx index 5501aa9aab637..5c317d613d445 100644 --- a/x-pack/plugins/canvas/public/components/var_config/edit_var.tsx +++ b/x-pack/plugins/canvas/public/components/var_config/edit_var.tsx @@ -103,6 +103,8 @@ export const EditVar: FC = ({ variables, selectedVar, onCancel, onSave }) const [value, setValue] = useState(isNew ? '' : selectedVar!.value); const hasDupeName = checkDupeName(name, selectedVar && selectedVar.name, variables); + const hasEmptyValue = value.toString().trim() === ''; + const hasEmptyName = !name; const typeOptions = [ { @@ -217,7 +219,7 @@ export const EditVar: FC = ({ variables, selectedVar, onCancel, onSave }) type, }) } - disabled={hasDupeName || !name} + disabled={hasDupeName || hasEmptyValue || hasEmptyName} iconType="save" > {strings.getSaveButtonLabel()} diff --git a/x-pack/plugins/canvas/public/components/var_config/var_value_field.tsx b/x-pack/plugins/canvas/public/components/var_config/var_value_field.tsx index a8ed014a9cf4a..24b9a82e32e5c 100644 --- a/x-pack/plugins/canvas/public/components/var_config/var_value_field.tsx +++ b/x-pack/plugins/canvas/public/components/var_config/var_value_field.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FC } from 'react'; +import React, { FC, useCallback } from 'react'; import { EuiFieldText, EuiFieldNumber, EuiButtonGroup } from '@elastic/eui'; import { htmlIdGenerator } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -47,14 +47,18 @@ export const VarValueField: FC = ({ type, value, onChange }) => { }, ]; + const onNumberChange = useCallback( + (e) => { + const floatVal = parseFloat(e.target.value); + const varValue = isNaN(floatVal) ? '' : floatVal; + onChange(varValue); + }, + [onChange] + ); + if (type === 'number') { return ( - onChange(parseFloat(e.target.value))} - /> + ); } From df8ddeeebb2b2e40f87fd080cf926392866fd861 Mon Sep 17 00:00:00 2001 From: Yaroslav Kuznietsov Date: Thu, 18 Nov 2021 09:07:51 +0200 Subject: [PATCH 021/114] [Canvas] Filters panel. (#116592) * Added new GlobalConfig layout. * Added filter components. * Added filterViews and their transforming. * Refactored getFilterFormatter method. * Added types. * Added hook for connecting to the canvas store. * Added filter types. * Fixed the style of filter view. * Added sidebar reducer and saved groupByOption there. * Added strict type. * Added time formatting and translations. * added invalid date translation. * Added components to the view of filter. * Fixed some bugs and done refactoring. * Added unit tests for filter.ts lib. * Refactored use_canvas_filters and added unit tests for filter_adapters. * Fixed format. * Added test to groupFiltersBy function. * Added default (beta) FiltersGroup story. * Refactored the code. * Storybook and snapshot for FiltersGroup component. * Added utils for WorkpadFilters storybook. * FilterComponent storybook and snapshot added. * WorkpadFiltersComponent storybook and snapshots added. * WorkpadFilters redux storybook added. * Added element without group to the redux WorkpadFilters storybook. * Updated snapshot for filter.component. * Moved filter views to a workpad_filters directory. * Fixed styles of the filter component. * Changed FunctionComponent to FC. * filter_group.tsx to filter_group.component.tsx * Added default to the groupFiltersByField * Added DEFAULT_GROUP_BY_FIELD. * filters_group.stories to filters_group.component.stories * Updated snapshots. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/canvas/common/lib/constants.ts | 2 + .../components/sidebar/global_config.tsx | 27 - .../sidebar/global_config/filter_config.tsx | 15 + .../sidebar/global_config/general_config.tsx | 29 + .../sidebar/global_config/global_config.tsx | 62 ++ .../sidebar/global_config/index.tsx | 8 + .../public/components/sidebar/sidebar.scss | 9 +- .../workpad_config.component.tsx | 17 +- .../filter.component.stories.storyshot | 435 +++++++++++ .../filters_group.component.stories.storyshot | 127 ++++ ...orkpad_filters.component.stories.storyshot | 706 ++++++++++++++++++ .../workpad_filters/__stories__/elements.ts | 66 ++ .../__stories__/filter.component.stories.tsx | 53 ++ .../filters_group.component.stories.tsx | 47 ++ .../workpad_filters.component.stories.tsx | 95 +++ .../__stories__/workpad_filters.stories.tsx | 23 + .../workpad_filters/filter.component.tsx | 64 ++ .../filter_views/default_filter.ts | 39 + .../workpad_filters/filter_views/index.ts | 15 + .../filter_views/time_filter.ts | 68 ++ .../filters_group.component.tsx | 50 ++ .../components/workpad_filters/hooks/index.ts | 8 + .../hooks/use_canvas_filters.ts | 23 + .../components/workpad_filters/index.tsx | 9 + .../components/workpad_filters/types.ts | 13 + .../components/workpad_filters/utils.ts | 42 ++ .../workpad_filters.component.tsx | 98 +++ .../workpad_filters/workpad_filters.tsx | 44 ++ .../plugins/canvas/public/lib/filter.test.ts | 282 +++++++ x-pack/plugins/canvas/public/lib/filter.ts | 55 ++ .../canvas/public/lib/filter_adapters.test.ts | 59 ++ .../canvas/public/lib/filter_adapters.ts | 48 ++ .../canvas/public/state/actions/sidebar.ts | 16 + .../plugins/canvas/public/state/defaults.js | 6 +- .../canvas/public/state/initial_state.js | 3 +- .../canvas/public/state/reducers/index.js | 3 +- .../canvas/public/state/reducers/sidebar.ts | 22 + .../canvas/public/state/selectors/sidebar.ts | 13 + x-pack/plugins/canvas/types/canvas.ts | 5 + x-pack/plugins/canvas/types/filters.ts | 39 + x-pack/plugins/canvas/types/state.ts | 5 +- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 43 files changed, 2702 insertions(+), 50 deletions(-) delete mode 100644 x-pack/plugins/canvas/public/components/sidebar/global_config.tsx create mode 100644 x-pack/plugins/canvas/public/components/sidebar/global_config/filter_config.tsx create mode 100644 x-pack/plugins/canvas/public/components/sidebar/global_config/general_config.tsx create mode 100644 x-pack/plugins/canvas/public/components/sidebar/global_config/global_config.tsx create mode 100644 x-pack/plugins/canvas/public/components/sidebar/global_config/index.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filter.component.stories.storyshot create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filters_group.component.stories.storyshot create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/workpad_filters.component.stories.storyshot create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filter.component.stories.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filters_group.component.stories.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.component.stories.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.stories.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/filter.component.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/filter_views/default_filter.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/filter_views/index.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/filter_views/time_filter.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/filters_group.component.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/hooks/index.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/hooks/use_canvas_filters.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/index.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/types.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/utils.ts create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.component.tsx create mode 100644 x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.tsx create mode 100644 x-pack/plugins/canvas/public/lib/filter.test.ts create mode 100644 x-pack/plugins/canvas/public/lib/filter.ts create mode 100644 x-pack/plugins/canvas/public/lib/filter_adapters.test.ts create mode 100644 x-pack/plugins/canvas/public/lib/filter_adapters.ts create mode 100644 x-pack/plugins/canvas/public/state/actions/sidebar.ts create mode 100644 x-pack/plugins/canvas/public/state/reducers/sidebar.ts create mode 100644 x-pack/plugins/canvas/public/state/selectors/sidebar.ts diff --git a/x-pack/plugins/canvas/common/lib/constants.ts b/x-pack/plugins/canvas/common/lib/constants.ts index 7212baf2414ea..6a61ec595acb7 100644 --- a/x-pack/plugins/canvas/common/lib/constants.ts +++ b/x-pack/plugins/canvas/common/lib/constants.ts @@ -6,6 +6,7 @@ */ import { SHAREABLE_RUNTIME_NAME } from '../../shareable_runtime/constants_static'; +import { FilterField } from '../../types'; export const CANVAS_TYPE = 'canvas-workpad'; export const CUSTOM_ELEMENT_TYPE = 'canvas-element'; @@ -25,6 +26,7 @@ export const SESSIONSTORAGE_LASTPATH = 'lastPath:canvas'; export const FETCH_TIMEOUT = 30000; // 30 seconds export const DEFAULT_WORKPAD_CSS = '.canvasPage {\n\n}'; export const DEFAULT_ELEMENT_CSS = '.canvasRenderEl{\n\n}'; +export const DEFAULT_GROUP_BY_FIELD: FilterField = 'filterGroup'; export const VALID_IMAGE_TYPES = ['gif', 'jpeg', 'png', 'svg+xml']; export const ASSET_MAX_SIZE = 25000; export const ELEMENT_SHIFT_OFFSET = 10; diff --git a/x-pack/plugins/canvas/public/components/sidebar/global_config.tsx b/x-pack/plugins/canvas/public/components/sidebar/global_config.tsx deleted file mode 100644 index 7602a4d3e95ec..0000000000000 --- a/x-pack/plugins/canvas/public/components/sidebar/global_config.tsx +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { Fragment, FunctionComponent } from 'react'; -// @ts-expect-error unconverted component -import { ElementConfig } from '../element_config'; -// @ts-expect-error unconverted component -import { PageConfig } from '../page_config'; -import { WorkpadConfig } from '../workpad_config'; -// @ts-expect-error unconverted component -import { SidebarSection } from './sidebar_section'; - -export const GlobalConfig: FunctionComponent = () => ( - - - - - - - - - -); diff --git a/x-pack/plugins/canvas/public/components/sidebar/global_config/filter_config.tsx b/x-pack/plugins/canvas/public/components/sidebar/global_config/filter_config.tsx new file mode 100644 index 0000000000000..305ad9f7931f3 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/sidebar/global_config/filter_config.tsx @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC } from 'react'; +import { WorkpadFilters } from '../../workpad_filters'; +// @ts-expect-error unconverted component +import { SidebarSection } from '../sidebar_section'; + +export const FilterConfig: FC = () => { + return ; +}; diff --git a/x-pack/plugins/canvas/public/components/sidebar/global_config/general_config.tsx b/x-pack/plugins/canvas/public/components/sidebar/global_config/general_config.tsx new file mode 100644 index 0000000000000..13031f306012e --- /dev/null +++ b/x-pack/plugins/canvas/public/components/sidebar/global_config/general_config.tsx @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { Fragment, FC } from 'react'; +// @ts-expect-error unconverted component +import { ElementConfig } from '../../element_config'; +// @ts-expect-error unconverted component +import { PageConfig } from '../../page_config'; +import { WorkpadConfig } from '../../workpad_config'; +// @ts-expect-error unconverted component +import { SidebarSection } from '../sidebar_section'; + +export const GeneralConfig: FC = () => { + return ( + + + + + + + + + + ); +}; diff --git a/x-pack/plugins/canvas/public/components/sidebar/global_config/global_config.tsx b/x-pack/plugins/canvas/public/components/sidebar/global_config/global_config.tsx new file mode 100644 index 0000000000000..ccdb0d88508eb --- /dev/null +++ b/x-pack/plugins/canvas/public/components/sidebar/global_config/global_config.tsx @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { Fragment, FC } from 'react'; +import { EuiTabbedContent, EuiTitle, EuiSpacer } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { GeneralConfig } from './general_config'; +import { FilterConfig } from './filter_config'; + +const strings = { + getTitle: () => + i18n.translate('xpack.canvas.globalConfig.title', { + defaultMessage: 'Workpad settings', + }), + getGeneralLabel: () => + i18n.translate('xpack.canvas.globalConfig.general', { + defaultMessage: 'General', + }), + getFilterLabel: () => + i18n.translate('xpack.canvas.globalConfig.filter', { + defaultMessage: 'Filter', + }), +}; + +export const GlobalConfig: FC = () => { + const tabs = [ + { + id: 'general', + name: strings.getGeneralLabel(), + content: ( +
+ + +
+ ), + }, + { + id: 'filter', + name: strings.getFilterLabel(), + content: ( +
+ +
+ ), + }, + ]; + + return ( + +
+ +

{strings.getTitle()}

+
+
+ +
+ ); +}; diff --git a/x-pack/plugins/canvas/public/components/sidebar/global_config/index.tsx b/x-pack/plugins/canvas/public/components/sidebar/global_config/index.tsx new file mode 100644 index 0000000000000..f7fb95e5454c3 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/sidebar/global_config/index.tsx @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { GlobalConfig } from './global_config'; diff --git a/x-pack/plugins/canvas/public/components/sidebar/sidebar.scss b/x-pack/plugins/canvas/public/components/sidebar/sidebar.scss index 76d758197aa19..94c4ab6c19070 100644 --- a/x-pack/plugins/canvas/public/components/sidebar/sidebar.scss +++ b/x-pack/plugins/canvas/public/components/sidebar/sidebar.scss @@ -51,8 +51,12 @@ min-width: 0; } +.canvasSidebar__expandable { + width: 100%; +} + .canvasSidebar__expandable + .canvasSidebar__expandable { - margin-top: 0; + margin-top: 1px; .canvasSidebar__accordion:before { display: none; @@ -87,6 +91,9 @@ bottom: 0; } } +.canvasSidebar__accordion.filtersSidebar__accordion { + margin: auto; +} .canvasSidebar__accordionContent { padding-top: $euiSize; diff --git a/x-pack/plugins/canvas/public/components/workpad_config/workpad_config.component.tsx b/x-pack/plugins/canvas/public/components/workpad_config/workpad_config.component.tsx index 18e3f2dac9777..b69893c46fb9e 100644 --- a/x-pack/plugins/canvas/public/components/workpad_config/workpad_config.component.tsx +++ b/x-pack/plugins/canvas/public/components/workpad_config/workpad_config.component.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FunctionComponent, useState } from 'react'; +import React, { FC, useState } from 'react'; import PropTypes from 'prop-types'; import { EuiFieldText, @@ -16,7 +16,6 @@ import { EuiFlexGroup, EuiFlexItem, EuiSpacer, - EuiTitle, EuiToolTip, EuiTextArea, EuiAccordion, @@ -76,10 +75,6 @@ const strings = { i18n.translate('xpack.canvas.workpadConfig.widthLabel', { defaultMessage: 'Width', }), - getTitle: () => - i18n.translate('xpack.canvas.workpadConfig.title', { - defaultMessage: 'Workpad settings', - }), getUSLetterButtonLabel: () => i18n.translate('xpack.canvas.workpadConfig.USLetterButtonLabel', { defaultMessage: 'US Letter', @@ -101,7 +96,7 @@ export interface Props { setWorkpadVariables: (vars: CanvasVariable[]) => void; } -export const WorkpadConfig: FunctionComponent = (props) => { +export const WorkpadConfig: FC = (props) => { const [css, setCSS] = useState(props.css); const { size, name, setSize, setName, setWorkpadCSS, variables, setWorkpadVariables } = props; const rotate = () => setSize({ width: size.height, height: size.width }); @@ -127,14 +122,6 @@ export const WorkpadConfig: FunctionComponent = (props) => { return (
-
- -

{strings.getTitle()}

-
-
- - - setName(e.target.value)} /> diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filter.component.stories.storyshot b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filter.component.stories.storyshot new file mode 100644 index 0000000000000..7e1deefdf249b --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filter.component.stories.storyshot @@ -0,0 +1,435 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Storyshots components/WorkpadFilters/FilterComponent default 1`] = ` +
+
+
+
+

+ Type +

+
+
+
+
+ exactly +
+
+
+
+

+ Column +

+
+
+
+
+ project +
+
+
+
+

+ Value +

+
+
+
+
+ kibana +
+
+
+
+

+ Filter group +

+
+
+
+
+ Group 1 +
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/FilterComponent with component field 1`] = ` +
+
+
+
+

+ Type +

+
+
+
+
+ exactly +
+
+
+
+

+ Column +

+
+
+
+
+ project +
+
+
+
+

+ Value +

+
+
+
+
+
+ +

+ kibana +

+
+
+
+
+
+
+

+ Filter group +

+
+
+
+
+ Group 1 +
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/FilterComponent with custom filter fields 1`] = ` +
+
+
+
+

+ Type +

+
+
+
+
+ exactly +
+
+
+
+

+ Column +

+
+
+
+
+ project +
+
+
+
+

+ Value +

+
+
+
+
+ kibana +
+
+
+
+

+ Filter group +

+
+
+
+
+ Group 1 +
+
+
+
+

+ Custom Field +

+
+
+
+
+ Some unknown field +
+
+
+
+`; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filters_group.component.stories.storyshot b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filters_group.component.stories.storyshot new file mode 100644 index 0000000000000..d30fca5dc199c --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/filters_group.component.stories.storyshot @@ -0,0 +1,127 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Storyshots components/WorkpadFilters/FiltersGroupComponent default 1`] = ` +
+
+
+
+ + +
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/FiltersGroupComponent empty group 1`] = ` +
+
+
+
+ + +
+
+
+
+
+`; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/workpad_filters.component.stories.storyshot b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/workpad_filters.component.stories.storyshot new file mode 100644 index 0000000000000..31e473f527e06 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/workpad_filters.component.stories.storyshot @@ -0,0 +1,706 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Empty filters groups 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Filters groups without group name 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Filters groups without name 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Filters groups without name and filters 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent default 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts new file mode 100644 index 0000000000000..9eacfb54a411f --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts @@ -0,0 +1,66 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import moment from 'moment'; +import { CanvasElement } from '../../../../types'; + +const timeFormat = 'MM.dd.YYYY HH:mm'; + +const generatePosition = (n: number): CanvasElement['position'] => ({ + left: n, + top: n, + width: n, + height: n, + angle: n, + parent: null, +}); + +const time1 = { + from: moment('1.01.2021 8:15', timeFormat).format(), + to: moment('2.01.2021 17:22', timeFormat).format(), +}; +const group1 = 'Group 1'; + +const time2 = { + from: moment('1.10.2021 12:20', timeFormat).format(), + to: moment('2.10.2021 12:33', timeFormat).format(), +}; +const group2 = 'Group 2'; + +const element1: CanvasElement = { + id: '1', + position: generatePosition(1), + type: 'element', + expression: '', + filter: `timefilter column="@timestamp" from="${time1.from}" to="${time1.to}" filterGroup="${group1}"`, +}; + +const element2: CanvasElement = { + id: '2', + position: generatePosition(2), + type: 'element', + expression: '', + filter: `exactly value="machine-learning" column="project1" filterGroup="${group1}"`, +}; + +const element3: CanvasElement = { + id: '3', + position: generatePosition(3), + type: 'element', + expression: '', + filter: `timefilter column="@timestamp" from="${time2.from}" to="${time2.to}"`, +}; + +const element4: CanvasElement = { + id: '4', + position: generatePosition(4), + type: 'element', + expression: '', + filter: `exactly value="kibana" column="project2" filterGroup="${group2}"`, +}; + +export const elements = [element1, element2, element3, element4]; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filter.component.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filter.component.stories.tsx new file mode 100644 index 0000000000000..2f80ffed5abf9 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filter.component.stories.tsx @@ -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. + */ + +import { EuiText, EuiTextColor } from '@elastic/eui'; +import { storiesOf } from '@storybook/react'; +import React, { FC } from 'react'; +import { FormattedFilterViewInstance } from '../../../../types'; +import { Filter } from '../filter.component'; + +const filter: FormattedFilterViewInstance = { + type: { + label: 'Type', + formattedValue: 'exactly', + }, + column: { + label: 'Column', + formattedValue: 'project', + }, + value: { + label: 'Value', + formattedValue: 'kibana', + }, + filterGroup: { + label: 'Filter group', + formattedValue: 'Group 1', + }, +}; + +const component: FC = ({ value }) => ( + + +

{value}

+
+
+); + +storiesOf('components/WorkpadFilters/FilterComponent', module) + .add('default', () => ) + .add('with component field', () => ( + + )) + .add('with custom filter fields', () => ( + + )); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filters_group.component.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filters_group.component.stories.tsx new file mode 100644 index 0000000000000..bdeb963dc8832 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filters_group.component.stories.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 { storiesOf } from '@storybook/react'; +import React from 'react'; +import moment from 'moment'; +import { FiltersGroup } from '../filters_group.component'; +import { FiltersGroup as FiltersGroupType } from '../types'; + +const timeFormat = 'MM.dd.YYYY HH:mm'; + +const filtersGroup: FiltersGroupType = { + name: 'Group 1', + filters: [ + { type: 'exactly', column: 'project', value: 'kibana', filterGroup: 'Group 1' }, + { + type: 'time', + column: '@timestamp', + value: { + from: moment('1.01.2021 8:15', timeFormat).format(), + to: moment('2.01.2021 17:22', timeFormat).format(), + }, + filterGroup: 'Group 1', + }, + { type: 'exactly', column: 'country', value: 'US', filterGroup: 'Group 1' }, + { + type: 'time', + column: 'time', + value: { + from: moment('05.21.2021 10:50', timeFormat).format(), + to: moment('05.22.2021 4:40', timeFormat).format(), + }, + filterGroup: 'Group 1', + }, + ], +}; + +storiesOf('components/WorkpadFilters/FiltersGroupComponent', module) + .addDecorator((story) =>
{story()}
) + .add('default', () => ) + .add('empty group', () => ( + + )); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.component.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.component.stories.tsx new file mode 100644 index 0000000000000..8dc062886a12e --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.component.stories.tsx @@ -0,0 +1,95 @@ +/* + * Copyright 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 { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import React from 'react'; +import moment from 'moment'; +import { WorkpadFilters } from '../workpad_filters.component'; +import { FiltersGroup as FiltersGroupType } from '../types'; +import { Filter } from '../../../../types'; + +const timeFormat = 'MM.dd.YYYY HH:mm'; + +const filters: Filter[] = [ + { type: 'exactly', column: 'project', value: 'kibana', filterGroup: 'Group 1' }, + { + type: 'time', + column: '@timestamp', + value: { + from: moment('1.01.2021 8:15', timeFormat).format(), + to: moment('2.01.2021 17:22', timeFormat).format(), + }, + filterGroup: 'Group 1', + }, + { type: 'exactly', column: 'country', value: 'US', filterGroup: 'Group 2' }, + { + type: 'time', + column: 'time', + value: { + from: moment('05.21.2021 10:50', timeFormat).format(), + to: moment('05.22.2021 4:40', timeFormat).format(), + }, + filterGroup: 'Group 2', + }, +]; + +const filtersGroups: FiltersGroupType[] = [ + { + name: filters[0].filterGroup, + filters: [filters[0], filters[1]], + }, + { + name: filters[2].filterGroup, + filters: [filters[2], filters[3]], + }, +]; + +storiesOf('components/WorkpadFilters/WorkpadFiltersComponent', module) + .addDecorator((story) => ( +
+
+
{story()}
+
+
+ )) + .add('default', () => ( + + )) + .add('Filters groups without name', () => ( + ((acc, group) => [...acc, ...group.filters], []), + }, + ]} + groupFiltersByField={'column'} + onGroupByChange={action('onGroupByChange')} + /> + )) + .add('Filters groups without group name', () => ( + ((acc, group) => [...acc, ...group.filters], []), + }, + ]} + groupFiltersByField={'filterGroup'} + onGroupByChange={action('onGroupByChange')} + /> + )) + .add('Filters groups without name and filters', () => ( + + )) + .add('Empty filters groups', () => ( + + )); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.stories.tsx new file mode 100644 index 0000000000000..b97043bf83304 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.stories.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 { storiesOf } from '@storybook/react'; +import React from 'react'; +import { reduxDecorator } from '../../../../storybook'; +import { WorkpadFilters } from '../workpad_filters'; +import { elements } from './elements'; + +storiesOf('components/WorkpadFilters/WorkpadFilters', module) + .addDecorator((story) => ( +
+
+
{story()}
+
+
+ )) + .addDecorator(reduxDecorator({ elements })) + .add('redux: default', () => ); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter.component.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/filter.component.tsx new file mode 100644 index 0000000000000..bec6bec090d62 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter.component.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, { FC } from 'react'; +import { EuiDescriptionList, EuiPanel, EuiText } from '@elastic/eui'; +import { FormattedFilterViewInstance } from '../../../types'; + +interface Props { + filter: FormattedFilterViewInstance; + updateFilter?: (value: any) => void; +} + +type CustomComponentProps = Omit & { value: string }; + +const titleStyle = { + width: '30%', +}; + +const descriptionStyle = { + width: '70%', +}; + +const renderElement = ( + Component: FC< + Omit & { onChange?: CustomComponentProps['updateFilter'] } + >, + { updateFilter, ...props }: CustomComponentProps +) => { + return ; +}; + +export const Filter: FC = ({ filter, ...restProps }) => { + const filterView = Object.values(filter).map((filterValue) => { + const description = filterValue.component + ? renderElement(filterValue.component, { value: filterValue.formattedValue, ...restProps }) + : filterValue.formattedValue; + + return { + title: ( + +

{filterValue.label}

+
+ ), + description: {description}, + }; + }); + + return ( + + + + ); +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/default_filter.ts b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/default_filter.ts new file mode 100644 index 0000000000000..b2686fb660535 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/default_filter.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { FilterViewSpec } from '../../../../types'; +import { formatByKey } from '../utils'; + +const strings = { + getTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.type', { + defaultMessage: 'Type', + }), + getColumnLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.column', { + defaultMessage: 'Column', + }), + getFilterGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.filterGroup', { + defaultMessage: 'Filter group', + }), + getValueLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.value', { + defaultMessage: 'Value', + }), +}; + +export const defaultFilter: FilterViewSpec = { + name: 'default', + view: { + column: { label: strings.getColumnLabel() }, + value: { label: strings.getValueLabel() }, + type: { label: strings.getTypeLabel(), formatter: formatByKey('type') }, + filterGroup: { label: strings.getFilterGroupLabel() }, + }, +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/index.ts b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/index.ts new file mode 100644 index 0000000000000..98fad36c0015a --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FilterViewSpec } from '../../../../types'; +import { defaultFilter } from './default_filter'; +import { timeFilter } from './time_filter'; + +export const filterViews: Record> = { + [defaultFilter.name]: defaultFilter, + [timeFilter.name]: timeFilter, +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/time_filter.ts b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/time_filter.ts new file mode 100644 index 0000000000000..1dc02f61d05f7 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/time_filter.ts @@ -0,0 +1,68 @@ +/* + * Copyright 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 dateMath from '@elastic/datemath'; +import { i18n } from '@kbn/i18n'; +import { FilterType, FilterViewSpec, SimpleFilterViewField } from '../../../../types'; +import { formatByKey } from '../utils'; +import { defaultFilter } from './default_filter'; + +export interface TimeFilterValue { + to: string; + from: string; +} + +const strings = { + getFromLabel: () => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.from', { + defaultMessage: 'From', + }), + getToLabel: () => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.to', { + defaultMessage: 'To', + }), + getInvalidDateLabel: (date: string) => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.invalidDate', { + defaultMessage: 'Invalid date: {date}', + values: { + date, + }, + }), +}; + +const { column, type, filterGroup } = defaultFilter.view; + +const formatTime = (str: string, roundUp: boolean) => { + const moment = dateMath.parse(str, { roundUp }); + if (!moment || !moment.isValid()) { + return strings.getInvalidDateLabel(str); + } + + return moment.format('YYYY-MM-DD HH:mm:ss'); +}; + +export const timeFilter: FilterViewSpec = { + name: FilterType.time, + view: { + column, + value: ({ to, from }) => ({ + from: { + label: strings.getFromLabel(), + formatter: () => formatTime(from, false), + }, + to: { + label: strings.getToLabel(), + formatter: () => formatTime(to, true), + }, + }), + type: { + label: (type as SimpleFilterViewField).label, + formatter: formatByKey('type'), + }, + filterGroup, + }, +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filters_group.component.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/filters_group.component.tsx new file mode 100644 index 0000000000000..8ceb60fe7866f --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filters_group.component.tsx @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiAccordion } from '@elastic/eui'; +import React, { FC } from 'react'; +import { FormattedFilterViewInstance } from '../../../types'; +import { createFilledFilterView } from '../../lib/filter'; +import { Filter } from './filter.component'; +import { filterViews } from './filter_views'; +import { FiltersGroup as FiltersGroupType } from './types'; + +interface Props { + filtersGroup: FiltersGroupType; + id: string | number; +} + +const panelStyle = { + paddingTop: '15px', +}; + +export const FiltersGroup: FC = ({ filtersGroup, id }) => { + const { name, filters: groupFilters } = filtersGroup; + + const filledFilterViews: FormattedFilterViewInstance[] = groupFilters.map((filter) => { + const filterView = filterViews[filter.type] ?? filterViews.default; + return createFilledFilterView(filterView.view, filter); + }); + + const filtersComponents = filledFilterViews.map((filter, index) => ( + + )); + + return ( +
+ +
{filtersComponents}
+
+
+ ); +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/hooks/index.ts b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/index.ts new file mode 100644 index 0000000000000..62f2a28130bfa --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { useCanvasFilters } from './use_canvas_filters'; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/hooks/use_canvas_filters.ts b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/use_canvas_filters.ts new file mode 100644 index 0000000000000..ce8e90def5aad --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/use_canvas_filters.ts @@ -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 { fromExpression } from '@kbn/interpreter/common'; +import { shallowEqual, useSelector } from 'react-redux'; +import { State } from '../../../../types'; +import { adaptCanvasFilter } from '../../../lib/filter_adapters'; +import { getGlobalFilters } from '../../../state/selectors/workpad'; + +const extractExpressionAST = (filtersExpressions: string[]) => + fromExpression(filtersExpressions.join(' | ')); + +export function useCanvasFilters() { + const filterExpressions = useSelector((state: State) => getGlobalFilters(state), shallowEqual); + const expression = extractExpressionAST(filterExpressions); + const filters = expression.chain.map(adaptCanvasFilter); + + return filters; +} diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/index.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/index.tsx new file mode 100644 index 0000000000000..684d5e09c18fc --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/index.tsx @@ -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 { WorkpadFilters } from './workpad_filters'; +export { WorkpadFilters as WorkpadFiltersComponent } from './workpad_filters.component'; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/types.ts b/x-pack/plugins/canvas/public/components/workpad_filters/types.ts new file mode 100644 index 0000000000000..4733c18da9be5 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/types.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Filter } from '../../../types'; + +export interface FiltersGroup { + name: string | null; + filters: Filter[]; +} diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/utils.ts b/x-pack/plugins/canvas/public/components/workpad_filters/utils.ts new file mode 100644 index 0000000000000..cc5836112db8a --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/utils.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { FilterField } from '../../../types'; + +const strings = { + getBlankLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filter.blankTypeLabel', { + defaultMessage: '(Blank)', + }), + getExactlyFilterTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.typeLabel', { + defaultMessage: 'Dropdown', + }), + getTimeFilterTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.typeLabel', { + defaultMessage: 'Time', + }), + getWithoutGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filters_group.withoutGroup', { + defaultMessage: 'Without group', + }), +}; + +const formatType = (type: unknown) => { + const types: Record = { + exactly: strings.getExactlyFilterTypeLabel(), + time: strings.getTimeFilterTypeLabel(), + }; + return typeof type === 'string' ? types[type] ?? type : null; +}; + +const formatters: Partial string | null>> = { + type: formatType, +}; + +export const formatByKey = (key: FilterField) => formatters[key]; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.component.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.component.tsx new file mode 100644 index 0000000000000..e3504f906fb3a --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.component.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, { FC, Fragment } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiSelect, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { identity } from 'lodash'; +import { FiltersGroup as FiltersGroupType } from './types'; +import { FiltersGroup } from './filters_group.component'; +import { FilterField } from '../../../types'; +import { formatByKey } from './utils'; + +interface Props { + filtersGroups: FiltersGroupType[]; + groupFiltersByField?: FilterField; + onGroupByChange: (groupBy: FilterField) => void; +} + +const strings = { + getGroupBySelectLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupBySelect', { + defaultMessage: 'Group by', + }), + getGroupByFilterGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupByFilterGroup', { + defaultMessage: 'Filter group', + }), + getGroupByFilterTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupByFilterType', { + defaultMessage: 'Filter type', + }), + getGroupByColumnLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupByColumn', { + defaultMessage: 'Column', + }), + getWithoutGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filters_group.withoutGroup', { + defaultMessage: 'Without group', + }), + getBlankValueLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filters_group.blankValue', { + defaultMessage: '(Blank)', + }), +}; + +const groupByOptions: Array<{ value: FilterField; text: string }> = [ + { value: 'filterGroup', text: strings.getGroupByFilterGroupLabel() }, + { value: 'type', text: strings.getGroupByFilterTypeLabel() }, + { value: 'column', text: strings.getGroupByColumnLabel() }, +]; + +export const WorkpadFilters: FC = ({ + filtersGroups, + onGroupByChange, + groupFiltersByField, +}) => { + const groupedByFilterGroupField = groupFiltersByField === 'filterGroup'; + const formatter = groupFiltersByField ? formatByKey(groupFiltersByField) ?? identity : identity; + + const preparedFilterGroups = filtersGroups.map((filterGroup) => ({ + ...filterGroup, + name: + formatter(filterGroup.name) ?? + (groupedByFilterGroupField ? strings.getWithoutGroupLabel() : strings.getBlankValueLabel()), + })); + + const filtersGroupsComponents = preparedFilterGroups.map((filtersGroup, index) => { + return ; + }); + + return ( + +
+ + + +
{strings.getGroupBySelectLabel()}
+
+
+ + onGroupByChange(e.target.value as FilterField)} + aria-label="Use aria labels when no actual label is in use" + /> + +
+
+ {filtersGroupsComponents} +
+ ); +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.tsx new file mode 100644 index 0000000000000..c04fe543804b4 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.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, { FC, useCallback } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { State, FilterField } from '../../../types'; +import { groupFiltersBy } from '../../lib/filter'; +import { setGroupFiltersByOption } from '../../state/actions/sidebar'; +import { getGroupFiltersByOption } from '../../state/selectors/sidebar'; +import { useCanvasFilters } from './hooks'; +import { WorkpadFilters as Component } from './workpad_filters.component'; + +export const WorkpadFilters: FC = () => { + const groupFiltersByField: FilterField = useSelector((state: State) => + getGroupFiltersByOption(state) + ); + + const dispatch = useDispatch(); + + const onGroupByChange = useCallback( + (groupByOption: FilterField) => { + dispatch(setGroupFiltersByOption(groupByOption)); + }, + [dispatch] + ); + + const canvasFilters = useCanvasFilters(); + + const filtersGroups = groupFiltersByField + ? groupFiltersBy(canvasFilters, groupFiltersByField) + : []; + + return ( + + ); +}; diff --git a/x-pack/plugins/canvas/public/lib/filter.test.ts b/x-pack/plugins/canvas/public/lib/filter.test.ts new file mode 100644 index 0000000000000..497f75b91650f --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter.test.ts @@ -0,0 +1,282 @@ +/* + * Copyright 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 { FC } from 'react'; +import { + Filter as FilterType, + FilterViewInstance, + FlattenFilterViewInstance, + SimpleFilterViewField, +} from '../../types'; +import { + defaultFormatter, + formatFilterView, + flattenFilterView, + createFilledFilterView, + groupFiltersBy, +} from './filter'; + +const formatterFactory = (value: unknown) => () => JSON.stringify(value); +const fc: FC = () => null; + +const simpleFilterValue: FilterType = { + type: 'exactly', + column: 'project', + value: 'kibana', + filterGroup: 'someGroup', +}; + +const filterWithNestedValue: FilterType = { + type: 'exactlyNested' as any, + column: 'project', + value: { nestedField1: 'nestedField1', nestedField2: 'nestedField2' }, + filterGroup: 'someGroup', +}; + +const simpleFilterView: FilterViewInstance = { + type: { label: 'label' }, + column: { label: 'column' }, + value: { label: 'value' }, + filterGroup: { label: 'filterGroup' }, +}; + +const nestedFilterView: FilterViewInstance = { + type: { label: 'label' }, + column: { label: 'column' }, + value: (value: unknown) => ({ + nested: { + label: 'nested', + formatter: formatterFactory(value), + }, + }), + filterGroup: { label: 'filterGroup' }, +}; + +describe('defaultFormatter', () => { + it('returns string when passed not null/undefined/falsy/emtpy value', () => { + expect(defaultFormatter(10)).toBe('10'); + expect(defaultFormatter('10')).toBe('10'); + const objToFormat = { field: 10 }; + expect(defaultFormatter(objToFormat)).toBe(objToFormat.toString()); + const arrToFormat = [10, 20]; + expect(defaultFormatter(arrToFormat)).toBe(arrToFormat.toString()); + }); + + it("returns '-' when passed null/undefined/falsy/emtpy value", () => { + const empty = '-'; + expect(defaultFormatter(null)).toBe(empty); + expect(defaultFormatter(undefined)).toBe(empty); + expect(defaultFormatter('')).toBe(empty); + expect(defaultFormatter(false)).toBe(empty); + }); +}); + +describe('flattenFilterView returns fn which', () => { + it('returns the same filter view if it expects all fiends to be simple values', () => { + const flattenFn = flattenFilterView(simpleFilterValue); + expect(flattenFn(simpleFilterView)).toEqual(simpleFilterView); + }); + + it('returns the same filter view if filterValue is empty object', () => { + const flattenFn = flattenFilterView({} as any); + expect(flattenFn(simpleFilterView)).toEqual(simpleFilterView); + }); + + it('returns empty filter view if filter view is empty object', () => { + const flattenFn = flattenFilterView(simpleFilterValue); + expect(flattenFn({} as any)).toEqual({}); + }); + + it('returns single nesting filter view if it expects some fields to be nested objects', () => { + const flattenFn = flattenFilterView(filterWithNestedValue); + const { value, ...restExpectedFields } = nestedFilterView; + const flattenFilterViewRes = flattenFn(nestedFilterView); + + expect(flattenFilterViewRes).toEqual({ + ...restExpectedFields, + nested: { + label: 'nested', + formatter: expect.any(Function), + }, + }); + expect(flattenFilterViewRes.nested.formatter?.()).toBe( + formatterFactory(filterWithNestedValue.value)() + ); + }); + + it('returns single nesting filter view if filterValue is empty object', () => { + const flattenFn = flattenFilterView({} as any); + const { value, ...rest } = nestedFilterView; + expect(flattenFn(nestedFilterView)).toEqual({ + ...rest, + nested: { + label: 'nested', + formatter: expect.any(Function), + }, + }); + }); +}); + +describe('formatFilterView returns fn which', () => { + const simpleFlattenFilterView: FlattenFilterViewInstance = { + type: { label: 'label' }, + value: { label: 'value' }, + column: { label: 'column' }, + filterGroup: { label: 'filterGroup' }, + nestedField: { label: 'nestedField', formatter: () => 'null' }, + }; + + it('returns formatted filter view with any passed keys', () => { + const formatFn = formatFilterView(simpleFilterValue); + expect(formatFn(simpleFlattenFilterView)).toEqual({ + type: { label: 'label', formattedValue: simpleFilterValue.type }, + value: { label: 'value', formattedValue: simpleFilterValue.value }, + column: { label: 'column', formattedValue: simpleFilterValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: simpleFilterValue.filterGroup }, + nestedField: { label: 'nestedField', formattedValue: 'null' }, + }); + }); + + it("returns formatted filter view with formattedValue = '-' ", () => { + const formatFn = formatFilterView({} as any); + expect(formatFn(simpleFlattenFilterView)).toEqual({ + type: { label: 'label', formattedValue: '-' }, + value: { label: 'value', formattedValue: '-' }, + column: { label: 'column', formattedValue: '-' }, + filterGroup: { label: 'filterGroup', formattedValue: '-' }, + nestedField: { label: 'nestedField', formattedValue: 'null' }, + }); + }); + + it('returns emtpy object when filter view is empty object', () => { + const formatFn = formatFilterView(simpleFilterValue); + expect(formatFn({} as any)).toEqual({}); + }); + + it('returns filter view fields with component property if defined at filter view', () => { + const flattenFilterViewWithComponent: FlattenFilterViewInstance = { + ...simpleFlattenFilterView, + nestedField: { + ...simpleFlattenFilterView.nestedField, + component: fc, + }, + }; + + const formatFn = formatFilterView(simpleFilterValue); + expect(formatFn(flattenFilterViewWithComponent)).toEqual({ + type: { label: 'label', formattedValue: simpleFilterValue.type }, + value: { label: 'value', formattedValue: simpleFilterValue.value }, + column: { label: 'column', formattedValue: simpleFilterValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: simpleFilterValue.filterGroup }, + nestedField: { label: 'nestedField', formattedValue: 'null', component: fc }, + }); + }); +}); + +describe('createFilledFilterView', () => { + it('returns simple filter view with formattedValue and components', () => { + const simpleFilterValueWithComponent = { + ...simpleFilterView, + value: { + ...(simpleFilterView.value as SimpleFilterViewField), + component: fc, + }, + }; + + expect(createFilledFilterView(simpleFilterValueWithComponent, simpleFilterValue)).toEqual({ + type: { label: 'label', formattedValue: simpleFilterValue.type }, + value: { label: 'value', formattedValue: simpleFilterValue.value, component: fc }, + column: { label: 'column', formattedValue: simpleFilterValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: simpleFilterValue.filterGroup }, + }); + }); + + it('returns nested filter view with formattedValue and components', () => { + const nestedFilterViewWithComponent = { + ...nestedFilterView, + value: (value: unknown) => ({ + nested: { + label: 'nested', + formatter: formatterFactory(value), + component: fc, + }, + }), + }; + + expect(createFilledFilterView(nestedFilterViewWithComponent, filterWithNestedValue)).toEqual({ + type: { label: 'label', formattedValue: filterWithNestedValue.type }, + column: { label: 'column', formattedValue: filterWithNestedValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: filterWithNestedValue.filterGroup }, + nested: { + label: 'nested', + formattedValue: formatterFactory(filterWithNestedValue.value)(), + component: fc, + }, + }); + }); +}); + +describe('groupFiltersBy', () => { + const filters: FilterType[] = [ + { type: 'exactly', column: 'project', value: 'kibana', filterGroup: 'someGroup' }, + { + type: 'time', + column: '@timestamp', + value: { from: 'some time', to: 'some time' }, + filterGroup: 'someGroup2', + }, + { type: 'exactly', column: 'country', value: 'US', filterGroup: 'someGroup2' }, + { + type: 'time', + column: 'time', + value: { from: 'some time', to: 'some time' }, + filterGroup: null, + }, + ]; + + it('groups by type', () => { + const grouped = groupFiltersBy(filters, 'type'); + expect(grouped).toEqual([ + { name: 'exactly', filters: [filters[0], filters[2]] }, + { name: 'time', filters: [filters[1], filters[3]] }, + ]); + }); + + it('groups by column', () => { + const grouped = groupFiltersBy(filters, 'column'); + expect(grouped).toEqual([ + { name: 'project', filters: [filters[0]] }, + { name: '@timestamp', filters: [filters[1]] }, + { name: 'country', filters: [filters[2]] }, + { name: 'time', filters: [filters[3]] }, + ]); + }); + + it('groups by filterGroup', () => { + const grouped = groupFiltersBy(filters, 'filterGroup'); + expect(grouped).toEqual([ + { name: 'someGroup', filters: [filters[0]] }, + { name: 'someGroup2', filters: [filters[1], filters[2]] }, + { name: null, filters: [filters[3]] }, + ]); + }); + + it('groups by field on empty array', () => { + const grouped = groupFiltersBy([], 'filterGroup'); + expect(grouped).toEqual([]); + }); + + it('groups by empty field', () => { + const filtersWithoutGroups = filters.map(({ filterGroup, ...rest }) => ({ + ...rest, + filterGroup: null, + })); + + const grouped = groupFiltersBy(filtersWithoutGroups, 'filterGroup'); + expect(grouped).toEqual([{ name: null, filters: filtersWithoutGroups }]); + }); +}); diff --git a/x-pack/plugins/canvas/public/lib/filter.ts b/x-pack/plugins/canvas/public/lib/filter.ts new file mode 100644 index 0000000000000..ae75822e4a7c9 --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter.ts @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { flowRight, groupBy } from 'lodash'; +import { + Filter as FilterType, + FilterField, + FilterViewInstance, + FlattenFilterViewInstance, +} from '../../types/filters'; + +export const defaultFormatter = (value: unknown) => (value || null ? `${value}` : '-'); + +export const formatFilterView = + (filterValue: FilterType) => (filterView: FlattenFilterViewInstance) => { + const filterViewKeys = Object.keys(filterView) as Array; + return filterViewKeys.reduce( + (acc, key) => ({ + ...acc, + [key]: { + label: filterView[key].label, + formattedValue: (filterView[key].formatter ?? defaultFormatter)(filterValue[key]), + component: filterView[key].component, + }, + }), + {} + ); + }; + +export const flattenFilterView = (filterValue: FilterType) => (filterView: FilterViewInstance) => { + const filterViewKeys = Object.keys(filterView) as Array; + return filterViewKeys.reduce((acc, key) => { + const filterField = filterView[key]; + if (typeof filterField === 'function') { + const val = filterField(filterValue[key]); + return { ...acc, ...val }; + } + return { ...acc, [key]: filterField }; + }, {}); +}; + +export const createFilledFilterView = (filterView: FilterViewInstance, filter: FilterType) => + flowRight(formatFilterView(filter), flattenFilterView(filter))(filterView); + +export const groupFiltersBy = (filters: FilterType[], groupByField: FilterField) => { + const groupedFilters = groupBy(filters, (filter) => filter[groupByField]); + return Object.keys(groupedFilters).map((key) => ({ + name: groupedFilters[key]?.[0]?.[groupByField] ? key : null, + filters: groupedFilters[key], + })); +}; diff --git a/x-pack/plugins/canvas/public/lib/filter_adapters.test.ts b/x-pack/plugins/canvas/public/lib/filter_adapters.test.ts new file mode 100644 index 0000000000000..5061e47a44347 --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter_adapters.test.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ExpressionFunctionAST } from '@kbn/interpreter/common'; +import { adaptCanvasFilter } from './filter_adapters'; + +describe('adaptCanvasFilter', () => { + const filterAST: ExpressionFunctionAST = { + type: 'function', + function: 'exactly', + arguments: { + type: ['exactly'], + column: ['project'], + filterGroup: [], + value: ['kibana'], + }, + }; + + it('returns filter when AST arguments consists of arrays with one element', () => { + const resultFilter = { type: 'exactly', column: 'project', filterGroup: null, value: 'kibana' }; + + const filter = adaptCanvasFilter(filterAST); + expect(filter).toEqual(resultFilter); + }); + + it('returns filter with all additional fields stored on value field', () => { + const { value, ...rest } = filterAST.arguments; + const additionalArguments = { value1: ['value1'], value2: ['value2'] }; + const newFilterAST = { ...filterAST, arguments: { ...rest, ...additionalArguments } }; + + const resultFilter = { + type: 'exactly', + column: 'project', + filterGroup: null, + value: { value1: 'value1', value2: 'value2' }, + }; + + const filter = adaptCanvasFilter(newFilterAST); + expect(filter).toEqual(resultFilter); + }); + + it('returns filter if args are empty', () => { + const { arguments: args, ...rest } = filterAST; + + const resultFilter = { + type: 'exactly', + column: null, + filterGroup: null, + value: null, + }; + + const filter = adaptCanvasFilter({ ...rest, arguments: {} }); + expect(filter).toEqual(resultFilter); + }); +}); diff --git a/x-pack/plugins/canvas/public/lib/filter_adapters.ts b/x-pack/plugins/canvas/public/lib/filter_adapters.ts new file mode 100644 index 0000000000000..478b0a5302631 --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter_adapters.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ExpressionFunctionAST } from '@kbn/interpreter/common'; +import { identity } from 'lodash'; +import { ExpressionAstArgument, Filter, FilterType } from '../../types'; + +const functionToFilter: Record = { + timefilter: FilterType.time, + exactly: FilterType.exactly, +}; + +const defaultFormatter = (arg: ExpressionAstArgument) => arg.toString(); + +const argToValue = ( + arg: ExpressionAstArgument[], + formatter: (arg: ExpressionAstArgument) => string | null = defaultFormatter +) => (arg?.[0] ? formatter(arg[0]) : null); + +const convertFunctionToFilterType = (func: string) => functionToFilter[func] ?? FilterType.exactly; + +const collectArgs = (args: ExpressionFunctionAST['arguments']) => { + const argsKeys = Object.keys(args); + + if (!argsKeys.length) { + return null; + } + + return argsKeys.reduce>( + (acc, key) => ({ ...acc, [key]: argToValue(args[key], identity) }), + {} + ); +}; + +export function adaptCanvasFilter(filter: ExpressionFunctionAST): Filter { + const { function: type, arguments: args } = filter; + const { column, filterGroup, value: valueArg, type: typeArg, ...rest } = args ?? {}; + return { + type: convertFunctionToFilterType(type), + column: argToValue(column), + filterGroup: argToValue(filterGroup), + value: argToValue(valueArg) ?? collectArgs(rest), + }; +} diff --git a/x-pack/plugins/canvas/public/state/actions/sidebar.ts b/x-pack/plugins/canvas/public/state/actions/sidebar.ts new file mode 100644 index 0000000000000..309cb43fcd936 --- /dev/null +++ b/x-pack/plugins/canvas/public/state/actions/sidebar.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createAction } from 'redux-actions'; +import { FilterField } from '../../../types'; + +export type SetGroupFiltersByOptionPayload = FilterField; +export const SetGroupFiltersByOptionType = 'setGroupFiltersByOption'; + +export const setGroupFiltersByOption = createAction( + SetGroupFiltersByOptionType +); diff --git a/x-pack/plugins/canvas/public/state/defaults.js b/x-pack/plugins/canvas/public/state/defaults.js index a245d515a32d9..40e8425c98ff0 100644 --- a/x-pack/plugins/canvas/public/state/defaults.js +++ b/x-pack/plugins/canvas/public/state/defaults.js @@ -6,7 +6,7 @@ */ import { getId } from '../lib/get_id'; -import { DEFAULT_WORKPAD_CSS } from '../../common/lib/constants'; +import { DEFAULT_WORKPAD_CSS, DEFAULT_GROUP_BY_FIELD } from '../../common/lib/constants'; export const getDefaultElement = () => { return { @@ -86,3 +86,7 @@ export const getDefaultWorkpad = () => { isWriteable: true, }; }; + +export const getDefaultSidebar = () => ({ + groupFiltersByOption: DEFAULT_GROUP_BY_FIELD, +}); diff --git a/x-pack/plugins/canvas/public/state/initial_state.js b/x-pack/plugins/canvas/public/state/initial_state.js index c652cc573abe9..d676b27c7a906 100644 --- a/x-pack/plugins/canvas/public/state/initial_state.js +++ b/x-pack/plugins/canvas/public/state/initial_state.js @@ -7,7 +7,7 @@ import { get } from 'lodash'; import { pluginServices } from '../services'; -import { getDefaultWorkpad } from './defaults'; +import { getDefaultWorkpad, getDefaultSidebar } from './defaults'; export const getInitialState = (path) => { const platformService = pluginServices.getServices().platform; @@ -40,6 +40,7 @@ export const getInitialState = (path) => { // In there will live an object with a status (string), value (any), and error (Error) property. // If the state is 'error', the error property will be the error object, the value will not change // See the resolved_args reducer for more information. + sidebar: getDefaultSidebar(), }, persistent: { schemaVersion: 2, diff --git a/x-pack/plugins/canvas/public/state/reducers/index.js b/x-pack/plugins/canvas/public/state/reducers/index.js index 5a901fc3bb294..a07de70d9a005 100644 --- a/x-pack/plugins/canvas/public/state/reducers/index.js +++ b/x-pack/plugins/canvas/public/state/reducers/index.js @@ -18,12 +18,13 @@ import { elementsReducer } from './elements'; import { assetsReducer } from './assets'; import { historyReducer } from './history'; import { embeddableReducer } from './embeddable'; +import { sidebarReducer } from './sidebar'; export function getRootReducer(initialState) { return combineReducers({ assets: assetsReducer, app: appReducer, - transient: reduceReducers(transientReducer, resolvedArgsReducer), + transient: reduceReducers(transientReducer, resolvedArgsReducer, sidebarReducer), persistent: reduceReducers( historyReducer, combineReducers({ diff --git a/x-pack/plugins/canvas/public/state/reducers/sidebar.ts b/x-pack/plugins/canvas/public/state/reducers/sidebar.ts new file mode 100644 index 0000000000000..55697b17c09e0 --- /dev/null +++ b/x-pack/plugins/canvas/public/state/reducers/sidebar.ts @@ -0,0 +1,22 @@ +/* + * Copyright 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 { handleActions } from 'redux-actions'; +import { State } from '../../../types'; +import { SetGroupFiltersByOptionType, SetGroupFiltersByOptionPayload } from '../actions/sidebar'; + +export const sidebarReducer = handleActions( + { + [SetGroupFiltersByOptionType]: (transientState, { payload }) => { + return { + ...transientState, + sidebar: { ...transientState.sidebar, groupFiltersByOption: payload }, + }; + }, + }, + {} as State['transient'] +); diff --git a/x-pack/plugins/canvas/public/state/selectors/sidebar.ts b/x-pack/plugins/canvas/public/state/selectors/sidebar.ts new file mode 100644 index 0000000000000..637264a200b9a --- /dev/null +++ b/x-pack/plugins/canvas/public/state/selectors/sidebar.ts @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DEFAULT_GROUP_BY_FIELD } from '../../../common/lib'; +import { FilterField, State } from '../../../types'; + +export const getGroupFiltersByOption = (state: State): FilterField => { + return state.transient.sidebar.groupFiltersByOption ?? DEFAULT_GROUP_BY_FIELD; +}; diff --git a/x-pack/plugins/canvas/types/canvas.ts b/x-pack/plugins/canvas/types/canvas.ts index 0868054d0a489..efb121b2948af 100644 --- a/x-pack/plugins/canvas/types/canvas.ts +++ b/x-pack/plugins/canvas/types/canvas.ts @@ -6,6 +6,7 @@ */ import { ElementPosition } from './elements'; +import { FilterField } from './filters'; export interface CanvasAsset { '@created': string; @@ -44,6 +45,10 @@ export interface CanvasVariable { type: 'boolean' | 'number' | 'string'; } +export interface Sidebar { + groupFiltersByOption?: FilterField; +} + export interface CanvasWorkpad { '@created': string; '@timestamp': string; diff --git a/x-pack/plugins/canvas/types/filters.ts b/x-pack/plugins/canvas/types/filters.ts index 942e4259d780e..8529b37e40b1b 100644 --- a/x-pack/plugins/canvas/types/filters.ts +++ b/x-pack/plugins/canvas/types/filters.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { FC } from 'react'; import { ExpressionValueFilter } from '.'; export enum FilterType { @@ -31,3 +32,41 @@ export type CanvasExactlyFilter = ExpressionValueFilter & { }; export type CanvasFilter = CanvasTimeFilter | CanvasExactlyFilter | CanvasLuceneFilter; + +export interface Filter { + type: keyof typeof FilterType; + column: string | null; + value: unknown; + filterGroup: string | null; +} + +export type ComplexFilterViewField = ( + value: FilterValue +) => Record; + +export interface SimpleFilterViewField { + label: string; + formatter?: (value?: unknown) => string | null; + component?: FC; +} + +export interface FormattedFilterViewField { + label: string; + formattedValue: string; + component?: FC; +} + +export type FilterViewInstance = Record< + keyof Filter, + SimpleFilterViewField | ComplexFilterViewField +>; + +export interface FilterViewSpec { + name: string; + view: FilterViewInstance; +} + +export type FlattenFilterViewInstance = Record; +export type FormattedFilterViewInstance = Record; + +export type FilterField = 'column' | 'type' | 'filterGroup'; diff --git a/x-pack/plugins/canvas/types/state.ts b/x-pack/plugins/canvas/types/state.ts index a3c770f12f225..b283de1386f55 100644 --- a/x-pack/plugins/canvas/types/state.ts +++ b/x-pack/plugins/canvas/types/state.ts @@ -18,7 +18,7 @@ import { } from 'src/plugins/expressions'; import { Datasource, Model, Transform, View } from '../public/expression_types'; import { AssetType } from './assets'; -import { CanvasWorkpad } from './canvas'; +import { CanvasWorkpad, Sidebar } from './canvas'; export enum AppStateKeys { FULLSCREEN = '__fullscreen', @@ -75,7 +75,7 @@ export interface ResolvedArgType { expressionContext: ExpressionContext; } -interface TransientState { +export interface TransientState { canUserWrite: boolean; zoomScale: number; elementStats: ElementStatsType; @@ -90,6 +90,7 @@ interface TransientState { interval: number; }; inFlight: boolean; + sidebar: Sidebar; } interface PersistentState { diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 1a5335ef93e72..af76ea0e98276 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -8115,7 +8115,6 @@ "xpack.canvas.workpadConfig.pageSizeBadgeOnClickAriaLabel": "ページサイズを {sizeName} に設定", "xpack.canvas.workpadConfig.swapDimensionsAriaLabel": "ページの幅と高さを入れ替えます", "xpack.canvas.workpadConfig.swapDimensionsTooltip": "ページの幅と高さを入れ替える", - "xpack.canvas.workpadConfig.title": "ワークパッドの設定", "xpack.canvas.workpadConfig.USLetterButtonLabel": "US レター", "xpack.canvas.workpadConfig.widthLabel": "幅", "xpack.canvas.workpadCreate.createButtonLabel": "ワークパッドを作成", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 529b692e3552e..91513909af9c7 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -8178,7 +8178,6 @@ "xpack.canvas.workpadConfig.pageSizeBadgeOnClickAriaLabel": "将页面大小设置为 {sizeName}", "xpack.canvas.workpadConfig.swapDimensionsAriaLabel": "交换页面的宽和高", "xpack.canvas.workpadConfig.swapDimensionsTooltip": "交换宽高", - "xpack.canvas.workpadConfig.title": "Workpad 设置", "xpack.canvas.workpadConfig.USLetterButtonLabel": "美国信函", "xpack.canvas.workpadConfig.widthLabel": "宽", "xpack.canvas.workpadCreate.createButtonLabel": "创建 Workpad", From 8a16b849f26653ef7958f86f8d16e5047fe4fc5f Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Thu, 18 Nov 2021 09:30:36 +0100 Subject: [PATCH 022/114] Don't enable RUM agent if APM is run with contextPropagationOnly (#118685) * do not enable RUM agent when nodejs is run in contextPropagationOnly mode * move shouldInstrumentClient to apm-config package --- packages/kbn-apm-config-loader/src/index.ts | 1 + .../src/rum_agent_configuration.test.ts | 27 +++++++++++++++++++ .../src/rum_agent_configuration.ts | 14 ++++++++++ .../get_apm_config.test.mocks.ts | 2 ++ .../http_resources/get_apm_config.test.ts | 14 +++++----- .../server/http_resources/get_apm_config.ts | 4 +-- 6 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 packages/kbn-apm-config-loader/src/rum_agent_configuration.test.ts create mode 100644 packages/kbn-apm-config-loader/src/rum_agent_configuration.ts diff --git a/packages/kbn-apm-config-loader/src/index.ts b/packages/kbn-apm-config-loader/src/index.ts index b16f6dcfd418f..381eb895b7eec 100644 --- a/packages/kbn-apm-config-loader/src/index.ts +++ b/packages/kbn-apm-config-loader/src/index.ts @@ -8,4 +8,5 @@ export { getConfiguration } from './config_loader'; export { initApm } from './init_apm'; +export { shouldInstrumentClient } from './rum_agent_configuration'; export type { ApmConfiguration } from './config'; diff --git a/packages/kbn-apm-config-loader/src/rum_agent_configuration.test.ts b/packages/kbn-apm-config-loader/src/rum_agent_configuration.test.ts new file mode 100644 index 0000000000000..be4619578b5a4 --- /dev/null +++ b/packages/kbn-apm-config-loader/src/rum_agent_configuration.test.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { shouldInstrumentClient } from './rum_agent_configuration'; +describe('shouldInstrumentClient', () => { + it('returns false if apm is disabled', () => { + expect(shouldInstrumentClient({ active: false })).toBe(false); + }); + + it('returns false if apm is enabled with contextPropagationOnly: true', () => { + expect(shouldInstrumentClient({ active: true, contextPropagationOnly: true })).toBe(false); + }); + + it('returns false if apm is enabled with disableSend: true', () => { + expect(shouldInstrumentClient({ active: true, disableSend: true })).toBe(false); + }); + + it('returns true if apm is enabled', () => { + expect(shouldInstrumentClient({ active: true })).toBe(true); + expect(shouldInstrumentClient({ active: true, contextPropagationOnly: false })).toBe(true); + expect(shouldInstrumentClient({ active: true, disableSend: false })).toBe(true); + }); +}); diff --git a/packages/kbn-apm-config-loader/src/rum_agent_configuration.ts b/packages/kbn-apm-config-loader/src/rum_agent_configuration.ts new file mode 100644 index 0000000000000..5a73c95e21135 --- /dev/null +++ b/packages/kbn-apm-config-loader/src/rum_agent_configuration.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import type { AgentConfigOptions } from 'elastic-apm-node'; + +export function shouldInstrumentClient(config?: AgentConfigOptions): boolean { + return Boolean( + config?.active === true && config.contextPropagationOnly !== true && config.disableSend !== true + ); +} diff --git a/src/core/server/http_resources/get_apm_config.test.mocks.ts b/src/core/server/http_resources/get_apm_config.test.mocks.ts index 8c3fa180a04f0..03d1a2575ba53 100644 --- a/src/core/server/http_resources/get_apm_config.test.mocks.ts +++ b/src/core/server/http_resources/get_apm_config.test.mocks.ts @@ -7,8 +7,10 @@ */ export const getConfigurationMock = jest.fn(); +export const shouldInstrumentClientMock = jest.fn(() => true); jest.doMock('@kbn/apm-config-loader', () => ({ getConfiguration: getConfigurationMock, + shouldInstrumentClient: shouldInstrumentClientMock, })); export const agentMock = {} as Record; diff --git a/src/core/server/http_resources/get_apm_config.test.ts b/src/core/server/http_resources/get_apm_config.test.ts index bd867375f46d6..9552a91da97b1 100644 --- a/src/core/server/http_resources/get_apm_config.test.ts +++ b/src/core/server/http_resources/get_apm_config.test.ts @@ -6,7 +6,11 @@ * Side Public License, v 1. */ -import { getConfigurationMock, agentMock } from './get_apm_config.test.mocks'; +import { + getConfigurationMock, + agentMock, + shouldInstrumentClientMock, +} from './get_apm_config.test.mocks'; import { getApmConfig } from './get_apm_config'; const defaultApmConfig = { @@ -17,6 +21,7 @@ const defaultApmConfig = { describe('getApmConfig', () => { beforeEach(() => { getConfigurationMock.mockReturnValue(defaultApmConfig); + shouldInstrumentClientMock.mockReturnValue(true); }); afterEach(() => { @@ -25,12 +30,7 @@ describe('getApmConfig', () => { }); it('returns null if apm is disabled', () => { - getConfigurationMock.mockReturnValue({ - active: false, - }); - expect(getApmConfig('/path')).toBeNull(); - - getConfigurationMock.mockReturnValue(undefined); + shouldInstrumentClientMock.mockReturnValue(false); expect(getApmConfig('/path')).toBeNull(); }); diff --git a/src/core/server/http_resources/get_apm_config.ts b/src/core/server/http_resources/get_apm_config.ts index 6ea172b162d28..3e7be65f96652 100644 --- a/src/core/server/http_resources/get_apm_config.ts +++ b/src/core/server/http_resources/get_apm_config.ts @@ -7,11 +7,11 @@ */ import agent from 'elastic-apm-node'; -import { getConfiguration } from '@kbn/apm-config-loader'; +import { getConfiguration, shouldInstrumentClient } from '@kbn/apm-config-loader'; export const getApmConfig = (requestPath: string) => { const baseConfig = getConfiguration('kibana-frontend'); - if (!baseConfig?.active) { + if (!shouldInstrumentClient(baseConfig)) { return null; } From e4621fddf92cfde2fe065ae4789db5241edf438c Mon Sep 17 00:00:00 2001 From: vladpro25 <91911546+vladpro25@users.noreply.github.com> Date: Thu, 18 Nov 2021 10:32:00 +0200 Subject: [PATCH 023/114] [Console] Add overrides for request parameters for Logstash PUT Pipeline API (#116450) * Autostuggestion for geo_* added... * Autostuggestion for geo_* added * Add overrides for request parameters for Logstash PUT Pipeline API * Add overrides for request parameters for Logstash PUT Pipeline API * Add overrides for request parameters for Logstash PUT Pipeline API * Add overrides for request parameters for Logstash PUT Pipeline API Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../json/overrides/logstash.put_pipeline.json | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/plugins/console/server/lib/spec_definitions/json/overrides/logstash.put_pipeline.json diff --git a/src/plugins/console/server/lib/spec_definitions/json/overrides/logstash.put_pipeline.json b/src/plugins/console/server/lib/spec_definitions/json/overrides/logstash.put_pipeline.json new file mode 100644 index 0000000000000..224def4d5bf13 --- /dev/null +++ b/src/plugins/console/server/lib/spec_definitions/json/overrides/logstash.put_pipeline.json @@ -0,0 +1,66 @@ +{ + "logstash.put_pipeline": { + "data_autocomplete_rules": { + "__template": { + "last_modified": "", + "pipeline": "", + "pipeline_metadata": {}, + "pipeline_settings": {}, + "username": "" + }, + "last_modified": "", + "pipeline_metadata": {}, + "username": "", + "pipeline": "", + "pipeline_settings": { + "pipeline.id": "main", + "pipeline.workers": 0, + "pipeline.batch.size": 125, + "pipeline.batch.delay": 50, + "pipeline.unsafe_shutdown": false, + "pipeline.plugin_classloaders": false, + "pipeline.ordered": "auto", + "pipeline.ecs_compatibility": "disabled", + "pipeline.separate_logs": false, + "queue.type": "memory", + "queue.page_capacity": "64mb", + "queue.max_events": 0, + "queue.max_bytes": "1024mb", + "queue.checkpoint.acks": 1024, + "queue.checkpoint.writes": 1024, + "queue.checkpoint.retry": false, + "queue.max_bytes.number": 0, + "queue.max_bytes.units": "", + "queue.drain": false, + "api.enabled": true, + "api.environment": "production", + "api.http.host": "127.0.0.1", + "api.http.port": "9600-9700", + "api.ssl.enabled": false, + "api.ssl.keystore.path": "", + "api.ssl.keystore.password": "", + "api.auth.type": "none", + "api.auth.basic.username": "", + "api.auth.basic.password": "", + "log.level": "info", + "log.format": "plain", + "path.logs": "LOGSTASH_HOME/logs", + "path.plugins": "PATH/logstash/TYPE/NAME.rb", + "path.queue": "path.data/queue", + "path.data": "LOGSTASH_HOME/data", + "path.config": "/usr/share/logstash/pipeline", + "path.dead_letter_queue": "path.data/dead_letter_queue", + "dead_letter_queue.max_bytes": "1024mb", + "dead_letter_queue.enable": false, + "config.support_escapes": false, + "config.debug": false, + "config.reload.interval": "3s", + "config.reload.automatic": false, + "config.test_and_exit": false, + "config.string": "", + "node.name": "" + }, + "description": "" + } + } +} \ No newline at end of file From 3ec4503be704b60f8c8335b1fce53016e815ae39 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Thu, 18 Nov 2021 09:36:24 +0100 Subject: [PATCH 024/114] add `theme$` to `ManagementAppMountParams` (#118852) * add `theme$` to `ManagementAppMountParams` * fix tests * fix more test usages Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- src/plugins/management/public/application.tsx | 9 +++++++-- .../components/management_app/management_app.tsx | 4 +++- .../components/management_app/management_router.tsx | 11 ++++++++++- .../management_app_wrapper/management_app_wrapper.tsx | 4 +++- src/plugins/management/public/types.ts | 4 +++- .../api_keys/api_keys_management_app.test.tsx | 3 ++- .../role_mappings_management_app.test.tsx | 3 ++- .../management/roles/roles_management_app.test.tsx | 3 ++- .../management/users/users_management_app.test.tsx | 3 ++- .../public/management/spaces_management_app.test.tsx | 3 ++- 10 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/plugins/management/public/application.tsx b/src/plugins/management/public/application.tsx index 8e3e7da41c394..3e2c4f7c04e40 100644 --- a/src/plugins/management/public/application.tsx +++ b/src/plugins/management/public/application.tsx @@ -13,11 +13,16 @@ import { AppMountParameters } from 'kibana/public'; import { ManagementApp, ManagementAppDependencies } from './components/management_app'; export const renderApp = async ( - { history, appBasePath, element }: AppMountParameters, + { history, appBasePath, element, theme$ }: AppMountParameters, dependencies: ManagementAppDependencies ) => { ReactDOM.render( - , + , element ); diff --git a/src/plugins/management/public/components/management_app/management_app.tsx b/src/plugins/management/public/components/management_app/management_app.tsx index 23d0a29083747..ac9739cc54578 100644 --- a/src/plugins/management/public/components/management_app/management_app.tsx +++ b/src/plugins/management/public/components/management_app/management_app.tsx @@ -25,6 +25,7 @@ import { SectionsServiceStart } from '../../types'; interface ManagementAppProps { appBasePath: string; history: AppMountParameters['history']; + theme$: AppMountParameters['theme$']; dependencies: ManagementAppDependencies; } @@ -34,7 +35,7 @@ export interface ManagementAppDependencies { setBreadcrumbs: (newBreadcrumbs: ChromeBreadcrumb[]) => void; } -export const ManagementApp = ({ dependencies, history }: ManagementAppProps) => { +export const ManagementApp = ({ dependencies, history, theme$ }: ManagementAppProps) => { const { setBreadcrumbs } = dependencies; const [selectedId, setSelectedId] = useState(''); const [sections, setSections] = useState(); @@ -93,6 +94,7 @@ export const ManagementApp = ({ dependencies, history }: ManagementAppProps) => > void; onAppMounted: (id: string) => void; @@ -23,7 +24,14 @@ interface ManagementRouterProps { } export const ManagementRouter = memo( - ({ dependencies, history, setBreadcrumbs, onAppMounted, sections }: ManagementRouterProps) => ( + ({ + dependencies, + history, + setBreadcrumbs, + onAppMounted, + sections, + theme$, + }: ManagementRouterProps) => ( {sections.map((section) => @@ -38,6 +46,7 @@ export const ManagementRouter = memo( setBreadcrumbs={setBreadcrumbs} onAppMounted={onAppMounted} history={history} + theme$={theme$} /> )} /> diff --git a/src/plugins/management/public/components/management_app_wrapper/management_app_wrapper.tsx b/src/plugins/management/public/components/management_app_wrapper/management_app_wrapper.tsx index 72bfe609c141a..57de84ec5aec6 100644 --- a/src/plugins/management/public/components/management_app_wrapper/management_app_wrapper.tsx +++ b/src/plugins/management/public/components/management_app_wrapper/management_app_wrapper.tsx @@ -19,6 +19,7 @@ interface ManagementSectionWrapperProps { setBreadcrumbs: (crumbs?: ChromeBreadcrumb[], history?: ScopedHistory) => void; onAppMounted: (id: string) => void; history: AppMountParameters['history']; + theme$: AppMountParameters['theme$']; } export class ManagementAppWrapper extends Component { @@ -26,7 +27,7 @@ export class ManagementAppWrapper extends Component(); componentDidMount() { - const { setBreadcrumbs, app, onAppMounted, history } = this.props; + const { setBreadcrumbs, app, onAppMounted, history, theme$ } = this.props; const { mount, basePath } = app; const appHistory = history.createSubHistory(app.basePath); @@ -35,6 +36,7 @@ export class ManagementAppWrapper extends Component setBreadcrumbs(crumbs, appHistory), element: this.mountElementRef.current!, history: appHistory, + theme$, }); onAppMounted(app.id); diff --git a/src/plugins/management/public/types.ts b/src/plugins/management/public/types.ts index 6a165c812b474..87b336928db91 100644 --- a/src/plugins/management/public/types.ts +++ b/src/plugins/management/public/types.ts @@ -6,10 +6,11 @@ * Side Public License, v 1. */ +import { Observable } from 'rxjs'; import { ScopedHistory, Capabilities } from 'kibana/public'; import type { LocatorPublic } from 'src/plugins/share/common'; import { ManagementSection, RegisterManagementSectionArgs } from './utils'; -import { ChromeBreadcrumb } from '../../../core/public/'; +import { ChromeBreadcrumb, CoreTheme } from '../../../core/public/'; import type { ManagementAppLocatorParams } from '../common/locator'; export interface ManagementSetup { @@ -63,6 +64,7 @@ export interface ManagementAppMountParams { element: HTMLElement; // element the section should render into setBreadcrumbs: (crumbs: ChromeBreadcrumb[]) => void; history: ScopedHistory; + theme$: Observable; } export interface CreateManagementItemArgs { diff --git a/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx b/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx index 922fd59c56d1b..83fe807f9a3c6 100644 --- a/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx @@ -11,7 +11,7 @@ jest.mock('./api_keys_grid', () => ({ import { act } from '@testing-library/react'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { securityMock } from '../../mocks'; @@ -52,6 +52,7 @@ describe('apiKeysManagementApp', () => { element: container, setBreadcrumbs, history: scopedHistoryMock.create(), + theme$: themeServiceMock.createTheme$(), }); }); diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx index 892c7940675d3..3b7e96ffabd1e 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx @@ -8,7 +8,7 @@ import { act } from '@testing-library/react'; import { noop } from 'lodash'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { roleMappingsManagementApp } from './role_mappings_management_app'; @@ -46,6 +46,7 @@ async function mountApp(basePath: string, pathname: string) { element: container, setBreadcrumbs, history: scopedHistoryMock.create({ pathname }), + theme$: themeServiceMock.createTheme$(), }); }); diff --git a/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx b/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx index faab47a858d67..007c3e306372e 100644 --- a/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx @@ -8,7 +8,7 @@ import { act } from '@testing-library/react'; import { noop } from 'lodash'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { featuresPluginMock } from '../../../../features/public/mocks'; @@ -48,6 +48,7 @@ async function mountApp(basePath: string, pathname: string) { element: container, setBreadcrumbs, history: scopedHistoryMock.create({ pathname }), + theme$: themeServiceMock.createTheme$(), }); }); diff --git a/x-pack/plugins/security/public/management/users/users_management_app.test.tsx b/x-pack/plugins/security/public/management/users/users_management_app.test.tsx index f25fb211cb9de..84a6e82bf12ae 100644 --- a/x-pack/plugins/security/public/management/users/users_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/users/users_management_app.test.tsx @@ -8,7 +8,7 @@ import { act } from '@testing-library/react'; import { noop } from 'lodash'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { securityMock } from '../../mocks'; @@ -33,6 +33,7 @@ describe('usersManagementApp', () => { element, setBreadcrumbs, history, + theme$: themeServiceMock.createTheme$(), }); }); diff --git a/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx b/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx index aefff7fb3c76a..2c64f559602cc 100644 --- a/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx +++ b/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx @@ -18,7 +18,7 @@ jest.mock('./edit_space', () => ({ }, })); -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import { featuresPluginMock } from '../../../features/public/mocks'; import type { PluginsStart } from '../plugin'; @@ -51,6 +51,7 @@ async function mountApp(basePath: string, pathname: string, spaceId?: string) { element: container, setBreadcrumbs, history: scopedHistoryMock.create({ pathname }), + theme$: themeServiceMock.createTheme$(), }); return { unmount, container, setBreadcrumbs, docTitle: coreStart.chrome.docTitle }; From 279d093277d0fbd37aedd6b26d2a72fb7d4b2268 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Thu, 18 Nov 2021 00:36:46 -0800 Subject: [PATCH 025/114] Fixes index pattern link in doc link service (#118748) --- src/core/public/doc_links/doc_links_service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index a9330ce499cac..6b6ceeddee68e 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -156,7 +156,7 @@ export class DocLinksService { luceneExpressions: `${ELASTICSEARCH_DOCS}modules-scripting-expression.html`, }, indexPatterns: { - introduction: `${KIBANA_DOCS}index-patterns.html`, + introduction: `${KIBANA_DOCS}data-views.html`, fieldFormattersNumber: `${KIBANA_DOCS}numeral.html`, fieldFormattersString: `${KIBANA_DOCS}field-formatters-string.html`, runtimeFields: `${KIBANA_DOCS}managing-data-views.html#runtime-fields`, From b68e8c9e4a5d563df9959c2347ba79ec956593b0 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Thu, 18 Nov 2021 10:53:47 +0100 Subject: [PATCH 026/114] [Exploratory view] Update discover dependency (#117500) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../build_filters/query_string_filter.ts | 1 + x-pack/plugins/observability/kibana.json | 1 + .../exploratory_view/configurations/utils.ts | 67 +++++++++++++++---- .../hooks/use_discover_link.tsx | 56 ++++++++-------- .../columns/report_definition_field.tsx | 4 +- .../series_editor/columns/series_actions.tsx | 7 +- 6 files changed, 93 insertions(+), 43 deletions(-) diff --git a/packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts b/packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts index a18347c77cfc9..69f10efd97d66 100644 --- a/packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts +++ b/packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts @@ -16,6 +16,7 @@ export type QueryStringFilter = Filter & { query?: { query_string?: { query: string; + fields?: string[]; }; }; }; diff --git a/x-pack/plugins/observability/kibana.json b/x-pack/plugins/observability/kibana.json index 822e0cf9efe7c..343e16f4a4095 100644 --- a/x-pack/plugins/observability/kibana.json +++ b/x-pack/plugins/observability/kibana.json @@ -11,6 +11,7 @@ "observability" ], "optionalPlugins": [ + "discover", "embeddable", "home", "lens", diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts index 56e6cb5210356..7eab266ea35d1 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts @@ -5,10 +5,15 @@ * 2.0. */ import rison, { RisonValue } from 'rison-node'; +import { buildQueryFilter } from '@kbn/es-query'; import type { ReportViewType, SeriesUrl, UrlFilter } from '../types'; import type { AllSeries, AllShortSeries } from '../hooks/use_series_storage'; import { IndexPattern } from '../../../../../../../../src/plugins/data/common'; -import { esFilters, ExistsFilter } from '../../../../../../../../src/plugins/data/public'; +import { + esFilters, + ExistsFilter, + PhraseFilter, +} from '../../../../../../../../src/plugins/data/public'; import { URL_KEYS } from './constants/url_constants'; import { PersistableFilter } from '../../../../../../lens/common'; @@ -64,9 +69,32 @@ export function buildPhraseFilter(field: string, value: string, indexPattern: In return []; } +export function getQueryFilter(field: string, value: string[], indexPattern: IndexPattern) { + const fieldMeta = indexPattern?.fields.find((fieldT) => fieldT.name === field); + if (fieldMeta && indexPattern.id) { + return value.map((val) => + buildQueryFilter( + { + query_string: { + fields: [field], + query: `*${val}*`, + }, + }, + indexPattern.id!, + '' + ) + ); + } + + return []; +} + export function buildPhrasesFilter(field: string, value: string[], indexPattern: IndexPattern) { const fieldMeta = indexPattern?.fields.find((fieldT) => fieldT.name === field); if (fieldMeta) { + if (value.length === 1) { + return [esFilters.buildPhraseFilter(fieldMeta, value[0], indexPattern)]; + } return [esFilters.buildPhrasesFilter(fieldMeta, value, indexPattern)]; } return []; @@ -80,7 +108,7 @@ export function buildExistsFilter(field: string, indexPattern: IndexPattern) { return []; } -type FiltersType = PersistableFilter[] | ExistsFilter[]; +type FiltersType = Array; export function urlFilterToPersistedFilter({ urlFilters, @@ -88,23 +116,36 @@ export function urlFilterToPersistedFilter({ indexPattern, }: { urlFilters: UrlFilter[]; - initFilters: FiltersType; + initFilters?: FiltersType; indexPattern: IndexPattern; }) { const parsedFilters: FiltersType = initFilters ? [...initFilters] : []; - urlFilters.forEach(({ field, values = [], notValues = [] }) => { - if (values?.length > 0) { - const filter = buildPhrasesFilter(field, values, indexPattern); - parsedFilters.push(...filter); - } + urlFilters.forEach( + ({ field, values = [], notValues = [], wildcards = [], notWildcards = ([] = []) }) => { + if (values.length > 0) { + const filter = buildPhrasesFilter(field, values, indexPattern); + parsedFilters.push(...filter); + } + + if (notValues.length > 0) { + const filter = buildPhrasesFilter(field, notValues, indexPattern)[0]; + filter.meta.negate = true; + parsedFilters.push(filter); + } - if (notValues?.length > 0) { - const filter = buildPhrasesFilter(field, notValues, indexPattern)[0]; - filter.meta.negate = true; - parsedFilters.push(filter); + if (wildcards.length > 0) { + const filter = getQueryFilter(field, wildcards, indexPattern); + parsedFilters.push(...filter); + } + + if (notWildcards.length > 0) { + const filter = getQueryFilter(field, notWildcards, indexPattern)[0]; + filter.meta.negate = true; + parsedFilters.push(filter); + } } - }); + ); return parsedFilters; } diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx index 4f19a8131f669..03396ffef9d8d 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx @@ -9,7 +9,7 @@ import { useCallback, useEffect, useState } from 'react'; import { useKibana } from '../../../../utils/kibana_react'; import { SeriesConfig, SeriesUrl } from '../types'; import { useAppIndexPatternContext } from './use_app_index_pattern'; -import { buildExistsFilter, buildPhraseFilter, buildPhrasesFilter } from '../configurations/utils'; +import { buildExistsFilter, urlFilterToPersistedFilter } from '../configurations/utils'; import { getFiltersFromDefs } from './use_lens_attributes'; import { RECORDS_FIELD, RECORDS_PERCENTAGE_FIELD } from '../configurations/constants'; @@ -32,42 +32,42 @@ export const useDiscoverLink = ({ series, seriesConfig }: UseDiscoverLink) => { useEffect(() => { const indexPattern = indexPatterns?.[series.dataType]; - const definitions = series.reportDefinitions ?? {}; - const filters = [...(seriesConfig?.baseFilters ?? [])]; + if (indexPattern) { + const definitions = series.reportDefinitions ?? {}; - const definitionFilters = getFiltersFromDefs(definitions); + const urlFilters = (series.filters ?? []).concat(getFiltersFromDefs(definitions)); - definitionFilters.forEach(({ field, values = [] }) => { - if (values.length > 1) { - filters.push(buildPhrasesFilter(field, values, indexPattern)[0]); - } else { - filters.push(buildPhraseFilter(field, values[0], indexPattern)[0]); - } - }); + const filters = urlFilterToPersistedFilter({ + indexPattern, + urlFilters, + initFilters: seriesConfig?.baseFilters, + }); - const selectedMetricField = series.selectedMetricField; + const selectedMetricField = series.selectedMetricField; - if ( - selectedMetricField && - selectedMetricField !== RECORDS_FIELD && - selectedMetricField !== RECORDS_PERCENTAGE_FIELD - ) { - filters.push(buildExistsFilter(selectedMetricField, indexPattern)[0]); - } + if ( + selectedMetricField && + selectedMetricField !== RECORDS_FIELD && + selectedMetricField !== RECORDS_PERCENTAGE_FIELD + ) { + filters.push(buildExistsFilter(selectedMetricField, indexPattern)[0]); + } - const getDiscoverUrl = async () => { - if (!urlGenerator?.createUrl) return; + const getDiscoverUrl = async () => { + if (!urlGenerator?.createUrl) return; - const newUrl = await urlGenerator.createUrl({ - filters, - indexPatternId: indexPattern?.id, - }); - setDiscoverUrl(newUrl); - }; - getDiscoverUrl(); + const newUrl = await urlGenerator.createUrl({ + filters, + indexPatternId: indexPattern?.id, + }); + setDiscoverUrl(newUrl); + }; + getDiscoverUrl(); + } }, [ indexPatterns, series.dataType, + series.filters, series.reportDefinitions, series.selectedMetricField, seriesConfig?.baseFilters, diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx index f3e0eb767d336..2808dfae83527 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx @@ -66,7 +66,9 @@ export function ReportDefinitionField({ const values = selectedReportDefinitions?.[fieldT]; if (!values.includes(ALL_VALUES_SELECTED)) { const valueFilter = buildPhrasesFilter(fieldT, values, indexPattern)[0]; - filtersN.push(valueFilter.query); + if (valueFilter.query) { + filtersN.push(valueFilter.query); + } } } }); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx index c1462ce74b426..640e928b8ab98 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx @@ -12,6 +12,7 @@ import { RemoveSeries } from './remove_series'; import { useSeriesStorage } from '../../hooks/use_series_storage'; import { SeriesConfig, SeriesUrl } from '../../types'; import { useDiscoverLink } from '../../hooks/use_discover_link'; +import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; interface Props { seriesId: number; @@ -25,6 +26,10 @@ export function SeriesActions({ seriesId, series, seriesConfig, onEditClick }: P const { href: discoverHref } = useDiscoverLink({ series, seriesConfig }); + const { indexPatterns } = useAppIndexPatternContext(); + + const indexPattern = indexPatterns?.[series.dataType]; + const copySeries = () => { let copySeriesId: string = `${series.name}-copy`; if (allSeries.find(({ name }) => name === copySeriesId)) { @@ -63,7 +68,7 @@ export function SeriesActions({ seriesId, series, seriesConfig, onEditClick }: P color="text" target="_blank" href={discoverHref} - isDisabled={!series.dataType || !series.selectedMetricField} + isDisabled={!series.dataType || !series.selectedMetricField || !indexPattern} /> From f1125821f55fc24e9985eb1732fe4cf1a9c33dcd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Nov 2021 05:48:41 -0500 Subject: [PATCH 027/114] Update dependency @elastic/charts to v39.0.2 (#118895) Co-authored-by: Renovate Bot --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d1639068c1cd4..ca2cb27076c7a 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ "@elastic/apm-rum": "^5.9.1", "@elastic/apm-rum-react": "^1.3.1", "@elastic/apm-synthtrace": "link:bazel-bin/packages/elastic-apm-synthtrace", - "@elastic/charts": "39.0.1", + "@elastic/charts": "39.0.2", "@elastic/datemath": "link:bazel-bin/packages/elastic-datemath", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@^8.0.0-canary.35", "@elastic/ems-client": "8.0.0", diff --git a/yarn.lock b/yarn.lock index 9f661aca62673..de6ee06e53975 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1623,10 +1623,10 @@ dependencies: object-hash "^1.3.0" -"@elastic/charts@39.0.1": - version "39.0.1" - resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-39.0.1.tgz#7891d6efb3a12eb73fcb57d9a1f71565c22f4501" - integrity sha512-k64+vrfRkP7Gn8+T0Vtdev/DKpy6G+M9H6OFQcf1fgXAd7qOnTXVaN4Ru+BRTPylTFwxf9pqHraz8Ayi+3VpjA== +"@elastic/charts@39.0.2": + version "39.0.2" + resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-39.0.2.tgz#5533fc57c4ceed4c5ae826cd9a13c55cc03c55e5" + integrity sha512-jjdZSV6PGKsjA2qDAwEw+SjHWq5/Rm9FQk9lrmxrX+0rc7TlsPyr840RT1BAfkDDoo8+o3WWbfg+r61Y0FQ1Pg== dependencies: "@popperjs/core" "^2.4.0" chroma-js "^2.1.0" From 3004e762b3b8751ea6728258ec06a4101195391e Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 18 Nov 2021 12:45:39 +0000 Subject: [PATCH 028/114] skip flaky suites (#118921) --- x-pack/test/examples/search_examples/search_session_example.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/examples/search_examples/search_session_example.ts b/x-pack/test/examples/search_examples/search_session_example.ts index ab96a7767baff..e6261f69e14f6 100644 --- a/x-pack/test/examples/search_examples/search_session_example.ts +++ b/x-pack/test/examples/search_examples/search_session_example.ts @@ -15,7 +15,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const es = getService('es'); const searchSessions = getService('searchSessions'); - describe('Search session example', () => { + // FLAKY: https://github.com/elastic/kibana/issues/118921 + describe.skip('Search session example', () => { const appId = 'searchExamples'; before(async function () { From f7d7a344e358d0d24ae05f43bebe3a0296d2a839 Mon Sep 17 00:00:00 2001 From: Kate Patticha Date: Thu, 18 Nov 2021 13:48:04 +0100 Subject: [PATCH 029/114] [APM] Improve server file structure by colocating files related to the route (#118649) * [APM] Improve server file structure by colocate files related to the route * [APM] co-locate the rest of files * Fix unit test * Remove obsolete code * Fix broken paths in tests --- .../plugins/apm/server/deprecations/index.ts | 2 +- .../collect_data_telemetry/index.ts | 2 +- .../collect_data_telemetry/tasks.test.ts | 2 +- .../apm/server/lib/apm_telemetry/index.ts | 2 +- .../create_apm_event_client/index.ts | 2 +- .../unpack_processor_events.test.ts | 2 +- .../unpack_processor_events.ts | 2 +- .../server/lib/helpers/setup_request.test.ts | 6 +- .../apm/server/lib/helpers/setup_request.ts | 2 +- x-pack/plugins/apm/server/plugin.ts | 10 ++-- .../projections/rum_page_load_transactions.ts | 4 +- .../alerts/action_variables.ts | 0 .../alerts/alerting_es_client.ts | 0 .../chart_preview/get_transaction_duration.ts | 6 +- .../get_transaction_error_count.ts | 4 +- .../get_transaction_error_rate.ts | 8 +-- .../alerts/register_apm_alerts.ts | 0 .../register_error_count_alert_type.test.ts | 0 .../alerts/register_error_count_alert_type.ts | 2 +- ...er_transaction_duration_alert_type.test.ts | 0 ...egister_transaction_duration_alert_type.ts | 4 +- ...action_duration_anomaly_alert_type.test.ts | 0 ...transaction_duration_anomaly_alert_type.ts | 0 ..._transaction_error_rate_alert_type.test.ts | 0 ...ister_transaction_error_rate_alert_type.ts | 4 +- .../alerts/{chart_preview.ts => route.ts} | 6 +- .../alerts/test_utils/index.ts | 0 .../get_global_apm_server_route_repository.ts | 46 +++++++------- .../field_stats/get_boolean_field_stats.ts | 0 .../field_stats/get_field_stats.test.ts | 0 .../queries/field_stats/get_fields_stats.ts | 0 .../field_stats/get_keyword_field_stats.ts | 0 .../field_stats/get_numeric_field_stats.ts | 0 .../correlations/queries/get_filters.ts | 0 .../queries/get_query_with_params.test.ts | 0 .../queries/get_query_with_params.ts | 0 .../queries/get_request_base.test.ts | 0 .../correlations/queries/get_request_base.ts | 0 .../correlations/queries/index.ts | 0 .../queries/query_correlation.test.ts | 0 .../correlations/queries/query_correlation.ts | 0 .../query_correlation_with_histogram.test.ts | 0 .../query_correlation_with_histogram.ts | 0 .../queries/query_failure_correlation.ts | 0 .../queries/query_field_candidates.test.ts | 0 .../queries/query_field_candidates.ts | 0 .../queries/query_field_value_pairs.test.ts | 0 .../queries/query_field_value_pairs.ts | 0 .../queries/query_fractions.test.ts | 0 .../correlations/queries/query_fractions.ts | 0 .../queries/query_histogram.test.ts | 0 .../correlations/queries/query_histogram.ts | 0 .../query_histogram_range_steps.test.ts | 0 .../queries/query_histogram_range_steps.ts | 0 .../correlations/queries/query_p_values.ts | 0 .../queries/query_percentiles.test.ts | 0 .../correlations/queries/query_percentiles.ts | 0 .../correlations/queries/query_ranges.test.ts | 0 .../correlations/queries/query_ranges.ts | 0 .../queries/query_significant_correlations.ts | 0 .../route.ts} | 16 ++--- .../compute_expectations_and_ranges.test.ts | 0 .../utils/compute_expectations_and_ranges.ts | 0 .../correlations/utils/field_stats_utils.ts | 0 .../correlations/utils/index.ts | 0 .../utils/split_all_settled_promises.ts | 0 .../data_view/create_static_data_view.test.ts | 4 +- .../data_view/create_static_data_view.ts | 4 +- .../data_view/get_apm_data_view_title.test.ts | 0 .../data_view/get_apm_data_view_title.ts | 0 .../data_view/get_dynamic_data_view.ts | 0 .../{data_view.ts => data_view/route.ts} | 10 ++-- .../get_all_environments.test.ts.snap | 0 .../get_environments.test.ts.snap | 0 .../environments/get_all_environments.test.ts | 0 .../environments/get_all_environments.ts | 4 +- .../environments/get_environments.test.ts | 0 .../environments/get_environments.ts | 4 +- .../route.ts} | 14 ++--- .../errors/__snapshots__/queries.test.ts.snap | 0 .../__snapshots__/get_buckets.test.ts.snap | 0 .../__snapshots__/queries.test.ts.snap | 0 .../errors/distribution/get_buckets.test.ts | 0 .../errors/distribution/get_buckets.ts | 2 +- .../errors/distribution/get_distribution.ts | 2 +- .../errors/distribution/queries.test.ts | 0 .../errors/get_error_group_sample.ts | 2 +- .../errors/get_error_groups.ts | 4 +- .../{lib => routes}/errors/queries.test.ts | 0 .../routes/{errors.ts => errors/route.ts} | 14 ++--- .../event_metadata/get_event_metadata.ts | 2 +- .../route.ts} | 10 ++-- .../route.ts} | 10 ++-- .../fleet/create_cloud_apm_package_policy.ts | 2 +- .../{lib => routes}/fleet/get_agents.ts | 2 +- .../fleet/get_apm_package_policies.ts | 2 +- .../get_apm_package_policy_definition.test.ts | 0 .../get_apm_package_policy_definition.ts | 0 .../fleet/get_cloud_apm_package_policy.ts | 0 .../get_unsupported_apm_server_schema.test.ts | 0 .../get_unsupported_apm_server_schema.ts | 0 .../{lib => routes}/fleet/is_superuser.ts | 0 .../fleet/merge_package_policy_with_apm.ts | 2 +- .../fleet/register_fleet_policy_callbacks.ts | 2 +- .../routes/{fleet.ts => fleet/route.ts} | 22 +++---- .../{lib => routes}/fleet/source_maps.test.ts | 0 .../{lib => routes}/fleet/source_maps.ts | 2 +- ...c_agent_configs_to_apm_package_policies.ts | 6 +- .../get_overall_latency_distribution.ts | 0 .../get_percentile_threshold_value.ts | 0 .../route.ts} | 10 ++-- .../latency_distribution}/types.ts | 2 +- .../__snapshots__/queries.test.ts.snap | 0 .../metrics/by_agent/default.ts | 2 +- .../gc/fetch_and_transform_gc_metrics.test.ts | 2 +- .../java/gc/fetch_and_transform_gc_metrics.ts | 6 +- .../by_agent/java/gc/get_gc_rate_chart.ts | 2 +- .../by_agent/java/gc/get_gc_time_chart.ts | 2 +- .../by_agent/java/heap_memory/index.ts | 2 +- .../metrics/by_agent/java/index.ts | 2 +- .../by_agent/java/non_heap_memory/index.ts | 2 +- .../by_agent/java/thread_count/index.ts | 2 +- .../metrics/by_agent/shared/cpu/index.ts | 2 +- .../metrics/by_agent/shared/memory/index.ts | 2 +- .../metrics/fetch_and_transform_metrics.ts | 6 +- .../get_metrics_chart_data_by_agent.ts | 2 +- .../{lib => routes}/metrics/queries.test.ts | 0 .../routes/{metrics.ts => metrics/route.ts} | 10 ++-- .../server/{lib => routes}/metrics/types.ts | 0 .../get_service_count.ts | 4 +- .../get_transactions_per_minute.ts | 6 +- .../observability_overview/has_data.ts | 2 +- .../route.ts} | 18 +++--- .../__snapshots__/queries.test.ts.snap | 0 .../rum_client/get_client_metrics.ts | 2 +- .../rum_client/get_js_errors.ts | 2 +- .../rum_client/get_long_task_metrics.ts | 2 +- .../rum_client/get_page_load_distribution.ts | 2 +- .../rum_client/get_page_view_trends.ts | 2 +- .../rum_client/get_pl_dist_breakdown.ts | 2 +- .../rum_client/get_rum_services.ts | 2 +- .../rum_client/get_url_search.ts | 2 +- .../rum_client/get_visitor_breakdown.ts | 2 +- .../rum_client/get_web_core_vitals.ts | 2 +- .../rum_client/has_rum_data.ts | 2 +- .../rum_client/queries.test.ts | 0 .../{rum_client.ts => rum_client/route.ts} | 34 +++++------ .../ui_filters/get_es_filter.test.ts | 0 .../rum_client/ui_filters/get_es_filter.ts | 0 .../fetch_service_paths_from_trace_ids.ts | 2 +- .../service_map/get_service_anomalies.ts | 4 +- .../service_map/get_service_map.ts | 4 +- .../get_service_map_backend_node_info.ts | 4 +- .../get_service_map_from_trace_ids.test.ts | 0 .../get_service_map_from_trace_ids.ts | 2 +- .../get_service_map_service_node_info.test.ts | 4 +- .../get_service_map_service_node_info.ts | 6 +- .../service_map/get_trace_sample_ids.ts | 2 +- .../service_map/group_resource_nodes.test.ts | 0 .../service_map/group_resource_nodes.ts | 0 .../group_resource_nodes_grouped.json | 0 .../group_resource_nodes_pregrouped.json | 0 .../{service_map.ts => service_map/route.ts} | 22 +++---- .../transform_service_map_responses.test.ts | 0 .../transform_service_map_responses.ts | 0 .../__snapshots__/queries.test.ts.snap | 0 .../service_nodes/get_service_nodes.ts} | 2 +- .../service_nodes/queries.test.ts | 2 +- .../route.ts} | 12 ++-- .../__snapshots__/queries.test.ts.snap | 0 .../__fixtures__/multiple_versions.json | 0 .../annotations/__fixtures__/no_versions.json | 0 .../annotations/__fixtures__/one_version.json | 0 .../__fixtures__/versions_first_seen.json | 0 .../get_derived_service_annotations.ts | 4 +- .../annotations/get_stored_annotations.ts | 0 .../services/annotations/index.test.ts | 0 .../services/annotations/index.ts | 2 +- .../services/get_service_agent.ts | 2 +- .../services/get_service_alerts.ts | 0 .../services/get_service_dependencies.ts | 6 +- .../get_service_dependencies_breakdown.ts | 4 +- ...service_error_group_detailed_statistics.ts | 4 +- ...get_service_error_group_main_statistics.ts | 4 +- .../get_service_error_groups/index.ts | 6 +- .../services/get_service_infrastructure.ts | 2 +- .../get_service_instance_metadata_details.ts | 4 +- .../detailed_statistics.ts | 2 +- ...vice_instances_system_metric_statistics.ts | 4 +- ...ervice_instances_transaction_statistics.ts | 10 ++-- .../get_service_instances/main_statistics.ts | 2 +- .../services/get_service_metadata_details.ts | 4 +- .../services/get_service_metadata_icons.ts | 4 +- .../services/get_service_node_metadata.ts | 2 +- ...e_transaction_group_detailed_statistics.ts | 10 ++-- .../get_service_transaction_groups.ts | 10 ++-- .../services/get_service_transaction_types.ts | 4 +- .../get_services/get_health_statuses.ts | 2 +- .../get_services/get_legacy_data_status.ts | 2 +- .../get_service_transaction_stats.ts | 6 +- .../get_services_from_metric_documents.ts | 2 +- .../get_services/get_services_items.ts | 2 +- .../services/get_services/index.ts | 2 +- .../get_services/merge_service_stats.test.ts | 0 .../get_services/merge_service_stats.ts | 0 ...service_transaction_detailed_statistics.ts | 10 ++-- .../get_services_detailed_statistics/index.ts | 2 +- .../services/get_throughput.ts | 4 +- .../get_service_profiling_statistics.ts | 4 +- .../get_service_profiling_timeline.ts | 4 +- .../{lib => routes}/services/queries.test.ts | 0 .../routes/{services.ts => services/route.ts} | 60 +++++++++---------- .../__snapshots__/queries.test.ts.snap | 0 .../convert_settings_to_string.ts | 0 .../create_agent_config_index.ts | 0 .../create_or_update_configuration.ts | 4 +- .../delete_configuration.ts | 2 +- .../find_exact_configuration.ts | 2 +- .../get_agent_name_by_service.ts | 2 +- .../get_existing_environments_for_service.ts | 2 +- .../get_environments/index.ts | 2 +- .../agent_configuration/get_service_names.ts | 4 +- .../list_configurations.ts | 2 +- .../mark_applied_by_agent.ts | 2 +- .../agent_configuration/queries.test.ts | 0 .../route.ts} | 32 +++++----- .../search_configurations.ts | 2 +- .../route.ts} | 26 ++++---- .../settings/apm_indices/get_apm_indices.ts | 2 +- .../{apm_indices.ts => apm_indices/route.ts} | 13 ++-- .../apm_indices/save_apm_indices.test.ts | 0 .../settings/apm_indices/save_apm_indices.ts | 0 .../get_transaction.test.ts.snap | 0 .../list_custom_links.test.ts.snap | 0 .../custom_link/create_custom_link_index.ts | 0 .../create_or_update_custom_link.test.ts | 2 +- .../create_or_update_custom_link.ts | 4 +- .../settings/custom_link/custom_link_types.ts | 0 .../custom_link/delete_custom_link.ts | 2 +- .../custom_link/get_transaction.test.ts | 2 +- .../settings/custom_link/get_transaction.ts | 2 +- .../settings/custom_link/helper.test.ts | 0 .../settings/custom_link/helper.ts | 0 .../custom_link/list_custom_links.test.ts | 2 +- .../settings/custom_link/list_custom_links.ts | 2 +- .../{custom_link.ts => custom_link/route.ts} | 27 ++++----- .../{source_maps.ts => source_maps/route.ts} | 10 ++-- .../suggestions/get_suggestions.ts | 4 +- .../{suggestions.ts => suggestions/route.ts} | 12 ++-- .../traces/__snapshots__/queries.test.ts.snap | 0 .../{lib => routes}/traces/get_trace_items.ts | 2 +- .../{lib => routes}/traces/queries.test.ts | 0 .../routes/{traces.ts => traces/route.ts} | 18 +++--- .../__snapshots__/queries.test.ts.snap | 0 .../transactions/breakdown/constants.ts | 0 .../transactions/breakdown/index.test.ts | 2 +- .../transactions/breakdown/index.ts | 4 +- .../breakdown/mock_responses/data.json | 0 .../breakdown/mock_responses/no_data.json | 0 .../{lib => routes}/transactions/constants.ts | 0 .../transactions/get_anomaly_data/fetcher.ts | 2 +- .../transactions/get_anomaly_data/index.ts | 4 +- .../transactions/get_latency_charts/index.ts | 4 +- .../transactions/get_transaction/index.ts | 2 +- .../get_transaction_by_trace/index.ts | 2 +- .../transactions/queries.test.ts | 0 .../route.ts} | 26 ++++---- .../trace_samples/get_trace_samples/index.ts | 2 +- .../transactions/trace_samples/index.ts | 2 +- x-pack/plugins/apm/server/tutorial/index.ts | 4 +- x-pack/plugins/apm/server/types.ts | 2 +- .../plugins/apm/server/utils/test_helpers.tsx | 2 +- .../metrics_charts/metrics_charts.spec.ts | 2 +- .../settings/agent_configuration.spec.ts | 2 +- 274 files changed, 449 insertions(+), 455 deletions(-) rename x-pack/plugins/apm/server/{lib => routes}/alerts/action_variables.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/alerting_es_client.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/chart_preview/get_transaction_duration.ts (94%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/chart_preview/get_transaction_error_count.ts (93%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/chart_preview/get_transaction_error_rate.ts (91%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_apm_alerts.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_error_count_alert_type.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_error_count_alert_type.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_transaction_duration_alert_type.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_transaction_duration_alert_type.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_transaction_duration_anomaly_alert_type.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_transaction_duration_anomaly_alert_type.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_transaction_error_rate_alert_type.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/register_transaction_error_rate_alert_type.ts (97%) rename x-pack/plugins/apm/server/routes/alerts/{chart_preview.ts => route.ts} (89%) rename x-pack/plugins/apm/server/{lib => routes}/alerts/test_utils/index.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/field_stats/get_boolean_field_stats.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/field_stats/get_field_stats.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/field_stats/get_fields_stats.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/field_stats/get_keyword_field_stats.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/field_stats/get_numeric_field_stats.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/get_filters.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/get_query_with_params.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/get_query_with_params.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/get_request_base.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/get_request_base.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/index.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_correlation.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_correlation.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_correlation_with_histogram.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_correlation_with_histogram.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_failure_correlation.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_field_candidates.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_field_candidates.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_field_value_pairs.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_field_value_pairs.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_fractions.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_fractions.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_histogram.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_histogram.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_histogram_range_steps.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_histogram_range_steps.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_p_values.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_percentiles.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_percentiles.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_ranges.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_ranges.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/queries/query_significant_correlations.ts (100%) rename x-pack/plugins/apm/server/routes/{correlations.ts => correlations/route.ts} (92%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/utils/compute_expectations_and_ranges.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/utils/compute_expectations_and_ranges.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/utils/field_stats_utils.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/utils/index.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/correlations/utils/split_all_settled_promises.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/data_view/create_static_data_view.test.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/data_view/create_static_data_view.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/data_view/get_apm_data_view_title.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/data_view/get_apm_data_view_title.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/data_view/get_dynamic_data_view.ts (100%) rename x-pack/plugins/apm/server/routes/{data_view.ts => data_view/route.ts} (78%) rename x-pack/plugins/apm/server/{lib => routes}/environments/__snapshots__/get_all_environments.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/environments/__snapshots__/get_environments.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/environments/get_all_environments.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/environments/get_all_environments.ts (93%) rename x-pack/plugins/apm/server/{lib => routes}/environments/get_environments.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/environments/get_environments.ts (93%) rename x-pack/plugins/apm/server/routes/{environments.ts => environments/route.ts} (72%) rename x-pack/plugins/apm/server/{lib => routes}/errors/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/errors/distribution/__snapshots__/get_buckets.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/errors/distribution/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/errors/distribution/get_buckets.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/errors/distribution/get_buckets.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/errors/distribution/get_distribution.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/errors/distribution/queries.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/errors/get_error_group_sample.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/errors/get_error_groups.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/errors/queries.test.ts (100%) rename x-pack/plugins/apm/server/routes/{errors.ts => errors/route.ts} (86%) rename x-pack/plugins/apm/server/{lib => routes}/event_metadata/get_event_metadata.ts (93%) rename x-pack/plugins/apm/server/routes/{event_metadata.ts => event_metadata/route.ts} (72%) rename x-pack/plugins/apm/server/routes/{fallback_to_transactions.ts => fallback_to_transactions/route.ts} (70%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/create_cloud_apm_package_policy.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/get_agents.ts (89%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/get_apm_package_policies.ts (89%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/get_apm_package_policy_definition.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/get_apm_package_policy_definition.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/get_cloud_apm_package_policy.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/get_unsupported_apm_server_schema.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/get_unsupported_apm_server_schema.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/is_superuser.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/merge_package_policy_with_apm.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/register_fleet_policy_callbacks.ts (98%) rename x-pack/plugins/apm/server/routes/{fleet.ts => fleet/route.ts} (89%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/source_maps.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/source_maps.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/fleet/sync_agent_configs_to_apm_package_policies.ts (90%) rename x-pack/plugins/apm/server/{lib/latency => routes/latency_distribution}/get_overall_latency_distribution.ts (100%) rename x-pack/plugins/apm/server/{lib/latency => routes/latency_distribution}/get_percentile_threshold_value.ts (100%) rename x-pack/plugins/apm/server/routes/{latency_distribution.ts => latency_distribution/route.ts} (80%) rename x-pack/plugins/apm/server/{lib/latency => routes/latency_distribution}/types.ts (92%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/default.ts (92%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.test.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/gc/get_gc_rate_chart.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/gc/get_gc_time_chart.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/heap_memory/index.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/index.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/non_heap_memory/index.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/java/thread_count/index.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/shared/cpu/index.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/by_agent/shared/memory/index.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/fetch_and_transform_metrics.ts (94%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/get_metrics_chart_data_by_agent.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/queries.test.ts (100%) rename x-pack/plugins/apm/server/routes/{metrics.ts => metrics/route.ts} (76%) rename x-pack/plugins/apm/server/{lib => routes}/metrics/types.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/observability_overview/get_service_count.ts (90%) rename x-pack/plugins/apm/server/{lib => routes}/observability_overview/get_transactions_per_minute.ts (93%) rename x-pack/plugins/apm/server/{lib => routes}/observability_overview/has_data.ts (94%) rename x-pack/plugins/apm/server/routes/{observability_overview.ts => observability_overview/route.ts} (74%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_client_metrics.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_js_errors.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_long_task_metrics.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_page_load_distribution.ts (99%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_page_view_trends.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_pl_dist_breakdown.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_rum_services.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_url_search.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_visitor_breakdown.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/get_web_core_vitals.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/has_rum_data.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/queries.test.ts (100%) rename x-pack/plugins/apm/server/routes/{rum_client.ts => rum_client/route.ts} (87%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/ui_filters/get_es_filter.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/rum_client/ui_filters/get_es_filter.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/fetch_service_paths_from_trace_ids.ts (99%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_service_anomalies.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_service_map.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_service_map_backend_node_info.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_service_map_from_trace_ids.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_service_map_from_trace_ids.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_service_map_service_node_info.test.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_service_map_service_node_info.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/get_trace_sample_ids.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/group_resource_nodes.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/group_resource_nodes.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/mock_responses/group_resource_nodes_grouped.json (100%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/mock_responses/group_resource_nodes_pregrouped.json (100%) rename x-pack/plugins/apm/server/routes/{service_map.ts => service_map/route.ts} (81%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/transform_service_map_responses.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/service_map/transform_service_map_responses.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/service_nodes/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib/service_nodes/index.ts => routes/service_nodes/get_service_nodes.ts} (98%) rename x-pack/plugins/apm/server/{lib => routes}/service_nodes/queries.test.ts (96%) rename x-pack/plugins/apm/server/routes/{service_nodes.ts => service_nodes/route.ts} (72%) rename x-pack/plugins/apm/server/{lib => routes}/services/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/__fixtures__/multiple_versions.json (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/__fixtures__/no_versions.json (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/__fixtures__/one_version.json (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/__fixtures__/versions_first_seen.json (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/get_derived_service_annotations.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/get_stored_annotations.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/index.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/annotations/index.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_agent.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_alerts.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_dependencies.ts (77%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_dependencies_breakdown.ts (90%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_error_groups/get_service_error_group_detailed_statistics.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_error_groups/get_service_error_group_main_statistics.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_error_groups/index.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_infrastructure.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_instance_metadata_details.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_instances/detailed_statistics.ts (98%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_instances/get_service_instances_system_metric_statistics.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_instances/get_service_instances_transaction_statistics.ts (94%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_instances/main_statistics.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_metadata_details.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_metadata_icons.ts (94%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_node_metadata.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_transaction_group_detailed_statistics.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_transaction_groups.ts (92%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_service_transaction_types.ts (94%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/get_health_statuses.ts (92%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/get_legacy_data_status.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/get_service_transaction_stats.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/get_services_from_metric_documents.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/get_services_items.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/index.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/merge_service_stats.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services/merge_service_stats.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts (92%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_services_detailed_statistics/index.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/services/get_throughput.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/profiling/get_service_profiling_statistics.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/services/profiling/get_service_profiling_timeline.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/services/queries.test.ts (100%) rename x-pack/plugins/apm/server/routes/{services.ts => services/route.ts} (89%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/convert_settings_to_string.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/create_agent_config_index.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/create_or_update_configuration.ts (89%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/delete_configuration.ts (91%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/find_exact_configuration.ts (96%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/get_agent_name_by_service.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/get_environments/get_existing_environments_for_service.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/get_environments/index.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/get_service_names.ts (90%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/list_configurations.ts (93%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/mark_applied_by_agent.ts (93%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/queries.test.ts (100%) rename x-pack/plugins/apm/server/routes/settings/{agent_configuration.ts => agent_configuration/route.ts} (86%) rename x-pack/plugins/apm/server/{lib => routes}/settings/agent_configuration/search_configurations.ts (97%) rename x-pack/plugins/apm/server/routes/settings/{anomaly_detection.ts => anomaly_detection/route.ts} (74%) rename x-pack/plugins/apm/server/{lib => routes}/settings/apm_indices/get_apm_indices.ts (97%) rename x-pack/plugins/apm/server/routes/settings/{apm_indices.ts => apm_indices/route.ts} (82%) rename x-pack/plugins/apm/server/{lib => routes}/settings/apm_indices/save_apm_indices.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/apm_indices/save_apm_indices.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/__snapshots__/get_transaction.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/__snapshots__/list_custom_links.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/create_custom_link_index.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/create_or_update_custom_link.test.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/create_or_update_custom_link.ts (86%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/custom_link_types.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/delete_custom_link.ts (90%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/get_transaction.test.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/get_transaction.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/helper.test.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/helper.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/list_custom_links.test.ts (94%) rename x-pack/plugins/apm/server/{lib => routes}/settings/custom_link/list_custom_links.ts (96%) rename x-pack/plugins/apm/server/routes/settings/{custom_link.ts => custom_link/route.ts} (79%) rename x-pack/plugins/apm/server/routes/{source_maps.ts => source_maps/route.ts} (91%) rename x-pack/plugins/apm/server/{lib => routes}/suggestions/get_suggestions.ts (87%) rename x-pack/plugins/apm/server/routes/{suggestions.ts => suggestions/route.ts} (72%) rename x-pack/plugins/apm/server/{lib => routes}/traces/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/traces/get_trace_items.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/traces/queries.test.ts (100%) rename x-pack/plugins/apm/server/routes/{traces.ts => traces/route.ts} (79%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/__snapshots__/queries.test.ts.snap (100%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/breakdown/constants.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/breakdown/index.test.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/breakdown/index.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/breakdown/mock_responses/data.json (100%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/breakdown/mock_responses/no_data.json (100%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/constants.ts (100%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/get_anomaly_data/fetcher.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/get_anomaly_data/index.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/get_latency_charts/index.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/get_transaction/index.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/get_transaction_by_trace/index.ts (95%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/queries.test.ts (100%) rename x-pack/plugins/apm/server/routes/{transactions.ts => transactions/route.ts} (90%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/trace_samples/get_trace_samples/index.ts (97%) rename x-pack/plugins/apm/server/{lib => routes}/transactions/trace_samples/index.ts (95%) diff --git a/x-pack/plugins/apm/server/deprecations/index.ts b/x-pack/plugins/apm/server/deprecations/index.ts index 39e282e76d9a6..92955fa0c6d0b 100644 --- a/x-pack/plugins/apm/server/deprecations/index.ts +++ b/x-pack/plugins/apm/server/deprecations/index.ts @@ -9,7 +9,7 @@ import { GetDeprecationsContext, DeprecationsDetails } from 'src/core/server'; import { i18n } from '@kbn/i18n'; import { isEmpty } from 'lodash'; import { CloudSetup } from '../../../cloud/server'; -import { getCloudAgentPolicy } from '../lib/fleet/get_cloud_apm_package_policy'; +import { getCloudAgentPolicy } from '../routes/fleet/get_cloud_apm_package_policy'; import { APMRouteHandlerResources } from '../'; export function getDeprecations({ diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/index.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/index.ts index 9b5820767690f..8aee60357ba73 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/index.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/index.ts @@ -12,7 +12,7 @@ import { ESSearchRequest, ESSearchResponse, } from '../../../../../../../src/core/types/elasticsearch'; -import { ApmIndicesConfig } from '../../settings/apm_indices/get_apm_indices'; +import { ApmIndicesConfig } from '../../../routes/settings/apm_indices/get_apm_indices'; import { tasks } from './tasks'; import { APMDataTelemetry } from '../types'; diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts index 1e697ebdcae06..b69aa1e6e0196 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ApmIndicesConfig } from '../../settings/apm_indices/get_apm_indices'; +import { ApmIndicesConfig } from '../../../routes/settings/apm_indices/get_apm_indices'; import { tasks } from './tasks'; import { SERVICE_NAME, diff --git a/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts b/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts index 88ef1203bae9f..bdbb1fe1dbcd3 100644 --- a/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts +++ b/x-pack/plugins/apm/server/lib/apm_telemetry/index.ts @@ -24,7 +24,7 @@ import { APM_TELEMETRY_SAVED_OBJECT_TYPE, } from '../../../common/apm_saved_object_constants'; import { getInternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client'; -import { getApmIndices } from '../settings/apm_indices/get_apm_indices'; +import { getApmIndices } from '../../routes/settings/apm_indices/get_apm_indices'; import { collectDataTelemetry, CollectTelemetryParams, diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts index a45d314c33719..6c9a0cb45e273 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/index.ts @@ -26,7 +26,7 @@ import { APMError } from '../../../../../typings/es_schemas/ui/apm_error'; import { Metric } from '../../../../../typings/es_schemas/ui/metric'; import { Span } from '../../../../../typings/es_schemas/ui/span'; import { Transaction } from '../../../../../typings/es_schemas/ui/transaction'; -import { ApmIndicesConfig } from '../../../settings/apm_indices/get_apm_indices'; +import { ApmIndicesConfig } from '../../../../routes/settings/apm_indices/get_apm_indices'; import { callAsyncWithDebug, getDebugBody, diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.test.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.test.ts index 5ef3786e9bde4..d3f0fca0bb259 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.test.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.test.ts @@ -6,7 +6,7 @@ */ import { APMEventESSearchRequest } from '.'; -import { ApmIndicesConfig } from '../../../settings/apm_indices/get_apm_indices'; +import { ApmIndicesConfig } from '../../../../routes/settings/apm_indices/get_apm_indices'; import { unpackProcessorEvents } from './unpack_processor_events'; describe('unpackProcessorEvents', () => { diff --git a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts index 582fe0374c5ca..e62720e9fbd0c 100644 --- a/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts +++ b/x-pack/plugins/apm/server/lib/helpers/create_es_client/create_apm_event_client/unpack_processor_events.ts @@ -13,7 +13,7 @@ import { ESFilter, } from '../../../../../../../../src/core/types/elasticsearch'; import { APMEventESSearchRequest, APMEventESTermsEnumRequest } from '.'; -import { ApmIndicesConfig } from '../../../settings/apm_indices/get_apm_indices'; +import { ApmIndicesConfig } from '../../../../routes/settings/apm_indices/get_apm_indices'; const processorEventIndexMap = { [ProcessorEvent.transaction]: 'transaction', diff --git a/x-pack/plugins/apm/server/lib/helpers/setup_request.test.ts b/x-pack/plugins/apm/server/lib/helpers/setup_request.test.ts index 7b3201095106e..ffcbe01b7f043 100644 --- a/x-pack/plugins/apm/server/lib/helpers/setup_request.test.ts +++ b/x-pack/plugins/apm/server/lib/helpers/setup_request.test.ts @@ -10,10 +10,10 @@ import { APMConfig } from '../..'; import { APMRouteHandlerResources } from '../../routes/typings'; import { ProcessorEvent } from '../../../common/processor_event'; import { PROCESSOR_EVENT } from '../../../common/elasticsearch_fieldnames'; -import { getApmIndices } from '../settings/apm_indices/get_apm_indices'; +import { getApmIndices } from '../../routes/settings/apm_indices/get_apm_indices'; import { PromiseReturnType } from '../../../../observability/typings/common'; -jest.mock('../settings/apm_indices/get_apm_indices', () => ({ +jest.mock('../../routes/settings/apm_indices/get_apm_indices', () => ({ getApmIndices: async () => ({ sourcemap: 'apm-*', @@ -26,7 +26,7 @@ jest.mock('../settings/apm_indices/get_apm_indices', () => ({ } as PromiseReturnType), })); -jest.mock('../data_view/get_dynamic_data_view', () => ({ +jest.mock('../../routes/data_view/get_dynamic_data_view', () => ({ getDynamicDataView: async () => { return; }, diff --git a/x-pack/plugins/apm/server/lib/helpers/setup_request.ts b/x-pack/plugins/apm/server/lib/helpers/setup_request.ts index a0d908c68d84d..85fb94dd765b0 100644 --- a/x-pack/plugins/apm/server/lib/helpers/setup_request.ts +++ b/x-pack/plugins/apm/server/lib/helpers/setup_request.ts @@ -13,7 +13,7 @@ import { APMRouteHandlerResources } from '../../routes/typings'; import { ApmIndicesConfig, getApmIndices, -} from '../settings/apm_indices/get_apm_indices'; +} from '../../routes/settings/apm_indices/get_apm_indices'; import { APMEventClient, createApmEventClient, diff --git a/x-pack/plugins/apm/server/plugin.ts b/x-pack/plugins/apm/server/plugin.ts index b273fc867e5a8..9ece2c507847e 100644 --- a/x-pack/plugins/apm/server/plugin.ts +++ b/x-pack/plugins/apm/server/plugin.ts @@ -20,14 +20,14 @@ import { Dataset } from '../../rule_registry/server'; import { APMConfig, APM_SERVER_FEATURE_ID } from '.'; import { UI_SETTINGS } from '../../../../src/plugins/data/common'; import { APM_FEATURE, registerFeaturesUsage } from './feature'; -import { registerApmAlerts } from './lib/alerts/register_apm_alerts'; -import { registerFleetPolicyCallbacks } from './lib/fleet/register_fleet_policy_callbacks'; +import { registerApmAlerts } from './routes/alerts/register_apm_alerts'; +import { registerFleetPolicyCallbacks } from './routes/fleet/register_fleet_policy_callbacks'; import { createApmTelemetry } from './lib/apm_telemetry'; import { createApmEventClient } from './lib/helpers/create_es_client/create_apm_event_client'; import { getInternalSavedObjectsClient } from './lib/helpers/get_internal_saved_objects_client'; -import { createApmAgentConfigurationIndex } from './lib/settings/agent_configuration/create_agent_config_index'; -import { getApmIndices } from './lib/settings/apm_indices/get_apm_indices'; -import { createApmCustomLinkIndex } from './lib/settings/custom_link/create_custom_link_index'; +import { createApmAgentConfigurationIndex } from './routes/settings/agent_configuration/create_agent_config_index'; +import { getApmIndices } from './routes/settings/apm_indices/get_apm_indices'; +import { createApmCustomLinkIndex } from './routes/settings/custom_link/create_custom_link_index'; import { apmIndices, apmTelemetry, apmServerSettings } from './saved_objects'; import type { ApmPluginRequestHandlerContext, diff --git a/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts b/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts index 6265ee71c27e1..e3e98cc3c1773 100644 --- a/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts +++ b/x-pack/plugins/apm/server/projections/rum_page_load_transactions.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { SetupUX } from '../routes/rum_client'; +import { SetupUX } from '../routes/rum_client/route'; import { AGENT_NAME, TRANSACTION_TYPE, @@ -14,7 +14,7 @@ import { import { rangeQuery } from '../../../observability/server'; import { ProcessorEvent } from '../../common/processor_event'; import { TRANSACTION_PAGE_LOAD } from '../../common/transaction_types'; -import { getEsFilter } from '../lib/rum_client/ui_filters/get_es_filter'; +import { getEsFilter } from '../routes/rum_client/ui_filters/get_es_filter'; export function getRumPageLoadTransactionsProjection({ setup, diff --git a/x-pack/plugins/apm/server/lib/alerts/action_variables.ts b/x-pack/plugins/apm/server/routes/alerts/action_variables.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/action_variables.ts rename to x-pack/plugins/apm/server/routes/alerts/action_variables.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/alerting_es_client.ts b/x-pack/plugins/apm/server/routes/alerts/alerting_es_client.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/alerting_es_client.ts rename to x-pack/plugins/apm/server/routes/alerts/alerting_es_client.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_duration.ts b/x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_duration.ts similarity index 94% rename from x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_duration.ts rename to x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_duration.ts index 693502d7629e8..0338f78a0a892 100644 --- a/x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_duration.ts +++ b/x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_duration.ts @@ -12,14 +12,14 @@ import { TRANSACTION_TYPE, } from '../../../../common/elasticsearch_fieldnames'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { AlertParams } from '../../../routes/alerts/chart_preview'; +import { AlertParams } from '../route'; import { getSearchAggregatedTransactions, getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, getProcessorEventForTransactions, -} from '../../helpers/transactions'; -import { Setup } from '../../helpers/setup_request'; +} from '../../../lib/helpers/transactions'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function getTransactionDurationChartPreview({ alertParams, diff --git a/x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_error_count.ts b/x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_error_count.ts similarity index 93% rename from x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_error_count.ts rename to x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_error_count.ts index 0e1fa74199f60..708acd6d7f8ea 100644 --- a/x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_error_count.ts +++ b/x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_error_count.ts @@ -7,10 +7,10 @@ import { SERVICE_NAME } from '../../../../common/elasticsearch_fieldnames'; import { ProcessorEvent } from '../../../../common/processor_event'; -import { AlertParams } from '../../../routes/alerts/chart_preview'; +import { AlertParams } from '../route'; import { rangeQuery, termQuery } from '../../../../../observability/server'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function getTransactionErrorCountChartPreview({ setup, diff --git a/x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_error_rate.ts b/x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_error_rate.ts similarity index 91% rename from x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_error_rate.ts rename to x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_error_rate.ts index e2bfaf29f83cb..cf3380c105ac8 100644 --- a/x-pack/plugins/apm/server/lib/alerts/chart_preview/get_transaction_error_rate.ts +++ b/x-pack/plugins/apm/server/routes/alerts/chart_preview/get_transaction_error_rate.ts @@ -11,17 +11,17 @@ import { TRANSACTION_TYPE, } from '../../../../common/elasticsearch_fieldnames'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { AlertParams } from '../../../routes/alerts/chart_preview'; +import { AlertParams } from '../route'; import { getSearchAggregatedTransactions, getDocumentTypeFilterForTransactions, getProcessorEventForTransactions, -} from '../../helpers/transactions'; -import { Setup } from '../../helpers/setup_request'; +} from '../../../lib/helpers/transactions'; +import { Setup } from '../../../lib/helpers/setup_request'; import { calculateFailedTransactionRate, getOutcomeAggregation, -} from '../../helpers/transaction_error_rate'; +} from '../../../lib/helpers/transaction_error_rate'; export async function getTransactionErrorRateChartPreview({ setup, diff --git a/x-pack/plugins/apm/server/lib/alerts/register_apm_alerts.ts b/x-pack/plugins/apm/server/routes/alerts/register_apm_alerts.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/register_apm_alerts.ts rename to x-pack/plugins/apm/server/routes/alerts/register_apm_alerts.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/register_error_count_alert_type.test.ts b/x-pack/plugins/apm/server/routes/alerts/register_error_count_alert_type.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/register_error_count_alert_type.test.ts rename to x-pack/plugins/apm/server/routes/alerts/register_error_count_alert_type.test.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/register_error_count_alert_type.ts b/x-pack/plugins/apm/server/routes/alerts/register_error_count_alert_type.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/alerts/register_error_count_alert_type.ts rename to x-pack/plugins/apm/server/routes/alerts/register_error_count_alert_type.ts index 723f52cb1eeda..2dacb5ca1e895 100644 --- a/x-pack/plugins/apm/server/lib/alerts/register_error_count_alert_type.ts +++ b/x-pack/plugins/apm/server/routes/alerts/register_error_count_alert_type.ts @@ -31,7 +31,7 @@ import { } from '../../../common/elasticsearch_fieldnames'; import { ProcessorEvent } from '../../../common/processor_event'; import { environmentQuery } from '../../../common/utils/environment_query'; -import { getApmIndices } from '../settings/apm_indices/get_apm_indices'; +import { getApmIndices } from '../../routes/settings/apm_indices/get_apm_indices'; import { apmActionVariables } from './action_variables'; import { alertingEsClient } from './alerting_es_client'; import { RegisterRuleDependencies } from './register_apm_alerts'; diff --git a/x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_alert_type.test.ts b/x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_alert_type.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_alert_type.test.ts rename to x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_alert_type.test.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_alert_type.ts b/x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_alert_type.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_alert_type.ts rename to x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_alert_type.ts index 4e68ca6b52248..1e39b02655ada 100644 --- a/x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_alert_type.ts +++ b/x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_alert_type.ts @@ -37,8 +37,8 @@ import { getDurationFormatter } from '../../../common/utils/formatters'; import { getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, -} from '../helpers/transactions'; -import { getApmIndices } from '../settings/apm_indices/get_apm_indices'; +} from '../../lib/helpers/transactions'; +import { getApmIndices } from '../../routes/settings/apm_indices/get_apm_indices'; import { apmActionVariables } from './action_variables'; import { alertingEsClient } from './alerting_es_client'; import { RegisterRuleDependencies } from './register_apm_alerts'; diff --git a/x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_anomaly_alert_type.test.ts b/x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_anomaly_alert_type.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_anomaly_alert_type.test.ts rename to x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_anomaly_alert_type.test.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_anomaly_alert_type.ts b/x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_anomaly_alert_type.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/register_transaction_duration_anomaly_alert_type.ts rename to x-pack/plugins/apm/server/routes/alerts/register_transaction_duration_anomaly_alert_type.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/register_transaction_error_rate_alert_type.test.ts b/x-pack/plugins/apm/server/routes/alerts/register_transaction_error_rate_alert_type.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/register_transaction_error_rate_alert_type.test.ts rename to x-pack/plugins/apm/server/routes/alerts/register_transaction_error_rate_alert_type.test.ts diff --git a/x-pack/plugins/apm/server/lib/alerts/register_transaction_error_rate_alert_type.ts b/x-pack/plugins/apm/server/routes/alerts/register_transaction_error_rate_alert_type.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/alerts/register_transaction_error_rate_alert_type.ts rename to x-pack/plugins/apm/server/routes/alerts/register_transaction_error_rate_alert_type.ts index cf5b45d901228..f196b718968da 100644 --- a/x-pack/plugins/apm/server/lib/alerts/register_transaction_error_rate_alert_type.ts +++ b/x-pack/plugins/apm/server/routes/alerts/register_transaction_error_rate_alert_type.ts @@ -35,12 +35,12 @@ import { EventOutcome } from '../../../common/event_outcome'; import { ProcessorEvent } from '../../../common/processor_event'; import { asDecimalOrInteger } from '../../../common/utils/formatters'; import { environmentQuery } from '../../../common/utils/environment_query'; -import { getApmIndices } from '../settings/apm_indices/get_apm_indices'; +import { getApmIndices } from '../../routes/settings/apm_indices/get_apm_indices'; import { apmActionVariables } from './action_variables'; import { alertingEsClient } from './alerting_es_client'; import { RegisterRuleDependencies } from './register_apm_alerts'; import { SearchAggregatedTransactionSetting } from '../../../common/aggregated_transactions'; -import { getDocumentTypeFilterForTransactions } from '../helpers/transactions'; +import { getDocumentTypeFilterForTransactions } from '../../lib/helpers/transactions'; import { asPercent } from '../../../../observability/common/utils/formatters'; import { termQuery } from '../../../../observability/server'; diff --git a/x-pack/plugins/apm/server/routes/alerts/chart_preview.ts b/x-pack/plugins/apm/server/routes/alerts/route.ts similarity index 89% rename from x-pack/plugins/apm/server/routes/alerts/chart_preview.ts rename to x-pack/plugins/apm/server/routes/alerts/route.ts index cae35c7f06a85..49baeda8d3a47 100644 --- a/x-pack/plugins/apm/server/routes/alerts/chart_preview.ts +++ b/x-pack/plugins/apm/server/routes/alerts/route.ts @@ -6,9 +6,9 @@ */ import * as t from 'io-ts'; -import { getTransactionDurationChartPreview } from '../../lib/alerts/chart_preview/get_transaction_duration'; -import { getTransactionErrorCountChartPreview } from '../../lib/alerts/chart_preview/get_transaction_error_count'; -import { getTransactionErrorRateChartPreview } from '../../lib/alerts/chart_preview/get_transaction_error_rate'; +import { getTransactionDurationChartPreview } from './chart_preview/get_transaction_duration'; +import { getTransactionErrorCountChartPreview } from './chart_preview/get_transaction_error_count'; +import { getTransactionErrorRateChartPreview } from './chart_preview/get_transaction_error_rate'; import { setupRequest } from '../../lib/helpers/setup_request'; import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; diff --git a/x-pack/plugins/apm/server/lib/alerts/test_utils/index.ts b/x-pack/plugins/apm/server/routes/alerts/test_utils/index.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/alerts/test_utils/index.ts rename to x-pack/plugins/apm/server/routes/alerts/test_utils/index.ts diff --git a/x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts b/x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts index fa8bc1e54ebfb..ee4c9d1c8cfa5 100644 --- a/x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts +++ b/x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts @@ -10,33 +10,33 @@ import type { EndpointOf, } from '@kbn/server-route-repository'; import { PickByValue } from 'utility-types'; -import { correlationsRouteRepository } from '../correlations'; -import { alertsChartPreviewRouteRepository } from '../alerts/chart_preview'; +import { correlationsRouteRepository } from '../correlations/route'; +import { alertsChartPreviewRouteRepository } from '../alerts/route'; import { backendsRouteRepository } from '../backends/route'; import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; -import { environmentsRouteRepository } from '../environments'; -import { errorsRouteRepository } from '../errors'; -import { apmFleetRouteRepository } from '../fleet'; -import { dataViewRouteRepository } from '../data_view'; -import { latencyDistributionRouteRepository } from '../latency_distribution'; -import { metricsRouteRepository } from '../metrics'; -import { observabilityOverviewRouteRepository } from '../observability_overview'; -import { rumRouteRepository } from '../rum_client'; -import { fallbackToTransactionsRouteRepository } from '../fallback_to_transactions'; -import { serviceRouteRepository } from '../services'; -import { serviceMapRouteRepository } from '../service_map'; -import { serviceNodeRouteRepository } from '../service_nodes'; -import { agentConfigurationRouteRepository } from '../settings/agent_configuration'; -import { anomalyDetectionRouteRepository } from '../settings/anomaly_detection'; -import { apmIndicesRouteRepository } from '../settings/apm_indices'; -import { customLinkRouteRepository } from '../settings/custom_link'; -import { sourceMapsRouteRepository } from '../source_maps'; -import { traceRouteRepository } from '../traces'; -import { transactionRouteRepository } from '../transactions'; +import { environmentsRouteRepository } from '../environments/route'; +import { errorsRouteRepository } from '../errors/route'; +import { apmFleetRouteRepository } from '../fleet/route'; +import { dataViewRouteRepository } from '../data_view/route'; +import { latencyDistributionRouteRepository } from '../latency_distribution/route'; +import { metricsRouteRepository } from '../metrics/route'; +import { observabilityOverviewRouteRepository } from '../observability_overview/route'; +import { rumRouteRepository } from '../rum_client/route'; +import { fallbackToTransactionsRouteRepository } from '../fallback_to_transactions/route'; +import { serviceRouteRepository } from '../services/route'; +import { serviceMapRouteRepository } from '../service_map/route'; +import { serviceNodeRouteRepository } from '../service_nodes/route'; +import { agentConfigurationRouteRepository } from '../settings/agent_configuration/route'; +import { anomalyDetectionRouteRepository } from '../settings/anomaly_detection/route'; +import { apmIndicesRouteRepository } from '../settings/apm_indices/route'; +import { customLinkRouteRepository } from '../settings/custom_link/route'; +import { sourceMapsRouteRepository } from '../source_maps/route'; +import { traceRouteRepository } from '../traces/route'; +import { transactionRouteRepository } from '../transactions/route'; import { APMRouteHandlerResources } from '../typings'; import { historicalDataRouteRepository } from '../historical_data'; -import { eventMetadataRouteRepository } from '../event_metadata'; -import { suggestionsRouteRepository } from '../suggestions'; +import { eventMetadataRouteRepository } from '../event_metadata/route'; +import { suggestionsRouteRepository } from '../suggestions/route'; const getTypedGlobalApmServerRouteRepository = () => { const repository = createApmServerRouteRepository() diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_boolean_field_stats.ts b/x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_boolean_field_stats.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_boolean_field_stats.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_boolean_field_stats.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_field_stats.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_field_stats.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_field_stats.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_field_stats.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_fields_stats.ts b/x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_fields_stats.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_fields_stats.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_fields_stats.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_keyword_field_stats.ts b/x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_keyword_field_stats.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_keyword_field_stats.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_keyword_field_stats.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_numeric_field_stats.ts b/x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_numeric_field_stats.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/field_stats/get_numeric_field_stats.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/field_stats/get_numeric_field_stats.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/get_filters.ts b/x-pack/plugins/apm/server/routes/correlations/queries/get_filters.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/get_filters.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/get_filters.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/get_query_with_params.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/get_query_with_params.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/get_query_with_params.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/get_query_with_params.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/get_query_with_params.ts b/x-pack/plugins/apm/server/routes/correlations/queries/get_query_with_params.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/get_query_with_params.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/get_query_with_params.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/get_request_base.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/get_request_base.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/get_request_base.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/get_request_base.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/get_request_base.ts b/x-pack/plugins/apm/server/routes/correlations/queries/get_request_base.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/get_request_base.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/get_request_base.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/index.ts b/x-pack/plugins/apm/server/routes/correlations/queries/index.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/index.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/index.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_correlation.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_correlation.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_correlation.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_correlation.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_correlation.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_correlation.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_correlation.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_correlation.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_correlation_with_histogram.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_correlation_with_histogram.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_correlation_with_histogram.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_correlation_with_histogram.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_correlation_with_histogram.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_correlation_with_histogram.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_correlation_with_histogram.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_correlation_with_histogram.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_failure_correlation.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_failure_correlation.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_failure_correlation.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_failure_correlation.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_field_candidates.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_field_candidates.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_field_candidates.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_field_candidates.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_field_candidates.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_field_candidates.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_field_candidates.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_field_candidates.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_field_value_pairs.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_field_value_pairs.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_field_value_pairs.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_field_value_pairs.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_field_value_pairs.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_field_value_pairs.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_field_value_pairs.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_field_value_pairs.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_fractions.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_fractions.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_fractions.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_fractions.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_fractions.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_fractions.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_fractions.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_fractions.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_histogram.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_histogram.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_histogram.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_histogram.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_histogram.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_histogram.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_histogram.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_histogram.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_histogram_range_steps.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_histogram_range_steps.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_histogram_range_steps.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_histogram_range_steps.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_histogram_range_steps.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_histogram_range_steps.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_histogram_range_steps.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_histogram_range_steps.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_p_values.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_p_values.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_p_values.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_p_values.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_percentiles.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_percentiles.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_percentiles.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_percentiles.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_percentiles.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_percentiles.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_percentiles.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_percentiles.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_ranges.test.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_ranges.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_ranges.test.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_ranges.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_ranges.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_ranges.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_ranges.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_ranges.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/queries/query_significant_correlations.ts b/x-pack/plugins/apm/server/routes/correlations/queries/query_significant_correlations.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/queries/query_significant_correlations.ts rename to x-pack/plugins/apm/server/routes/correlations/queries/query_significant_correlations.ts diff --git a/x-pack/plugins/apm/server/routes/correlations.ts b/x-pack/plugins/apm/server/routes/correlations/route.ts similarity index 92% rename from x-pack/plugins/apm/server/routes/correlations.ts rename to x-pack/plugins/apm/server/routes/correlations/route.ts index f6ca064b4385f..b02a6fbc6b7a6 100644 --- a/x-pack/plugins/apm/server/routes/correlations.ts +++ b/x-pack/plugins/apm/server/routes/correlations/route.ts @@ -11,22 +11,22 @@ import Boom from '@hapi/boom'; import { i18n } from '@kbn/i18n'; import { toNumberRt } from '@kbn/io-ts-utils/to_number_rt'; -import { isActivePlatinumLicense } from '../../common/license_check'; +import { isActivePlatinumLicense } from '../../../common/license_check'; -import { setupRequest } from '../lib/helpers/setup_request'; +import { setupRequest } from '../../lib/helpers/setup_request'; import { fetchPValues, fetchSignificantCorrelations, fetchTransactionDurationFieldCandidates, fetchTransactionDurationFieldValuePairs, -} from '../lib/correlations/queries'; -import { fetchFieldsStats } from '../lib/correlations/queries/field_stats/get_fields_stats'; +} from './queries'; +import { fetchFieldsStats } from './queries/field_stats/get_fields_stats'; -import { withApmSpan } from '../utils/with_apm_span'; +import { withApmSpan } from '../../utils/with_apm_span'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { environmentRt, kueryRt, rangeRt } from './default_api_types'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; const INVALID_LICENSE = i18n.translate('xpack.apm.correlations.license.text', { defaultMessage: diff --git a/x-pack/plugins/apm/server/lib/correlations/utils/compute_expectations_and_ranges.test.ts b/x-pack/plugins/apm/server/routes/correlations/utils/compute_expectations_and_ranges.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/utils/compute_expectations_and_ranges.test.ts rename to x-pack/plugins/apm/server/routes/correlations/utils/compute_expectations_and_ranges.test.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/utils/compute_expectations_and_ranges.ts b/x-pack/plugins/apm/server/routes/correlations/utils/compute_expectations_and_ranges.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/utils/compute_expectations_and_ranges.ts rename to x-pack/plugins/apm/server/routes/correlations/utils/compute_expectations_and_ranges.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/utils/field_stats_utils.ts b/x-pack/plugins/apm/server/routes/correlations/utils/field_stats_utils.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/utils/field_stats_utils.ts rename to x-pack/plugins/apm/server/routes/correlations/utils/field_stats_utils.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/utils/index.ts b/x-pack/plugins/apm/server/routes/correlations/utils/index.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/utils/index.ts rename to x-pack/plugins/apm/server/routes/correlations/utils/index.ts diff --git a/x-pack/plugins/apm/server/lib/correlations/utils/split_all_settled_promises.ts b/x-pack/plugins/apm/server/routes/correlations/utils/split_all_settled_promises.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/correlations/utils/split_all_settled_promises.ts rename to x-pack/plugins/apm/server/routes/correlations/utils/split_all_settled_promises.ts diff --git a/x-pack/plugins/apm/server/lib/data_view/create_static_data_view.test.ts b/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.test.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/data_view/create_static_data_view.test.ts rename to x-pack/plugins/apm/server/routes/data_view/create_static_data_view.test.ts index 77b9f0ffd4ad0..7d345b5e3bec1 100644 --- a/x-pack/plugins/apm/server/lib/data_view/create_static_data_view.test.ts +++ b/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.test.ts @@ -6,9 +6,9 @@ */ import { createStaticDataView } from './create_static_data_view'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import * as HistoricalAgentData from '../../routes/historical_data/has_historical_agent_data'; -import { InternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client'; +import { InternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; import { APMConfig } from '../..'; function getMockSavedObjectsClient(existingDataViewTitle: string) { diff --git a/x-pack/plugins/apm/server/lib/data_view/create_static_data_view.ts b/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/data_view/create_static_data_view.ts rename to x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts index 521d290b9ca22..13639d2efcbfe 100644 --- a/x-pack/plugins/apm/server/lib/data_view/create_static_data_view.ts +++ b/x-pack/plugins/apm/server/routes/data_view/create_static_data_view.ts @@ -9,9 +9,9 @@ import { SavedObjectsErrorHelpers } from '../../../../../../src/core/server'; import { APM_STATIC_INDEX_PATTERN_ID } from '../../../common/index_pattern_constants'; import apmDataView from '../../tutorial/index_pattern.json'; import { hasHistoricalAgentData } from '../../routes/historical_data/has_historical_agent_data'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { APMRouteHandlerResources } from '../../routes/typings'; -import { InternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client.js'; +import { InternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client.js'; import { withApmSpan } from '../../utils/with_apm_span'; import { getApmDataViewTitle } from './get_apm_data_view_title'; diff --git a/x-pack/plugins/apm/server/lib/data_view/get_apm_data_view_title.test.ts b/x-pack/plugins/apm/server/routes/data_view/get_apm_data_view_title.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/data_view/get_apm_data_view_title.test.ts rename to x-pack/plugins/apm/server/routes/data_view/get_apm_data_view_title.test.ts diff --git a/x-pack/plugins/apm/server/lib/data_view/get_apm_data_view_title.ts b/x-pack/plugins/apm/server/routes/data_view/get_apm_data_view_title.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/data_view/get_apm_data_view_title.ts rename to x-pack/plugins/apm/server/routes/data_view/get_apm_data_view_title.ts diff --git a/x-pack/plugins/apm/server/lib/data_view/get_dynamic_data_view.ts b/x-pack/plugins/apm/server/routes/data_view/get_dynamic_data_view.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/data_view/get_dynamic_data_view.ts rename to x-pack/plugins/apm/server/routes/data_view/get_dynamic_data_view.ts diff --git a/x-pack/plugins/apm/server/routes/data_view.ts b/x-pack/plugins/apm/server/routes/data_view/route.ts similarity index 78% rename from x-pack/plugins/apm/server/routes/data_view.ts rename to x-pack/plugins/apm/server/routes/data_view/route.ts index 3590ef9db9bd0..4e1c0ca050a09 100644 --- a/x-pack/plugins/apm/server/routes/data_view.ts +++ b/x-pack/plugins/apm/server/routes/data_view/route.ts @@ -5,11 +5,11 @@ * 2.0. */ -import { createStaticDataView } from '../lib/data_view/create_static_data_view'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getDynamicDataView } from '../lib/data_view/get_dynamic_data_view'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; +import { createStaticDataView } from './create_static_data_view'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getDynamicDataView } from './get_dynamic_data_view'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; const staticDataViewRoute = createApmServerRoute({ endpoint: 'POST /internal/apm/data_view/static', diff --git a/x-pack/plugins/apm/server/lib/environments/__snapshots__/get_all_environments.test.ts.snap b/x-pack/plugins/apm/server/routes/environments/__snapshots__/get_all_environments.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/environments/__snapshots__/get_all_environments.test.ts.snap rename to x-pack/plugins/apm/server/routes/environments/__snapshots__/get_all_environments.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/environments/__snapshots__/get_environments.test.ts.snap b/x-pack/plugins/apm/server/routes/environments/__snapshots__/get_environments.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/environments/__snapshots__/get_environments.test.ts.snap rename to x-pack/plugins/apm/server/routes/environments/__snapshots__/get_environments.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/environments/get_all_environments.test.ts b/x-pack/plugins/apm/server/routes/environments/get_all_environments.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/environments/get_all_environments.test.ts rename to x-pack/plugins/apm/server/routes/environments/get_all_environments.test.ts diff --git a/x-pack/plugins/apm/server/lib/environments/get_all_environments.ts b/x-pack/plugins/apm/server/routes/environments/get_all_environments.ts similarity index 93% rename from x-pack/plugins/apm/server/lib/environments/get_all_environments.ts rename to x-pack/plugins/apm/server/routes/environments/get_all_environments.ts index 7bdb21b9fda78..f479fd185b889 100644 --- a/x-pack/plugins/apm/server/lib/environments/get_all_environments.ts +++ b/x-pack/plugins/apm/server/routes/environments/get_all_environments.ts @@ -7,13 +7,13 @@ import { termQuery } from '../../../../observability/server'; import { ProcessorEvent } from '../../../common/processor_event'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { SERVICE_NAME, SERVICE_ENVIRONMENT, } from '../../../common/elasticsearch_fieldnames'; import { ENVIRONMENT_NOT_DEFINED } from '../../../common/environment_filter_values'; -import { getProcessorEventForTransactions } from '../helpers/transactions'; +import { getProcessorEventForTransactions } from '../../lib/helpers/transactions'; /** * This is used for getting *all* environments, and does not filter by range. diff --git a/x-pack/plugins/apm/server/lib/environments/get_environments.test.ts b/x-pack/plugins/apm/server/routes/environments/get_environments.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/environments/get_environments.test.ts rename to x-pack/plugins/apm/server/routes/environments/get_environments.test.ts diff --git a/x-pack/plugins/apm/server/lib/environments/get_environments.ts b/x-pack/plugins/apm/server/routes/environments/get_environments.ts similarity index 93% rename from x-pack/plugins/apm/server/lib/environments/get_environments.ts rename to x-pack/plugins/apm/server/routes/environments/get_environments.ts index cd5caab6d2587..34ac9cb18d796 100644 --- a/x-pack/plugins/apm/server/lib/environments/get_environments.ts +++ b/x-pack/plugins/apm/server/routes/environments/get_environments.ts @@ -12,8 +12,8 @@ import { import { ENVIRONMENT_NOT_DEFINED } from '../../../common/environment_filter_values'; import { ProcessorEvent } from '../../../common/processor_event'; import { rangeQuery, termQuery } from '../../../../observability/server'; -import { getProcessorEventForTransactions } from '../helpers/transactions'; -import { Setup } from '../helpers/setup_request'; +import { getProcessorEventForTransactions } from '../../lib/helpers/transactions'; +import { Setup } from '../../lib/helpers/setup_request'; /** * This is used for getting the list of environments for the environments selector, diff --git a/x-pack/plugins/apm/server/routes/environments.ts b/x-pack/plugins/apm/server/routes/environments/route.ts similarity index 72% rename from x-pack/plugins/apm/server/routes/environments.ts rename to x-pack/plugins/apm/server/routes/environments/route.ts index 38328a63a411e..6c980187cd331 100644 --- a/x-pack/plugins/apm/server/routes/environments.ts +++ b/x-pack/plugins/apm/server/routes/environments/route.ts @@ -6,13 +6,13 @@ */ import * as t from 'io-ts'; -import { maxSuggestions } from '../../../observability/common'; -import { getSearchAggregatedTransactions } from '../lib/helpers/transactions'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getEnvironments } from '../lib/environments/get_environments'; -import { rangeRt } from './default_api_types'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; +import { maxSuggestions } from '../../../../observability/common'; +import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getEnvironments } from './get_environments'; +import { rangeRt } from '../default_api_types'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; const environmentsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/environments', diff --git a/x-pack/plugins/apm/server/lib/errors/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/errors/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/errors/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/errors/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/get_buckets.test.ts.snap b/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/get_buckets.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/get_buckets.test.ts.snap rename to x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/get_buckets.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/errors/distribution/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/errors/distribution/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.test.ts b/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.test.ts rename to x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.test.ts diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.ts b/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.ts rename to x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.ts index 625089e99d360..dd2dd3bc9ff3e 100644 --- a/x-pack/plugins/apm/server/lib/errors/distribution/get_buckets.ts +++ b/x-pack/plugins/apm/server/routes/errors/distribution/get_buckets.ts @@ -16,7 +16,7 @@ import { termQuery, } from '../../../../../observability/server'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function getBuckets({ environment, diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/get_distribution.ts b/x-pack/plugins/apm/server/routes/errors/distribution/get_distribution.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/errors/distribution/get_distribution.ts rename to x-pack/plugins/apm/server/routes/errors/distribution/get_distribution.ts index 7d5cbe9f95584..9e7221b7cd939 100644 --- a/x-pack/plugins/apm/server/lib/errors/distribution/get_distribution.ts +++ b/x-pack/plugins/apm/server/routes/errors/distribution/get_distribution.ts @@ -6,7 +6,7 @@ */ import { offsetPreviousPeriodCoordinates } from '../../../../common/utils/offset_previous_period_coordinate'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { BUCKET_TARGET_COUNT } from '../../transactions/constants'; import { getBuckets } from './get_buckets'; diff --git a/x-pack/plugins/apm/server/lib/errors/distribution/queries.test.ts b/x-pack/plugins/apm/server/routes/errors/distribution/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/errors/distribution/queries.test.ts rename to x-pack/plugins/apm/server/routes/errors/distribution/queries.test.ts diff --git a/x-pack/plugins/apm/server/lib/errors/get_error_group_sample.ts b/x-pack/plugins/apm/server/routes/errors/get_error_group_sample.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/errors/get_error_group_sample.ts rename to x-pack/plugins/apm/server/routes/errors/get_error_group_sample.ts index 35c3ce999a9ff..2c5073fb5dc66 100644 --- a/x-pack/plugins/apm/server/lib/errors/get_error_group_sample.ts +++ b/x-pack/plugins/apm/server/routes/errors/get_error_group_sample.ts @@ -14,7 +14,7 @@ import { import { ProcessorEvent } from '../../../common/processor_event'; import { rangeQuery, kqlQuery } from '../../../../observability/server'; import { environmentQuery } from '../../../common/utils/environment_query'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { getTransaction } from '../transactions/get_transaction'; export async function getErrorGroupSample({ diff --git a/x-pack/plugins/apm/server/lib/errors/get_error_groups.ts b/x-pack/plugins/apm/server/routes/errors/get_error_groups.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/errors/get_error_groups.ts rename to x-pack/plugins/apm/server/routes/errors/get_error_groups.ts index 4d4c935d20e76..b26f3f4e7b4fe 100644 --- a/x-pack/plugins/apm/server/lib/errors/get_error_groups.ts +++ b/x-pack/plugins/apm/server/routes/errors/get_error_groups.ts @@ -18,8 +18,8 @@ import { ERROR_LOG_MESSAGE, SERVICE_NAME, } from '../../../common/elasticsearch_fieldnames'; -import { getErrorName } from '../helpers/get_error_name'; -import { Setup } from '../helpers/setup_request'; +import { getErrorName } from '../../lib/helpers/get_error_name'; +import { Setup } from '../../lib/helpers/setup_request'; export async function getErrorGroups({ environment, diff --git a/x-pack/plugins/apm/server/lib/errors/queries.test.ts b/x-pack/plugins/apm/server/routes/errors/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/errors/queries.test.ts rename to x-pack/plugins/apm/server/routes/errors/queries.test.ts diff --git a/x-pack/plugins/apm/server/routes/errors.ts b/x-pack/plugins/apm/server/routes/errors/route.ts similarity index 86% rename from x-pack/plugins/apm/server/routes/errors.ts rename to x-pack/plugins/apm/server/routes/errors/route.ts index 02df03f108083..602fed89be93c 100644 --- a/x-pack/plugins/apm/server/routes/errors.ts +++ b/x-pack/plugins/apm/server/routes/errors/route.ts @@ -6,18 +6,18 @@ */ import * as t from 'io-ts'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { getErrorDistribution } from '../lib/errors/distribution/get_distribution'; -import { getErrorGroupSample } from '../lib/errors/get_error_group_sample'; -import { getErrorGroups } from '../lib/errors/get_error_groups'; -import { setupRequest } from '../lib/helpers/setup_request'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { getErrorDistribution } from './distribution/get_distribution'; +import { getErrorGroupSample } from './get_error_group_sample'; +import { getErrorGroups } from './get_error_groups'; +import { setupRequest } from '../../lib/helpers/setup_request'; import { environmentRt, kueryRt, rangeRt, comparisonRangeRt, -} from './default_api_types'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; +} from '../default_api_types'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; const errorsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services/{serviceName}/errors', diff --git a/x-pack/plugins/apm/server/lib/event_metadata/get_event_metadata.ts b/x-pack/plugins/apm/server/routes/event_metadata/get_event_metadata.ts similarity index 93% rename from x-pack/plugins/apm/server/lib/event_metadata/get_event_metadata.ts rename to x-pack/plugins/apm/server/routes/event_metadata/get_event_metadata.ts index b9e0dee52a42e..006c87a3dac20 100644 --- a/x-pack/plugins/apm/server/lib/event_metadata/get_event_metadata.ts +++ b/x-pack/plugins/apm/server/routes/event_metadata/get_event_metadata.ts @@ -12,7 +12,7 @@ import { TRANSACTION_ID, } from '../../../common/elasticsearch_fieldnames'; import { ProcessorEvent } from '../../../common/processor_event'; -import type { APMEventClient } from '../helpers/create_es_client/create_apm_event_client'; +import type { APMEventClient } from '../../lib/helpers/create_es_client/create_apm_event_client'; export async function getEventMetadata({ apmEventClient, diff --git a/x-pack/plugins/apm/server/routes/event_metadata.ts b/x-pack/plugins/apm/server/routes/event_metadata/route.ts similarity index 72% rename from x-pack/plugins/apm/server/routes/event_metadata.ts rename to x-pack/plugins/apm/server/routes/event_metadata/route.ts index 3a40e445007ee..3140372aa69de 100644 --- a/x-pack/plugins/apm/server/routes/event_metadata.ts +++ b/x-pack/plugins/apm/server/routes/event_metadata/route.ts @@ -6,11 +6,11 @@ */ import * as t from 'io-ts'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { getEventMetadata } from '../lib/event_metadata/get_event_metadata'; -import { processorEventRt } from '../../common/processor_event'; -import { setupRequest } from '../lib/helpers/setup_request'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { getEventMetadata } from './get_event_metadata'; +import { processorEventRt } from '../../../common/processor_event'; +import { setupRequest } from '../../lib/helpers/setup_request'; const eventMetadataRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/event_metadata/{processorEvent}/{id}', diff --git a/x-pack/plugins/apm/server/routes/fallback_to_transactions.ts b/x-pack/plugins/apm/server/routes/fallback_to_transactions/route.ts similarity index 70% rename from x-pack/plugins/apm/server/routes/fallback_to_transactions.ts rename to x-pack/plugins/apm/server/routes/fallback_to_transactions/route.ts index 53e3ebae0d4ff..77b5aeeac6ee8 100644 --- a/x-pack/plugins/apm/server/routes/fallback_to_transactions.ts +++ b/x-pack/plugins/apm/server/routes/fallback_to_transactions/route.ts @@ -6,11 +6,11 @@ */ import * as t from 'io-ts'; -import { getIsUsingTransactionEvents } from '../lib/helpers/transactions/get_is_using_transaction_events'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { kueryRt, rangeRt } from './default_api_types'; +import { getIsUsingTransactionEvents } from '../../lib/helpers/transactions/get_is_using_transaction_events'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { kueryRt, rangeRt } from '../default_api_types'; const fallbackToTransactionsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/fallback_to_transactions', diff --git a/x-pack/plugins/apm/server/lib/fleet/create_cloud_apm_package_policy.ts b/x-pack/plugins/apm/server/routes/fleet/create_cloud_apm_package_policy.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/fleet/create_cloud_apm_package_policy.ts rename to x-pack/plugins/apm/server/routes/fleet/create_cloud_apm_package_policy.ts index 6726865c6c3a5..a3c7bfd079a4c 100644 --- a/x-pack/plugins/apm/server/lib/fleet/create_cloud_apm_package_policy.ts +++ b/x-pack/plugins/apm/server/routes/fleet/create_cloud_apm_package_policy.ts @@ -20,7 +20,7 @@ import { APMPluginStartDependencies, } from '../../types'; import { getApmPackagePolicyDefinition } from './get_apm_package_policy_definition'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { mergePackagePolicyWithApm } from './merge_package_policy_with_apm'; export async function createCloudApmPackgePolicy({ diff --git a/x-pack/plugins/apm/server/lib/fleet/get_agents.ts b/x-pack/plugins/apm/server/routes/fleet/get_agents.ts similarity index 89% rename from x-pack/plugins/apm/server/lib/fleet/get_agents.ts rename to x-pack/plugins/apm/server/routes/fleet/get_agents.ts index 86a6294e96b09..bcfe42428dbe2 100644 --- a/x-pack/plugins/apm/server/lib/fleet/get_agents.ts +++ b/x-pack/plugins/apm/server/routes/fleet/get_agents.ts @@ -11,7 +11,7 @@ import { SavedObjectsClientContract, } from 'kibana/server'; import { APMPluginStartDependencies } from '../../types'; -import { getInternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client'; +import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; export async function getFleetAgents({ policyIds, diff --git a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policies.ts b/x-pack/plugins/apm/server/routes/fleet/get_apm_package_policies.ts similarity index 89% rename from x-pack/plugins/apm/server/lib/fleet/get_apm_package_policies.ts rename to x-pack/plugins/apm/server/routes/fleet/get_apm_package_policies.ts index 5128339368f46..89ab9df051f70 100644 --- a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policies.ts +++ b/x-pack/plugins/apm/server/routes/fleet/get_apm_package_policies.ts @@ -11,7 +11,7 @@ import { SavedObjectsClientContract, } from 'kibana/server'; import { APMPluginStartDependencies } from '../../types'; -import { getInternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client'; +import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; export async function getApmPackgePolicies({ core, diff --git a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.test.ts b/x-pack/plugins/apm/server/routes/fleet/get_apm_package_policy_definition.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.test.ts rename to x-pack/plugins/apm/server/routes/fleet/get_apm_package_policy_definition.test.ts diff --git a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts b/x-pack/plugins/apm/server/routes/fleet/get_apm_package_policy_definition.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts rename to x-pack/plugins/apm/server/routes/fleet/get_apm_package_policy_definition.ts diff --git a/x-pack/plugins/apm/server/lib/fleet/get_cloud_apm_package_policy.ts b/x-pack/plugins/apm/server/routes/fleet/get_cloud_apm_package_policy.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/fleet/get_cloud_apm_package_policy.ts rename to x-pack/plugins/apm/server/routes/fleet/get_cloud_apm_package_policy.ts diff --git a/x-pack/plugins/apm/server/lib/fleet/get_unsupported_apm_server_schema.test.ts b/x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/fleet/get_unsupported_apm_server_schema.test.ts rename to x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.test.ts diff --git a/x-pack/plugins/apm/server/lib/fleet/get_unsupported_apm_server_schema.ts b/x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/fleet/get_unsupported_apm_server_schema.ts rename to x-pack/plugins/apm/server/routes/fleet/get_unsupported_apm_server_schema.ts diff --git a/x-pack/plugins/apm/server/lib/fleet/is_superuser.ts b/x-pack/plugins/apm/server/routes/fleet/is_superuser.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/fleet/is_superuser.ts rename to x-pack/plugins/apm/server/routes/fleet/is_superuser.ts diff --git a/x-pack/plugins/apm/server/lib/fleet/merge_package_policy_with_apm.ts b/x-pack/plugins/apm/server/routes/fleet/merge_package_policy_with_apm.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/fleet/merge_package_policy_with_apm.ts rename to x-pack/plugins/apm/server/routes/fleet/merge_package_policy_with_apm.ts index fd3e3db700fd0..5442185decde3 100644 --- a/x-pack/plugins/apm/server/lib/fleet/merge_package_policy_with_apm.ts +++ b/x-pack/plugins/apm/server/routes/fleet/merge_package_policy_with_apm.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { APMPluginStartDependencies } from '../../types'; import { listConfigurations } from '../settings/agent_configuration/list_configurations'; import { diff --git a/x-pack/plugins/apm/server/lib/fleet/register_fleet_policy_callbacks.ts b/x-pack/plugins/apm/server/routes/fleet/register_fleet_policy_callbacks.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/fleet/register_fleet_policy_callbacks.ts rename to x-pack/plugins/apm/server/routes/fleet/register_fleet_policy_callbacks.ts index 6fcd0433e2e83..06e55c7fdcca8 100644 --- a/x-pack/plugins/apm/server/lib/fleet/register_fleet_policy_callbacks.ts +++ b/x-pack/plugins/apm/server/routes/fleet/register_fleet_policy_callbacks.ts @@ -17,7 +17,7 @@ import { import { AgentConfiguration } from '../../../common/agent_configuration/configuration_types'; import { AGENT_NAME } from '../../../common/elasticsearch_fieldnames'; import { APMPluginStartDependencies } from '../../types'; -import { setupRequest } from '../helpers/setup_request'; +import { setupRequest } from '../../lib/helpers/setup_request'; import { mergePackagePolicyWithApm } from './merge_package_policy_with_apm'; export async function registerFleetPolicyCallbacks({ diff --git a/x-pack/plugins/apm/server/routes/fleet.ts b/x-pack/plugins/apm/server/routes/fleet/route.ts similarity index 89% rename from x-pack/plugins/apm/server/routes/fleet.ts rename to x-pack/plugins/apm/server/routes/fleet/route.ts index a6e0cb09d894a..e9e7f2254bcfe 100644 --- a/x-pack/plugins/apm/server/routes/fleet.ts +++ b/x-pack/plugins/apm/server/routes/fleet/route.ts @@ -12,20 +12,20 @@ import { keyBy } from 'lodash'; import { APM_SERVER_SCHEMA_SAVED_OBJECT_ID, APM_SERVER_SCHEMA_SAVED_OBJECT_TYPE, -} from '../../common/apm_saved_object_constants'; -import { createCloudApmPackgePolicy } from '../lib/fleet/create_cloud_apm_package_policy'; -import { getFleetAgents } from '../lib/fleet/get_agents'; -import { getApmPackgePolicies } from '../lib/fleet/get_apm_package_policies'; +} from '../../../common/apm_saved_object_constants'; +import { createCloudApmPackgePolicy } from './create_cloud_apm_package_policy'; +import { getFleetAgents } from './get_agents'; +import { getApmPackgePolicies } from './get_apm_package_policies'; import { getApmPackagePolicy, getCloudAgentPolicy, -} from '../lib/fleet/get_cloud_apm_package_policy'; -import { getUnsupportedApmServerSchema } from '../lib/fleet/get_unsupported_apm_server_schema'; -import { isSuperuser } from '../lib/fleet/is_superuser'; -import { getInternalSavedObjectsClient } from '../lib/helpers/get_internal_saved_objects_client'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; +} from './get_cloud_apm_package_policy'; +import { getUnsupportedApmServerSchema } from './get_unsupported_apm_server_schema'; +import { isSuperuser } from './is_superuser'; +import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; const hasFleetDataRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/fleet/has_data', diff --git a/x-pack/plugins/apm/server/lib/fleet/source_maps.test.ts b/x-pack/plugins/apm/server/routes/fleet/source_maps.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/fleet/source_maps.test.ts rename to x-pack/plugins/apm/server/routes/fleet/source_maps.test.ts diff --git a/x-pack/plugins/apm/server/lib/fleet/source_maps.ts b/x-pack/plugins/apm/server/routes/fleet/source_maps.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/fleet/source_maps.ts rename to x-pack/plugins/apm/server/routes/fleet/source_maps.ts index 8c11f80f21191..1d70076a828dd 100644 --- a/x-pack/plugins/apm/server/lib/fleet/source_maps.ts +++ b/x-pack/plugins/apm/server/routes/fleet/source_maps.ts @@ -13,7 +13,7 @@ import { import { promisify } from 'util'; import { unzip } from 'zlib'; import { Artifact } from '../../../../fleet/server'; -import { SourceMap } from '../../routes/source_maps'; +import { SourceMap } from '../source_maps/route'; import { APMPluginStartDependencies } from '../../types'; import { getApmPackgePolicies } from './get_apm_package_policies'; import { APM_SERVER, PackagePolicy } from './register_fleet_policy_callbacks'; diff --git a/x-pack/plugins/apm/server/lib/fleet/sync_agent_configs_to_apm_package_policies.ts b/x-pack/plugins/apm/server/routes/fleet/sync_agent_configs_to_apm_package_policies.ts similarity index 90% rename from x-pack/plugins/apm/server/lib/fleet/sync_agent_configs_to_apm_package_policies.ts rename to x-pack/plugins/apm/server/routes/fleet/sync_agent_configs_to_apm_package_policies.ts index 5f3a3f74598a1..c3660eee0afae 100644 --- a/x-pack/plugins/apm/server/lib/fleet/sync_agent_configs_to_apm_package_policies.ts +++ b/x-pack/plugins/apm/server/routes/fleet/sync_agent_configs_to_apm_package_policies.ts @@ -10,10 +10,10 @@ import { CoreStart, SavedObjectsClientContract, } from 'kibana/server'; -import { TelemetryUsageCounter } from '../../routes/typings'; +import { TelemetryUsageCounter } from '../typings'; import { APMPluginStartDependencies } from '../../types'; -import { getInternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client'; -import { Setup } from '../helpers/setup_request'; +import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; +import { Setup } from '../../lib/helpers/setup_request'; import { listConfigurations } from '../settings/agent_configuration/list_configurations'; import { getApmPackgePolicies } from './get_apm_package_policies'; import { getPackagePolicyWithAgentConfigurations } from './register_fleet_policy_callbacks'; diff --git a/x-pack/plugins/apm/server/lib/latency/get_overall_latency_distribution.ts b/x-pack/plugins/apm/server/routes/latency_distribution/get_overall_latency_distribution.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/latency/get_overall_latency_distribution.ts rename to x-pack/plugins/apm/server/routes/latency_distribution/get_overall_latency_distribution.ts diff --git a/x-pack/plugins/apm/server/lib/latency/get_percentile_threshold_value.ts b/x-pack/plugins/apm/server/routes/latency_distribution/get_percentile_threshold_value.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/latency/get_percentile_threshold_value.ts rename to x-pack/plugins/apm/server/routes/latency_distribution/get_percentile_threshold_value.ts diff --git a/x-pack/plugins/apm/server/routes/latency_distribution.ts b/x-pack/plugins/apm/server/routes/latency_distribution/route.ts similarity index 80% rename from x-pack/plugins/apm/server/routes/latency_distribution.ts rename to x-pack/plugins/apm/server/routes/latency_distribution/route.ts index 826898784835e..f30e98dd8c7b8 100644 --- a/x-pack/plugins/apm/server/routes/latency_distribution.ts +++ b/x-pack/plugins/apm/server/routes/latency_distribution/route.ts @@ -7,11 +7,11 @@ import * as t from 'io-ts'; import { toNumberRt } from '@kbn/io-ts-utils/to_number_rt'; -import { getOverallLatencyDistribution } from '../lib/latency/get_overall_latency_distribution'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { environmentRt, kueryRt, rangeRt } from './default_api_types'; +import { getOverallLatencyDistribution } from './get_overall_latency_distribution'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; const latencyOverallDistributionRoute = createApmServerRoute({ endpoint: 'POST /internal/apm/latency/overall_distribution', diff --git a/x-pack/plugins/apm/server/lib/latency/types.ts b/x-pack/plugins/apm/server/routes/latency_distribution/types.ts similarity index 92% rename from x-pack/plugins/apm/server/lib/latency/types.ts rename to x-pack/plugins/apm/server/routes/latency_distribution/types.ts index 17c036f44f088..d2eb9cde0bf3b 100644 --- a/x-pack/plugins/apm/server/lib/latency/types.ts +++ b/x-pack/plugins/apm/server/routes/latency_distribution/types.ts @@ -10,7 +10,7 @@ import type { CorrelationsClientParams, } from '../../../common/correlations/types'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; export interface OverallLatencyDistributionOptions extends CorrelationsClientParams { diff --git a/x-pack/plugins/apm/server/lib/metrics/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/metrics/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/metrics/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/metrics/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/default.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/default.ts similarity index 92% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/default.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/default.ts index 54e10bd8adde0..b4e95d5217daa 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/default.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/default.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getCPUChartData } from './shared/cpu'; import { getMemoryChartData } from './shared/memory'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.test.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.test.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.test.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.test.ts index c22c326473e2c..8b3fcbfe5ce88 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.test.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.test.ts @@ -9,7 +9,7 @@ import { METRIC_JAVA_GC_COUNT, METRIC_JAVA_GC_TIME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { ChartBase } from '../../../types'; import { fetchAndTransformGcMetrics } from './fetch_and_transform_gc_metrics'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts index 2d4cf2f70ab5f..790fcf5720745 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/fetch_and_transform_gc_metrics.ts @@ -8,8 +8,8 @@ import { sum, round } from 'lodash'; import { euiLightVars as theme } from '@kbn/ui-shared-deps-src/theme'; import { isFiniteNumber } from '../../../../../../common/utils/is_finite_number'; -import { Setup } from '../../../../helpers/setup_request'; -import { getMetricsDateHistogramParams } from '../../../../helpers/metrics'; +import { Setup } from '../../../../../lib/helpers/setup_request'; +import { getMetricsDateHistogramParams } from '../../../../../lib/helpers/metrics'; import { ChartBase } from '../../../types'; import { @@ -19,7 +19,7 @@ import { METRIC_JAVA_GC_TIME, SERVICE_NAME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { getBucketSize } from '../../../../helpers/get_bucket_size'; +import { getBucketSize } from '../../../../../lib/helpers/get_bucket_size'; import { getVizColorForIndex } from '../../../../../../common/viz_colors'; import { JAVA_AGENT_NAMES } from '../../../../../../common/agent_name'; import { diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_rate_chart.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/get_gc_rate_chart.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_rate_chart.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/get_gc_rate_chart.ts index 22dcb3e0f08ff..a22f7df915617 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_rate_chart.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/get_gc_rate_chart.ts @@ -8,7 +8,7 @@ import { euiLightVars as theme } from '@kbn/ui-shared-deps-src/theme'; import { i18n } from '@kbn/i18n'; import { METRIC_JAVA_GC_COUNT } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { fetchAndTransformGcMetrics } from './fetch_and_transform_gc_metrics'; import { ChartBase } from '../../../types'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_time_chart.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/get_gc_time_chart.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_time_chart.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/get_gc_time_chart.ts index 4b85ad94f6494..596d871b916f9 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/gc/get_gc_time_chart.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/gc/get_gc_time_chart.ts @@ -8,7 +8,7 @@ import { euiLightVars as theme } from '@kbn/ui-shared-deps-src/theme'; import { i18n } from '@kbn/i18n'; import { METRIC_JAVA_GC_TIME } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { fetchAndTransformGcMetrics } from './fetch_and_transform_gc_metrics'; import { ChartBase } from '../../../types'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/heap_memory/index.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/heap_memory/index.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/heap_memory/index.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/heap_memory/index.ts index a872a3af76d7e..cde28e77e38ca 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/heap_memory/index.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/heap_memory/index.ts @@ -13,7 +13,7 @@ import { METRIC_JAVA_HEAP_MEMORY_USED, AGENT_NAME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; import { ChartBase } from '../../../types'; import { JAVA_AGENT_NAMES } from '../../../../../../common/agent_name'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/index.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/index.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/index.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/index.ts index 9039bb19ebb78..5250884ed5e44 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/index.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/index.ts @@ -7,7 +7,7 @@ import { withApmSpan } from '../../../../utils/with_apm_span'; import { getHeapMemoryChart } from './heap_memory'; -import { Setup } from '../../../helpers/setup_request'; +import { Setup } from '../../../../lib/helpers/setup_request'; import { getNonHeapMemoryChart } from './non_heap_memory'; import { getThreadCountChart } from './thread_count'; import { getCPUChartData } from '../shared/cpu'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/non_heap_memory/index.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/non_heap_memory/index.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/non_heap_memory/index.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/non_heap_memory/index.ts index 9fa758cb4dbd8..ffcce74ee6766 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/non_heap_memory/index.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/non_heap_memory/index.ts @@ -13,7 +13,7 @@ import { METRIC_JAVA_NON_HEAP_MEMORY_USED, AGENT_NAME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { ChartBase } from '../../../types'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; import { JAVA_AGENT_NAMES } from '../../../../../../common/agent_name'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/thread_count/index.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/thread_count/index.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/java/thread_count/index.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/java/thread_count/index.ts index 306666d27cd1c..699812ffc8463 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/java/thread_count/index.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/java/thread_count/index.ts @@ -11,7 +11,7 @@ import { METRIC_JAVA_THREAD_COUNT, AGENT_NAME, } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { ChartBase } from '../../../types'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; import { JAVA_AGENT_NAMES } from '../../../../../../common/agent_name'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/cpu/index.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/shared/cpu/index.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/shared/cpu/index.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/shared/cpu/index.ts index 0911081b20324..95c39d4bd55cc 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/cpu/index.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/shared/cpu/index.ts @@ -11,7 +11,7 @@ import { METRIC_SYSTEM_CPU_PERCENT, METRIC_PROCESS_CPU_PERCENT, } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { ChartBase } from '../../../types'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; diff --git a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts b/x-pack/plugins/apm/server/routes/metrics/by_agent/shared/memory/index.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts rename to x-pack/plugins/apm/server/routes/metrics/by_agent/shared/memory/index.ts index 828ee28260471..d0e84211ef455 100644 --- a/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts +++ b/x-pack/plugins/apm/server/routes/metrics/by_agent/shared/memory/index.ts @@ -13,7 +13,7 @@ import { METRIC_SYSTEM_FREE_MEMORY, METRIC_SYSTEM_TOTAL_MEMORY, } from '../../../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../../../helpers/setup_request'; +import { Setup } from '../../../../../lib/helpers/setup_request'; import { fetchAndTransformMetrics } from '../../../fetch_and_transform_metrics'; import { ChartBase } from '../../../types'; diff --git a/x-pack/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts b/x-pack/plugins/apm/server/routes/metrics/fetch_and_transform_metrics.ts similarity index 94% rename from x-pack/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts rename to x-pack/plugins/apm/server/routes/metrics/fetch_and_transform_metrics.ts index 0a24179ed9fc6..e607ae08e0b23 100644 --- a/x-pack/plugins/apm/server/lib/metrics/fetch_and_transform_metrics.ts +++ b/x-pack/plugins/apm/server/routes/metrics/fetch_and_transform_metrics.ts @@ -10,8 +10,9 @@ import { euiLightVars as theme } from '@kbn/ui-shared-deps-src/theme'; import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; import { getVizColorForIndex } from '../../../common/viz_colors'; import { AggregationOptionsByType } from '../../../../../../src/core/types/elasticsearch'; -import { getMetricsDateHistogramParams } from '../helpers/metrics'; -import { Setup } from '../helpers/setup_request'; +import { APMEventESSearchRequest } from '../../lib/helpers/create_es_client/create_apm_event_client'; +import { getMetricsDateHistogramParams } from '../../lib/helpers/metrics'; +import { Setup } from '../../lib/helpers/setup_request'; import { ChartBase } from './types'; import { environmentQuery, @@ -20,7 +21,6 @@ import { import { kqlQuery, rangeQuery } from '../../../../observability/server'; import { ProcessorEvent } from '../../../common/processor_event'; import { SERVICE_NAME } from '../../../common/elasticsearch_fieldnames'; -import { APMEventESSearchRequest } from '../helpers/create_es_client/create_apm_event_client'; import { PromiseReturnType } from '../../../../observability/typings/common'; type MetricsAggregationMap = Unionize<{ diff --git a/x-pack/plugins/apm/server/lib/metrics/get_metrics_chart_data_by_agent.ts b/x-pack/plugins/apm/server/routes/metrics/get_metrics_chart_data_by_agent.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/metrics/get_metrics_chart_data_by_agent.ts rename to x-pack/plugins/apm/server/routes/metrics/get_metrics_chart_data_by_agent.ts index 611bb8196032c..c6927417687da 100644 --- a/x-pack/plugins/apm/server/lib/metrics/get_metrics_chart_data_by_agent.ts +++ b/x-pack/plugins/apm/server/routes/metrics/get_metrics_chart_data_by_agent.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { getJavaMetricsCharts } from './by_agent/java'; import { getDefaultMetricsCharts } from './by_agent/default'; import { isJavaAgentName } from '../../../common/agent_name'; diff --git a/x-pack/plugins/apm/server/lib/metrics/queries.test.ts b/x-pack/plugins/apm/server/routes/metrics/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/metrics/queries.test.ts rename to x-pack/plugins/apm/server/routes/metrics/queries.test.ts diff --git a/x-pack/plugins/apm/server/routes/metrics.ts b/x-pack/plugins/apm/server/routes/metrics/route.ts similarity index 76% rename from x-pack/plugins/apm/server/routes/metrics.ts rename to x-pack/plugins/apm/server/routes/metrics/route.ts index 36a504859797a..4e15188827e9b 100644 --- a/x-pack/plugins/apm/server/routes/metrics.ts +++ b/x-pack/plugins/apm/server/routes/metrics/route.ts @@ -6,11 +6,11 @@ */ import * as t from 'io-ts'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getMetricsChartDataByAgent } from '../lib/metrics/get_metrics_chart_data_by_agent'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { environmentRt, kueryRt, rangeRt } from './default_api_types'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getMetricsChartDataByAgent } from './get_metrics_chart_data_by_agent'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; const metricsChartsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services/{serviceName}/metrics/charts', diff --git a/x-pack/plugins/apm/server/lib/metrics/types.ts b/x-pack/plugins/apm/server/routes/metrics/types.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/metrics/types.ts rename to x-pack/plugins/apm/server/routes/metrics/types.ts diff --git a/x-pack/plugins/apm/server/lib/observability_overview/get_service_count.ts b/x-pack/plugins/apm/server/routes/observability_overview/get_service_count.ts similarity index 90% rename from x-pack/plugins/apm/server/lib/observability_overview/get_service_count.ts rename to x-pack/plugins/apm/server/routes/observability_overview/get_service_count.ts index 3eb11f668115d..74b70e5fa7d60 100644 --- a/x-pack/plugins/apm/server/lib/observability_overview/get_service_count.ts +++ b/x-pack/plugins/apm/server/routes/observability_overview/get_service_count.ts @@ -8,8 +8,8 @@ import { ProcessorEvent } from '../../../common/processor_event'; import { rangeQuery } from '../../../../observability/server'; import { SERVICE_NAME } from '../../../common/elasticsearch_fieldnames'; -import { Setup } from '../helpers/setup_request'; -import { getProcessorEventForTransactions } from '../helpers/transactions'; +import { Setup } from '../../lib/helpers/setup_request'; +import { getProcessorEventForTransactions } from '../../lib/helpers/transactions'; export async function getServiceCount({ setup, diff --git a/x-pack/plugins/apm/server/lib/observability_overview/get_transactions_per_minute.ts b/x-pack/plugins/apm/server/routes/observability_overview/get_transactions_per_minute.ts similarity index 93% rename from x-pack/plugins/apm/server/lib/observability_overview/get_transactions_per_minute.ts rename to x-pack/plugins/apm/server/routes/observability_overview/get_transactions_per_minute.ts index de4d6dec4e1fe..83e51d7d638fe 100644 --- a/x-pack/plugins/apm/server/lib/observability_overview/get_transactions_per_minute.ts +++ b/x-pack/plugins/apm/server/routes/observability_overview/get_transactions_per_minute.ts @@ -11,12 +11,12 @@ import { } from '../../../common/transaction_types'; import { TRANSACTION_TYPE } from '../../../common/elasticsearch_fieldnames'; import { rangeQuery } from '../../../../observability/server'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { getDocumentTypeFilterForTransactions, getProcessorEventForTransactions, -} from '../helpers/transactions'; -import { calculateThroughputWithRange } from '../helpers/calculate_throughput'; +} from '../../lib/helpers/transactions'; +import { calculateThroughputWithRange } from '../../lib/helpers/calculate_throughput'; export async function getTransactionsPerMinute({ setup, diff --git a/x-pack/plugins/apm/server/lib/observability_overview/has_data.ts b/x-pack/plugins/apm/server/routes/observability_overview/has_data.ts similarity index 94% rename from x-pack/plugins/apm/server/lib/observability_overview/has_data.ts rename to x-pack/plugins/apm/server/routes/observability_overview/has_data.ts index f09b67ec98dfb..9f98af055e696 100644 --- a/x-pack/plugins/apm/server/lib/observability_overview/has_data.ts +++ b/x-pack/plugins/apm/server/routes/observability_overview/has_data.ts @@ -6,7 +6,7 @@ */ import { ProcessorEvent } from '../../../common/processor_event'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; export async function getHasData({ setup }: { setup: Setup }) { const { apmEventClient } = setup; diff --git a/x-pack/plugins/apm/server/routes/observability_overview.ts b/x-pack/plugins/apm/server/routes/observability_overview/route.ts similarity index 74% rename from x-pack/plugins/apm/server/routes/observability_overview.ts rename to x-pack/plugins/apm/server/routes/observability_overview/route.ts index 2df3212d8da70..c99586638c3de 100644 --- a/x-pack/plugins/apm/server/routes/observability_overview.ts +++ b/x-pack/plugins/apm/server/routes/observability_overview/route.ts @@ -7,15 +7,15 @@ import * as t from 'io-ts'; import { toNumberRt } from '@kbn/io-ts-utils/to_number_rt'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getServiceCount } from '../lib/observability_overview/get_service_count'; -import { getTransactionsPerMinute } from '../lib/observability_overview/get_transactions_per_minute'; -import { getHasData } from '../lib/observability_overview/has_data'; -import { rangeRt } from './default_api_types'; -import { getSearchAggregatedTransactions } from '../lib/helpers/transactions'; -import { withApmSpan } from '../utils/with_apm_span'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getServiceCount } from './get_service_count'; +import { getTransactionsPerMinute } from './get_transactions_per_minute'; +import { getHasData } from './has_data'; +import { rangeRt } from '../default_api_types'; +import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; +import { withApmSpan } from '../../utils/with_apm_span'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; const observabilityOverviewHasDataRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/observability_overview/has_data', diff --git a/x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/rum_client/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/rum_client/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/rum_client/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts b/x-pack/plugins/apm/server/routes/rum_client/get_client_metrics.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_client_metrics.ts index 206fc134a0c87..40352db9f18a6 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_client_metrics.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_client_metrics.ts @@ -7,7 +7,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { TRANSACTION_TIME_TO_FIRST_BYTE, TRANSACTION_DURATION, diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_js_errors.ts b/x-pack/plugins/apm/server/routes/rum_client/get_js_errors.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/rum_client/get_js_errors.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_js_errors.ts index dca575b42cf0a..a0f7c0940b812 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_js_errors.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_js_errors.ts @@ -6,7 +6,7 @@ */ import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { getRumErrorsProjection } from '../../projections/rum_page_load_transactions'; import { ERROR_EXC_MESSAGE, diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts b/x-pack/plugins/apm/server/routes/rum_client/get_long_task_metrics.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_long_task_metrics.ts index d5cc78e2f3062..29ef955e19aa4 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_long_task_metrics.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_long_task_metrics.ts @@ -7,7 +7,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; const LONG_TASK_SUM_FIELD = 'transaction.experience.longtask.sum'; const LONG_TASK_COUNT_FIELD = 'transaction.experience.longtask.count'; diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts b/x-pack/plugins/apm/server/routes/rum_client/get_page_load_distribution.ts similarity index 99% rename from x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_page_load_distribution.ts index e551b4a34746c..27c8c4668ce9b 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_page_load_distribution.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_page_load_distribution.ts @@ -8,7 +8,7 @@ import { TRANSACTION_DURATION } from '../../../common/elasticsearch_fieldnames'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; export const MICRO_TO_SEC = 1000000; diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts b/x-pack/plugins/apm/server/routes/rum_client/get_page_view_trends.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_page_view_trends.ts index 87766aae43272..6bcc7f66d1dfd 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_page_view_trends.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_page_view_trends.ts @@ -7,7 +7,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { BreakdownItem } from '../../../typings/ui_filters'; export async function getPageViewTrends({ diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts b/x-pack/plugins/apm/server/routes/rum_client/get_pl_dist_breakdown.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_pl_dist_breakdown.ts index 298f2a3b7ddf0..d6a67b57fa98f 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_pl_dist_breakdown.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_pl_dist_breakdown.ts @@ -8,7 +8,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { ProcessorEvent } from '../../../common/processor_event'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { CLIENT_GEO_COUNTRY_ISO_CODE, USER_AGENT_DEVICE, diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_rum_services.ts b/x-pack/plugins/apm/server/routes/rum_client/get_rum_services.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/rum_client/get_rum_services.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_rum_services.ts index 1929f7e3ed994..e62b54f00d212 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_rum_services.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_rum_services.ts @@ -5,7 +5,7 @@ * 2.0. */ import { SERVICE_NAME } from '../../../common/elasticsearch_fieldnames'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts b/x-pack/plugins/apm/server/routes/rum_client/get_url_search.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_url_search.ts index 515df78f87bd8..0ffb836402f61 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_url_search.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_url_search.ts @@ -6,7 +6,7 @@ */ import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { TRANSACTION_DURATION, diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts b/x-pack/plugins/apm/server/routes/rum_client/get_visitor_breakdown.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_visitor_breakdown.ts index ed0a4e90a4cb7..d7447889db849 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_visitor_breakdown.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_visitor_breakdown.ts @@ -7,7 +7,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { USER_AGENT_NAME, USER_AGENT_OS, diff --git a/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts b/x-pack/plugins/apm/server/routes/rum_client/get_web_core_vitals.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts rename to x-pack/plugins/apm/server/routes/rum_client/get_web_core_vitals.ts index 6dfa3abe117df..6a3b3a1c7b1c8 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/get_web_core_vitals.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/get_web_core_vitals.ts @@ -7,7 +7,7 @@ import { getRumPageLoadTransactionsProjection } from '../../projections/rum_page_load_transactions'; import { mergeProjection } from '../../projections/util/merge_projection'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { CLS_FIELD, FCP_FIELD, diff --git a/x-pack/plugins/apm/server/lib/rum_client/has_rum_data.ts b/x-pack/plugins/apm/server/routes/rum_client/has_rum_data.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/rum_client/has_rum_data.ts rename to x-pack/plugins/apm/server/routes/rum_client/has_rum_data.ts index ba35ac5c5c89c..6cb3bc069e072 100644 --- a/x-pack/plugins/apm/server/lib/rum_client/has_rum_data.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/has_rum_data.ts @@ -6,7 +6,7 @@ */ import moment from 'moment'; -import { SetupUX } from '../../routes/rum_client'; +import { SetupUX } from './route'; import { SERVICE_NAME, TRANSACTION_TYPE, diff --git a/x-pack/plugins/apm/server/lib/rum_client/queries.test.ts b/x-pack/plugins/apm/server/routes/rum_client/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/rum_client/queries.test.ts rename to x-pack/plugins/apm/server/routes/rum_client/queries.test.ts diff --git a/x-pack/plugins/apm/server/routes/rum_client.ts b/x-pack/plugins/apm/server/routes/rum_client/route.ts similarity index 87% rename from x-pack/plugins/apm/server/routes/rum_client.ts rename to x-pack/plugins/apm/server/routes/rum_client/route.ts index e84a281a7ce1b..482dcc0799ed0 100644 --- a/x-pack/plugins/apm/server/routes/rum_client.ts +++ b/x-pack/plugins/apm/server/routes/rum_client/route.ts @@ -7,23 +7,23 @@ import * as t from 'io-ts'; import { Logger } from 'kibana/server'; import { isoToEpochRt } from '@kbn/io-ts-utils/iso_to_epoch_rt'; -import { setupRequest, Setup } from '../lib/helpers/setup_request'; -import { getClientMetrics } from '../lib/rum_client/get_client_metrics'; -import { getJSErrors } from '../lib/rum_client/get_js_errors'; -import { getLongTaskMetrics } from '../lib/rum_client/get_long_task_metrics'; -import { getPageLoadDistribution } from '../lib/rum_client/get_page_load_distribution'; -import { getPageViewTrends } from '../lib/rum_client/get_page_view_trends'; -import { getPageLoadDistBreakdown } from '../lib/rum_client/get_pl_dist_breakdown'; -import { getRumServices } from '../lib/rum_client/get_rum_services'; -import { getUrlSearch } from '../lib/rum_client/get_url_search'; -import { getVisitorBreakdown } from '../lib/rum_client/get_visitor_breakdown'; -import { getWebCoreVitals } from '../lib/rum_client/get_web_core_vitals'; -import { hasRumData } from '../lib/rum_client/has_rum_data'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { rangeRt } from './default_api_types'; -import { UxUIFilters } from '../../typings/ui_filters'; -import { APMRouteHandlerResources } from '../routes/typings'; +import { setupRequest, Setup } from '../../lib/helpers/setup_request'; +import { getClientMetrics } from './get_client_metrics'; +import { getJSErrors } from './get_js_errors'; +import { getLongTaskMetrics } from './get_long_task_metrics'; +import { getPageLoadDistribution } from './get_page_load_distribution'; +import { getPageViewTrends } from './get_page_view_trends'; +import { getPageLoadDistBreakdown } from './get_pl_dist_breakdown'; +import { getRumServices } from './get_rum_services'; +import { getUrlSearch } from './get_url_search'; +import { getVisitorBreakdown } from './get_visitor_breakdown'; +import { getWebCoreVitals } from './get_web_core_vitals'; +import { hasRumData } from './has_rum_data'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { rangeRt } from '../default_api_types'; +import { UxUIFilters } from '../../../typings/ui_filters'; +import { APMRouteHandlerResources } from '../typings'; export type SetupUX = Setup & { uiFilters: UxUIFilters; diff --git a/x-pack/plugins/apm/server/lib/rum_client/ui_filters/get_es_filter.test.ts b/x-pack/plugins/apm/server/routes/rum_client/ui_filters/get_es_filter.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/rum_client/ui_filters/get_es_filter.test.ts rename to x-pack/plugins/apm/server/routes/rum_client/ui_filters/get_es_filter.test.ts diff --git a/x-pack/plugins/apm/server/lib/rum_client/ui_filters/get_es_filter.ts b/x-pack/plugins/apm/server/routes/rum_client/ui_filters/get_es_filter.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/rum_client/ui_filters/get_es_filter.ts rename to x-pack/plugins/apm/server/routes/rum_client/ui_filters/get_es_filter.ts diff --git a/x-pack/plugins/apm/server/lib/service_map/fetch_service_paths_from_trace_ids.ts b/x-pack/plugins/apm/server/routes/service_map/fetch_service_paths_from_trace_ids.ts similarity index 99% rename from x-pack/plugins/apm/server/lib/service_map/fetch_service_paths_from_trace_ids.ts rename to x-pack/plugins/apm/server/routes/service_map/fetch_service_paths_from_trace_ids.ts index 2f725b61942cd..b3bd4d1510180 100644 --- a/x-pack/plugins/apm/server/lib/service_map/fetch_service_paths_from_trace_ids.ts +++ b/x-pack/plugins/apm/server/routes/service_map/fetch_service_paths_from_trace_ids.ts @@ -13,7 +13,7 @@ import { ExternalConnectionNode, ServiceConnectionNode, } from '../../../common/service_map'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; export async function fetchServicePathsFromTraceIds( setup: Setup, diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_anomalies.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_anomalies.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/service_map/get_service_anomalies.ts rename to x-pack/plugins/apm/server/routes/service_map/get_service_anomalies.ts index 2aa2f5c6eead5..65c022b7175de 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_anomalies.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_anomalies.ts @@ -20,8 +20,8 @@ import { } from '../../../common/transaction_types'; import { rangeQuery } from '../../../../observability/server'; import { withApmSpan } from '../../utils/with_apm_span'; -import { getMlJobsWithAPMGroup } from '../anomaly_detection/get_ml_jobs_with_apm_group'; -import { Setup } from '../helpers/setup_request'; +import { getMlJobsWithAPMGroup } from '../../lib/anomaly_detection/get_ml_jobs_with_apm_group'; +import { Setup } from '../../lib/helpers/setup_request'; import { apmMlAnomalyQuery } from '../../../common/anomaly_detection/apm_ml_anomaly_query'; import { ApmMlDetectorIndex } from '../../../common/anomaly_detection/apm_ml_detectors'; diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/service_map/get_service_map.ts rename to x-pack/plugins/apm/server/routes/service_map/get_service_map.ts index 9f94bdd9275c0..d7eb101f77e38 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map.ts @@ -17,7 +17,7 @@ import { } from '../../../common/elasticsearch_fieldnames'; import { environmentQuery } from '../../../common/utils/environment_query'; import { withApmSpan } from '../../utils/with_apm_span'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { DEFAULT_ANOMALIES, getServiceAnomalies, @@ -26,7 +26,7 @@ import { getServiceMapFromTraceIds } from './get_service_map_from_trace_ids'; import { getTraceSampleIds } from './get_trace_sample_ids'; import { transformServiceMapResponses } from './transform_service_map_responses'; import { ENVIRONMENT_ALL } from '../../../common/environment_filter_values'; -import { getProcessorEventForTransactions } from '../helpers/transactions'; +import { getProcessorEventForTransactions } from '../../lib/helpers/transactions'; export interface IEnvOptions { setup: Setup; diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_backend_node_info.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map_backend_node_info.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/service_map/get_service_map_backend_node_info.ts rename to x-pack/plugins/apm/server/routes/service_map/get_service_map_backend_node_info.ts index c8242731e756c..3866bac88ef44 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_backend_node_info.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map_backend_node_info.ts @@ -16,8 +16,8 @@ import { EventOutcome } from '../../../common/event_outcome'; import { ProcessorEvent } from '../../../common/processor_event'; import { environmentQuery } from '../../../common/utils/environment_query'; import { withApmSpan } from '../../utils/with_apm_span'; -import { calculateThroughput } from '../helpers/calculate_throughput'; -import { Setup } from '../helpers/setup_request'; +import { calculateThroughput } from '../../lib/helpers/calculate_throughput'; +import { Setup } from '../../lib/helpers/setup_request'; interface Options { setup: Setup; diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.test.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map_from_trace_ids.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.test.ts rename to x-pack/plugins/apm/server/routes/service_map/get_service_map_from_trace_ids.test.ts diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map_from_trace_ids.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.ts rename to x-pack/plugins/apm/server/routes/service_map/get_service_map_from_trace_ids.ts index e77e127aebb42..6a61a514881b0 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_from_trace_ids.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map_from_trace_ids.ts @@ -7,7 +7,7 @@ import { find, uniqBy } from 'lodash'; import { Connection, ConnectionNode } from '../../../common/service_map'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { fetchServicePathsFromTraceIds } from './fetch_service_paths_from_trace_ids'; export function getConnections({ diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.test.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.test.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.test.ts rename to x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.test.ts index e064d97bb7aee..9f65481d07489 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.test.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.test.ts @@ -6,8 +6,8 @@ */ import { getServiceMapServiceNodeInfo } from './get_service_map_service_node_info'; -import { Setup } from '../helpers/setup_request'; -import * as getErrorRateModule from '../transaction_groups/get_error_rate'; +import { Setup } from '../../lib/helpers/setup_request'; +import * as getErrorRateModule from '../../lib/transaction_groups/get_error_rate'; import { ENVIRONMENT_ALL } from '../../../common/environment_filter_values'; describe('getServiceMapServiceNodeInfo', () => { diff --git a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts b/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts rename to x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.ts index 2f089adf70c1c..d6eb7729effaf 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_service_map_service_node_info.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_service_map_service_node_info.ts @@ -26,13 +26,13 @@ import { getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, getProcessorEventForTransactions, -} from '../helpers/transactions'; -import { Setup } from '../helpers/setup_request'; +} from '../../lib/helpers/transactions'; +import { Setup } from '../../lib/helpers/setup_request'; import { percentCgroupMemoryUsedScript, percentSystemMemoryUsedScript, } from '../metrics/by_agent/shared/memory'; -import { getErrorRate } from '../transaction_groups/get_error_rate'; +import { getErrorRate } from '../../lib/transaction_groups/get_error_rate'; interface Options { setup: Setup; diff --git a/x-pack/plugins/apm/server/lib/service_map/get_trace_sample_ids.ts b/x-pack/plugins/apm/server/routes/service_map/get_trace_sample_ids.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/service_map/get_trace_sample_ids.ts rename to x-pack/plugins/apm/server/routes/service_map/get_trace_sample_ids.ts index 7e16e69498e7c..af24953833a27 100644 --- a/x-pack/plugins/apm/server/lib/service_map/get_trace_sample_ids.ts +++ b/x-pack/plugins/apm/server/routes/service_map/get_trace_sample_ids.ts @@ -18,7 +18,7 @@ import { ProcessorEvent } from '../../../common/processor_event'; import { SERVICE_MAP_TIMEOUT_ERROR } from '../../../common/service_map'; import { rangeQuery } from '../../../../observability/server'; import { environmentQuery } from '../../../common/utils/environment_query'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; const MAX_TRACES_TO_INSPECT = 1000; diff --git a/x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.test.ts b/x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.test.ts rename to x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.test.ts diff --git a/x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.ts b/x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/service_map/group_resource_nodes.ts rename to x-pack/plugins/apm/server/routes/service_map/group_resource_nodes.ts diff --git a/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_grouped.json b/x-pack/plugins/apm/server/routes/service_map/mock_responses/group_resource_nodes_grouped.json similarity index 100% rename from x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_grouped.json rename to x-pack/plugins/apm/server/routes/service_map/mock_responses/group_resource_nodes_grouped.json diff --git a/x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_pregrouped.json b/x-pack/plugins/apm/server/routes/service_map/mock_responses/group_resource_nodes_pregrouped.json similarity index 100% rename from x-pack/plugins/apm/server/lib/service_map/mock_responses/group_resource_nodes_pregrouped.json rename to x-pack/plugins/apm/server/routes/service_map/mock_responses/group_resource_nodes_pregrouped.json diff --git a/x-pack/plugins/apm/server/routes/service_map.ts b/x-pack/plugins/apm/server/routes/service_map/route.ts similarity index 81% rename from x-pack/plugins/apm/server/routes/service_map.ts rename to x-pack/plugins/apm/server/routes/service_map/route.ts index e75b4ec832d82..97d0c01ed6a44 100644 --- a/x-pack/plugins/apm/server/routes/service_map.ts +++ b/x-pack/plugins/apm/server/routes/service_map/route.ts @@ -7,17 +7,17 @@ import Boom from '@hapi/boom'; import * as t from 'io-ts'; -import { isActivePlatinumLicense } from '../../common/license_check'; -import { invalidLicenseMessage } from '../../common/service_map'; -import { notifyFeatureUsage } from '../feature'; -import { getSearchAggregatedTransactions } from '../lib/helpers/transactions'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getServiceMap } from '../lib/service_map/get_service_map'; -import { getServiceMapBackendNodeInfo } from '../lib/service_map/get_service_map_backend_node_info'; -import { getServiceMapServiceNodeInfo } from '../lib/service_map/get_service_map_service_node_info'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { environmentRt, rangeRt } from './default_api_types'; +import { isActivePlatinumLicense } from '../../../common/license_check'; +import { invalidLicenseMessage } from '../../../common/service_map'; +import { notifyFeatureUsage } from '../../feature'; +import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getServiceMap } from './get_service_map'; +import { getServiceMapBackendNodeInfo } from './get_service_map_backend_node_info'; +import { getServiceMapServiceNodeInfo } from './get_service_map_service_node_info'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { environmentRt, rangeRt } from '../default_api_types'; const serviceMapRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/service-map', diff --git a/x-pack/plugins/apm/server/lib/service_map/transform_service_map_responses.test.ts b/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/service_map/transform_service_map_responses.test.ts rename to x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.test.ts diff --git a/x-pack/plugins/apm/server/lib/service_map/transform_service_map_responses.ts b/x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/service_map/transform_service_map_responses.ts rename to x-pack/plugins/apm/server/routes/service_map/transform_service_map_responses.ts diff --git a/x-pack/plugins/apm/server/lib/service_nodes/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/service_nodes/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/service_nodes/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/service_nodes/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/service_nodes/index.ts b/x-pack/plugins/apm/server/routes/service_nodes/get_service_nodes.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/service_nodes/index.ts rename to x-pack/plugins/apm/server/routes/service_nodes/get_service_nodes.ts index 541fbb79c9e50..ebd56cb9768ce 100644 --- a/x-pack/plugins/apm/server/lib/service_nodes/index.ts +++ b/x-pack/plugins/apm/server/routes/service_nodes/get_service_nodes.ts @@ -21,7 +21,7 @@ import { import { ProcessorEvent } from '../../../common/processor_event'; import { kqlQuery, rangeQuery } from '../../../../observability/server'; import { environmentQuery } from '../../../common/utils/environment_query'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; const getServiceNodes = async ({ kuery, diff --git a/x-pack/plugins/apm/server/lib/service_nodes/queries.test.ts b/x-pack/plugins/apm/server/routes/service_nodes/queries.test.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/service_nodes/queries.test.ts rename to x-pack/plugins/apm/server/routes/service_nodes/queries.test.ts index f8bc3879d5794..470be6142aaed 100644 --- a/x-pack/plugins/apm/server/lib/service_nodes/queries.test.ts +++ b/x-pack/plugins/apm/server/routes/service_nodes/queries.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { getServiceNodes } from './'; +import { getServiceNodes } from './get_service_nodes'; import { SearchParamsMock, inspectSearchParams, diff --git a/x-pack/plugins/apm/server/routes/service_nodes.ts b/x-pack/plugins/apm/server/routes/service_nodes/route.ts similarity index 72% rename from x-pack/plugins/apm/server/routes/service_nodes.ts rename to x-pack/plugins/apm/server/routes/service_nodes/route.ts index 61d58bfa3cf38..027a907dd2659 100644 --- a/x-pack/plugins/apm/server/routes/service_nodes.ts +++ b/x-pack/plugins/apm/server/routes/service_nodes/route.ts @@ -6,12 +6,12 @@ */ import * as t from 'io-ts'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getServiceNodes } from '../lib/service_nodes'; -import { rangeRt, kueryRt } from './default_api_types'; -import { environmentRt } from '../../common/environment_rt'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getServiceNodes } from './get_service_nodes'; +import { rangeRt, kueryRt } from '../default_api_types'; +import { environmentRt } from '../../../common/environment_rt'; const serviceNodesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services/{serviceName}/serviceNodes', diff --git a/x-pack/plugins/apm/server/lib/services/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/services/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/services/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/services/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/multiple_versions.json b/x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/multiple_versions.json similarity index 100% rename from x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/multiple_versions.json rename to x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/multiple_versions.json diff --git a/x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/no_versions.json b/x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/no_versions.json similarity index 100% rename from x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/no_versions.json rename to x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/no_versions.json diff --git a/x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/one_version.json b/x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/one_version.json similarity index 100% rename from x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/one_version.json rename to x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/one_version.json diff --git a/x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/versions_first_seen.json b/x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/versions_first_seen.json similarity index 100% rename from x-pack/plugins/apm/server/lib/services/annotations/__fixtures__/versions_first_seen.json rename to x-pack/plugins/apm/server/routes/services/annotations/__fixtures__/versions_first_seen.json diff --git a/x-pack/plugins/apm/server/lib/services/annotations/get_derived_service_annotations.ts b/x-pack/plugins/apm/server/routes/services/annotations/get_derived_service_annotations.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/annotations/get_derived_service_annotations.ts rename to x-pack/plugins/apm/server/routes/services/annotations/get_derived_service_annotations.ts index 22b37e33a26e2..523775de170e7 100644 --- a/x-pack/plugins/apm/server/lib/services/annotations/get_derived_service_annotations.ts +++ b/x-pack/plugins/apm/server/routes/services/annotations/get_derived_service_annotations.ts @@ -17,8 +17,8 @@ import { environmentQuery } from '../../../../common/utils/environment_query'; import { getDocumentTypeFilterForTransactions, getProcessorEventForTransactions, -} from '../../helpers/transactions'; -import { Setup } from '../../helpers/setup_request'; +} from '../../../lib/helpers/transactions'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function getDerivedServiceAnnotations({ setup, diff --git a/x-pack/plugins/apm/server/lib/services/annotations/get_stored_annotations.ts b/x-pack/plugins/apm/server/routes/services/annotations/get_stored_annotations.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/services/annotations/get_stored_annotations.ts rename to x-pack/plugins/apm/server/routes/services/annotations/get_stored_annotations.ts diff --git a/x-pack/plugins/apm/server/lib/services/annotations/index.test.ts b/x-pack/plugins/apm/server/routes/services/annotations/index.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/services/annotations/index.test.ts rename to x-pack/plugins/apm/server/routes/services/annotations/index.test.ts diff --git a/x-pack/plugins/apm/server/lib/services/annotations/index.ts b/x-pack/plugins/apm/server/routes/services/annotations/index.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/annotations/index.ts rename to x-pack/plugins/apm/server/routes/services/annotations/index.ts index 677530522f6ca..488a4ce6e4c20 100644 --- a/x-pack/plugins/apm/server/lib/services/annotations/index.ts +++ b/x-pack/plugins/apm/server/routes/services/annotations/index.ts @@ -8,7 +8,7 @@ import { ElasticsearchClient, Logger } from 'kibana/server'; import { ScopedAnnotationsClient } from '../../../../../observability/server'; import { getDerivedServiceAnnotations } from './get_derived_service_annotations'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getStoredAnnotations } from './get_stored_annotations'; export async function getServiceAnnotations({ diff --git a/x-pack/plugins/apm/server/lib/services/get_service_agent.ts b/x-pack/plugins/apm/server/routes/services/get_service_agent.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/services/get_service_agent.ts rename to x-pack/plugins/apm/server/routes/services/get_service_agent.ts index dc3fee20fdf68..8117729eb9b59 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_agent.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_agent.ts @@ -12,7 +12,7 @@ import { SERVICE_RUNTIME_NAME, } from '../../../common/elasticsearch_fieldnames'; import { rangeQuery } from '../../../../observability/server'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; interface ServiceAgent { agent?: { diff --git a/x-pack/plugins/apm/server/lib/services/get_service_alerts.ts b/x-pack/plugins/apm/server/routes/services/get_service_alerts.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/services/get_service_alerts.ts rename to x-pack/plugins/apm/server/routes/services/get_service_alerts.ts diff --git a/x-pack/plugins/apm/server/lib/services/get_service_dependencies.ts b/x-pack/plugins/apm/server/routes/services/get_service_dependencies.ts similarity index 77% rename from x-pack/plugins/apm/server/lib/services/get_service_dependencies.ts rename to x-pack/plugins/apm/server/routes/services/get_service_dependencies.ts index d4472d495230a..cf60502e9861b 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_dependencies.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_dependencies.ts @@ -7,9 +7,9 @@ import { SERVICE_NAME } from '../../../common/elasticsearch_fieldnames'; import { environmentQuery } from '../../../common/utils/environment_query'; -import { getConnectionStats } from '../connections/get_connection_stats'; -import { getConnectionStatsItemsWithRelativeImpact } from '../connections/get_connection_stats/get_connection_stats_items_with_relative_impact'; -import { Setup } from '../helpers/setup_request'; +import { getConnectionStats } from '../../lib/connections/get_connection_stats'; +import { getConnectionStatsItemsWithRelativeImpact } from '../../lib/connections/get_connection_stats/get_connection_stats_items_with_relative_impact'; +import { Setup } from '../../lib/helpers/setup_request'; export async function getServiceDependencies({ setup, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_dependencies_breakdown.ts b/x-pack/plugins/apm/server/routes/services/get_service_dependencies_breakdown.ts similarity index 90% rename from x-pack/plugins/apm/server/lib/services/get_service_dependencies_breakdown.ts rename to x-pack/plugins/apm/server/routes/services/get_service_dependencies_breakdown.ts index c0e1af40d98db..a0b8eb1768d6f 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_dependencies_breakdown.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_dependencies_breakdown.ts @@ -9,8 +9,8 @@ import { getNodeName } from '../../../common/connections'; import { kqlQuery } from '../../../../observability/server'; import { SERVICE_NAME } from '../../../common/elasticsearch_fieldnames'; import { environmentQuery } from '../../../common/utils/environment_query'; -import { Setup } from '../helpers/setup_request'; -import { getConnectionStats } from '../connections/get_connection_stats'; +import { Setup } from '../../lib/helpers/setup_request'; +import { getConnectionStats } from '../../lib/connections/get_connection_stats'; export async function getServiceDependenciesBreakdown({ setup, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_error_groups/get_service_error_group_detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_error_groups/get_service_error_group_detailed_statistics.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/services/get_service_error_groups/get_service_error_group_detailed_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_service_error_groups/get_service_error_group_detailed_statistics.ts index 9a0b6155fe84d..17c538d0fd7ea 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_error_groups/get_service_error_group_detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_error_groups/get_service_error_group_detailed_statistics.ts @@ -15,8 +15,8 @@ import { import { ProcessorEvent } from '../../../../common/processor_event'; import { rangeQuery, kqlQuery } from '../../../../../observability/server'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { getBucketSize } from '../../helpers/get_bucket_size'; -import { Setup } from '../../helpers/setup_request'; +import { getBucketSize } from '../../../lib/helpers/get_bucket_size'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function getServiceErrorGroupDetailedStatistics({ kuery, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_error_groups/get_service_error_group_main_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_error_groups/get_service_error_group_main_statistics.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/services/get_service_error_groups/get_service_error_group_main_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_service_error_groups/get_service_error_group_main_statistics.ts index 1a25b18f81aac..8d174abb1bed5 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_error_groups/get_service_error_group_main_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_error_groups/get_service_error_group_main_statistics.ts @@ -15,8 +15,8 @@ import { } from '../../../../common/elasticsearch_fieldnames'; import { ProcessorEvent } from '../../../../common/processor_event'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { getErrorName } from '../../helpers/get_error_name'; -import { Setup } from '../../helpers/setup_request'; +import { getErrorName } from '../../../lib/helpers/get_error_name'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function getServiceErrorGroupMainStatistics({ kuery, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_error_groups/index.ts b/x-pack/plugins/apm/server/routes/services/get_service_error_groups/index.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/get_service_error_groups/index.ts rename to x-pack/plugins/apm/server/routes/services/get_service_error_groups/index.ts index 83cb38da6e0a3..1a853231bb09a 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_error_groups/index.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_error_groups/index.ts @@ -19,9 +19,9 @@ import { import { ProcessorEvent } from '../../../../common/processor_event'; import { environmentQuery } from '../../../../common/utils/environment_query'; import { withApmSpan } from '../../../utils/with_apm_span'; -import { getBucketSize } from '../../helpers/get_bucket_size'; -import { getErrorName } from '../../helpers/get_error_name'; -import { Setup } from '../../helpers/setup_request'; +import { getBucketSize } from '../../../lib/helpers/get_bucket_size'; +import { getErrorName } from '../../../lib/helpers/get_error_name'; +import { Setup } from '../../../lib/helpers/setup_request'; export type ServiceErrorGroupItem = ValuesType< PromiseReturnType diff --git a/x-pack/plugins/apm/server/lib/services/get_service_infrastructure.ts b/x-pack/plugins/apm/server/routes/services/get_service_infrastructure.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/get_service_infrastructure.ts rename to x-pack/plugins/apm/server/routes/services/get_service_infrastructure.ts index 09946187b90a2..cda0beb6b2d70 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_infrastructure.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_infrastructure.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { rangeQuery, kqlQuery } from '../../../../observability/server'; import { environmentQuery } from '../../../common/utils/environment_query'; import { ProcessorEvent } from '../../../common/processor_event'; diff --git a/x-pack/plugins/apm/server/lib/services/get_service_instance_metadata_details.ts b/x-pack/plugins/apm/server/routes/services/get_service_instance_metadata_details.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/services/get_service_instance_metadata_details.ts rename to x-pack/plugins/apm/server/routes/services/get_service_instance_metadata_details.ts index d349ca3ce0399..957d655b98e5d 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_instance_metadata_details.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instance_metadata_details.ts @@ -12,12 +12,12 @@ import { SERVICE_NODE_NAME, } from '../../../common/elasticsearch_fieldnames'; import { rangeQuery } from '../../../../observability/server'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { maybe } from '../../../common/utils/maybe'; import { getDocumentTypeFilterForTransactions, getProcessorEventForTransactions, -} from '../helpers/transactions'; +} from '../../lib/helpers/transactions'; export async function getServiceInstanceMetadataDetails({ serviceName, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_instances/detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_instances/detailed_statistics.ts similarity index 98% rename from x-pack/plugins/apm/server/lib/services/get_service_instances/detailed_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_service_instances/detailed_statistics.ts index fd6f0f6d03c66..10393e3434779 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_instances/detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instances/detailed_statistics.ts @@ -11,7 +11,7 @@ import { Coordinate } from '../../../../typings/timeseries'; import { LatencyAggregationType } from '../../../../common/latency_aggregation_types'; import { joinByKey } from '../../../../common/utils/join_by_key'; import { withApmSpan } from '../../../utils/with_apm_span'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getServiceInstancesSystemMetricStatistics } from './get_service_instances_system_metric_statistics'; import { getServiceInstancesTransactionStatistics } from './get_service_instances_transaction_statistics'; diff --git a/x-pack/plugins/apm/server/lib/services/get_service_instances/get_service_instances_system_metric_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_instances/get_service_instances_system_metric_statistics.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/services/get_service_instances/get_service_instances_system_metric_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_service_instances/get_service_instances_system_metric_statistics.ts index 61e89ed8ca5e3..11fcbd8ce6561 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_instances/get_service_instances_system_metric_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instances/get_service_instances_system_metric_statistics.ts @@ -19,8 +19,8 @@ import { SERVICE_NODE_NAME_MISSING } from '../../../../common/service_nodes'; import { Coordinate } from '../../../../typings/timeseries'; import { kqlQuery, rangeQuery } from '../../../../../observability/server'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { getBucketSize } from '../../helpers/get_bucket_size'; -import { Setup } from '../../helpers/setup_request'; +import { getBucketSize } from '../../../lib/helpers/get_bucket_size'; +import { Setup } from '../../../lib/helpers/setup_request'; import { percentCgroupMemoryUsedScript, percentSystemMemoryUsedScript, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_instances/get_service_instances_transaction_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_instances/get_service_instances_transaction_statistics.ts similarity index 94% rename from x-pack/plugins/apm/server/lib/services/get_service_instances/get_service_instances_transaction_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_service_instances/get_service_instances_transaction_statistics.ts index b0f64036a1845..166e8d61142ea 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_instances/get_service_instances_transaction_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instances/get_service_instances_transaction_statistics.ts @@ -20,14 +20,14 @@ import { getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, getProcessorEventForTransactions, -} from '../../helpers/transactions'; -import { calculateThroughput } from '../../helpers/calculate_throughput'; -import { getBucketSizeForAggregatedTransactions } from '../../helpers/get_bucket_size_for_aggregated_transactions'; +} from '../../../lib/helpers/transactions'; +import { calculateThroughput } from '../../../lib/helpers/calculate_throughput'; +import { getBucketSizeForAggregatedTransactions } from '../../../lib/helpers/get_bucket_size_for_aggregated_transactions'; import { getLatencyAggregation, getLatencyValue, -} from '../../helpers/latency_aggregation_type'; -import { Setup } from '../../helpers/setup_request'; +} from '../../../lib/helpers/latency_aggregation_type'; +import { Setup } from '../../../lib/helpers/setup_request'; interface ServiceInstanceTransactionPrimaryStatistics { serviceNodeName: string; diff --git a/x-pack/plugins/apm/server/lib/services/get_service_instances/main_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_instances/main_statistics.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/get_service_instances/main_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_service_instances/main_statistics.ts index ea34693bceb30..a064c71496de9 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_instances/main_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_instances/main_statistics.ts @@ -8,7 +8,7 @@ import { LatencyAggregationType } from '../../../../common/latency_aggregation_types'; import { joinByKey } from '../../../../common/utils/join_by_key'; import { withApmSpan } from '../../../utils/with_apm_span'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getServiceInstancesSystemMetricStatistics } from './get_service_instances_system_metric_statistics'; import { getServiceInstancesTransactionStatistics } from './get_service_instances_transaction_statistics'; diff --git a/x-pack/plugins/apm/server/lib/services/get_service_metadata_details.ts b/x-pack/plugins/apm/server/routes/services/get_service_metadata_details.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/get_service_metadata_details.ts rename to x-pack/plugins/apm/server/routes/services/get_service_metadata_details.ts index e2852a51b0c06..b7ce68a0de578 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_metadata_details.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_metadata_details.ts @@ -22,8 +22,8 @@ import { import { ContainerType } from '../../../common/service_metadata'; import { rangeQuery } from '../../../../observability/server'; import { TransactionRaw } from '../../../typings/es_schemas/raw/transaction_raw'; -import { getProcessorEventForTransactions } from '../helpers/transactions'; -import { Setup } from '../helpers/setup_request'; +import { getProcessorEventForTransactions } from '../../lib/helpers/transactions'; +import { Setup } from '../../lib/helpers/setup_request'; import { should } from './get_service_metadata_icons'; type ServiceMetadataDetailsRaw = Pick< diff --git a/x-pack/plugins/apm/server/lib/services/get_service_metadata_icons.ts b/x-pack/plugins/apm/server/routes/services/get_service_metadata_icons.ts similarity index 94% rename from x-pack/plugins/apm/server/lib/services/get_service_metadata_icons.ts rename to x-pack/plugins/apm/server/routes/services/get_service_metadata_icons.ts index 2c93a298cb134..ca97e9d58f060 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_metadata_icons.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_metadata_icons.ts @@ -18,8 +18,8 @@ import { import { ContainerType } from '../../../common/service_metadata'; import { rangeQuery } from '../../../../observability/server'; import { TransactionRaw } from '../../../typings/es_schemas/raw/transaction_raw'; -import { getProcessorEventForTransactions } from '../helpers/transactions'; -import { Setup } from '../helpers/setup_request'; +import { getProcessorEventForTransactions } from '../../lib/helpers/transactions'; +import { Setup } from '../../lib/helpers/setup_request'; type ServiceMetadataIconsRaw = Pick< TransactionRaw, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_node_metadata.ts b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/services/get_service_node_metadata.ts rename to x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts index ab0fa91529917..89e0e42e95914 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_node_metadata.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_node_metadata.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { HOST_NAME, CONTAINER_ID, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_transaction_group_detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_service_transaction_group_detailed_statistics.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/services/get_service_transaction_group_detailed_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_service_transaction_group_detailed_statistics.ts index 35256e6a7ecd6..70f77c26fdbf9 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_transaction_group_detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_transaction_group_detailed_statistics.ts @@ -22,14 +22,14 @@ import { getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, getProcessorEventForTransactions, -} from '../helpers/transactions'; -import { getBucketSizeForAggregatedTransactions } from '../helpers/get_bucket_size_for_aggregated_transactions'; +} from '../../lib/helpers/transactions'; +import { getBucketSizeForAggregatedTransactions } from '../../lib/helpers/get_bucket_size_for_aggregated_transactions'; import { getLatencyAggregation, getLatencyValue, -} from '../helpers/latency_aggregation_type'; -import { Setup } from '../helpers/setup_request'; -import { calculateFailedTransactionRate } from '../helpers/transaction_error_rate'; +} from '../../lib/helpers/latency_aggregation_type'; +import { Setup } from '../../lib/helpers/setup_request'; +import { calculateFailedTransactionRate } from '../../lib/helpers/transaction_error_rate'; export async function getServiceTransactionGroupDetailedStatistics({ environment, diff --git a/x-pack/plugins/apm/server/lib/services/get_service_transaction_groups.ts b/x-pack/plugins/apm/server/routes/services/get_service_transaction_groups.ts similarity index 92% rename from x-pack/plugins/apm/server/lib/services/get_service_transaction_groups.ts rename to x-pack/plugins/apm/server/routes/services/get_service_transaction_groups.ts index 7f624693a3b9c..711d6964221bd 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_transaction_groups.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_transaction_groups.ts @@ -19,14 +19,14 @@ import { getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, getProcessorEventForTransactions, -} from '../helpers/transactions'; -import { calculateThroughput } from '../helpers/calculate_throughput'; +} from '../../lib/helpers/transactions'; +import { calculateThroughput } from '../../lib/helpers/calculate_throughput'; import { getLatencyAggregation, getLatencyValue, -} from '../helpers/latency_aggregation_type'; -import { Setup } from '../helpers/setup_request'; -import { calculateFailedTransactionRate } from '../helpers/transaction_error_rate'; +} from '../../lib/helpers/latency_aggregation_type'; +import { Setup } from '../../lib/helpers/setup_request'; +import { calculateFailedTransactionRate } from '../../lib/helpers/transaction_error_rate'; export type ServiceOverviewTransactionGroupSortField = | 'name' diff --git a/x-pack/plugins/apm/server/lib/services/get_service_transaction_types.ts b/x-pack/plugins/apm/server/routes/services/get_service_transaction_types.ts similarity index 94% rename from x-pack/plugins/apm/server/lib/services/get_service_transaction_types.ts rename to x-pack/plugins/apm/server/routes/services/get_service_transaction_types.ts index 1c2d1c9207bc3..a3761df72156e 100644 --- a/x-pack/plugins/apm/server/lib/services/get_service_transaction_types.ts +++ b/x-pack/plugins/apm/server/routes/services/get_service_transaction_types.ts @@ -10,11 +10,11 @@ import { TRANSACTION_TYPE, } from '../../../common/elasticsearch_fieldnames'; import { rangeQuery } from '../../../../observability/server'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; import { getDocumentTypeFilterForTransactions, getProcessorEventForTransactions, -} from '../helpers/transactions'; +} from '../../lib/helpers/transactions'; export async function getServiceTransactionTypes({ setup, diff --git a/x-pack/plugins/apm/server/lib/services/get_services/get_health_statuses.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_health_statuses.ts similarity index 92% rename from x-pack/plugins/apm/server/lib/services/get_services/get_health_statuses.ts rename to x-pack/plugins/apm/server/routes/services/get_services/get_health_statuses.ts index af6d0d9613b35..65fb04b821ffa 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/get_health_statuses.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_health_statuses.ts @@ -7,7 +7,7 @@ import { getSeverity } from '../../../../common/anomaly_detection'; import { getServiceHealthStatus } from '../../../../common/service_health_status'; -import { getServiceAnomalies } from '../../service_map/get_service_anomalies'; +import { getServiceAnomalies } from '../../../routes/service_map/get_service_anomalies'; import { ServicesItemsSetup } from './get_services_items'; interface AggregationParams { diff --git a/x-pack/plugins/apm/server/lib/services/get_services/get_legacy_data_status.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_legacy_data_status.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/services/get_services/get_legacy_data_status.ts rename to x-pack/plugins/apm/server/routes/services/get_services/get_legacy_data_status.ts index 5b94bb2314258..7275e34786e36 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/get_legacy_data_status.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_legacy_data_status.ts @@ -8,7 +8,7 @@ import { rangeQuery } from '../../../../../observability/server'; import { ProcessorEvent } from '../../../../common/processor_event'; import { OBSERVER_VERSION_MAJOR } from '../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; // returns true if 6.x data is found export async function getLegacyDataStatus( diff --git a/x-pack/plugins/apm/server/lib/services/get_services/get_service_transaction_stats.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/services/get_services/get_service_transaction_stats.ts rename to x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts index 36903f9ca229f..3eaa8053b6709 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/get_service_transaction_stats.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_service_transaction_stats.ts @@ -22,12 +22,12 @@ import { getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, getProcessorEventForTransactions, -} from '../../helpers/transactions'; -import { calculateThroughput } from '../../helpers/calculate_throughput'; +} from '../../../lib/helpers/transactions'; +import { calculateThroughput } from '../../../lib/helpers/calculate_throughput'; import { calculateFailedTransactionRate, getOutcomeAggregation, -} from '../../helpers/transaction_error_rate'; +} from '../../../lib/helpers/transaction_error_rate'; import { ServicesItemsSetup } from './get_services_items'; interface AggregationParams { diff --git a/x-pack/plugins/apm/server/lib/services/get_services/get_services_from_metric_documents.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_from_metric_documents.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/services/get_services/get_services_from_metric_documents.ts rename to x-pack/plugins/apm/server/routes/services/get_services/get_services_from_metric_documents.ts index cffd106d13348..055d82a807815 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/get_services_from_metric_documents.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_services_from_metric_documents.ts @@ -14,7 +14,7 @@ import { import { kqlQuery, rangeQuery } from '../../../../../observability/server'; import { environmentQuery } from '../../../../common/utils/environment_query'; import { ProcessorEvent } from '../../../../common/processor_event'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function getServicesFromMetricDocuments({ environment, diff --git a/x-pack/plugins/apm/server/lib/services/get_services/get_services_items.ts b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/get_services/get_services_items.ts rename to x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts index 47f1f6e7e6430..db3377b6710c5 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/get_services_items.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/get_services_items.ts @@ -7,7 +7,7 @@ import { Logger } from '@kbn/logging'; import { withApmSpan } from '../../../utils/with_apm_span'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getHealthStatuses } from './get_health_statuses'; import { getServicesFromMetricDocuments } from './get_services_from_metric_documents'; import { getServiceTransactionStats } from './get_service_transaction_stats'; diff --git a/x-pack/plugins/apm/server/lib/services/get_services/index.ts b/x-pack/plugins/apm/server/routes/services/get_services/index.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/services/get_services/index.ts rename to x-pack/plugins/apm/server/routes/services/get_services/index.ts index d6a940bc14b5f..9d1670fe84582 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services/index.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services/index.ts @@ -7,7 +7,7 @@ import { Logger } from '@kbn/logging'; import { withApmSpan } from '../../../utils/with_apm_span'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getLegacyDataStatus } from './get_legacy_data_status'; import { getServicesItems } from './get_services_items'; diff --git a/x-pack/plugins/apm/server/lib/services/get_services/merge_service_stats.test.ts b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/services/get_services/merge_service_stats.test.ts rename to x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.test.ts diff --git a/x-pack/plugins/apm/server/lib/services/get_services/merge_service_stats.ts b/x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/services/get_services/merge_service_stats.ts rename to x-pack/plugins/apm/server/routes/services/get_services/merge_service_stats.ts diff --git a/x-pack/plugins/apm/server/lib/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts similarity index 92% rename from x-pack/plugins/apm/server/lib/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts rename to x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts index ea153a5ddcd4c..95f2c6f400de9 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/get_service_transaction_detailed_statistics.ts @@ -21,14 +21,14 @@ import { getDocumentTypeFilterForTransactions, getTransactionDurationFieldForTransactions, getProcessorEventForTransactions, -} from '../../helpers/transactions'; -import { calculateThroughput } from '../../helpers/calculate_throughput'; -import { getBucketSizeForAggregatedTransactions } from '../../helpers/get_bucket_size_for_aggregated_transactions'; -import { Setup } from '../../helpers/setup_request'; +} from '../../../lib/helpers/transactions'; +import { calculateThroughput } from '../../../lib/helpers/calculate_throughput'; +import { getBucketSizeForAggregatedTransactions } from '../../../lib/helpers/get_bucket_size_for_aggregated_transactions'; +import { Setup } from '../../../lib/helpers/setup_request'; import { calculateFailedTransactionRate, getOutcomeAggregation, -} from '../../helpers/transaction_error_rate'; +} from '../../../lib/helpers/transaction_error_rate'; export async function getServiceTransactionDetailedStatistics({ serviceNames, diff --git a/x-pack/plugins/apm/server/lib/services/get_services_detailed_statistics/index.ts b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/services/get_services_detailed_statistics/index.ts rename to x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts index e2f2ee226ab1e..228add10184ba 100644 --- a/x-pack/plugins/apm/server/lib/services/get_services_detailed_statistics/index.ts +++ b/x-pack/plugins/apm/server/routes/services/get_services_detailed_statistics/index.ts @@ -6,7 +6,7 @@ */ import { withApmSpan } from '../../../utils/with_apm_span'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getServiceTransactionDetailedStatistics } from './get_service_transaction_detailed_statistics'; export async function getServicesDetailedStatistics({ diff --git a/x-pack/plugins/apm/server/lib/services/get_throughput.ts b/x-pack/plugins/apm/server/routes/services/get_throughput.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/get_throughput.ts rename to x-pack/plugins/apm/server/routes/services/get_throughput.ts index 3161066ebadf9..4a0366cc2f6ae 100644 --- a/x-pack/plugins/apm/server/lib/services/get_throughput.ts +++ b/x-pack/plugins/apm/server/routes/services/get_throughput.ts @@ -20,8 +20,8 @@ import { environmentQuery } from '../../../common/utils/environment_query'; import { getDocumentTypeFilterForTransactions, getProcessorEventForTransactions, -} from '../helpers/transactions'; -import { Setup } from '../helpers/setup_request'; +} from '../../lib/helpers/transactions'; +import { Setup } from '../../lib/helpers/setup_request'; interface Options { environment: string; diff --git a/x-pack/plugins/apm/server/lib/services/profiling/get_service_profiling_statistics.ts b/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_statistics.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/services/profiling/get_service_profiling_statistics.ts rename to x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_statistics.ts index 0b96a6bd3d456..009d974e33721 100644 --- a/x-pack/plugins/apm/server/lib/services/profiling/get_service_profiling_statistics.ts +++ b/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_statistics.ts @@ -23,8 +23,8 @@ import { } from '../../../../common/elasticsearch_fieldnames'; import { rangeQuery, kqlQuery } from '../../../../../observability/server'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { APMEventClient } from '../../helpers/create_es_client/create_apm_event_client'; -import { Setup } from '../../helpers/setup_request'; +import { APMEventClient } from '../../../lib/helpers/create_es_client/create_apm_event_client'; +import { Setup } from '../../../lib/helpers/setup_request'; import { withApmSpan } from '../../../utils/with_apm_span'; const MAX_STACK_IDS = 10000; diff --git a/x-pack/plugins/apm/server/lib/services/profiling/get_service_profiling_timeline.ts b/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_timeline.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/services/profiling/get_service_profiling_timeline.ts rename to x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_timeline.ts index ce1580fc48290..47df939467d0e 100644 --- a/x-pack/plugins/apm/server/lib/services/profiling/get_service_profiling_timeline.ts +++ b/x-pack/plugins/apm/server/routes/services/profiling/get_service_profiling_timeline.ts @@ -14,8 +14,8 @@ import { getValueTypeConfig, ProfilingValueType, } from '../../../../common/profiling'; -import { Setup } from '../../helpers/setup_request'; -import { getBucketSize } from '../../helpers/get_bucket_size'; +import { Setup } from '../../../lib/helpers/setup_request'; +import { getBucketSize } from '../../../lib/helpers/get_bucket_size'; import { environmentQuery } from '../../../../common/utils/environment_query'; import { kqlQuery, rangeQuery } from '../../../../../observability/server'; diff --git a/x-pack/plugins/apm/server/lib/services/queries.test.ts b/x-pack/plugins/apm/server/routes/services/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/services/queries.test.ts rename to x-pack/plugins/apm/server/routes/services/queries.test.ts diff --git a/x-pack/plugins/apm/server/routes/services.ts b/x-pack/plugins/apm/server/routes/services/route.ts similarity index 89% rename from x-pack/plugins/apm/server/routes/services.ts rename to x-pack/plugins/apm/server/routes/services/route.ts index cb557f56d8165..d395be4c6adce 100644 --- a/x-pack/plugins/apm/server/routes/services.ts +++ b/x-pack/plugins/apm/server/routes/services/route.ts @@ -11,42 +11,42 @@ import { isoToEpochRt } from '@kbn/io-ts-utils/iso_to_epoch_rt'; import { toNumberRt } from '@kbn/io-ts-utils/to_number_rt'; import * as t from 'io-ts'; import { uniq } from 'lodash'; -import { latencyAggregationTypeRt } from '../../common/latency_aggregation_types'; -import { ProfilingValueType } from '../../common/profiling'; -import { getSearchAggregatedTransactions } from '../lib/helpers/transactions'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getServiceAnnotations } from '../lib/services/annotations'; -import { getServices } from '../lib/services/get_services'; -import { getServiceAgent } from '../lib/services/get_service_agent'; -import { getServiceAlerts } from '../lib/services/get_service_alerts'; -import { getServiceDependencies } from '../lib/services/get_service_dependencies'; -import { getServiceInstanceMetadataDetails } from '../lib/services/get_service_instance_metadata_details'; -import { getServiceErrorGroupPeriods } from '../lib/services/get_service_error_groups/get_service_error_group_detailed_statistics'; -import { getServiceErrorGroupMainStatistics } from '../lib/services/get_service_error_groups/get_service_error_group_main_statistics'; -import { getServiceInstancesDetailedStatisticsPeriods } from '../lib/services/get_service_instances/detailed_statistics'; -import { getServiceInstancesMainStatistics } from '../lib/services/get_service_instances/main_statistics'; -import { getServiceMetadataDetails } from '../lib/services/get_service_metadata_details'; -import { getServiceMetadataIcons } from '../lib/services/get_service_metadata_icons'; -import { getServiceNodeMetadata } from '../lib/services/get_service_node_metadata'; -import { getServiceTransactionTypes } from '../lib/services/get_service_transaction_types'; -import { getThroughput } from '../lib/services/get_throughput'; -import { getServiceProfilingStatistics } from '../lib/services/profiling/get_service_profiling_statistics'; -import { getServiceProfilingTimeline } from '../lib/services/profiling/get_service_profiling_timeline'; -import { getServiceInfrastructure } from '../lib/services/get_service_infrastructure'; -import { withApmSpan } from '../utils/with_apm_span'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; +import { latencyAggregationTypeRt } from '../../../common/latency_aggregation_types'; +import { ProfilingValueType } from '../../../common/profiling'; +import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getServiceAnnotations } from './annotations'; +import { getServices } from './get_services'; +import { getServiceAgent } from './get_service_agent'; +import { getServiceAlerts } from './get_service_alerts'; +import { getServiceDependencies } from './get_service_dependencies'; +import { getServiceInstanceMetadataDetails } from './get_service_instance_metadata_details'; +import { getServiceErrorGroupPeriods } from './get_service_error_groups/get_service_error_group_detailed_statistics'; +import { getServiceErrorGroupMainStatistics } from './get_service_error_groups/get_service_error_group_main_statistics'; +import { getServiceInstancesDetailedStatisticsPeriods } from './get_service_instances/detailed_statistics'; +import { getServiceInstancesMainStatistics } from './get_service_instances/main_statistics'; +import { getServiceMetadataDetails } from './get_service_metadata_details'; +import { getServiceMetadataIcons } from './get_service_metadata_icons'; +import { getServiceNodeMetadata } from './get_service_node_metadata'; +import { getServiceTransactionTypes } from './get_service_transaction_types'; +import { getThroughput } from './get_throughput'; +import { getServiceProfilingStatistics } from './profiling/get_service_profiling_statistics'; +import { getServiceProfilingTimeline } from './profiling/get_service_profiling_timeline'; +import { getServiceInfrastructure } from './get_service_infrastructure'; +import { withApmSpan } from '../../utils/with_apm_span'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; import { comparisonRangeRt, environmentRt, kueryRt, offsetRt, rangeRt, -} from './default_api_types'; -import { offsetPreviousPeriodCoordinates } from '../../common/utils/offset_previous_period_coordinate'; -import { getServicesDetailedStatistics } from '../lib/services/get_services_detailed_statistics'; -import { getServiceDependenciesBreakdown } from '../lib/services/get_service_dependencies_breakdown'; -import { getBucketSizeForAggregatedTransactions } from '../lib/helpers/get_bucket_size_for_aggregated_transactions'; +} from '../default_api_types'; +import { offsetPreviousPeriodCoordinates } from '../../../common/utils/offset_previous_period_coordinate'; +import { getServicesDetailedStatistics } from './get_services_detailed_statistics'; +import { getServiceDependenciesBreakdown } from './get_service_dependencies_breakdown'; +import { getBucketSizeForAggregatedTransactions } from '../../lib/helpers/get_bucket_size_for_aggregated_transactions'; const servicesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/services', diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/settings/agent_configuration/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/convert_settings_to_string.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/convert_settings_to_string.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/convert_settings_to_string.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/convert_settings_to_string.ts diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/create_agent_config_index.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/create_agent_config_index.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/create_agent_config_index.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/create_agent_config_index.ts diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/create_or_update_configuration.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/create_or_update_configuration.ts similarity index 89% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/create_or_update_configuration.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/create_or_update_configuration.ts index c112c3be3362b..07a9f79829306 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/create_or_update_configuration.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/create_or_update_configuration.ts @@ -6,12 +6,12 @@ */ import hash from 'object-hash'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { AgentConfiguration, AgentConfigurationIntake, } from '../../../../common/agent_configuration/configuration_types'; -import { APMIndexDocumentParams } from '../../helpers/create_es_client/create_internal_es_client'; +import { APMIndexDocumentParams } from '../../../lib/helpers/create_es_client/create_internal_es_client'; export function createOrUpdateConfiguration({ configurationId, diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/delete_configuration.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/delete_configuration.ts similarity index 91% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/delete_configuration.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/delete_configuration.ts index 125c97730a6fa..5ac8437b15786 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/delete_configuration.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/delete_configuration.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; export async function deleteConfiguration({ configurationId, diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/find_exact_configuration.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/find_exact_configuration.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/find_exact_configuration.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/find_exact_configuration.ts index 90f82442f9bfa..ac95f36107994 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/find_exact_configuration.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/find_exact_configuration.ts @@ -11,7 +11,7 @@ import { SERVICE_ENVIRONMENT, SERVICE_NAME, } from '../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { convertConfigSettingsToString } from './convert_settings_to_string'; export async function findExactConfiguration({ diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_agent_name_by_service.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_agent_name_by_service.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/get_agent_name_by_service.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/get_agent_name_by_service.ts index 6ea3e2a578050..d16af2d95d22a 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_agent_name_by_service.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_agent_name_by_service.ts @@ -6,7 +6,7 @@ */ import { ProcessorEvent } from '../../../../common/processor_event'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { SERVICE_NAME } from '../../../../common/elasticsearch_fieldnames'; import { AGENT_NAME } from '../../../../common/elasticsearch_fieldnames'; diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_environments/get_existing_environments_for_service.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/get_existing_environments_for_service.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/get_environments/get_existing_environments_for_service.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/get_existing_environments_for_service.ts index 4fd351f8708a2..a3925c060a1c5 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_environments/get_existing_environments_for_service.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/get_existing_environments_for_service.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../../helpers/setup_request'; +import { Setup } from '../../../../lib/helpers/setup_request'; import { SERVICE_NAME, SERVICE_ENVIRONMENT, diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_environments/index.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/index.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/get_environments/index.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/index.ts index a22c1d35dc663..46ab82152caad 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_environments/index.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_environments/index.ts @@ -7,7 +7,7 @@ import { withApmSpan } from '../../../../utils/with_apm_span'; import { getAllEnvironments } from '../../../environments/get_all_environments'; -import { Setup } from '../../../helpers/setup_request'; +import { Setup } from '../../../../lib/helpers/setup_request'; import { getExistingEnvironmentsForService } from './get_existing_environments_for_service'; import { ALL_OPTION_VALUE } from '../../../../../common/agent_configuration/all_option'; diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_service_names.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_service_names.ts similarity index 90% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/get_service_names.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/get_service_names.ts index fc5167159b98d..18e359c5b9425 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/get_service_names.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/get_service_names.ts @@ -6,10 +6,10 @@ */ import { ProcessorEvent } from '../../../../common/processor_event'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { SERVICE_NAME } from '../../../../common/elasticsearch_fieldnames'; import { ALL_OPTION_VALUE } from '../../../../common/agent_configuration/all_option'; -import { getProcessorEventForTransactions } from '../../helpers/transactions'; +import { getProcessorEventForTransactions } from '../../../lib/helpers/transactions'; export async function getServiceNames({ setup, diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/list_configurations.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/list_configurations.ts similarity index 93% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/list_configurations.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/list_configurations.ts index 098888c23ccbc..bc105106cb5e4 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/list_configurations.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/list_configurations.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { AgentConfiguration } from '../../../../common/agent_configuration/configuration_types'; import { convertConfigSettingsToString } from './convert_settings_to_string'; diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/mark_applied_by_agent.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/mark_applied_by_agent.ts similarity index 93% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/mark_applied_by_agent.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/mark_applied_by_agent.ts index 5fa4993921570..78e0ce68624a6 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/mark_applied_by_agent.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/mark_applied_by_agent.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { AgentConfiguration } from '../../../../common/agent_configuration/configuration_types'; // We're not wrapping this function with a span as it is not blocking the request diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/queries.test.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/queries.test.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/queries.test.ts diff --git a/x-pack/plugins/apm/server/routes/settings/agent_configuration.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/route.ts similarity index 86% rename from x-pack/plugins/apm/server/routes/settings/agent_configuration.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/route.ts index 563fa40c6c0d9..1122c2095ed3d 100644 --- a/x-pack/plugins/apm/server/routes/settings/agent_configuration.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/route.ts @@ -8,25 +8,25 @@ import * as t from 'io-ts'; import Boom from '@hapi/boom'; import { toBooleanRt } from '@kbn/io-ts-utils/to_boolean_rt'; -import { maxSuggestions } from '../../../../observability/common'; -import { setupRequest } from '../../lib/helpers/setup_request'; -import { getServiceNames } from '../../lib/settings/agent_configuration/get_service_names'; -import { createOrUpdateConfiguration } from '../../lib/settings/agent_configuration/create_or_update_configuration'; -import { searchConfigurations } from '../../lib/settings/agent_configuration/search_configurations'; -import { findExactConfiguration } from '../../lib/settings/agent_configuration/find_exact_configuration'; -import { listConfigurations } from '../../lib/settings/agent_configuration/list_configurations'; -import { getEnvironments } from '../../lib/settings/agent_configuration/get_environments'; -import { deleteConfiguration } from '../../lib/settings/agent_configuration/delete_configuration'; -import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getAgentNameByService } from '../../lib/settings/agent_configuration/get_agent_name_by_service'; -import { markAppliedByAgent } from '../../lib/settings/agent_configuration/mark_applied_by_agent'; +import { maxSuggestions } from '../../../../../observability/common'; +import { setupRequest } from '../../../lib/helpers/setup_request'; +import { getServiceNames } from './get_service_names'; +import { createOrUpdateConfiguration } from './create_or_update_configuration'; +import { searchConfigurations } from './search_configurations'; +import { findExactConfiguration } from './find_exact_configuration'; +import { listConfigurations } from './list_configurations'; +import { getEnvironments } from './get_environments'; +import { deleteConfiguration } from './delete_configuration'; +import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; +import { getAgentNameByService } from './get_agent_name_by_service'; +import { markAppliedByAgent } from './mark_applied_by_agent'; import { serviceRt, agentConfigurationIntakeRt, -} from '../../../common/agent_configuration/runtime_types/agent_configuration_intake_rt'; -import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; -import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; -import { syncAgentConfigsToApmPackagePolicies } from '../../lib/fleet/sync_agent_configs_to_apm_package_policies'; +} from '../../../../common/agent_configuration/runtime_types/agent_configuration_intake_rt'; +import { getSearchAggregatedTransactions } from '../../../lib/helpers/transactions'; +import { createApmServerRouteRepository } from '../../apm_routes/create_apm_server_route_repository'; +import { syncAgentConfigsToApmPackagePolicies } from '../../fleet/sync_agent_configs_to_apm_package_policies'; // get list of configurations const agentConfigurationRoute = createApmServerRoute({ diff --git a/x-pack/plugins/apm/server/lib/settings/agent_configuration/search_configurations.ts b/x-pack/plugins/apm/server/routes/settings/agent_configuration/search_configurations.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/settings/agent_configuration/search_configurations.ts rename to x-pack/plugins/apm/server/routes/settings/agent_configuration/search_configurations.ts index 1e37ae9108573..194e1eff4e657 100644 --- a/x-pack/plugins/apm/server/lib/settings/agent_configuration/search_configurations.ts +++ b/x-pack/plugins/apm/server/routes/settings/agent_configuration/search_configurations.ts @@ -10,7 +10,7 @@ import { SERVICE_NAME, SERVICE_ENVIRONMENT, } from '../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { AgentConfiguration } from '../../../../common/agent_configuration/configuration_types'; import { convertConfigSettingsToString } from './convert_settings_to_string'; diff --git a/x-pack/plugins/apm/server/routes/settings/anomaly_detection.ts b/x-pack/plugins/apm/server/routes/settings/anomaly_detection/route.ts similarity index 74% rename from x-pack/plugins/apm/server/routes/settings/anomaly_detection.ts rename to x-pack/plugins/apm/server/routes/settings/anomaly_detection/route.ts index e8b2ef5e119cd..a924a9214977d 100644 --- a/x-pack/plugins/apm/server/routes/settings/anomaly_detection.ts +++ b/x-pack/plugins/apm/server/routes/settings/anomaly_detection/route.ts @@ -7,19 +7,19 @@ import * as t from 'io-ts'; import Boom from '@hapi/boom'; -import { maxSuggestions } from '../../../../observability/common'; -import { isActivePlatinumLicense } from '../../../common/license_check'; -import { ML_ERRORS } from '../../../common/anomaly_detection'; -import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { getAnomalyDetectionJobs } from '../../lib/anomaly_detection/get_anomaly_detection_jobs'; -import { createAnomalyDetectionJobs } from '../../lib/anomaly_detection/create_anomaly_detection_jobs'; -import { setupRequest } from '../../lib/helpers/setup_request'; -import { getAllEnvironments } from '../../lib/environments/get_all_environments'; -import { hasLegacyJobs } from '../../lib/anomaly_detection/has_legacy_jobs'; -import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; -import { notifyFeatureUsage } from '../../feature'; -import { withApmSpan } from '../../utils/with_apm_span'; -import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { maxSuggestions } from '../../../../../observability/common'; +import { isActivePlatinumLicense } from '../../../../common/license_check'; +import { ML_ERRORS } from '../../../../common/anomaly_detection'; +import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; +import { getAnomalyDetectionJobs } from '../../../lib/anomaly_detection/get_anomaly_detection_jobs'; +import { createAnomalyDetectionJobs } from '../../../lib/anomaly_detection/create_anomaly_detection_jobs'; +import { setupRequest } from '../../../lib/helpers/setup_request'; +import { getAllEnvironments } from '../../environments/get_all_environments'; +import { hasLegacyJobs } from '../../../lib/anomaly_detection/has_legacy_jobs'; +import { getSearchAggregatedTransactions } from '../../../lib/helpers/transactions'; +import { notifyFeatureUsage } from '../../../feature'; +import { withApmSpan } from '../../../utils/with_apm_span'; +import { createApmServerRouteRepository } from '../../apm_routes/create_apm_server_route_repository'; // get ML anomaly detection jobs for each environment const anomalyDetectionJobsRoute = createApmServerRoute({ diff --git a/x-pack/plugins/apm/server/lib/settings/apm_indices/get_apm_indices.ts b/x-pack/plugins/apm/server/routes/settings/apm_indices/get_apm_indices.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/settings/apm_indices/get_apm_indices.ts rename to x-pack/plugins/apm/server/routes/settings/apm_indices/get_apm_indices.ts index a37720cbc3790..6b917919bade5 100644 --- a/x-pack/plugins/apm/server/lib/settings/apm_indices/get_apm_indices.ts +++ b/x-pack/plugins/apm/server/routes/settings/apm_indices/get_apm_indices.ts @@ -12,7 +12,7 @@ import { APM_INDICES_SAVED_OBJECT_ID, } from '../../../../common/apm_saved_object_constants'; import { APMConfig } from '../../..'; -import { APMRouteHandlerResources } from '../../../routes/typings'; +import { APMRouteHandlerResources } from '../../typings'; import { withApmSpan } from '../../../utils/with_apm_span'; import { ApmIndicesConfig } from '../../../../../observability/common/typings'; diff --git a/x-pack/plugins/apm/server/routes/settings/apm_indices.ts b/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts similarity index 82% rename from x-pack/plugins/apm/server/routes/settings/apm_indices.ts rename to x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts index ed99f0c8862f0..485ff8af88843 100644 --- a/x-pack/plugins/apm/server/routes/settings/apm_indices.ts +++ b/x-pack/plugins/apm/server/routes/settings/apm_indices/route.ts @@ -6,14 +6,11 @@ */ import * as t from 'io-ts'; -import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; -import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { - getApmIndices, - getApmIndexSettings, -} from '../../lib/settings/apm_indices/get_apm_indices'; -import { saveApmIndices } from '../../lib/settings/apm_indices/save_apm_indices'; -import { APMConfig } from '../..'; +import { createApmServerRouteRepository } from '../../apm_routes/create_apm_server_route_repository'; +import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; +import { getApmIndices, getApmIndexSettings } from './get_apm_indices'; +import { saveApmIndices } from './save_apm_indices'; +import { APMConfig } from '../../../'; // get list of apm indices and values const apmIndexSettingsRoute = createApmServerRoute({ diff --git a/x-pack/plugins/apm/server/lib/settings/apm_indices/save_apm_indices.test.ts b/x-pack/plugins/apm/server/routes/settings/apm_indices/save_apm_indices.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/apm_indices/save_apm_indices.test.ts rename to x-pack/plugins/apm/server/routes/settings/apm_indices/save_apm_indices.test.ts diff --git a/x-pack/plugins/apm/server/lib/settings/apm_indices/save_apm_indices.ts b/x-pack/plugins/apm/server/routes/settings/apm_indices/save_apm_indices.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/apm_indices/save_apm_indices.ts rename to x-pack/plugins/apm/server/routes/settings/apm_indices/save_apm_indices.ts diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/__snapshots__/get_transaction.test.ts.snap b/x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/get_transaction.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/custom_link/__snapshots__/get_transaction.test.ts.snap rename to x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/get_transaction.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/__snapshots__/list_custom_links.test.ts.snap b/x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/list_custom_links.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/custom_link/__snapshots__/list_custom_links.test.ts.snap rename to x-pack/plugins/apm/server/routes/settings/custom_link/__snapshots__/list_custom_links.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/create_custom_link_index.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/create_custom_link_index.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/custom_link/create_custom_link_index.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/create_custom_link_index.ts diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/create_or_update_custom_link.test.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/create_or_update_custom_link.test.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/settings/custom_link/create_or_update_custom_link.test.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/create_or_update_custom_link.test.ts index 1cec38ad4af69..7690210ac0123 100644 --- a/x-pack/plugins/apm/server/lib/settings/custom_link/create_or_update_custom_link.test.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/create_or_update_custom_link.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { mockNow } from '../../../utils/test_helpers'; import { CustomLink } from '../../../../common/custom_link/custom_link_types'; import { createOrUpdateCustomLink } from './create_or_update_custom_link'; diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/create_or_update_custom_link.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/create_or_update_custom_link.ts similarity index 86% rename from x-pack/plugins/apm/server/lib/settings/custom_link/create_or_update_custom_link.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/create_or_update_custom_link.ts index 8f14e87fe183b..6431390936763 100644 --- a/x-pack/plugins/apm/server/lib/settings/custom_link/create_or_update_custom_link.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/create_or_update_custom_link.ts @@ -9,9 +9,9 @@ import { CustomLink, CustomLinkES, } from '../../../../common/custom_link/custom_link_types'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { toESFormat } from './helper'; -import { APMIndexDocumentParams } from '../../helpers/create_es_client/create_internal_es_client'; +import { APMIndexDocumentParams } from '../../../lib/helpers/create_es_client/create_internal_es_client'; export function createOrUpdateCustomLink({ customLinkId, diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/custom_link_types.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/custom_link_types.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/custom_link/custom_link_types.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/custom_link_types.ts diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/delete_custom_link.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/delete_custom_link.ts similarity index 90% rename from x-pack/plugins/apm/server/lib/settings/custom_link/delete_custom_link.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/delete_custom_link.ts index bf7cfb33d87ac..6366bbcfd9f07 100644 --- a/x-pack/plugins/apm/server/lib/settings/custom_link/delete_custom_link.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/delete_custom_link.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; export function deleteCustomLink({ customLinkId, diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/get_transaction.test.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.test.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/settings/custom_link/get_transaction.test.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.test.ts index 03d0120b0043b..e6ba932ca58d6 100644 --- a/x-pack/plugins/apm/server/lib/settings/custom_link/get_transaction.test.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.test.ts @@ -10,7 +10,7 @@ import { SearchParamsMock, } from '../../../utils/test_helpers'; import { getTransaction } from './get_transaction'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { SERVICE_NAME, TRANSACTION_TYPE, diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/get_transaction.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/settings/custom_link/get_transaction.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.ts index 1c3d1465527ba..88d2ae9f339ac 100644 --- a/x-pack/plugins/apm/server/lib/settings/custom_link/get_transaction.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/get_transaction.ts @@ -7,7 +7,7 @@ import * as t from 'io-ts'; import { compact } from 'lodash'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { ProcessorEvent } from '../../../../common/processor_event'; import { filterOptionsRt } from './custom_link_types'; import { splitFilterValueByComma } from './helper'; diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/helper.test.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/helper.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/custom_link/helper.test.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/helper.test.ts diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/helper.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/helper.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/settings/custom_link/helper.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/helper.ts diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/list_custom_links.test.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/list_custom_links.test.ts similarity index 94% rename from x-pack/plugins/apm/server/lib/settings/custom_link/list_custom_links.test.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/list_custom_links.test.ts index 844f886c21a46..8ea4061e46cf2 100644 --- a/x-pack/plugins/apm/server/lib/settings/custom_link/list_custom_links.test.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/list_custom_links.test.ts @@ -10,7 +10,7 @@ import { inspectSearchParams, SearchParamsMock, } from '../../../utils/test_helpers'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { SERVICE_NAME, TRANSACTION_NAME, diff --git a/x-pack/plugins/apm/server/lib/settings/custom_link/list_custom_links.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/list_custom_links.ts similarity index 96% rename from x-pack/plugins/apm/server/lib/settings/custom_link/list_custom_links.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/list_custom_links.ts index 633545e16acfd..a64d958dabd09 100644 --- a/x-pack/plugins/apm/server/lib/settings/custom_link/list_custom_links.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/list_custom_links.ts @@ -11,7 +11,7 @@ import { CustomLink, CustomLinkES, } from '../../../../common/custom_link/custom_link_types'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { fromESFormat } from './helper'; import { filterOptionsRt } from './custom_link_types'; diff --git a/x-pack/plugins/apm/server/routes/settings/custom_link.ts b/x-pack/plugins/apm/server/routes/settings/custom_link/route.ts similarity index 79% rename from x-pack/plugins/apm/server/routes/settings/custom_link.ts rename to x-pack/plugins/apm/server/routes/settings/custom_link/route.ts index 044b56c3c273d..42232581f1af3 100644 --- a/x-pack/plugins/apm/server/routes/settings/custom_link.ts +++ b/x-pack/plugins/apm/server/routes/settings/custom_link/route.ts @@ -8,21 +8,18 @@ import Boom from '@hapi/boom'; import * as t from 'io-ts'; import { pick } from 'lodash'; -import { isActiveGoldLicense } from '../../../common/license_check'; -import { INVALID_LICENSE } from '../../../common/custom_link'; -import { FILTER_OPTIONS } from '../../../common/custom_link/custom_link_filter_options'; -import { notifyFeatureUsage } from '../../feature'; -import { setupRequest } from '../../lib/helpers/setup_request'; -import { createOrUpdateCustomLink } from '../../lib/settings/custom_link/create_or_update_custom_link'; -import { - filterOptionsRt, - payloadRt, -} from '../../lib/settings/custom_link/custom_link_types'; -import { deleteCustomLink } from '../../lib/settings/custom_link/delete_custom_link'; -import { getTransaction } from '../../lib/settings/custom_link/get_transaction'; -import { listCustomLinks } from '../../lib/settings/custom_link/list_custom_links'; -import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { isActiveGoldLicense } from '../../../../common/license_check'; +import { INVALID_LICENSE } from '../../../../common/custom_link'; +import { FILTER_OPTIONS } from '../../../../common/custom_link/custom_link_filter_options'; +import { notifyFeatureUsage } from '../../../feature'; +import { setupRequest } from '../../../lib/helpers/setup_request'; +import { createOrUpdateCustomLink } from './create_or_update_custom_link'; +import { filterOptionsRt, payloadRt } from './custom_link_types'; +import { deleteCustomLink } from './delete_custom_link'; +import { getTransaction } from './get_transaction'; +import { listCustomLinks } from './list_custom_links'; +import { createApmServerRoute } from '../../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../../apm_routes/create_apm_server_route_repository'; const customLinkTransactionRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/settings/custom_links/transaction', diff --git a/x-pack/plugins/apm/server/routes/source_maps.ts b/x-pack/plugins/apm/server/routes/source_maps/route.ts similarity index 91% rename from x-pack/plugins/apm/server/routes/source_maps.ts rename to x-pack/plugins/apm/server/routes/source_maps/route.ts index 602a3a725eac4..b0b7eb5134fcf 100644 --- a/x-pack/plugins/apm/server/routes/source_maps.ts +++ b/x-pack/plugins/apm/server/routes/source_maps/route.ts @@ -14,11 +14,11 @@ import { listArtifacts, updateSourceMapsOnFleetPolicies, getCleanedBundleFilePath, -} from '../lib/fleet/source_maps'; -import { getInternalSavedObjectsClient } from '../lib/helpers/get_internal_saved_objects_client'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { stringFromBufferRt } from '../utils/string_from_buffer_rt'; +} from '../fleet/source_maps'; +import { getInternalSavedObjectsClient } from '../../lib/helpers/get_internal_saved_objects_client'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { stringFromBufferRt } from '../../utils/string_from_buffer_rt'; export const sourceMapRt = t.intersection([ t.type({ diff --git a/x-pack/plugins/apm/server/lib/suggestions/get_suggestions.ts b/x-pack/plugins/apm/server/routes/suggestions/get_suggestions.ts similarity index 87% rename from x-pack/plugins/apm/server/lib/suggestions/get_suggestions.ts rename to x-pack/plugins/apm/server/routes/suggestions/get_suggestions.ts index 5ea28debc4437..624bf2bb4c018 100644 --- a/x-pack/plugins/apm/server/lib/suggestions/get_suggestions.ts +++ b/x-pack/plugins/apm/server/routes/suggestions/get_suggestions.ts @@ -6,8 +6,8 @@ */ import { ProcessorEvent } from '../../../common/processor_event'; -import { getProcessorEventForTransactions } from '../helpers/transactions'; -import { Setup } from '../helpers/setup_request'; +import { getProcessorEventForTransactions } from '../../lib/helpers/transactions'; +import { Setup } from '../../lib/helpers/setup_request'; export async function getSuggestions({ field, diff --git a/x-pack/plugins/apm/server/routes/suggestions.ts b/x-pack/plugins/apm/server/routes/suggestions/route.ts similarity index 72% rename from x-pack/plugins/apm/server/routes/suggestions.ts rename to x-pack/plugins/apm/server/routes/suggestions/route.ts index 9b8952d09d162..de3636c2c1502 100644 --- a/x-pack/plugins/apm/server/routes/suggestions.ts +++ b/x-pack/plugins/apm/server/routes/suggestions/route.ts @@ -6,12 +6,12 @@ */ import * as t from 'io-ts'; -import { maxSuggestions } from '../../../observability/common'; -import { getSuggestions } from '../lib/suggestions/get_suggestions'; -import { getSearchAggregatedTransactions } from '../lib/helpers/transactions'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; +import { maxSuggestions } from '../../../../observability/common'; +import { getSuggestions } from '../suggestions/get_suggestions'; +import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; const suggestionsRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/suggestions', diff --git a/x-pack/plugins/apm/server/lib/traces/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/traces/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/traces/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/traces/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/traces/get_trace_items.ts b/x-pack/plugins/apm/server/routes/traces/get_trace_items.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/traces/get_trace_items.ts rename to x-pack/plugins/apm/server/routes/traces/get_trace_items.ts index 55204786b8e67..419c3e44d68a6 100644 --- a/x-pack/plugins/apm/server/lib/traces/get_trace_items.ts +++ b/x-pack/plugins/apm/server/routes/traces/get_trace_items.ts @@ -15,7 +15,7 @@ import { ERROR_LOG_LEVEL, } from '../../../common/elasticsearch_fieldnames'; import { rangeQuery } from '../../../../observability/server'; -import { Setup } from '../helpers/setup_request'; +import { Setup } from '../../lib/helpers/setup_request'; export async function getTraceItems( traceId: string, diff --git a/x-pack/plugins/apm/server/lib/traces/queries.test.ts b/x-pack/plugins/apm/server/routes/traces/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/traces/queries.test.ts rename to x-pack/plugins/apm/server/routes/traces/queries.test.ts diff --git a/x-pack/plugins/apm/server/routes/traces.ts b/x-pack/plugins/apm/server/routes/traces/route.ts similarity index 79% rename from x-pack/plugins/apm/server/routes/traces.ts rename to x-pack/plugins/apm/server/routes/traces/route.ts index 5fdac470a81ed..24b5faeedfc00 100644 --- a/x-pack/plugins/apm/server/routes/traces.ts +++ b/x-pack/plugins/apm/server/routes/traces/route.ts @@ -6,15 +6,15 @@ */ import * as t from 'io-ts'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getTraceItems } from '../lib/traces/get_trace_items'; -import { getTopTransactionGroupList } from '../lib/transaction_groups'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { environmentRt, kueryRt, rangeRt } from './default_api_types'; -import { getSearchAggregatedTransactions } from '../lib/helpers/transactions'; -import { getRootTransactionByTraceId } from '../lib/transactions/get_transaction_by_trace'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; -import { getTransaction } from '../lib/transactions/get_transaction'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getTraceItems } from './get_trace_items'; +import { getTopTransactionGroupList } from '../../lib/transaction_groups'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { environmentRt, kueryRt, rangeRt } from '../default_api_types'; +import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; +import { getRootTransactionByTraceId } from '../transactions/get_transaction_by_trace'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; +import { getTransaction } from '../transactions/get_transaction'; const tracesRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/traces', diff --git a/x-pack/plugins/apm/server/lib/transactions/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap similarity index 100% rename from x-pack/plugins/apm/server/lib/transactions/__snapshots__/queries.test.ts.snap rename to x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap diff --git a/x-pack/plugins/apm/server/lib/transactions/breakdown/constants.ts b/x-pack/plugins/apm/server/routes/transactions/breakdown/constants.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/transactions/breakdown/constants.ts rename to x-pack/plugins/apm/server/routes/transactions/breakdown/constants.ts diff --git a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.test.ts b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.test.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/transactions/breakdown/index.test.ts rename to x-pack/plugins/apm/server/routes/transactions/breakdown/index.test.ts index 41d4c60fd72b4..1d2602dcafc75 100644 --- a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.test.ts +++ b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.test.ts @@ -11,7 +11,7 @@ import noDataResponse from './mock_responses/no_data.json'; import dataResponse from './mock_responses/data.json'; import { APMConfig } from '../../..'; import { ENVIRONMENT_ALL } from '../../../../common/environment_filter_values'; -import { ApmIndicesConfig } from '../../settings/apm_indices/get_apm_indices'; +import { ApmIndicesConfig } from '../../../routes/settings/apm_indices/get_apm_indices'; const mockIndices: ApmIndicesConfig = { sourcemap: 'myIndex', diff --git a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.ts b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/transactions/breakdown/index.ts rename to x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts index a5c11776c70b0..2c3bca8443db0 100644 --- a/x-pack/plugins/apm/server/lib/transactions/breakdown/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts @@ -17,10 +17,10 @@ import { TRANSACTION_NAME, TRANSACTION_BREAKDOWN_COUNT, } from '../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { rangeQuery, kqlQuery } from '../../../../../observability/server'; import { environmentQuery } from '../../../../common/utils/environment_query'; -import { getMetricsDateHistogramParams } from '../../helpers/metrics'; +import { getMetricsDateHistogramParams } from '../../../lib/helpers/metrics'; import { MAX_KPIS } from './constants'; import { getVizColorForIndex } from '../../../../common/viz_colors'; diff --git a/x-pack/plugins/apm/server/lib/transactions/breakdown/mock_responses/data.json b/x-pack/plugins/apm/server/routes/transactions/breakdown/mock_responses/data.json similarity index 100% rename from x-pack/plugins/apm/server/lib/transactions/breakdown/mock_responses/data.json rename to x-pack/plugins/apm/server/routes/transactions/breakdown/mock_responses/data.json diff --git a/x-pack/plugins/apm/server/lib/transactions/breakdown/mock_responses/no_data.json b/x-pack/plugins/apm/server/routes/transactions/breakdown/mock_responses/no_data.json similarity index 100% rename from x-pack/plugins/apm/server/lib/transactions/breakdown/mock_responses/no_data.json rename to x-pack/plugins/apm/server/routes/transactions/breakdown/mock_responses/no_data.json diff --git a/x-pack/plugins/apm/server/lib/transactions/constants.ts b/x-pack/plugins/apm/server/routes/transactions/constants.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/transactions/constants.ts rename to x-pack/plugins/apm/server/routes/transactions/constants.ts diff --git a/x-pack/plugins/apm/server/lib/transactions/get_anomaly_data/fetcher.ts b/x-pack/plugins/apm/server/routes/transactions/get_anomaly_data/fetcher.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/transactions/get_anomaly_data/fetcher.ts rename to x-pack/plugins/apm/server/routes/transactions/get_anomaly_data/fetcher.ts index dd723f24abe1b..704bc751e5772 100644 --- a/x-pack/plugins/apm/server/lib/transactions/get_anomaly_data/fetcher.ts +++ b/x-pack/plugins/apm/server/routes/transactions/get_anomaly_data/fetcher.ts @@ -11,7 +11,7 @@ import { PromiseReturnType } from '../../../../../observability/typings/common'; import { rangeQuery } from '../../../../../observability/server'; import { asMutableArray } from '../../../../common/utils/as_mutable_array'; import { withApmSpan } from '../../../utils/with_apm_span'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { apmMlAnomalyQuery } from '../../../../common/anomaly_detection/apm_ml_anomaly_query'; import { ApmMlDetectorIndex } from '../../../../common/anomaly_detection/apm_ml_detectors'; diff --git a/x-pack/plugins/apm/server/lib/transactions/get_anomaly_data/index.ts b/x-pack/plugins/apm/server/routes/transactions/get_anomaly_data/index.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/transactions/get_anomaly_data/index.ts rename to x-pack/plugins/apm/server/routes/transactions/get_anomaly_data/index.ts index c1123182586b7..0cdbe1774504a 100644 --- a/x-pack/plugins/apm/server/lib/transactions/get_anomaly_data/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/get_anomaly_data/index.ts @@ -10,8 +10,8 @@ import { Logger } from 'src/core/server'; import { isFiniteNumber } from '../../../../common/utils/is_finite_number'; import { maybe } from '../../../../common/utils/maybe'; import { ENVIRONMENT_ALL } from '../../../../common/environment_filter_values'; -import { getBucketSize } from '../../helpers/get_bucket_size'; -import { Setup } from '../../helpers/setup_request'; +import { getBucketSize } from '../../../lib/helpers/get_bucket_size'; +import { Setup } from '../../../lib/helpers/setup_request'; import { anomalySeriesFetcher } from './fetcher'; import { getMLJobIds } from '../../service_map/get_service_anomalies'; import { ANOMALY_THRESHOLD } from '../../../../common/ml_constants'; diff --git a/x-pack/plugins/apm/server/lib/transactions/get_latency_charts/index.ts b/x-pack/plugins/apm/server/routes/transactions/get_latency_charts/index.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/transactions/get_latency_charts/index.ts rename to x-pack/plugins/apm/server/routes/transactions/get_latency_charts/index.ts index 4612d399b54a1..5375da3606f18 100644 --- a/x-pack/plugins/apm/server/lib/transactions/get_latency_charts/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/get_latency_charts/index.ts @@ -25,11 +25,11 @@ import { getProcessorEventForTransactions, } from '../../../lib/helpers/transactions'; import { Setup } from '../../../lib/helpers/setup_request'; -import { getBucketSizeForAggregatedTransactions } from '../../helpers/get_bucket_size_for_aggregated_transactions'; +import { getBucketSizeForAggregatedTransactions } from '../../../lib/helpers/get_bucket_size_for_aggregated_transactions'; import { getLatencyAggregation, getLatencyValue, -} from '../../helpers/latency_aggregation_type'; +} from '../../../lib/helpers/latency_aggregation_type'; export type LatencyChartsSearchResponse = PromiseReturnType< typeof searchLatency >; diff --git a/x-pack/plugins/apm/server/lib/transactions/get_transaction/index.ts b/x-pack/plugins/apm/server/routes/transactions/get_transaction/index.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/transactions/get_transaction/index.ts rename to x-pack/plugins/apm/server/routes/transactions/get_transaction/index.ts index 6d0bbcdb55ca4..0522fb3a1899d 100644 --- a/x-pack/plugins/apm/server/lib/transactions/get_transaction/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/get_transaction/index.ts @@ -10,7 +10,7 @@ import { TRANSACTION_ID, } from '../../../../common/elasticsearch_fieldnames'; import { rangeQuery, termQuery } from '../../../../../observability/server'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { ProcessorEvent } from '../../../../common/processor_event'; import { asMutableArray } from '../../../../common/utils/as_mutable_array'; diff --git a/x-pack/plugins/apm/server/lib/transactions/get_transaction_by_trace/index.ts b/x-pack/plugins/apm/server/routes/transactions/get_transaction_by_trace/index.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/transactions/get_transaction_by_trace/index.ts rename to x-pack/plugins/apm/server/routes/transactions/get_transaction_by_trace/index.ts index 568ce16e7aedc..d9c6a64bdbcc6 100644 --- a/x-pack/plugins/apm/server/lib/transactions/get_transaction_by_trace/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/get_transaction_by_trace/index.ts @@ -9,7 +9,7 @@ import { TRACE_ID, PARENT_ID, } from '../../../../common/elasticsearch_fieldnames'; -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { ProcessorEvent } from '../../../../common/processor_event'; export async function getRootTransactionByTraceId( diff --git a/x-pack/plugins/apm/server/lib/transactions/queries.test.ts b/x-pack/plugins/apm/server/routes/transactions/queries.test.ts similarity index 100% rename from x-pack/plugins/apm/server/lib/transactions/queries.test.ts rename to x-pack/plugins/apm/server/routes/transactions/queries.test.ts diff --git a/x-pack/plugins/apm/server/routes/transactions.ts b/x-pack/plugins/apm/server/routes/transactions/route.ts similarity index 90% rename from x-pack/plugins/apm/server/routes/transactions.ts rename to x-pack/plugins/apm/server/routes/transactions/route.ts index c0d83bac6e8e4..5b3f4e4f3bd4c 100644 --- a/x-pack/plugins/apm/server/routes/transactions.ts +++ b/x-pack/plugins/apm/server/routes/transactions/route.ts @@ -11,24 +11,24 @@ import * as t from 'io-ts'; import { LatencyAggregationType, latencyAggregationTypeRt, -} from '../../common/latency_aggregation_types'; -import { getSearchAggregatedTransactions } from '../lib/helpers/transactions'; -import { setupRequest } from '../lib/helpers/setup_request'; -import { getServiceTransactionGroups } from '../lib/services/get_service_transaction_groups'; -import { getServiceTransactionGroupDetailedStatisticsPeriods } from '../lib/services/get_service_transaction_group_detailed_statistics'; -import { getTransactionBreakdown } from '../lib/transactions/breakdown'; -import { getTransactionTraceSamples } from '../lib/transactions/trace_samples'; -import { getAnomalySeries } from '../lib/transactions/get_anomaly_data'; -import { getLatencyPeriods } from '../lib/transactions/get_latency_charts'; -import { getErrorRatePeriods } from '../lib/transaction_groups/get_error_rate'; -import { createApmServerRoute } from './apm_routes/create_apm_server_route'; -import { createApmServerRouteRepository } from './apm_routes/create_apm_server_route_repository'; +} from '../../../common/latency_aggregation_types'; +import { getSearchAggregatedTransactions } from '../../lib/helpers/transactions'; +import { setupRequest } from '../../lib/helpers/setup_request'; +import { getServiceTransactionGroups } from '../services/get_service_transaction_groups'; +import { getServiceTransactionGroupDetailedStatisticsPeriods } from '../services/get_service_transaction_group_detailed_statistics'; +import { getTransactionBreakdown } from './breakdown'; +import { getTransactionTraceSamples } from './trace_samples'; +import { getAnomalySeries } from './get_anomaly_data'; +import { getLatencyPeriods } from './get_latency_charts'; +import { getErrorRatePeriods } from '../../lib/transaction_groups/get_error_rate'; +import { createApmServerRoute } from '../apm_routes/create_apm_server_route'; +import { createApmServerRouteRepository } from '../apm_routes/create_apm_server_route_repository'; import { comparisonRangeRt, environmentRt, kueryRt, rangeRt, -} from './default_api_types'; +} from '../default_api_types'; const transactionGroupsMainStatisticsRoute = createApmServerRoute({ endpoint: diff --git a/x-pack/plugins/apm/server/lib/transactions/trace_samples/get_trace_samples/index.ts b/x-pack/plugins/apm/server/routes/transactions/trace_samples/get_trace_samples/index.ts similarity index 97% rename from x-pack/plugins/apm/server/lib/transactions/trace_samples/get_trace_samples/index.ts rename to x-pack/plugins/apm/server/routes/transactions/trace_samples/get_trace_samples/index.ts index 9b96cf19c516d..d4ceafd9f6306 100644 --- a/x-pack/plugins/apm/server/lib/transactions/trace_samples/get_trace_samples/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/trace_samples/get_trace_samples/index.ts @@ -17,7 +17,7 @@ import { import { ProcessorEvent } from '../../../../../common/processor_event'; import { rangeQuery, kqlQuery } from '../../../../../../observability/server'; import { environmentQuery } from '../../../../../common/utils/environment_query'; -import { Setup } from '../../../helpers/setup_request'; +import { Setup } from '../../../../lib/helpers/setup_request'; const TRACE_SAMPLES_SIZE = 500; diff --git a/x-pack/plugins/apm/server/lib/transactions/trace_samples/index.ts b/x-pack/plugins/apm/server/routes/transactions/trace_samples/index.ts similarity index 95% rename from x-pack/plugins/apm/server/lib/transactions/trace_samples/index.ts rename to x-pack/plugins/apm/server/routes/transactions/trace_samples/index.ts index e422be417438b..89bae10db5e87 100644 --- a/x-pack/plugins/apm/server/lib/transactions/trace_samples/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/trace_samples/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Setup } from '../../helpers/setup_request'; +import { Setup } from '../../../lib/helpers/setup_request'; import { getTraceSamples } from './get_trace_samples'; import { withApmSpan } from '../../../utils/with_apm_span'; diff --git a/x-pack/plugins/apm/server/tutorial/index.ts b/x-pack/plugins/apm/server/tutorial/index.ts index f04b794091ff2..5d3ff8636df4d 100644 --- a/x-pack/plugins/apm/server/tutorial/index.ts +++ b/x-pack/plugins/apm/server/tutorial/index.ts @@ -14,8 +14,8 @@ import { } from '../../../../../src/plugins/home/server'; import { CloudSetup } from '../../../cloud/server'; import { APM_STATIC_INDEX_PATTERN_ID } from '../../common/index_pattern_constants'; -import { getApmDataViewTitle } from '../lib/data_view/get_apm_data_view_title'; -import { ApmIndicesConfig } from '../lib/settings/apm_indices/get_apm_indices'; +import { getApmDataViewTitle } from '../routes/data_view/get_apm_data_view_title'; +import { ApmIndicesConfig } from '../routes/settings/apm_indices/get_apm_indices'; import { createElasticCloudInstructions } from './envs/elastic_cloud'; import { onPremInstructions } from './envs/on_prem'; import apmDataView from './index_pattern.json'; diff --git a/x-pack/plugins/apm/server/types.ts b/x-pack/plugins/apm/server/types.ts index c686c42beb6ef..02aae547407e5 100644 --- a/x-pack/plugins/apm/server/types.ts +++ b/x-pack/plugins/apm/server/types.ts @@ -47,7 +47,7 @@ import { FleetStartContract as FleetPluginStart, } from '../../fleet/server'; import { APMConfig } from '.'; -import { getApmIndices } from './lib/settings/apm_indices/get_apm_indices'; +import { getApmIndices } from './routes/settings/apm_indices/get_apm_indices'; import { createApmEventClient } from './lib/helpers/create_es_client/create_apm_event_client'; import { ApmPluginRequestHandlerContext } from './routes/typings'; diff --git a/x-pack/plugins/apm/server/utils/test_helpers.tsx b/x-pack/plugins/apm/server/utils/test_helpers.tsx index 0e1b9f2ba8051..19644b5bc87f8 100644 --- a/x-pack/plugins/apm/server/utils/test_helpers.tsx +++ b/x-pack/plugins/apm/server/utils/test_helpers.tsx @@ -12,7 +12,7 @@ import { ESSearchResponse, } from '../../../../../src/core/types/elasticsearch'; import { UxUIFilters } from '../../typings/ui_filters'; -import { ApmIndicesConfig } from '../lib/settings/apm_indices/get_apm_indices'; +import { ApmIndicesConfig } from '../routes/settings/apm_indices/get_apm_indices'; interface Options { mockResponse?: ( diff --git a/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts b/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts index d70ee347d4c2d..beaaae24fb220 100644 --- a/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts +++ b/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { first } from 'lodash'; -import { GenericMetricsChart } from '../../../../plugins/apm/server/lib/metrics/fetch_and_transform_metrics'; +import { GenericMetricsChart } from '../../../../plugins/apm/server/routes/metrics/fetch_and_transform_metrics'; import { SupertestReturnType } from '../../common/apm_api_supertest'; import { FtrProviderContext } from '../../common/ftr_provider_context'; diff --git a/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts b/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts index df504ec7444d7..cea718c2c69d5 100644 --- a/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts +++ b/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts @@ -10,7 +10,7 @@ import { inspect } from 'util'; import expect from '@kbn/expect'; import { omit, orderBy } from 'lodash'; import { AgentConfigurationIntake } from '../../../../plugins/apm/common/agent_configuration/configuration_types'; -import { AgentConfigSearchParams } from '../../../../plugins/apm/server/routes/settings/agent_configuration'; +import { AgentConfigSearchParams } from '../../../../plugins/apm/server/routes/settings/agent_configuration/route'; import { FtrProviderContext } from '../../common/ftr_provider_context'; From fc8816265bb73b51ec64124a7d24f6c777debcbb Mon Sep 17 00:00:00 2001 From: "Devin W. Hurley" Date: Thu, 18 Nov 2021 09:12:41 -0500 Subject: [PATCH 030/114] [Security Solution] [Platform] optionally include legacy id when resolving a rule (#118946) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/rules_client/rules_client.ts | 5 +- .../server/rules_client/tests/resolve.test.ts | 74 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/alerting/server/rules_client/rules_client.ts b/x-pack/plugins/alerting/server/rules_client/rules_client.ts index e10af37e0936b..37e9bcbfa3a8f 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -450,8 +450,10 @@ export class RulesClient { public async resolve({ id, + includeLegacyId, }: { id: string; + includeLegacyId?: boolean; }): Promise> { const { saved_object: result, ...resolveResponse } = await this.unsecuredSavedObjectsClient.resolve('alert', id); @@ -483,7 +485,8 @@ export class RulesClient { result.id, result.attributes.alertTypeId, result.attributes, - result.references + result.references, + includeLegacyId ); return { diff --git a/x-pack/plugins/alerting/server/rules_client/tests/resolve.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/resolve.test.ts index 537d890217cfb..8102dcedbd780 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/resolve.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/resolve.test.ts @@ -125,6 +125,80 @@ describe('resolve()', () => { `); }); + test('calls saved objects client with id and includeLegacyId params', async () => { + const rulesClient = new RulesClient(rulesClientParams); + unsecuredSavedObjectsClient.resolve.mockResolvedValueOnce({ + saved_object: { + id: '1', + type: 'alert', + attributes: { + legacyId: 'some-legacy-id', + alertTypeId: '123', + schedule: { interval: '10s' }, + params: { + bar: true, + }, + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + actions: [ + { + group: 'default', + actionRef: 'action_0', + params: { + foo: true, + }, + }, + ], + notifyWhen: 'onActiveAlert', + }, + references: [ + { + name: 'action_0', + type: 'action', + id: '1', + }, + ], + }, + outcome: 'aliasMatch', + alias_target_id: '2', + }); + const result = await rulesClient.resolve({ id: '1', includeLegacyId: true }); + expect(result).toMatchInlineSnapshot(` + Object { + "actions": Array [ + Object { + "group": "default", + "id": "1", + "params": Object { + "foo": true, + }, + }, + ], + "alertTypeId": "123", + "alias_target_id": "2", + "createdAt": 2019-02-12T21:01:22.479Z, + "id": "1", + "legacyId": "some-legacy-id", + "notifyWhen": "onActiveAlert", + "outcome": "aliasMatch", + "params": Object { + "bar": true, + }, + "schedule": Object { + "interval": "10s", + }, + "updatedAt": 2019-02-12T21:01:22.479Z, + } + `); + expect(unsecuredSavedObjectsClient.resolve).toHaveBeenCalledTimes(1); + expect(unsecuredSavedObjectsClient.resolve.mock.calls[0]).toMatchInlineSnapshot(` + Array [ + "alert", + "1", + ] + `); + }); + test('should call useSavedObjectReferences.injectReferences if defined for rule type', async () => { const injectReferencesFn = jest.fn().mockReturnValue({ bar: true, From 32587fb93d7f4045f992239731c39f7510519d0a Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Thu, 18 Nov 2021 07:30:27 -0700 Subject: [PATCH 031/114] [Security Solution] Update timeline when sourcerer updates (#118958) --- .../components/timeline/index.test.tsx | 60 +++++++++++++++---- .../timelines/components/timeline/index.tsx | 43 ++++++++++++- 2 files changed, 89 insertions(+), 14 deletions(-) diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx index bb1281c0eff2e..f5ceebf9cdb11 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx @@ -13,18 +13,26 @@ import { DragDropContextWrapper } from '../../../common/components/drag_and_drop import '../../../common/mock/match_media'; import { mockBrowserFields, mockDocValueFields } from '../../../common/containers/source/mock'; import { TimelineId } from '../../../../common/types/timeline'; -import { mockIndexNames, mockIndexPattern, TestProviders } from '../../../common/mock'; +import { + mockGlobalState, + mockIndexNames, + mockIndexPattern, + TestProviders, +} from '../../../common/mock'; import { StatefulTimeline, Props as StatefulTimelineOwnProps } from './index'; import { useTimelineEvents } from '../../containers/index'; import { DefaultCellRenderer } from './cell_rendering/default_cell_renderer'; import { SELECTOR_TIMELINE_GLOBAL_CONTAINER } from './styles'; import { defaultRowRenderers } from './body/renderers'; +import { useSourcererDataView } from '../../../common/containers/sourcerer'; jest.mock('../../containers/index', () => ({ useTimelineEvents: jest.fn(), })); +jest.mock('./tabs_content'); + jest.mock('../../../common/lib/kibana'); jest.mock('../../../common/components/url_state/normalize_time_range.ts'); jest.mock('@kbn/i18n/react', () => { @@ -54,21 +62,29 @@ jest.mock('react-router-dom', () => { useHistory: jest.fn(), }; }); -jest.mock('../../../common/containers/sourcerer', () => { - const originalModule = jest.requireActual('../../../common/containers/sourcerer'); +const mockDispatch = jest.fn(); + +jest.mock('react-redux', () => { + const actual = jest.requireActual('react-redux'); return { - ...originalModule, - useSourcererDataView: jest.fn().mockReturnValue({ - browserFields: mockBrowserFields, - docValueFields: mockDocValueFields, - loading: false, - indexPattern: mockIndexPattern, - pageInfo: { activePage: 0, querySize: 0 }, - selectedPatterns: mockIndexNames, - }), + ...actual, + useDispatch: () => mockDispatch, }; }); + +const mockUseSourcererDataView: jest.Mock = useSourcererDataView as jest.Mock; +jest.mock('../../../common/containers/sourcerer'); +const mockDataView = { + dataViewId: mockGlobalState.timeline.timelineById.test?.dataViewId, + browserFields: mockBrowserFields, + docValueFields: mockDocValueFields, + loading: false, + indexPattern: mockIndexPattern, + pageInfo: { activePage: 0, querySize: 0 }, + selectedPatterns: mockGlobalState.timeline.timelineById.test?.indexNames, +}; +mockUseSourcererDataView.mockReturnValue(mockDataView); describe('StatefulTimeline', () => { const props: StatefulTimelineOwnProps = { renderCellValue: DefaultCellRenderer, @@ -77,6 +93,7 @@ describe('StatefulTimeline', () => { }; beforeEach(() => { + jest.clearAllMocks(); (useTimelineEvents as jest.Mock).mockReturnValue([ false, { @@ -97,6 +114,25 @@ describe('StatefulTimeline', () => { ); expect(wrapper.find('[data-test-subj="timeline"]')).toBeTruthy(); + expect(mockDispatch).toBeCalledTimes(1); + }); + + test('data view updates, updates timeline', () => { + mockUseSourcererDataView.mockReturnValue({ ...mockDataView, selectedPatterns: mockIndexNames }); + mount( + + + + ); + expect(mockDispatch).toBeCalledTimes(2); + expect(mockDispatch).toHaveBeenNthCalledWith(2, { + payload: { + id: 'test', + dataViewId: mockDataView.dataViewId, + indexNames: mockIndexNames, + }, + type: 'x-pack/security_solution/local/timeline/UPDATE_DATA_VIEW', + }); }); test(`it add attribute data-timeline-id in ${SELECTOR_TIMELINE_GLOBAL_CONTAINER}`, () => { diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx index 48f9274fa563f..12bd3113f3ea7 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx @@ -64,9 +64,16 @@ const StatefulTimelineComponent: React.FC = ({ const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); const { dataViewId, selectedPatterns } = useSourcererDataView(SourcererScopeName.timeline); - const { graphEventId, savedObjectId, timelineType, description } = useDeepEqualSelector((state) => + const { + dataViewId: dataViewIdCurrent, + indexNames: selectedPatternsCurrent, + graphEventId, + savedObjectId, + timelineType, + description, + } = useDeepEqualSelector((state) => pick( - ['graphEventId', 'savedObjectId', 'timelineType', 'description'], + ['indexNames', 'dataViewId', 'graphEventId', 'savedObjectId', 'timelineType', 'description'], getTimeline(state, timelineId) ?? timelineDefaults ) ); @@ -88,6 +95,38 @@ const StatefulTimelineComponent: React.FC = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + const onDataViewChange = useCallback(() => { + if ( + // initial state will get set on create + (dataViewIdCurrent === '' && selectedPatternsCurrent.length === 0) || + // don't update if no change + (dataViewIdCurrent === dataViewId && + selectedPatternsCurrent.sort().join() === selectedPatterns.sort().join()) + ) { + return; + } + + dispatch( + timelineActions.updateDataView({ + id: timelineId, + dataViewId, + indexNames: selectedPatterns, + }) + ); + }, [ + dataViewId, + dataViewIdCurrent, + dispatch, + selectedPatterns, + selectedPatternsCurrent, + timelineId, + ]); + + useEffect(() => { + onDataViewChange(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [dataViewId, selectedPatterns]); + const onSkipFocusBeforeEventsTable = useCallback(() => { const exitFullScreenButton = containerElement.current?.querySelector( EXIT_FULL_SCREEN_CLASS_NAME From 5e90ec95f846e4864622e9bf282a87f72daa9b76 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Thu, 18 Nov 2021 15:30:44 +0100 Subject: [PATCH 032/114] Lens tests: heatmap fix (#119010) --- .../shared_components/coloring/palette_panel_container.tsx | 1 + x-pack/test/functional/page_objects/lens_page.ts | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx b/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx index b546ffe5fb6fb..abcd714b3af97 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx @@ -56,6 +56,7 @@ export function PalettePanelContainer({
diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index 5b7136a8d677b..10a46207b5338 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -872,7 +872,12 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont }, async openPalettePanel(chartType: string) { - await testSubjects.click(`${chartType}_dynamicColoring_trigger`); + await retry.try(async () => { + await testSubjects.click(`${chartType}_dynamicColoring_trigger`); + // wait for the UI to settle + await PageObjects.common.sleep(100); + await testSubjects.existOrFail('lns-indexPattern-PalettePanelContainer', { timeout: 2500 }); + }); }, async closePalettePanel() { From 12104d54c44327e52026d24a363caee09e89f551 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Thu, 18 Nov 2021 15:30:56 +0100 Subject: [PATCH 033/114] Lens tests: increase window height to avoid scrolling (#119003) --- x-pack/test/functional/apps/lens/index.ts | 2 +- x-pack/test/functional/page_objects/lens_page.ts | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/x-pack/test/functional/apps/lens/index.ts b/x-pack/test/functional/apps/lens/index.ts index e63aadf3451d7..72442be7645fa 100644 --- a/x-pack/test/functional/apps/lens/index.ts +++ b/x-pack/test/functional/apps/lens/index.ts @@ -17,7 +17,7 @@ export default function ({ getService, loadTestFile, getPageObjects }: FtrProvid describe('lens app', () => { before(async () => { log.debug('Starting lens before method'); - await browser.setWindowSize(1280, 800); + await browser.setWindowSize(1280, 1200); await esArchiver.load('x-pack/test/functional/es_archives/logstash_functional'); // changing the timepicker default here saves us from having to set it in Discover (~8s) await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings(); diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index 10a46207b5338..78b9762e3889a 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -20,8 +20,6 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont const browser = getService('browser'); const dashboardAddPanel = getService('dashboardAddPanel'); - const FORMULA_TAB_HEIGHT = 40; - const PageObjects = getPageObjects([ 'common', 'header', @@ -133,7 +131,7 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont : `lns-indexPatternDimension-${opts.operation}`; async function getAriaPressed() { const operationSelectorContainer = await testSubjects.find(operationSelector); - await testSubjects.click(operationSelector, undefined, FORMULA_TAB_HEIGHT); + await testSubjects.click(operationSelector); const ariaPressed = await operationSelectorContainer.getAttribute('aria-pressed'); return ariaPressed; } From 8377a870c68d0b50b65f20b50ce1dc239bcb0d7e Mon Sep 17 00:00:00 2001 From: Andrew Tate Date: Thu, 18 Nov 2021 09:02:57 -0600 Subject: [PATCH 034/114] reset filter state whenever split_mode changed (#118953) --- .../application/components/splits/filter.js | 14 +++++++++++--- .../application/components/splits/filters.js | 13 ++++++++++--- .../public/application/components/splits/terms.js | 15 ++++++++++++++- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/plugins/vis_types/timeseries/public/application/components/splits/filter.js b/src/plugins/vis_types/timeseries/public/application/components/splits/filter.js index 6324fff859d44..a53dc291fb6f0 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/splits/filter.js +++ b/src/plugins/vis_types/timeseries/public/application/components/splits/filter.js @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { createSelectHandler } from '../lib/create_select_handler'; import { GroupBySelect } from './group_by_select'; import PropTypes from 'prop-types'; import React from 'react'; @@ -15,12 +14,16 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { getDefaultQueryLanguage } from '../lib/get_default_query_language'; import { QueryBarWrapper } from '../query_bar_wrapper'; +const RESET_STATE = { + filter: undefined, +}; + export const SplitByFilter = (props) => { const { onChange, uiRestrictions, indexPattern } = props; const defaults = { filter: { language: getDefaultQueryLanguage(), query: '' } }; const model = { ...defaults, ...props.model }; const htmlId = htmlIdGenerator(); - const handleSelectChange = createSelectHandler(onChange); + return ( @@ -35,7 +38,12 @@ export const SplitByFilter = (props) => { > { + onChange({ + split_mode: newSplitMode, + ...RESET_STATE, + }); + }} uiRestrictions={uiRestrictions} /> diff --git a/src/plugins/vis_types/timeseries/public/application/components/splits/filters.js b/src/plugins/vis_types/timeseries/public/application/components/splits/filters.js index 8c91d057ae341..edb1ce5927939 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/splits/filters.js +++ b/src/plugins/vis_types/timeseries/public/application/components/splits/filters.js @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { createSelectHandler } from '../lib/create_select_handler'; import { GroupBySelect } from './group_by_select'; import { FilterItems } from './filter_items'; import PropTypes from 'prop-types'; @@ -14,10 +13,13 @@ import React from 'react'; import { htmlIdGenerator, EuiFlexGroup, EuiFlexItem, EuiFormRow } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; +const RESET_STATE = { + split_filters: undefined, +}; + export const SplitByFilters = (props) => { const { onChange, model, uiRestrictions, indexPattern } = props; const htmlId = htmlIdGenerator(); - const handleSelectChange = createSelectHandler(onChange); return (
@@ -33,7 +35,12 @@ export const SplitByFilters = (props) => { > { + onChange({ + split_mode: newSplitMode, + ...RESET_STATE, + }); + }} uiRestrictions={uiRestrictions} /> diff --git a/src/plugins/vis_types/timeseries/public/application/components/splits/terms.js b/src/plugins/vis_types/timeseries/public/application/components/splits/terms.js index b32af037533f7..8a85c9826e937 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/splits/terms.js +++ b/src/plugins/vis_types/timeseries/public/application/components/splits/terms.js @@ -30,6 +30,14 @@ import { STACKED_OPTIONS } from '../../visualizations/constants'; import { getIndexPatternKey } from '../../../../common/index_patterns_utils'; const DEFAULTS = { terms_direction: 'desc', terms_size: 10, terms_order_by: '_count' }; +const RESET_STATE = { + terms_field: undefined, + terms_include: undefined, + terms_exclude: undefined, + terms_direction: undefined, + terms_size: undefined, + terms_order_by: undefined, +}; export const SplitByTermsUI = ({ onChange, @@ -106,7 +114,12 @@ export const SplitByTermsUI = ({ > { + onChange({ + split_mode: newSplitMode, + ...RESET_STATE, + }); + }} uiRestrictions={uiRestrictions} /> From 4d3d95afe9bab1eb2703345cf42cbd086906bd39 Mon Sep 17 00:00:00 2001 From: vladpro25 <91911546+vladpro25@users.noreply.github.com> Date: Thu, 18 Nov 2021 17:50:56 +0200 Subject: [PATCH 035/114] Autocomplete for t_test aggregation (#117782) * Autocomplete for t_test aggregation * Update aggregations.ts * Update aggregations.ts Co-authored-by: Alexey Antonov Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../lib/spec_definitions/js/aggregations.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts b/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts index dfa263f2f1e65..d912b6d64c7a8 100644 --- a/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts +++ b/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts @@ -79,6 +79,26 @@ const rules = { }, }, }, + t_test: { + a: { + field: '{field}', + filter: { __scope_link: 'GLOBAL.filter' }, + }, + b: { + field: '{field}', + filter: { __scope_link: 'GLOBAL.filter' }, + }, + type: { __one_of: ['paired', 'homoscedastic', 'heteroscedastic'] }, + __template: { + a: { + field: '', + }, + b: { + field: '', + }, + type: '', + }, + }, adjacency_matrix: { filters: {}, }, From 617be5160ae779d5549c5ec5c60438fea7de2cee Mon Sep 17 00:00:00 2001 From: Ignacio Rivas Date: Thu, 18 Nov 2021 16:52:03 +0100 Subject: [PATCH 036/114] [Dev Tools] Change breadcrumbs and docTitle when toggling between apps (#117857) --- src/plugins/dev_tools/public/application.tsx | 64 +++++++++++-------- .../dev_tools/public/constants/texts.ts | 17 +++++ src/plugins/dev_tools/public/dev_tool.ts | 17 +++-- src/plugins/dev_tools/public/index.scss | 4 ++ src/plugins/dev_tools/public/plugin.ts | 22 ++++++- .../dev_tools/public/services/breadcrumb.ts | 32 ++++++++++ .../dev_tools/public/services/doc_title.ts | 31 +++++++++ .../dev_tools/public/services/index.ts | 10 +++ src/plugins/dev_tools/tsconfig.json | 3 +- x-pack/plugins/painless_lab/public/plugin.tsx | 26 ++------ .../painless_lab/public/styles/_index.scss | 4 -- .../translations/translations/ja-JP.json | 4 -- .../translations/translations/zh-CN.json | 4 -- .../functional/apps/dev_tools/breadcrumbs.ts | 54 ++++++++++++++++ .../test/functional/apps/dev_tools/index.ts | 3 +- 15 files changed, 228 insertions(+), 67 deletions(-) create mode 100644 src/plugins/dev_tools/public/constants/texts.ts create mode 100644 src/plugins/dev_tools/public/services/breadcrumb.ts create mode 100644 src/plugins/dev_tools/public/services/doc_title.ts create mode 100644 src/plugins/dev_tools/public/services/index.ts create mode 100644 x-pack/test/functional/apps/dev_tools/breadcrumbs.ts diff --git a/src/plugins/dev_tools/public/application.tsx b/src/plugins/dev_tools/public/application.tsx index 1eb4a5f4e99e8..9351cdcdf54bf 100644 --- a/src/plugins/dev_tools/public/application.tsx +++ b/src/plugins/dev_tools/public/application.tsx @@ -10,20 +10,27 @@ import React, { useEffect, useRef } from 'react'; import { Observable } from 'rxjs'; import ReactDOM from 'react-dom'; import { HashRouter as Router, Switch, Route, Redirect } from 'react-router-dom'; -import { EuiTab, EuiTabs, EuiToolTip } from '@elastic/eui'; +import { EuiTab, EuiTabs, EuiToolTip, EuiBetaBadge } from '@elastic/eui'; import { I18nProvider } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; import { euiThemeVars } from '@kbn/ui-shared-deps-src/theme'; import { ApplicationStart, ChromeStart, ScopedHistory, CoreTheme } from 'src/core/public'; +import type { DocTitleService, BreadcrumbService } from './services'; import { DevToolApp } from './dev_tool'; +export interface AppServices { + docTitleService: DocTitleService; + breadcrumbService: BreadcrumbService; +} + interface DevToolsWrapperProps { devTools: readonly DevToolApp[]; activeDevTool: DevToolApp; updateRoute: (newRoute: string) => void; theme$: Observable; + appServices: AppServices; } interface MountedDevToolDescriptor { @@ -32,7 +39,14 @@ interface MountedDevToolDescriptor { unmountHandler: () => void; } -function DevToolsWrapper({ devTools, activeDevTool, updateRoute, theme$ }: DevToolsWrapperProps) { +function DevToolsWrapper({ + devTools, + activeDevTool, + updateRoute, + theme$, + appServices, +}: DevToolsWrapperProps) { + const { docTitleService, breadcrumbService } = appServices; const mountedTool = useRef(null); useEffect( @@ -44,6 +58,11 @@ function DevToolsWrapper({ devTools, activeDevTool, updateRoute, theme$ }: DevTo [] ); + useEffect(() => { + docTitleService.setTitle(activeDevTool.title); + breadcrumbService.setBreadcrumbs(activeDevTool.title); + }, [activeDevTool, docTitleService, breadcrumbService]); + return (
@@ -59,7 +78,21 @@ function DevToolsWrapper({ devTools, activeDevTool, updateRoute, theme$ }: DevTo }} > - {currentDevTool.title} + + {currentDevTool.title}{' '} + {currentDevTool.isBeta && ( + + )} + ))} @@ -127,40 +160,20 @@ function setBadge(application: ApplicationStart, chrome: ChromeStart) { }); } -function setTitle(chrome: ChromeStart) { - chrome.docTitle.change( - i18n.translate('devTools.pageTitle', { - defaultMessage: 'Dev Tools', - }) - ); -} - -function setBreadcrumbs(chrome: ChromeStart) { - chrome.setBreadcrumbs([ - { - text: i18n.translate('devTools.k7BreadcrumbsDevToolsLabel', { - defaultMessage: 'Dev Tools', - }), - href: '#/', - }, - ]); -} - export function renderApp( element: HTMLElement, application: ApplicationStart, chrome: ChromeStart, history: ScopedHistory, theme$: Observable, - devTools: readonly DevToolApp[] + devTools: readonly DevToolApp[], + appServices: AppServices ) { if (redirectOnMissingCapabilities(application)) { return () => {}; } setBadge(application, chrome); - setBreadcrumbs(chrome); - setTitle(chrome); ReactDOM.render( @@ -180,6 +193,7 @@ export function renderApp( activeDevTool={devTool} devTools={devTools} theme$={theme$} + appServices={appServices} /> )} /> diff --git a/src/plugins/dev_tools/public/constants/texts.ts b/src/plugins/dev_tools/public/constants/texts.ts new file mode 100644 index 0000000000000..12f27c5904efd --- /dev/null +++ b/src/plugins/dev_tools/public/constants/texts.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { i18n } from '@kbn/i18n'; + +export const i18Texts = { + breadcrumbs: { + home: i18n.translate('devTools.breadcrumb.homeLabel', { + defaultMessage: 'Dev Tools', + }), + }, +}; diff --git a/src/plugins/dev_tools/public/dev_tool.ts b/src/plugins/dev_tools/public/dev_tool.ts index 8adfd4c76482d..a2e32d43a60c7 100644 --- a/src/plugins/dev_tools/public/dev_tool.ts +++ b/src/plugins/dev_tools/public/dev_tool.ts @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { ReactNode } from 'react'; import { AppMount } from 'src/core/public'; /** @@ -29,9 +28,14 @@ export class DevToolApp { * This will be used as a label in the tab above the actual tool. * May also be a ReactNode. */ - public readonly title: ReactNode; + public readonly title: string; public readonly mount: AppMount; + /** + * Mark the navigation tab as beta. + */ + public readonly isBeta?: boolean; + /** * Flag indicating to disable the tab of this dev tool. Navigating to a * disabled dev tool will be treated as the navigation to an unknown route @@ -57,12 +61,13 @@ export class DevToolApp { constructor( id: string, - title: ReactNode, + title: string, mount: AppMount, enableRouting: boolean, order: number, toolTipContent = '', - disabled = false + disabled = false, + isBeta?: boolean ) { this.id = id; this.title = title; @@ -71,6 +76,7 @@ export class DevToolApp { this.order = order; this.tooltipContent = toolTipContent; this.disabled = disabled; + this.isBeta = isBeta; } public enable() { @@ -94,5 +100,6 @@ export const createDevToolApp = ({ order, tooltipContent, disabled, + isBeta, }: CreateDevToolArgs) => - new DevToolApp(id, title, mount, enableRouting, order, tooltipContent, disabled); + new DevToolApp(id, title, mount, enableRouting, order, tooltipContent, disabled, isBeta); diff --git a/src/plugins/dev_tools/public/index.scss b/src/plugins/dev_tools/public/index.scss index 4bec602ea42db..a00084972c0ea 100644 --- a/src/plugins/dev_tools/public/index.scss +++ b/src/plugins/dev_tools/public/index.scss @@ -21,3 +21,7 @@ flex-direction: column; flex-grow: 1; } + +.devApp__tabBeta { + vertical-align: middle; +} diff --git a/src/plugins/dev_tools/public/plugin.ts b/src/plugins/dev_tools/public/plugin.ts index e45e73c4b1b40..1876bf278513e 100644 --- a/src/plugins/dev_tools/public/plugin.ts +++ b/src/plugins/dev_tools/public/plugin.ts @@ -15,6 +15,7 @@ import { sortBy } from 'lodash'; import { AppNavLinkStatus, DEFAULT_APP_CATEGORIES } from '../../../core/public'; import { UrlForwardingSetup } from '../../url_forwarding/public'; import { CreateDevToolArgs, DevToolApp, createDevToolApp } from './dev_tool'; +import { DocTitleService, BreadcrumbService } from './services'; import './index.scss'; @@ -36,6 +37,9 @@ export class DevToolsPlugin implements Plugin { private readonly devTools = new Map(); private appStateUpdater = new BehaviorSubject(() => ({})); + private breadcrumbService = new BreadcrumbService(); + private docTitleService = new DocTitleService(); + private getSortedDevTools(): readonly DevToolApp[] { return sortBy([...this.devTools.values()], 'order'); } @@ -59,8 +63,24 @@ export class DevToolsPlugin implements Plugin { const [core] = await getStartServices(); const { application, chrome } = core; + this.docTitleService.setup(chrome.docTitle.change); + this.breadcrumbService.setup(chrome.setBreadcrumbs); + + const appServices = { + breadcrumbService: this.breadcrumbService, + docTitleService: this.docTitleService, + }; + const { renderApp } = await import('./application'); - return renderApp(element, application, chrome, history, theme$, this.getSortedDevTools()); + return renderApp( + element, + application, + chrome, + history, + theme$, + this.getSortedDevTools(), + appServices + ); }, }); diff --git a/src/plugins/dev_tools/public/services/breadcrumb.ts b/src/plugins/dev_tools/public/services/breadcrumb.ts new file mode 100644 index 0000000000000..c12aa7e8ceef2 --- /dev/null +++ b/src/plugins/dev_tools/public/services/breadcrumb.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 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 { ManagementAppMountParams } from '../../../management/public'; +import { i18Texts } from '../constants/texts'; + +export type SetBreadcrumbs = ManagementAppMountParams['setBreadcrumbs']; + +export class BreadcrumbService { + private setBreadcrumbsHandler?: SetBreadcrumbs; + + public setup(setBreadcrumbsHandler: SetBreadcrumbs): void { + this.setBreadcrumbsHandler = setBreadcrumbsHandler; + } + + public setBreadcrumbs(page: string): void { + if (!this.setBreadcrumbsHandler) { + throw new Error('Breadcrumb service has not been initialized'); + } + + if (!page || page === 'home') { + this.setBreadcrumbsHandler([{ text: i18Texts.breadcrumbs.home }]); + } else { + this.setBreadcrumbsHandler([{ text: i18Texts.breadcrumbs.home, href: '#/' }, { text: page }]); + } + } +} diff --git a/src/plugins/dev_tools/public/services/doc_title.ts b/src/plugins/dev_tools/public/services/doc_title.ts new file mode 100644 index 0000000000000..abe9b1ece6b24 --- /dev/null +++ b/src/plugins/dev_tools/public/services/doc_title.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 { i18Texts } from '../constants/texts'; + +type ChangeDocTitleHandler = (newTitle: string | string[]) => void; + +export class DocTitleService { + private changeDocTitleHandler: ChangeDocTitleHandler = () => {}; + + public setup(_changeDocTitleHandler: ChangeDocTitleHandler): void { + this.changeDocTitleHandler = _changeDocTitleHandler; + } + + public setTitle(page: string): void { + if (!this.changeDocTitleHandler) { + throw new Error('DocTitle service has not been initialized'); + } + + if (!page || page === 'home') { + this.changeDocTitleHandler(i18Texts.breadcrumbs.home); + } else { + this.changeDocTitleHandler(`${page} - ${i18Texts.breadcrumbs.home}`); + } + } +} diff --git a/src/plugins/dev_tools/public/services/index.ts b/src/plugins/dev_tools/public/services/index.ts new file mode 100644 index 0000000000000..283ec44e41097 --- /dev/null +++ b/src/plugins/dev_tools/public/services/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 { DocTitleService } from './doc_title'; +export { BreadcrumbService } from './breadcrumb'; diff --git a/src/plugins/dev_tools/tsconfig.json b/src/plugins/dev_tools/tsconfig.json index bbb33ac5b2f99..df16711f6ea50 100644 --- a/src/plugins/dev_tools/tsconfig.json +++ b/src/plugins/dev_tools/tsconfig.json @@ -9,6 +9,7 @@ "include": ["public/**/*"], "references": [ { "path": "../../core/tsconfig.json" }, - { "path": "../url_forwarding/tsconfig.json" } + { "path": "../url_forwarding/tsconfig.json" }, + { "path": "../../../src/plugins/management/tsconfig.json" } ] } diff --git a/x-pack/plugins/painless_lab/public/plugin.tsx b/x-pack/plugins/painless_lab/public/plugin.tsx index 118adae22dc50..793947b9803c9 100644 --- a/x-pack/plugins/painless_lab/public/plugin.tsx +++ b/x-pack/plugins/painless_lab/public/plugin.tsx @@ -5,9 +5,7 @@ * 2.0. */ -import React from 'react'; import { first } from 'rxjs/operators'; -import { EuiBetaBadge, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { Plugin, CoreSetup } from 'src/core/public'; @@ -46,26 +44,10 @@ export class PainlessLabUIPlugin implements Plugin - - {i18n.translate('xpack.painlessLab.displayName', { - defaultMessage: 'Painless Lab', - })} - - - - - - - ) as any, + isBeta: true, + title: i18n.translate('xpack.painlessLab.displayName', { + defaultMessage: 'Painless Lab', + }), enableRouting: false, disabled: false, mount: async ({ element }) => { diff --git a/x-pack/plugins/painless_lab/public/styles/_index.scss b/x-pack/plugins/painless_lab/public/styles/_index.scss index 78182787a63b6..4844fe443e56f 100644 --- a/x-pack/plugins/painless_lab/public/styles/_index.scss +++ b/x-pack/plugins/painless_lab/public/styles/_index.scss @@ -34,10 +34,6 @@ $bottomBarHeight: $euiSize * 3; } } -.painlessLab__betaLabelContainer { - line-height: 0; -} - // adding dev tool top bar + bottom bar height to the body offset $bodyOffset: $euiHeaderHeightCompensation + $bottomBarHeight; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index af76ea0e98276..c02cec2b26106 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -2280,8 +2280,6 @@ "devTools.badge.readOnly.text": "読み取り専用", "devTools.badge.readOnly.tooltip": "を保存できませんでした", "devTools.devToolsTitle": "開発ツール", - "devTools.k7BreadcrumbsDevToolsLabel": "開発ツール", - "devTools.pageTitle": "開発ツール", "discover.advancedSettings.context.defaultSizeText": "コンテキストビューに表示される周りのエントリーの数", "discover.advancedSettings.context.defaultSizeTitle": "コンテキストサイズ", "discover.advancedSettings.context.sizeStepText": "コンテキストサイズを増減させる際の最低単位です", @@ -18798,8 +18796,6 @@ "xpack.painlessLab.contextScoreLabel": "スコア", "xpack.painlessLab.contextTabLabel": "コンテキスト", "xpack.painlessLab.displayName": "Painless Lab", - "xpack.painlessLab.displayNameBetaLabel": "ベータ", - "xpack.painlessLab.displayNameBetaTooltipText": "この機能は将来のリリースで大幅に変更される可能性があります", "xpack.painlessLab.documentFieldLabel": "サンプルドキュメント(JSON)", "xpack.painlessLab.documentFieldTooltipText": "スクリプトでこのドキュメントのフィールドにアクセスできます", "xpack.painlessLab.flyoutDocLink": "API ドキュメンテーション", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 91513909af9c7..879e57fae4eb6 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -2302,8 +2302,6 @@ "devTools.badge.readOnly.text": "只读", "devTools.badge.readOnly.tooltip": "无法保存", "devTools.devToolsTitle": "开发工具", - "devTools.k7BreadcrumbsDevToolsLabel": "开发工具", - "devTools.pageTitle": "开发工具", "discover.advancedSettings.context.defaultSizeText": "要在上下文视图中显示的周围条目数目", "discover.advancedSettings.context.defaultSizeTitle": "上下文大小", "discover.advancedSettings.context.sizeStepText": "递增或递减上下文大小的步进大小", @@ -19072,8 +19070,6 @@ "xpack.painlessLab.contextScoreLabel": "分数", "xpack.painlessLab.contextTabLabel": "上下文", "xpack.painlessLab.displayName": "Painless 实验室", - "xpack.painlessLab.displayNameBetaLabel": "公测版", - "xpack.painlessLab.displayNameBetaTooltipText": "此功能在未来的版本中可能会变化很大", "xpack.painlessLab.documentFieldLabel": "样例文档 (JSON)", "xpack.painlessLab.documentFieldTooltipText": "您的脚本可以访问此文档的字段", "xpack.painlessLab.flyoutDocLink": "API 文档", diff --git a/x-pack/test/functional/apps/dev_tools/breadcrumbs.ts b/x-pack/test/functional/apps/dev_tools/breadcrumbs.ts new file mode 100644 index 0000000000000..c41e75c45fd43 --- /dev/null +++ b/x-pack/test/functional/apps/dev_tools/breadcrumbs.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + const PageObjects = getPageObjects(['common']); + const testSubjects = getService('testSubjects'); + const security = getService('security'); + + describe('Breadcrumbs', () => { + before(async () => { + await security.testUser.setRoles(['global_devtools_read']); + await PageObjects.common.navigateToApp('searchProfiler'); + }); + + after(async () => { + await security.testUser.restoreDefaults(); + }); + + it('Sets the right breadcrumbs when navigating to console app', async () => { + await PageObjects.common.navigateToApp('dev_tools'); + + const lastBreadcrumbdcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumbdcrumb).to.be('Console'); + }); + + it('Sets the right breadcrumbs when navigating to grok debugger app', async () => { + await PageObjects.common.navigateToApp('grokDebugger'); + + const lastBreadcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumb).to.be('Grok Debugger'); + }); + + it('Sets the right breadcrumbs when navigating to search profiler app', async () => { + await PageObjects.common.navigateToApp('searchProfiler'); + + const lastBreadcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumb).to.be('Search Profiler'); + }); + + it('Sets the right breadcrumbs when navigating to painless lab app', async () => { + await PageObjects.common.navigateToApp('painlessLab'); + + const lastBreadcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumb).to.be('Painless Lab'); + }); + }); +} diff --git a/x-pack/test/functional/apps/dev_tools/index.ts b/x-pack/test/functional/apps/dev_tools/index.ts index 87904a5ab8cb8..4f0e9290cc25e 100644 --- a/x-pack/test/functional/apps/dev_tools/index.ts +++ b/x-pack/test/functional/apps/dev_tools/index.ts @@ -8,9 +8,10 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('console', function () { + describe('Dev Tools', function () { this.tags('ciGroup13'); + loadTestFile(require.resolve('./breadcrumbs')); loadTestFile(require.resolve('./feature_controls')); loadTestFile(require.resolve('./searchprofiler_editor')); }); From a578beaff5cbd1e39e3ac3fa662d1edaa1eb9817 Mon Sep 17 00:00:00 2001 From: Adam Locke Date: Thu, 18 Nov 2021 11:41:56 -0500 Subject: [PATCH 037/114] [DOCS] Update Kibana install docs for security ON by default Beta (#118770) * [DOCS] Update install docs for security ON by default * Incorporating reviewer feedback and expanding RPM + Debian steps * Update Debian and RPM enrollment token process --- docs/setup/install/auto-enroll.asciidoc | 21 ++++++++++++++++ docs/setup/install/deb.asciidoc | 24 +++++++++++++++++++ docs/setup/install/rpm.asciidoc | 24 +++++++++++++++++++ .../install/start-es-and-enroll.asciidoc | 16 +++++++++++++ docs/setup/install/systemd.asciidoc | 8 +++---- docs/setup/install/targz-running.asciidoc | 2 ++ docs/setup/install/targz.asciidoc | 2 ++ docs/setup/install/windows-running.asciidoc | 2 ++ docs/setup/install/windows.asciidoc | 3 +++ 9 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 docs/setup/install/auto-enroll.asciidoc create mode 100644 docs/setup/install/start-es-and-enroll.asciidoc diff --git a/docs/setup/install/auto-enroll.asciidoc b/docs/setup/install/auto-enroll.asciidoc new file mode 100644 index 0000000000000..0f9f9e2d8a929 --- /dev/null +++ b/docs/setup/install/auto-enroll.asciidoc @@ -0,0 +1,21 @@ +[role="exclude"] + +If this is the first time you're starting {kib}, this command generates a +unique link in your terminal to enroll your {kib} instance with {es}. + +. In your terminal, click the generated link to open {kib} in your browser. + +. In your browser, paste the enrollment token that was generated in the terminal +when you started {es}, and then click the button to connect your {kib} instance with {es}. + +. Log in to {kib} as the `elastic` user with the password that was +generated when you started {es}. + +[NOTE] +==== +If you need to reset the password for the `elastic` user or other +built-in users, run the {ref}/reset-password.html[`elasticsearch-reset-password`] tool. To generate new enrollment tokens for +{kib} or {es} nodes, run the +{ref}/create-enrollment-token.html[`elasticsearch-create-enrollment-token`] tool. +These tools are available in the {es} `bin` directory. +==== \ No newline at end of file diff --git a/docs/setup/install/deb.asciidoc b/docs/setup/install/deb.asciidoc index a229426185200..3f600d7c2bdbc 100644 --- a/docs/setup/install/deb.asciidoc +++ b/docs/setup/install/deb.asciidoc @@ -122,6 +122,30 @@ sudo dpkg -i kibana-{version}-amd64.deb endif::[] +[[deb-enroll]] +==== Start {es} and generate an enrollment token for {kib} +++++ +Generate an enrollment token +++++ + +When you start {es} for the first time, the following security configuration +occurs automatically: + +* Authentication and authorization are enabled, and a password is generated for the `elastic` built-in superuser. +* Certificates and keys for TLS are generated for the transport and HTTP layer, and TLS is enabled and configured with these keys and certificates. + +The password and certificate and keys are output to your terminal. + +You can then generate an enrollment token for {kib} with the +{ref}/create-enrollment-token.html[`elasticsearch-create-enrollment-token`] tool: + +[source,sh] +---- +bin/elasticsearch-create-enrollment-token -s kibana +---- + +Start {kib} and enter the enrollment token to securely connect {kib} with {es}. + [[deb-running-systemd]] include::systemd.asciidoc[] diff --git a/docs/setup/install/rpm.asciidoc b/docs/setup/install/rpm.asciidoc index a87d2f89b6ddb..329af9af0ccf7 100644 --- a/docs/setup/install/rpm.asciidoc +++ b/docs/setup/install/rpm.asciidoc @@ -115,6 +115,30 @@ sudo rpm --install kibana-{version}-x86_64.rpm endif::[] +[[rpm-enroll]] +==== Start {es} and generate an enrollment token for {kib} +++++ +Generate an enrollment token +++++ + +When you start {es} for the first time, the following security configuration +occurs automatically: + +* Authentication and authorization are enabled, and a password is generated for the `elastic` built-in superuser. +* Certificates and keys for TLS are generated for the transport and HTTP layer, and TLS is enabled and configured with these keys and certificates. + +The password and certificate and keys are output to your terminal. + +You can then generate an enrollment token for {kib} with the +{ref}/create-enrollment-token.html[`elasticsearch-create-enrollment-token`] tool: + +[source,sh] +---- +bin/elasticsearch-create-enrollment-token -s kibana +---- + +Start {kib} and enter the enrollment token to securely connect {kib} with {es}. + [[rpm-running-systemd]] include::systemd.asciidoc[] diff --git a/docs/setup/install/start-es-and-enroll.asciidoc b/docs/setup/install/start-es-and-enroll.asciidoc new file mode 100644 index 0000000000000..25541ec4aa993 --- /dev/null +++ b/docs/setup/install/start-es-and-enroll.asciidoc @@ -0,0 +1,16 @@ +==== Start {es} and generate an enrollment token for {kib} +++++ +Generate an enrollment token +++++ + +When you start {es} for the first time, the following security configuration +occurs automatically: + +* {ref}/configuring-stack-security.html#stack-security-certificates[Certificates and keys] for TLS are +generated for the transport and HTTP layers. +* The TLS configuration settings are written to `elasticsearch.yml`. +* A password is generated for the `elastic` user. +* An enrollment token is generated for {kib}. + +You can then start {kib} and enter the enrollment token to securely connect +{kib} with {es}. The enrollment token is valid for 30 minutes. \ No newline at end of file diff --git a/docs/setup/install/systemd.asciidoc b/docs/setup/install/systemd.asciidoc index 6fcb82217affc..125626e314241 100644 --- a/docs/setup/install/systemd.asciidoc +++ b/docs/setup/install/systemd.asciidoc @@ -1,6 +1,6 @@ ==== Run {kib} with `systemd` -To configure Kibana to start automatically when the system boots up, +To configure {kib} to start automatically when the system starts, run the following commands: [source,sh] @@ -9,7 +9,7 @@ sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable kibana.service -------------------------------------------------- -Kibana can be started and stopped as follows: +{kib} can be started and stopped as follows: [source,sh] -------------------------------------------- @@ -17,6 +17,6 @@ sudo systemctl start kibana.service sudo systemctl stop kibana.service -------------------------------------------- -These commands provide no feedback as to whether Kibana was started +These commands provide no feedback as to whether {kib} was started successfully or not. Log information can be accessed via -`journalctl -u kibana.service`. +`journalctl -u kibana.service`. \ No newline at end of file diff --git a/docs/setup/install/targz-running.asciidoc b/docs/setup/install/targz-running.asciidoc index d3813d9811b13..40a2626cdd73a 100644 --- a/docs/setup/install/targz-running.asciidoc +++ b/docs/setup/install/targz-running.asciidoc @@ -9,3 +9,5 @@ Kibana can be started from the command line as follows: By default, Kibana runs in the foreground, prints its logs to the standard output (`stdout`), and can be stopped by pressing *Ctrl-C*. + +include::auto-enroll.asciidoc[] diff --git a/docs/setup/install/targz.asciidoc b/docs/setup/install/targz.asciidoc index 104ac335b5232..d9849811a7455 100644 --- a/docs/setup/install/targz.asciidoc +++ b/docs/setup/install/targz.asciidoc @@ -90,6 +90,8 @@ cd kibana-{version}/ <2> endif::[] +[[targz-enroll]] +include::start-es-and-enroll.asciidoc[] [[targz-running]] include::targz-running.asciidoc[] diff --git a/docs/setup/install/windows-running.asciidoc b/docs/setup/install/windows-running.asciidoc index 832284edc8f39..aabde22d66d16 100644 --- a/docs/setup/install/windows-running.asciidoc +++ b/docs/setup/install/windows-running.asciidoc @@ -9,3 +9,5 @@ Kibana can be started from the command line as follows: By default, Kibana runs in the foreground, prints its logs to `STDOUT`, and can be stopped by pressing *Ctrl-C*. + +include::auto-enroll.asciidoc[] \ No newline at end of file diff --git a/docs/setup/install/windows.asciidoc b/docs/setup/install/windows.asciidoc index 4138fc1886a6c..352a327e61195 100644 --- a/docs/setup/install/windows.asciidoc +++ b/docs/setup/install/windows.asciidoc @@ -40,6 +40,9 @@ CD c:\kibana-{version}-windows-x86_64 endif::[] +[[windows-enroll]] +include::start-es-and-enroll.asciidoc[] + [[windows-running]] include::windows-running.asciidoc[] From d370050b5e836bf6d8b4020ccebfac059fed11f0 Mon Sep 17 00:00:00 2001 From: vladpro25 <91911546+vladpro25@users.noreply.github.com> Date: Thu, 18 Nov 2021 19:24:33 +0200 Subject: [PATCH 038/114] Add Autocompletion for boxplot aggregation in Kibana Dev tools (#117024) * Add autocompletion for boxplot aggregation * Update aggregations.ts * Add Autocompletion for boxplot aggregation in Kibana Dev tools Co-authored-by: Alexey Antonov Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/lib/spec_definitions/js/aggregations.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts b/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts index d912b6d64c7a8..fc9e66e17685c 100644 --- a/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts +++ b/src/plugins/console/server/lib/spec_definitions/js/aggregations.ts @@ -79,6 +79,14 @@ const rules = { }, }, }, + boxplot: { + __template: { + field: '', + }, + field: '{field}', + compression: 100, + missing: 0, + }, t_test: { a: { field: '{field}', From eb7f525b2ec0a73021c385311f75d79588e74500 Mon Sep 17 00:00:00 2001 From: Chenhui Wang <54903978+wangch079@users.noreply.github.com> Date: Fri, 19 Nov 2021 02:04:19 +0800 Subject: [PATCH 039/114] Add DLP option for Dropbox/GitHub/GitHub Enterprise Server (#118992) * Add DLP option for Dropbox/GitHub/GitHub Enterprise Server * commit using @elastic.co Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../workplace_search/views/content_sources/source_data.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx index 3ff21566cf916..687461296ac9e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx @@ -180,6 +180,7 @@ export const staticSourceData = [ FeatureIds.SyncedItems, FeatureIds.GlobalAccessPermissions, ], + basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions], platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems], platinumPrivateContext: [ FeatureIds.Private, @@ -215,6 +216,7 @@ export const staticSourceData = [ FeatureIds.SyncedItems, FeatureIds.GlobalAccessPermissions, ], + basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions], platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems], platinumPrivateContext: [ FeatureIds.Private, @@ -256,6 +258,7 @@ export const staticSourceData = [ FeatureIds.SyncedItems, FeatureIds.GlobalAccessPermissions, ], + basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions], platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems], platinumPrivateContext: [ FeatureIds.Private, From 769e490a5bd4816c80737b208bc7e6bc7e6d9297 Mon Sep 17 00:00:00 2001 From: Yuliia Naumenko Date: Thu, 18 Nov 2021 10:14:03 -0800 Subject: [PATCH 040/114] [Alerting][Docs] Fix rule types categorization (#118285) * [Alerting][Docs] Fix rule types categorization * fixed links * fixed separator * Apply suggestions from code review Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * fixed due to comments * fixed due to comments * fixed due to comments * Apply suggestions from code review Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * fixed due to comments * Update docs/user/alerting/rule-types.asciidoc Co-authored-by: ymao1 * fixed due to comments Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> Co-authored-by: ymao1 --- .../alerting-getting-started.asciidoc | 4 +- docs/user/alerting/rule-types.asciidoc | 54 +++++++++++++------ 2 files changed, 39 insertions(+), 19 deletions(-) diff --git a/docs/user/alerting/alerting-getting-started.asciidoc b/docs/user/alerting/alerting-getting-started.asciidoc index b53788b518fa0..80ad1bb630f53 100644 --- a/docs/user/alerting/alerting-getting-started.asciidoc +++ b/docs/user/alerting/alerting-getting-started.asciidoc @@ -24,7 +24,7 @@ This section describes all of these elements and how they operate together. [float] === Rules -A rule specifies a background task that runs on the {kib} server to check for specific conditions. {kib} provides two types of rules: stack rules that are built into {kib} and domain rules that are registered by Kibana apps. Refer to <> for more information. +A rule specifies a background task that runs on the {kib} server to check for specific conditions. {kib} provides two types of rules: stack rules that are built into {kib} and the rules that are registered by Kibana apps. Refer to <> for more information. A rule consists of three main parts: @@ -53,7 +53,7 @@ to control the details of the conditions to detect. For example, an <> lets you specify the index to query, an aggregation field, and a time window, but the details of the underlying {es} query are hidden. -See <> and <> for the types of rules provided by {kib} and how they express their conditions. +See <> for the rules provided by {kib} and how they express their conditions. [float] [[alerting-concepts-scheduling]] diff --git a/docs/user/alerting/rule-types.asciidoc b/docs/user/alerting/rule-types.asciidoc index ab2349f2fb102..324347f3b2648 100644 --- a/docs/user/alerting/rule-types.asciidoc +++ b/docs/user/alerting/rule-types.asciidoc @@ -2,7 +2,8 @@ [[rule-types]] == Rule types -A rule is a set of <>, <>, and <> that enable notifications. {kib} provides two types of rules: rules specific to the Elastic Stack and rules specific to a domain. +A rule is a set of <>, <>, and <> that enable notifications. {kib} provides rules built into the Elastic Stack and rules registered by one of the {kib} apps. +You can create most rules types in < Rules and Connectors>>. For information on creating security rules, refer to {security-guide}/rules-ui-create.html[Create a detection rule]. [NOTE] ============================================== @@ -15,45 +16,64 @@ see {subscriptions}[the subscription page]. [[stack-rules]] === Stack rules -<> are built into {kib}. To access the *Stack Rules* feature and create and edit rules, users require the `all` privilege. See <> for more information. +<> are built into {kib}. To access the *Stack Rules* feature and create and edit rules, users require the `all` privilege. See <> for more information. [cols="2*<"] |=== -| <> -| Aggregate field values from documents using {es} queries, compare them to threshold values, and schedule actions to run when the thresholds are met. - | <> | Run a user-configured {es} query, compare the number of matches to a configured threshold, and schedule actions to run when the threshold condition is met. -| {ref}/transform-alerts.html[{transform-cap} rules] beta:[] +| <> +| Aggregate field values from documents using {es} queries, compare them to threshold values, and schedule actions to run when the thresholds are met. + +| {ref}/transform-alerts.html[{transform-cap} rules] | beta:[] Run scheduled checks on a {ctransform} to check its health. If a {ctransform} meets the conditions, an alert is created and the associated action is triggered. +| <> +| Run an {es} query to determine if any documents are currently contained in any boundaries from a specified boundary index and generate alerts when a rule's conditions are met. + |=== [float] -[[domain-specific-rules]] -=== Domain rules +[[observability-rules]] +=== Observability rules -Domain rules are registered by *Observability*, *Security*, <> and <>. +Observability rules are categorized into APM and User Experience, Logs, Metrics, Stack Monitoring, and Uptime. [cols="2*<"] |=== -| {observability-guide}/create-alerts.html[Observability rules] -| Detect complex conditions in the *Logs*, *Metrics*, and *Uptime* apps. -| {security-guide}/prebuilt-rules.html[Security rules] -| Detect suspicious source events with pre-built or custom rules and create alerts when a rule’s conditions are met. +| <> +| Detect complex conditions in *APM* data and trigger built-in actions when the conditions are met. -| <> -| Run an {es} query to determine if any documents are currently contained in any boundaries from a specified boundary index and generate alerts when a rule's conditions are met. +| {observability-guide}/create-alerts.html[Logs rules] +| Detect complex conditions in the *Logs* app. -| {ml-docs}/ml-configuring-alerts.html[{ml-cap} rules] beta:[] -| beta:[] Run scheduled checks on an {anomaly-job} to detect anomalies with certain conditions. If an anomaly meets the conditions, an alert is created and the associated action is triggered. +| {observability-guide}/create-alerts.html[Metrics rules] +| Detect complex conditions in the *Metrics* app. + +| <> +| Provide {kib} Alerting rules out-of-the box to notify you of potential issues in the Elastic Stack. + +| {observability-guide}/create-alerts.html[Uptime rules] +| Detect complex conditions in the *Uptime* app. |=== +[float] +[[ml-rules]] +=== Machine learning rules + +beta:[] {ml-docs}/ml-configuring-alerts.html[{ml-cap} rules] run scheduled checks on an {anomaly-job} to detect anomalies with certain conditions. If an anomaly meets the conditions, an alert is created and the associated action is triggered. + +[float] +[[security-rules]] +=== Security rules + +Security rules detect suspicious source events with pre-built or custom rules and create alerts when a rule’s conditions are met. For more information, refer to {security-guide}/prebuilt-rules.html[Security rules]. + include::rule-types/index-threshold.asciidoc[] include::rule-types/es-query.asciidoc[] include::rule-types/geo-rule-types.asciidoc[] From cd8c648012f1b51d897e287a9667f19bda6bcddc Mon Sep 17 00:00:00 2001 From: Greg Thompson Date: Thu, 18 Nov 2021 12:29:51 -0600 Subject: [PATCH 041/114] Upgrade EUI to v41.0.0 (#117242) * eui to v41.0.0 * update eui i18n tokens * sass tokens * EuiLoadingKibana * EuiCodeEditor * subdued * betaBadgeProps * EuiCodeEditor null-loader * src secondary -> success * [enterprise_search] Deprecate 'secondary' color prop * [apm] Deprecate 'secondary' color prop * [canvas] Deprecate 'secondary' color prop * [cases] Deprecate 'secondary' color prop * [cross_cluster_replication] Deprecate 'secondary' color prop * [data_enhanced] Deprecate 'secondary' color prop * [data_visualizer] Deprecate 'secondary' color prop * [fleet] Deprecate 'secondary' color prop * [index_management] Deprecate 'secondary' color prop * [infra] Deprecate 'secondary' color prop * [ingest_pipelines] Deprecate 'secondary' color prop * [maps] Deprecate 'secondary' color prop * [ml] Deprecate 'secondary' color prop * [monitoring] Deprecate 'secondary' color prop * [observability] Deprecate 'secondary' color prop NB: conditional became `type === 'success' ? 'success' : type` after find&replace, which felt fairly redundant, so I simplified it * [osquery] Deprecate 'secondary' color prop * [painless_lab] Deprecate 'secondary' color prop * [remote_clusters] Deprecate 'secondary' color prop * [rollup] Deprecate 'secondary' color prop * [security] Deprecate 'secondary' color prop * [security_solution] Deprecate 'secondary' color prop NB: several conditional became `type === 'success' ? 'success' : type` after find&replace, which felt fairly redundant, so I simplified them * [snapshot_restore] Deprecate 'secondary' color prop * [spaces] Deprecate 'secondary' color prop * [transform] Deprecate 'secondary' color prop * [triggers_actions_ui] Deprecate 'secondary' color prop * [uptime] Deprecate 'secondary' color prop * [watcher] Deprecate 'secondary' color prop * [infra] replace ambiguous 'secondary' color - GaugesSectionVis doesn't appear to use the color property but it's required by the SeriesOverrides types, so changing it just in case * [examples] Deprecate 'secondary' color prop * [uptime] deprecate 'subdued' prop on EuiButtonIcon * revert EuiKeyPadMenuItem betaBadge props * mobileOptions * examples/ updates * fix brace import * fix type exports * update expressions_explorer requiredBundles * remove make_id mocks * snapshot updates * fix import :facepalm: * Fix `ReferenceError: ace is not defined` Jest failures * Remove unused brace import (?) - Assuming here, as no code editor is actually being used in this file * Fix failing Jest test due to EuiCodeEditor moving to es_ui_shared plugin + minor cleanup of `jest.mock()`s * Fix failing Jest test due to snapshot update * Fix failing `TypeError: Cannot read properties of undefined (reading 'euiBorderRadius')` Jest test - since this is being mount()'d, EuiThemeProvider as a wrapper is needed to prevent the failure * access uiSettings * Move react-ace dependency into kbn-ui-shared-deps-npm * Revert App Search shenanigans - caused local unsaved changes shenanigans, somehow * secondary -> success Co-authored-by: Constance Chen Co-authored-by: Chandler Prall Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Constance Chen --- examples/expressions_explorer/kibana.json | 2 +- examples/expressions_explorer/public/app.tsx | 69 ++++++++++--------- .../public/editor/expression_editor.tsx | 18 +++-- .../expressions_explorer/public/plugin.tsx | 1 + .../public/todo/todo.tsx | 6 +- package.json | 2 +- packages/kbn-ui-shared-deps-npm/BUILD.bazel | 1 + .../kbn-ui-shared-deps-npm/webpack.config.js | 1 + .../__snapshots__/server_status.test.tsx.snap | 4 +- .../__snapshots__/status_table.test.tsx.snap | 2 +- .../status/components/server_status.test.tsx | 2 +- .../status/components/status_table.test.tsx | 2 +- .../core_app/status/lib/load_status.test.ts | 6 +- .../public/core_app/status/lib/load_status.ts | 2 +- .../__snapshots__/i18n_service.test.tsx.snap | 4 -- src/core/public/i18n/i18n_eui_mapping.tsx | 16 ----- src/core/server/status/legacy_status.test.ts | 4 +- src/core/server/status/legacy_status.ts | 4 +- .../routes/integration_tests/status.test.ts | 8 +-- src/dev/license_checker/config.ts | 2 +- .../management_app/components/field/field.tsx | 1 + .../management_app/components/form/form.tsx | 2 +- .../static/components/legend_toggle.tsx | 2 +- .../network_request_status_bar.tsx | 2 +- .../application/top_nav/dashboard_top_nav.tsx | 2 +- .../data/public/ui/typeahead/_suggestion.scss | 2 +- .../sidebar/discover_field_bucket.tsx | 2 +- .../sidebar/string_progress_bar.tsx | 4 +- .../discover_grid_expand_button.tsx | 2 +- .../components/code_editor/code_editor.tsx | 4 +- .../static/forms/components/index.ts | 3 +- .../__snapshots__/synopsis.test.js.snap | 24 +++++-- .../components/_solutions_section.scss | 2 +- .../components/sample_data_set_card.js | 2 +- .../public/application/components/synopsis.js | 2 +- .../table/__snapshots__/table.test.tsx.snap | 2 +- .../components/table/table.tsx | 2 +- .../requests/components/request_selector.tsx | 2 +- .../public/components/_overview.scss | 2 +- .../__snapshots__/synopsis.test.js.snap | 24 +++++-- .../public/components/synopsis/synopsis.js | 2 +- .../public/code_editor/editor_theme.ts | 6 +- .../elastic_agent_card.test.tsx.snap | 26 ++++++- .../no_data_card/elastic_agent_card.tsx | 2 +- .../no_data_card/no_data_card.tsx | 2 +- .../component/control_group_component.tsx | 2 +- .../options_list_popover_component.tsx | 2 +- .../components/labs/project_list_item.scss | 2 +- .../components/labs/project_list_item.tsx | 2 +- .../agg_based_selection.tsx | 2 +- .../group_selection/group_selection.tsx | 4 +- .../public/components/view_alert.tsx | 4 +- .../public/components/view_astros_alert.tsx | 4 +- .../drilldowns_without_embeddable_example.tsx | 2 +- ...thout_embeddable_single_button_example.tsx | 2 +- .../PercentileAnnotations.tsx | 2 +- .../URLFilter/URLSearch/render_option.tsx | 2 +- .../SettingsPage/SettingsPage.tsx | 2 +- .../service_map/Popover/service_contents.tsx | 2 +- .../shared/charts/breakdown_chart/index.tsx | 2 +- .../shared/charts/timeseries_chart.tsx | 2 +- .../shared/license_prompt/index.tsx | 14 ++-- .../tutorial_fleet_instructions/index.tsx | 2 +- .../components/arg_form/arg_simple_form.tsx | 2 +- .../asset_manager.stories.storyshot | 4 +- .../asset_manager/asset_manager.component.tsx | 2 +- .../datasource_component.stories.storyshot | 2 +- .../components/datasource/datasource.scss | 2 +- .../datasource/datasource_component.js | 8 +-- .../workpad_table_tools.component.tsx | 2 +- .../components/page_manager/page_manager.scss | 2 +- .../__snapshots__/edit_var.stories.storyshot | 8 +-- .../public/components/var_config/edit_var.tsx | 2 +- .../filter.component.stories.storyshot | 2 +- .../__stories__/filter.component.stories.tsx | 2 +- .../footer/settings/settings.test.tsx | 1 - .../shareable_runtime/webpack.config.js | 1 - .../canvas/storybook/storyshots.test.tsx | 3 - .../components/edit_connector/index.tsx | 2 +- .../components/header_page/editable_title.tsx | 2 +- .../public/components/tag_list/index.tsx | 2 +- .../callout/callout.test.tsx | 2 +- .../use_push_to_service/callout/callout.tsx | 2 +- .../user_action_tree/user_action_markdown.tsx | 2 +- .../components/auto_follow_pattern_form.js | 6 +- .../follower_index_form.js | 6 +- .../auto_follow_pattern_table.js | 4 +- .../components/detail_panel/detail_panel.js | 1 + .../follower_indices_table.js | 4 +- .../sessions_mgmt/components/status.test.tsx | 2 +- .../sessions_mgmt/components/status.tsx | 4 +- .../search_session_indicator.tsx | 4 +- .../field_data_expanded_row/ip_content.tsx | 2 +- .../keyword_content.tsx | 2 +- .../number_content.tsx | 2 +- .../components/top_values/top_values.tsx | 2 +- .../components/json_editor/json_editor.tsx | 8 ++- .../public/application/shared_imports.ts | 3 + .../components/api_logs/utils.test.ts | 2 +- .../app_search/components/api_logs/utils.ts | 2 +- .../credentials/credentials_flyout/footer.tsx | 2 +- .../curation_result_panel.scss | 2 +- .../engine_creation/engine_creation.tsx | 2 +- .../components/engines/engines_overview.tsx | 4 +- .../meta_engine_creation.tsx | 2 +- .../components/schema/views/schema.tsx | 2 +- .../shared/role_mapping/user_flyout.test.tsx | 2 +- .../shared/role_mapping/user_flyout.tsx | 2 +- .../content_sources/components/overview.tsx | 2 +- .../workplace_search/views/groups/groups.tsx | 2 +- .../views/overview/onboarding_card.tsx | 2 +- .../step_configure_package.tsx | 2 +- .../agents/components/agent_health.tsx | 2 +- .../sections/agents/services/agent_status.tsx | 4 +- .../legacy_settings_form/confirm_modal.tsx | 2 +- .../guidance_panel/_guidance_panel.scss | 2 +- .../component_template_list/table.tsx | 2 +- .../component_templates_list_item.tsx | 2 +- .../data_stream_table/data_stream_table.tsx | 2 +- .../index_list/index_table/index_table.js | 2 +- .../home/template_list/template_list.tsx | 2 +- .../common/inventory_models/host/layout.tsx | 10 +-- .../inventory/components/expression.tsx | 2 +- .../alerting/inventory/components/metric.tsx | 2 +- .../expression_editor/criterion.tsx | 4 +- .../components/expression_editor/editor.tsx | 2 +- .../components/expression_row.tsx | 2 +- .../setup_flyout/module_list_card.tsx | 2 +- .../single_metric_comparison.tsx | 4 +- .../tabs/processes/processes_table.tsx | 2 +- .../tabs/processes/state_badge.tsx | 2 +- .../node_details/tabs/properties/table.tsx | 2 +- .../pipeline_processors_editor_item.tsx | 2 +- .../tab_documents/add_document_form.tsx | 4 +- .../pipeline_form/pipeline_form.tsx | 2 +- .../sections/pipelines_list/table.tsx | 2 +- x-pack/plugins/logstash/kibana.json | 2 +- .../pipeline_editor/pipeline_editor.js | 2 +- .../dynamic_color_property.test.tsx.snap | 2 +- .../dynamic_icon_property.test.tsx.snap | 2 +- .../properties/dynamic_color_property.tsx | 2 +- .../properties/dynamic_icon_property.tsx | 2 +- .../tooltip_selector/tooltip_selector.tsx | 2 +- .../layer_wizard_select.test.tsx.snap | 10 +++ .../flyout_body/layer_wizard_select.tsx | 2 +- .../timeslider/timeslider.tsx | 2 +- .../import_jobs_flyout/import_jobs_flyout.tsx | 2 +- .../job_map/components/cytoscape_options.tsx | 2 +- .../explorer/anomaly_context_menu.tsx | 2 +- .../application/explorer/anomaly_timeline.tsx | 2 +- .../ml_job_editor/ml_job_editor.tsx | 8 ++- .../new_job/recognize/components/job_item.tsx | 8 +-- .../recognize/components/kibana_objects.tsx | 2 +- .../_timeseriesexplorer.scss | 2 +- x-pack/plugins/ml/shared_imports.ts | 3 + .../__snapshots__/shard.test.js.snap | 2 +- .../shard_allocation/components/shard.js | 2 +- .../shard_allocation/shard_allocation.js | 2 +- .../__snapshots__/tooltip.test.js.snap | 10 +-- .../public/components/setup_mode/tooltip.js | 2 +- .../summary_status/summary_status.test.js | 1 - .../app/cases/callout/callout.test.tsx | 2 +- .../components/app/cases/callout/callout.tsx | 2 +- .../field_value_selection.test.tsx | 20 +++--- .../action_results/services/agent_status.tsx | 4 +- .../plugins/osquery/public/editor/index.tsx | 3 +- .../plugins/osquery/public/shared_imports.ts | 3 + .../components/output_pane/output_pane.tsx | 2 +- .../remote_cluster_form.tsx | 6 +- .../remote_cluster_list.js | 4 +- .../sections/job_create/job_create.js | 4 +- .../job_create/navigation/navigation.js | 2 +- .../job_create/steps/step_logistics.js | 2 +- .../public/extend_index_management/index.ts | 2 +- .../api_keys_grid/api_keys_grid_page.tsx | 2 +- .../management/badges/enabled_badge.tsx | 2 +- .../rule_editor_panel/json_rule_editor.tsx | 1 + .../role_mappings_grid_page.tsx | 2 +- .../cases/components/callout/callout.test.tsx | 2 +- .../cases/components/callout/callout.tsx | 6 +- .../callouts/callout_dismiss_button.tsx | 2 +- .../components/header_page/editable_title.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 4 +- .../item_details_card/index.stories.tsx | 4 +- .../item_details_card/index.test.tsx | 4 +- .../__snapshots__/index.test.tsx.snap | 16 +++-- .../components/paginated_table/index.mock.tsx | 8 +-- .../components/paginated_table/index.tsx | 4 +- .../__snapshots__/index.test.tsx.snap | 2 +- .../components/progress_inline/index.tsx | 2 +- .../description_step/ml_job_description.tsx | 2 +- .../authentications_table/index.tsx | 18 ++--- .../hosts/components/hosts_table/columns.tsx | 8 +-- .../uncommon_process_table/index.tsx | 12 ++-- .../endpoint_hosts/view/host_constants.ts | 6 +- .../policy/view/policy_forms/locked_card.tsx | 8 ++- .../components/network_dns_table/columns.tsx | 10 +-- .../network/components/tls_table/columns.tsx | 10 +-- .../components/users_table/columns.tsx | 10 +-- .../open_timeline/note_previews/index.tsx | 2 +- .../components/timeline/footer/index.tsx | 2 +- .../components/host_rules_table/columns.tsx | 8 +-- .../components/host_tactics_table/columns.tsx | 8 +-- .../components/risk_score_table/columns.tsx | 4 +- .../components/policy_form/policy_form.tsx | 2 +- .../components/repository_form/step_two.tsx | 2 +- .../restore_snapshot_form.tsx | 2 +- .../policy_details/policy_details.tsx | 2 +- .../policy_list/policy_table/policy_table.tsx | 2 +- .../repository_details/repository_details.tsx | 2 - .../type_details/default_details.tsx | 1 + .../repository_table/repository_table.tsx | 2 +- .../copy_to_space_flyout_footer.tsx | 2 +- .../components/share_mode_control.tsx | 2 +- .../alert_types/es_query/expression.test.tsx | 31 +++------ .../alert_types/es_query/expression.tsx | 5 +- .../t_grid/event_rendered_view/index.tsx | 8 +-- .../refresh_transform_list_button.tsx | 2 +- .../translations/translations/ja-JP.json | 4 -- .../translations/translations/zh-CN.json | 4 -- .../json_editor_with_message_variables.tsx | 6 +- .../connector_add_flyout.tsx | 4 +- .../connector_add_modal.tsx | 2 +- .../connector_edit_flyout.tsx | 4 +- .../sections/alert_form/alert_add_footer.tsx | 2 +- .../sections/alert_form/alert_edit.tsx | 2 +- .../components/flyout_frame/flyout_frame.tsx | 2 +- .../es_deprecations/es_deprecations_table.tsx | 6 +- .../common/charts/monitor_bar_series.tsx | 2 +- .../monitor/ping_list/columns/ping_status.tsx | 2 +- .../monitor/ping_list/ping_redirects.tsx | 4 +- .../__snapshots__/tag_label.test.tsx.snap | 2 +- .../availability_reporting/tag_label.tsx | 2 +- .../components/middle_truncated_text.tsx | 2 +- .../alerts/alert_expression_popover.tsx | 4 +- .../components/overview/alerts/alert_tls.tsx | 2 +- .../down_number_select.test.tsx.snap | 2 +- .../time_expression_select.test.tsx.snap | 4 +- .../filters_expression_select.tsx | 2 +- .../settings_message_expression_popover.tsx | 2 +- .../columns/monitor_status_column.tsx | 2 +- .../monitor_status_row.tsx | 2 +- .../application/components/watch_status.tsx | 2 +- .../json_watch_edit/json_watch_edit_form.tsx | 2 +- .../threshold_watch_edit.tsx | 10 +-- yarn.lock | 9 ++- 246 files changed, 524 insertions(+), 474 deletions(-) diff --git a/examples/expressions_explorer/kibana.json b/examples/expressions_explorer/kibana.json index 770ce91143d99..dea706d024941 100644 --- a/examples/expressions_explorer/kibana.json +++ b/examples/expressions_explorer/kibana.json @@ -10,5 +10,5 @@ }, "requiredPlugins": ["expressions", "inspector", "uiActions", "developerExamples"], "optionalPlugins": [], - "requiredBundles": [] + "requiredBundles": ["kibanaReact"] } diff --git a/examples/expressions_explorer/public/app.tsx b/examples/expressions_explorer/public/app.tsx index 260c529650bdb..631b60f4dc566 100644 --- a/examples/expressions_explorer/public/app.tsx +++ b/examples/expressions_explorer/public/app.tsx @@ -18,7 +18,7 @@ import { EuiText, EuiLink, } from '@elastic/eui'; -import { AppMountParameters } from '../../../src/core/public'; +import { AppMountParameters, IUiSettingsClient } from '../../../src/core/public'; import { ExpressionsStart } from '../../../src/plugins/expressions/public'; import { Start as InspectorStart } from '../../../src/plugins/inspector/public'; import { RunExpressionsExample } from './run_expressions'; @@ -26,53 +26,58 @@ import { RenderExpressionsExample } from './render_expressions'; import { ActionsExpressionsExample } from './actions_and_expressions'; import { UiActionsStart } from '../../../src/plugins/ui_actions/public'; import { ActionsExpressionsExample2 } from './actions_and_expressions2'; +import { createKibanaReactContext } from '../../../src/plugins/kibana_react/public'; interface Props { expressions: ExpressionsStart; inspector: InspectorStart; actions: UiActionsStart; + uiSettings: IUiSettingsClient; } -const ExpressionsExplorer = ({ expressions, inspector, actions }: Props) => { +const ExpressionsExplorer = ({ expressions, inspector, actions, uiSettings }: Props) => { + const { Provider: KibanaReactContextProvider } = createKibanaReactContext({ uiSettings }); return ( - - - Expressions Explorer - - - -

- There are a couple of ways to run the expressions. Below some of the options are - demonstrated. You can read more about it{' '} - - here - -

-
+ + + + Expressions Explorer + + + +

+ There are a couple of ways to run the expressions. Below some of the options are + demonstrated. You can read more about it{' '} + + here + +

+
- + - + - + - + - + - + - + - -
-
-
-
+ +
+
+
+
+ ); }; diff --git a/examples/expressions_explorer/public/editor/expression_editor.tsx b/examples/expressions_explorer/public/editor/expression_editor.tsx index 16370c2ece281..79c5a296981db 100644 --- a/examples/expressions_explorer/public/editor/expression_editor.tsx +++ b/examples/expressions_explorer/public/editor/expression_editor.tsx @@ -7,7 +7,7 @@ */ import React from 'react'; -import { EuiCodeEditor } from '@elastic/eui'; +import { CodeEditor } from '../../../../src/plugins/kibana_react/public'; interface Props { value: string; @@ -16,19 +16,17 @@ interface Props { export function ExpressionEditor({ value, onChange }: Props) { return ( - {}} aria-label="Code Editor" /> ); diff --git a/examples/expressions_explorer/public/plugin.tsx b/examples/expressions_explorer/public/plugin.tsx index 329dcfbb11d45..07f0526c3461d 100644 --- a/examples/expressions_explorer/public/plugin.tsx +++ b/examples/expressions_explorer/public/plugin.tsx @@ -59,6 +59,7 @@ export class ExpressionsExplorerPlugin implements Plugin = ({ filter, stateContainer }) => { <>
- + All - + Completed @@ -76,7 +76,7 @@ const TodoApp: React.FC = ({ filter, stateContainer }) => { to={{ ...location, pathname: '/not-completed' }} data-test-subj={'filterLinkNotCompleted'} > - + Not Completed diff --git a/package.json b/package.json index ca2cb27076c7a..c15bb092f17d8 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "@elastic/datemath": "link:bazel-bin/packages/elastic-datemath", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@^8.0.0-canary.35", "@elastic/ems-client": "8.0.0", - "@elastic/eui": "40.1.0", + "@elastic/eui": "41.0.0", "@elastic/filesaver": "1.1.2", "@elastic/maki": "6.3.0", "@elastic/node-crypto": "1.2.1", diff --git a/packages/kbn-ui-shared-deps-npm/BUILD.bazel b/packages/kbn-ui-shared-deps-npm/BUILD.bazel index 416a4d4799b7b..490aa91f30680 100644 --- a/packages/kbn-ui-shared-deps-npm/BUILD.bazel +++ b/packages/kbn-ui-shared-deps-npm/BUILD.bazel @@ -46,6 +46,7 @@ RUNTIME_DEPS = [ "@npm//moment-timezone", "@npm//moment", "@npm//raw-loader", + "@npm//react-ace", "@npm//react-dom", "@npm//react-intl", "@npm//react-is", diff --git a/packages/kbn-ui-shared-deps-npm/webpack.config.js b/packages/kbn-ui-shared-deps-npm/webpack.config.js index 80043bd0857ee..a6e7180e88123 100644 --- a/packages/kbn-ui-shared-deps-npm/webpack.config.js +++ b/packages/kbn-ui-shared-deps-npm/webpack.config.js @@ -82,6 +82,7 @@ module.exports = (_, argv) => { 'moment-timezone/moment-timezone', 'moment-timezone/data/packed/latest.json', 'moment', + 'react-ace', 'react-beautiful-dnd', 'react-dom', 'react-dom/server', diff --git a/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap b/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap index 0ed784ef680f7..7682a848b0b17 100644 --- a/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap +++ b/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap @@ -3,7 +3,7 @@ exports[`ServerStatus renders correctly for green state 2`] = ` @@ -36,7 +36,7 @@ exports[`ServerStatus renders correctly for green state 2`] = ` exports[`ServerStatus renders correctly for red state 2`] = ` diff --git a/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap b/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap index 5b0e831286aad..c30637ed85a57 100644 --- a/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap +++ b/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap @@ -30,7 +30,7 @@ exports[`StatusTable renders when statuses is provided 1`] = ` "id": "available", "message": "Ready", "title": "green", - "uiColor": "secondary", + "uiColor": "success", }, }, ] diff --git a/src/core/public/core_app/status/components/server_status.test.tsx b/src/core/public/core_app/status/components/server_status.test.tsx index 3aa41827ff40f..e4fa84d317dd6 100644 --- a/src/core/public/core_app/status/components/server_status.test.tsx +++ b/src/core/public/core_app/status/components/server_status.test.tsx @@ -14,7 +14,7 @@ import { FormattedStatus } from '../lib'; const getStatus = (parts: Partial = {}): FormattedStatus['state'] => ({ id: 'available', title: 'Green', - uiColor: 'secondary', + uiColor: 'success', message: '', ...parts, }); diff --git a/src/core/public/core_app/status/components/status_table.test.tsx b/src/core/public/core_app/status/components/status_table.test.tsx index af7d33bee5ed6..3cb5d1126ef31 100644 --- a/src/core/public/core_app/status/components/status_table.test.tsx +++ b/src/core/public/core_app/status/components/status_table.test.tsx @@ -12,7 +12,7 @@ import { StatusTable } from './status_table'; const state = { id: 'available' as const, - uiColor: 'secondary', + uiColor: 'success', message: 'Ready', title: 'green', }; diff --git a/src/core/public/core_app/status/lib/load_status.test.ts b/src/core/public/core_app/status/lib/load_status.test.ts index 73c697c3d55aa..b6e7ba9b91e97 100644 --- a/src/core/public/core_app/status/lib/load_status.test.ts +++ b/src/core/public/core_app/status/lib/load_status.test.ts @@ -174,7 +174,7 @@ describe('response processing', () => { id: 'available', title: 'Green', message: 'Elasticsearch is available', - uiColor: 'secondary', + uiColor: 'success', }, }, { @@ -183,12 +183,12 @@ describe('response processing', () => { id: 'available', title: 'Green', message: 'SavedObjects service has completed migrations and is available', - uiColor: 'secondary', + uiColor: 'success', }, }, { id: 'plugin:1', - state: { id: 'available', title: 'Green', message: 'Ready', uiColor: 'secondary' }, + state: { id: 'available', title: 'Green', message: 'Ready', uiColor: 'success' }, }, { id: 'plugin:2', diff --git a/src/core/public/core_app/status/lib/load_status.ts b/src/core/public/core_app/status/lib/load_status.ts index e65764771f0fc..0baa67d4e793c 100644 --- a/src/core/public/core_app/status/lib/load_status.ts +++ b/src/core/public/core_app/status/lib/load_status.ts @@ -128,7 +128,7 @@ const STATUS_LEVEL_UI_ATTRS: Record = { title: i18n.translate('core.status.greenTitle', { defaultMessage: 'Green', }), - uiColor: 'secondary', + uiColor: 'success', }, }; diff --git a/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap b/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap index 197714df7f207..e93ef34c38025 100644 --- a/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap +++ b/src/core/public/i18n/__snapshots__/i18n_service.test.tsx.snap @@ -26,10 +26,6 @@ exports[`#start() returns \`Context\` component 1`] = ` "euiCodeBlock.copyButton": "Copy", "euiCodeBlock.fullscreenCollapse": "Collapse", "euiCodeBlock.fullscreenExpand": "Expand", - "euiCodeEditor.startEditing": "Press Enter to start editing.", - "euiCodeEditor.startInteracting": "Press Enter to start interacting with the code.", - "euiCodeEditor.stopEditing": "When you're done, press Escape to stop editing.", - "euiCodeEditor.stopInteracting": "When you're done, press Escape to stop interacting with the code.", "euiCollapsedItemActions.allActions": "All actions", "euiColorPicker.alphaLabel": "Alpha channel (opacity) value", "euiColorPicker.closeLabel": "Press the down key to open a popover containing color options", diff --git a/src/core/public/i18n/i18n_eui_mapping.tsx b/src/core/public/i18n/i18n_eui_mapping.tsx index f28add25056ee..79180575129ea 100644 --- a/src/core/public/i18n/i18n_eui_mapping.tsx +++ b/src/core/public/i18n/i18n_eui_mapping.tsx @@ -127,22 +127,6 @@ export const getEuiContextMapping = (): EuiTokensObject => { defaultMessage: 'Expand', description: 'ARIA label for a button that enters fullscreen view', }), - 'euiCodeEditor.startEditing': i18n.translate('core.euiCodeEditor.startEditing', { - defaultMessage: 'Press Enter to start editing.', - description: 'Screen reader text to prompt editing', - }), - 'euiCodeEditor.startInteracting': i18n.translate('core.euiCodeEditor.startInteracting', { - defaultMessage: 'Press Enter to start interacting with the code.', - description: 'Screen reader text to prompt interaction', - }), - 'euiCodeEditor.stopEditing': i18n.translate('core.euiCodeEditor.stopEditing', { - defaultMessage: "When you're done, press Escape to stop editing.", - description: 'Screen reader text to describe ending editing', - }), - 'euiCodeEditor.stopInteracting': i18n.translate('core.euiCodeEditor.stopInteracting', { - defaultMessage: "When you're done, press Escape to stop interacting with the code.", - description: 'Screen reader text to describe ending interactions', - }), 'euiCollapsedItemActions.allActions': i18n.translate( 'core.euiCollapsedItemActions.allActions', { diff --git a/src/core/server/status/legacy_status.test.ts b/src/core/server/status/legacy_status.test.ts index 8f1193cfcbd33..61c356e514e5f 100644 --- a/src/core/server/status/legacy_status.test.ts +++ b/src/core/server/status/legacy_status.test.ts @@ -37,7 +37,7 @@ describe('calculateLegacyStatus', () => { title: 'Green', nickname: 'Looking good', icon: 'success', - uiColor: 'secondary', + uiColor: 'success', since: expect.any(String), }); }); @@ -80,7 +80,7 @@ describe('calculateLegacyStatus', () => { message: 'Available', since: expect.any(String), state: 'green', - uiColor: 'secondary', + uiColor: 'success', }, { icon: 'danger', diff --git a/src/core/server/status/legacy_status.ts b/src/core/server/status/legacy_status.ts index 1b3d139b1345e..654427781ba9e 100644 --- a/src/core/server/status/legacy_status.ts +++ b/src/core/server/status/legacy_status.ts @@ -37,7 +37,7 @@ interface LegacyStatusOverall { type LegacyStatusState = 'green' | 'yellow' | 'red'; type LegacyStatusIcon = 'danger' | 'warning' | 'success'; -type LegacyStatusUiColor = 'secondary' | 'warning' | 'danger'; +type LegacyStatusUiColor = 'success' | 'warning' | 'danger'; interface LegacyStateAttr { id: LegacyStatusState; @@ -141,7 +141,7 @@ const STATUS_LEVEL_LEGACY_ATTRS = deepFreeze>({ defaultMessage: 'Green', }), icon: 'success', - uiColor: 'secondary', + uiColor: 'success', nickname: 'Looking good', }, }); diff --git a/src/core/server/status/routes/integration_tests/status.test.ts b/src/core/server/status/routes/integration_tests/status.test.ts index df840f5d7c059..df203675725a8 100644 --- a/src/core/server/status/routes/integration_tests/status.test.ts +++ b/src/core/server/status/routes/integration_tests/status.test.ts @@ -164,7 +164,7 @@ describe('GET /api/status', () => { since: expect.any(String), state: 'green', title: 'Green', - uiColor: 'secondary', + uiColor: 'success', }, statuses: [ { @@ -173,7 +173,7 @@ describe('GET /api/status', () => { message: 'Service is working', since: expect.any(String), state: 'green', - uiColor: 'secondary', + uiColor: 'success', }, { icon: 'success', @@ -181,7 +181,7 @@ describe('GET /api/status', () => { message: 'Service is working', since: expect.any(String), state: 'green', - uiColor: 'secondary', + uiColor: 'success', }, { icon: 'success', @@ -189,7 +189,7 @@ describe('GET /api/status', () => { message: 'a is available', since: expect.any(String), state: 'green', - uiColor: 'secondary', + uiColor: 'success', }, { icon: 'warning', diff --git a/src/dev/license_checker/config.ts b/src/dev/license_checker/config.ts index f23456bbaca07..078786abb8c64 100644 --- a/src/dev/license_checker/config.ts +++ b/src/dev/license_checker/config.ts @@ -75,6 +75,6 @@ export const LICENSE_OVERRIDES = { 'jsts@1.6.2': ['Eclipse Distribution License - v 1.0'], // cf. https://github.com/bjornharrtell/jsts '@mapbox/jsonlint-lines-primitives@2.0.2': ['MIT'], // license in readme https://github.com/tmcw/jsonlint '@elastic/ems-client@8.0.0': ['Elastic License 2.0'], - '@elastic/eui@40.1.0': ['SSPL-1.0 OR Elastic License 2.0'], + '@elastic/eui@41.0.0': ['SSPL-1.0 OR Elastic License 2.0'], 'language-subtag-registry@0.3.21': ['CC-BY-4.0'], // retired ODC‑By license https://github.com/mattcg/language-subtag-registry }; diff --git a/src/plugins/advanced_settings/public/management_app/components/field/field.tsx b/src/plugins/advanced_settings/public/management_app/components/field/field.tsx index 745452a31ff9c..5e4d047b2c701 100644 --- a/src/plugins/advanced_settings/public/management_app/components/field/field.tsx +++ b/src/plugins/advanced_settings/public/management_app/components/field/field.tsx @@ -8,6 +8,7 @@ import React, { PureComponent, Fragment } from 'react'; import classNames from 'classnames'; +import 'react-ace'; import 'brace/theme/textmate'; import 'brace/mode/markdown'; import 'brace/mode/json'; diff --git a/src/plugins/advanced_settings/public/management_app/components/form/form.tsx b/src/plugins/advanced_settings/public/management_app/components/form/form.tsx index 0b08a317e87c9..2356cc7690c7c 100644 --- a/src/plugins/advanced_settings/public/management_app/components/form/form.tsx +++ b/src/plugins/advanced_settings/public/management_app/components/form/form.tsx @@ -368,7 +368,7 @@ export class Form extends PureComponent { { } if (statusCode <= 299) { - return 'secondary'; + return 'success'; } if (statusCode <= 399) { diff --git a/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx b/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx index 8391edd30d8ee..8e24e9ea595dc 100644 --- a/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx +++ b/src/plugins/dashboard/public/application/top_nav/dashboard_top_nav.tsx @@ -502,7 +502,7 @@ export function DashboardTopNav({ { 'data-test-subj': 'dashboardUnsavedChangesBadge', badgeText: unsavedChangesBadge.getUnsavedChangedBadgeText(), - color: 'secondary', + color: 'success', }, ] : undefined; diff --git a/src/plugins/data/public/ui/typeahead/_suggestion.scss b/src/plugins/data/public/ui/typeahead/_suggestion.scss index 67ff17d017053..345c7493dc293 100644 --- a/src/plugins/data/public/ui/typeahead/_suggestion.scss +++ b/src/plugins/data/public/ui/typeahead/_suggestion.scss @@ -1,7 +1,7 @@ // These are the various types in the dropdown, they each get a color $kbnTypeaheadTypes: ( field: $euiColorWarning, - value: $euiColorSecondary, + value: $euiColorSuccess, operator: $euiColorPrimary, conjunction: $euiColorVis3, ); diff --git a/src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx b/src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx index 9b0134bf19406..54c5bccaf6041 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx @@ -55,7 +55,7 @@ export function DiscoverFieldBucket({ field, bucket, onAddFilter }: Props) { - + {bucket.percent}% diff --git a/src/plugins/discover/public/application/main/components/sidebar/string_progress_bar.tsx b/src/plugins/discover/public/application/main/components/sidebar/string_progress_bar.tsx index a3f6c70c23a6e..34bcbfcaf113e 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/string_progress_bar.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/string_progress_bar.tsx @@ -18,7 +18,5 @@ interface Props { export function StringFieldProgressBar({ value, percent, count }: Props) { const ariaLabel = `${value}: ${count} (${percent}%)`; - return ( - - ); + return ; } diff --git a/src/plugins/discover/public/components/discover_grid/discover_grid_expand_button.tsx b/src/plugins/discover/public/components/discover_grid/discover_grid_expand_button.tsx index 3453a535f98dd..372fe03666d03 100644 --- a/src/plugins/discover/public/components/discover_grid/discover_grid_expand_button.tsx +++ b/src/plugins/discover/public/components/discover_grid/discover_grid_expand_button.tsx @@ -50,7 +50,7 @@ export const ExpandButton = ({ rowIndex, setCellProps }: EuiDataGridCellValueEle aria-label={buttonLabel} data-test-subj="docTableExpandToggleColumn" onClick={() => setExpanded(isCurrentRowExpanded ? undefined : current)} - color={isCurrentRowExpanded ? 'primary' : 'subdued'} + color={isCurrentRowExpanded ? 'primary' : 'text'} iconType={isCurrentRowExpanded ? 'minimize' : 'expand'} isSelected={isCurrentRowExpanded} /> diff --git a/src/plugins/es_ui_shared/public/components/code_editor/code_editor.tsx b/src/plugins/es_ui_shared/public/components/code_editor/code_editor.tsx index 6299b473f68df..5f172d010b836 100644 --- a/src/plugins/es_ui_shared/public/components/code_editor/code_editor.tsx +++ b/src/plugins/es_ui_shared/public/components/code_editor/code_editor.tsx @@ -9,9 +9,7 @@ import React, { Component, AriaAttributes } from 'react'; import classNames from 'classnames'; import AceEditor, { IAceEditorProps } from 'react-ace'; -import { EuiI18n } from '@elastic/eui'; -// @ts-ignore -import { htmlIdGenerator, keys } from '@elastic/eui/lib/services'; +import { EuiI18n, htmlIdGenerator, keys } from '@elastic/eui'; import './_index.scss'; diff --git a/src/plugins/es_ui_shared/static/forms/components/index.ts b/src/plugins/es_ui_shared/static/forms/components/index.ts index 95b92d205c8cd..7dc1ce16a6824 100644 --- a/src/plugins/es_ui_shared/static/forms/components/index.ts +++ b/src/plugins/es_ui_shared/static/forms/components/index.ts @@ -9,7 +9,7 @@ /* @TODO -The brace/mode/json import below is loaded eagerly - before this plugin is explicitly loaded by users. This makes +The react-ace and brace/mode/json imports below are loaded eagerly - before this plugin is explicitly loaded by users. This makes the brace JSON mode, used for JSON syntax highlighting and grammar checking, available across all of Kibana plugins. This is not ideal because we are loading JS that is not necessary for Kibana to start, but the alternative @@ -19,6 +19,7 @@ EuiCodeEditor (for instance, explicitly). Importing here is a way of preventing a more sophisticated solution to this problem since we want to, eventually, migrate all code editors over to Monaco. Once that is done, we should remove this import. */ +import 'react-ace'; import 'brace/mode/json'; export * from './field'; diff --git a/src/plugins/home/public/application/components/__snapshots__/synopsis.test.js.snap b/src/plugins/home/public/application/components/__snapshots__/synopsis.test.js.snap index 8e04e70ed92b6..68bb6022d093b 100644 --- a/src/plugins/home/public/application/components/__snapshots__/synopsis.test.js.snap +++ b/src/plugins/home/public/application/components/__snapshots__/synopsis.test.js.snap @@ -2,7 +2,11 @@ exports[`props iconType 1`] = ` diff --git a/src/plugins/home/public/application/components/synopsis.js b/src/plugins/home/public/application/components/synopsis.js index b450ec8d15d2a..73113c48107d2 100644 --- a/src/plugins/home/public/application/components/synopsis.js +++ b/src/plugins/home/public/application/components/synopsis.js @@ -22,7 +22,7 @@ export function Synopsis({ id, description, iconUrl, iconType, title, url, onCli return ( `; exports[`Table should render the boolean template (true) 1`] = ` `; diff --git a/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx b/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx index e3e59a4093334..aed985f062cd9 100644 --- a/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx +++ b/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx @@ -225,7 +225,7 @@ export const renderFieldName = (field: IndexedFieldItem, timeFieldName?: string) export class Table extends PureComponent { renderBooleanTemplate(value: string, arialLabel: string) { - return value ? : ; + return value ? : ; } renderFieldType(type: string, isConflict: boolean) { diff --git a/src/plugins/inspector/public/views/requests/components/request_selector.tsx b/src/plugins/inspector/public/views/requests/components/request_selector.tsx index 04fac0bd93b7e..539abd3d14372 100644 --- a/src/plugins/inspector/public/views/requests/components/request_selector.tsx +++ b/src/plugins/inspector/public/views/requests/components/request_selector.tsx @@ -114,7 +114,7 @@ export class RequestSelector extends Component { } > ); diff --git a/src/plugins/kibana_react/public/code_editor/editor_theme.ts b/src/plugins/kibana_react/public/code_editor/editor_theme.ts index 6c2727b123de8..517fe4cf61a08 100644 --- a/src/plugins/kibana_react/public/code_editor/editor_theme.ts +++ b/src/plugins/kibana_react/public/code_editor/editor_theme.ts @@ -35,7 +35,7 @@ export function createTheme( { token: 'strong', fontStyle: 'bold' }, { token: 'variable', foreground: euiTheme.euiColorPrimary }, - { token: 'variable.predefined', foreground: euiTheme.euiColorSecondary }, + { token: 'variable.predefined', foreground: euiTheme.euiColorSuccess }, { token: 'constant', foreground: euiTheme.euiColorAccent }, { token: 'comment', foreground: euiTheme.euiColorMediumShade }, { token: 'number', foreground: euiTheme.euiColorAccent }, @@ -52,7 +52,7 @@ export function createTheme( { token: 'tag.id.jade', foreground: euiTheme.euiColorPrimary }, { token: 'tag.class.jade', foreground: euiTheme.euiColorPrimary }, { token: 'meta.scss', foreground: euiTheme.euiColorAccent }, - { token: 'metatag', foreground: euiTheme.euiColorSecondary }, + { token: 'metatag', foreground: euiTheme.euiColorSuccess }, { token: 'metatag.content.html', foreground: euiTheme.euiColorDanger }, { token: 'metatag.html', foreground: euiTheme.euiColorMediumShade }, { token: 'metatag.xml', foreground: euiTheme.euiColorMediumShade }, @@ -63,7 +63,7 @@ export function createTheme( { token: 'string.value.json', foreground: euiTheme.euiColorPrimary }, { token: 'attribute.name', foreground: euiTheme.euiColorDanger }, - { token: 'attribute.name.css', foreground: euiTheme.euiColorSecondary }, + { token: 'attribute.name.css', foreground: euiTheme.euiColorSuccess }, { token: 'attribute.value', foreground: euiTheme.euiColorPrimary }, { token: 'attribute.value.number', foreground: euiTheme.euiColorWarning }, { token: 'attribute.value.unit', foreground: euiTheme.euiColorWarning }, diff --git a/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.test.tsx.snap b/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.test.tsx.snap index 8e1d0cb92e006..f6dcf46b27d8c 100644 --- a/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.test.tsx.snap +++ b/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/__snapshots__/elastic_agent_card.test.tsx.snap @@ -13,6 +13,11 @@ exports[`ElasticAgentCard props button 1`] = ` } > = ({ description={i18n.translate('kibana-react.noDataPage.elasticAgentCard.description', { defaultMessage: `Use Elastic Agent for a simple, unified way to collect data from your machines.`, })} - betaBadgeLabel={recommended ? NO_DATA_RECOMMENDED : undefined} + betaBadgeProps={{ label: recommended ? NO_DATA_RECOMMENDED : undefined }} footer={footer} layout={layout as 'vertical' | undefined} {...cardRest} diff --git a/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/no_data_card.tsx b/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/no_data_card.tsx index 9cc38cc5f6038..2d7335a1740a0 100644 --- a/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/no_data_card.tsx +++ b/src/plugins/kibana_react/public/page_template/no_data_page/no_data_card/no_data_card.tsx @@ -33,7 +33,7 @@ export const NoDataCard: FunctionComponent = ({ description={i18n.translate('kibana-react.noDataPage.noDataCard.description', { defaultMessage: `Proceed without collecting data`, })} - betaBadgeLabel={recommended ? NO_DATA_RECOMMENDED : undefined} + betaBadgeProps={{ label: recommended ? NO_DATA_RECOMMENDED : undefined }} footer={footer} layout={layout as 'vertical' | undefined} {...cardRest} diff --git a/src/plugins/presentation_util/public/components/controls/control_group/component/control_group_component.tsx b/src/plugins/presentation_util/public/components/controls/control_group/component/control_group_component.tsx index 22b97b6f6b0da..9b5e5588373db 100644 --- a/src/plugins/presentation_util/public/components/controls/control_group/component/control_group_component.tsx +++ b/src/plugins/presentation_util/public/components/controls/control_group/component/control_group_component.tsx @@ -174,7 +174,7 @@ export const ControlGroup = () => { { const flyoutInstance = openFlyout( diff --git a/src/plugins/presentation_util/public/components/controls/control_types/options_list/options_list_popover_component.tsx b/src/plugins/presentation_util/public/components/controls/control_types/options_list/options_list_popover_component.tsx index 90f92e30c32c9..a84d0460e9299 100644 --- a/src/plugins/presentation_util/public/components/controls/control_types/options_list/options_list_popover_component.tsx +++ b/src/plugins/presentation_util/public/components/controls/control_types/options_list/options_list_popover_component.tsx @@ -92,7 +92,7 @@ export const OptionsListPopover = ({ size="s" iconType="list" aria-pressed={showOnlySelected} - color={showOnlySelected ? 'primary' : 'subdued'} + color={showOnlySelected ? 'primary' : 'text'} display={showOnlySelected ? 'base' : 'empty'} aria-label={OptionsListStrings.popover.getClearAllSelectionsButtonTitle()} onClick={() => setShowOnlySelected(!showOnlySelected)} diff --git a/src/plugins/presentation_util/public/components/labs/project_list_item.scss b/src/plugins/presentation_util/public/components/labs/project_list_item.scss index 898770f7811a1..75c0018989fa0 100644 --- a/src/plugins/presentation_util/public/components/labs/project_list_item.scss +++ b/src/plugins/presentation_util/public/components/labs/project_list_item.scss @@ -10,7 +10,7 @@ left: 4px; bottom: $euiSizeL; width: 4px; - background: $euiColorSecondary; + background: $euiColorSuccess; content: ''; } diff --git a/src/plugins/presentation_util/public/components/labs/project_list_item.tsx b/src/plugins/presentation_util/public/components/labs/project_list_item.tsx index 994059c9789ec..909e8434f77f1 100644 --- a/src/plugins/presentation_util/public/components/labs/project_list_item.tsx +++ b/src/plugins/presentation_util/public/components/labs/project_list_item.tsx @@ -58,7 +58,7 @@ export const ProjectListItem = ({ project, onStatusChange }: Props) => { content={strings.getOverriddenIconTipLabel()} position="top" type="dot" - color="secondary" + color="success" /> ) : null} diff --git a/src/plugins/visualizations/public/wizard/agg_based_selection/agg_based_selection.tsx b/src/plugins/visualizations/public/wizard/agg_based_selection/agg_based_selection.tsx index ff3b05f0bd994..acbe226155397 100644 --- a/src/plugins/visualizations/public/wizard/agg_based_selection/agg_based_selection.tsx +++ b/src/plugins/visualizations/public/wizard/agg_based_selection/agg_based_selection.tsx @@ -137,7 +137,7 @@ class AggBasedSelection extends React.Component} + icon={} className="aggBasedDialog__card" /> diff --git a/src/plugins/visualizations/public/wizard/group_selection/group_selection.tsx b/src/plugins/visualizations/public/wizard/group_selection/group_selection.tsx index b28d980424ebf..3866bce796c22 100644 --- a/src/plugins/visualizations/public/wizard/group_selection/group_selection.tsx +++ b/src/plugins/visualizations/public/wizard/group_selection/group_selection.tsx @@ -110,7 +110,7 @@ function GroupSelection(props: GroupSelectionProps) { 'Use our classic visualize library to create charts based on aggregations.', } )} - icon={} + icon={} className="visNewVisDialog__groupsCard" > { } layout="horizontal" - icon={} + icon={} className="visNewVisDialog__groupsCard" /> diff --git a/x-pack/examples/alerting_example/public/components/view_alert.tsx b/x-pack/examples/alerting_example/public/components/view_alert.tsx index 5f3581871e2bd..0269654806c51 100644 --- a/x-pack/examples/alerting_example/public/components/view_alert.tsx +++ b/x-pack/examples/alerting_example/public/components/view_alert.tsx @@ -9,7 +9,7 @@ import React, { useState, useEffect, Fragment } from 'react'; import { EuiText, - EuiLoadingKibana, + EuiLoadingLogo, EuiCallOut, EuiTextColor, EuiDescriptionList, @@ -106,6 +106,6 @@ export const ViewAlertPage = withRouter(({ http, id }: Props) => { )} ) : ( - + ); }); diff --git a/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx b/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx index 1bab422c2bcf0..44ca8f624c197 100644 --- a/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx +++ b/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx @@ -9,7 +9,7 @@ import React, { useState, useEffect, Fragment } from 'react'; import { EuiText, - EuiLoadingKibana, + EuiLoadingLogo, EuiCallOut, EuiTextColor, EuiDescriptionList, @@ -114,6 +114,6 @@ export const ViewPeopleInSpaceAlertPage = withRouter(({ http, id }: Props) => { )} ) : ( - + ); }); diff --git a/x-pack/examples/ui_actions_enhanced_examples/public/containers/drilldowns_without_embeddable_example/drilldowns_without_embeddable_example.tsx b/x-pack/examples/ui_actions_enhanced_examples/public/containers/drilldowns_without_embeddable_example/drilldowns_without_embeddable_example.tsx index a0e1f38543c29..0941c1e2c8148 100644 --- a/x-pack/examples/ui_actions_enhanced_examples/public/containers/drilldowns_without_embeddable_example/drilldowns_without_embeddable_example.tsx +++ b/x-pack/examples/ui_actions_enhanced_examples/public/containers/drilldowns_without_embeddable_example/drilldowns_without_embeddable_example.tsx @@ -101,7 +101,7 @@ export const DrilldownsWithoutEmbeddableExample: React.FC = () => { {openManagerButton} { = { line: { strokeWidth: 1, - stroke: euiLightVars.euiColorSecondary, + stroke: euiLightVars.euiColorSuccess, opacity: 1, }, }; diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/render_option.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/render_option.tsx index 4a4d8e9d3e191..3293760ef7128 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/render_option.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/URLFilter/URLSearch/render_option.tsx @@ -11,7 +11,7 @@ import styled from 'styled-components'; import { euiLightVars } from '@kbn/ui-shared-deps-src/theme'; const StyledSpan = styled.span` - color: ${euiLightVars.euiColorSecondaryText}; + color: ${euiLightVars.euiColorSuccessText}; font-weight: 500; :not(:last-of-type)::after { content: '•'; diff --git a/x-pack/plugins/apm/public/components/app/Settings/agent_configurations/AgentConfigurationCreateEdit/SettingsPage/SettingsPage.tsx b/x-pack/plugins/apm/public/components/app/Settings/agent_configurations/AgentConfigurationCreateEdit/SettingsPage/SettingsPage.tsx index 7623e467aaa2d..8789bbd772319 100644 --- a/x-pack/plugins/apm/public/components/app/Settings/agent_configurations/AgentConfigurationCreateEdit/SettingsPage/SettingsPage.tsx +++ b/x-pack/plugins/apm/public/components/app/Settings/agent_configurations/AgentConfigurationCreateEdit/SettingsPage/SettingsPage.tsx @@ -224,7 +224,7 @@ export function SettingsPage({ fill isLoading={isSaving} isDisabled={!isFormValid} - color="secondary" + color="success" iconType="check" > {i18n.translate( diff --git a/x-pack/plugins/apm/public/components/app/service_map/Popover/service_contents.tsx b/x-pack/plugins/apm/public/components/app/service_map/Popover/service_contents.tsx index f320123ce0723..5c41a1b4db7e6 100644 --- a/x-pack/plugins/apm/public/components/app/service_map/Popover/service_contents.tsx +++ b/x-pack/plugins/apm/public/components/app/service_map/Popover/service_contents.tsx @@ -97,7 +97,7 @@ export function ServiceContents({ - + {i18n.translate('xpack.apm.serviceMap.focusMapButtonText', { defaultMessage: 'Focus map', })} diff --git a/x-pack/plugins/apm/public/components/shared/charts/breakdown_chart/index.tsx b/x-pack/plugins/apm/public/components/shared/charts/breakdown_chart/index.tsx index 7f7c163ff1ea1..78bfd8911c351 100644 --- a/x-pack/plugins/apm/public/components/shared/charts/breakdown_chart/index.tsx +++ b/x-pack/plugins/apm/public/components/shared/charts/breakdown_chart/index.tsx @@ -81,7 +81,7 @@ export function BreakdownChart({ const xFormatter = niceTimeFormatter([min, max]); - const annotationColor = theme.eui.euiColorSecondary; + const annotationColor = theme.eui.euiColorSuccess; const isEmpty = isTimeseriesEmpty(timeseries); diff --git a/x-pack/plugins/apm/public/components/shared/charts/timeseries_chart.tsx b/x-pack/plugins/apm/public/components/shared/charts/timeseries_chart.tsx index bcdfff2678cda..29ef524508b02 100644 --- a/x-pack/plugins/apm/public/components/shared/charts/timeseries_chart.tsx +++ b/x-pack/plugins/apm/public/components/shared/charts/timeseries_chart.tsx @@ -105,7 +105,7 @@ export function TimeseriesChart({ const xFormatter = niceTimeFormatter([min, max]); const isEmpty = isTimeseriesEmpty(timeseries); - const annotationColor = theme.eui.euiColorSecondary; + const annotationColor = theme.eui.euiColorSuccess; const allSeries = [...timeseries, ...(anomalyTimeseries?.boundaries ?? [])]; const xDomain = isEmpty ? { min: 0, max: 1 } : { min, max }; diff --git a/x-pack/plugins/apm/public/components/shared/license_prompt/index.tsx b/x-pack/plugins/apm/public/components/shared/license_prompt/index.tsx index 0950cff5127fc..5d643614ba4d3 100644 --- a/x-pack/plugins/apm/public/components/shared/license_prompt/index.tsx +++ b/x-pack/plugins/apm/public/components/shared/license_prompt/index.tsx @@ -27,21 +27,19 @@ export function LicensePrompt({ {i18n.translate( diff --git a/x-pack/plugins/canvas/public/components/arg_form/arg_simple_form.tsx b/x-pack/plugins/canvas/public/components/arg_form/arg_simple_form.tsx index 84b87373c1c5a..df73c149a9111 100644 --- a/x-pack/plugins/canvas/public/components/arg_form/arg_simple_form.tsx +++ b/x-pack/plugins/canvas/public/components/arg_form/arg_simple_form.tsx @@ -52,7 +52,7 @@ export const ArgSimpleForm: React.FunctionComponent = ({ {!required && ( = (props) => { diff --git a/x-pack/plugins/canvas/public/components/datasource/__stories__/__snapshots__/datasource_component.stories.storyshot b/x-pack/plugins/canvas/public/components/datasource/__stories__/__snapshots__/datasource_component.stories.storyshot index 6e665f48b3e9a..7a34ee2b5aaad 100644 --- a/x-pack/plugins/canvas/public/components/datasource/__stories__/__snapshots__/datasource_component.stories.storyshot +++ b/x-pack/plugins/canvas/public/components/datasource/__stories__/__snapshots__/datasource_component.stories.storyshot @@ -118,7 +118,7 @@ exports[`Storyshots components/datasource/DatasourceComponent simple datasource className="euiFlexItem euiFlexItem--flexGrowZero" >
); diff --git a/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx b/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx index aa6ed7ae910f8..cbfe133b2909d 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx @@ -183,7 +183,7 @@ export const DataStreamTable: React.FunctionComponent = ({ ) : undefined, toolsRight: [ { loadIndices(); }} diff --git a/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx b/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx index 57f18134be5d6..2df312771ca12 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx @@ -162,7 +162,7 @@ export const TemplateList: React.FunctionComponent = (props) => { } )} iconSize="s" - color={'subdued'} + color="text" iconType={'crossInACircleFilled'} onClick={toggleWarningThreshold} /> diff --git a/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx b/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx index 7f8bcd6ae419b..3d9116905fb25 100644 --- a/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx +++ b/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx @@ -186,7 +186,7 @@ export const MetricExpression = ({ onClick={() => { setPopoverOpen(true); }} - color={errors.metric?.length ? 'danger' : 'secondary'} + color={errors.metric?.length ? 'danger' : 'success'} /> } isOpen={popoverOpen} diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx index 47ba580c272bd..3dd092fa48b99 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx @@ -176,7 +176,7 @@ export const Criterion: React.FC = ({ uppercase={true} value={criterion.field ?? 'a chosen field'} isActive={isFieldPopoverOpen} - color={errors.field.length === 0 ? 'secondary' : 'danger'} + color={errors.field.length === 0 ? 'success' : 'danger'} onClick={(e) => { e.stopPropagation(); setIsFieldPopoverOpen(!isFieldPopoverOpen); @@ -227,7 +227,7 @@ export const Criterion: React.FC = ({ isActive={isComparatorPopoverOpen} color={ errors.comparator.length === 0 && errors.value.length === 0 - ? 'secondary' + ? 'success' : 'danger' } onClick={(e) => { diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx index 2664a0d6aa2b0..02b827d5915dd 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx @@ -339,7 +339,7 @@ export default ExpressionEditor; // components. export const ExpressionLike = ({ text }: { text: string }) => { return ( -
+
{text}
); 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 4dd191313261b..b4472b90efdb2 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 @@ -276,7 +276,7 @@ export const ExpressionRow: React.FC = (props) => { } )} iconSize="s" - color={'subdued'} + color="text" iconType={'crossInACircleFilled'} onClick={toggleWarningThreshold} /> diff --git a/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx b/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx index 5931e1cbe49ee..4424410f552c6 100644 --- a/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx @@ -65,7 +65,7 @@ export const LogAnalysisModuleListCard: React.FC<{ moduleStatus.type === 'required' ? ( ) : ( - + ); const moduleSetupButton = diff --git a/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx b/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx index 8eed47c1a833e..fe9297b9409c7 100644 --- a/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx +++ b/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx @@ -29,14 +29,14 @@ export const SingleMetricComparison: React.FunctionComponent<{ return ( - {formatPercentage(changeFactor)} + {formatPercentage(changeFactor)} ); } else if (changeFactor > 0 && !Number.isFinite(changeFactor)) { return ( - {newCategoryTrendLabel} + {newCategoryTrendLabel} ); } diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx index 427f67ec7a211..8c51fbf9d805b 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx @@ -202,7 +202,7 @@ const ProcessesTableBody = ({ items, currentTime }: TableBodyProps) => ( const cells = columns.map((column) => ( diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx index c354ddcd55d71..47049c7d9c893 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx @@ -12,7 +12,7 @@ import { STATE_NAMES } from './states'; export const StateBadge = ({ state }: { state: string }) => { switch (state) { case 'running': - return {STATE_NAMES.running}; + return {STATE_NAMES.running}; case 'sleeping': return {STATE_NAMES.sleeping}; case 'dead': diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx index 053e50ff87049..996e90c03f3db 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx @@ -65,7 +65,7 @@ export const Table = (props: Props) => { )} > = memo( const disabled = isEditorNotInIdleMode && !isMovingThisProcessor; const moveButton = ( = ({ onAddDocuments }) => - + - + {i18nTexts.addDocumentSuccessMessage} diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx index 02fd7ec65957d..eeda40c96418c 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx @@ -138,7 +138,7 @@ export const PipelineForm: React.FunctionComponent = ({ = ({ diff --git a/x-pack/plugins/logstash/kibana.json b/x-pack/plugins/logstash/kibana.json index 2ff4aac9ba55b..48391c9bc68c4 100644 --- a/x-pack/plugins/logstash/kibana.json +++ b/x-pack/plugins/logstash/kibana.json @@ -11,5 +11,5 @@ "optionalPlugins": ["home", "monitoring", "security"], "server": true, "ui": true, - "requiredBundles": ["home"] + "requiredBundles": ["esUiShared", "home"] } diff --git a/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js index 334c7d0322a84..9d5f3b2d4af06 100644 --- a/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js +++ b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js @@ -15,10 +15,10 @@ import 'brace/theme/github'; import { isEmpty } from 'lodash'; import { TOOLTIPS } from '../../../../common/constants/tooltips'; +import { EuiCodeEditor } from '../../../../../../../src/plugins/es_ui_shared/public'; import { EuiButton, EuiButtonEmpty, - EuiCodeEditor, EuiFlexGroup, EuiFieldNumber, EuiFlexItem, diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap index 58af4d009e43a..dba9fa59dd424 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap @@ -91,7 +91,7 @@ exports[`renderLegendDetailRow categorical Should render categorical legend with isPointsOnly={true} label={ Other diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap index 11a4fafda29e1..a3f23536326aa 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap @@ -71,7 +71,7 @@ exports[`renderLegendDetailRow Should render categorical legend with breaks 1`] isPointsOnly={true} label={ Other diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx index cfb5d54720ce7..03800fa03827e 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx @@ -425,7 +425,7 @@ export class DynamicColorProperty extends DynamicStyleProperty{getOtherCategoryLabel()}, + label: {getOtherCategoryLabel()}, symbolId, }); } diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx index 15672bda941be..b5d5e90efa45f 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx @@ -129,7 +129,7 @@ export class DynamicIconProperty extends DynamicStyleProperty{getOtherCategoryLabel()}, + label: {getOtherCategoryLabel()}, symbolId: fallbackSymbolId, }); } diff --git a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx index dc3ad26b48e84..1a4c8e36b3457 100644 --- a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx +++ b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx @@ -217,7 +217,7 @@ export class TooltipSelector extends Component { { { = ({ isDisabled }) => { aria-label={i18n.translate('xpack.ml.importExport.importFlyout.deleteButtonAria', { defaultMessage: 'Delete', })} - color={deleteDisabled ? 'subdued' : 'danger'} + color={deleteDisabled ? 'text' : 'danger'} disabled={deleteDisabled} onClick={() => deleteJob(index)} /> diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx index 4cd76b4e410c7..b7dc4d617427d 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx @@ -65,7 +65,7 @@ function borderColorForNode(el: cytoscape.NodeSingular, theme: EuiThemeType) { switch (type) { case JOB_MAP_NODE_TYPES.ANALYTICS: - return theme.euiColorSecondary; + return theme.euiColorSuccess; case JOB_MAP_NODE_TYPES.TRANSFORM: return theme.euiColorVis1; case JOB_MAP_NODE_TYPES.INDEX: diff --git a/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx b/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx index d40e9cae1a04f..c32745f8bce8c 100644 --- a/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx +++ b/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx @@ -75,7 +75,7 @@ export const AnomalyContextMenu: FC = ({ aria-label={i18n.translate('xpack.ml.explorer.anomalies.actionsAriaLabel', { defaultMessage: 'Actions', })} - color="subdued" + color="text" iconType="boxesHorizontal" onClick={setIsMenuOpen.bind(null, !isMenuOpen)} data-test-subj="mlExplorerAnomalyPanelMenu" diff --git a/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx b/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx index 6091ab22692af..c8006292f8e09 100644 --- a/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx +++ b/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx @@ -184,7 +184,7 @@ export const AnomalyTimeline: FC = React.memo( aria-label={i18n.translate('xpack.ml.explorer.swimlaneActions', { defaultMessage: 'Actions', })} - color="subdued" + color="text" iconType="boxesHorizontal" onClick={setIsMenuOpen.bind(null, !isMenuOpen)} data-test-subj="mlAnomalyTimelinePanelMenu" diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx index 96708e83dd8be..9ee583ba2d3e7 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx @@ -7,8 +7,12 @@ import React, { FC } from 'react'; -import { EuiCodeEditor, EuiCodeEditorProps } from '@elastic/eui'; -import { expandLiteralStrings, XJsonMode } from '../../../../../../shared_imports'; +import { + expandLiteralStrings, + XJsonMode, + EuiCodeEditor, + EuiCodeEditorProps, +} from '../../../../../../shared_imports'; export const ML_EDITOR_MODE = { TEXT: 'text', JSON: 'json', XJSON: new XJsonMode() }; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx index 39d3eb634e9ce..53ffa593830e0 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx @@ -53,7 +53,7 @@ export const JobItem: FC = memo( - + {jobPrefix} {id} @@ -118,7 +118,7 @@ export const JobItem: FC = memo( = memo( = memo( - + {title} {success === false && error !== undefined && ( diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss b/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss index cfd521c882fb7..63cb8a57adba6 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss @@ -10,7 +10,7 @@ } .entity-count-text { - color: $euiColorSecondary; + color: $euiColorSuccess; font-size: $euiFontSizeS; } } diff --git a/x-pack/plugins/ml/shared_imports.ts b/x-pack/plugins/ml/shared_imports.ts index 255a1e3c20d60..e70410c99a8f4 100644 --- a/x-pack/plugins/ml/shared_imports.ts +++ b/x-pack/plugins/ml/shared_imports.ts @@ -5,6 +5,9 @@ * 2.0. */ +export { EuiCodeEditor } from '../../../src/plugins/es_ui_shared/public'; +export type { EuiCodeEditorProps } from '../../../src/plugins/es_ui_shared/public'; + import { XJson } from '../../../src/plugins/es_ui_shared/public'; const { collapseLiteralStrings, expandLiteralStrings } = XJson; diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap index dcad0937066d5..5c0294ffdc8d8 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap @@ -27,7 +27,7 @@ exports[`Shard should show for assigned replica shards 1`] = ` onMouseLeave={[Function]} > 0 diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js index a81e1f8db5ec8..6676b71b4bf13 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js @@ -39,7 +39,7 @@ function getColor(classes) { } if (classList.includes('replica')) { - return 'secondary'; + return 'success'; } } diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js index 7ca24853a9ccb..1c9021aeedf74 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js @@ -24,7 +24,7 @@ export const ShardAllocation = (props) => { label: i18n.translate('xpack.monitoring.elasticsearch.shardAllocation.replicaLabel', { defaultMessage: 'Replica', }), - color: 'secondary', + color: 'success', }, { label: i18n.translate('xpack.monitoring.elasticsearch.shardAllocation.relocatingLabel', { diff --git a/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap b/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap index 2a3a27cbc7c12..2edd5c1ab0cf2 100644 --- a/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap +++ b/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap @@ -127,7 +127,7 @@ exports[`setupMode SetupModeTooltip allMonitoredByMetricbeat should render for a position="top" > () => `generated-id`); describe('Summary Status Component', () => { it('should render metrics in a summary bar', () => { diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx index 25d32d0cae884..6f48d429071ca 100644 --- a/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx +++ b/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx @@ -60,7 +60,7 @@ describe('Callout', () => { const className = wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? ''; - expect(className.includes('euiButton--secondary')).toBeTruthy(); + expect(className.includes('euiButton--success')).toBeTruthy(); }); it('transform the button color correctly - warning', () => { diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx index 15bd250c6ceb6..25c9643a22af9 100644 --- a/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx +++ b/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx @@ -39,7 +39,7 @@ function CallOutComponent({ {i18n.DISMISS_CALLOUT} diff --git a/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx b/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx index c142e50400e5f..3b9f6264c773a 100644 --- a/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx @@ -9,6 +9,7 @@ import React from 'react'; import { mount, render } from 'enzyme'; import { FieldValueSelection } from './field_value_selection'; import { EuiButton, EuiSelectableList } from '@elastic/eui'; +import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; const values = [ { label: 'elastic co frontend', count: 1 }, @@ -32,16 +33,19 @@ describe('FieldValueSelection', () => { expect(btn.text()).toBe('Service name'); }); + it('renders a list on click', async () => { const wrapper = mount( - {}} - selectedValue={[]} - loading={false} - setQuery={() => {}} - /> + + {}} + selectedValue={[]} + loading={false} + setQuery={() => {}} + /> + ); const btn = wrapper.find(EuiButton); diff --git a/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx b/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx index 39a033f49ec90..1a2c9f370bc31 100644 --- a/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx +++ b/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx @@ -14,7 +14,7 @@ const visColors = euiPaletteColorBlindBehindText(); const colorToHexMap = { default: '#d3dae6', primary: visColors[1], - secondary: visColors[0], + success: visColors[0], accent: visColors[2], warning: visColors[5], danger: visColors[9], @@ -25,7 +25,7 @@ export const AGENT_STATUSES: ActionAgentStatus[] = ['success', 'pending', 'faile export function getColorForAgentStatus(agentStatus: ActionAgentStatus): string { switch (agentStatus) { case 'success': - return colorToHexMap.secondary; + return colorToHexMap.success; case 'pending': return colorToHexMap.default; case 'failed': diff --git a/x-pack/plugins/osquery/public/editor/index.tsx b/x-pack/plugins/osquery/public/editor/index.tsx index 7d6823acec2cd..df78d45d0cc93 100644 --- a/x-pack/plugins/osquery/public/editor/index.tsx +++ b/x-pack/plugins/osquery/public/editor/index.tsx @@ -6,10 +6,11 @@ */ import React, { useEffect, useState } from 'react'; -import { EuiCodeEditor } from '@elastic/eui'; import useDebounce from 'react-use/lib/useDebounce'; import 'brace/theme/tomorrow'; +import { EuiCodeEditor } from '../shared_imports'; + import './osquery_mode.ts'; const EDITOR_SET_OPTIONS = { diff --git a/x-pack/plugins/osquery/public/shared_imports.ts b/x-pack/plugins/osquery/public/shared_imports.ts index 227a276c41f18..c0f9d35ba51a8 100644 --- a/x-pack/plugins/osquery/public/shared_imports.ts +++ b/x-pack/plugins/osquery/public/shared_imports.ts @@ -40,3 +40,6 @@ export { } from '../../../../src/plugins/es_ui_shared/static/forms/components'; export { fieldValidators } from '../../../../src/plugins/es_ui_shared/static/forms/helpers'; export type { ERROR_CODE } from '../../../../src/plugins/es_ui_shared/static/forms/helpers/field_validators/types'; + +export { EuiCodeEditor } from '../../../../src/plugins/es_ui_shared/public'; +export type { EuiCodeEditorProps } from '../../../../src/plugins/es_ui_shared/public'; diff --git a/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx b/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx index 258c6bcdb1beb..8391ccbbe7ef4 100644 --- a/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx +++ b/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx @@ -34,7 +34,7 @@ export const OutputPane: FunctionComponent = ({ isLoading, response }) => ) : response && response.error ? ( ) : ( - + )} diff --git a/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx b/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx index 766f12fedc81c..fdcbf220331d7 100644 --- a/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx +++ b/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx @@ -20,7 +20,7 @@ import { EuiForm, EuiFormRow, EuiLink, - EuiLoadingKibana, + EuiLoadingLogo, EuiLoadingSpinner, EuiOverlayMask, EuiSpacer, @@ -348,7 +348,7 @@ export class RemoteClusterForm extends Component { { if (this.props.isSaving) { return ( - + ); } diff --git a/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js b/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js index b94ae8f7edbc0..b6881aa02e0b9 100644 --- a/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js +++ b/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js @@ -13,7 +13,7 @@ import { EuiButton, EuiButtonEmpty, EuiEmptyPrompt, - EuiLoadingKibana, + EuiLoadingLogo, EuiOverlayMask, EuiPageContent, EuiSpacer, @@ -80,7 +80,7 @@ export class RemoteClusterList extends Component { if (isCopyingCluster || isRemovingCluster) { return ( - + ); } diff --git a/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js index 6f22345dc1cec..22d6f74c0aee5 100644 --- a/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js @@ -16,7 +16,7 @@ import { withKibana } from '../../../../../../../src/plugins/kibana_react/public import { EuiCallOut, - EuiLoadingKibana, + EuiLoadingLogo, EuiOverlayMask, EuiPageContentBody, EuiPageHeader, @@ -494,7 +494,7 @@ export class JobCreateUi extends Component { if (isSaving) { savingFeedback = ( - + ); } diff --git a/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js index 6afb864fedbe4..e9c324cd5f87e 100644 --- a/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js @@ -79,7 +79,7 @@ export const Navigation = ({ const saveButton = ( +

{ render: (creation: string, item: ApiKey) => ( {item.id === createdApiKey?.id ? ( - + { return ( - + diff --git a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx index 86f7892e49d24..176d66049eade 100644 --- a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx @@ -5,6 +5,7 @@ * 2.0. */ +import 'react-ace'; import 'brace/mode/json'; import 'brace/theme/github'; diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx index 373f3366f36c8..c983f2c704f4a 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx @@ -255,7 +255,7 @@ export class RoleMappingsGridPage extends Component { ) : undefined, toolsRight: ( this.reloadRoleMappings()} data-test-subj="reloadButton" diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx index 0a0caa40a8783..01c581f5401ba 100644 --- a/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx +++ b/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx @@ -60,7 +60,7 @@ describe('Callout', () => { const className = wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? ''; - expect(className.includes('euiButton--secondary')).toBeTruthy(); + expect(className.includes('euiButton--success')).toBeTruthy(); }); it('transform the button color correctly - warning', () => { diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx index f00fa84c6ff0a..d0493ec7acb9c 100644 --- a/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx +++ b/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx @@ -37,11 +37,7 @@ const CallOutComponent = ({ return showCallOut && !isEmpty(messages) ? ( - + {i18n.DISMISS_CALLOUT} diff --git a/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx b/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx index c657ee243b74b..b00072be6cc5f 100644 --- a/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx +++ b/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx @@ -23,7 +23,7 @@ export const CallOutDismissButton: FC = ({ onClick = noop, }) => { const { type } = message; - const buttonColor = type === 'success' ? 'secondary' : type; + const buttonColor = type; const buttonText = text ?? i18n.DISMISS_BUTTON; const handleClick = useCallback(() => onClick(message), [onClick, message]); diff --git a/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx b/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx index 487e0fe4981f1..3744297ded56a 100644 --- a/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx +++ b/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx @@ -77,7 +77,7 @@ const EditableTitleComponent: React.FC = ({ - secondary + success { {'primary'} - - {'secondary'} + + {'success'} {'danger'} diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx index 12264e28d40c9..7fce50284d0d9 100644 --- a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx @@ -60,8 +60,8 @@ describe('item_details_card', () => { {'primary'} - - {'secondary'} + + {'success'} {'danger'} diff --git a/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap index 3440e5f4488c6..a2fffc32be46d 100644 --- a/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap @@ -22,28 +22,36 @@ exports[`Paginated Table Component rendering it renders the default load more ta Array [ Object { "field": "node.host.name", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "Host", "render": [Function], "truncateText": false, }, Object { "field": "node.host.firstSeen", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "First seen", "render": [Function], "truncateText": false, }, Object { "field": "node.host.os", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "OS", "render": [Function], "truncateText": false, }, Object { "field": "node.host.version", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "Version", "render": [Function], "truncateText": false, diff --git a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx index 070c8a8d53b43..2d728ffa915fc 100644 --- a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx +++ b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx @@ -57,28 +57,28 @@ export const getHostsColumns = (): [ field: 'node.host.name', name: 'Host', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: string) => getOrEmptyTagFromValue(name), }, { field: 'node.host.firstSeen', name: 'First seen', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (firstSeen: string) => getOrEmptyTagFromValue(firstSeen), }, { field: 'node.host.os', name: 'OS', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (os: string) => getOrEmptyTagFromValue(os), }, { field: 'node.host.version', name: 'Version', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (version: string) => getOrEmptyTagFromValue(version), }, ]; diff --git a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx index f5828c9f65db9..ef49c8e2a5e8c 100644 --- a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx @@ -17,6 +17,7 @@ import { EuiLoadingContent, EuiPagination, EuiPopover, + EuiTableRowCellProps, } from '@elastic/eui'; import { noop } from 'lodash/fp'; import React, { FC, memo, useState, useMemo, useEffect, ComponentType } from 'react'; @@ -126,8 +127,7 @@ type Func = (arg: T) => string | number; export interface Columns { align?: string; field?: string; - hideForMobile?: boolean; - isMobileHeader?: boolean; + mobileOptions?: EuiTableRowCellProps['mobileOptions']; name: string | React.ReactNode; render?: (item: T, node: U) => React.ReactNode; sortable?: boolean | Func; diff --git a/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap index e1fc1becd0188..bf36bf1afeef3 100644 --- a/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap @@ -13,7 +13,7 @@ exports[`ProgressInline it renders 1`] = ` className="siemProgressInline__bar" > diff --git a/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx b/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx index bbea27f5a705a..7b7e24bf8707b 100644 --- a/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx @@ -38,7 +38,7 @@ export const ProgressInline = React.memo(

{children}
- +
diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx index 27afe847f7612..4b61504ec997a 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx @@ -51,7 +51,7 @@ export const AuditIcon = React.memo(AuditIconComponent); const JobStatusBadgeComponent: React.FC<{ job: MlSummaryJob }> = ({ job }) => { const isStarted = isJobStarted(job.jobState, job.datafeedState); - const color = isStarted ? 'secondary' : 'danger'; + const color = isStarted ? 'success' : 'danger'; const text = isStarted ? ML_JOB_STARTED : ML_JOB_STOPPED; return ( diff --git a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx index 23e5da28a3559..65357b15036ea 100644 --- a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx @@ -140,7 +140,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.USER, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.user.name, @@ -151,7 +151,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.SUCCESSES, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => { const id = escapeDataProviderId( `authentications-table-${node._id}-node-successes-${node.successes}` @@ -189,7 +189,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.FAILURES, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => { const id = escapeDataProviderId( `authentications-table-${node._id}-failures-${node.failures}` @@ -227,7 +227,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_SUCCESSFUL_TIME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => has('lastSuccess.timestamp', node) && node.lastSuccess?.timestamp != null ? ( @@ -238,7 +238,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_SUCCESSFUL_SOURCE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastSuccess?.source?.ip || null, @@ -250,7 +250,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_SUCCESSFUL_DESTINATION, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastSuccess?.host?.name ?? null, @@ -262,7 +262,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_FAILED_TIME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => has('lastFailure.timestamp', node) && node.lastFailure?.timestamp != null ? ( @@ -273,7 +273,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_FAILED_SOURCE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastFailure?.source?.ip || null, @@ -285,7 +285,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_FAILED_DESTINATION, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastFailure?.host?.name || null, diff --git a/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx b/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx index d6c51b2bfe05e..95f88da0a24ac 100644 --- a/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx @@ -31,7 +31,7 @@ export const getHostsColumns = (): HostsTableColumns => [ field: 'node.host.name', name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (hostName) => { if (hostName != null && hostName.length > 0) { @@ -75,7 +75,7 @@ export const getHostsColumns = (): HostsTableColumns => [ ), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (lastSeen: Maybe | undefined) => { if (lastSeen != null && lastSeen.length > 0) { @@ -92,7 +92,7 @@ export const getHostsColumns = (): HostsTableColumns => [ field: 'node.host.os.name', name: i18n.OS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hostOsName) => { if (hostOsName != null) { @@ -109,7 +109,7 @@ export const getHostsColumns = (): HostsTableColumns => [ field: 'node.host.os.version', name: i18n.VERSION, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hostOsVersion) => { if (hostOsVersion != null) { diff --git a/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx b/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx index 0541f2f1d403d..0af27bdb0ba18 100644 --- a/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx @@ -144,7 +144,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ { name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.process.name, @@ -157,7 +157,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ align: 'right', name: i18n.NUMBER_OF_HOSTS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => <>{node.hosts != null ? node.hosts.length : getEmptyValue()}, width: '8%', }, @@ -165,14 +165,14 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ align: 'right', name: i18n.NUMBER_OF_INSTANCES, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => defaultToEmptyTag(node.instances), width: '8%', }, { name: i18n.HOSTS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: getHostNames(node), @@ -185,7 +185,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ { name: i18n.LAST_COMMAND, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.process != null ? node.process.args : null, @@ -198,7 +198,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ { name: i18n.LAST_USER, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.user != null ? node.user.name : null, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts index 8e0e4fd969c22..8fa4a9388e08e 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts @@ -11,7 +11,7 @@ import { HostStatus, HostPolicyResponseActionStatus } from '../../../../../commo export const HOST_STATUS_TO_BADGE_COLOR = Object.freeze<{ [key in HostStatus]: string; }>({ - [HostStatus.HEALTHY]: 'secondary', + [HostStatus.HEALTHY]: 'success', [HostStatus.UNHEALTHY]: 'warning', [HostStatus.UPDATING]: 'primary', [HostStatus.OFFLINE]: 'default', @@ -22,7 +22,7 @@ export const HOST_STATUS_TO_BADGE_COLOR = Object.freeze<{ export const POLICY_STATUS_TO_HEALTH_COLOR = Object.freeze<{ [key in keyof typeof HostPolicyResponseActionStatus]: string; }>({ - success: 'secondary', + success: 'success', warning: 'warning', failure: 'danger', unsupported: 'default', @@ -31,7 +31,7 @@ export const POLICY_STATUS_TO_HEALTH_COLOR = Object.freeze<{ export const POLICY_STATUS_TO_BADGE_COLOR = Object.freeze<{ [key in keyof typeof HostPolicyResponseActionStatus]: string; }>({ - success: 'secondary', + success: 'success', warning: 'warning', failure: 'danger', unsupported: 'default', diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx index 150ae5e82ef55..cd13e2f933526 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx @@ -35,9 +35,11 @@ export const LockedPolicyCard = memo(({ title }: { title: string }) => { } title={ diff --git a/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx index 03c2442982fc9..4dcdc92983168 100644 --- a/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx @@ -34,7 +34,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ field: `node.${NetworkDnsFields.dnsName}`, name: i18n.REGISTERED_DOMAIN, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (dnsName) => { if (dnsName != null) { @@ -77,7 +77,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.TOTAL_QUERIES, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (queryCount) => { if (queryCount != null) { return numeral(queryCount).format('0'); @@ -92,7 +92,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.UNIQUE_DOMAINS, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (uniqueDomains) => { if (uniqueDomains != null) { return numeral(uniqueDomains).format('0'); @@ -107,7 +107,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.DNS_BYTES_IN, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (dnsBytesIn) => { if (dnsBytesIn != null) { return ; @@ -122,7 +122,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.DNS_BYTES_OUT, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (dnsBytesOut) => { if (dnsBytesOut != null) { return ; diff --git a/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx index 7a45c418a4ff0..6641927082b6b 100644 --- a/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx @@ -32,7 +32,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.ISSUER, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, issuers }) => getRowItemDraggables({ @@ -45,7 +45,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.SUBJECT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, subjects }) => getRowItemDraggables({ @@ -58,7 +58,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node._id', name: i18n.SHA1_FINGERPRINT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (sha1) => getRowItemDraggable({ @@ -71,7 +71,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.JA3_FINGERPRINT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, ja3 }) => getRowItemDraggables({ @@ -84,7 +84,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.VALID_UNTIL, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, notAfter }) => getRowItemDraggables({ diff --git a/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx index 473d014686795..4068c616228f2 100644 --- a/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx @@ -28,7 +28,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.name', name: i18n.USER_NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (userName) => getRowItemDraggable({ @@ -41,7 +41,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.id', name: i18n.USER_ID, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (userIds) => getRowItemDraggables({ @@ -54,7 +54,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.groupName', name: i18n.GROUP_NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (groupNames) => getRowItemDraggables({ @@ -67,7 +67,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.groupId', name: i18n.GROUP_ID, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (groupId) => getRowItemDraggables({ @@ -81,7 +81,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.count', name: i18n.DOCUMENT_COUNT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (docCount) => defaultToEmptyTag(docCount), }, diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx index 1016a430807be..7693efad0730d 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx @@ -66,7 +66,7 @@ const ToggleEventDetailsButtonComponent: React.FC diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx index 80a682293dbba..c11aaa3b17370 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx @@ -387,7 +387,7 @@ export const FooterComponent = ({ {i18n.AUTO_REFRESH_ACTIVE}{' '} [ field: `node.${HostRulesFields.ruleName}`, name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (ruleName) => { if (ruleName != null && ruleName.length > 0) { const id = escapeDataProviderId(`ueba-table-ruleName-${ruleName}`); @@ -63,7 +63,7 @@ export const getHostRulesColumns = (): HostRulesColumns => [ field: `node.${HostRulesFields.ruleType}`, name: i18n.RULE_TYPE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (ruleType) => { if (ruleType != null && ruleType.length > 0) { const id = escapeDataProviderId(`ueba-table-ruleType-${ruleType}`); @@ -102,7 +102,7 @@ export const getHostRulesColumns = (): HostRulesColumns => [ field: `node.${HostRulesFields.riskScore}`, name: i18n.RISK_SCORE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (riskScore) => { if (riskScore != null) { const id = escapeDataProviderId(`ueba-table-riskScore-${riskScore}`); @@ -141,7 +141,7 @@ export const getHostRulesColumns = (): HostRulesColumns => [ field: `node.${HostRulesFields.hits}`, name: i18n.HITS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hits) => { if (hits != null) { diff --git a/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx b/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx index 19516ad6fcafa..68e1195a9c7eb 100644 --- a/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx @@ -24,7 +24,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.tactic}`, name: i18n.TACTIC, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (tactic) => { if (tactic != null && tactic.length > 0) { const id = escapeDataProviderId(`ueba-table-tactic-${tactic}`); @@ -63,7 +63,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.technique}`, name: i18n.TECHNIQUE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (technique) => { if (technique != null && technique.length > 0) { const id = escapeDataProviderId(`ueba-table-technique-${technique}`); @@ -102,7 +102,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.riskScore}`, name: i18n.RISK_SCORE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (riskScore) => { if (riskScore != null) { const id = escapeDataProviderId(`ueba-table-riskScore-${riskScore}`); @@ -141,7 +141,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.hits}`, name: i18n.HITS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hits) => { if (hits != null) { diff --git a/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx b/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx index b751521001fe5..43512d6717363 100644 --- a/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx @@ -27,7 +27,7 @@ export const getRiskScoreColumns = (): RiskScoreColumns => [ field: 'node.host_name', name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (hostName) => { if (hostName != null && hostName.length > 0) { @@ -63,7 +63,7 @@ export const getRiskScoreColumns = (): RiskScoreColumns => [ field: 'node.risk_keyword', name: i18n.CURRENT_RISK, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (riskKeyword) => { if (riskKeyword != null) { diff --git a/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx b/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx index f3ce07cd732ca..185d3bb90bae5 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx @@ -193,7 +193,7 @@ export const PolicyForm: React.FunctionComponent = ({ savePolicy()} isLoading={isSaving} diff --git a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx index 011b8e883316c..a985a6dee0bae 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx @@ -143,7 +143,7 @@ export const RepositoryFormStepTwo: React.FunctionComponent = ({ )} = ({ executeRestore()} isLoading={isSaving} diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx index 0a283d406e5aa..33f83ca30c04e 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx @@ -307,7 +307,7 @@ export const PolicyDetails: React.FunctionComponent = ({ {policyName}{' '} = ({ toolsRight: [ = ({ toolsRight: [ { data-test-subj={`cts-summary-success-count`} title={summarizedResults.successCount} titleSize="s" - titleColor={initialCopyFinished ? 'secondary' : 'subdued'} + titleColor={initialCopyFinished ? 'success' : 'subdued'} isLoading={!initialCopyFinished} textAlign="center" description={ diff --git a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx index 2740533e52715..45a2d3f4964b1 100644 --- a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx +++ b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx @@ -139,7 +139,7 @@ export const ShareModeControl = (props: Props) => { onChange(updatedSpaceIds); }} legend={buttonGroupLegend} - color="secondary" + color="success" isFullWidth={true} isDisabled={!canShareToAllSpaces} /> diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx index 51c2f0471d486..ad624c345272d 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx @@ -22,7 +22,6 @@ import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; import { EsQueryAlertParams } from './types'; jest.mock('../../../../../../src/plugins/kibana_react/public'); -jest.mock('../../../../../../src/plugins/es_ui_shared/public'); jest.mock('../../../../../../src/plugins/es_ui_shared/public', () => ({ XJson: { useXJsonMode: jest.fn().mockReturnValue({ @@ -31,26 +30,18 @@ jest.mock('../../../../../../src/plugins/es_ui_shared/public', () => ({ xJson: jest.fn(), }), }, + // Mocking EuiCodeEditor, which uses React Ace under the hood + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EuiCodeEditor: (props: any) => ( + { + props.onChange(syntheticEvent.jsonString); + }} + /> + ), })); -jest.mock(''); -jest.mock('@elastic/eui', () => { - const original = jest.requireActual('@elastic/eui'); - - return { - ...original, - // Mocking EuiCodeEditor, which uses React Ace under the hood - // eslint-disable-next-line @typescript-eslint/no-explicit-any - EuiCodeEditor: (props: any) => ( - { - props.onChange(syntheticEvent.jsonString); - }} - /> - ), - }; -}); jest.mock('../../../../triggers_actions_ui/public', () => { const original = jest.requireActual('../../../../triggers_actions_ui/public'); return { diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx index 4cba80a9a541a..b98df85e0b8a0 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx @@ -9,12 +9,11 @@ import React, { useState, Fragment, useEffect } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; -import 'brace/theme/github'; import { XJsonMode } from '@kbn/ace'; +import 'brace/theme/github'; import { EuiButtonEmpty, - EuiCodeEditor, EuiSpacer, EuiFormRow, EuiCallOut, @@ -25,7 +24,7 @@ import { import { DocLinksStart, HttpSetup } from 'kibana/public'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { XJson } from '../../../../../../src/plugins/es_ui_shared/public'; +import { XJson, EuiCodeEditor } from '../../../../../../src/plugins/es_ui_shared/public'; import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; import { getFields, diff --git a/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx index 6267c9d3a4953..3caa53988c005 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx @@ -115,7 +115,7 @@ const EventRenderedViewComponent = ({ field: 'actions', name: ActionTitle, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: unknown) => { const alertId = get(item, '_id'); const rowIndex = events.findIndex((evt) => evt._id === alertId); @@ -147,7 +147,7 @@ const EventRenderedViewComponent = ({ defaultMessage: 'Timestamp', }), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: TimelineItem) => { const timestamp = get(item, `ecs.timestamp`); return ; @@ -159,7 +159,7 @@ const EventRenderedViewComponent = ({ defaultMessage: 'Rule', }), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: TimelineItem) => { const ruleName = get(item, `ecs.signal.rule.name`); /* `ecs.${ALERT_RULE_NAME}`*/ const ruleId = get(item, `ecs.signal.rule.id`); /* `ecs.${ALERT_RULE_ID}`*/ @@ -172,7 +172,7 @@ const EventRenderedViewComponent = ({ defaultMessage: 'Event Summary', }), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: TimelineItem) => { const ecsData = get(item, 'ecs'); const reason = get(item, `ecs.signal.reason`); /* `ecs.${ALERT_REASON}`*/ diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx index f9f5f79bf4620..183847362851b 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx @@ -19,7 +19,7 @@ export const RefreshTransformListButton: FC = ({ isLoading, }) => ( = ({ {onTestConnector && ( = ({ { @@ -408,7 +408,7 @@ const ConnectorEditFlyout = ({ = ({
= ({ {filteredDeprecations.length === 0 ? ( - + {i18nTexts.noDeprecationsMessage} diff --git a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx index 08cac07250fea..145ec5f199db4 100644 --- a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx +++ b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx @@ -114,7 +114,7 @@ export const MonitorBarSeries = ({ histogramSeries, minInterval }: MonitorBarSer /> } > - -- + -- ); }; diff --git a/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx b/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx index 3a4ee53f63223..dcf3fdb9163db 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx @@ -50,7 +50,7 @@ export const PingStatusColumn = ({ pingStatus, item }: Props) => {
{getPingStatusLabel(pingStatus, item)} diff --git a/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx b/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx index b1a36b1c0d61b..01e0cb5be2b0f 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx @@ -37,7 +37,7 @@ export const PingRedirects: React.FC = ({ monitorStatus, showTitle }) => size: 's', target: '_blank', extraAction: { - color: 'subdued', + color: 'text', iconType: 'popout', iconSize: 's', alwaysShow: true, @@ -56,7 +56,7 @@ export const PingRedirects: React.FC = ({ monitorStatus, showTitle }) => size: 's', target: '_blank', extraAction: { - color: 'subdued', + color: 'text', iconType: 'popout', iconSize: 's', 'aria-label': i18n.translate('xpack.uptime.monitorList.redirects.openWindow', { diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap index 2e55e7024f444..345a8f2786d41 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap @@ -36,7 +36,7 @@ exports[`TagLabel component renders correctly against snapshot 1`] = ` exports[`TagLabel component shallow render correctly against snapshot 1`] = ` US-East diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx index a53beb60ab410..6bf73b9609e58 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx @@ -23,7 +23,7 @@ const BadgeItem = styled.div` export const TagLabel: React.FC = ({ color, label, status }) => { return ( - {label} + {label} ); }; diff --git a/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx b/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx index 311a496bd58a3..3e3b08f49d705 100644 --- a/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx @@ -145,7 +145,7 @@ export const MiddleTruncatedText = ({ { +): 'primary' | 'success' | 'subdued' | 'danger' => { if (isInvalid === true) return 'danger'; if (isEnabled === false) return 'subdued'; - return isOpen ? 'primary' : 'secondary'; + return isOpen ? 'primary' : 'success'; }; export const AlertExpressionPopover: React.FC = ({ diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx b/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx index e2de834a379b5..f7cd341e04dae 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx +++ b/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx @@ -23,7 +23,7 @@ export const AlertTlsComponent: React.FC = (props) => ( diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap index bf56ebd0de236..f9e169b976d1d 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap +++ b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap @@ -10,7 +10,7 @@ exports[`DownNoExpressionSelect component should renders against props 1`] = ` > = button={ setIsOpen(!isOpen)} diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx index f5581f75b3759..6960bb5632852 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx @@ -162,7 +162,7 @@ export const MonitorListStatusColumn = ({ {getHealthMessage(status)} diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx index 03655d11c983d..15e40773ae6df 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx @@ -23,7 +23,7 @@ interface MonitorStatusRowProps { } export const MonitorStatusRow = ({ locationNames, status }: MonitorStatusRowProps) => { - const color = status === STATUS.UP ? 'secondary' : 'danger'; + const color = status === STATUS.UP ? 'success' : 'danger'; let checkListArray = [...locationNames]; // If un-named location exists, move it to end diff --git a/x-pack/plugins/watcher/public/application/components/watch_status.tsx b/x-pack/plugins/watcher/public/application/components/watch_status.tsx index 5c1fd39b5b486..8c6ea0e01b357 100644 --- a/x-pack/plugins/watcher/public/application/components/watch_status.tsx +++ b/x-pack/plugins/watcher/public/application/components/watch_status.tsx @@ -17,7 +17,7 @@ function StatusIcon({ status }: { status: string }) { case WATCH_STATES.OK: case ACTION_STATES.OK: case ACTION_STATES.ACKNOWLEDGED: - return ; + return ; case ACTION_STATES.THROTTLED: return ; case WATCH_STATES.DISABLED: diff --git a/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx b/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx index b19d97f67d2e0..c59147d7e7ce6 100644 --- a/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx +++ b/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx @@ -197,7 +197,7 @@ export const JsonWatchEditForm = () => { { onClick={() => { setAggFieldPopoverOpen(true); }} - color={watch.aggField ? 'secondary' : 'danger'} + color={watch.aggField ? 'success' : 'danger'} /> } isOpen={aggFieldPopoverOpen} @@ -617,7 +617,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { }} color={ watch.groupBy === 'all' || (watch.termSize && watch.termField) - ? 'secondary' + ? 'success' : 'danger' } /> @@ -730,7 +730,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { color={ errors.threshold0.length || (errors.threshold1 && errors.threshold1.length) ? 'danger' - : 'secondary' + : 'success' } /> } @@ -816,7 +816,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { onClick={() => { setWatchDurationPopoverOpen(true); }} - color={watch.timeWindowSize ? 'secondary' : 'danger'} + color={watch.timeWindowSize ? 'success' : 'danger'} /> } isOpen={watchDurationPopoverOpen} @@ -890,7 +890,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { Date: Thu, 18 Nov 2021 13:33:33 -0500 Subject: [PATCH 042/114] [CTI] explicit threat_indicator_path for IM rules (#118821) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../indicator_match_rule.spec.ts | 5 ++ .../security_solution/cypress/objects/rule.ts | 2 + .../cypress/screens/rule_details.ts | 2 + .../rules/step_about_rule/index.test.tsx | 58 ++++++++++++++++ .../rules/step_about_rule/index.tsx | 29 ++++++-- .../rules/step_about_rule/schema.tsx | 30 +++++++++ .../rules/create_rules.mock.ts | 66 +++++++++++++++++++ .../rules/create_rules.test.ts | 36 +++++++++- .../detection_engine/rules/create_rules.ts | 10 ++- 9 files changed, 231 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts b/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts index 378de8f0bc593..ef6db14dba896 100644 --- a/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts @@ -40,6 +40,7 @@ import { INDICATOR_INDEX_PATTERNS, INDICATOR_INDEX_QUERY, INDICATOR_MAPPING, + INDICATOR_PREFIX_OVERRIDE, INVESTIGATION_NOTES_MARKDOWN, INVESTIGATION_NOTES_TOGGLE, MITRE_ATTACK_DETAILS, @@ -448,6 +449,10 @@ describe('indicator match', () => { cy.get(ABOUT_DETAILS).within(() => { getDetails(SEVERITY_DETAILS).should('have.text', getNewThreatIndicatorRule().severity); getDetails(RISK_SCORE_DETAILS).should('have.text', getNewThreatIndicatorRule().riskScore); + getDetails(INDICATOR_PREFIX_OVERRIDE).should( + 'have.text', + getNewThreatIndicatorRule().threatIndicatorPath + ); getDetails(REFERENCE_URLS_DETAILS).should((details) => { expect(removeExternalLinkText(details.text())).equal(expectedUrls); }); diff --git a/x-pack/plugins/security_solution/cypress/objects/rule.ts b/x-pack/plugins/security_solution/cypress/objects/rule.ts index 0a9eecf83c7fc..1c81099d43dd5 100644 --- a/x-pack/plugins/security_solution/cypress/objects/rule.ts +++ b/x-pack/plugins/security_solution/cypress/objects/rule.ts @@ -77,6 +77,7 @@ export interface ThreatIndicatorRule extends CustomRule { indicatorIndexPattern: string[]; indicatorMappingField: string; indicatorIndexField: string; + threatIndicatorPath: string; type?: string; atomic?: string; } @@ -405,6 +406,7 @@ export const getNewThreatIndicatorRule = (): ThreatIndicatorRule => ({ atomic: 'a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3', timeline: getIndicatorMatchTimelineTemplate(), maxSignals: 100, + threatIndicatorPath: 'threat.indicator', }); export const duplicatedRuleName = `${getNewThreatIndicatorRule().name} [Duplicate]`; diff --git a/x-pack/plugins/security_solution/cypress/screens/rule_details.ts b/x-pack/plugins/security_solution/cypress/screens/rule_details.ts index fb1fded1fe8a6..cdad6096ece1f 100644 --- a/x-pack/plugins/security_solution/cypress/screens/rule_details.ts +++ b/x-pack/plugins/security_solution/cypress/screens/rule_details.ts @@ -64,6 +64,8 @@ export const RULE_NAME_OVERRIDE_DETAILS = 'Rule name override'; export const RISK_SCORE_DETAILS = 'Risk score'; +export const INDICATOR_PREFIX_OVERRIDE = 'Indicator prefix override'; + export const RISK_SCORE_OVERRIDE_DETAILS = 'Risk score override'; export const REFERENCE_URLS_DETAILS = 'Reference URLs'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx index 9340ca2af1513..01ba47f728e43 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx @@ -20,6 +20,7 @@ import { AboutStepRule, RuleStepsFormHooks, RuleStep, + DefineStepRule, } from '../../../pages/detection_engine/rules/types'; import { fillEmptySeverityMappings } from '../../../pages/detection_engine/rules/helpers'; import { getMockTheme } from '../../../../common/lib/kibana/kibana_react.mock'; @@ -105,6 +106,63 @@ describe.skip('StepAboutRuleComponent', () => { }); }); + it('is invalid if threat match rule and threat_indicator_path is not present', async () => { + const wrapper = mount( + + + + ); + + await act(async () => { + if (!formHook) { + throw new Error('Form hook not set, but tests depend on it'); + } + wrapper + .find('[data-test-subj="detectionEngineStepAboutThreatIndicatorPath"] input') + .first() + .simulate('change', { target: { value: '' } }); + + const result = await formHook(); + expect(result?.isValid).toEqual(false); + }); + }); + + it('is valid if is not a threat match rule and threat_indicator_path is not present', async () => { + const wrapper = mount( + + + + ); + + await act(async () => { + if (!formHook) { + throw new Error('Form hook not set, but tests depend on it'); + } + wrapper + .find('[data-test-subj="detectionEngineStepAboutThreatIndicatorPath"] input') + .first() + .simulate('change', { target: { value: '' } }); + + const result = await formHook(); + expect(result?.isValid).toEqual(true); + }); + }); + it('is invalid if no "name" is present', async () => { const wrapper = mount( diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx index 91e428382dc30..5f5b636d6afe1 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx @@ -6,7 +6,7 @@ */ import { EuiAccordion, EuiFlexItem, EuiSpacer, EuiFormRow } from '@elastic/eui'; -import React, { FC, memo, useCallback, useEffect, useState } from 'react'; +import React, { FC, memo, useCallback, useEffect, useState, useMemo } from 'react'; import styled from 'styled-components'; import { @@ -31,7 +31,7 @@ import { import { defaultRiskScoreBySeverity, severityOptions } from './data'; import { stepAboutDefaultValue } from './default_value'; import { isUrlInvalid } from '../../../../common/utils/validators'; -import { schema } from './schema'; +import { schema as defaultSchema, threatIndicatorPathRequiredSchemaValue } from './schema'; import * as I18n from './translations'; import { StepContentWrapper } from '../step_content_wrapper'; import { NextStep } from '../next_step'; @@ -73,7 +73,28 @@ const StepAboutRuleComponent: FC = ({ onSubmit, setForm, }) => { - const initialState = defaultValues ?? stepAboutDefaultValue; + const isThreatMatchRuleValue = useMemo( + () => isThreatMatchRule(defineRuleData?.ruleType), + [defineRuleData?.ruleType] + ); + + const initialState: AboutStepRule = useMemo( + () => + defaultValues ?? + (isThreatMatchRuleValue + ? { ...stepAboutDefaultValue, threatIndicatorPath: DEFAULT_INDICATOR_SOURCE_PATH } + : stepAboutDefaultValue), + [defaultValues, isThreatMatchRuleValue] + ); + + const schema = useMemo( + () => + isThreatMatchRuleValue + ? { ...defaultSchema, threatIndicatorPath: threatIndicatorPathRequiredSchemaValue } + : defaultSchema, + [isThreatMatchRuleValue] + ); + const [severityValue, setSeverityValue] = useState(initialState.severity.value); const [indexPatternLoading, { indexPatterns }] = useFetchIndex(defineRuleData?.index ?? []); @@ -300,7 +321,7 @@ const StepAboutRuleComponent: FC = ({ /> - {isThreatMatchRule(defineRuleData?.ruleType) && ( + {isThreatMatchRuleValue && ( <> = { labelAppend: OptionalFieldLabel, }, }; + +export const threatIndicatorPathRequiredSchemaValue = { + type: FIELD_TYPES.TEXT, + label: i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepAboutRule.fieldThreatIndicatorPathLabel', + { + defaultMessage: 'Indicator prefix override', + } + ), + helpText: i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepAboutRule.fieldThreatIndicatorPathHelpText', + { + defaultMessage: + 'Specify the document prefix containing your indicator fields. Used for enrichment of indicator match alerts.', + } + ), + validations: [ + { + validator: emptyField( + i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepAboutRule.threatIndicatorPathFieldEmptyError', + { + defaultMessage: 'Indicator prefix override must not be empty', + } + ) + ), + type: VALIDATION_TYPES.FIELD, + }, + ], +}; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts index 2c25134cc3760..c3e15b061842e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts @@ -117,3 +117,69 @@ export const getCreateMlRulesOptionsMock = ( exceptionsList: [], actions: [], }); + +export const getCreateThreatMatchRulesOptionsMock = ( + isRuleRegistryEnabled: boolean +): CreateRulesOptions => ({ + actions: [], + anomalyThreshold: undefined, + author: ['Elastic'], + buildingBlockType: undefined, + concurrentSearches: undefined, + description: 'some description', + enabled: true, + eventCategoryOverride: undefined, + exceptionsList: [], + falsePositives: ['false positive 1', 'false positive 2'], + filters: [], + from: 'now-1m', + immutable: false, + index: ['*'], + interval: '5m', + isRuleRegistryEnabled, + itemsPerSearch: undefined, + language: 'kuery', + license: 'Elastic License', + machineLearningJobId: undefined, + maxSignals: 100, + meta: {}, + name: 'Query with a rule id', + note: '# sample markdown', + outputIndex: 'output-1', + query: 'user.name: root or user.name: admin', + references: ['http://www.example.com'], + riskScore: 80, + riskScoreMapping: [], + ruleId: 'rule-1', + ruleNameOverride: undefined, + rulesClient: rulesClientMock.create(), + savedId: 'savedId-123', + severity: 'high', + severityMapping: [], + tags: [], + threat: [], + threatFilters: undefined, + threatIndex: ['filebeat-*'], + threatIndicatorPath: 'threat.indicator', + threatLanguage: 'kuery', + threatMapping: [ + { + entries: [ + { + field: 'file.hash.md5', + type: 'mapping', + value: 'threat.indicator.file.hash.md5', + }, + ], + }, + ], + threatQuery: '*:*', + threshold: undefined, + throttle: null, + timelineId: 'timelineid-123', + timelineTitle: 'timeline-title-123', + timestampOverride: undefined, + to: 'now', + type: 'threat_match', + version: 1, +}); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts index 0fd708791712a..3d5619ab1306b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts @@ -6,7 +6,11 @@ */ import { createRules } from './create_rules'; -import { getCreateMlRulesOptionsMock } from './create_rules.mock'; +import { + getCreateMlRulesOptionsMock, + getCreateThreatMatchRulesOptionsMock, +} from './create_rules.mock'; +import { DEFAULT_INDICATOR_SOURCE_PATH } from '../../../../common/constants'; describe.each([ ['Legacy', false], @@ -44,4 +48,34 @@ describe.each([ }) ); }); + + it('populates a threatIndicatorPath value for threat_match rule if empty', async () => { + const ruleOptions = getCreateThreatMatchRulesOptionsMock(isRuleRegistryEnabled); + delete ruleOptions.threatIndicatorPath; + await createRules(ruleOptions); + expect(ruleOptions.rulesClient.create).toHaveBeenCalledWith( + expect.objectContaining({ + data: expect.objectContaining({ + params: expect.objectContaining({ + threatIndicatorPath: DEFAULT_INDICATOR_SOURCE_PATH, + }), + }), + }) + ); + }); + + it('does not populate a threatIndicatorPath value for other rules if empty', async () => { + const ruleOptions = getCreateMlRulesOptionsMock(isRuleRegistryEnabled); + delete ruleOptions.threatIndicatorPath; + await createRules(ruleOptions); + expect(ruleOptions.rulesClient.create).not.toHaveBeenCalledWith( + expect.objectContaining({ + data: expect.objectContaining({ + params: expect.objectContaining({ + threatIndicatorPath: DEFAULT_INDICATOR_SOURCE_PATH, + }), + }), + }) + ); + }); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts index 1d0010b38578d..5ff5358fbc4cd 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts @@ -13,7 +13,11 @@ import { } from '../../../../common/detection_engine/utils'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { SanitizedAlert } from '../../../../../alerting/common'; -import { NOTIFICATION_THROTTLE_NO_ACTIONS, SERVER_APP_ID } from '../../../../common/constants'; +import { + DEFAULT_INDICATOR_SOURCE_PATH, + NOTIFICATION_THROTTLE_NO_ACTIONS, + SERVER_APP_ID, +} from '../../../../common/constants'; import { CreateRulesOptions } from './types'; import { addTags } from './add_tags'; import { PartialFilter, RuleTypeParams } from '../types'; @@ -115,7 +119,9 @@ export const createRules = async ({ */ threatFilters: threatFilters as PartialFilter[] | undefined, threatIndex, - threatIndicatorPath, + threatIndicatorPath: + threatIndicatorPath ?? + (type === 'threat_match' ? DEFAULT_INDICATOR_SOURCE_PATH : undefined), threatQuery, concurrentSearches, itemsPerSearch, From 324c5872d03cf90337b85f9bce41c251153d4255 Mon Sep 17 00:00:00 2001 From: ymao1 Date: Thu, 18 Nov 2021 14:14:20 -0500 Subject: [PATCH 043/114] [Alerting] Handle errors with scheduled task document during rule disable (#118618) * Catching errors during rule disable * Adding functional test Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/rules_client/rules_client.ts | 81 +++++++++-------- .../server/rules_client/tests/disable.test.ts | 59 +++++++++++++ .../spaces_only/tests/alerting/disable.ts | 88 ++++++++++++------- 3 files changed, 159 insertions(+), 69 deletions(-) diff --git a/x-pack/plugins/alerting/server/rules_client/rules_client.ts b/x-pack/plugins/alerting/server/rules_client/rules_client.ts index 37e9bcbfa3a8f..b190737a157ea 100644 --- a/x-pack/plugins/alerting/server/rules_client/rules_client.ts +++ b/x-pack/plugins/alerting/server/rules_client/rules_client.ts @@ -1205,44 +1205,51 @@ export class RulesClient { } if (this.eventLogger && attributes.scheduledTaskId) { - const { state } = taskInstanceToAlertTaskInstance( - await this.taskManager.get(attributes.scheduledTaskId), - attributes as unknown as SanitizedAlert - ); + try { + const { state } = taskInstanceToAlertTaskInstance( + await this.taskManager.get(attributes.scheduledTaskId), + attributes as unknown as SanitizedAlert + ); - const recoveredAlertInstances = mapValues, AlertInstance>( - state.alertInstances ?? {}, - (rawAlertInstance) => new AlertInstance(rawAlertInstance) - ); - const recoveredAlertInstanceIds = Object.keys(recoveredAlertInstances); - - for (const instanceId of recoveredAlertInstanceIds) { - const { group: actionGroup, subgroup: actionSubgroup } = - recoveredAlertInstances[instanceId].getLastScheduledActions() ?? {}; - const instanceState = recoveredAlertInstances[instanceId].getState(); - const message = `instance '${instanceId}' has recovered due to the rule was disabled`; - - const event = createAlertEventLogRecordObject({ - ruleId: id, - ruleName: attributes.name, - ruleType: this.ruleTypeRegistry.get(attributes.alertTypeId), - instanceId, - action: EVENT_LOG_ACTIONS.recoveredInstance, - message, - state: instanceState, - group: actionGroup, - subgroup: actionSubgroup, - namespace: this.namespace, - savedObjects: [ - { - id, - type: 'alert', - typeId: attributes.alertTypeId, - relation: SAVED_OBJECT_REL_PRIMARY, - }, - ], - }); - this.eventLogger.logEvent(event); + const recoveredAlertInstances = mapValues, AlertInstance>( + state.alertInstances ?? {}, + (rawAlertInstance) => new AlertInstance(rawAlertInstance) + ); + const recoveredAlertInstanceIds = Object.keys(recoveredAlertInstances); + + for (const instanceId of recoveredAlertInstanceIds) { + const { group: actionGroup, subgroup: actionSubgroup } = + recoveredAlertInstances[instanceId].getLastScheduledActions() ?? {}; + const instanceState = recoveredAlertInstances[instanceId].getState(); + const message = `instance '${instanceId}' has recovered due to the rule was disabled`; + + const event = createAlertEventLogRecordObject({ + ruleId: id, + ruleName: attributes.name, + ruleType: this.ruleTypeRegistry.get(attributes.alertTypeId), + instanceId, + action: EVENT_LOG_ACTIONS.recoveredInstance, + message, + state: instanceState, + group: actionGroup, + subgroup: actionSubgroup, + namespace: this.namespace, + savedObjects: [ + { + id, + type: 'alert', + typeId: attributes.alertTypeId, + relation: SAVED_OBJECT_REL_PRIMARY, + }, + ], + }); + this.eventLogger.logEvent(event); + } + } catch (error) { + // this should not block the rest of the disable process + this.logger.warn( + `rulesClient.disable('${id}') - Could not write recovery events - ${error.message}` + ); } } try { diff --git a/x-pack/plugins/alerting/server/rules_client/tests/disable.test.ts b/x-pack/plugins/alerting/server/rules_client/tests/disable.test.ts index c518d385dd747..a5b9f1d928e81 100644 --- a/x-pack/plugins/alerting/server/rules_client/tests/disable.test.ts +++ b/x-pack/plugins/alerting/server/rules_client/tests/disable.test.ts @@ -350,6 +350,65 @@ describe('disable()', () => { }); }); + test('disables the rule even if unable to retrieve task manager doc to generate recovery event log events', async () => { + unsecuredSavedObjectsClient.create.mockResolvedValueOnce({ + id: '1', + type: 'api_key_pending_invalidation', + attributes: { + apiKeyId: '123', + createdAt: '2019-02-12T21:01:22.479Z', + }, + references: [], + }); + taskManager.get.mockRejectedValueOnce(new Error('Fail')); + await rulesClient.disable({ id: '1' }); + expect(unsecuredSavedObjectsClient.get).not.toHaveBeenCalled(); + expect(encryptedSavedObjects.getDecryptedAsInternalUser).toHaveBeenCalledWith('alert', '1', { + namespace: 'default', + }); + expect(unsecuredSavedObjectsClient.update).toHaveBeenCalledWith( + 'alert', + '1', + { + consumer: 'myApp', + schedule: { interval: '10s' }, + alertTypeId: 'myType', + enabled: false, + meta: { + versionApiKeyLastmodified: kibanaVersion, + }, + scheduledTaskId: null, + apiKey: null, + apiKeyOwner: null, + updatedAt: '2019-02-12T21:01:22.479Z', + updatedBy: 'elastic', + actions: [ + { + group: 'default', + id: '1', + actionTypeId: '1', + actionRef: '1', + params: { + foo: true, + }, + }, + ], + }, + { + version: '123', + } + ); + expect(taskManager.removeIfExists).toHaveBeenCalledWith('task-123'); + expect( + (unsecuredSavedObjectsClient.create.mock.calls[0][1] as InvalidatePendingApiKey).apiKeyId + ).toBe('123'); + + expect(eventLogger.logEvent).toHaveBeenCalledTimes(0); + expect(rulesClientParams.logger.warn).toHaveBeenCalledWith( + `rulesClient.disable('1') - Could not write recovery events - Fail` + ); + }); + test('falls back when getDecryptedAsInternalUser throws an error', async () => { encryptedSavedObjects.getDecryptedAsInternalUser.mockRejectedValueOnce(new Error('Fail')); unsecuredSavedObjectsClient.create.mockResolvedValueOnce({ diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts index fa94eed46dc3f..51cb54aa5f9e5 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts @@ -9,17 +9,17 @@ import expect from '@kbn/expect'; import { Spaces } from '../../scenarios'; import { FtrProviderContext } from '../../../common/ftr_provider_context'; import { - AlertUtils, + AlertUtils as RuleUtils, checkAAD, getUrlPrefix, - getTestAlertData, + getTestAlertData as getTestRuleData, ObjectRemover, getEventLog, } from '../../../common/lib'; import { validateEvent } from './event_log'; // eslint-disable-next-line import/no-default-export -export default function createDisableAlertTests({ getService }: FtrProviderContext) { +export default function createDisableRuleTests({ getService }: FtrProviderContext) { const es = getService('es'); const supertestWithoutAuth = getService('supertestWithoutAuth'); const retry = getService('retry'); @@ -27,7 +27,7 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte describe('disable', () => { const objectRemover = new ObjectRemover(supertestWithoutAuth); - const alertUtils = new AlertUtils({ space: Spaces.space1, supertestWithoutAuth }); + const ruleUtils = new RuleUtils({ space: Spaces.space1, supertestWithoutAuth }); after(() => objectRemover.removeAll()); @@ -38,18 +38,18 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte }); } - it('should handle disable alert request appropriately', async () => { - const { body: createdAlert } = await supertestWithoutAuth + it('should handle disable rule request appropriately', async () => { + const { body: createdRule } = await supertestWithoutAuth .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') - .send(getTestAlertData({ enabled: true })) + .send(getTestRuleData({ enabled: true })) .expect(200); - objectRemover.add(Spaces.space1.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); - await alertUtils.disable(createdAlert.id); + await ruleUtils.disable(createdRule.id); try { - await getScheduledTask(createdAlert.scheduledTaskId); + await getScheduledTask(createdRule.scheduled_task_id); throw new Error('Should have removed scheduled task'); } catch (e) { expect(e.meta.statusCode).to.eql(404); @@ -60,27 +60,27 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte supertest: supertestWithoutAuth, spaceId: Spaces.space1.id, type: 'alert', - id: createdAlert.id, + id: createdRule.id, }); }); - it(`shouldn't disable alert from another space`, async () => { - const { body: createdAlert } = await supertestWithoutAuth + it(`shouldn't disable rule from another space`, async () => { + const { body: createdRule } = await supertestWithoutAuth .post(`${getUrlPrefix(Spaces.other.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') - .send(getTestAlertData({ enabled: true })) + .send(getTestRuleData({ enabled: true })) .expect(200); - objectRemover.add(Spaces.other.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.other.id, createdRule.id, 'rule', 'alerting'); - await alertUtils.getDisableRequest(createdAlert.id).expect(404, { + await ruleUtils.getDisableRequest(createdRule.id).expect(404, { statusCode: 404, error: 'Not Found', - message: `Saved object [alert/${createdAlert.id}] not found`, + message: `Saved object [alert/${createdRule.id}] not found`, }); }); - it('should create recovered-instance events for all alert instances', async () => { - const { body: createdAlert } = await supertest + it('should create recovered-instance events for all alerts', async () => { + const { body: createdRule } = await supertest .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') .send({ @@ -96,12 +96,12 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte notify_when: 'onThrottleInterval', }) .expect(200); - objectRemover.add(Spaces.space1.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); - // wait for alert to actually execute + // wait for rule to actually execute await retry.try(async () => { const response = await supertest.get( - `${getUrlPrefix(Spaces.space1.id)}/internal/alerting/rule/${createdAlert.id}/state` + `${getUrlPrefix(Spaces.space1.id)}/internal/alerting/rule/${createdRule.id}/state` ); expect(response.status).to.eql(200); @@ -109,8 +109,8 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte expect(response.body.rule_type_state.runCount).to.greaterThan(1); }); - await alertUtils.getDisableRequest(createdAlert.id); - const ruleId = createdAlert.id; + await ruleUtils.getDisableRequest(createdRule.id); + const ruleId = createdRule.id; // wait for the events we're expecting const events = await retry.try(async () => { @@ -140,7 +140,7 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte shouldHaveTask: false, rule: { id: ruleId, - category: createdAlert.rule_type_id, + category: createdRule.rule_type_id, license: 'basic', ruleset: 'alertsFixture', name: 'abc', @@ -148,22 +148,46 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte }); }); + it('should disable rule even if associated task manager document is missing', async () => { + const { body: createdRule } = await supertestWithoutAuth + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send(getTestRuleData({ enabled: true })) + .expect(200); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); + + // manually remove scheduled task + await es.delete({ + id: `task:${createdRule.scheduled_task_id}`, + index: '.kibana_task_manager', + }); + await ruleUtils.disable(createdRule.id); + + // Ensure AAD isn't broken + await checkAAD({ + supertest: supertestWithoutAuth, + spaceId: Spaces.space1.id, + type: 'alert', + id: createdRule.id, + }); + }); + describe('legacy', () => { - it('should handle disable alert request appropriately', async () => { - const { body: createdAlert } = await supertestWithoutAuth + it('should handle disable rule request appropriately', async () => { + const { body: createdRule } = await supertestWithoutAuth .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') - .send(getTestAlertData({ enabled: true })) + .send(getTestRuleData({ enabled: true })) .expect(200); - objectRemover.add(Spaces.space1.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); await supertestWithoutAuth - .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert/${createdAlert.id}/_disable`) + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert/${createdRule.id}/_disable`) .set('kbn-xsrf', 'foo') .expect(204); try { - await getScheduledTask(createdAlert.scheduledTaskId); + await getScheduledTask(createdRule.scheduled_task_id); throw new Error('Should have removed scheduled task'); } catch (e) { expect(e.meta.statusCode).to.eql(404); @@ -174,7 +198,7 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte supertest: supertestWithoutAuth, spaceId: Spaces.space1.id, type: 'alert', - id: createdAlert.id, + id: createdRule.id, }); }); }); From bbccf0ed2ea843831a34691d33112bf74f5743fa Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Thu, 18 Nov 2021 14:17:15 -0500 Subject: [PATCH 044/114] [Security Solution] Feature/decouple artifact policy selector (#118927) --- .../effected_policy_select.test.tsx | 7 +- .../effected_policy_select.tsx | 67 +++++++++++++------ .../effected_policy_select/index.ts | 0 .../effected_policy_select/test_utils.ts | 0 .../pages/endpoint_hosts/store/middleware.ts | 2 +- .../policy/store/services/ingest.test.ts | 31 +-------- .../pages/policy/store/services/ingest.ts | 25 +------ .../pages/trusted_apps/service/index.ts | 2 +- .../create_trusted_app_form.test.tsx | 2 +- .../components/create_trusted_app_form.tsx | 13 +++- .../view/trusted_apps_page.test.tsx | 2 +- .../management/services/policies.test.ts | 42 ++++++++++++ .../public/management/services/policies.ts | 35 ++++++++++ 13 files changed, 140 insertions(+), 88 deletions(-) rename x-pack/plugins/security_solution/public/management/{pages/trusted_apps/view => }/components/effected_policy_select/effected_policy_select.test.tsx (95%) rename x-pack/plugins/security_solution/public/management/{pages/trusted_apps/view => }/components/effected_policy_select/effected_policy_select.tsx (76%) rename x-pack/plugins/security_solution/public/management/{pages/trusted_apps/view => }/components/effected_policy_select/index.ts (100%) rename x-pack/plugins/security_solution/public/management/{pages/trusted_apps/view => }/components/effected_policy_select/test_utils.ts (100%) create mode 100644 x-pack/plugins/security_solution/public/management/services/policies.test.ts create mode 100644 x-pack/plugins/security_solution/public/management/services/policies.ts diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.test.tsx b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.test.tsx similarity index 95% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.test.tsx rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.test.tsx index 3e48ccc6d9b6d..5eebc2721857f 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.test.tsx @@ -5,15 +5,12 @@ * 2.0. */ -import { EndpointDocGenerator } from '../../../../../../../common/endpoint/generate_data'; import { EffectedPolicySelect, EffectedPolicySelectProps } from './effected_policy_select'; -import { - AppContextTestRender, - createAppRootMockRenderer, -} from '../../../../../../common/mock/endpoint'; import React from 'react'; import { forceHTMLElementOffsetWidth } from './test_utils'; import { fireEvent, act } from '@testing-library/react'; +import { EndpointDocGenerator } from '../../../../common/endpoint/generate_data'; +import { AppContextTestRender, createAppRootMockRenderer } from '../../../common/mock/endpoint'; describe('when using EffectedPolicySelect component', () => { const generator = new EndpointDocGenerator('effected-policy-select'); diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.tsx b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.tsx similarity index 76% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.tsx rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.tsx index 07de303c155aa..2249fc89430d2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.tsx +++ b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.tsx @@ -23,14 +23,27 @@ import { i18n } from '@kbn/i18n'; import { EuiSelectableOption } from '@elastic/eui/src/components/selectable/selectable_option'; import { FormattedMessage } from '@kbn/i18n/react'; import styled from 'styled-components'; -import { PolicyData } from '../../../../../../../common/endpoint/types'; -import { getPolicyDetailPath } from '../../../../../common/routing'; -import { useAppUrl } from '../../../../../../common/lib/kibana/hooks'; -import { LinkToApp } from '../../../../../../common/components/endpoint/link_to_app'; -import { useTestIdGenerator } from '../../../../../components/hooks/use_test_id_generator'; +import { PolicyData } from '../../../../common/endpoint/types'; +import { LinkToApp } from '../../../common/components/endpoint/link_to_app'; +import { getPolicyDetailPath } from '../../common/routing'; +import { useTestIdGenerator } from '../hooks/use_test_id_generator'; +import { useAppUrl } from '../../../common/lib/kibana/hooks'; const NOOP = () => {}; const DEFAULT_LIST_PROPS: EuiSelectableProps['listProps'] = { bordered: true, showIcons: false }; +const SEARCH_PROPS = { className: 'effected-policies-search' }; + +const StyledEuiSelectable = styled.div` + .effected-policies-search { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + .euiSelectableList { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; + } +`; const EffectivePolicyFormContainer = styled.div` .policy-name .euiSelectableListItem__text { @@ -57,6 +70,7 @@ export type EffectedPolicySelectProps = Omit< options: PolicyData[]; isGlobal: boolean; isPlatinumPlus: boolean; + description?: string; onChange: (selection: EffectedPolicySelection) => void; selected?: PolicyData[]; }; @@ -64,6 +78,7 @@ export const EffectedPolicySelect = memo( ({ isGlobal, isPlatinumPlus, + description, onChange, listProps, options, @@ -79,7 +94,7 @@ export const EffectedPolicySelect = memo( () => [ { id: 'globalPolicy', - label: i18n.translate('xpack.securitySolution.endpoint.trustedAppsByPolicy.global', { + label: i18n.translate('xpack.securitySolution.endpoint.effectedPolicySelect.global', { defaultMessage: 'Global', }), iconType: isGlobal ? 'checkInCircleFilled' : '', @@ -87,7 +102,7 @@ export const EffectedPolicySelect = memo( }, { id: 'perPolicy', - label: i18n.translate('xpack.securitySolution.endpoint.trustedAppsByPolicy.perPolicy', { + label: i18n.translate('xpack.securitySolution.endpoint.effectedPolicySelect.perPolicy', { defaultMessage: 'Per Policy', }), iconType: !isGlobal ? 'checkInCircleFilled' : '', @@ -169,7 +184,7 @@ export const EffectedPolicySelect = memo(

@@ -179,10 +194,15 @@ export const EffectedPolicySelect = memo(

- {i18n.translate('xpack.securitySolution.trustedApps.assignmentSectionDescription', { - defaultMessage: - 'Assign this trusted application globally across all policies, or assign it to specific policies.', - })} + {description + ? description + : i18n.translate( + 'xpack.securitySolution.effectedPolicySelect.assignmentSectionDescription', + { + defaultMessage: + 'Assign globally across all policies, or assign it to specific policies.', + } + )}

@@ -202,16 +222,19 @@ export const EffectedPolicySelect = memo( {!isGlobal && ( - - {...otherSelectableProps} - options={selectableOptions} - listProps={listProps || DEFAULT_LIST_PROPS} - onChange={handleOnPolicySelectChange} - searchable={true} - data-test-subj={getTestId('policiesSelectable')} - > - {listBuilderCallback} - + + + {...otherSelectableProps} + options={selectableOptions} + listProps={listProps || DEFAULT_LIST_PROPS} + onChange={handleOnPolicySelectChange} + searchProps={SEARCH_PROPS} + searchable={true} + data-test-subj={getTestId('policiesSelectable')} + > + {listBuilderCallback} + + )} diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/index.ts b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/index.ts similarity index 100% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/index.ts rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/index.ts diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/test_utils.ts b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/test_utils.ts similarity index 100% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/test_utils.ts rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/test_utils.ts diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts index 287f66a48fce8..3f4afe8e4b108 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts @@ -54,7 +54,6 @@ import { TransformStatsResponse, } from '../types'; import { - sendGetEndpointSpecificPackagePolicies, sendGetEndpointSecurityPackage, sendGetAgentPolicyList, sendGetFleetAgentsWithEndpoint, @@ -81,6 +80,7 @@ import { EndpointPackageInfoStateChanged } from './action'; import { fetchPendingActionsByAgentId } from '../../../../common/lib/endpoint_pending_actions'; import { getIsInvalidDateRange } from '../utils'; import { METADATA_TRANSFORM_STATS_URL } from '../../../../../common/constants'; +import { sendGetEndpointSpecificPackagePolicies } from '../../../services/policies'; type EndpointPageStore = ImmutableMiddlewareAPI; diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts index b5897d8fd3bc4..ef66c948e1127 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts +++ b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts @@ -9,15 +9,9 @@ import { INGEST_API_EPM_PACKAGES, sendGetPackagePolicy, sendGetEndpointSecurityPackage, - sendGetEndpointSpecificPackagePolicies, } from './ingest'; import { httpServiceMock } from '../../../../../../../../../src/core/public/mocks'; -import { - EPM_API_ROUTES, - PACKAGE_POLICY_SAVED_OBJECT_TYPE, - PACKAGE_POLICY_API_ROOT, - PACKAGE_POLICY_API_ROUTES, -} from '../../../../../../../fleet/common'; +import { EPM_API_ROUTES, PACKAGE_POLICY_API_ROOT } from '../../../../../../../fleet/common'; import { policyListApiPathHandlers } from '../test_mock_utils'; describe('ingest service', () => { @@ -27,29 +21,6 @@ describe('ingest service', () => { http = httpServiceMock.createStartContract(); }); - describe('sendGetEndpointSpecificPackagePolicies()', () => { - it('auto adds kuery to api request', async () => { - await sendGetEndpointSpecificPackagePolicies(http); - expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { - query: { - kuery: `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, - }, - }); - }); - it('supports additional KQL to be defined on input for query params', async () => { - await sendGetEndpointSpecificPackagePolicies(http, { - query: { kuery: 'someValueHere', page: 1, perPage: 10 }, - }); - expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { - query: { - kuery: `someValueHere and ${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, - perPage: 10, - page: 1, - }, - }); - }); - }); - describe('sendGetPackagePolicy()', () => { it('builds correct API path', async () => { await sendGetPackagePolicy(http, '123'); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts index 0375b0c434f18..27b567c3bb38c 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts +++ b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts @@ -7,17 +7,15 @@ import { HttpFetchOptions, HttpStart } from 'kibana/public'; import { - GetPackagePoliciesRequest, GetAgentStatusResponse, GetAgentsResponse, DeletePackagePoliciesResponse, DeletePackagePoliciesRequest, - PACKAGE_POLICY_SAVED_OBJECT_TYPE, GetPackagesResponse, GetAgentPoliciesRequest, GetAgentPoliciesResponse, } from '../../../../../../../fleet/common'; -import { GetPolicyListResponse, GetPolicyResponse, UpdatePolicyResponse } from '../../types'; +import { GetPolicyResponse, UpdatePolicyResponse } from '../../types'; import { NewPolicyData } from '../../../../../../common/endpoint/types'; const INGEST_API_ROOT = `/api/fleet`; @@ -28,27 +26,6 @@ export const INGEST_API_FLEET_AGENTS = `${INGEST_API_ROOT}/agents`; export const INGEST_API_EPM_PACKAGES = `${INGEST_API_ROOT}/epm/packages`; const INGEST_API_DELETE_PACKAGE_POLICY = `${INGEST_API_PACKAGE_POLICIES}/delete`; -/** - * Retrieves a list of endpoint specific package policies (those created with a `package.name` of - * `endpoint`) from Ingest - * @param http - * @param options - */ -export const sendGetEndpointSpecificPackagePolicies = ( - http: HttpStart, - options: HttpFetchOptions & Partial = {} -): Promise => { - return http.get(INGEST_API_PACKAGE_POLICIES, { - ...options, - query: { - ...options.query, - kuery: `${ - options?.query?.kuery ? `${options.query.kuery} and ` : '' - }${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, - }, - }); -}; - /** * Retrieves a single package policy based on ID from ingest * @param http diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts index b59fb6cfdd2f7..2549dd5a2a4dc 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts @@ -35,9 +35,9 @@ import { } from '../../../../../common/endpoint/types'; import { resolvePathVariables } from '../../../../common/utils/resolve_path_variables'; -import { sendGetEndpointSpecificPackagePolicies } from '../../policy/store/services/ingest'; import { toUpdateTrustedApp } from '../../../../../common/endpoint/service/trusted_apps/to_update_trusted_app'; import { isGlobalEffectScope } from '../state/type_guards'; +import { sendGetEndpointSpecificPackagePolicies } from '../../../services/policies'; export interface TrustedAppsService { getTrustedApp(params: GetOneTrustedAppRequestParams): Promise; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx index f05d018fe8e9a..23589843c28c3 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx @@ -21,10 +21,10 @@ import { import { CreateTrustedAppForm, CreateTrustedAppFormProps } from './create_trusted_app_form'; import { defaultNewTrustedApp } from '../../store/builders'; -import { forceHTMLElementOffsetWidth } from './effected_policy_select/test_utils'; import { EndpointDocGenerator } from '../../../../../../common/endpoint/generate_data'; import { useIsExperimentalFeatureEnabled } from '../../../../../common/hooks/use_experimental_features'; import { licenseService } from '../../../../../common/hooks/use_license'; +import { forceHTMLElementOffsetWidth } from '../../../../components/effected_policy_select/test_utils'; jest.mock('../../../../../common/hooks/use_experimental_features'); const useIsExperimentalFeatureEnabledMock = useIsExperimentalFeatureEnabled as jest.Mock; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx index da925ddd8a6c1..147529b164ae1 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx @@ -42,13 +42,13 @@ import { import { defaultConditionEntry } from '../../store/builders'; import { OS_TITLES } from '../translations'; import { LogicalConditionBuilder, LogicalConditionBuilderProps } from './logical_condition'; +import { useTestIdGenerator } from '../../../../components/hooks/use_test_id_generator'; +import { useLicense } from '../../../../../common/hooks/use_license'; import { EffectedPolicySelect, EffectedPolicySelection, EffectedPolicySelectProps, -} from './effected_policy_select'; -import { useTestIdGenerator } from '../../../../components/hooks/use_test_id_generator'; -import { useLicense } from '../../../../../common/hooks/use_license'; +} from '../../../../components/effected_policy_select'; const OPERATING_SYSTEMS: readonly OperatingSystem[] = [ OperatingSystem.MAC, @@ -564,6 +564,13 @@ export const CreateTrustedAppForm = memo( options={policies.options} onChange={handlePolicySelectChange} isLoading={policies?.isLoading} + description={i18n.translate( + 'xpack.securitySolution.trustedApps.assignmentSectionDescription', + { + defaultMessage: + 'Assign this trusted application globally across all policies, or assign it to specific policies.', + } + )} data-test-subj={getTestId('effectedPolicies')} /> diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx index 39619379a1ee0..5d78de741e459 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx @@ -30,11 +30,11 @@ import { } from '../../../../../../fleet/common'; import { EndpointDocGenerator } from '../../../../../common/endpoint/generate_data'; import { isFailedResourceState, isLoadedResourceState } from '../state'; -import { forceHTMLElementOffsetWidth } from './components/effected_policy_select/test_utils'; import { toUpdateTrustedApp } from '../../../../../common/endpoint/service/trusted_apps/to_update_trusted_app'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { resolvePathVariables } from '../../../../common/utils/resolve_path_variables'; import { licenseService } from '../../../../common/hooks/use_license'; +import { forceHTMLElementOffsetWidth } from '../../../components/effected_policy_select/test_utils'; // TODO: remove this mock when feature flag is removed jest.mock('../../../../common/hooks/use_experimental_features'); diff --git a/x-pack/plugins/security_solution/public/management/services/policies.test.ts b/x-pack/plugins/security_solution/public/management/services/policies.test.ts new file mode 100644 index 0000000000000..0b93dffb71d3c --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/services/policies.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { httpServiceMock } from '../../../../../../src/core/public/mocks'; +import { PACKAGE_POLICY_SAVED_OBJECT_TYPE } from '../../../../fleet/common'; +import { PACKAGE_POLICY_API_ROUTES } from '../../../../fleet/common/constants/routes'; +import { sendGetEndpointSpecificPackagePolicies } from './policies'; + +describe('ingest service', () => { + let http: ReturnType; + + beforeEach(() => { + http = httpServiceMock.createStartContract(); + }); + + describe('sendGetEndpointSpecificPackagePolicies()', () => { + it('auto adds kuery to api request', async () => { + await sendGetEndpointSpecificPackagePolicies(http); + expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { + query: { + kuery: `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, + }, + }); + }); + it('supports additional KQL to be defined on input for query params', async () => { + await sendGetEndpointSpecificPackagePolicies(http, { + query: { kuery: 'someValueHere', page: 1, perPage: 10 }, + }); + expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { + query: { + kuery: `someValueHere and ${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, + perPage: 10, + page: 1, + }, + }); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/management/services/policies.ts b/x-pack/plugins/security_solution/public/management/services/policies.ts new file mode 100644 index 0000000000000..63810ad499c09 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/services/policies.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { HttpFetchOptions, HttpStart } from 'kibana/public'; +import { + GetPackagePoliciesRequest, + PACKAGE_POLICY_SAVED_OBJECT_TYPE, +} from '../../../../fleet/common'; +import { INGEST_API_PACKAGE_POLICIES } from '../pages/policy/store/services/ingest'; +import { GetPolicyListResponse } from '../pages/policy/types'; + +/** + * Retrieves a list of endpoint specific package policies (those created with a `package.name` of + * `endpoint`) from Ingest + * @param http + * @param options + */ +export const sendGetEndpointSpecificPackagePolicies = ( + http: HttpStart, + options: HttpFetchOptions & Partial = {} +): Promise => { + return http.get(INGEST_API_PACKAGE_POLICIES, { + ...options, + query: { + ...options.query, + kuery: `${ + options?.query?.kuery ? `${options.query.kuery} and ` : '' + }${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, + }, + }); +}; From fcb855b0ecb671beb70f897e13725718c9dd5058 Mon Sep 17 00:00:00 2001 From: Baturalp Gurdin <9674241+suchcodemuchwow@users.noreply.github.com> Date: Thu, 18 Nov 2021 20:28:58 +0100 Subject: [PATCH 045/114] Performance test for login and home page (#117861) - Remove reporting-dashboard test from performance tests and add login page and home page tests to get performance metrics. - Set network latency (KBN_TEST_NETWORK_LATENCY), download throughput (KBN_TEST_DOWNLOAD_THROUGHPUT) and upload throughput (KBN_TEST_UPLOAD_THROUGHPUT) through environment variables and fallback to default 100ms latency for network latency, 5MB for download throughput and 1MB for upload throughput. --- .../services/remote/network_profiles.ts | 34 +++++++++++++++++++ test/functional/services/remote/webdriver.ts | 27 ++++++++++++--- x-pack/test/performance/tests/home.ts | 25 ++++++++++++++ x-pack/test/performance/tests/index.ts | 2 +- .../performance/tests/reporting_dashboard.ts | 2 +- 5 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 test/functional/services/remote/network_profiles.ts create mode 100644 x-pack/test/performance/tests/home.ts diff --git a/test/functional/services/remote/network_profiles.ts b/test/functional/services/remote/network_profiles.ts new file mode 100644 index 0000000000000..c27bafa4f8dcb --- /dev/null +++ b/test/functional/services/remote/network_profiles.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 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. + */ + +interface NetworkOptions { + DOWNLOAD: number; + UPLOAD: number; + LATENCY: number; +} + +const sec = 1_000; +const kB = 1024; + +// Download (kb/s) Upload (kb/s) Latency (ms) +// https://gist.github.com/theodorosploumis/fd4086ee58369b68aea6b0782dc96a2e +export const NETWORK_PROFILES: { [key: string]: NetworkOptions } = { + DEFAULT: { DOWNLOAD: 5 * kB * sec, UPLOAD: 1 * kB * sec, LATENCY: 0.1 * sec }, + GPRS: { DOWNLOAD: 0.05 * kB * sec, UPLOAD: 0.02 * kB * sec, LATENCY: 0.5 * sec }, + MOBILE_EDGE: { DOWNLOAD: 0.24 * kB * sec, UPLOAD: 0.2 * kB * sec, LATENCY: 0.84 * sec }, + '2G_REGULAR': { DOWNLOAD: 0.25 * kB * sec, UPLOAD: 0.05 * kB * sec, LATENCY: 0.3 * sec }, + '2G_GOOD': { DOWNLOAD: 0.45 * kB * sec, UPLOAD: 0.15 * kB * sec, LATENCY: 0.15 * sec }, + '3G_SLOW': { DOWNLOAD: 0.78 * kB * sec, UPLOAD: 0.33 * kB * sec, LATENCY: 0.2 * sec }, + '3G_REGULAR': { DOWNLOAD: 0.75 * kB * sec, UPLOAD: 0.25 * kB * sec, LATENCY: 0.1 * sec }, + '3G_GOOD': { DOWNLOAD: 1.5 * kB * sec, UPLOAD: 0.75 * kB * sec, LATENCY: 0.04 * sec }, + '4G_REGULAR': { DOWNLOAD: 4 * kB * sec, UPLOAD: 3 * kB * sec, LATENCY: 0.02 * sec }, + DSL: { DOWNLOAD: 2 * kB * sec, UPLOAD: 1 * kB * sec, LATENCY: 0.005 * sec }, + CABLE_5MBPS: { DOWNLOAD: 5 * kB * sec, UPLOAD: 1 * kB * sec, LATENCY: 0.28 * sec }, + CABLE_8MBPS: { DOWNLOAD: 8 * kB * sec, UPLOAD: 2 * kB * sec, LATENCY: 0.1 * sec }, + WIFI: { DOWNLOAD: 30 * kB * sec, UPLOAD: 15 * kB * sec, LATENCY: 0.002 * sec }, +}; diff --git a/test/functional/services/remote/webdriver.ts b/test/functional/services/remote/webdriver.ts index 9ae848d95473a..84dfdf3c845f7 100644 --- a/test/functional/services/remote/webdriver.ts +++ b/test/functional/services/remote/webdriver.ts @@ -32,6 +32,7 @@ import { createStdoutSocket } from './create_stdout_stream'; import { preventParallelCalls } from './prevent_parallel_calls'; import { Browsers } from './browsers'; +import { NETWORK_PROFILES } from './network_profiles'; const throttleOption: string = process.env.TEST_THROTTLE_NETWORK as string; const headlessBrowser: string = process.env.TEST_BROWSER_HEADLESS as string; @@ -290,14 +291,30 @@ async function attemptToCreateCommand( const { session, consoleLog$ } = await buildDriverInstance(); if (throttleOption === '1' && browserType === 'chrome') { + const { KBN_NETWORK_TEST_PROFILE = 'DEFAULT' } = process.env; + + const profile = + KBN_NETWORK_TEST_PROFILE in Object.keys(NETWORK_PROFILES) + ? KBN_NETWORK_TEST_PROFILE + : 'DEFAULT'; + + const { + DOWNLOAD: downloadThroughput, + UPLOAD: uploadThroughput, + LATENCY: latency, + } = NETWORK_PROFILES[`${profile}`]; + // Only chrome supports this option. - log.debug('NETWORK THROTTLED: 768k down, 256k up, 100ms latency.'); + log.debug( + `NETWORK THROTTLED with profile ${profile}: ${downloadThroughput}kbps down, ${uploadThroughput}kbps up, ${latency} ms latency.` + ); - (session as any).setNetworkConditions({ + // @ts-expect-error + session.setNetworkConditions({ offline: false, - latency: 100, // Additional latency (ms). - download_throughput: 768 * 1024, // These speeds are in bites per second, not kilobytes. - upload_throughput: 256 * 1024, + latency, + download_throughput: downloadThroughput, + upload_throughput: uploadThroughput, }); } diff --git a/x-pack/test/performance/tests/home.ts b/x-pack/test/performance/tests/home.ts new file mode 100644 index 0000000000000..eda690b9b0a19 --- /dev/null +++ b/x-pack/test/performance/tests/home.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const PageObjects = getPageObjects(['common', 'security']); + const testSubjects = getService('testSubjects'); + + describe('Login', () => { + it('login and navigate to homepage', async () => { + await PageObjects.common.navigateToApp('login'); + + await testSubjects.existOrFail('loginSubmit', { timeout: 2000 }); + + await PageObjects.security.login(); + + await testSubjects.existOrFail('homeApp', { timeout: 2000 }); + }); + }); +} diff --git a/x-pack/test/performance/tests/index.ts b/x-pack/test/performance/tests/index.ts index b1023bde688e2..d784fa3031739 100644 --- a/x-pack/test/performance/tests/index.ts +++ b/x-pack/test/performance/tests/index.ts @@ -11,6 +11,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { describe('performance', function () { this.tags('ciGroup8'); - loadTestFile(require.resolve('./reporting_dashboard')); + loadTestFile(require.resolve('./home')); }); } diff --git a/x-pack/test/performance/tests/reporting_dashboard.ts b/x-pack/test/performance/tests/reporting_dashboard.ts index f363f8449df96..93b4010ab27a8 100644 --- a/x-pack/test/performance/tests/reporting_dashboard.ts +++ b/x-pack/test/performance/tests/reporting_dashboard.ts @@ -16,7 +16,7 @@ export default function ({ getService, getPageObject }: FtrProviderContext) { const dashboard = getPageObject('dashboard'); const reporting = getPageObject('reporting'); - describe('reporting dashbaord', () => { + describe('Reporting Dashboard', () => { before(async () => { await kibanaServer.importExport.load( 'x-pack/test/performance/kbn_archives/reporting_dashboard' From 3b1a76061c09347404288a7913178d1420aa3882 Mon Sep 17 00:00:00 2001 From: Esteban Beltran Date: Thu, 18 Nov 2021 14:53:12 -0500 Subject: [PATCH 046/114] [Security Solution] adds host isolation exceptions summary in fleet integration advance tab (#119029) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../fleet_event_filters_card.test.tsx | 8 +- .../components/fleet_event_filters_card.tsx | 4 +- ...et_host_isolation_exceptions_card.test.tsx | 110 +++++++++++++++ .../fleet_host_isolation_exceptions_card.tsx | 130 ++++++++++++++++++ .../fleet_trusted_apps_card.test.tsx | 8 +- .../components/fleet_trusted_apps_card.tsx | 2 +- .../fleet_trusted_apps_card_wrapper.tsx | 4 +- .../components/styled_components.tsx | 2 +- .../index.tsx | 5 +- .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - 11 files changed, 258 insertions(+), 19 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.test.tsx create mode 100644 x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.tsx diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx index 30c95472e4d6d..0981c775e961b 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx @@ -97,8 +97,8 @@ describe('Fleet event filters card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Event Filters')).not.toBeNull(); - expect(component.getByText('Manage event filters')).not.toBeNull(); + expect(component.getByText('Event filters')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); }); it('should render an error toast when api call fails', async () => { expect(addDanger).toBeCalledTimes(0); @@ -109,8 +109,8 @@ describe('Fleet event filters card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Event Filters')).not.toBeNull(); - expect(component.getByText('Manage event filters')).not.toBeNull(); + expect(component.getByText('Event filters')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); await reactTestingLibrary.waitFor(() => expect(addDanger).toBeCalledTimes(1)); }); }); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx index 41768f4be7d2e..7db76fee4efc5 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx @@ -95,7 +95,7 @@ export const FleetEventFiltersCard = memo(

@@ -115,7 +115,7 @@ export const FleetEventFiltersCard = memo( > diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.test.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.test.tsx new file mode 100644 index 0000000000000..ea1937c5a98d5 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.test.tsx @@ -0,0 +1,110 @@ +/* + * Copyright 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 { I18nProvider } from '@kbn/i18n/react'; +import * as reactTestingLibrary from '@testing-library/react'; +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import { GetExceptionSummaryResponse } from '../../../../../../../../common/endpoint/types'; +import { getMockTheme } from '../../../../../../../../public/common/lib/kibana/kibana_react.mock'; +import { useToasts } from '../../../../../../../common/lib/kibana'; +import { getHostIsolationExceptionSummary } from '../../../../../host_isolation_exceptions/service'; +import { FleetHostIsolationExceptionsCard } from './fleet_host_isolation_exceptions_card'; + +jest.mock('./exception_items_summary'); +jest.mock('../../../../../host_isolation_exceptions/service'); + +jest.mock('../../../../../../../../../../../src/plugins/kibana_react/public', () => { + const originalModule = jest.requireActual( + '../../../../../../../../../../../src/plugins/kibana_react/public' + ); + const useKibana = jest.fn().mockImplementation(() => ({ + services: { + http: {}, + data: {}, + notifications: {}, + application: { + getUrlForApp: jest.fn(), + }, + }, + })); + + return { + ...originalModule, + useKibana, + }; +}); + +jest.mock('../../../../../../../common/lib/kibana'); + +const mockTheme = getMockTheme({ + eui: { + paddingSizes: { m: '2' }, + }, +}); + +const getHostIsolationExceptionSummaryMock = getHostIsolationExceptionSummary as jest.Mock; +const useToastsMock = useToasts as jest.Mock; + +const summary: GetExceptionSummaryResponse = { + windows: 3, + linux: 2, + macos: 2, + total: 7, +}; + +describe('Fleet host isolation exceptions card filters card', () => { + let promise: Promise; + let addDanger: jest.Mock = jest.fn(); + const renderComponent: () => Promise = async () => { + const Wrapper: React.FC = ({ children }) => ( + + {children} + + ); + // @ts-expect-error TS2739 + const component = reactTestingLibrary.render(, { + wrapper: Wrapper, + }); + try { + // @ts-expect-error TS2769 + await reactTestingLibrary.act(() => promise); + } catch (err) { + return component; + } + return component; + }; + beforeAll(() => { + useToastsMock.mockImplementation(() => { + return { + addDanger, + }; + }); + }); + beforeEach(() => { + promise = Promise.resolve(summary); + addDanger = jest.fn(); + }); + afterEach(() => { + getHostIsolationExceptionSummaryMock.mockReset(); + }); + it('should render correctly', async () => { + getHostIsolationExceptionSummaryMock.mockReturnValueOnce(promise); + const component = await renderComponent(); + expect(component.getByText('Host isolation exceptions')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); + }); + it('should render an error toast when api call fails', async () => { + expect(addDanger).toBeCalledTimes(0); + promise = Promise.reject(new Error('error test')); + getHostIsolationExceptionSummaryMock.mockReturnValueOnce(promise); + const component = await renderComponent(); + expect(component.getByText('Host isolation exceptions')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); + await reactTestingLibrary.waitFor(() => expect(addDanger).toBeCalledTimes(1)); + }); +}); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.tsx new file mode 100644 index 0000000000000..535c0be4736cc --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.tsx @@ -0,0 +1,130 @@ +/* + * Copyright 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 { EuiPanel, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; +import React, { memo, useEffect, useMemo, useRef, useState } from 'react'; +import { INTEGRATIONS_PLUGIN_ID } from '../../../../../../../../../fleet/common'; +import { + PackageCustomExtensionComponentProps, + pagePathGetters, +} from '../../../../../../../../../fleet/public'; +import { + GetExceptionSummaryResponse, + ListPageRouteState, +} from '../../../../../../../../common/endpoint/types'; +import { useKibana, useToasts } from '../../../../../../../common/lib/kibana'; +import { useAppUrl } from '../../../../../../../common/lib/kibana/hooks'; +import { getHostIsolationExceptionsListPath } from '../../../../../../common/routing'; +import { getHostIsolationExceptionSummary } from '../../../../../host_isolation_exceptions/service'; +import { ExceptionItemsSummary } from './exception_items_summary'; +import { LinkWithIcon } from './link_with_icon'; +import { StyledEuiFlexGridGroup, StyledEuiFlexGridItem } from './styled_components'; + +export const FleetHostIsolationExceptionsCard = memo( + ({ pkgkey }) => { + const { getAppUrl } = useAppUrl(); + const { + services: { http }, + } = useKibana(); + const toasts = useToasts(); + const [stats, setStats] = useState(); + const hostIsolationExceptionsListUrlPath = getHostIsolationExceptionsListPath(); + const isMounted = useRef(); + + useEffect(() => { + isMounted.current = true; + const fetchStats = async () => { + try { + const summary = await getHostIsolationExceptionSummary(http); + if (isMounted.current) { + setStats(summary); + } + } catch (error) { + if (isMounted.current) { + toasts.addDanger( + i18n.translate( + 'xpack.securitySolution.endpoint.fleetCustomExtension.hostIsolationExceptionsSummary.error', + { + defaultMessage: + 'There was an error trying to fetch host isolation exceptions stats: "{error}"', + values: { error }, + } + ) + ); + } + } + }; + fetchStats(); + return () => { + isMounted.current = false; + }; + }, [http, toasts]); + + const hostIsolationExceptionsRouteState = useMemo(() => { + const fleetPackageCustomUrlPath = `#${ + pagePathGetters.integration_details_custom({ pkgkey })[1] + }`; + return { + backButtonLabel: i18n.translate( + 'xpack.securitySolution.endpoint.fleetCustomExtension.hostIsolationExceptionsSummary.backButtonLabel', + { defaultMessage: 'Back to Endpoint Integration' } + ), + onBackButtonNavigateTo: [ + INTEGRATIONS_PLUGIN_ID, + { + path: fleetPackageCustomUrlPath, + }, + ], + backButtonUrl: getAppUrl({ + appId: INTEGRATIONS_PLUGIN_ID, + path: fleetPackageCustomUrlPath, + }), + }; + }, [getAppUrl, pkgkey]); + + return ( + + + + +

+ +

+
+
+ + + + + <> + + + + + +
+
+ ); + } +); + +FleetHostIsolationExceptionsCard.displayName = 'FleetHostIsolationExceptionsCard'; diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx index c61f109c75a1e..1da2c41324f56 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx @@ -100,8 +100,8 @@ describe('Fleet trusted apps card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Trusted Applications')).not.toBeNull(); - expect(component.getByText('Manage trusted applications')).not.toBeNull(); + expect(component.getByText('Trusted applications')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); }); it('should render an error toast when api call fails', async () => { expect(addDanger).toBeCalledTimes(0); @@ -112,8 +112,8 @@ describe('Fleet trusted apps card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Trusted Applications')).not.toBeNull(); - expect(component.getByText('Manage trusted applications')).not.toBeNull(); + expect(component.getByText('Trusted applications')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); await reactTestingLibrary.waitFor(() => expect(addDanger).toBeCalledTimes(1)); }); }); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx index 54b1c37c7093f..680023cc6fd07 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx @@ -72,7 +72,7 @@ export const FleetTrustedAppsCard = memo( const getTitleMessage = () => ( ); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx index 5ac79a5dd5d5a..848a0916b1d2e 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx @@ -59,8 +59,8 @@ export const FleetTrustedAppsCardWrapper = memo ), diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx index ad1d823677f22..ce28b4ac6c1cc 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx @@ -9,7 +9,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; export const StyledEuiFlexGridGroup = styled(EuiFlexGroup)` display: grid; - grid-template-columns: 25% 45% 30%; + grid-template-columns: 33% 45% 22%; grid-template-areas: 'title summary link'; `; diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx index 0748a95f63c9f..d53fe308a90ec 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx @@ -8,8 +8,9 @@ import { EuiSpacer } from '@elastic/eui'; import React, { memo } from 'react'; import { PackageCustomExtensionComponentProps } from '../../../../../../../../fleet/public'; -import { FleetTrustedAppsCardWrapper } from './components/fleet_trusted_apps_card_wrapper'; import { FleetEventFiltersCard } from './components/fleet_event_filters_card'; +import { FleetHostIsolationExceptionsCard } from './components/fleet_host_isolation_exceptions_card'; +import { FleetTrustedAppsCardWrapper } from './components/fleet_trusted_apps_card_wrapper'; export const EndpointPackageCustomExtension = memo( (props) => { @@ -18,6 +19,8 @@ export const EndpointPackageCustomExtension = memo + +
); } diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a41fe672a34d0..9be504204ea6a 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -21413,8 +21413,6 @@ "xpack.securitySolution.endpoint.fleetCustomExtension.exceptionItemsSummary.macos": "Mac", "xpack.securitySolution.endpoint.fleetCustomExtension.exceptionItemsSummary.total": "合計", "xpack.securitySolution.endpoint.fleetCustomExtension.exceptionItemsSummary.windows": "Windows", - "xpack.securitySolution.endpoint.fleetCustomExtension.manageEventFiltersLinkLabel": "イベントフィルターの管理", - "xpack.securitySolution.endpoint.fleetCustomExtension.manageTrustedAppLinkLabel": "信頼できるアプリケーションを管理", "xpack.securitySolution.endpoint.fleetCustomExtension.trustedAppsLabel": "信頼できるアプリケーション", "xpack.securitySolution.endpoint.fleetCustomExtension.trustedAppsSummaryError": "信頼できるアプリ統計情報の取得中にエラーが発生しました:\"{error}\"", "xpack.securitySolution.endpoint.hostIsolation.cancel": "キャンセル", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index f293283fdedf2..095180ca86057 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -21750,8 +21750,6 @@ "xpack.securitySolution.endpoint.fleetCustomExtension.exceptionItemsSummary.macos": "Mac", "xpack.securitySolution.endpoint.fleetCustomExtension.exceptionItemsSummary.total": "合计", "xpack.securitySolution.endpoint.fleetCustomExtension.exceptionItemsSummary.windows": "Windows", - "xpack.securitySolution.endpoint.fleetCustomExtension.manageEventFiltersLinkLabel": "管理事件筛选", - "xpack.securitySolution.endpoint.fleetCustomExtension.manageTrustedAppLinkLabel": "管理受信任的应用程序", "xpack.securitySolution.endpoint.fleetCustomExtension.trustedAppsLabel": "受信任的应用程序", "xpack.securitySolution.endpoint.fleetCustomExtension.trustedAppsSummaryError": "尝试提取受信任应用统计时出错:“{error}”", "xpack.securitySolution.endpoint.hostIsolation.cancel": "取消", From 00cbc6324aaa5de1f07b715b7c6fabab811c2871 Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Thu, 18 Nov 2021 14:57:29 -0500 Subject: [PATCH 047/114] [Maps] Propagate http abort requests to Elasticsearch for mvt endpoints (#119043) --- .../plugins/maps/server/mvt/get_grid_tile.ts | 17 +++++++++----- x-pack/plugins/maps/server/mvt/get_tile.ts | 17 +++++++++----- x-pack/plugins/maps/server/mvt/mvt_routes.ts | 22 +++++++++---------- 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/x-pack/plugins/maps/server/mvt/get_grid_tile.ts b/x-pack/plugins/maps/server/mvt/get_grid_tile.ts index 86abff86081a6..59e3d791fd8a9 100644 --- a/x-pack/plugins/maps/server/mvt/get_grid_tile.ts +++ b/x-pack/plugins/maps/server/mvt/get_grid_tile.ts @@ -23,6 +23,7 @@ export async function getEsGridTile({ z, requestBody = {}, requestType = RENDER_AS.POINT, + abortController, }: { x: number; y: number; @@ -33,6 +34,7 @@ export async function getEsGridTile({ logger: Logger; requestBody: any; requestType: RENDER_AS.GRID | RENDER_AS.POINT; + abortController: AbortController; }): Promise { try { const path = `/${encodeURIComponent(index)}/_mvt/${geometryFieldName}/${z}/${x}/${y}`; @@ -47,11 +49,16 @@ export async function getEsGridTile({ fields: requestBody.fields, runtime_mappings: requestBody.runtime_mappings, }; - const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request({ - method: 'GET', - path, - body, - }); + const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request( + { + method: 'GET', + path, + body, + }, + { + signal: abortController.signal, + } + ); return tile.body as unknown as Buffer; } catch (e) { if (!isAbortError(e)) { diff --git a/x-pack/plugins/maps/server/mvt/get_tile.ts b/x-pack/plugins/maps/server/mvt/get_tile.ts index 0864b373af3f8..478b4343038e3 100644 --- a/x-pack/plugins/maps/server/mvt/get_tile.ts +++ b/x-pack/plugins/maps/server/mvt/get_tile.ts @@ -22,6 +22,7 @@ export async function getEsTile({ y, z, requestBody = {}, + abortController, }: { x: number; y: number; @@ -31,6 +32,7 @@ export async function getEsTile({ context: DataRequestHandlerContext; logger: Logger; requestBody: any; + abortController: AbortController; }): Promise { try { const path = `/${encodeURIComponent(index)}/_mvt/${geometryFieldName}/${z}/${x}/${y}`; @@ -45,11 +47,16 @@ export async function getEsTile({ runtime_mappings: requestBody.runtime_mappings, track_total_hits: requestBody.size + 1, }; - const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request({ - method: 'GET', - path, - body, - }); + const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request( + { + method: 'GET', + path, + body, + }, + { + signal: abortController.signal, + } + ); return tile.body as unknown as Buffer; } catch (e) { if (!isAbortError(e)) { diff --git a/x-pack/plugins/maps/server/mvt/mvt_routes.ts b/x-pack/plugins/maps/server/mvt/mvt_routes.ts index 3c61a47a383d6..317f62e50825e 100644 --- a/x-pack/plugins/maps/server/mvt/mvt_routes.ts +++ b/x-pack/plugins/maps/server/mvt/mvt_routes.ts @@ -10,8 +10,6 @@ import { schema } from '@kbn/config-schema'; import { KibanaRequest, KibanaResponseFactory, Logger } from 'src/core/server'; import { IRouter } from 'src/core/server'; import type { DataRequestHandlerContext } from 'src/plugins/data/server'; -// @ts-ignore not typed -import { AbortController } from 'abortcontroller-polyfill/dist/cjs-ponyfill'; import { MVT_GETTILE_API_PATH, API_ROOT_PATH, @@ -54,11 +52,10 @@ export function initMVTRoutes({ ) => { const { query, params } = request; - // todo - replace with direct abortion of raw transport request - // const abortController = new AbortController(); - // request.events.aborted$.subscribe(() => { - // abortController.abort(); - // }); + const abortController = new AbortController(); + request.events.aborted$.subscribe(() => { + abortController.abort(); + }); const requestBodyDSL = rison.decode(query.requestBody as string); @@ -71,6 +68,7 @@ export function initMVTRoutes({ z: parseInt((params as any).z, 10) as number, index: query.index as string, requestBody: requestBodyDSL as any, + abortController, }); return sendResponse(response, tile); @@ -102,11 +100,10 @@ export function initMVTRoutes({ ) => { const { query, params } = request; - // todo - replace with direct abortion of raw transport request - // const abortController = new AbortController(); - // request.events.aborted$.subscribe(() => { - // abortController.abort(); - // }); + const abortController = new AbortController(); + request.events.aborted$.subscribe(() => { + abortController.abort(); + }); const requestBodyDSL = rison.decode(query.requestBody as string); @@ -120,6 +117,7 @@ export function initMVTRoutes({ index: query.index as string, requestBody: requestBodyDSL as any, requestType: query.requestType as RENDER_AS.POINT | RENDER_AS.GRID, + abortController, }); return sendResponse(response, tile); From 293bde0df1fd3cd3e03528cadfcf492924d83e20 Mon Sep 17 00:00:00 2001 From: "Joey F. Poon" Date: Thu, 18 Nov 2021 14:11:06 -0600 Subject: [PATCH 048/114] [Security Solution] add new GET endpoint metadata list api (#118968) --- .../common/endpoint/types/index.ts | 21 +- .../endpoint/routes/metadata/handlers.ts | 124 +- .../server/endpoint/routes/metadata/index.ts | 44 +- .../endpoint/routes/metadata/metadata.test.ts | 1557 +++++++++++------ .../routes/metadata/query_builders.test.ts | 99 +- .../routes/metadata/query_builders.ts | 44 +- .../routes/metadata/support/agent_status.ts | 2 +- .../endpoint_metadata_service.test.ts | 20 +- .../metadata/endpoint_metadata_service.ts | 10 +- .../server/endpoint/types.ts | 10 - .../apis/metadata.ts | 1123 ++++++++---- 11 files changed, 2088 insertions(+), 966 deletions(-) diff --git a/x-pack/plugins/security_solution/common/endpoint/types/index.ts b/x-pack/plugins/security_solution/common/endpoint/types/index.ts index 2fee3e4c39d1d..2dc4f49919ef7 100644 --- a/x-pack/plugins/security_solution/common/endpoint/types/index.ts +++ b/x-pack/plugins/security_solution/common/endpoint/types/index.ts @@ -177,7 +177,7 @@ export interface ResolverPaginatedEvents { } /** - * Returned by the server via /api/endpoint/metadata + * Returned by the server via POST /api/endpoint/metadata */ export interface HostResultList { /* the hosts restricted by the page size */ @@ -1231,3 +1231,22 @@ export interface ListPageRouteState { /** The label for the button */ backButtonLabel?: string; } + +/** + * REST API standard base response for list types + */ +export interface BaseListResponse { + data: unknown[]; + page: number; + pageSize: number; + total: number; + sort?: string; + sortOrder?: 'asc' | 'desc'; +} + +/** + * Returned by the server via GET /api/endpoint/metadata + */ +export interface MetadataListResponse extends BaseListResponse { + data: HostInfo[]; +} diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts index 384fde6c7ceac..8b0e5abad228b 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts @@ -11,7 +11,6 @@ import { TypeOf } from '@kbn/config-schema'; import { IKibanaResponse, IScopedClusterClient, - KibanaRequest, KibanaResponseFactory, Logger, RequestHandler, @@ -22,6 +21,7 @@ import { HostMetadata, HostResultList, HostStatus, + MetadataListResponse, } from '../../../../common/endpoint/types'; import type { SecuritySolutionRequestHandlerContext } from '../../../types'; @@ -33,7 +33,11 @@ import { import { Agent, PackagePolicy } from '../../../../../fleet/common/types/models'; import { AgentNotFoundError } from '../../../../../fleet/server'; import { EndpointAppContext, HostListQueryResult } from '../../types'; -import { GetMetadataListRequestSchema, GetMetadataRequestSchema } from './index'; +import { + GetMetadataListRequestSchema, + GetMetadataListRequestSchemaV2, + GetMetadataRequestSchema, +} from './index'; import { findAllUnenrolledAgentIds } from './support/unenroll'; import { getAllEndpointPackagePolicies } from './support/endpoint_package_policies'; import { findAgentIdsByStatus } from './support/agent_status'; @@ -125,33 +129,35 @@ export const getMetadataListRequestHandler = function ( context.core.savedObjects.client ); - body = await legacyListMetadataQuery( - context, - request, - endpointAppContext, - logger, - endpointPolicies - ); + const pagingProperties = await getPagingProperties(request, endpointAppContext); + + body = await legacyListMetadataQuery(context, endpointAppContext, logger, endpointPolicies, { + page: pagingProperties.pageIndex, + pageSize: pagingProperties.pageSize, + kuery: request?.body?.filters?.kql || '', + hostStatuses: request?.body?.filters?.host_status || [], + }); return response.ok({ body }); } // Unified index is installed and being used - perform search using new approach try { const pagingProperties = await getPagingProperties(request, endpointAppContext); - const { data, page, total, pageSize } = await endpointMetadataService.getHostMetadataList( + const { data, total } = await endpointMetadataService.getHostMetadataList( context.core.elasticsearch.client.asCurrentUser, { - page: pagingProperties.pageIndex + 1, + page: pagingProperties.pageIndex, pageSize: pagingProperties.pageSize, - filters: request.body?.filters || {}, + hostStatuses: request.body?.filters.host_status || [], + kuery: request.body?.filters.kql || '', } ); body = { hosts: data, - request_page_index: page - 1, total, - request_page_size: pageSize, + request_page_index: pagingProperties.pageIndex * pagingProperties.pageSize, + request_page_size: pagingProperties.pageSize, }; } catch (error) { return errorHandler(logger, response, error); @@ -161,6 +167,83 @@ export const getMetadataListRequestHandler = function ( }; }; +export function getMetadataListRequestHandlerV2( + endpointAppContext: EndpointAppContext, + logger: Logger +): RequestHandler< + unknown, + TypeOf, + unknown, + SecuritySolutionRequestHandlerContext +> { + return async (context, request, response) => { + const endpointMetadataService = endpointAppContext.service.getEndpointMetadataService(); + if (!endpointMetadataService) { + throw new EndpointError('endpoint metadata service not available'); + } + + let doesUnitedIndexExist = false; + let didUnitedIndexError = false; + let body: MetadataListResponse = { + data: [], + total: 0, + page: 0, + pageSize: 0, + }; + + try { + doesUnitedIndexExist = await endpointMetadataService.doesUnitedIndexExist( + context.core.elasticsearch.client.asCurrentUser + ); + } catch (error) { + // for better UX, try legacy query instead of immediately failing on united index error + didUnitedIndexError = true; + } + + // If no unified Index present, then perform a search using the legacy approach + if (!doesUnitedIndexExist || didUnitedIndexError) { + const endpointPolicies = await getAllEndpointPackagePolicies( + endpointAppContext.service.getPackagePolicyService(), + context.core.savedObjects.client + ); + + const legacyResponse = await legacyListMetadataQuery( + context, + endpointAppContext, + logger, + endpointPolicies, + request.query + ); + body = { + data: legacyResponse.hosts, + total: legacyResponse.total, + page: request.query.page, + pageSize: request.query.pageSize, + }; + return response.ok({ body }); + } + + // Unified index is installed and being used - perform search using new approach + try { + const { data, total } = await endpointMetadataService.getHostMetadataList( + context.core.elasticsearch.client.asCurrentUser, + request.query + ); + + body = { + data, + total, + page: request.query.page, + pageSize: request.query.pageSize, + }; + } catch (error) { + return errorHandler(logger, response, error); + } + + return response.ok({ body }); + }; +} + export const getMetadataRequestHandler = function ( endpointAppContext: EndpointAppContext, logger: Logger @@ -420,11 +503,10 @@ export async function enrichHostMetadata( async function legacyListMetadataQuery( context: SecuritySolutionRequestHandlerContext, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - request: KibanaRequest, endpointAppContext: EndpointAppContext, logger: Logger, - endpointPolicies: PackagePolicy[] + endpointPolicies: PackagePolicy[], + queryOptions: TypeOf ): Promise { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const agentService = endpointAppContext.service.getAgentService()!; @@ -447,14 +529,16 @@ async function legacyListMetadataQuery( endpointPolicyIds ); - const statusesToFilter = request?.body?.filters?.host_status ?? []; const statusAgentIds = await findAgentIdsByStatus( agentService, context.core.elasticsearch.client.asCurrentUser, - statusesToFilter + queryOptions.hostStatuses ); - const queryParams = await kibanaRequestToMetadataListESQuery(request, endpointAppContext, { + const queryParams = await kibanaRequestToMetadataListESQuery({ + page: queryOptions.page, + pageSize: queryOptions.pageSize, + kuery: queryOptions.kuery, unenrolledAgentIds, statusAgentIds, }); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts index d9c3e6c195307..5ea465aa21799 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts @@ -9,7 +9,12 @@ import { schema } from '@kbn/config-schema'; import { HostStatus } from '../../../../common/endpoint/types'; import { EndpointAppContext } from '../../types'; -import { getLogger, getMetadataListRequestHandler, getMetadataRequestHandler } from './handlers'; +import { + getLogger, + getMetadataListRequestHandler, + getMetadataRequestHandler, + getMetadataListRequestHandlerV2, +} from './handlers'; import type { SecuritySolutionPluginRouter } from '../../../types'; import { HOST_METADATA_GET_ROUTE, @@ -60,27 +65,54 @@ export const GetMetadataListRequestSchema = { ), }; +export const GetMetadataListRequestSchemaV2 = { + query: schema.object({ + page: schema.number({ defaultValue: 0 }), + pageSize: schema.number({ defaultValue: 10, min: 1, max: 10000 }), + kuery: schema.maybe(schema.string()), + hostStatuses: schema.arrayOf( + schema.oneOf([ + schema.literal(HostStatus.HEALTHY.toString()), + schema.literal(HostStatus.OFFLINE.toString()), + schema.literal(HostStatus.UPDATING.toString()), + schema.literal(HostStatus.UNHEALTHY.toString()), + schema.literal(HostStatus.INACTIVE.toString()), + ]), + { defaultValue: [] } + ), + }), +}; + export function registerEndpointRoutes( router: SecuritySolutionPluginRouter, endpointAppContext: EndpointAppContext ) { const logger = getLogger(endpointAppContext); - router.post( + router.get( { - path: `${HOST_METADATA_LIST_ROUTE}`, - validate: GetMetadataListRequestSchema, + path: HOST_METADATA_LIST_ROUTE, + validate: GetMetadataListRequestSchemaV2, options: { authRequired: true, tags: ['access:securitySolution'] }, }, - getMetadataListRequestHandler(endpointAppContext, logger) + getMetadataListRequestHandlerV2(endpointAppContext, logger) ); router.get( { - path: `${HOST_METADATA_GET_ROUTE}`, + path: HOST_METADATA_GET_ROUTE, validate: GetMetadataRequestSchema, options: { authRequired: true, tags: ['access:securitySolution'] }, }, getMetadataRequestHandler(endpointAppContext, logger) ); + + router.post( + { + path: HOST_METADATA_LIST_ROUTE, + validate: GetMetadataListRequestSchema, + options: { authRequired: true, tags: ['access:securitySolution'] }, + }, + getMetadataListRequestHandler(endpointAppContext, logger) + ); } diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts index c0be1c7530cb4..c1dfee0252b38 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts @@ -18,7 +18,12 @@ import { loggingSystemMock, savedObjectsClientMock, } from '../../../../../../../src/core/server/mocks'; -import { HostInfo, HostResultList, HostStatus } from '../../../../common/endpoint/types'; +import { + HostInfo, + HostResultList, + HostStatus, + MetadataListResponse, +} from '../../../../common/endpoint/types'; import { parseExperimentalConfigValue } from '../../../../common/experimental_features'; import { registerEndpointRoutes } from './index'; import { @@ -40,6 +45,7 @@ import { } from './support/test_support'; import { PackageService } from '../../../../../fleet/server/services'; import { + HOST_METADATA_GET_ROUTE, HOST_METADATA_LIST_ROUTE, metadataCurrentIndexPattern, metadataTransformPrefix, @@ -64,7 +70,7 @@ class IndexNotFoundException extends Error { } } -describe('test endpoint route', () => { +describe('test endpoint routes', () => { let routerMock: jest.Mocked; let mockResponse: jest.Mocked; let mockClusterClient: ClusterClientMock; @@ -113,552 +119,616 @@ describe('test endpoint route', () => { }); }); - describe('with .metrics-endpoint.metadata_united_default index', () => { - beforeEach(() => { - endpointAppContextService = new EndpointAppContextService(); - mockPackageService = createMockPackageService(); - mockPackageService.getInstallation.mockReturnValue( - Promise.resolve({ - installed_kibana: [], - package_assets: [], - es_index_patterns: {}, - name: '', - version: '', - install_status: 'installed', - install_version: '', - install_started_at: '', - install_source: 'registry', - installed_es: [ - { - id: 'logs-endpoint.events.security', - type: ElasticsearchAssetType.indexTemplate, - }, - { - id: `${metadataTransformPrefix}-0.16.0-dev.0`, - type: ElasticsearchAssetType.transform, - }, - ], - keep_policies_up_to_date: false, - }) - ); - endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); - endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); - mockAgentService = startContract.agentService!; - mockAgentPolicyService = startContract.agentPolicyService!; + describe('POST list endpoints route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) + ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; + mockAgentPolicyService = startContract.agentPolicyService!; - registerEndpointRoutes(routerMock, { - logFactory: loggingSystemMock.create(), - service: endpointAppContextService, - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); }); - }); - afterEach(() => endpointAppContextService.stop()); + afterEach(() => endpointAppContextService.stop()); - it('should fallback to legacy index if index not found', async () => { - const mockRequest = httpServerMock.createKibanaRequest({}); - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => Promise.resolve({ body: response })); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + it('should fallback to legacy index if index not found', async () => { + const mockRequest = httpServerMock.createKibanaRequest({}); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - const esSearchMock = mockScopedClient.asCurrentUser.search; - // should be called twice, united index first, then legacy index - expect(esSearchMock).toHaveBeenCalledTimes(2); - expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); - expect(esSearchMock.mock.calls[1][0]?.index).toEqual(metadataCurrentIndexPattern); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + const esSearchMock = mockScopedClient.asCurrentUser.search; + // should be called twice, united index first, then legacy index + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(metadataCurrentIndexPattern); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(0); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(0); - expect(endpointResultList.request_page_size).toEqual(10); - }); - it('should return expected metadata', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 0, - }, - ], + it('should return expected metadata', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + body: { + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 0, + }, + ], - filters: { - kql: 'not host.ip:10.140.73.246', - host_status: ['updating'], + filters: { + kql: 'not host.ip:10.140.73.246', + host_status: ['updating'], + }, }, - }, - }); + }); - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - mockAgentPolicyService.getByIds = jest.fn().mockResolvedValueOnce([]); - const metadata = new EndpointDocGenerator().generateHostMetadata(); - const esSearchMock = mockScopedClient.asCurrentUser.search as jest.Mock; - esSearchMock.mockResolvedValueOnce({}); - esSearchMock.mockResolvedValueOnce({ - body: unitedMetadataSearchResponseMock(metadata), - }); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + mockAgentPolicyService.getByIds = jest.fn().mockResolvedValueOnce([]); + const metadata = new EndpointDocGenerator().generateHostMetadata(); + const esSearchMock = mockScopedClient.asCurrentUser.search as jest.Mock; + esSearchMock.mockResolvedValueOnce({}); + esSearchMock.mockResolvedValueOnce({ + body: unitedMetadataSearchResponseMock(metadata), + }); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - expect(esSearchMock).toHaveBeenCalledTimes(2); - expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); - expect(esSearchMock.mock.calls[0][0]?.size).toEqual(1); - expect(esSearchMock.mock.calls[1][0]?.index).toEqual(METADATA_UNITED_INDEX); - expect(esSearchMock.mock.calls[1][0]?.body?.query).toEqual({ - bool: { - must: [ - { - bool: { - filter: [ - { - terms: { - 'united.agent.policy_id': [], + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[0][0]?.size).toEqual(1); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.body?.query).toEqual({ + bool: { + must: [ + { + bool: { + filter: [ + { + terms: { + 'united.agent.policy_id': [], + }, }, - }, - { - exists: { - field: 'united.endpoint.agent.id', + { + exists: { + field: 'united.endpoint.agent.id', + }, }, - }, - { - exists: { - field: 'united.agent.agent.id', + { + exists: { + field: 'united.agent.agent.id', + }, }, - }, - { - term: { - 'united.agent.active': { - value: true, + { + term: { + 'united.agent.active': { + value: true, + }, }, }, - }, - ], - must_not: { - terms: { - 'agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', - ], + ], + must_not: { + terms: { + 'agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, }, }, }, - }, - { - bool: { - should: [ - { - bool: { - filter: [ - { + { + bool: { + should: [ + { + bool: { + filter: [ + { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgrade_started_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgraded_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + ], + }, + }, + { + bool: { + must_not: { bool: { should: [ { exists: { - field: 'united.agent.upgrade_started_at', + field: 'united.agent.last_checkin', }, }, ], minimum_should_match: 1, }, }, - { - bool: { - must_not: { - bool: { - should: [ - { - exists: { - field: 'united.agent.upgraded_at', - }, - }, - ], - minimum_should_match: 1, - }, - }, - }, - }, - ], + }, }, - }, - { - bool: { - must_not: { - bool: { - should: [ - { - exists: { - field: 'united.agent.last_checkin', - }, + { + bool: { + should: [ + { + exists: { + field: 'united.agent.unenrollment_started_at', }, - ], - minimum_should_match: 1, - }, + }, + ], + minimum_should_match: 1, }, }, - }, - { + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { bool: { should: [ { - exists: { - field: 'united.agent.unenrollment_started_at', + match: { + 'host.ip': '10.140.73.246', }, }, ], minimum_should_match: 1, }, }, - ], - minimum_should_match: 1, - }, - }, - { - bool: { - must_not: { - bool: { - should: [ - { - match: { - 'host.ip': '10.140.73.246', - }, - }, - ], - minimum_should_match: 1, - }, }, }, - }, - ], - }, - }); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.hosts[0].metadata).toEqual(metadata); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(0); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.hosts[0].metadata).toEqual(metadata); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(0); - expect(endpointResultList.request_page_size).toEqual(10); }); - }); - describe('with metrics-endpoint.metadata_current_default index', () => { - beforeEach(() => { - endpointAppContextService = new EndpointAppContextService(); - mockPackageService = createMockPackageService(); - mockPackageService.getInstallation.mockReturnValue( - Promise.resolve({ - installed_kibana: [], - package_assets: [], - es_index_patterns: {}, - name: '', - version: '', - install_status: 'installed', - install_version: '', - install_started_at: '', - install_source: 'registry', - installed_es: [ - { - id: 'logs-endpoint.events.security', - type: ElasticsearchAssetType.indexTemplate, - }, - { - id: `${metadataTransformPrefix}-0.16.0-dev.0`, - type: ElasticsearchAssetType.transform, - }, - ], - keep_policies_up_to_date: false, - }) - ); - endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); - endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); - mockAgentService = startContract.agentService!; + describe('with metrics-endpoint.metadata_current_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) + ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; - registerEndpointRoutes(routerMock, { - logFactory: loggingSystemMock.create(), - service: endpointAppContextService, - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); }); - }); - afterEach(() => endpointAppContextService.stop()); + afterEach(() => endpointAppContextService.stop()); - it('test find the latest of all endpoints', async () => { - const mockRequest = httpServerMock.createKibanaRequest({}); - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => Promise.resolve({ body: response })); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + it('test find the latest of all endpoints', async () => { + const mockRequest = httpServerMock.createKibanaRequest({}); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], - }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(0); - expect(endpointResultList.request_page_size).toEqual(10); - }); - - it('test find the latest of all endpoints with paging properties', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 1, - }, - ], - }, + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(0); + expect(endpointResultList.request_page_size).toEqual(10); }); - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => - Promise.resolve({ - body: legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ), + it('test find the latest of all endpoints with paging properties', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + body: { + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 1, + }, + ], + }, + }); + + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); }) - ); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); - expect( - (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool - .must_not - ).toContainEqual({ - terms: { - 'elastic.agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', - ], - }, - }); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must_not + ).toContainEqual({ + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(10); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(10); - expect(endpointResultList.request_page_size).toEqual(10); - }); - it('test find the latest of all endpoints with paging and filters properties', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 1, - }, - ], + it('test find the latest of all endpoints with paging and filters properties', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + body: { + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 1, + }, + ], - filters: { kql: 'not host.ip:10.140.73.246' }, - }, - }); + filters: { kql: 'not host.ip:10.140.73.246' }, + }, + }); - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => - Promise.resolve({ - body: legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ), + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); }) - ); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - expect(mockScopedClient.asCurrentUser.search).toBeCalled(); - expect( - // KQL filter to be passed through - (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool.must - ).toContainEqual({ - bool: { - must_not: { - bool: { - should: [ - { - match: { - 'host.ip': '10.140.73.246', + expect(mockScopedClient.asCurrentUser.search).toBeCalled(); + expect( + // KQL filter to be passed through + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: { + bool: { + should: [ + { + match: { + 'host.ip': '10.140.73.246', + }, }, - }, - ], - minimum_should_match: 1, - }, - }, - }, - }); - expect( - (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool.must - ).toContainEqual({ - bool: { - must_not: [ - { - terms: { - 'elastic.agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', ], + minimum_should_match: 1, }, }, - { - terms: { - // here we DO want to see both schemas are present - // to make this schema-compatible forward and back - 'HostDetails.elastic.agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', - ], + }, + }); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: [ + { + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, }, - }, - ], - }, - }); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + { + terms: { + // here we DO want to see both schemas are present + // to make this schema-compatible forward and back + 'HostDetails.elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(10); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(10); - expect(endpointResultList.request_page_size).toEqual(10); }); + }); - describe('Endpoint Details route', () => { - it('should return 404 on no results', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ params: { id: 'BADID' } }); - - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: legacyMetadataSearchResponseMock() }) + describe('GET list endpoints route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; + mockAgentPolicyService = startContract.agentPolicyService!; - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.getAgent = jest.fn().mockReturnValue({ - active: true, - } as unknown as Agent); + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); + }); + + afterEach(() => endpointAppContextService.stop()); + it('should fallback to legacy index if index not found', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + query: { + page: 0, + pageSize: 10, + }, + }); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); await routeHandler( createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), mockRequest, mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + const esSearchMock = mockScopedClient.asCurrentUser.search; + // should be called twice, united index first, then legacy index + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(metadataCurrentIndexPattern); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); - expect(mockResponse.notFound).toBeCalled(); - const message = mockResponse.notFound.mock.calls[0][0]?.body; - expect(message).toBeInstanceOf(EndpointHostNotFoundError); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(0); + expect(endpointResultList.pageSize).toEqual(10); }); - it('should return a single endpoint with status healthy', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); + it('should return expected metadata', async () => { const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + query: { + page: 0, + pageSize: 10, + hostStatuses: ['updating'], + kuery: 'not host.ip:10.140.73.246', + }, }); - mockAgentService.getAgent = jest - .fn() - .mockReturnValue(agentGenerator.generate({ status: 'online' })); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) - ); - + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + mockAgentPolicyService.getByIds = jest.fn().mockResolvedValueOnce([]); + const metadata = new EndpointDocGenerator().generateHostMetadata(); + const esSearchMock = mockScopedClient.asCurrentUser.search as jest.Mock; + esSearchMock.mockResolvedValueOnce({}); + esSearchMock.mockResolvedValueOnce({ + body: unitedMetadataSearchResponseMock(metadata), + }); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; await routeHandler( @@ -667,74 +737,255 @@ describe('test endpoint route', () => { mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[0][0]?.size).toEqual(1); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.body?.query).toEqual({ + bool: { + must: [ + { + bool: { + filter: [ + { + terms: { + 'united.agent.policy_id': [], + }, + }, + { + exists: { + field: 'united.endpoint.agent.id', + }, + }, + { + exists: { + field: 'united.agent.agent.id', + }, + }, + { + term: { + 'united.agent.active': { + value: true, + }, + }, + }, + ], + must_not: { + terms: { + 'agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + }, + }, + { + bool: { + should: [ + { + bool: { + filter: [ + { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgrade_started_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgraded_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + ], + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + exists: { + field: 'united.agent.last_checkin', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + { + bool: { + should: [ + { + exists: { + field: 'united.agent.unenrollment_started_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + match: { + 'host.ip': '10.140.73.246', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + ], + }, + }); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); expect(mockResponse.ok).toBeCalled(); - const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result).toHaveProperty('metadata.Endpoint'); - expect(result.host_status).toEqual(HostStatus.HEALTHY); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.data[0].metadata).toEqual(metadata); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(0); + expect(endpointResultList.pageSize).toEqual(10); }); + }); - it('should return a single endpoint with status unhealthy when AgentService throw 404', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() + describe('with metrics-endpoint.metadata_current_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; - const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), }); + }); - mockAgentService.getAgent = jest - .fn() - .mockRejectedValue(new AgentNotFoundError('not found')); + afterEach(() => endpointAppContextService.stop()); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) + it('test find the latest of all endpoints', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + query: { + page: 0, + pageSize: 10, + }, + }); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() ); - + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; - + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); await routeHandler( createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), mockRequest, mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); expect(mockResponse.ok).toBeCalled(); - const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(0); + expect(endpointResultList.pageSize).toEqual(10); }); - it('should return a single endpoint with status unhealthy when status is not offline, online or enrolling', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - + it('test find the latest of all endpoints with paging properties', async () => { const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + query: { + page: 1, + pageSize: 10, + }, }); - mockAgentService.getAgent = jest.fn().mockReturnValue( - agentGenerator.generate({ - status: 'error', + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); }) - ); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) - ); - + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; await routeHandler( @@ -742,34 +993,54 @@ describe('test endpoint route', () => { mockRequest, mockResponse ); - - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must_not + ).toContainEqual({ + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); expect(mockResponse.ok).toBeCalled(); - const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(1); + expect(endpointResultList.pageSize).toEqual(10); }); - it('should throw error when endpoint agent is not active', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - + it('test find the latest of all endpoints with paging and filters properties', async () => { const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + query: { + page: 1, + pageSize: 10, + kuery: 'not host.ip:10.140.73.246', + }, }); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) - ); - mockAgentService.getAgent = jest.fn().mockReturnValue({ - active: false, - } as unknown as Agent); + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; await routeHandler( @@ -778,9 +1049,277 @@ describe('test endpoint route', () => { mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); - expect(mockResponse.badRequest).toBeCalled(); + expect(mockScopedClient.asCurrentUser.search).toBeCalled(); + expect( + // KQL filter to be passed through + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: { + bool: { + should: [ + { + match: { + 'host.ip': '10.140.73.246', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: [ + { + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + { + terms: { + // here we DO want to see both schemas are present + // to make this schema-compatible forward and back + 'HostDetails.elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(1); + expect(endpointResultList.pageSize).toEqual(10); + }); + }); + }); + + describe('GET endpoint details route', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) + ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; + + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); + }); + + afterEach(() => endpointAppContextService.stop()); + + it('should return 404 on no results', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ params: { id: 'BADID' } }); + + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: legacyMetadataSearchResponseMock() }) + ); + + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.getAgent = jest.fn().mockReturnValue({ + active: true, + } as unknown as Agent); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.notFound).toBeCalled(); + const message = mockResponse.notFound.mock.calls[0][0]?.body; + expect(message).toBeInstanceOf(EndpointHostNotFoundError); + }); + + it('should return a single endpoint with status healthy', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, }); + + mockAgentService.getAgent = jest + .fn() + .mockReturnValue(agentGenerator.generate({ status: 'online' })); + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; + expect(result).toHaveProperty('metadata.Endpoint'); + expect(result.host_status).toEqual(HostStatus.HEALTHY); + }); + + it('should return a single endpoint with status unhealthy when AgentService throw 404', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, + }); + + mockAgentService.getAgent = jest.fn().mockRejectedValue(new AgentNotFoundError('not found')); + + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + }); + + it('should return a single endpoint with status unhealthy when status is not offline, online or enrolling', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, + }); + + mockAgentService.getAgent = jest.fn().mockReturnValue( + agentGenerator.generate({ + status: 'error', + }) + ); + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + }); + + it('should throw error when endpoint agent is not active', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, + }); + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + mockAgentService.getAgent = jest.fn().mockReturnValue({ + active: false, + } as unknown as Agent); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(mockResponse.badRequest).toBeCalled(); }); }); }); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts index a0cb5aad552d2..0a8f2616c516f 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts @@ -5,39 +5,35 @@ * 2.0. */ -import { httpServerMock, loggingSystemMock } from '../../../../../../../src/core/server/mocks'; import { kibanaRequestToMetadataListESQuery, getESQueryHostMetadataByID, buildUnitedIndexQuery, } from './query_builders'; -import { EndpointAppContextService } from '../../endpoint_app_context_services'; -import { createMockConfig } from '../../../lib/detection_engine/routes/__mocks__'; import { metadataCurrentIndexPattern } from '../../../../common/endpoint/constants'; -import { parseExperimentalConfigValue } from '../../../../common/experimental_features'; import { get } from 'lodash'; import { expectedCompleteUnitedIndexQuery } from './query_builders.fixtures'; describe('query builder', () => { describe('MetadataListESQuery', () => { it('queries the correct index', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ body: {} }); - const query = await kibanaRequestToMetadataListESQuery(mockRequest, { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: '', + unenrolledAgentIds: [], + statusAgentIds: [], }); expect(query.index).toEqual(metadataCurrentIndexPattern); }); it('sorts using *event.created', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ body: {} }); - const query = await kibanaRequestToMetadataListESQuery(mockRequest, { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: '', + unenrolledAgentIds: [], + statusAgentIds: [], }); expect(query.body.sort).toContainEqual({ 'event.created': { @@ -55,21 +51,13 @@ describe('query builder', () => { it('excludes unenrolled elastic agents when they exist, by default', async () => { const unenrolledElasticAgentId = '1fdca33f-799f-49f4-939c-ea4383c77672'; - const mockRequest = httpServerMock.createKibanaRequest({ - body: {}, + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: '', + unenrolledAgentIds: [unenrolledElasticAgentId], + statusAgentIds: [], }); - const query = await kibanaRequestToMetadataListESQuery( - mockRequest, - { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), - }, - { - unenrolledAgentIds: [unenrolledElasticAgentId], - } - ); expect(query.body.query).toEqual({ bool: { @@ -100,16 +88,12 @@ describe('query builder', () => { describe('test query builder with kql filter', () => { it('test default query params for all endpoints metadata when body filter is provided', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - filters: { kql: 'not host.ip:10.140.73.246' }, - }, - }); - const query = await kibanaRequestToMetadataListESQuery(mockRequest, { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: 'not host.ip:10.140.73.246', + unenrolledAgentIds: [], + statusAgentIds: [], }); expect(query.body.query.bool.must).toContainEqual({ @@ -135,25 +119,13 @@ describe('query builder', () => { 'and when body filter is provided', async () => { const unenrolledElasticAgentId = '1fdca33f-799f-49f4-939c-ea4383c77672'; - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - filters: { kql: 'not host.ip:10.140.73.246' }, - }, + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: 'not host.ip:10.140.73.246', + unenrolledAgentIds: [unenrolledElasticAgentId], + statusAgentIds: [], }); - const query = await kibanaRequestToMetadataListESQuery( - mockRequest, - { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue( - createMockConfig().enableExperimental - ), - }, - { - unenrolledAgentIds: [unenrolledElasticAgentId], - } - ); expect(query.body.query.bool.must).toEqual([ { @@ -222,7 +194,10 @@ describe('query builder', () => { describe('buildUnitedIndexQuery', () => { it('correctly builds empty query', async () => { - const query = await buildUnitedIndexQuery({ page: 1, pageSize: 10, filters: {} }, []); + const query = await buildUnitedIndexQuery( + { page: 1, pageSize: 10, hostStatuses: [], kuery: '' }, + [] + ); const expected = { bool: { must_not: { @@ -267,10 +242,8 @@ describe('query builder', () => { { page: 1, pageSize: 10, - filters: { - kql: 'united.endpoint.host.os.name : *', - host_status: ['healthy'], - }, + kuery: 'united.endpoint.host.os.name : *', + hostStatuses: ['healthy'], }, ['test-endpoint-policy-id'] ); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts index 73325a92a3324..2262028ec43bf 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts @@ -6,14 +6,16 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { TypeOf } from '@kbn/config-schema'; import { fromKueryExpression, toElasticsearchQuery } from '@kbn/es-query'; import { metadataCurrentIndexPattern, METADATA_UNITED_INDEX, } from '../../../../common/endpoint/constants'; import { KibanaRequest } from '../../../../../../../src/core/server'; -import { EndpointAppContext, GetHostMetadataListQuery } from '../../types'; +import { EndpointAppContext } from '../../types'; import { buildStatusesKuery } from './support/agent_status'; +import { GetMetadataListRequestSchemaV2 } from '.'; /** * 00000000-0000-0000-0000-000000000000 is initial Elastic Agent id sent by Endpoint before policy is configured @@ -25,6 +27,9 @@ const IGNORED_ELASTIC_AGENT_IDS = [ ]; export interface QueryBuilderOptions { + page: number; + pageSize: number; + kuery?: string; unenrolledAgentIds?: string[]; statusAgentIds?: string[]; } @@ -50,26 +55,21 @@ export const MetadataSortMethod: estypes.SearchSortContainer[] = [ ]; export async function kibanaRequestToMetadataListESQuery( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - request: KibanaRequest, - endpointAppContext: EndpointAppContext, - queryBuilderOptions?: QueryBuilderOptions + queryBuilderOptions: QueryBuilderOptions // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise> { - const pagingProperties = await getPagingProperties(request, endpointAppContext); - return { body: { query: buildQueryBody( - request, + queryBuilderOptions?.kuery, IGNORED_ELASTIC_AGENT_IDS.concat(queryBuilderOptions?.unenrolledAgentIds ?? []), queryBuilderOptions?.statusAgentIds ), track_total_hits: true, sort: MetadataSortMethod, }, - from: pagingProperties.pageIndex * pagingProperties.pageSize, - size: pagingProperties.pageSize, + from: queryBuilderOptions.page * queryBuilderOptions.pageSize, + size: queryBuilderOptions.pageSize, index: metadataCurrentIndexPattern, }; } @@ -96,8 +96,7 @@ export async function getPagingProperties( } function buildQueryBody( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - request: KibanaRequest, + kuery: string = '', unerolledAgentIds: string[] | undefined, statusAgentIds: string[] | undefined // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -136,8 +135,8 @@ function buildQueryBody( }, }; - if (request?.body?.filters?.kql) { - const kqlQuery = toElasticsearchQuery(fromKueryExpression(request.body.filters.kql)); + if (kuery) { + const kqlQuery = toElasticsearchQuery(fromKueryExpression(kuery)); const q = []; if (filterUnenrolledAgents || filterStatusAgents) { q.push(idFilter); @@ -233,12 +232,17 @@ interface BuildUnitedIndexQueryResponse { size: number; index: string; } + export async function buildUnitedIndexQuery( - { page = 1, pageSize = 10, filters = {} }: GetHostMetadataListQuery, + { + page = 0, + pageSize = 10, + hostStatuses = [], + kuery = '', + }: TypeOf, endpointPolicyIds: string[] = [] ): Promise { - const statusesToFilter = filters?.host_status ?? []; - const statusesKuery = buildStatusesKuery(statusesToFilter); + const statusesKuery = buildStatusesKuery(hostStatuses); const filterIgnoredAgents = { must_not: { terms: { 'agent.id': IGNORED_ELASTIC_AGENT_IDS } }, @@ -272,8 +276,8 @@ export async function buildUnitedIndexQuery( let query: BuildUnitedIndexQueryResponse['body']['query'] = idFilter; - if (statusesKuery || filters?.kql) { - const kqlQuery = toElasticsearchQuery(fromKueryExpression(filters.kql ?? '')); + if (statusesKuery || kuery) { + const kqlQuery = toElasticsearchQuery(fromKueryExpression(kuery ?? '')); const q = []; if (filterIgnoredAgents || filterEndpointPolicyAgents) { @@ -295,7 +299,7 @@ export async function buildUnitedIndexQuery( track_total_hits: true, sort: MetadataSortMethod, }, - from: (page - 1) * pageSize, + from: page * pageSize, size: pageSize, index: METADATA_UNITED_INDEX, }; diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts index f9e04f4edebee..a7781cb77e8c0 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts @@ -36,7 +36,7 @@ export function buildStatusesKuery(statusesToFilter: string[]): string | undefin export async function findAgentIdsByStatus( agentService: AgentService, esClient: ElasticsearchClient, - statuses: string[], + statuses: string[] = [], pageSize: number = 1000 ): Promise { if (!statuses.length) { diff --git a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts index d3cc7b32bbc1c..5af108304ff9d 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts @@ -117,7 +117,12 @@ describe('EndpointMetadataService', () => { it('should throw wrapped error if es error', async () => { const esMockResponse = elasticsearchServiceMock.createErrorTransportRequestPromise({}); esClient.search.mockResolvedValue(esMockResponse); - const metadataListResponse = metadataService.getHostMetadataList(esClient); + const metadataListResponse = metadataService.getHostMetadataList(esClient, { + page: 0, + pageSize: 10, + kuery: '', + hostStatuses: [], + }); await expect(metadataListResponse).rejects.toThrow(EndpointError); }); @@ -168,18 +173,16 @@ describe('EndpointMetadataService', () => { } ); - const metadataListResponse = await metadataService.getHostMetadataList(esClient); - const unitedIndexQuery = await buildUnitedIndexQuery( - { page: 1, pageSize: 10, filters: {} }, - packagePolicyIds + const queryOptions = { page: 1, pageSize: 10, kuery: '', hostStatuses: [] }; + const metadataListResponse = await metadataService.getHostMetadataList( + esClient, + queryOptions ); + const unitedIndexQuery = await buildUnitedIndexQuery(queryOptions, packagePolicyIds); expect(esClient.search).toBeCalledWith(unitedIndexQuery); expect(agentPolicyServiceMock.getByIds).toBeCalledWith(expect.anything(), agentPolicyIds); expect(metadataListResponse).toEqual({ - pageSize: 10, - page: 1, - total: 1, data: [ { metadata: endpointMetadataDoc, @@ -202,6 +205,7 @@ describe('EndpointMetadataService', () => { }, }, ], + total: 1, }); }); }); diff --git a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts index be8a6625c111e..832b8b507e5d4 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts @@ -12,12 +12,14 @@ import { SavedObjectsServiceStart, } from 'kibana/server'; +import { TypeOf } from '@kbn/config-schema'; import { TransportResult } from '@elastic/elasticsearch'; import { SearchTotalHits, SearchResponse } from '@elastic/elasticsearch/lib/api/types'; import { HostInfo, HostMetadata, MaybeImmutable, + MetadataListResponse, PolicyData, UnitedAgentMetadata, } from '../../../../common/endpoint/types'; @@ -52,10 +54,10 @@ import { } from '../../utils'; import { EndpointError } from '../../errors'; import { createInternalReadonlySoClient } from '../../utils/create_internal_readonly_so_client'; -import { GetHostMetadataListQuery } from '../../types'; import { METADATA_UNITED_INDEX } from '../../../../common/endpoint/constants'; import { getAllEndpointPackagePolicies } from '../../routes/metadata/support/endpoint_package_policies'; import { getAgentStatus } from '../../../../../fleet/common/services/agent_status'; +import { GetMetadataListRequestSchemaV2 } from '../../routes/metadata'; type AgentPolicyWithPackagePolicies = Omit & { package_policies: PackagePolicy[]; @@ -401,8 +403,8 @@ export class EndpointMetadataService { */ async getHostMetadataList( esClient: ElasticsearchClient, - queryOptions: GetHostMetadataListQuery = {} - ): Promise<{ data: HostInfo[]; total: number; page: number; pageSize: number }> { + queryOptions: TypeOf + ): Promise> { const endpointPolicies = await getAllEndpointPackagePolicies( this.packagePolicyService, this.DANGEROUS_INTERNAL_SO_CLIENT @@ -474,8 +476,6 @@ export class EndpointMetadataService { return { data: hosts, - pageSize: unitedIndexQuery.size, - page: unitedIndexQuery.from + 1, total: (docsCount as unknown as SearchTotalHits).value, }; } diff --git a/x-pack/plugins/security_solution/server/endpoint/types.ts b/x-pack/plugins/security_solution/server/endpoint/types.ts index 919e62785f698..bc52b759b9f0a 100644 --- a/x-pack/plugins/security_solution/server/endpoint/types.ts +++ b/x-pack/plugins/security_solution/server/endpoint/types.ts @@ -7,12 +7,10 @@ import { LoggerFactory } from 'kibana/server'; -import { TypeOf } from '@kbn/config-schema'; import { ConfigType } from '../config'; import { EndpointAppContextService } from './endpoint_app_context_services'; import { HostMetadata } from '../../common/endpoint/types'; import { ExperimentalFeatures } from '../../common/experimental_features'; -import { endpointFilters } from './routes/metadata'; /** * The context for Endpoint apps. @@ -37,11 +35,3 @@ export interface HostQueryResult { resultLength: number; result: HostMetadata | undefined; } - -// FIXME: when new Host Metadata list API is created (and existing one deprecated - 8.0?), move this type out of here and created it from Schema -export interface GetHostMetadataListQuery { - /* page number 1 based - not an index */ - page?: number; - pageSize?: number; - filters?: Partial>; -} diff --git a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts index 35e316f309d7f..471d00728bac3 100644 --- a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts +++ b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts @@ -5,6 +5,7 @@ * 2.0. */ +import uuid from 'uuid'; import expect from '@kbn/expect'; import { FtrProviderContext } from '../ftr_provider_context'; import { @@ -31,317 +32,56 @@ import { indexFleetEndpointPolicy } from '../../../plugins/security_solution/com export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - describe('test metadata api', () => { - describe('with .metrics-endpoint.metadata_united_default index', () => { - const numberOfHostsInFixture = 2; - - before(async () => { - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteAllDocsFromFleetAgents(getService); - await deleteAllDocsFromMetadataDatastream(getService); - await deleteAllDocsFromMetadataCurrentIndex(getService); - await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); - - // generate an endpoint policy and attach id to agents since - // metadata list api filters down to endpoint policies only - const policy = await indexFleetEndpointPolicy( - getService('kibanaServer'), - 'Default', - '1.1.1' - ); - const policyId = policy.integrationPolicies[0].policy_id; - const currentTime = new Date().getTime(); - - await Promise.all([ - bulkIndex(getService, AGENTS_INDEX, generateAgentDocs(currentTime, policyId)), - bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(currentTime)), - ]); - - // wait for latest metadata transform to run - await new Promise((r) => setTimeout(r, 30000)); - await startTransform(getService, METADATA_UNITED_TRANSFORM); - - // wait for united metadata transform to run - await new Promise((r) => setTimeout(r, 15000)); - }); - - after(async () => { - await deleteAllDocsFromFleetAgents(getService); - await deleteAllDocsFromMetadataDatastream(getService); - await deleteAllDocsFromMetadataCurrentIndex(getService); - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); - }); - - it('should return one entry for each host with default paging', async () => { - const res = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send() - .expect(200); - const { body } = res; - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(numberOfHostsInFixture); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); + describe('test metadata apis', () => { + describe('list endpoints POST route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + const numberOfHostsInFixture = 2; - it('metadata api should return page based on paging properties passed.', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 1, - }, - { - page_index: 1, - }, - ], - }) - .expect(200); - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(1); - expect(body.request_page_index).to.eql(1); - }); - - it('metadata api should return accurate total metadata if page index produces no result', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 3, - }, - ], - }) - .expect(200); - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(0); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(30); - }); - - it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 0, - }, - { - page_index: 1, - }, - ], - }) - .expect(400); - expect(body.message).to.contain('Value must be equal to or greater than [1]'); - }); - - it('metadata api should return page based on filters passed.', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: 'not (united.endpoint.host.ip:10.101.149.26)', - }, - }) - .expect(200); - expect(body.total).to.eql(1); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return page based on filters and paging passed.', async () => { - const notIncludedIp = '10.101.149.26'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 0, - }, - ], - filters: { - kql: `not (united.endpoint.host.ip:${notIncludedIp})`, - }, - }) - .expect(200); - expect(body.total).to.eql(1); - const resultIps: string[] = [].concat( - ...body.hosts.map((hostInfo: Record) => hostInfo.metadata.host.ip) - ); - expect(resultIps.sort()).to.eql(['10.192.213.130', '10.70.28.129'].sort()); - expect(resultIps).not.include.eql(notIncludedIp); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return page based on host.os.Ext.variant filter.', async () => { - const variantValue = 'Windows Pro'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `united.endpoint.host.os.Ext.variant:${variantValue}`, - }, - }) - .expect(200); - expect(body.total).to.eql(2); - const resultOsVariantValue: Set = new Set( - body.hosts.map((hostInfo: Record) => hostInfo.metadata.host.os.Ext.variant) - ); - expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); - expect(body.hosts.length).to.eql(2); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return the latest event for all the events for an endpoint', async () => { - const targetEndpointIp = '10.101.149.26'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `united.endpoint.host.ip:${targetEndpointIp}`, - }, - }) - .expect(200); - expect(body.total).to.eql(1); - const resultIp: string = body.hosts[0].metadata.host.ip.filter( - (ip: string) => ip === targetEndpointIp - ); - expect(resultIp).to.eql([targetEndpointIp]); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return the latest event for all the events where policy status is not success', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `not (united.endpoint.Endpoint.policy.applied.status:success)`, - }, - }) - .expect(200); - const statuses: Set = new Set( - body.hosts.map( - (hostInfo: Record) => hostInfo.metadata.Endpoint.policy.applied.status - ) - ); - expect(statuses.size).to.eql(1); - expect(Array.from(statuses)).to.eql(['failure']); - }); + before(async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromFleetAgents(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); - it('metadata api should return the endpoint based on the elastic agent id, and status should be healthy', async () => { - const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; - const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `united.endpoint.elastic.agent.id:${targetElasticAgentId}`, - }, - }) - .expect(200); - expect(body.total).to.eql(1); - const resultHostId: string = body.hosts[0].metadata.host.id; - const resultElasticAgentId: string = body.hosts[0].metadata.elastic.agent.id; - expect(resultHostId).to.eql(targetEndpointId); - expect(resultElasticAgentId).to.eql(targetElasticAgentId); - expect(body.hosts[0].host_status).to.eql('healthy'); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); + // generate an endpoint policy and attach id to agents since + // metadata list api filters down to endpoint policies only + const policy = await indexFleetEndpointPolicy( + getService('kibanaServer'), + `Default ${uuid.v4()}`, + '1.1.1' + ); + const policyId = policy.integrationPolicies[0].policy_id; + const currentTime = new Date().getTime(); - it('metadata api should return all hosts when filter is empty string', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: '', - }, - }) - .expect(200); - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(numberOfHostsInFixture); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - }); + await Promise.all([ + bulkIndex(getService, AGENTS_INDEX, generateAgentDocs(currentTime, policyId)), + bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(currentTime)), + ]); - describe('with metrics-endpoint.metadata_current_default index', () => { - /** - * The number of host documents in the es archive. - */ - const numberOfHostsInFixture = 3; + // wait for latest metadata transform to run + await new Promise((r) => setTimeout(r, 30000)); + await startTransform(getService, METADATA_UNITED_TRANSFORM); - describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is empty`, () => { - it('metadata api should return empty result when index is empty', async () => { - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteIndex(getService, METADATA_UNITED_INDEX); - await deleteMetadataStream(getService); - await deleteAllDocsFromMetadataDatastream(getService); - await deleteAllDocsFromMetadataCurrentIndex(getService); - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send() - .expect(200); - expect(body.total).to.eql(0); - expect(body.hosts.length).to.eql(0); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); + // wait for united metadata transform to run + await new Promise((r) => setTimeout(r, 15000)); }); - }); - describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is not empty`, () => { - const timestamp = new Date().getTime(); - before(async () => { - // stop the united transform and delete the index - // otherwise it won't hit metrics-endpoint.metadata_current_default index - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteIndex(getService, METADATA_UNITED_INDEX); - await bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(timestamp)); - // wait for transform - await new Promise((r) => setTimeout(r, 60000)); - }); - // the endpoint uses data streams and es archiver does not support deleting them at the moment so we need - // to do it manually after(async () => { - await deleteMetadataStream(getService); + await deleteAllDocsFromFleetAgents(getService); await deleteAllDocsFromMetadataDatastream(getService); await deleteAllDocsFromMetadataCurrentIndex(getService); + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); }); - it('metadata api should return one entry for each host with default paging', async () => { - const { body } = await supertest + + it('should return one entry for each host with default paging', async () => { + const res = await supertest .post(HOST_METADATA_LIST_ROUTE) .set('kbn-xsrf', 'xxx') .send() .expect(200); + const { body } = res; expect(body.total).to.eql(numberOfHostsInFixture); expect(body.hosts.length).to.eql(numberOfHostsInFixture); expect(body.request_page_size).to.eql(10); @@ -369,9 +109,6 @@ export default function ({ getService }: FtrProviderContext) { expect(body.request_page_index).to.eql(1); }); - /* test that when paging properties produces no result, the total should reflect the actual number of metadata - in the index. - */ it('metadata api should return accurate total metadata if page index produces no result', async () => { const { body } = await supertest .post(HOST_METADATA_LIST_ROUTE) @@ -417,18 +154,18 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: 'not (HostDetails.host.ip:10.46.229.234 or host.ip:10.46.229.234)', + kql: 'not (united.endpoint.host.ip:10.101.149.26)', }, }) .expect(200); - expect(body.total).to.eql(2); - expect(body.hosts.length).to.eql(2); + expect(body.total).to.eql(1); + expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); }); it('metadata api should return page based on filters and paging passed.', async () => { - const notIncludedIp = '10.46.229.234'; + const notIncludedIp = '10.101.149.26'; const { body } = await supertest .post(HOST_METADATA_LIST_ROUTE) .set('kbn-xsrf', 'xxx') @@ -442,24 +179,17 @@ export default function ({ getService }: FtrProviderContext) { }, ], filters: { - kql: `not (HostDetails.host.ip:${notIncludedIp} or host.ip:${notIncludedIp})`, + kql: `not (united.endpoint.host.ip:${notIncludedIp})`, }, }) .expect(200); - expect(body.total).to.eql(2); + expect(body.total).to.eql(1); const resultIps: string[] = [].concat( ...body.hosts.map((hostInfo: Record) => hostInfo.metadata.host.ip) ); - expect(resultIps.sort()).to.eql( - [ - '10.192.213.130', - '10.70.28.129', - '10.101.149.26', - '2606:a000:ffc0:39:11ef:37b9:3371:578c', - ].sort() - ); + expect(resultIps.sort()).to.eql(['10.192.213.130', '10.70.28.129'].sort()); expect(resultIps).not.include.eql(notIncludedIp); - expect(body.hosts.length).to.eql(2); + expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); }); @@ -471,7 +201,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `HostDetails.host.os.Ext.variant:${variantValue} or host.os.Ext.variant:${variantValue}`, + kql: `united.endpoint.host.os.Ext.variant:${variantValue}`, }, }) .expect(200); @@ -486,13 +216,13 @@ export default function ({ getService }: FtrProviderContext) { }); it('metadata api should return the latest event for all the events for an endpoint', async () => { - const targetEndpointIp = '10.46.229.234'; + const targetEndpointIp = '10.101.149.26'; const { body } = await supertest .post(HOST_METADATA_LIST_ROUTE) .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `HostDetails.host.ip:${targetEndpointIp} or host.ip:${targetEndpointIp}`, + kql: `united.endpoint.host.ip:${targetEndpointIp}`, }, }) .expect(200); @@ -501,7 +231,6 @@ export default function ({ getService }: FtrProviderContext) { (ip: string) => ip === targetEndpointIp ); expect(resultIp).to.eql([targetEndpointIp]); - expect(body.hosts[0].metadata.event.created).to.eql(timestamp); expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); @@ -513,7 +242,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `not (HostDetails.Endpoint.policy.applied.status:success or Endpoint.policy.applied.status:success)`, + kql: `not (united.endpoint.Endpoint.policy.applied.status:success)`, }, }) .expect(200); @@ -526,7 +255,7 @@ export default function ({ getService }: FtrProviderContext) { expect(Array.from(statuses)).to.eql(['failure']); }); - it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { + it('metadata api should return the endpoint based on the elastic agent id, and status should be healthy', async () => { const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; const { body } = await supertest @@ -534,7 +263,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `HostDetails.elastic.agent.id:${targetElasticAgentId} or elastic.agent.id:${targetElasticAgentId}`, + kql: `united.endpoint.elastic.agent.id:${targetElasticAgentId}`, }, }) .expect(200); @@ -543,8 +272,7 @@ export default function ({ getService }: FtrProviderContext) { const resultElasticAgentId: string = body.hosts[0].metadata.elastic.agent.id; expect(resultHostId).to.eql(targetEndpointId); expect(resultElasticAgentId).to.eql(targetElasticAgentId); - expect(body.hosts[0].metadata.event.created).to.eql(timestamp); - expect(body.hosts[0].host_status).to.eql('unhealthy'); + expect(body.hosts[0].host_status).to.eql('healthy'); expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); @@ -566,6 +294,755 @@ export default function ({ getService }: FtrProviderContext) { expect(body.request_page_index).to.eql(0); }); }); + + describe('with metrics-endpoint.metadata_current_default index', () => { + /** + * The number of host documents in the es archive. + */ + const numberOfHostsInFixture = 3; + + describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is empty`, () => { + it('metadata api should return empty result when index is empty', async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send() + .expect(200); + expect(body.total).to.eql(0); + expect(body.hosts.length).to.eql(0); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + }); + + describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is not empty`, () => { + const timestamp = new Date().getTime(); + before(async () => { + // stop the united transform and delete the index + // otherwise it won't hit metrics-endpoint.metadata_current_default index + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(timestamp)); + // wait for transform + await new Promise((r) => setTimeout(r, 60000)); + }); + // the endpoint uses data streams and es archiver does not support deleting them at the moment so we need + // to do it manually + after(async () => { + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + }); + it('metadata api should return one entry for each host with default paging', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send() + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(numberOfHostsInFixture); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return page based on paging properties passed.', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 1, + }, + { + page_index: 1, + }, + ], + }) + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(1); + expect(body.request_page_size).to.eql(1); + expect(body.request_page_index).to.eql(1); + }); + + /* test that when paging properties produces no result, the total should reflect the actual number of metadata + in the index. + */ + it('metadata api should return accurate total metadata if page index produces no result', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 3, + }, + ], + }) + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(0); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(30); + }); + + it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 0, + }, + { + page_index: 1, + }, + ], + }) + .expect(400); + expect(body.message).to.contain('Value must be equal to or greater than [1]'); + }); + + it('metadata api should return page based on filters passed.', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: 'not (HostDetails.host.ip:10.46.229.234 or host.ip:10.46.229.234)', + }, + }) + .expect(200); + expect(body.total).to.eql(2); + expect(body.hosts.length).to.eql(2); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return page based on filters and paging passed.', async () => { + const notIncludedIp = '10.46.229.234'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 0, + }, + ], + filters: { + kql: `not (HostDetails.host.ip:${notIncludedIp} or host.ip:${notIncludedIp})`, + }, + }) + .expect(200); + expect(body.total).to.eql(2); + const resultIps: string[] = [].concat( + ...body.hosts.map((hostInfo: Record) => hostInfo.metadata.host.ip) + ); + expect(resultIps.sort()).to.eql( + [ + '10.192.213.130', + '10.70.28.129', + '10.101.149.26', + '2606:a000:ffc0:39:11ef:37b9:3371:578c', + ].sort() + ); + expect(resultIps).not.include.eql(notIncludedIp); + expect(body.hosts.length).to.eql(2); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return page based on host.os.Ext.variant filter.', async () => { + const variantValue = 'Windows Pro'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `HostDetails.host.os.Ext.variant:${variantValue} or host.os.Ext.variant:${variantValue}`, + }, + }) + .expect(200); + expect(body.total).to.eql(2); + const resultOsVariantValue: Set = new Set( + body.hosts.map( + (hostInfo: Record) => hostInfo.metadata.host.os.Ext.variant + ) + ); + expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); + expect(body.hosts.length).to.eql(2); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return the latest event for all the events for an endpoint', async () => { + const targetEndpointIp = '10.46.229.234'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `HostDetails.host.ip:${targetEndpointIp} or host.ip:${targetEndpointIp}`, + }, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultIp: string = body.hosts[0].metadata.host.ip.filter( + (ip: string) => ip === targetEndpointIp + ); + expect(resultIp).to.eql([targetEndpointIp]); + expect(body.hosts[0].metadata.event.created).to.eql(timestamp); + expect(body.hosts.length).to.eql(1); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return the latest event for all the events where policy status is not success', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `not (HostDetails.Endpoint.policy.applied.status:success or Endpoint.policy.applied.status:success)`, + }, + }) + .expect(200); + const statuses: Set = new Set( + body.hosts.map( + (hostInfo: Record) => hostInfo.metadata.Endpoint.policy.applied.status + ) + ); + expect(statuses.size).to.eql(1); + expect(Array.from(statuses)).to.eql(['failure']); + }); + + it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { + const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; + const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `HostDetails.elastic.agent.id:${targetElasticAgentId} or elastic.agent.id:${targetElasticAgentId}`, + }, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultHostId: string = body.hosts[0].metadata.host.id; + const resultElasticAgentId: string = body.hosts[0].metadata.elastic.agent.id; + expect(resultHostId).to.eql(targetEndpointId); + expect(resultElasticAgentId).to.eql(targetElasticAgentId); + expect(body.hosts[0].metadata.event.created).to.eql(timestamp); + expect(body.hosts[0].host_status).to.eql('unhealthy'); + expect(body.hosts.length).to.eql(1); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return all hosts when filter is empty string', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: '', + }, + }) + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(numberOfHostsInFixture); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + }); + }); + }); + + describe('list endpoints GET route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + const numberOfHostsInFixture = 2; + + before(async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromFleetAgents(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); + + // generate an endpoint policy and attach id to agents since + // metadata list api filters down to endpoint policies only + const policy = await indexFleetEndpointPolicy( + getService('kibanaServer'), + `Default ${uuid.v4()}`, + '1.1.1' + ); + const policyId = policy.integrationPolicies[0].policy_id; + const currentTime = new Date().getTime(); + + await Promise.all([ + bulkIndex(getService, AGENTS_INDEX, generateAgentDocs(currentTime, policyId)), + bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(currentTime)), + ]); + + // wait for latest metadata transform to run + await new Promise((r) => setTimeout(r, 30000)); + await startTransform(getService, METADATA_UNITED_TRANSFORM); + + // wait for united metadata transform to run + await new Promise((r) => setTimeout(r, 15000)); + }); + + after(async () => { + await deleteAllDocsFromFleetAgents(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); + }); + + it('should return one entry for each host with default paging', async () => { + const res = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + }) + .expect(200); + const { body } = res; + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on paging properties passed', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 1, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(1); + expect(body.pageSize).to.eql(1); + }); + + it('metadata api should return accurate total metadata if page index produces no result', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 3, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(0); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(3); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 0, + }) + .expect(400); + expect(body.message).to.contain('Value must be equal to or greater than [1]'); + }); + + it('metadata api should return page based on filters passed.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: 'not (united.endpoint.host.ip:10.101.149.26)', + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(1); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on filters and paging passed.', async () => { + const notIncludedIp = '10.101.149.26'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + kuery: `not (united.endpoint.host.ip:${notIncludedIp})`, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultIps: string[] = [].concat( + ...body.data.map((hostInfo: Record) => hostInfo.metadata.host.ip) + ); + expect(resultIps.sort()).to.eql(['10.192.213.130', '10.70.28.129'].sort()); + expect(resultIps).not.include.eql(notIncludedIp); + expect(body.data.length).to.eql(1); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on host.os.Ext.variant filter.', async () => { + const variantValue = 'Windows Pro'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `united.endpoint.host.os.Ext.variant:${variantValue}`, + }) + .expect(200); + expect(body.total).to.eql(2); + const resultOsVariantValue: Set = new Set( + body.data.map((hostInfo: Record) => hostInfo.metadata.host.os.Ext.variant) + ); + expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); + expect(body.data.length).to.eql(2); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events for an endpoint', async () => { + const targetEndpointIp = '10.101.149.26'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `united.endpoint.host.ip:${targetEndpointIp}`, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultIp: string = body.data[0].metadata.host.ip.filter( + (ip: string) => ip === targetEndpointIp + ); + expect(resultIp).to.eql([targetEndpointIp]); + expect(body.data.length).to.eql(1); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events where policy status is not success', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: 'not (united.endpoint.Endpoint.policy.applied.status:success)', + }) + .expect(200); + const statuses: Set = new Set( + body.data.map( + (hostInfo: Record) => hostInfo.metadata.Endpoint.policy.applied.status + ) + ); + expect(statuses.size).to.eql(1); + expect(Array.from(statuses)).to.eql(['failure']); + }); + + it('metadata api should return the endpoint based on the elastic agent id, and status should be healthy', async () => { + const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; + const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `united.endpoint.elastic.agent.id:${targetElasticAgentId}`, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultHostId: string = body.data[0].metadata.host.id; + const resultElasticAgentId: string = body.data[0].metadata.elastic.agent.id; + expect(resultHostId).to.eql(targetEndpointId); + expect(resultElasticAgentId).to.eql(targetElasticAgentId); + expect(body.data.length).to.eql(1); + expect(body.data[0].host_status).to.eql('healthy'); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return all hosts when filter is empty string', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .expect(200); + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + }); + + describe('with metrics-endpoint.metadata_current_default index', () => { + /** + * The number of host documents in the es archive. + */ + const numberOfHostsInFixture = 3; + + describe('when index is empty', () => { + it('metadata api should return empty result when index is empty', async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(0); + expect(body.total).to.eql(0); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + }); + + describe('when index is not empty', () => { + const timestamp = new Date().getTime(); + before(async () => { + // stop the united transform and delete the index + // otherwise it won't hit metrics-endpoint.metadata_current_default index + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(timestamp)); + // wait for transform + await new Promise((r) => setTimeout(r, 60000)); + }); + // the endpoint uses data streams and es archiver does not support deleting them at the moment so we need + // to do it manually + after(async () => { + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + }); + + it('metadata api should return one entry for each host with default paging', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on paging properties passed.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 1, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(1); + expect(body.pageSize).to.eql(1); + }); + + /* test that when paging properties produces no result, the total should reflect the actual number of metadata + in the index. + */ + it('metadata api should return accurate total metadata if page index produces no result', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 3, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(0); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(3); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 0, + }) + .expect(400); + expect(body.message).to.contain('Value must be equal to or greater than [1]'); + }); + + it('metadata api should return page based on filters passed.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: 'not (HostDetails.host.ip:10.46.229.234 or host.ip:10.46.229.234)', + }) + .expect(200); + expect(body.data.length).to.eql(2); + expect(body.total).to.eql(2); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on filters and paging passed.', async () => { + const notIncludedIp = '10.46.229.234'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + kuery: `not (HostDetails.host.ip:${notIncludedIp} or host.ip:${notIncludedIp})`, + }) + .expect(200); + expect(body.data.length).to.eql(2); + expect(body.total).to.eql(2); + const resultIps: string[] = [].concat( + ...body.data.map((hostInfo: Record) => hostInfo.metadata.host.ip) + ); + expect(resultIps.sort()).to.eql( + [ + '10.192.213.130', + '10.70.28.129', + '10.101.149.26', + '2606:a000:ffc0:39:11ef:37b9:3371:578c', + ].sort() + ); + expect(resultIps).not.include.eql(notIncludedIp); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on host.os.Ext.variant filter.', async () => { + const variantValue = 'Windows Pro'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `HostDetails.host.os.Ext.variant:${variantValue} or host.os.Ext.variant:${variantValue}`, + }) + .expect(200); + expect(body.data.length).to.eql(2); + expect(body.total).to.eql(2); + const resultOsVariantValue: Set = new Set( + body.data.map( + (hostInfo: Record) => hostInfo.metadata.host.os.Ext.variant + ) + ); + expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events for an endpoint', async () => { + const targetEndpointIp = '10.46.229.234'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `HostDetails.host.ip:${targetEndpointIp} or host.ip:${targetEndpointIp}`, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(1); + const resultIp: string = body.data[0].metadata.host.ip.filter( + (ip: string) => ip === targetEndpointIp + ); + expect(resultIp).to.eql([targetEndpointIp]); + expect(body.data[0].metadata.event.created).to.eql(timestamp); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events where policy status is not success', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: + 'not (HostDetails.Endpoint.policy.applied.status:success or Endpoint.policy.applied.status:success)', + }) + .expect(200); + const statuses: Set = new Set( + body.data.map( + (hostInfo: Record) => hostInfo.metadata.Endpoint.policy.applied.status + ) + ); + expect(statuses.size).to.eql(1); + expect(Array.from(statuses)).to.eql(['failure']); + }); + + it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { + const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; + const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `HostDetails.elastic.agent.id:${targetElasticAgentId} or elastic.agent.id:${targetElasticAgentId}`, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(1); + const resultHostId: string = body.data[0].metadata.host.id; + const resultElasticAgentId: string = body.data[0].metadata.elastic.agent.id; + expect(resultHostId).to.eql(targetEndpointId); + expect(resultElasticAgentId).to.eql(targetElasticAgentId); + expect(body.data[0].metadata.event.created).to.eql(timestamp); + expect(body.data[0].host_status).to.eql('unhealthy'); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return all hosts when filter is empty string', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: '', + }) + .expect(200); + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + }); + }); }); }); } From 2e4caabcfc3d9998149b8bfd909f770b7e1d268e Mon Sep 17 00:00:00 2001 From: Scotty Bollinger Date: Thu, 18 Nov 2021 14:49:42 -0600 Subject: [PATCH 049/114] [Enterprise Search] Fix bug where non-superusers can lock themselves out (#117405) * Fix bug where non-superusers can lock themselves out * Update name to superuser Co-authored-by: Vadim Yakhin Co-authored-by: Vadim Yakhin Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../shared/role_mapping/constants.ts | 7 ++ .../role_mapping/roles_empty_prompt.test.tsx | 60 ++++++++++++++- .../role_mapping/roles_empty_prompt.tsx | 76 +++++++++++++------ 3 files changed, 116 insertions(+), 27 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts index 0a99b0991f4ed..e94eb39f8cc75 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts @@ -242,6 +242,13 @@ export const ROLES_DISABLED_NOTE = i18n.translate( } ); +export const RBAC_BUTTON_DISABLED_LABEL = i18n.translate( + 'xpack.enterpriseSearch.roleMapping.rbacButtonDisabledLabel', + { + defaultMessage: 'Enabling RBAC can be performed by a superuser.', + } +); + export const ENABLE_ROLES_BUTTON = i18n.translate( 'xpack.enterpriseSearch.roleMapping.enableRolesButton', { defaultMessage: 'Enable role-based access' } diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx index 8331a45849e3a..974c0d17c29f9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx @@ -5,6 +5,9 @@ * 2.0. */ +import '../../__mocks__/shallow_useeffect.mock'; +import { mockKibanaValues } from '../../__mocks__/kea_logic'; + import React from 'react'; import { shallow } from 'enzyme'; @@ -14,6 +17,18 @@ import { EuiButton, EuiLink, EuiEmptyPrompt } from '@elastic/eui'; import { RolesEmptyPrompt } from './roles_empty_prompt'; describe('RolesEmptyPrompt', () => { + const { + security: { + authc: { getCurrentUser }, + }, + } = mockKibanaValues; + + const mockCurrentUser = (user?: unknown) => + (getCurrentUser as jest.Mock).mockReturnValue(Promise.resolve(user)); + + const mockCurrentUserError = () => + (getCurrentUser as jest.Mock).mockReturnValue(Promise.reject()); + const onEnable = jest.fn(); const props = { @@ -22,15 +37,52 @@ describe('RolesEmptyPrompt', () => { onEnable, }; - it('renders', () => { - const wrapper = shallow(); + const mockUser = { + username: 'elastic', + roles: ['superuser'], + }; + + beforeAll(() => { + mockCurrentUser(); + }); + + it('gets the current user on mount', () => { + shallow(); + + expect(getCurrentUser).toHaveBeenCalled(); + }); + + it('does not render if the getCurrentUser promise returns error', async () => { + mockCurrentUserError(); + const wrapper = await shallow(); + + expect(wrapper.isEmptyRender()).toBe(true); + }); + + it('renders', async () => { + mockCurrentUser(mockUser); + const wrapper = await shallow(); expect(wrapper.find(EuiEmptyPrompt)).toHaveLength(1); expect(wrapper.find(EuiEmptyPrompt).dive().find(EuiLink).prop('href')).toEqual(props.docsLink); }); - it('calls onEnable on change', () => { - const wrapper = shallow(); + it('disables button when non-superuser', async () => { + mockCurrentUser({ + username: 'user', + roles: ['foo'], + }); + const wrapper = await shallow(); + + expect(wrapper.find(EuiEmptyPrompt).dive().find(EuiButton).prop('disabled')).toBe(true); + expect( + wrapper.find(EuiEmptyPrompt).dive().find('[data-test-subj="rbacDisabledLabel"]') + ).toHaveLength(1); + }); + + it('calls onEnable on change', async () => { + mockCurrentUser(mockUser); + const wrapper = await shallow(); const prompt = wrapper.find(EuiEmptyPrompt).dive(); prompt.find(EuiButton).simulate('click'); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx index 11d50573c45f6..b325863b54430 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx @@ -5,13 +5,18 @@ * 2.0. */ -import React from 'react'; +import React, { useState, useEffect } from 'react'; -import { EuiEmptyPrompt, EuiButton, EuiLink, EuiSpacer } from '@elastic/eui'; +import { useValues } from 'kea'; +import { EuiEmptyPrompt, EuiButton, EuiLink, EuiSpacer, EuiText } from '@elastic/eui'; + +import type { AuthenticatedUser } from '../../../../../security/public'; +import { KibanaLogic } from '../kibana/kibana_logic'; import { ProductName } from '../types'; import { + RBAC_BUTTON_DISABLED_LABEL, ROLES_DISABLED_TITLE, ROLES_DISABLED_DESCRIPTION, ROLES_DISABLED_NOTE, @@ -25,24 +30,49 @@ interface Props { onEnable(): void; } -export const RolesEmptyPrompt: React.FC = ({ onEnable, docsLink, productName }) => ( - {ROLES_DISABLED_TITLE}} - body={ - <> -

{ROLES_DISABLED_DESCRIPTION(productName)}

-

{ROLES_DISABLED_NOTE}

- - } - actions={[ - - {ENABLE_ROLES_BUTTON} - , - , - - {ENABLE_ROLES_LINK} - , - ]} - /> -); +export const RolesEmptyPrompt: React.FC = ({ onEnable, docsLink, productName }) => { + const { security } = useValues(KibanaLogic); + const [currentUser, setCurrentUser] = useState(null); + const isSuperUser = currentUser?.roles.includes('superuser'); + const rbacDisabledLabel = !isSuperUser && ( + + {RBAC_BUTTON_DISABLED_LABEL} + + ); + + useEffect(() => { + security.authc + .getCurrentUser() + .then(setCurrentUser) + .catch(() => { + setCurrentUser(null); + }); + }, [security.authc]); + + if (!currentUser) { + return null; + } + + return ( + {ROLES_DISABLED_TITLE}} + body={ + <> +

{ROLES_DISABLED_DESCRIPTION(productName)}

+

{ROLES_DISABLED_NOTE}

+ + } + actions={[ + + {ENABLE_ROLES_BUTTON} + , + rbacDisabledLabel, + , + + {ENABLE_ROLES_LINK} + , + ]} + /> + ); +}; From 0fdb0b9c3549e08777e6b82763e02b89dd85fac0 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Thu, 18 Nov 2021 16:04:12 -0500 Subject: [PATCH 050/114] [Uptime] Add `7*` to supported index pattern defaults (#112861) * Add `7.16` to supported index pattern defaults. * Update supported index pattern based on requirements update. * Fix broken unit tests. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../uptime/common/constants/settings_defaults.ts | 2 +- x-pack/plugins/uptime/public/pages/settings.test.tsx | 4 ++-- .../__snapshots__/get_monitor_charts.test.ts.snap | 2 +- .../__snapshots__/get_monitor_details.test.ts.snap | 4 ++-- .../uptime/server/lib/requests/get_certs.test.ts | 2 +- .../lib/requests/get_monitor_availability.test.ts | 10 +++++----- .../server/lib/requests/get_monitor_status.test.ts | 10 +++++----- .../server/lib/requests/get_network_events.test.ts | 2 +- .../uptime/server/lib/requests/get_pings.test.ts | 10 +++++----- .../apis/uptime/rest/fixtures/doc_count.json | 2 +- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/x-pack/plugins/uptime/common/constants/settings_defaults.ts b/x-pack/plugins/uptime/common/constants/settings_defaults.ts index b57bc8a85d7cd..8fbc4c19df6b0 100644 --- a/x-pack/plugins/uptime/common/constants/settings_defaults.ts +++ b/x-pack/plugins/uptime/common/constants/settings_defaults.ts @@ -8,7 +8,7 @@ import { DynamicSettings } from '../runtime_types'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettings = { - heartbeatIndices: 'heartbeat-8*,synthetics-*', + heartbeatIndices: 'heartbeat-8*,heartbeat-7*,synthetics-*', certAgeThreshold: 730, certExpirationThreshold: 30, defaultConnectors: [], diff --git a/x-pack/plugins/uptime/public/pages/settings.test.tsx b/x-pack/plugins/uptime/public/pages/settings.test.tsx index 84bd4270951cf..f02e35506135b 100644 --- a/x-pack/plugins/uptime/public/pages/settings.test.tsx +++ b/x-pack/plugins/uptime/public/pages/settings.test.tsx @@ -29,7 +29,7 @@ describe('settings', () => { it('handles no spaces error', async () => { const { getByText, getByTestId } = render(); - expect(getByText('heartbeat-8*,synthetics-*')); + expect(getByText('heartbeat-8*,heartbeat-7*,synthetics-*')); fireEvent.input(getByTestId('heartbeat-indices-input-loaded'), { target: { value: 'heartbeat-8*, synthetics-*' }, @@ -41,7 +41,7 @@ describe('settings', () => { it('it show select a connector flyout', async () => { const { getByText, getByTestId } = render(); - expect(getByText('heartbeat-8*,synthetics-*')); + expect(getByText('heartbeat-8*,heartbeat-7*,synthetics-*')); fireEvent.click(getByTestId('createConnectorButton')); await waitFor(() => expect(getByText('Select a connector'))); diff --git a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap index 2d1bdf791e39a..14e4261c28283 100644 --- a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap +++ b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap @@ -55,7 +55,7 @@ Array [ }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `; diff --git a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap index 56b7ed25a74ad..9464f9960b8d2 100644 --- a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap +++ b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap @@ -55,7 +55,7 @@ Array [ }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `; @@ -103,7 +103,7 @@ Array [ }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `; diff --git a/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts index a6b37215c141a..dbbbf5d82c970 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts @@ -212,7 +212,7 @@ describe('getCerts', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ], ] diff --git a/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts index 0f1bd606307e5..ee8386dfce5d7 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts @@ -241,7 +241,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -387,7 +387,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); @@ -701,7 +701,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); @@ -799,7 +799,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -929,7 +929,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); diff --git a/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts index 08b675576a5d2..4a790ad2a1e99 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts @@ -197,7 +197,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -311,7 +311,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -510,7 +510,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -629,7 +629,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -754,7 +754,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); expect(result.length).toBe(3); diff --git a/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts index e0cd17327a9b6..68fd53729f58d 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts @@ -215,7 +215,7 @@ describe('getNetworkEvents', () => { "size": 1000, "track_total_hits": true, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ], ] diff --git a/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts index 96b95fafa921e..7b9a97a4f5cb9 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts @@ -175,7 +175,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -244,7 +244,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -313,7 +313,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -387,7 +387,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -506,7 +506,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); diff --git a/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json b/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json index 5151f0adb0011..5edaafd30ad21 100644 --- a/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json +++ b/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json @@ -1,5 +1,5 @@ { "indexExists": true, "docCount": 1, - "indices": "heartbeat-8*,synthetics-*" + "indices": "heartbeat-8*,heartbeat-7*,synthetics-*" } From 5aecd60484e13109e4753b19f123143b84e88982 Mon Sep 17 00:00:00 2001 From: Kristof C Date: Thu, 18 Nov 2021 15:34:08 -0600 Subject: [PATCH 051/114] [Cases] [104391] Prevent onSave error when field has not changed (#118825) * [Cases] [104391] Update onSave call to confirm a change before attempting to save. * Update tests * Fixes from PR Co-authored-by: Kristof-Pierre Cummings --- .../user_action_tree/index.test.tsx | 36 +++++++++++-------- .../user_action_markdown.test.tsx | 27 ++++++++++++-- .../user_action_tree/user_action_markdown.tsx | 5 +-- 3 files changed, 49 insertions(+), 19 deletions(-) diff --git a/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx index 5241b0e66fb38..fc59ec3e614e3 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx @@ -11,7 +11,6 @@ import { waitFor } from '@testing-library/react'; // eslint-disable-next-line @kbn/eslint/module_migration import routeData from 'react-router'; -import { getFormMock, useFormMock, useFormDataMock } from '../__mock__/form'; import { useUpdateComment } from '../../containers/use_update_comment'; import { basicCase, @@ -71,9 +70,6 @@ describe(`UserActionTree`, () => { isLoadingIds: [], patchComment, })); - const formHookMock = getFormMock(sampleData); - useFormMock.mockImplementation(() => ({ form: formHookMock })); - useFormDataMock.mockImplementation(() => [{ content: sampleData.content, comment: '' }]); jest .spyOn(routeData, 'useParams') @@ -259,6 +255,13 @@ describe(`UserActionTree`, () => { .first() .simulate('click'); + wrapper + .find(`.euiMarkdownEditorTextArea`) + .first() + .simulate('change', { + target: { value: sampleData.content }, + }); + wrapper .find( `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="user-action-save-markdown"]` @@ -304,6 +307,13 @@ describe(`UserActionTree`, () => { .first() .simulate('click'); + wrapper + .find(`.euiMarkdownEditorTextArea`) + .first() + .simulate('change', { + target: { value: sampleData.content }, + }); + wrapper .find(`[data-test-subj="description-action"] [data-test-subj="user-action-save-markdown"]`) .first() @@ -322,22 +332,17 @@ describe(`UserActionTree`, () => { }); }); - it('quotes', async () => { - const commentData = { - comment: '', - }; - const setFieldValue = jest.fn(); - - const formHookMock = getFormMock(commentData); - useFormMock.mockImplementation(() => ({ form: { ...formHookMock, setFieldValue } })); + it('shows quoted text in last MarkdownEditorTextArea', async () => { + const quoteableText = `> ${defaultProps.data.description} \n\n`; - const props = defaultProps; const wrapper = mount( - + ); + expect(wrapper.find(`.euiMarkdownEditorTextArea`).text()).not.toContain(quoteableText); + wrapper .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-ellipses"]`) .first() @@ -347,8 +352,9 @@ describe(`UserActionTree`, () => { .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-quote"]`) .first() .simulate('click'); + await waitFor(() => { - expect(setFieldValue).toBeCalledWith('comment', `> ${props.data.description} \n\n`); + expect(wrapper.find(`.euiMarkdownEditorTextArea`).text()).toContain(quoteableText); }); }); diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx index 43c51e9e394dd..0695f9d5a2c44 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx @@ -13,6 +13,7 @@ import { waitFor } from '@testing-library/react'; const onChangeEditable = jest.fn(); const onSaveContent = jest.fn(); +const newValue = 'Hello from Tehas'; const hyperlink = `[hyperlink](http://elastic.co)`; const defaultProps = { content: `A link to a timeline ${hyperlink}`, @@ -37,18 +38,40 @@ describe('UserActionMarkdown ', () => { expect(wrapper.find(`[data-test-subj="markdown-link"]`).first().text()).toContain('hyperlink'); }); - it('Save button click calls onSaveContent and onChangeEditable', async () => { + it('Save button click calls onSaveContent and onChangeEditable when text area value changed', async () => { const wrapper = mount( ); + + wrapper + .find(`.euiMarkdownEditorTextArea`) + .first() + .simulate('change', { + target: { value: newValue }, + }); + + wrapper.find(`[data-test-subj="user-action-save-markdown"]`).first().simulate('click'); + + await waitFor(() => { + expect(onSaveContent).toHaveBeenCalledWith(newValue); + expect(onChangeEditable).toHaveBeenCalledWith(defaultProps.id); + }); + }); + it('Does not call onSaveContent if no change from current text', async () => { + const wrapper = mount( + + + + ); + wrapper.find(`[data-test-subj="user-action-save-markdown"]`).first().simulate('click'); await waitFor(() => { - expect(onSaveContent).toHaveBeenCalledWith(defaultProps.content); expect(onChangeEditable).toHaveBeenCalledWith(defaultProps.id); }); + expect(onSaveContent).not.toHaveBeenCalled(); }); it('Cancel button click calls only onChangeEditable', async () => { const wrapper = mount( diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx index 7b94fc0290027..692fbbb318b22 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx @@ -49,11 +49,12 @@ export const UserActionMarkdown = forwardRef { const { isValid, data } = await submit(); - if (isValid) { + + if (isValid && data.content !== content) { onSaveContent(data.content); } onChangeEditable(id); - }, [id, onChangeEditable, onSaveContent, submit]); + }, [content, id, onChangeEditable, onSaveContent, submit]); const setComment = useCallback( (newComment) => { From 6aba4fbe024f975ea07e6df705c2e1032378bf51 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 18 Nov 2021 22:06:18 +0000 Subject: [PATCH 052/114] chore(NA): splits types from code on @elastic/apm-synthtrace (#118786) * chore(NA): auto creation of the package.json for the new types pkg rule * chore(NA): first alpha api extractor working version * chore(NA): support kbn-analytics * chore(NA): correctly read tsconfig files and deps from ts_config rule * chore(NA): layed out pkg_npm_types tree artifact custom rule * chore(NA): missing todos * chore(NA): node modules link mapping * chore(NA): fully working pkg_npm_types rule * chore(NA): fix changes on new packages using elastic datemath pkgs * docs(NA): remove todo * docs(NA): last todo text correction * chore(NA): removed commented lines * fix(NA): include missing package version * chore(NA): include license keys * chore(NA): change mock types package into private * chore(NA): split types_pkg from code_pkg on @elastic/apm-synthtrace * chore(NA): disable validator on ts_project rule * chore(NA): move into ts_project wrapper * chore(NA): complete types exports * chore(NA): export types as type only * chore(NA): fix type exports * chore(NA): only include exception type Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- package.json | 1 + packages/BUILD.bazel | 1 + packages/elastic-apm-synthtrace/BUILD.bazel | 34 ++++++++++++++------ packages/elastic-apm-synthtrace/package.json | 1 - packages/elastic-apm-synthtrace/src/index.ts | 1 + yarn.lock | 4 +++ 6 files changed, 32 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index c15bb092f17d8..53d9e1ac15dba 100644 --- a/package.json +++ b/package.json @@ -511,6 +511,7 @@ "@types/deep-freeze-strict": "^1.1.0", "@types/delete-empty": "^2.0.0", "@types/ejs": "^3.0.6", + "@types/elastic__apm-synthtrace": "link:bazel-bin/packages/elastic-apm-synthtrace/npm_module_types", "@types/elastic__datemath": "link:bazel-bin/packages/elastic-datemath/npm_module_types", "@types/elasticsearch": "^5.0.33", "@types/enzyme": "^3.10.8", diff --git a/packages/BUILD.bazel b/packages/BUILD.bazel index b96fea80f027b..74c28790ae06e 100644 --- a/packages/BUILD.bazel +++ b/packages/BUILD.bazel @@ -74,6 +74,7 @@ filegroup( filegroup( name = "build_pkg_types", srcs = [ + "//packages/elastic-apm-synthtrace:build_types", "//packages/elastic-datemath:build_types", ], ) diff --git a/packages/elastic-apm-synthtrace/BUILD.bazel b/packages/elastic-apm-synthtrace/BUILD.bazel index 8ae1632ffee4c..7fb188de435b6 100644 --- a/packages/elastic-apm-synthtrace/BUILD.bazel +++ b/packages/elastic-apm-synthtrace/BUILD.bazel @@ -1,9 +1,10 @@ -load("@npm//@bazel/typescript:index.bzl", "ts_config", "ts_project") -load("@build_bazel_rules_nodejs//:index.bzl", "js_library", "pkg_npm") -load("//src/dev/bazel:index.bzl", "jsts_transpiler") +load("@npm//@bazel/typescript:index.bzl", "ts_config") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library") +load("//src/dev/bazel:index.bzl", "jsts_transpiler", "pkg_npm", "pkg_npm_types", "ts_project") PKG_BASE_NAME = "elastic-apm-synthtrace" PKG_REQUIRE_NAME = "@elastic/apm-synthtrace" +TYPES_PKG_REQUIRE_NAME = "@types/elastic__apm-synthtrace" SOURCE_FILES = glob( [ @@ -31,21 +32,18 @@ RUNTIME_DEPS = [ "@npm//moment", "@npm//object-hash", "@npm//p-limit", - "@npm//utility-types", - "@npm//uuid", "@npm//yargs", ] TYPES_DEPS = [ "//packages/elastic-datemath:npm_module_types", "@npm//@elastic/elasticsearch", - "@npm//moment", - "@npm//p-limit", "@npm//@types/jest", "@npm//@types/lodash", "@npm//@types/node", - "@npm//@types/uuid", "@npm//@types/object-hash", + "@npm//moment", + "@npm//p-limit", ] jsts_transpiler( @@ -75,12 +73,13 @@ ts_project( root_dir = "src", source_map = True, tsconfig = ":tsconfig", + validate = False, ) js_library( name = PKG_BASE_NAME, srcs = NPM_MODULE_EXTRA_FILES, - deps = RUNTIME_DEPS + [":target_node", ":tsc_types"], + deps = RUNTIME_DEPS + [":target_node"], package_name = PKG_REQUIRE_NAME, visibility = ["//visibility:public"], ) @@ -99,3 +98,20 @@ filegroup( ], visibility = ["//visibility:public"], ) + +pkg_npm_types( + name = "npm_module_types", + srcs = SRCS, + deps = [":tsc_types"], + package_name = TYPES_PKG_REQUIRE_NAME, + tsconfig = ":tsconfig", + visibility = ["//visibility:public"], +) + +filegroup( + name = "build_types", + srcs = [ + ":npm_module_types", + ], + visibility = ["//visibility:public"], +) diff --git a/packages/elastic-apm-synthtrace/package.json b/packages/elastic-apm-synthtrace/package.json index 43699e4795586..d2f2016a891b3 100644 --- a/packages/elastic-apm-synthtrace/package.json +++ b/packages/elastic-apm-synthtrace/package.json @@ -4,6 +4,5 @@ "description": "Elastic APM trace data generator", "license": "SSPL-1.0 OR Elastic License 2.0", "main": "./target_node/index.js", - "types": "./target_types/index.d.ts", "private": true } diff --git a/packages/elastic-apm-synthtrace/src/index.ts b/packages/elastic-apm-synthtrace/src/index.ts index 70105438ff5ae..931215c75fde4 100644 --- a/packages/elastic-apm-synthtrace/src/index.ts +++ b/packages/elastic-apm-synthtrace/src/index.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +export type { Exception } from './lib/entity'; export { service } from './lib/service'; export { browser } from './lib/browser'; export { timerange } from './lib/timerange'; diff --git a/yarn.lock b/yarn.lock index c6279d6577e14..2f3d3865b54ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5386,6 +5386,10 @@ resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.0.6.tgz#aca442289df623bfa8e47c23961f0357847b83fe" integrity sha512-fj1hi+ZSW0xPLrJJD+YNwIh9GZbyaIepG26E/gXvp8nCa2pYokxUYO1sK9qjGxp2g8ryZYuon7wmjpwE2cyASQ== +"@types/elastic__apm-synthtrace@link:bazel-bin/packages/elastic-apm-synthtrace/npm_module_types": + version "0.0.0" + uid "" + "@types/elastic__datemath@link:bazel-bin/packages/elastic-datemath/npm_module_types": version "0.0.0" uid "" From fd81bf58fc950ee37550f02a1d875e24e996a43c Mon Sep 17 00:00:00 2001 From: liza-mae Date: Thu, 18 Nov 2021 15:54:18 -0700 Subject: [PATCH 053/114] Fix upgrade tests for maps and dashboards (#119046) --- x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts | 5 ----- x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts b/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts index 2c79191f6269d..c983361071170 100644 --- a/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts +++ b/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts @@ -12,7 +12,6 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const find = getService('find'); const log = getService('log'); - const pieChart = getService('pieChart'); const renderable = getService('renderable'); const dashboardExpect = getService('dashboardExpect'); const PageObjects = getPageObjects(['common', 'header', 'home', 'dashboard', 'timePicker']); @@ -63,10 +62,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await PageObjects.home.launchSampleDashboard('flights'); await PageObjects.header.waitUntilLoadingHasFinished(); await renderable.waitForRender(); - log.debug('Checking pie charts rendered'); - await pieChart.expectPieSliceCount(4); - log.debug('Checking area, bar and heatmap charts rendered'); - await dashboardExpect.seriesElementCount(15); log.debug('Checking saved searches rendered'); await dashboardExpect.savedSearchRowCount(49); log.debug('Checking input controls rendered'); diff --git a/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts b/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts index fb8d8c6c59a9d..53acb8b016313 100644 --- a/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts +++ b/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts @@ -168,7 +168,7 @@ export default function ({ await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.maps.waitForLayersToLoad(); await PageObjects.maps.toggleLayerVisibility('Road map - desaturated'); - await PageObjects.maps.toggleLayerVisibility('Total Requests by Destination'); + await PageObjects.maps.toggleLayerVisibility('Total Requests by Country'); await PageObjects.timePicker.setCommonlyUsedTime('sample_data range'); await PageObjects.maps.enterFullScreen(); await PageObjects.maps.closeLegend(); From 8c8c62e4d3e4db9ccac15b6957a033bea3535623 Mon Sep 17 00:00:00 2001 From: Marshall Main <55718608+marshallmain@users.noreply.github.com> Date: Thu, 18 Nov 2021 15:14:21 -0800 Subject: [PATCH 054/114] [Security Solution] Dedupe alerts by querying _id before creation (#119045) * Dedupe alerts by querying _id before creation * Update alert chunk size * Use aggregations to find existing alert _ids * Remove tightly coupled tests * Add api integration test for alert deduplication * Remove unused import * Cleaner util implementation * Skip flaky test Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../create_persistence_rule_type_wrapper.ts | 85 +++++++++++-- .../server/utils/persistence_types.ts | 14 ++- .../factories/bulk_create_factory.ts | 76 ++--------- .../create_indicator_match_alert_type.test.ts | 118 ------------------ .../query/create_query_alert_type.test.ts | 47 ------- .../tests/generating_signals.ts | 67 ++++++++++ .../detection_engine_api_integration/utils.ts | 14 ++- 7 files changed, 172 insertions(+), 249 deletions(-) diff --git a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts index e575b49d17766..afdcf856a872f 100644 --- a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts +++ b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts @@ -5,7 +5,9 @@ * 2.0. */ -import { VERSION } from '@kbn/rule-data-utils'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { chunk } from 'lodash'; +import { ALERT_UUID, VERSION } from '@kbn/rule-data-utils'; import { getCommonAlertFields } from './get_common_alert_fields'; import { CreatePersistenceRuleTypeWrapper } from './persistence_types'; @@ -26,22 +28,87 @@ export const createPersistenceRuleTypeWrapper: CreatePersistenceRuleTypeWrapper if (ruleDataClient.isWriteEnabled() && numAlerts) { const commonRuleFields = getCommonAlertFields(options); + const CHUNK_SIZE = 10000; + const alertChunks = chunk(alerts, CHUNK_SIZE); + const filteredAlerts: typeof alerts = []; + + for (const alertChunk of alertChunks) { + const request: estypes.SearchRequest = { + body: { + query: { + ids: { + values: alertChunk.map((alert) => alert._id), + }, + }, + aggs: { + uuids: { + terms: { + field: ALERT_UUID, + size: CHUNK_SIZE, + }, + }, + }, + size: 0, + }, + }; + const response = await ruleDataClient + .getReader({ namespace: options.spaceId }) + .search(request); + const uuidsMap: Record = {}; + const aggs = response.aggregations as + | Record }> + | undefined; + if (aggs != null) { + aggs.uuids.buckets.forEach((bucket) => (uuidsMap[bucket.key] = true)); + const newAlerts = alertChunk.filter((alert) => !uuidsMap[alert._id]); + filteredAlerts.push(...newAlerts); + } else { + filteredAlerts.push(...alertChunk); + } + } + + if (filteredAlerts.length === 0) { + return { createdAlerts: [] }; + } + + const augmentedAlerts = filteredAlerts.map((alert) => { + return { + ...alert, + _source: { + [VERSION]: ruleDataClient.kibanaVersion, + ...commonRuleFields, + ...alert._source, + }, + }; + }); + const response = await ruleDataClient .getWriter({ namespace: options.spaceId }) .bulk({ - body: alerts.flatMap((alert) => [ - { index: { _id: alert.id } }, - { - [VERSION]: ruleDataClient.kibanaVersion, - ...commonRuleFields, - ...alert.fields, - }, + body: augmentedAlerts.flatMap((alert) => [ + { create: { _id: alert._id } }, + alert._source, ]), refresh, }); - return response; + + if (response == null) { + return { createdAlerts: [] }; + } + + return { + createdAlerts: augmentedAlerts.map((alert, idx) => { + const responseItem = response.body.items[idx].create; + return { + _id: responseItem?._id ?? '', + _index: responseItem?._index ?? '', + ...alert._source, + }; + }), + }; } else { logger.debug('Writing is disabled.'); + return { createdAlerts: [] }; } }, }, diff --git a/x-pack/plugins/rule_registry/server/utils/persistence_types.ts b/x-pack/plugins/rule_registry/server/utils/persistence_types.ts index 326a8bef49abd..5541bc6a6d00e 100644 --- a/x-pack/plugins/rule_registry/server/utils/persistence_types.ts +++ b/x-pack/plugins/rule_registry/server/utils/persistence_types.ts @@ -5,8 +5,6 @@ * 2.0. */ -import type { TransportResult } from '@elastic/elasticsearch'; -import { BulkResponse } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { Logger } from '@kbn/logging'; import { AlertExecutorOptions, @@ -19,13 +17,17 @@ import { import { WithoutReservedActionGroups } from '../../../alerting/common'; import { IRuleDataClient } from '../rule_data_client'; -export type PersistenceAlertService = ( +export type PersistenceAlertService = ( alerts: Array<{ - id: string; - fields: Record; + _id: string; + _source: T; }>, refresh: boolean | 'wait_for' -) => Promise | undefined>; +) => Promise>; + +export interface PersistenceAlertServiceResult { + createdAlerts: Array; +} export interface PersistenceServices { alertWithPersistence: PersistenceAlertService; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts index 0ad88c61bab36..07b93f04e965f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts @@ -6,12 +6,11 @@ */ import { performance } from 'perf_hooks'; -import { countBy, isEmpty } from 'lodash'; import { Logger } from 'kibana/server'; import { BaseHit } from '../../../../../common/detection_engine/types'; import { BuildRuleMessage } from '../../signals/rule_messages'; -import { errorAggregator, makeFloatString } from '../../signals/utils'; +import { makeFloatString } from '../../signals/utils'; import { RefreshTypes } from '../../types'; import { PersistenceAlertService } from '../../../../../../rule_registry/server'; @@ -45,11 +44,11 @@ export const bulkCreateFactory = const start = performance.now(); - const response = await alertWithPersistence( + const { createdAlerts } = await alertWithPersistence( wrappedDocs.map((doc) => ({ - id: doc._id, + _id: doc._id, // `fields` should have already been merged into `doc._source` - fields: doc._source, + _source: doc._source, })), refreshForBulkCreate ); @@ -62,64 +61,11 @@ export const bulkCreateFactory = ) ); - if (response == null) { - return { - errors: [ - 'alertWithPersistence returned undefined response. Alerts as Data write flag may be disabled.', - ], - success: false, - bulkCreateDuration: makeFloatString(end - start), - createdItemsCount: 0, - createdItems: [], - }; - } - - logger.debug( - buildRuleMessage(`took property says bulk took: ${response.body.took} milliseconds`) - ); - - const createdItems = wrappedDocs - .map((doc, index) => { - const responseIndex = response.body.items[index].index; - return { - _id: responseIndex?._id ?? '', - _index: responseIndex?._index ?? '', - ...doc._source, - }; - }) - .filter((_, index) => response.body.items[index].index?.status === 201); - const createdItemsCount = createdItems.length; - - const duplicateSignalsCount = countBy(response.body.items, 'create.status')['409']; - const errorCountByMessage = errorAggregator(response.body, [409]); - - logger.debug(buildRuleMessage(`bulk created ${createdItemsCount} signals`)); - - if (duplicateSignalsCount > 0) { - logger.debug(buildRuleMessage(`ignored ${duplicateSignalsCount} duplicate signals`)); - } - - if (!isEmpty(errorCountByMessage)) { - logger.error( - buildRuleMessage( - `[-] bulkResponse had errors with responses of: ${JSON.stringify(errorCountByMessage)}` - ) - ); - - return { - errors: Object.keys(errorCountByMessage), - success: false, - bulkCreateDuration: makeFloatString(end - start), - createdItemsCount: createdItems.length, - createdItems, - }; - } else { - return { - errors: [], - success: true, - bulkCreateDuration: makeFloatString(end - start), - createdItemsCount: createdItems.length, - createdItems, - }; - } + return { + errors: [], + success: true, + bulkCreateDuration: makeFloatString(end - start), + createdItemsCount: createdAlerts.length, + createdItems: createdAlerts, + }; }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts index 89e8e7f70e4aa..29054a4022715 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts @@ -14,7 +14,6 @@ import { allowedExperimentalValues } from '../../../../../common/experimental_fe import { createRuleTypeMocks } from '../__mocks__/rule_type'; import { createIndicatorMatchAlertType } from './create_indicator_match_alert_type'; import { sampleDocNoSortId } from '../../signals/__mocks__/es_results'; -import { CountResponse } from 'kibana/server'; import { RuleParams } from '../../schemas/rule_schemas'; import { createSecurityRuleTypeWrapper } from '../create_security_rule_type_wrapper'; import { createMockConfig } from '../../routes/__mocks__'; @@ -133,121 +132,4 @@ describe('Indicator Match Alerts', () => { await executor({ params }); expect(dependencies.ruleDataClient.getWriter).not.toBeCalled(); }); - - it('sends an alert when enrichments are found', async () => { - const indicatorMatchAlertType = securityRuleTypeWrapper( - createIndicatorMatchAlertType({ - experimentalFeatures: allowedExperimentalValues, - logger: dependencies.logger, - version: '1.0.0', - }) - ); - - dependencies.alerting.registerType(indicatorMatchAlertType); - - // threat list count - services.scopedClusterClient.asCurrentUser.count.mockReturnValue( - elasticsearchClientMock.createSuccessTransportRequestPromise({ count: 1 } as CountResponse) - ); - - services.scopedClusterClient.asCurrentUser.search.mockReturnValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [ - { - ...sampleDocNoSortId(v4()), - _source: { - ...sampleDocNoSortId(v4())._source, - 'threat.indicator.file.hash.md5': 'a1b2c3', - }, - fields: { - ...sampleDocNoSortId(v4()).fields, - 'threat.indicator.file.hash.md5': ['a1b2c3'], - }, - }, - ], - total: { - relation: 'eq', - value: 1, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - services.scopedClusterClient.asCurrentUser.search.mockReturnValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [ - { - ...sampleDocNoSortId(v4()), - _source: { - ...sampleDocNoSortId(v4())._source, - 'file.hash.md5': 'a1b2c3', - }, - fields: { - ...sampleDocNoSortId(v4()).fields, - 'file.hash.md5': ['a1b2c3'], - }, - }, - ], - total: { - relation: 'eq', - value: 1, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - services.scopedClusterClient.asCurrentUser.search.mockReturnValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [ - { - ...sampleDocNoSortId(v4()), - _source: { - ...sampleDocNoSortId(v4())._source, - 'file.hash.md5': 'a1b2c3', - }, - fields: { - ...sampleDocNoSortId(v4()).fields, - 'file.hash.md5': ['a1b2c3'], - }, - }, - ], - total: { - relation: 'eq', - value: 1, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - await executor({ params }); - - expect(dependencies.ruleDataClient.getWriter).toBeCalled(); - }); }); 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 40ef2b46ed8d9..07eb096d0dd83 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 @@ -5,13 +5,10 @@ * 2.0. */ -import { v4 } from 'uuid'; - // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { elasticsearchClientMock } from 'src/core/server/elasticsearch/client/mocks'; import { allowedExperimentalValues } from '../../../../../common/experimental_features'; -import { sampleDocNoSortId } from '../../signals/__mocks__/es_results'; import { createQueryAlertType } from './create_query_alert_type'; import { createRuleTypeMocks } from '../__mocks__/rule_type'; import { createSecurityRuleTypeWrapper } from '../create_security_rule_type_wrapper'; @@ -79,48 +76,4 @@ describe('Custom Query Alerts', () => { await executor({ params }); expect(dependencies.ruleDataClient.getWriter).not.toBeCalled(); }); - - it('sends a properly formatted alert when events are found', async () => { - const queryAlertType = securityRuleTypeWrapper( - createQueryAlertType({ - experimentalFeatures: allowedExperimentalValues, - logger: dependencies.logger, - version: '1.0.0', - }) - ); - - dependencies.alerting.registerType(queryAlertType); - - const params = { - query: '*:*', - index: ['*'], - from: 'now-1m', - to: 'now', - language: 'kuery', - type: 'query', - }; - - services.scopedClusterClient.asCurrentUser.search.mockReturnValue( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [sampleDocNoSortId(v4()), sampleDocNoSortId(v4()), sampleDocNoSortId(v4())], - total: { - relation: 'eq', - value: 3, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - await executor({ params }); - expect(dependencies.ruleDataClient.getWriter).toBeCalled(); - }); }); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts index b28ff3fdc714d..073c5a9971f4b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts @@ -56,6 +56,7 @@ import { ALERT_GROUP_ID, ALERT_THRESHOLD_RESULT, } from '../../../../plugins/security_solution/common/field_maps/field_names'; +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/security_solution/common/constants'; /** * Specific _id to use for some of the tests. If the archiver changes and you see errors @@ -1157,5 +1158,71 @@ export default ({ getService }: FtrProviderContext) => { }); }); }); + + describe.skip('Signal deduplication', async () => { + before(async () => { + await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); + }); + + after(async () => { + await esArchiver.unload('x-pack/test/functional/es_archives/auditbeat/hosts'); + }); + + beforeEach(async () => { + await deleteSignalsIndex(supertest, log); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest, log); + await deleteAllAlerts(supertest, log); + }); + + it('should not generate duplicate signals', async () => { + const rule: QueryCreateSchema = { + ...getRuleForSignalTesting(['auditbeat-*']), + query: `_id:${ID}`, + }; + + const ruleResponse = await createRule(supertest, log, rule); + + const signals = await getOpenSignals(supertest, log, es, ruleResponse); + expect(signals.hits.hits.length).to.eql(1); + + const statusResponse = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_find_statuses`) + .set('kbn-xsrf', 'true') + .send({ ids: [ruleResponse.id] }); + const initialStatusDate = new Date( + statusResponse.body[ruleResponse.id].current_status.status_date + ); + + const initialSignal = signals.hits.hits[0]; + + // Disable the rule then re-enable to trigger another run + await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: ruleResponse.rule_id, enabled: false }) + .expect(200); + + await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: ruleResponse.rule_id, enabled: true }) + .expect(200); + + await waitForRuleSuccessOrStatus( + supertest, + log, + ruleResponse.id, + 'succeeded', + initialStatusDate + ); + + const newSignals = await getOpenSignals(supertest, log, es, ruleResponse); + expect(newSignals.hits.hits.length).to.eql(1); + expect(newSignals.hits.hits[0]).to.eql(initialSignal); + }); + }); }); }; diff --git a/x-pack/test/detection_engine_api_integration/utils.ts b/x-pack/test/detection_engine_api_integration/utils.ts index cc915324a4a35..bb4f564edaf1e 100644 --- a/x-pack/test/detection_engine_api_integration/utils.ts +++ b/x-pack/test/detection_engine_api_integration/utils.ts @@ -1308,7 +1308,8 @@ export const waitForRuleSuccessOrStatus = async ( supertest: SuperTest.SuperTest, log: ToolingLog, id: string, - status: 'succeeded' | 'failed' | 'partial failure' | 'warning' = 'succeeded' + status: 'succeeded' | 'failed' | 'partial failure' | 'warning' = 'succeeded', + afterDate?: Date ): Promise => { await waitFor( async () => { @@ -1324,15 +1325,20 @@ export const waitForRuleSuccessOrStatus = async ( )}, status: ${JSON.stringify(response.status)}` ); } - if (response.body[id]?.current_status?.status !== status) { + const currentStatus = response.body[id]?.current_status; + + if (currentStatus?.status !== status) { log.debug( `Did not get an expected status of ${status} while waiting for a rule success or status for rule id ${id} (waitForRuleSuccessOrStatus). Will continue retrying until status is found. body: ${JSON.stringify( response.body )}, status: ${JSON.stringify(response.status)}` ); } - - return response.body[id]?.current_status?.status === status; + return ( + currentStatus != null && + currentStatus.status === status && + (afterDate ? new Date(currentStatus.status_date) > afterDate : true) + ); } catch (e) { if ((e as Error).message.includes('got 503 "Service Unavailable"')) { return false; From 55de7bb3b2e2f6f813a45b4cd9bf501f6a6f18b2 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Thu, 18 Nov 2021 20:50:10 -0700 Subject: [PATCH 055/114] fix (#119065) --- x-pack/plugins/timelines/public/container/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/timelines/public/container/index.tsx b/x-pack/plugins/timelines/public/container/index.tsx index e43d9571f8001..28e4a5ffda4af 100644 --- a/x-pack/plugins/timelines/public/container/index.tsx +++ b/x-pack/plugins/timelines/public/container/index.tsx @@ -275,6 +275,7 @@ export const useTimelineEvents = ({ filterQuery: createFilter(filterQuery), querySize: limit, sort, + runtimeMappings, timerange: { interval: '12h', from: startDate, From e5c4846f7d178058bcb0c8b820580d8781220db3 Mon Sep 17 00:00:00 2001 From: Diana Derevyankina <54894989+DziyanaDzeraviankina@users.noreply.github.com> Date: Fri, 19 Nov 2021 10:10:56 +0300 Subject: [PATCH 056/114] [TSVB] Measure the usage of `use_kibana_indexes` setting and different TSVB chart types (#116407) * [TSVB] Measure the usage of `use_kibana_indexes` setting and different TSVB chart types * Update telemetry schema * Exclude sample data visualizations from statistics * Update register_timeseries_collector.test Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- src/plugins/telemetry/schema/oss_plugins.json | 26 ++++++ src/plugins/vis_types/timeseries/kibana.json | 2 +- .../vis_types/timeseries/server/plugin.ts | 4 +- .../get_usage_collector.test.ts | 20 +++++ .../usage_collector/get_usage_collector.ts | 80 ++++++++++++++++++- .../register_timeseries_collector.test.ts | 2 +- .../register_timeseries_collector.ts | 20 ++++- 7 files changed, 145 insertions(+), 9 deletions(-) diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index d40bf9aa5d610..cd5d3818bcdec 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -9250,11 +9250,37 @@ "description": "Number of TSVB visualizations using \"last value\" as a time range" } }, + "timeseries_use_es_indices_total": { + "type": "long", + "_meta": { "description": "Number of TSVB visualizations using elasticsearch indices" } + }, "timeseries_table_use_aggregate_function": { "type": "long", "_meta": { "description": "Number of TSVB table visualizations using aggregate function" } + }, + "timeseries_types": { + "properties": { + "table": { + "type": "long" + }, + "gauge": { + "type": "long" + }, + "markdown": { + "type": "long" + }, + "top_n": { + "type": "long" + }, + "timeseries": { + "type": "long" + }, + "metric": { + "type": "long" + } + } } } }, diff --git a/src/plugins/vis_types/timeseries/kibana.json b/src/plugins/vis_types/timeseries/kibana.json index 5cc425e4edf71..63cabc70a9587 100644 --- a/src/plugins/vis_types/timeseries/kibana.json +++ b/src/plugins/vis_types/timeseries/kibana.json @@ -5,7 +5,7 @@ "server": true, "ui": true, "requiredPlugins": ["charts", "data", "expressions", "visualizations", "visualize"], - "optionalPlugins": ["usageCollection"], + "optionalPlugins": ["home","usageCollection"], "requiredBundles": ["kibanaUtils", "kibanaReact", "fieldFormats"], "owner": { "name": "Vis Editors", diff --git a/src/plugins/vis_types/timeseries/server/plugin.ts b/src/plugins/vis_types/timeseries/server/plugin.ts index 5347d9ab7bfbc..248016f1a9836 100644 --- a/src/plugins/vis_types/timeseries/server/plugin.ts +++ b/src/plugins/vis_types/timeseries/server/plugin.ts @@ -21,6 +21,7 @@ import { first, map } from 'rxjs/operators'; import { VisTypeTimeseriesConfig } from './config'; import { getVisData } from './lib/get_vis_data'; import { UsageCollectionSetup } from '../../../usage_collection/server'; +import { HomeServerPluginSetup } from '../../../home/server'; import { PluginStart } from '../../../data/server'; import { IndexPatternsService } from '../../../data/common'; import { visDataRoutes } from './routes/vis'; @@ -47,6 +48,7 @@ export interface LegacySetup { interface VisTypeTimeseriesPluginSetupDependencies { usageCollection?: UsageCollectionSetup; + home?: HomeServerPluginSetup; } interface VisTypeTimeseriesPluginStartDependencies { @@ -128,7 +130,7 @@ export class VisTypeTimeseriesPlugin implements Plugin { fieldsRoutes(router, framework); if (plugins.usageCollection) { - registerTimeseriesUsageCollector(plugins.usageCollection); + registerTimeseriesUsageCollector(plugins.usageCollection, plugins.home); } return { diff --git a/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.test.ts b/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.test.ts index 3f3a204d29263..573c6c0e00fe2 100644 --- a/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.test.ts +++ b/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.test.ts @@ -22,7 +22,9 @@ const mockedSavedObject = { type: 'metrics', title: 'TSVB visualization 1', params: { + type: 'gauge', time_range_mode: TIME_RANGE_DATA_MODES.ENTIRE_TIME_RANGE, + use_kibana_indexes: true, }, }), }, @@ -33,7 +35,9 @@ const mockedSavedObject = { type: 'metrics', title: 'TSVB visualization 2', params: { + type: 'top_n', time_range_mode: TIME_RANGE_DATA_MODES.LAST_VALUE, + use_kibana_indexes: false, }, }), }, @@ -44,7 +48,9 @@ const mockedSavedObject = { type: 'metrics', title: 'TSVB visualization 3', params: { + type: 'markdown', time_range_mode: undefined, + use_kibana_indexes: false, }, }), }, @@ -78,7 +84,9 @@ const mockedSavedObjectsByValue = [ savedVis: { type: 'metrics', params: { + type: 'markdown', time_range_mode: TIME_RANGE_DATA_MODES.LAST_VALUE, + use_kibana_indexes: false, }, }, }, @@ -93,7 +101,9 @@ const mockedSavedObjectsByValue = [ savedVis: { type: 'metrics', params: { + type: 'timeseries', time_range_mode: TIME_RANGE_DATA_MODES.ENTIRE_TIME_RANGE, + use_kibana_indexes: true, }, }, }, @@ -115,6 +125,7 @@ const mockedSavedObjectsByValue = [ aggregate_function: 'sum', }, ], + use_kibana_indexes: true, }, }, }, @@ -241,7 +252,16 @@ describe('Timeseries visualization usage collector', () => { expect(result).toStrictEqual({ timeseries_use_last_value_mode_total: 5, + timeseries_use_es_indices_total: 4, timeseries_table_use_aggregate_function: 2, + timeseries_types: { + gauge: 1, + markdown: 2, + metric: 0, + table: 2, + timeseries: 1, + top_n: 1, + }, }); }); }); diff --git a/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.ts b/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.ts index 58f0c9c7f1459..cc08b8789d368 100644 --- a/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.ts +++ b/src/plugins/vis_types/timeseries/server/usage_collector/get_usage_collector.ts @@ -14,12 +14,22 @@ import type { ISavedObjectsRepository, SavedObjectsFindResult, } from '../../../../../core/server'; +import type { HomeServerPluginSetup } from '../../../../home/server'; import type { SavedVisState } from '../../../../visualizations/common'; import type { Panel } from '../../common/types'; export interface TimeseriesUsage { timeseries_use_last_value_mode_total: number; + timeseries_use_es_indices_total: number; timeseries_table_use_aggregate_function: number; + timeseries_types: { + table: number; + gauge: number; + markdown: number; + top_n: number; + timeseries: number; + metric: number; + }; } const doTelemetryFoVisualizations = async ( @@ -59,31 +69,80 @@ const doTelemetryForByValueVisualizations = async ( } }; +const getDefaultTSVBVisualizations = (home?: HomeServerPluginSetup) => { + const titles: string[] = []; + const sampleDataSets = home?.sampleData.getSampleDatasets() ?? []; + + sampleDataSets.forEach((sampleDataSet) => + sampleDataSet.savedObjects.forEach((savedObject) => { + try { + if (savedObject.type === 'visualization') { + const visState = JSON.parse(savedObject.attributes?.visState); + + if (visState.type === 'metrics') { + titles.push(visState.title); + } + } + } catch (e) { + // Let it go, visState is invalid and we'll don't need to handle it + } + }) + ); + + return titles; +}; + export const getStats = async ( - soClient: SavedObjectsClientContract | ISavedObjectsRepository + soClient: SavedObjectsClientContract | ISavedObjectsRepository, + home?: HomeServerPluginSetup ): Promise => { const timeseriesUsage = { timeseries_use_last_value_mode_total: 0, + timeseries_use_es_indices_total: 0, timeseries_table_use_aggregate_function: 0, + timeseries_types: { + gauge: 0, + markdown: 0, + metric: 0, + table: 0, + timeseries: 0, + top_n: 0, + }, }; + // we want to exclude the TSVB Sample Data visualizations from the stats + // in order to have more accurate results + const excludedFromStatsVisualizations = getDefaultTSVBVisualizations(home); + function telemetryUseLastValueMode(visState: SavedVisState) { if ( visState.type === 'metrics' && visState.params.type !== 'timeseries' && (!visState.params.time_range_mode || - visState.params.time_range_mode === TIME_RANGE_DATA_MODES.LAST_VALUE) + visState.params.time_range_mode === TIME_RANGE_DATA_MODES.LAST_VALUE) && + !excludedFromStatsVisualizations.includes(visState.title) ) { timeseriesUsage.timeseries_use_last_value_mode_total++; } } + function telemetryUseESIndices(visState: SavedVisState) { + if ( + visState.type === 'metrics' && + !visState.params.use_kibana_indexes && + !excludedFromStatsVisualizations.includes(visState.title) + ) { + timeseriesUsage.timeseries_use_es_indices_total++; + } + } + function telemetryTableAggFunction(visState: SavedVisState) { if ( visState.type === 'metrics' && visState.params.type === 'table' && visState.params.series && - visState.params.series.length > 0 + visState.params.series.length > 0 && + !excludedFromStatsVisualizations.includes(visState.title) ) { const usesAggregateFunction = visState.params.series.some( (s) => s.aggregate_by && s.aggregate_function @@ -94,17 +153,30 @@ export const getStats = async ( } } + function telemetryPanelTypes(visState: SavedVisState) { + if (visState.type === 'metrics' && !excludedFromStatsVisualizations.includes(visState.title)) { + timeseriesUsage.timeseries_types[visState.params.type]++; + } + } await Promise.all([ // last value usage telemetry doTelemetryFoVisualizations(soClient, telemetryUseLastValueMode), doTelemetryForByValueVisualizations(soClient, telemetryUseLastValueMode), + // elasticsearch indices usage telemetry + doTelemetryFoVisualizations(soClient, telemetryUseESIndices), + doTelemetryForByValueVisualizations(soClient, telemetryUseESIndices), // table aggregate function telemetry doTelemetryFoVisualizations(soClient, telemetryTableAggFunction), doTelemetryForByValueVisualizations(soClient, telemetryTableAggFunction), + // panel types usage telemetry + doTelemetryFoVisualizations(soClient, telemetryPanelTypes), + doTelemetryForByValueVisualizations(soClient, telemetryPanelTypes), ]); return timeseriesUsage.timeseries_use_last_value_mode_total || - timeseriesUsage.timeseries_table_use_aggregate_function + timeseriesUsage.timeseries_use_es_indices_total || + timeseriesUsage.timeseries_table_use_aggregate_function || + Object.values(timeseriesUsage.timeseries_types).some((visualizationCount) => visualizationCount) ? timeseriesUsage : undefined; }; diff --git a/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.test.ts b/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.test.ts index 26a74821fe5ae..3714cc6b30c45 100644 --- a/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.test.ts +++ b/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.test.ts @@ -46,7 +46,7 @@ describe('registerTimeseriesUsageCollector', () => { const mockedCollectorFetchContext = createCollectorFetchContextMock(); const fetchResult = await usageCollector.fetch(mockedCollectorFetchContext); expect(mockGetStats).toBeCalledTimes(1); - expect(mockGetStats).toBeCalledWith(mockedCollectorFetchContext.soClient); + expect(mockGetStats).toBeCalledWith(mockedCollectorFetchContext.soClient, undefined); expect(fetchResult).toBe(mockStats); }); }); diff --git a/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.ts b/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.ts index b96d6ce4c5da8..e8fd666fb28d1 100644 --- a/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.ts +++ b/src/plugins/vis_types/timeseries/server/usage_collector/register_timeseries_collector.ts @@ -8,8 +8,12 @@ import { getStats, TimeseriesUsage } from './get_usage_collector'; import type { UsageCollectionSetup } from '../../../../usage_collection/server'; +import type { HomeServerPluginSetup } from '../../../../home/server'; -export function registerTimeseriesUsageCollector(collectorSet: UsageCollectionSetup) { +export function registerTimeseriesUsageCollector( + collectorSet: UsageCollectionSetup, + home?: HomeServerPluginSetup +) { const collector = collectorSet.makeUsageCollector({ type: 'vis_type_timeseries', isReady: () => true, @@ -18,12 +22,24 @@ export function registerTimeseriesUsageCollector(collectorSet: UsageCollectionSe type: 'long', _meta: { description: 'Number of TSVB visualizations using "last value" as a time range' }, }, + timeseries_use_es_indices_total: { + type: 'long', + _meta: { description: 'Number of TSVB visualizations using elasticsearch indices' }, + }, timeseries_table_use_aggregate_function: { type: 'long', _meta: { description: 'Number of TSVB table visualizations using aggregate function' }, }, + timeseries_types: { + table: { type: 'long' }, + gauge: { type: 'long' }, + markdown: { type: 'long' }, + top_n: { type: 'long' }, + timeseries: { type: 'long' }, + metric: { type: 'long' }, + }, }, - fetch: async ({ soClient }) => await getStats(soClient), + fetch: async ({ soClient }) => await getStats(soClient, home), }); collectorSet.registerCollector(collector); From eb81db2ddd0b26d23a453a5635cf1e6cf5e59a28 Mon Sep 17 00:00:00 2001 From: Milton Hultgren Date: Fri, 19 Nov 2021 09:59:51 +0100 Subject: [PATCH 057/114] [Logs UI] Set explicit format for all range clauses (#115912) * [Logs UI] Set explicit format for all range clauses * Add integration test for /metrics/overview/top * Add tests for process list and chart * Add test for log_analysis/validation/log_entry_datasets * Use endpoint route constant --- .../queries/log_entry_datasets.ts | 1 + .../server/lib/host_details/process_list.ts | 1 + .../lib/host_details/process_list_chart.ts | 1 + .../server/lib/infra_ml/queries/common.ts | 1 + .../server/lib/log_analysis/queries/common.ts | 1 + .../queries/log_entry_category_examples.ts | 1 + .../queries/log_entry_examples.ts | 1 + .../overview/lib/create_top_nodes_query.ts | 1 + .../api_integration/apis/metrics_ui/index.js | 4 ++ ..._analysis_validation_log_entry_datasets.ts | 62 +++++++++++++++++++ .../apis/metrics_ui/metrics_overview_top.ts | 52 ++++++++++++++++ .../apis/metrics_ui/metrics_process_list.ts | 58 +++++++++++++++++ .../metrics_ui/metrics_process_list_chart.ts | 50 +++++++++++++++ 13 files changed, 234 insertions(+) create mode 100644 x-pack/test/api_integration/apis/metrics_ui/infra_log_analysis_validation_log_entry_datasets.ts create mode 100644 x-pack/test/api_integration/apis/metrics_ui/metrics_overview_top.ts create mode 100644 x-pack/test/api_integration/apis/metrics_ui/metrics_process_list.ts create mode 100644 x-pack/test/api_integration/apis/metrics_ui/metrics_process_list_chart.ts diff --git a/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts b/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts index 4386b6ccef9c1..a658c7deb317c 100644 --- a/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts +++ b/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts @@ -29,6 +29,7 @@ export const createLogEntryDatasetsQuery = ( [timestampField]: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/host_details/process_list.ts b/x-pack/plugins/infra/server/lib/host_details/process_list.ts index 6e608bfa2ddca..27563e3218aae 100644 --- a/x-pack/plugins/infra/server/lib/host_details/process_list.ts +++ b/x-pack/plugins/infra/server/lib/host_details/process_list.ts @@ -26,6 +26,7 @@ export const getProcessList = async ( [TIMESTAMP_FIELD]: { gte: to - 60 * 1000, // 1 minute lte: to, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts b/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts index 7ff66a80e967b..03b7e8f825686 100644 --- a/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts +++ b/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts @@ -30,6 +30,7 @@ export const getProcessListChart = async ( [TIMESTAMP_FIELD]: { gte: to - 60 * 1000, // 1 minute lte: to, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts b/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts index 594dc3371f3a2..8fbe7bd98ed9c 100644 --- a/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts +++ b/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts @@ -44,6 +44,7 @@ export const createTimeRangeFilters = (startTime: number, endTime: number) => [ timestamp: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts b/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts index b05e4ce00fe9c..293cd8e6153e7 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts @@ -36,6 +36,7 @@ export const createTimeRangeFilters = (startTime: number, endTime: number) => [ timestamp: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts index dd68de4e49d34..c79f4ddc2dc56 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts @@ -30,6 +30,7 @@ export const createLogEntryCategoryExamplesQuery = ( [timestampField]: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts index d6099404daa80..a975c6a79f99a 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts @@ -32,6 +32,7 @@ export const createLogEntryExamplesQuery = ( [timestampField]: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts b/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts index ccead528749cd..a915a7882e231 100644 --- a/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts +++ b/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts @@ -26,6 +26,7 @@ export const createTopNodesQuery = ( [TIMESTAMP_FIELD]: { gte: options.timerange.from, lte: options.timerange.to, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/test/api_integration/apis/metrics_ui/index.js b/x-pack/test/api_integration/apis/metrics_ui/index.js index dfba4ee0985ba..72c79faaa4372 100644 --- a/x-pack/test/api_integration/apis/metrics_ui/index.js +++ b/x-pack/test/api_integration/apis/metrics_ui/index.js @@ -19,5 +19,9 @@ export default function ({ loadTestFile }) { loadTestFile(require.resolve('./ip_to_hostname')); loadTestFile(require.resolve('./http_source')); loadTestFile(require.resolve('./metric_threshold_alert')); + loadTestFile(require.resolve('./metrics_overview_top')); + loadTestFile(require.resolve('./metrics_process_list')); + loadTestFile(require.resolve('./metrics_process_list_chart')); + loadTestFile(require.resolve('./infra_log_analysis_validation_log_entry_datasets')); }); } diff --git a/x-pack/test/api_integration/apis/metrics_ui/infra_log_analysis_validation_log_entry_datasets.ts b/x-pack/test/api_integration/apis/metrics_ui/infra_log_analysis_validation_log_entry_datasets.ts new file mode 100644 index 0000000000000..9867abcc67a7d --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/infra_log_analysis_validation_log_entry_datasets.ts @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + LOG_ANALYSIS_VALIDATE_DATASETS_PATH, + validateLogEntryDatasetsRequestPayloadRT, + validateLogEntryDatasetsResponsePayloadRT, +} from '../../../../plugins/infra/common/http_api/log_analysis/validation/datasets'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('API /infra/log_analysis/validation/log_entry_datasets', () => { + before(() => + esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/logs_and_metrics') + ); + after(() => + esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/logs_and_metrics') + ); + + it('works', async () => { + const response = await supertest + .post(LOG_ANALYSIS_VALIDATE_DATASETS_PATH) + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + validateLogEntryDatasetsRequestPayloadRT.encode({ + data: { + endTime: Date.now().valueOf(), + indices: ['filebeat-*'], + startTime: 1562766600672, + timestampField: '@timestamp', + runtimeMappings: {}, + }, + }) + ) + .expect(200); + + const { + data: { datasets }, + } = decodeOrThrow(validateLogEntryDatasetsResponsePayloadRT)(response.body); + + expect(datasets.length).to.be(1); + expect(datasets[0].indexName).to.be('filebeat-*'); + expect(datasets[0].datasets).to.eql([ + 'elasticsearch.gc', + 'elasticsearch.server', + 'kibana.log', + 'nginx.access', + ]); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/metrics_ui/metrics_overview_top.ts b/x-pack/test/api_integration/apis/metrics_ui/metrics_overview_top.ts new file mode 100644 index 0000000000000..ee73c9bd92a54 --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/metrics_overview_top.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 expect from '@kbn/expect'; +import { + TopNodesRequestRT, + TopNodesResponseRT, +} from '../../../../plugins/infra/common/http_api/overview_api'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; +import { DATES } from './constants'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + const { min, max } = DATES['7.0.0'].hosts; + + describe('API /metrics/overview/top', () => { + before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/7.0.0/hosts')); + after(() => esArchiver.unload('x-pack/test/functional/es_archives/infra/7.0.0/hosts')); + + it('works', async () => { + const response = await supertest + .post('/api/metrics/overview/top') + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + TopNodesRequestRT.encode({ + sourceId: 'default', + bucketSize: '300s', + size: 5, + timerange: { + from: min, + to: max, + }, + }) + ) + .expect(200); + + const { series } = decodeOrThrow(TopNodesResponseRT)(response.body); + + expect(series.length).to.be(1); + expect(series[0].id).to.be('demo-stack-mysql-01'); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list.ts b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list.ts new file mode 100644 index 0000000000000..bba38f622b0ab --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list.ts @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + ProcessListAPIRequestRT, + ProcessListAPIResponseRT, +} from '../../../../plugins/infra/common/http_api/host_details/process_list'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('API /metrics/process_list', () => { + before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm')); + after(() => + esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm') + ); + + it('works', async () => { + const response = await supertest + .post('/api/metrics/process_list') + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + ProcessListAPIRequestRT.encode({ + hostTerm: { + 'host.name': 'gke-observability-8--observability-8--bc1afd95-nhhw', + }, + indexPattern: 'metrics-*,metricbeat-*', + to: 1564432800000, + sortBy: { + name: 'cpu', + isAscending: false, + }, + searchFilter: [ + { + match_all: {}, + }, + ], + }) + ) + .expect(200); + + const { processList, summary } = decodeOrThrow(ProcessListAPIResponseRT)(response.body); + + expect(processList.length).to.be(10); + expect(summary.total).to.be(178); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list_chart.ts b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list_chart.ts new file mode 100644 index 0000000000000..ba4d7123556c1 --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list_chart.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + ProcessListAPIChartRequestRT, + ProcessListAPIChartResponseRT, +} from '../../../../plugins/infra/common/http_api/host_details/process_list'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('API /metrics/process_list/chart', () => { + before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm')); + after(() => + esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm') + ); + + it('works', async () => { + const response = await supertest + .post('/api/metrics/process_list/chart') + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + ProcessListAPIChartRequestRT.encode({ + hostTerm: { + 'host.name': 'gke-observability-8--observability-8--bc1afd95-nhhw', + }, + indexPattern: 'metrics-*,metricbeat-*', + to: 1564432800000, + command: '/usr/lib/systemd/systemd-journald', + }) + ) + .expect(200); + + const { cpu, memory } = decodeOrThrow(ProcessListAPIChartResponseRT)(response.body); + + expect(cpu.rows.length).to.be(16); + expect(memory.rows.length).to.be(16); + }); + }); +} From a28419a3276580838929c58c01198efd2ee4a291 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Fri, 19 Nov 2021 10:41:51 +0100 Subject: [PATCH 058/114] Improve the status page user interface (#118512) * initial improvements * add status expanded row * fix row ordering by status * fix data-test-subj * fix status summary row label * fix load_status unit tests * fix status_table unit tests * fix FTR tests * add server_status tests * add unit test for some of the new components * add unit tests for added libs * i18n for added text * update snapshots * resolve merge conflicts Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../__snapshots__/server_status.test.tsx.snap | 33 +++++ .../__snapshots__/status_table.test.tsx.snap | 45 +++++-- .../core_app/status/components/index.ts | 2 + .../status/components/server_status.test.tsx | 14 +- .../status/components/server_status.tsx | 15 +-- .../status/components/status_badge.test.tsx | 57 ++++++++ .../status/components/status_badge.tsx | 30 +++++ .../status/components/status_expanded_row.tsx | 36 ++++++ .../status/components/status_section.tsx | 40 ++++++ .../status/components/status_table.test.tsx | 13 +- .../status/components/status_table.tsx | 119 +++++++++++++---- .../status/components/version_header.test.tsx | 46 +++++++ .../status/components/version_header.tsx | 65 ++++++++++ src/core/public/core_app/status/lib/index.ts | 3 +- .../core_app/status/lib/load_status.test.ts | 27 ++-- .../public/core_app/status/lib/load_status.ts | 33 ++--- .../core_app/status/lib/status_level.test.ts | 122 ++++++++++++++++++ .../core_app/status/lib/status_level.ts | 44 +++++++ .../public/core_app/status/status_app.tsx | 84 +++--------- src/core/types/status.ts | 4 +- test/functional/apps/status_page/index.ts | 13 +- 21 files changed, 701 insertions(+), 144 deletions(-) create mode 100644 src/core/public/core_app/status/components/status_badge.test.tsx create mode 100644 src/core/public/core_app/status/components/status_badge.tsx create mode 100644 src/core/public/core_app/status/components/status_expanded_row.tsx create mode 100644 src/core/public/core_app/status/components/status_section.tsx create mode 100644 src/core/public/core_app/status/components/version_header.test.tsx create mode 100644 src/core/public/core_app/status/components/version_header.tsx create mode 100644 src/core/public/core_app/status/lib/status_level.test.ts create mode 100644 src/core/public/core_app/status/lib/status_level.ts diff --git a/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap b/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap index 7682a848b0b17..bcc60f5908592 100644 --- a/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap +++ b/src/core/public/core_app/status/components/__snapshots__/server_status.test.tsx.snap @@ -65,3 +65,36 @@ exports[`ServerStatus renders correctly for red state 2`] = ` `; + +exports[`ServerStatus renders correctly for yellow state 2`] = ` + + + + + + Yellow + + + + + +`; diff --git a/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap b/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap index c30637ed85a57..1966b609894a0 100644 --- a/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap +++ b/src/core/public/core_app/status/components/__snapshots__/status_table.test.tsx.snap @@ -1,31 +1,54 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`StatusTable renders when statuses is provided 1`] = ` - + + , "render": [Function], + "width": "40px", }, ] } data-test-subj="statusBreakdown" + isExpandable={true} + itemId={[Function]} + itemIdToExpandedRowMap={Object {}} items={ Array [ Object { "id": "plugin:1", + "original": Object { + "level": "available", + "summary": "Ready", + }, "state": Object { "id": "available", "message": "Ready", @@ -35,14 +58,16 @@ exports[`StatusTable renders when statuses is provided 1`] = ` }, ] } - noItemsMessage={ - - } responsive={true} rowProps={[Function]} + sorting={ + Object { + "sort": Object { + "direction": "asc", + "field": "state", + }, + } + } tableLayout="fixed" /> `; diff --git a/src/core/public/core_app/status/components/index.ts b/src/core/public/core_app/status/components/index.ts index fc491c7e71b39..c305ebf24b041 100644 --- a/src/core/public/core_app/status/components/index.ts +++ b/src/core/public/core_app/status/components/index.ts @@ -9,3 +9,5 @@ export { MetricTile, MetricTiles } from './metric_tiles'; export { ServerStatus } from './server_status'; export { StatusTable } from './status_table'; +export { StatusSection } from './status_section'; +export { VersionHeader } from './version_header'; diff --git a/src/core/public/core_app/status/components/server_status.test.tsx b/src/core/public/core_app/status/components/server_status.test.tsx index e4fa84d317dd6..13e6a36a65cfd 100644 --- a/src/core/public/core_app/status/components/server_status.test.tsx +++ b/src/core/public/core_app/status/components/server_status.test.tsx @@ -9,9 +9,9 @@ import React from 'react'; import { mount } from 'enzyme'; import { ServerStatus } from './server_status'; -import { FormattedStatus } from '../lib'; +import { StatusState } from '../lib'; -const getStatus = (parts: Partial = {}): FormattedStatus['state'] => ({ +const getStatus = (parts: Partial = {}): StatusState => ({ id: 'available', title: 'Green', uiColor: 'success', @@ -27,6 +27,16 @@ describe('ServerStatus', () => { expect(component.find('EuiBadge')).toMatchSnapshot(); }); + it('renders correctly for yellow state', () => { + const status = getStatus({ + id: 'degraded', + title: 'Yellow', + }); + const component = mount(); + expect(component.find('EuiTitle').text()).toMatchInlineSnapshot(`"Kibana status is Yellow"`); + expect(component.find('EuiBadge')).toMatchSnapshot(); + }); + it('renders correctly for red state', () => { const status = getStatus({ id: 'unavailable', diff --git a/src/core/public/core_app/status/components/server_status.tsx b/src/core/public/core_app/status/components/server_status.tsx index 01dabdfd484fe..1147e21d17737 100644 --- a/src/core/public/core_app/status/components/server_status.tsx +++ b/src/core/public/core_app/status/components/server_status.tsx @@ -7,13 +7,14 @@ */ import React, { FunctionComponent } from 'react'; -import { EuiText, EuiFlexGroup, EuiFlexItem, EuiTitle, EuiBadge } from '@elastic/eui'; +import { EuiText, EuiFlexGroup, EuiFlexItem, EuiTitle } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import type { FormattedStatus } from '../lib'; +import type { StatusState } from '../lib'; +import { StatusBadge } from './status_badge'; interface ServerStateProps { name: string; - serverState: FormattedStatus['state']; + serverState: StatusState; } export const ServerStatus: FunctionComponent = ({ name, serverState }) => ( @@ -26,13 +27,7 @@ export const ServerStatus: FunctionComponent = ({ name, server defaultMessage="Kibana status is {kibanaStatus}" values={{ kibanaStatus: ( - - {serverState.title} - + ), }} /> diff --git a/src/core/public/core_app/status/components/status_badge.test.tsx b/src/core/public/core_app/status/components/status_badge.test.tsx new file mode 100644 index 0000000000000..b0870e51d98d1 --- /dev/null +++ b/src/core/public/core_app/status/components/status_badge.test.tsx @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { shallowWithIntl } from '@kbn/test/jest'; +import { StatusBadge, StatusWithoutMessage } from './status_badge'; + +const getStatus = (parts: Partial = {}): StatusWithoutMessage => ({ + id: 'available', + title: 'Green', + uiColor: 'secondary', + ...parts, +}); + +describe('StatusBadge', () => { + it('propagates the correct properties to `EuiBadge`', () => { + const status = getStatus(); + + const component = shallowWithIntl(); + + expect(component).toMatchInlineSnapshot(` + + Green + + `); + }); + + it('propagates `data-test-subj` if provided', () => { + const status = getStatus({ + id: 'critical', + title: 'Red', + uiColor: 'danger', + }); + + const component = shallowWithIntl( + + ); + + expect(component).toMatchInlineSnapshot(` + + Red + + `); + }); +}); diff --git a/src/core/public/core_app/status/components/status_badge.tsx b/src/core/public/core_app/status/components/status_badge.tsx new file mode 100644 index 0000000000000..b46451a99a38c --- /dev/null +++ b/src/core/public/core_app/status/components/status_badge.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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC } from 'react'; +import { EuiBadge } from '@elastic/eui'; +import type { StatusState } from '../lib'; + +export type StatusWithoutMessage = Omit; + +interface StatusBadgeProps { + status: StatusWithoutMessage; + 'data-test-subj'?: string; +} + +export const StatusBadge: FC = (props) => { + return ( + + {props.status.title} + + ); +}; diff --git a/src/core/public/core_app/status/components/status_expanded_row.tsx b/src/core/public/core_app/status/components/status_expanded_row.tsx new file mode 100644 index 0000000000000..b85ca94a5efe9 --- /dev/null +++ b/src/core/public/core_app/status/components/status_expanded_row.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC, useMemo } from 'react'; +import { EuiCodeBlock, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import type { FormattedStatus } from '../lib'; + +interface StatusExpandedRowProps { + status: FormattedStatus; +} + +export const StatusExpandedRow: FC = ({ status }) => { + const { original } = status; + const statusAsString = useMemo(() => JSON.stringify(original, null, 2), [original]); + + return ( + + + + {statusAsString} + + + + ); +}; diff --git a/src/core/public/core_app/status/components/status_section.tsx b/src/core/public/core_app/status/components/status_section.tsx new file mode 100644 index 0000000000000..5cfa0e34971a6 --- /dev/null +++ b/src/core/public/core_app/status/components/status_section.tsx @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC, useMemo } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiPageContent, EuiSpacer, EuiTitle } from '@elastic/eui'; +import { StatusTable } from './status_table'; +import { FormattedStatus, getHighestStatus } from '../lib'; +import { StatusBadge } from './status_badge'; + +interface StatusSectionProps { + id: string; + title: string; + statuses: FormattedStatus[]; +} + +export const StatusSection: FC = ({ id, title, statuses }) => { + const highestStatus = useMemo(() => getHighestStatus(statuses), [statuses]); + + return ( + + + + +

{title}

+
+
+ + + +
+ + +
+ ); +}; diff --git a/src/core/public/core_app/status/components/status_table.test.tsx b/src/core/public/core_app/status/components/status_table.test.tsx index 3cb5d1126ef31..1aa39325d808e 100644 --- a/src/core/public/core_app/status/components/status_table.test.tsx +++ b/src/core/public/core_app/status/components/status_table.test.tsx @@ -8,6 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { ServiceStatus } from '../../../../types/status'; import { StatusTable } from './status_table'; const state = { @@ -17,13 +18,21 @@ const state = { title: 'green', }; +const createServiceStatus = (parts: Partial = {}): ServiceStatus => ({ + level: 'available', + summary: 'Ready', + ...parts, +}); + describe('StatusTable', () => { it('renders when statuses is provided', () => { - const component = shallow(); + const component = shallow( + + ); expect(component).toMatchSnapshot(); }); - it('renders when statuses is not provided', () => { + it('renders empty when statuses is not provided', () => { const component = shallow(); expect(component.isEmptyRender()).toBe(true); }); diff --git a/src/core/public/core_app/status/components/status_table.tsx b/src/core/public/core_app/status/components/status_table.tsx index 07a25d99a326b..755469145e01b 100644 --- a/src/core/public/core_app/status/components/status_table.tsx +++ b/src/core/public/core_app/status/components/status_table.tsx @@ -6,50 +6,115 @@ * Side Public License, v 1. */ -import React, { FunctionComponent } from 'react'; -import { EuiBasicTable, EuiIcon } from '@elastic/eui'; +import React, { FunctionComponent, ReactElement, useState } from 'react'; +import { + EuiInMemoryTable, + EuiIcon, + EuiButtonIcon, + EuiBasicTableColumn, + EuiScreenReaderOnly, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import type { FormattedStatus } from '../lib'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { FormattedStatus, getLevelSortValue } from '../lib'; +import { StatusExpandedRow } from './status_expanded_row'; interface StatusTableProps { statuses?: FormattedStatus[]; } -const tableColumns = [ - { - field: 'state', - name: '', - render: (state: FormattedStatus['state']) => ( - - ), - width: '32px', - }, - { - field: 'id', - name: i18n.translate('core.statusPage.statusTable.columns.idHeader', { - defaultMessage: 'ID', - }), - }, - { - field: 'state', - name: i18n.translate('core.statusPage.statusTable.columns.statusHeader', { - defaultMessage: 'Status', - }), - render: (state: FormattedStatus['state']) => {state.message}, - }, -]; +const expandLabel = i18n.translate('core.statusPage.statusTable.columns.expandRow.expandLabel', { + defaultMessage: 'Expand', +}); + +const collapseLabel = i18n.translate( + 'core.statusPage.statusTable.columns.expandRow.collapseLabel', + { defaultMessage: 'Collapse' } +); export const StatusTable: FunctionComponent = ({ statuses }) => { + const [itemIdToExpandedRowMap, setItemIdToExpandedRowMap] = useState< + Record + >({}); if (!statuses) { return null; } + + const toggleDetails = (item: FormattedStatus) => { + const newRowMap = { ...itemIdToExpandedRowMap }; + if (itemIdToExpandedRowMap[item.id]) { + delete newRowMap[item.id]; + } else { + newRowMap[item.id] = ; + } + setItemIdToExpandedRowMap(newRowMap); + }; + + const tableColumns: Array> = [ + { + field: 'state', + name: i18n.translate('core.statusPage.statusTable.columns.statusHeader', { + defaultMessage: 'Status', + }), + render: (state: FormattedStatus['state']) => ( + + ), + width: '100px', + align: 'center' as const, + sortable: (row: FormattedStatus) => getLevelSortValue(row), + }, + { + field: 'id', + name: i18n.translate('core.statusPage.statusTable.columns.idHeader', { + defaultMessage: 'ID', + }), + sortable: true, + }, + { + field: 'state', + name: i18n.translate('core.statusPage.statusTable.columns.statusSummaryHeader', { + defaultMessage: 'Status summary', + }), + render: (state: FormattedStatus['state']) => {state.message}, + }, + { + name: ( + + + + ), + align: 'right', + width: '40px', + isExpander: true, + render: (item: FormattedStatus) => ( + toggleDetails(item)} + aria-label={itemIdToExpandedRowMap[item.id] ? collapseLabel : expandLabel} + iconType={itemIdToExpandedRowMap[item.id] ? 'arrowUp' : 'arrowDown'} + /> + ), + }, + ]; + return ( - + columns={tableColumns} + itemId={(item) => item.id} items={statuses} + isExpandable={true} + itemIdToExpandedRowMap={itemIdToExpandedRowMap} rowProps={({ state }) => ({ className: `status-table-row-${state.uiColor}`, })} + sorting={{ + sort: { + direction: 'asc', + field: 'state', + }, + }} data-test-subj="statusBreakdown" /> ); diff --git a/src/core/public/core_app/status/components/version_header.test.tsx b/src/core/public/core_app/status/components/version_header.test.tsx new file mode 100644 index 0000000000000..d51927f83550b --- /dev/null +++ b/src/core/public/core_app/status/components/version_header.test.tsx @@ -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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { mountWithIntl, findTestSubject } from '@kbn/test/jest'; +import type { ServerVersion } from '../../../../types/status'; +import { VersionHeader } from './version_header'; + +const buildServerVersion = (parts: Partial = {}): ServerVersion => ({ + number: 'version_number', + build_hash: 'build_hash', + build_number: 9000, + build_snapshot: false, + ...parts, +}); + +describe('VersionHeader', () => { + it('displays the version', () => { + const version = buildServerVersion({ number: '8.42.13' }); + const component = mountWithIntl(); + + const versionNode = findTestSubject(component, 'statusBuildVersion'); + expect(versionNode.text()).toEqual('VERSION: 8.42.13'); + }); + + it('displays the build number', () => { + const version = buildServerVersion({ build_number: 42 }); + const component = mountWithIntl(); + + const buildNumberNode = findTestSubject(component, 'statusBuildNumber'); + expect(buildNumberNode.text()).toEqual('BUILD: 42'); + }); + + it('displays the build hash', () => { + const version = buildServerVersion({ build_hash: 'some_hash' }); + const component = mountWithIntl(); + + const buildHashNode = findTestSubject(component, 'statusBuildHash'); + expect(buildHashNode.text()).toEqual('COMMIT: some_hash'); + }); +}); diff --git a/src/core/public/core_app/status/components/version_header.tsx b/src/core/public/core_app/status/components/version_header.tsx new file mode 100644 index 0000000000000..cd19dbc205615 --- /dev/null +++ b/src/core/public/core_app/status/components/version_header.tsx @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiPageContent, EuiText } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import type { ServerVersion } from '../../../../types/status'; + +interface VersionHeaderProps { + version: ServerVersion; +} + +export const VersionHeader: FC = ({ version }) => { + const { build_hash: buildHash, build_number: buildNumber, number } = version; + return ( + + + + +

+ {number}, + }} + /> +

+
+
+ + +

+ {buildNumber}, + }} + /> +

+
+
+ + +

+ {buildHash}, + }} + /> +

+
+
+
+
+ ); +}; diff --git a/src/core/public/core_app/status/lib/index.ts b/src/core/public/core_app/status/lib/index.ts index c3434e07319b0..305e235c21e07 100644 --- a/src/core/public/core_app/status/lib/index.ts +++ b/src/core/public/core_app/status/lib/index.ts @@ -9,4 +9,5 @@ export { formatNumber } from './format_number'; export { loadStatus } from './load_status'; export type { DataType } from './format_number'; -export type { Metric, FormattedStatus, ProcessedServerResponse } from './load_status'; +export type { Metric, FormattedStatus, ProcessedServerResponse, StatusState } from './load_status'; +export { getHighestStatus, groupByLevel, getLevelSortValue, orderedLevels } from './status_level'; diff --git a/src/core/public/core_app/status/lib/load_status.test.ts b/src/core/public/core_app/status/lib/load_status.test.ts index b6e7ba9b91e97..555e793b41aa5 100644 --- a/src/core/public/core_app/status/lib/load_status.test.ts +++ b/src/core/public/core_app/status/lib/load_status.test.ts @@ -37,11 +37,11 @@ const mockedResponse: StatusResponse = { }, }, plugins: { - '1': { + plugin1: { level: 'available', summary: 'Ready', }, - '2': { + plugin2: { level: 'degraded', summary: 'Something is weird', }, @@ -165,39 +165,50 @@ describe('response processing', () => { expect(notifications.toasts.addDanger).toHaveBeenCalledTimes(1); }); - test('includes the plugin statuses', async () => { + test('includes core statuses', async () => { const data = await loadStatus({ http, notifications }); - expect(data.statuses).toEqual([ + expect(data.coreStatus).toEqual([ { - id: 'core:elasticsearch', + id: 'elasticsearch', state: { id: 'available', title: 'Green', message: 'Elasticsearch is available', uiColor: 'success', }, + original: mockedResponse.status.core.elasticsearch, }, { - id: 'core:savedObjects', + id: 'savedObjects', state: { id: 'available', title: 'Green', message: 'SavedObjects service has completed migrations and is available', uiColor: 'success', }, + original: mockedResponse.status.core.savedObjects, }, + ]); + }); + + test('includes the plugin statuses', async () => { + const data = await loadStatus({ http, notifications }); + + expect(data.pluginStatus).toEqual([ { - id: 'plugin:1', + id: 'plugin1', state: { id: 'available', title: 'Green', message: 'Ready', uiColor: 'success' }, + original: mockedResponse.status.plugins.plugin1, }, { - id: 'plugin:2', + id: 'plugin2', state: { id: 'degraded', title: 'Yellow', message: 'Something is weird', uiColor: 'warning', }, + original: mockedResponse.status.plugins.plugin2, }, ]); }); diff --git a/src/core/public/core_app/status/lib/load_status.ts b/src/core/public/core_app/status/lib/load_status.ts index 0baa67d4e793c..31f20bf5c4edf 100644 --- a/src/core/public/core_app/status/lib/load_status.ts +++ b/src/core/public/core_app/status/lib/load_status.ts @@ -21,12 +21,15 @@ export interface Metric { export interface FormattedStatus { id: string; - state: { - id: ServiceStatusLevel; - title: string; - message: string; - uiColor: string; - }; + state: StatusState; + original: ServiceStatus; +} + +export interface StatusState { + id: ServiceStatusLevel; + title: string; + message: string; + uiColor: string; } interface StatusUIAttributes { @@ -96,6 +99,7 @@ function formatStatus(id: string, status: ServiceStatus): FormattedStatus { return { id, + original: status, state: { id: status.level, message: status.summary, @@ -105,7 +109,7 @@ function formatStatus(id: string, status: ServiceStatus): FormattedStatus { }; } -const STATUS_LEVEL_UI_ATTRS: Record = { +export const STATUS_LEVEL_UI_ATTRS: Record = { critical: { title: i18n.translate('core.status.redTitle', { defaultMessage: 'Red', @@ -178,14 +182,13 @@ export async function loadStatus({ return { name: response.name, version: response.version, - statuses: [ - ...Object.entries(response.status.core).map(([serviceName, status]) => - formatStatus(`core:${serviceName}`, status) - ), - ...Object.entries(response.status.plugins).map(([pluginName, status]) => - formatStatus(`plugin:${pluginName}`, status) - ), - ], + coreStatus: Object.entries(response.status.core).map(([serviceName, status]) => + formatStatus(serviceName, status) + ), + pluginStatus: Object.entries(response.status.plugins).map(([pluginName, status]) => + formatStatus(pluginName, status) + ), + serverState: formatStatus('overall', response.status.overall).state, metrics: formatMetrics(response), }; diff --git a/src/core/public/core_app/status/lib/status_level.test.ts b/src/core/public/core_app/status/lib/status_level.test.ts new file mode 100644 index 0000000000000..44322748992a0 --- /dev/null +++ b/src/core/public/core_app/status/lib/status_level.test.ts @@ -0,0 +1,122 @@ +/* + * Copyright 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 { ServiceStatus } from '../../../../types/status'; +import { getLevelSortValue, groupByLevel, getHighestStatus } from './status_level'; +import { FormattedStatus, StatusState } from './load_status'; + +type CreateStatusInput = Partial> & { + state?: Partial; +}; + +const dummyStatus: ServiceStatus = { + level: 'available', + summary: 'not used in this logic', +}; + +const createFormattedStatus = (parts: CreateStatusInput = {}): FormattedStatus => ({ + original: dummyStatus, + id: 'id', + ...parts, + state: { + id: 'available', + title: 'Green', + message: 'alright', + uiColor: 'primary', + ...parts.state, + }, +}); + +describe('getLevelSortValue', () => { + it('returns the correct value for `critical` state', () => { + expect(getLevelSortValue(createFormattedStatus({ state: { id: 'critical' } }))).toEqual(0); + }); + + it('returns the correct value for `unavailable` state', () => { + expect(getLevelSortValue(createFormattedStatus({ state: { id: 'unavailable' } }))).toEqual(1); + }); + + it('returns the correct value for `degraded` state', () => { + expect(getLevelSortValue(createFormattedStatus({ state: { id: 'degraded' } }))).toEqual(2); + }); + + it('returns the correct value for `available` state', () => { + expect(getLevelSortValue(createFormattedStatus({ state: { id: 'available' } }))).toEqual(3); + }); +}); + +describe('groupByLevel', () => { + it('groups statuses by their level', () => { + const result = groupByLevel([ + createFormattedStatus({ + id: 'available-1', + state: { id: 'available', title: 'green', uiColor: '#00FF00' }, + }), + createFormattedStatus({ + id: 'critical-1', + state: { id: 'critical', title: 'red', uiColor: '#FF0000' }, + }), + createFormattedStatus({ + id: 'degraded-1', + state: { id: 'degraded', title: 'yellow', uiColor: '#FFFF00' }, + }), + createFormattedStatus({ + id: 'critical-2', + state: { id: 'critical', title: 'red', uiColor: '#FF0000' }, + }), + ]); + + expect(result.size).toEqual(3); + expect(result.get('available')!.map((e) => e.id)).toEqual(['available-1']); + expect(result.get('degraded')!.map((e) => e.id)).toEqual(['degraded-1']); + expect(result.get('critical')!.map((e) => e.id)).toEqual(['critical-1', 'critical-2']); + }); + + it('returns an empty map when input list is empty', () => { + const result = groupByLevel([]); + expect(result.size).toEqual(0); + }); +}); + +describe('getHighestStatus', () => { + it('returns the values from the highest status', () => { + expect( + getHighestStatus([ + createFormattedStatus({ state: { id: 'available', title: 'green', uiColor: '#00FF00' } }), + createFormattedStatus({ state: { id: 'critical', title: 'red', uiColor: '#FF0000' } }), + createFormattedStatus({ state: { id: 'degraded', title: 'yellow', uiColor: '#FFFF00' } }), + ]) + ).toEqual({ + id: 'critical', + title: 'red', + uiColor: '#FF0000', + }); + }); + + it('handles multiple statuses with the same level', () => { + expect( + getHighestStatus([ + createFormattedStatus({ state: { id: 'degraded', title: 'yellow', uiColor: '#FF0000' } }), + createFormattedStatus({ state: { id: 'available', title: 'green', uiColor: '#00FF00' } }), + createFormattedStatus({ state: { id: 'degraded', title: 'yellow', uiColor: '#FFFF00' } }), + ]) + ).toEqual({ + id: 'degraded', + title: 'yellow', + uiColor: '#FF0000', + }); + }); + + it('returns the default values for `available` when the input list is empty', () => { + expect(getHighestStatus([])).toEqual({ + id: 'available', + title: 'Green', + uiColor: 'success', + }); + }); +}); diff --git a/src/core/public/core_app/status/lib/status_level.ts b/src/core/public/core_app/status/lib/status_level.ts new file mode 100644 index 0000000000000..f0c3be949057f --- /dev/null +++ b/src/core/public/core_app/status/lib/status_level.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { ServiceStatusLevel } from '../../../../types/status'; +import { FormattedStatus, StatusState, STATUS_LEVEL_UI_ATTRS } from './load_status'; + +export const orderedLevels: ServiceStatusLevel[] = [ + 'critical', + 'unavailable', + 'degraded', + 'available', +]; + +export const groupByLevel = (statuses: FormattedStatus[]) => { + return statuses.reduce((map, status) => { + const existing = map.get(status.state.id) ?? []; + map.set(status.state.id, [...existing, status]); + return map; + }, new Map()); +}; + +export const getHighestStatus = (statuses: FormattedStatus[]): Omit => { + const grouped = groupByLevel(statuses); + for (const level of orderedLevels) { + if (grouped.has(level) && grouped.get(level)!.length) { + const { message, ...status } = grouped.get(level)![0].state; + return status; + } + } + return { + id: 'available', + title: STATUS_LEVEL_UI_ATTRS.available.title, + uiColor: STATUS_LEVEL_UI_ATTRS.available.uiColor, + }; +}; + +export const getLevelSortValue = (status: FormattedStatus) => { + return orderedLevels.indexOf(status.state.id); +}; diff --git a/src/core/public/core_app/status/status_app.tsx b/src/core/public/core_app/status/status_app.tsx index 7d7e30319fb2f..7ec1518719874 100644 --- a/src/core/public/core_app/status/status_app.tsx +++ b/src/core/public/core_app/status/status_app.tsx @@ -7,22 +7,13 @@ */ import React, { Component } from 'react'; -import { - EuiLoadingSpinner, - EuiText, - EuiTitle, - EuiPage, - EuiPageBody, - EuiPageContent, - EuiSpacer, - EuiFlexGroup, - EuiFlexItem, -} from '@elastic/eui'; +import { EuiLoadingSpinner, EuiText, EuiPage, EuiPageBody, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; +import { i18n } from '@kbn/i18n'; import { HttpSetup } from '../../http'; import { NotificationsSetup } from '../../notifications'; import { loadStatus, ProcessedServerResponse } from './lib'; -import { MetricTiles, StatusTable, ServerStatus } from './components'; +import { MetricTiles, ServerStatus, StatusSection, VersionHeader } from './components'; interface StatusAppProps { http: HttpSetup; @@ -74,69 +65,36 @@ export class StatusApp extends Component { ); } - // Extract the items needed to render each component - const { metrics, statuses, serverState, name, version } = data!; - const { build_hash: buildHash, build_number: buildNumber } = version; + const { metrics, coreStatus, pluginStatus, serverState, name, version } = data!; return ( + + - - - - - -

- -

-
-
- - - - -

- {buildNumber}, - }} - /> -

-
-
- - -

- {buildHash}, - }} - /> -

-
-
-
-
-
- - + + - -
+
); diff --git a/src/core/types/status.ts b/src/core/types/status.ts index 58c954fb70050..ad5c5b13c9a3a 100644 --- a/src/core/types/status.ts +++ b/src/core/types/status.ts @@ -28,9 +28,7 @@ export interface ServiceStatus extends Omit { * but overwriting the `level` to its stringified version. */ export type CoreStatus = { - [ServiceName in keyof CoreStatusFromServer]: Omit & { - level: ServiceStatusLevel; - }; + [ServiceName in keyof CoreStatusFromServer]: ServiceStatus; }; export type ServerMetrics = Omit & { diff --git a/test/functional/apps/status_page/index.ts b/test/functional/apps/status_page/index.ts index 08693372cc6eb..99f32fa5da4c7 100644 --- a/test/functional/apps/status_page/index.ts +++ b/test/functional/apps/status_page/index.ts @@ -20,12 +20,19 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.common.navigateToApp('status_page'); }); - it('should show the build hash and number', async () => { + it('should show the build version', async () => { + const buildVersionText = await testSubjects.getVisibleText('statusBuildVersion'); + expect(buildVersionText).to.contain('VERSION: '); + }); + + it('should show the build number', async () => { const buildNumberText = await testSubjects.getVisibleText('statusBuildNumber'); - expect(buildNumberText).to.contain('BUILD '); + expect(buildNumberText).to.contain('BUILD: '); + }); + it('should show the build hash', async () => { const hashText = await testSubjects.getVisibleText('statusBuildHash'); - expect(hashText).to.contain('COMMIT '); + expect(hashText).to.contain('COMMIT: '); }); it('should display the server metrics', async () => { From ad6b687dadd2d98c8cd89222cdd9134edbbde1af Mon Sep 17 00:00:00 2001 From: Cristina Amico Date: Fri, 19 Nov 2021 11:29:02 +0100 Subject: [PATCH 059/114] [Fleet] Split package policy Upgrade endpoint (#118854) * [Fleet] Split package policy Upgrade endpoint * Add openapi specs --- .../plugins/fleet/common/constants/routes.ts | 1 + .../plugins/fleet/common/openapi/bundled.json | 243 +++++++++++++++++- .../plugins/fleet/common/openapi/bundled.yaml | 180 +++++++++++-- .../components/schemas/upgrade_diff.yaml | 3 + .../fleet/common/openapi/entrypoint.yaml | 4 + .../paths/package_policies@upgrade.yaml | 34 +++ .../package_policies@upgrade_dryrun.yaml | 32 +++ .../plugins/fleet/common/services/routes.ts | 4 + .../hooks/use_request/package_policy.ts | 6 +- .../server/routes/package_policy/handlers.ts | 85 +++--- .../server/routes/package_policy/index.ts | 12 + .../fleet/server/services/package_policy.ts | 1 - .../server/types/rest_spec/package_policy.ts | 7 +- .../apis/package_policy/upgrade.ts | 52 +--- 14 files changed, 559 insertions(+), 105 deletions(-) create mode 100644 x-pack/plugins/fleet/common/openapi/components/schemas/upgrade_diff.yaml create mode 100644 x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml create mode 100644 x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml diff --git a/x-pack/plugins/fleet/common/constants/routes.ts b/x-pack/plugins/fleet/common/constants/routes.ts index 235a1c5bd85e5..9fc20bbf38eb7 100644 --- a/x-pack/plugins/fleet/common/constants/routes.ts +++ b/x-pack/plugins/fleet/common/constants/routes.ts @@ -46,6 +46,7 @@ export const PACKAGE_POLICY_API_ROUTES = { UPDATE_PATTERN: `${PACKAGE_POLICY_API_ROOT}/{packagePolicyId}`, DELETE_PATTERN: `${PACKAGE_POLICY_API_ROOT}/delete`, UPGRADE_PATTERN: `${PACKAGE_POLICY_API_ROOT}/upgrade`, + DRYRUN_PATTERN: `${PACKAGE_POLICY_API_ROOT}/upgrade/dryrun`, }; // Agent policy API routes diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index a9e92e3fc293a..1e17c693e01b9 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -1603,6 +1603,115 @@ ] } }, + "/package_policies/upgrade": { + "post": { + "summary": "Package policy - Upgrade", + "operationId": "upgrade-package-policy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "packagePolicyIds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "packagePolicyIds" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "required": [ + "id", + "success" + ] + } + } + } + } + } + } + } + }, + "/package_policies/upgrade/dryrun": { + "post": { + "summary": "Package policy - Upgrade Dry run", + "operationId": "upgrade-package-policy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "packagePolicyIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "packageVersion": { + "type": "string" + } + }, + "required": [ + "packagePolicyIds" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "hasErrors": { + "type": "boolean" + }, + "diff": { + "schema": null, + "$ref": "#/components/schemas/upgrade_diff" + }, + "required": [ + "hasErrors" + ] + } + } + } + } + } + } + } + }, "/package_policies/{packagePolicyId}": { "get": { "summary": "Package policy - Info", @@ -1716,6 +1825,74 @@ } }, "operationId": "get-outputs" + }, + "post": { + "summary": "Outputs", + "description": "Create a new output", + "tags": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "item": { + "$ref": "#/components/schemas/output" + } + } + } + } + } + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "elasticsearch" + ] + }, + "is_default": { + "type": "boolean" + }, + "is_default_monitoring": { + "type": "boolean" + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, + "ca_sha256": { + "type": "string" + }, + "config_yaml": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + } + } + } + }, + "operationId": "post-outputs" } }, "/outputs/{outputId}": { @@ -1754,6 +1931,35 @@ "required": true } ], + "delete": { + "summary": "Output - Delete", + "operationId": "delete-output", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + } + } + }, + "parameters": [ + { + "$ref": "#/components/parameters/kbn_xsrf" + } + ] + }, "put": { "summary": "Output - Update", "operationId": "update-output", @@ -1763,19 +1969,38 @@ "schema": { "type": "object", "properties": { - "hosts": { + "name": { "type": "string" }, + "type": { + "type": "string", + "enum": [ + "elasticsearch" + ] + }, + "is_default": { + "type": "boolean" + }, + "is_default_monitoring": { + "type": "boolean" + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, "ca_sha256": { "type": "string" }, - "config": { - "type": "object" - }, "config_yaml": { "type": "string" } - } + }, + "required": [ + "name", + "type" + ] } } } @@ -2626,6 +2851,11 @@ "created_at" ] }, + "upgrade_diff": { + "title": "Package policy Upgrade dryrun", + "type": "array", + "items": {} + }, "update_package_policy": { "title": "Update package policy", "allOf": [ @@ -2652,6 +2882,9 @@ "is_default": { "type": "boolean" }, + "is_default_monitoring": { + "type": "boolean" + }, "name": { "type": "string" }, diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index b997e31f4bb8d..1d7f1cb9ccf1f 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -8,9 +8,9 @@ info: name: Fleet Team license: name: Elastic License 2.0 - url: 'https://www.elastic.co/licensing/elastic-license' + url: https://www.elastic.co/licensing/elastic-license servers: - - url: 'http://localhost:5601/api/fleet' + - url: http://localhost:5601/api/fleet description: local paths: /setup: @@ -99,7 +99,7 @@ paths: $ref: '#/components/schemas/search_result' operationId: list-all-packages parameters: [] - '/epm/packages/{pkgkey}': + /epm/packages/{pkgkey}: get: summary: Packages - Info tags: [] @@ -361,7 +361,7 @@ paths: application/json: schema: $ref: '#/components/schemas/bulk_upgrade_agents' - '/agents/{agentId}': + /agents/{agentId}: parameters: - schema: type: string @@ -422,7 +422,7 @@ paths: operationId: delete-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agents/{agentId}/reassign': + /agents/{agentId}/reassign: parameters: - schema: type: string @@ -453,7 +453,7 @@ paths: type: string required: - policy_id - '/agents/{agentId}/unenroll': + /agents/{agentId}/unenroll: parameters: - schema: type: string @@ -498,7 +498,7 @@ paths: type: boolean force: type: boolean - '/agents/{agentId}/upgrade': + /agents/{agentId}/upgrade: parameters: - schema: type: string @@ -666,7 +666,7 @@ paths: security: [] parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agent_policies/{agentPolicyId}': + /agent_policies/{agentPolicyId}: parameters: - schema: type: string @@ -714,7 +714,7 @@ paths: $ref: '#/components/schemas/new_agent_policy' parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agent_policies/{agentPolicyId}/copy': + /agent_policies/{agentPolicyId}/copy: parameters: - schema: type: string @@ -832,7 +832,7 @@ paths: operationId: create-enrollment-api-keys parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/enrollment-api-keys/{keyId}': + /enrollment-api-keys/{keyId}: parameters: - schema: type: string @@ -973,7 +973,75 @@ paths: - success parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/package_policies/{packagePolicyId}': + /package_policies/upgrade: + post: + summary: Package policy - Upgrade + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + /package_policies/upgrade/dryrun: + post: + summary: Package policy - Upgrade Dry run + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + packageVersion: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + hasErrors: + type: boolean + diff: + schema: null + $ref: '#/components/schemas/upgrade_diff' + required: + - hasErrors + /package_policies/{packagePolicyId}: get: summary: Package policy - Info tags: [] @@ -1044,7 +1112,51 @@ paths: perPage: type: integer operationId: get-outputs - '/outputs/{outputId}': + post: + summary: Outputs + description: Create a new output + tags: [] + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/output' + requestBody: + content: + application/json: + schema: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + enum: + - elasticsearch + is_default: + type: boolean + is_default_monitoring: + type: boolean + hosts: + type: array + items: + type: string + ca_sha256: + type: string + config_yaml: + type: string + required: + - name + - type + operationId: post-outputs + /outputs/{outputId}: get: summary: Output - Info tags: [] @@ -1067,6 +1179,23 @@ paths: name: outputId in: path required: true + delete: + summary: Output - Delete + operationId: delete-output + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + id: + type: string + required: + - id + parameters: + - $ref: '#/components/parameters/kbn_xsrf' put: summary: Output - Update operationId: update-output @@ -1076,14 +1205,27 @@ paths: schema: type: object properties: - hosts: + name: + type: string + type: type: string + enum: + - elasticsearch + is_default: + type: boolean + is_default_monitoring: + type: boolean + hosts: + type: array + items: + type: string ca_sha256: type: string - config: - type: object config_yaml: type: string + required: + - name + - type responses: '200': description: OK @@ -1098,7 +1240,7 @@ paths: - item parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/epm/packages/{pkgName}/stats': + /epm/packages/{pkgName}/stats: get: summary: Get stats for a package tags: [] @@ -1653,6 +1795,10 @@ components: - api_key - active - created_at + upgrade_diff: + title: Package policy Upgrade dryrun + type: array + items: {} update_package_policy: title: Update package policy allOf: @@ -1669,6 +1815,8 @@ components: type: string is_default: type: boolean + is_default_monitoring: + type: boolean name: type: string type: diff --git a/x-pack/plugins/fleet/common/openapi/components/schemas/upgrade_diff.yaml b/x-pack/plugins/fleet/common/openapi/components/schemas/upgrade_diff.yaml new file mode 100644 index 0000000000000..e3a2fc708dc62 --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/components/schemas/upgrade_diff.yaml @@ -0,0 +1,3 @@ +title: Package policy Upgrade dryrun +type: array +items: {} \ No newline at end of file diff --git a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml index ad8ef1408ae6b..5495f2b3ccacf 100644 --- a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml +++ b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml @@ -62,6 +62,10 @@ paths: $ref: paths/package_policies.yaml /package_policies/delete: $ref: paths/package_policies@delete.yaml + /package_policies/upgrade: + $ref: paths/package_policies@upgrade.yaml + /package_policies/upgrade/dryrun: + $ref: paths/package_policies@upgrade_dryrun.yaml '/package_policies/{packagePolicyId}': $ref: 'paths/package_policies@{package_policy_id}.yaml' /outputs: diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml new file mode 100644 index 0000000000000..92c316a498905 --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml @@ -0,0 +1,34 @@ +post: + summary: Package policy - Upgrade + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml new file mode 100644 index 0000000000000..8b3b0c6147621 --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml @@ -0,0 +1,32 @@ +post: + summary: Package policy - Upgrade Dry run + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + packageVersion: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + hasErrors: + type: boolean + diff: + schema: + $ref: ../components/schemas/upgrade_diff.yaml + required: + - hasErrors diff --git a/x-pack/plugins/fleet/common/services/routes.ts b/x-pack/plugins/fleet/common/services/routes.ts index 79ea19360c849..77445d88356ce 100644 --- a/x-pack/plugins/fleet/common/services/routes.ts +++ b/x-pack/plugins/fleet/common/services/routes.ts @@ -89,6 +89,10 @@ export const packagePolicyRouteService = { getUpgradePath: () => { return PACKAGE_POLICY_API_ROUTES.UPGRADE_PATTERN; }, + + getDryRunPath: () => { + return PACKAGE_POLICY_API_ROUTES.DRYRUN_PATTERN; + }, }; export const agentPolicyRouteService = { diff --git a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts index 5aa36ba2e8268..6223c1a397104 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts @@ -77,9 +77,8 @@ export function sendUpgradePackagePolicyDryRun( packagePolicyIds: string[], packageVersion?: string ) { - const body: { packagePolicyIds: string[]; dryRun: boolean; packageVersion?: string } = { + const body: { packagePolicyIds: string[]; packageVersion?: string } = { packagePolicyIds, - dryRun: true, }; if (packageVersion) { @@ -87,7 +86,7 @@ export function sendUpgradePackagePolicyDryRun( } return sendRequest({ - path: packagePolicyRouteService.getUpgradePath(), + path: packagePolicyRouteService.getDryRunPath(), method: 'post', body: JSON.stringify(body), }); @@ -99,7 +98,6 @@ export function sendUpgradePackagePolicy(packagePolicyIds: string[]) { method: 'post', body: JSON.stringify({ packagePolicyIds, - dryRun: false, }), }); } diff --git a/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts b/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts index f61890f852798..330db62bbd604 100644 --- a/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts @@ -18,6 +18,7 @@ import type { UpdatePackagePolicyRequestSchema, DeletePackagePoliciesRequestSchema, UpgradePackagePoliciesRequestSchema, + DryRunPackagePoliciesRequestSchema, } from '../../types'; import type { CreatePackagePolicyResponse, @@ -192,8 +193,6 @@ export const deletePackagePolicyHandler: RequestHandler< } }; -// TODO: Separate the upgrade and dry-run processes into separate endpoints, and address -// duplicate logic in error handling as part of https://github.com/elastic/kibana/issues/63123 export const upgradePackagePolicyHandler: RequestHandler< unknown, unknown, @@ -203,50 +202,56 @@ export const upgradePackagePolicyHandler: RequestHandler< const esClient = context.core.elasticsearch.client.asCurrentUser; const user = appContextService.getSecurity()?.authc.getCurrentUser(request) || undefined; try { - if (request.body.dryRun) { - const body: UpgradePackagePolicyDryRunResponse = []; - - for (const id of request.body.packagePolicyIds) { - const result = await packagePolicyService.getUpgradeDryRunDiff( - soClient, - id, - request.body.packageVersion - ); - body.push(result); - } - - const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); - - if (firstFatalError) { - return response.customError({ - statusCode: firstFatalError.statusCode!, - body: { message: firstFatalError.body!.message }, - }); - } + const body: UpgradePackagePolicyResponse = await packagePolicyService.upgrade( + soClient, + esClient, + request.body.packagePolicyIds, + { user } + ); - return response.ok({ - body, + const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); + + if (firstFatalError) { + return response.customError({ + statusCode: firstFatalError.statusCode!, + body: { message: firstFatalError.body!.message }, }); - } else { - const body: UpgradePackagePolicyResponse = await packagePolicyService.upgrade( - soClient, - esClient, - request.body.packagePolicyIds, - { user } - ); + } + return response.ok({ + body, + }); + } catch (error) { + return defaultIngestErrorHandler({ error, response }); + } +}; - const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); +export const dryRunUpgradePackagePolicyHandler: RequestHandler< + unknown, + unknown, + TypeOf +> = async (context, request, response) => { + const soClient = context.core.savedObjects.client; + try { + const body: UpgradePackagePolicyDryRunResponse = []; + const { packagePolicyIds, packageVersion } = request.body; - if (firstFatalError) { - return response.customError({ - statusCode: firstFatalError.statusCode!, - body: { message: firstFatalError.body!.message }, - }); - } - return response.ok({ - body, + for (const id of packagePolicyIds) { + const result = await packagePolicyService.getUpgradeDryRunDiff(soClient, id, packageVersion); + body.push(result); + } + + const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); + + if (firstFatalError) { + return response.customError({ + statusCode: firstFatalError.statusCode!, + body: { message: firstFatalError.body!.message }, }); } + + return response.ok({ + body, + }); } catch (error) { return defaultIngestErrorHandler({ error, response }); } diff --git a/x-pack/plugins/fleet/server/routes/package_policy/index.ts b/x-pack/plugins/fleet/server/routes/package_policy/index.ts index 9639f22e479f5..596532a17a8c8 100644 --- a/x-pack/plugins/fleet/server/routes/package_policy/index.ts +++ b/x-pack/plugins/fleet/server/routes/package_policy/index.ts @@ -15,6 +15,7 @@ import { UpdatePackagePolicyRequestSchema, DeletePackagePoliciesRequestSchema, UpgradePackagePoliciesRequestSchema, + DryRunPackagePoliciesRequestSchema, } from '../../types'; import { @@ -24,6 +25,7 @@ import { updatePackagePolicyHandler, deletePackagePolicyHandler, upgradePackagePolicyHandler, + dryRunUpgradePackagePolicyHandler, } from './handlers'; export const registerRoutes = (router: IRouter) => { @@ -86,4 +88,14 @@ export const registerRoutes = (router: IRouter) => { }, upgradePackagePolicyHandler ); + + // Upgrade - DryRun + router.post( + { + path: PACKAGE_POLICY_API_ROUTES.DRYRUN_PATTERN, + validate: DryRunPackagePoliciesRequestSchema, + options: { tags: [`access:${PLUGIN_ID}-all`] }, + }, + dryRunUpgradePackagePolicyHandler + ); }; diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts index 856bf077b33d3..4a91979224017 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.ts @@ -428,7 +428,6 @@ class PackagePolicyService { currentVersion: currentVersion || 'unknown', newVersion: packagePolicy.package.version, status: 'success', - dryRun: false, eventType: 'package-policy-upgrade' as UpdateEventType, }; sendTelemetryEvents( diff --git a/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts b/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts index 4ccc57aca0ebd..34649602d2a02 100644 --- a/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts +++ b/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts @@ -40,7 +40,12 @@ export const DeletePackagePoliciesRequestSchema = { export const UpgradePackagePoliciesRequestSchema = { body: schema.object({ packagePolicyIds: schema.arrayOf(schema.string()), - dryRun: schema.maybe(schema.boolean()), + }), +}; + +export const DryRunPackagePoliciesRequestSchema = { + body: schema.object({ + packagePolicyIds: schema.arrayOf(schema.string()), packageVersion: schema.maybe(schema.string()), }), }; diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts index 5a61d69ed8ba6..0747a452c5864 100644 --- a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts +++ b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts @@ -124,11 +124,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, packageVersion: '0.2.0-add-non-required-test-var', }) .expect(200); @@ -145,14 +144,12 @@ export default function (providerContext: FtrProviderContext) { }); describe('upgrade', function () { - it('should respond with an error when "dryRun: false" is provided', async function () { + it('should respond with an error', async function () { await supertest .post(`/api/fleet/package_policies/upgrade`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, - packageVersion: '0.2.0-add-non-required-test-var', }) .expect(400); }); @@ -234,11 +231,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -265,7 +261,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -345,11 +340,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -371,7 +365,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -455,11 +448,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -476,7 +468,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -556,11 +547,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a diff with errors', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -575,7 +565,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(400); }); @@ -656,11 +645,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a diff with errors', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -675,7 +663,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(400); }); @@ -756,11 +743,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -775,7 +761,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -884,11 +869,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -903,7 +887,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -981,11 +964,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -1023,7 +1005,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -1033,24 +1014,22 @@ export default function (providerContext: FtrProviderContext) { }); describe('when package policy is not found', function () { - it('should return an 200 with errors when "dryRun:true" is provided', async function () { + it('should return an 200 with errors when performing a dryrun', async function () { await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: ['xxxx', 'yyyy'], - dryRun: true, }) .expect(404); }); - it('should return a 200 with errors and "success:false" when "dryRun:false" is provided', async function () { + it('should return a 200 with errors and "success:false" when trying to upgrade', async function () { await supertest .post(`/api/fleet/package_policies/upgrade`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: ['xxxx', 'yyyy'], - dryRun: false, }) .expect(404); }); @@ -1126,11 +1105,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('should respond with a bad request', async function () { await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, packageVersion: '0.1.0', }) .expect(400); @@ -1144,8 +1122,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, - packageVersion: '0.1.0', }) .expect(400); }); From 8398d53da4542c0673861d07ce565515318114ea Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Fri, 19 Nov 2021 13:00:35 +0100 Subject: [PATCH 060/114] [Lens] Get rid of giant union type (#118848) --- .../embedded_lens_example/public/app.tsx | 3 +- .../field_data_row/action_menu/lens_utils.ts | 27 +- x-pack/plugins/lens/public/index.ts | 4 +- .../datapanel.test.tsx | 5 +- .../bucket_nesting_editor.test.tsx | 6 +- .../dimension_panel/bucket_nesting_editor.tsx | 4 +- .../dimension_panel/dimension_editor.tsx | 4 +- .../dimension_panel/dimension_panel.test.tsx | 43 +- .../dimension_panel/dimension_panel.tsx | 6 +- .../dimensions_editor_helpers.tsx | 4 +- .../droppable/droppable.test.ts | 27 +- .../droppable/get_drop_props.ts | 18 +- .../dimension_panel/filtering.tsx | 4 +- .../dimension_panel/format_selector.tsx | 6 +- .../dimension_panel/reference_editor.test.tsx | 12 +- .../dimension_panel/time_scaling.tsx | 4 +- .../dimension_panel/time_shift.tsx | 4 +- .../indexpattern.test.ts | 64 ++- .../indexpattern_datasource/indexpattern.tsx | 9 +- .../indexpattern_suggestions.test.tsx | 58 +- .../indexpattern_suggestions.ts | 12 +- .../layerpanel.test.tsx | 3 +- .../indexpattern_datasource/loader.test.ts | 9 +- .../operations/definitions.test.ts | 7 +- .../definitions/calculations/utils.test.ts | 5 +- .../operations/definitions/column_types.ts | 5 + .../operations/definitions/count.tsx | 7 +- .../definitions/date_histogram.test.tsx | 10 +- .../operations/definitions/date_histogram.tsx | 509 +++++++++--------- .../definitions/filters/filters.test.tsx | 2 +- .../formula/editor/formula_help.tsx | 4 +- .../definitions/formula/formula.test.tsx | 27 +- .../definitions/formula/formula.tsx | 5 +- .../definitions/formula/generate.ts | 24 +- .../operations/definitions/formula/parse.ts | 16 +- .../operations/definitions/formula/util.ts | 10 +- .../definitions/formula/validation.ts | 32 +- .../operations/definitions/helpers.tsx | 36 +- .../operations/definitions/index.ts | 125 ++--- .../definitions/last_value.test.tsx | 11 +- .../definitions/percentile.test.tsx | 5 +- .../operations/definitions/percentile.tsx | 14 +- .../definitions/ranges/ranges.test.tsx | 21 +- .../operations/definitions/ranges/ranges.tsx | 2 +- .../definitions/static_value.test.tsx | 11 +- .../operations/definitions/static_value.tsx | 12 +- .../definitions/terms/terms.test.tsx | 23 +- .../operations/index.ts | 4 +- .../operations/layer_helpers.test.ts | 203 +++---- .../operations/layer_helpers.ts | 61 ++- .../operations/time_scale_utils.test.ts | 6 +- .../operations/time_scale_utils.ts | 4 +- .../time_shift_utils.tsx | 4 +- .../indexpattern_datasource/to_expression.ts | 73 +-- .../public/indexpattern_datasource/types.ts | 8 +- .../public/indexpattern_datasource/utils.tsx | 18 +- .../packs/pack_queries_status_table.tsx | 3 +- 57 files changed, 862 insertions(+), 781 deletions(-) diff --git a/x-pack/examples/embedded_lens_example/public/app.tsx b/x-pack/examples/embedded_lens_example/public/app.tsx index 3921b3a51dc45..f1b683f2430f7 100644 --- a/x-pack/examples/embedded_lens_example/public/app.tsx +++ b/x-pack/examples/embedded_lens_example/public/app.tsx @@ -27,6 +27,7 @@ import { PersistedIndexPatternLayer, XYState, LensEmbeddableInput, + DateHistogramIndexPatternColumn, } from '../../../plugins/lens/public'; import { StartDependencies } from './plugin'; @@ -55,7 +56,7 @@ function getLensAttributes( params: { interval: 'auto' }, scale: 'interval', sourceField: defaultIndexPattern.timeFieldName!, - }, + } as DateHistogramIndexPatternColumn, }, }; 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 db04712271587..70aa103b86d53 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 @@ -10,7 +10,10 @@ import type { Filter } from '@kbn/es-query'; import type { IndexPattern } from '../../../../../../../../../src/plugins/data/common'; import type { CombinedQuery } from '../../../../index_data_visualizer/types/combined_query'; import type { - IndexPatternColumn, + DateHistogramIndexPatternColumn, + GenericIndexPatternColumn, + RangeIndexPatternColumn, + TermsIndexPatternColumn, TypedLensByValueInput, XYLayerConfig, } from '../../../../../../../lens/public'; @@ -18,7 +21,7 @@ import { FieldVisConfig } from '../../stats_table/types'; import { JOB_FIELD_TYPES } from '../../../../../../common'; interface ColumnsAndLayer { - columns: Record; + columns: Record; layer: XYLayerConfig; } @@ -32,7 +35,7 @@ const COUNT = i18n.translate('xpack.dataVisualizer.index.lensChart.countLabel', export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: IndexPattern) { // if index has no timestamp field if (defaultIndexPattern.timeFieldName === undefined) { - const columns: Record = { + const columns: Record = { col1: { label: item.fieldName!, dataType: 'number', @@ -44,7 +47,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind ranges: [], }, sourceField: item.fieldName!, - }, + } as RangeIndexPatternColumn, col2: { label: COUNT, dataType: 'number', @@ -64,7 +67,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind return { columns, layer }; } - const columns: Record = { + const columns: Record = { col2: { dataType: 'number', isBucketed: false, @@ -83,7 +86,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind params: { interval: 'auto' }, scale: 'interval', sourceField: defaultIndexPattern.timeFieldName!, - }, + } as DateHistogramIndexPatternColumn, }; const layer: XYLayerConfig = { @@ -97,7 +100,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind return { columns, layer }; } export function getDateSettings(item: FieldVisConfig) { - const columns: Record = { + const columns: Record = { col2: { dataType: 'number', isBucketed: false, @@ -114,7 +117,7 @@ export function getDateSettings(item: FieldVisConfig) { params: { interval: 'auto' }, scale: 'interval', sourceField: item.fieldName!, - }, + } as DateHistogramIndexPatternColumn, }; const layer: XYLayerConfig = { accessors: ['col2'], @@ -128,7 +131,7 @@ export function getDateSettings(item: FieldVisConfig) { } export function getKeywordSettings(item: FieldVisConfig) { - const columns: Record = { + const columns: Record = { col1: { label: TOP_VALUES_LABEL, dataType: 'string', @@ -140,7 +143,7 @@ export function getKeywordSettings(item: FieldVisConfig) { orderDirection: 'desc', }, sourceField: item.fieldName!, - }, + } as TermsIndexPatternColumn, col2: { label: COUNT, dataType: 'number', @@ -161,7 +164,7 @@ export function getKeywordSettings(item: FieldVisConfig) { } export function getBooleanSettings(item: FieldVisConfig) { - const columns: Record = { + const columns: Record = { col1: { label: TOP_VALUES_LABEL, dataType: 'string', @@ -173,7 +176,7 @@ export function getBooleanSettings(item: FieldVisConfig) { orderDirection: 'desc', }, sourceField: item.fieldName!, - }, + } as TermsIndexPatternColumn, col2: { label: COUNT, dataType: 'number', diff --git a/x-pack/plugins/lens/public/index.ts b/x-pack/plugins/lens/public/index.ts index fb7cefb22d175..29dce6f0d1090 100644 --- a/x-pack/plugins/lens/public/index.ts +++ b/x-pack/plugins/lens/public/index.ts @@ -31,10 +31,10 @@ export type { DatatableVisualizationState } from './datatable_visualization/visu export type { IndexPatternPersistedState, PersistedIndexPatternLayer, - IndexPatternColumn, - FieldBasedIndexPatternColumn, OperationType, IncompleteColumn, + GenericIndexPatternColumn, + FieldBasedIndexPatternColumn, FiltersIndexPatternColumn, RangeIndexPatternColumn, TermsIndexPatternColumn, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx index a6a3cda0ca033..6fe61d3e3c29a 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx @@ -26,6 +26,7 @@ import { fieldFormatsServiceMock } from '../../../../../src/plugins/field_format import { indexPatternFieldEditorPluginMock } from '../../../../../src/plugins/index_pattern_field_editor/public/mocks'; import { getFieldByNameFactory } from './pure_helpers'; import { uiActionsPluginMock } from '../../../../../src/plugins/ui_actions/public/mocks'; +import { TermsIndexPatternColumn } from './operations'; const fieldsOne = [ { @@ -173,7 +174,7 @@ const initialState: IndexPatternPrivateState = { type: 'alphabetical', }, }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', dataType: 'number', @@ -200,7 +201,7 @@ const initialState: IndexPatternPrivateState = { type: 'alphabetical', }, }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx index b48d13d6d3499..fbecfeed0f321 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx @@ -8,7 +8,7 @@ import { mount } from 'enzyme'; import React from 'react'; import { BucketNestingEditor } from './bucket_nesting_editor'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; import { IndexPatternField } from '../types'; const fieldMap: Record = { @@ -20,7 +20,7 @@ const fieldMap: Record = { const getFieldByName = (name: string): IndexPatternField | undefined => fieldMap[name]; describe('BucketNestingEditor', () => { - function mockCol(col: Partial = {}): IndexPatternColumn { + function mockCol(col: Partial = {}): GenericIndexPatternColumn { const result = { dataType: 'string', isBucketed: true, @@ -35,7 +35,7 @@ describe('BucketNestingEditor', () => { ...col, }; - return result as IndexPatternColumn; + return result as GenericIndexPatternColumn; } it('should display the top level grouping when at the root', () => { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx index 8456552be8ec6..3979bfb8c9ac4 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiSwitch, EuiSelect } from '@elastic/eui'; import { IndexPatternLayer, IndexPatternField } from '../types'; import { hasField } from '../utils'; -import { IndexPatternColumn } from '../operations'; +import { GenericIndexPatternColumn } from '../operations'; function nestColumn(columnOrder: string[], outer: string, inner: string) { const result = columnOrder.filter((c) => c !== inner); @@ -22,7 +22,7 @@ function nestColumn(columnOrder: string[], outer: string, inner: string) { } function getFieldName( - column: IndexPatternColumn, + column: GenericIndexPatternColumn, getFieldByName: (name: string) => IndexPatternField | undefined ) { return hasField(column) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx index d34430e717e66..c8452340e993a 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx @@ -19,7 +19,7 @@ import { } from '@elastic/eui'; import { IndexPatternDimensionEditorProps } from './dimension_panel'; import { OperationSupportMatrix } from './operation_support'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; import { operationDefinitionMap, getOperationDisplay, @@ -62,7 +62,7 @@ import type { TemporaryState } from './dimensions_editor_helpers'; const operationPanels = getOperationDisplay(); export interface DimensionEditorProps extends IndexPatternDimensionEditorProps { - selectedColumn?: IndexPatternColumn; + selectedColumn?: GenericIndexPatternColumn; layerType: LayerType; operationSupportMatrix: OperationSupportMatrix; currentIndexPattern: IndexPattern; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx index 6d9e1ae3fe81b..06c1bb931f730 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx @@ -27,7 +27,12 @@ import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup, CoreSetup } f import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { generateId } from '../../id_generator'; import { IndexPatternPrivateState } from '../types'; -import { IndexPatternColumn, replaceColumn } from '../operations'; +import { + FiltersIndexPatternColumn, + GenericIndexPatternColumn, + replaceColumn, + TermsIndexPatternColumn, +} from '../operations'; import { documentField } from '../document_field'; import { OperationMetadata } from '../../types'; import { DateHistogramIndexPatternColumn } from '../operations/definitions/date_histogram'; @@ -108,7 +113,7 @@ const expectedIndexPatterns = { }, }; -const bytesColumn: IndexPatternColumn = { +const bytesColumn: GenericIndexPatternColumn = { label: 'Max of bytes', dataType: 'number', isBucketed: false, @@ -133,7 +138,7 @@ describe('IndexPatternDimensionEditorPanel', () => { let setState: jest.Mock; let defaultProps: IndexPatternDimensionEditorProps; - function getStateWithColumns(columns: Record) { + function getStateWithColumns(columns: Record) { return { ...state, layers: { first: { ...state.layers.first, columns, columnOrder: Object.keys(columns) } }, @@ -171,7 +176,7 @@ describe('IndexPatternDimensionEditorPanel', () => { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, incompleteColumns: {}, }, @@ -264,7 +269,7 @@ describe('IndexPatternDimensionEditorPanel', () => { // Private operationType: 'filters', params: { filters: [] }, - }, + } as FiltersIndexPatternColumn, })} /> ); @@ -427,7 +432,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'date_histogram', sourceField: '@timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, col1: { label: 'Counter rate', dataType: 'number', @@ -464,7 +469,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'date_histogram', sourceField: '@timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, col1: { label: 'Cumulative sum', dataType: 'number', @@ -839,7 +844,7 @@ describe('IndexPatternDimensionEditorPanel', () => { // Private operationType: 'filters', params: { filters: [] }, - }, + } as FiltersIndexPatternColumn, })} /> ); @@ -1066,7 +1071,7 @@ describe('IndexPatternDimensionEditorPanel', () => { }); describe('time scaling', () => { - function getProps(colOverrides: Partial) { + function getProps(colOverrides: Partial) { return { ...defaultProps, state: getStateWithColumns({ @@ -1080,7 +1085,7 @@ describe('IndexPatternDimensionEditorPanel', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -1088,7 +1093,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'count', sourceField: 'Records', ...colOverrides, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1296,7 +1301,7 @@ describe('IndexPatternDimensionEditorPanel', () => { }); describe('time shift', () => { - function getProps(colOverrides: Partial) { + function getProps(colOverrides: Partial) { return { ...defaultProps, state: getStateWithColumns({ @@ -1310,7 +1315,7 @@ describe('IndexPatternDimensionEditorPanel', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -1318,7 +1323,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'count', sourceField: 'Records', ...colOverrides, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1334,7 +1339,7 @@ describe('IndexPatternDimensionEditorPanel', () => { label: 'Count of records', operationType: 'count', sourceField: 'Records', - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1483,7 +1488,7 @@ describe('IndexPatternDimensionEditorPanel', () => { }); describe('filtering', () => { - function getProps(colOverrides: Partial) { + function getProps(colOverrides: Partial) { return { ...defaultProps, state: getStateWithColumns({ @@ -1497,7 +1502,7 @@ describe('IndexPatternDimensionEditorPanel', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -1505,7 +1510,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'count', sourceField: 'Records', ...colOverrides, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1522,7 +1527,7 @@ describe('IndexPatternDimensionEditorPanel', () => { orderBy: { type: 'alphabetical' }, size: 5, }, - })} + } as TermsIndexPatternColumn)} /> ); expect( diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx index f27b2c8938b2c..6479fb5b8af4f 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx @@ -12,7 +12,7 @@ import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup } from 'kibana import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { DatasourceDimensionTriggerProps, DatasourceDimensionEditorProps } from '../../types'; import { DataPublicPluginStart } from '../../../../../../src/plugins/data/public'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; import { isColumnInvalid } from '../utils'; import { IndexPatternPrivateState } from '../types'; import { DimensionEditor } from './dimension_editor'; @@ -56,7 +56,7 @@ export const IndexPatternDimensionTriggerComponent = function IndexPatternDimens [layer, columnId, currentIndexPattern, invalid] ); - const selectedColumn: IndexPatternColumn | null = layer.columns[props.columnId] ?? null; + const selectedColumn: GenericIndexPatternColumn | null = layer.columns[props.columnId] ?? null; if (!selectedColumn) { return null; @@ -126,7 +126,7 @@ export const IndexPatternDimensionEditorComponent = function IndexPatternDimensi } const operationSupportMatrix = getOperationSupportMatrix(props); - const selectedColumn: IndexPatternColumn | null = + const selectedColumn: GenericIndexPatternColumn | null = props.state.layers[layerId].columns[props.columnId] || null; return ( }; export function getErrorMessage( - selectedColumn: IndexPatternColumn | undefined, + selectedColumn: GenericIndexPatternColumn | undefined, incompleteOperation: boolean, input: 'none' | 'field' | 'fullReference' | 'managedReference' | undefined, fieldInvalid: boolean diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts index 85807721f80f6..fa200e8b55626 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts @@ -14,7 +14,12 @@ import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { IndexPatternLayer, IndexPatternPrivateState } from '../../types'; import { documentField } from '../../document_field'; import { OperationMetadata, DropType } from '../../../types'; -import { IndexPatternColumn, MedianIndexPatternColumn } from '../../operations'; +import { + DateHistogramIndexPatternColumn, + GenericIndexPatternColumn, + MedianIndexPatternColumn, + TermsIndexPatternColumn, +} from '../../operations'; import { getFieldByNameFactory } from '../../pure_helpers'; import { generateId } from '../../../id_generator'; import { layerTypes } from '../../../../common'; @@ -128,7 +133,7 @@ const oneColumnLayer: IndexPatternLayer = { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, incompleteColumns: {}, }; @@ -150,7 +155,7 @@ const multipleColumnsLayer: IndexPatternLayer = { size: 10, }, sourceField: 'src', - }, + } as TermsIndexPatternColumn, col3: { label: 'Top values of dest', dataType: 'string', @@ -164,7 +169,7 @@ const multipleColumnsLayer: IndexPatternLayer = { size: 10, }, sourceField: 'dest', - }, + } as TermsIndexPatternColumn, col4: { label: 'Median of bytes', dataType: 'number', @@ -416,7 +421,7 @@ describe('IndexPatternDimensionEditorPanel', () => { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; @@ -771,7 +776,7 @@ describe('IndexPatternDimensionEditorPanel', () => { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { label: 'Top values of bar', dataType: 'number', @@ -783,7 +788,7 @@ describe('IndexPatternDimensionEditorPanel', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, col3: { operationType: 'average', sourceField: 'memory', @@ -1158,17 +1163,17 @@ describe('IndexPatternDimensionEditorPanel', () => { label: 'Date histogram of timestamp', dataType: 'date', isBucketed: true, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col2: { label: 'Top values of bar', dataType: 'number', isBucketed: true, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col3: { label: 'Top values of memory', dataType: 'number', isBucketed: true, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }, }, }, @@ -1293,7 +1298,7 @@ describe('IndexPatternDimensionEditorPanel', () => { size: 10, }, sourceField: 'src', - }, + } as TermsIndexPatternColumn, col3: { label: 'Count', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts index 0e87cc680c2f6..08361490cdc2c 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts @@ -16,7 +16,7 @@ import { hasField, isDraggedField } from '../../utils'; import { DragContextState } from '../../../drag_drop/providers'; import { OperationMetadata } from '../../../types'; import { getOperationTypesForField } from '../../operations'; -import { IndexPatternColumn } from '../../indexpattern'; +import { GenericIndexPatternColumn } from '../../indexpattern'; import { IndexPatternPrivateState, IndexPattern, @@ -36,7 +36,7 @@ const operationLabels = getOperationDisplay(); export function getNewOperation( field: IndexPatternField | undefined | false, filterOperations: (meta: OperationMetadata) => boolean, - targetColumn: IndexPatternColumn + targetColumn: GenericIndexPatternColumn ) { if (!field) { return; @@ -50,7 +50,10 @@ export function getNewOperation( return shouldOperationPersist ? targetColumn.operationType : newOperations[0]; } -export function getField(column: IndexPatternColumn | undefined, indexPattern: IndexPattern) { +export function getField( + column: GenericIndexPatternColumn | undefined, + indexPattern: IndexPattern +) { if (!column) { return; } @@ -89,7 +92,10 @@ export function getDropProps(props: GetDropProps) { } } -function hasTheSameField(sourceColumn: IndexPatternColumn, targetColumn?: IndexPatternColumn) { +function hasTheSameField( + sourceColumn: GenericIndexPatternColumn, + targetColumn?: GenericIndexPatternColumn +) { return ( targetColumn && hasField(targetColumn) && @@ -127,11 +133,11 @@ function getDropPropsForField({ return; } -function getDropPropsForSameGroup(targetColumn?: IndexPatternColumn): DropProps { +function getDropPropsForSameGroup(targetColumn?: GenericIndexPatternColumn): DropProps { return targetColumn ? { dropTypes: ['reorder'] } : { dropTypes: ['duplicate_compatible'] }; } -function getDropPropsForCompatibleGroup(targetColumn?: IndexPatternColumn): DropProps { +function getDropPropsForCompatibleGroup(targetColumn?: GenericIndexPatternColumn): DropProps { return { dropTypes: targetColumn ? ['replace_compatible', 'replace_duplicate_compatible', 'swap_compatible'] diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx index ddd9718839649..d88edff3f0cc3 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx @@ -18,7 +18,7 @@ import { EuiPopoverProps, } from '@elastic/eui'; import type { Query } from 'src/plugins/data/public'; -import { IndexPatternColumn, operationDefinitionMap } from '../operations'; +import { GenericIndexPatternColumn, operationDefinitionMap } from '../operations'; import { validateQuery } from '../operations/definitions/filters'; import { QueryInput } from '../query_input'; import type { IndexPattern, IndexPatternLayer } from '../types'; @@ -54,7 +54,7 @@ export function Filtering({ indexPattern, isInitiallyOpen, }: { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; indexPattern: IndexPattern; columnId: string; layer: IndexPatternLayer; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx index ff10810208e70..7ee25a790db62 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx @@ -8,7 +8,7 @@ import React, { useCallback, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiComboBox, EuiSpacer, EuiRange } from '@elastic/eui'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; const supportedFormats: Record = { number: { @@ -36,7 +36,7 @@ const defaultOption = { }; interface FormatSelectorProps { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; onChange: (newFormat?: { id: string; params?: Record }) => void; } @@ -136,7 +136,7 @@ export function FormatSelector(props: FormatSelectorProps) { onChange={(e) => { setState({ decimalPlaces: Number(e.currentTarget.value) }); onChange({ - id: (selectedColumn.params as { format: { id: string } }).format.id, + id: currentFormat.id, params: { decimals: Number(e.currentTarget.value), }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx index 21251b59d4533..16251654a6355 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx @@ -17,7 +17,11 @@ import type { DataPublicPluginStart } from 'src/plugins/data/public'; import { OperationMetadata } from '../../types'; import { createMockedIndexPattern, createMockedIndexPatternWithoutType } from '../mocks'; import { ReferenceEditor, ReferenceEditorProps } from './reference_editor'; -import { insertOrReplaceColumn } from '../operations'; +import { + insertOrReplaceColumn, + LastValueIndexPatternColumn, + TermsIndexPatternColumn, +} from '../operations'; import { FieldSelect } from './field_select'; jest.mock('../operations'); @@ -123,7 +127,7 @@ describe('reference editor', () => { operationType: 'terms', sourceField: 'dest', params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'desc' }, - }, + } as TermsIndexPatternColumn, }, }} validation={{ @@ -490,7 +494,7 @@ describe('reference editor', () => { params: { sortField: 'timestamp', }, - }, + } as LastValueIndexPatternColumn, }, }} validation={{ @@ -522,7 +526,7 @@ describe('reference editor', () => { params: { sortField: 'timestamp', }, - }, + } as LastValueIndexPatternColumn, }, incompleteColumns: { ref: { operationType: 'max' }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx index 8a670e7562573..6e3a43cbb1a03 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx @@ -19,7 +19,7 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import { adjustTimeScaleLabelSuffix, - IndexPatternColumn, + GenericIndexPatternColumn, operationDefinitionMap, } from '../operations'; import type { TimeScaleUnit } from '../../../common/expressions'; @@ -60,7 +60,7 @@ export function TimeScaling({ layer, updateLayer, }: { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; columnId: string; layer: IndexPatternLayer; updateLayer: (newLayer: IndexPatternLayer) => void; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx index c2415c9c9a75a..36cc4a3c22e44 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx @@ -14,7 +14,7 @@ import { Query } from 'src/plugins/data/public'; import { parseTimeShift } from '../../../../../../src/plugins/data/common'; import { adjustTimeScaleLabelSuffix, - IndexPatternColumn, + GenericIndexPatternColumn, operationDefinitionMap, } from '../operations'; import { IndexPattern, IndexPatternLayer } from '../types'; @@ -70,7 +70,7 @@ export function TimeShift({ activeData, layerId, }: { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; indexPattern: IndexPattern; columnId: string; layer: IndexPatternLayer; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts index 8f180d4a021e0..e6b9eccbc7da1 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts @@ -8,7 +8,7 @@ import React from 'react'; import 'jest-canvas-mock'; import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; -import { getIndexPatternDatasource, IndexPatternColumn } from './indexpattern'; +import { getIndexPatternDatasource, GenericIndexPatternColumn } from './indexpattern'; import { DatasourcePublicAPI, Operation, Datasource, FramePublicAPI } from '../types'; import { coreMock } from 'src/core/public/mocks'; import { IndexPatternPersistedState, IndexPatternPrivateState } from './types'; @@ -16,11 +16,20 @@ import { dataPluginMock } from '../../../../../src/plugins/data/public/mocks'; import { Ast } from '@kbn/interpreter/common'; import { chartPluginMock } from '../../../../../src/plugins/charts/public/mocks'; import { getFieldByNameFactory } from './pure_helpers'; -import { operationDefinitionMap, getErrorMessages } from './operations'; +import { + operationDefinitionMap, + getErrorMessages, + TermsIndexPatternColumn, + DateHistogramIndexPatternColumn, + MovingAverageIndexPatternColumn, + MathIndexPatternColumn, + FormulaIndexPatternColumn, +} from './operations'; import { createMockedFullReference } from './operations/mocks'; import { indexPatternFieldEditorPluginMock } from 'src/plugins/index_pattern_field_editor/public/mocks'; import { uiActionsPluginMock } from '../../../../../src/plugins/ui_actions/public/mocks'; import { fieldFormatsServiceMock } from '../../../../../src/plugins/field_formats/public/mocks'; +import { TinymathAST } from 'packages/kbn-tinymath'; jest.mock('./loader'); jest.mock('../id_generator'); @@ -200,7 +209,7 @@ describe('IndexPattern Data Source', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -209,7 +218,7 @@ describe('IndexPattern Data Source', () => { describe('uniqueLabels', () => { it('appends a suffix to duplicates', () => { - const col: IndexPatternColumn = { + const col: GenericIndexPatternColumn = { dataType: 'number', isBucketed: false, label: 'Foo', @@ -355,7 +364,7 @@ describe('IndexPattern Data Source', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -505,7 +514,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, col3: { label: 'Date 2', dataType: 'date', @@ -515,7 +524,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -552,7 +561,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -601,7 +610,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -727,7 +736,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -794,7 +803,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: 'Count of records', dataType: 'number', @@ -812,7 +821,7 @@ describe('IndexPattern Data Source', () => { params: { window: 5, }, - }, + } as MovingAverageIndexPatternColumn, }, }, }, @@ -850,7 +859,7 @@ describe('IndexPattern Data Source', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, bucket2: { label: 'Terms', dataType: 'string', @@ -862,7 +871,7 @@ describe('IndexPattern Data Source', () => { orderDirection: 'asc', size: 10, }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -902,7 +911,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -947,7 +956,6 @@ describe('IndexPattern Data Source', () => { label: 'Reference', dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -983,7 +991,6 @@ describe('IndexPattern Data Source', () => { label: 'Reference', dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -1030,7 +1037,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, formula: { label: 'Formula', dataType: 'number', @@ -1042,7 +1049,7 @@ describe('IndexPattern Data Source', () => { isFormulaBroken: false, }, references: ['math'], - }, + } as FormulaIndexPatternColumn, countX0: { label: 'countX0', dataType: 'number', @@ -1062,8 +1069,7 @@ describe('IndexPattern Data Source', () => { tinymathAst: { type: 'function', name: 'add', - // @ts-expect-error String args are not valid tinymath, but signals something unique to Lens - args: ['countX0', 'count'], + args: ['countX0', 'count'] as unknown as TinymathAST[], location: { min: 0, max: 17, @@ -1073,7 +1079,7 @@ describe('IndexPattern Data Source', () => { }, references: ['countX0', 'count'], customLabel: true, - }, + } as MathIndexPatternColumn, }, }, }, @@ -1217,7 +1223,7 @@ describe('IndexPattern Data Source', () => { operationType: 'sum', sourceField: 'test', params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col2: { label: 'Cumulative sum', dataType: 'number', @@ -1226,7 +1232,7 @@ describe('IndexPattern Data Source', () => { operationType: 'cumulative_sum', references: ['col1'], params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }, }, }, @@ -1268,7 +1274,7 @@ describe('IndexPattern Data Source', () => { operationType: 'sum', sourceField: 'test', params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col2: { label: 'Cumulative sum', dataType: 'number', @@ -1277,7 +1283,7 @@ describe('IndexPattern Data Source', () => { operationType: 'cumulative_sum', references: ['col1'], params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }, }, }, @@ -1368,7 +1374,7 @@ describe('IndexPattern Data Source', () => { dataType: 'date', isBucketed: true, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { operationType: 'count', label: '', @@ -1606,7 +1612,7 @@ describe('IndexPattern Data Source', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, bucket2: { label: 'Terms', dataType: 'string', @@ -1618,7 +1624,7 @@ describe('IndexPattern Data Source', () => { orderDirection: 'asc', size: 10, }, - }, + } as TermsIndexPatternColumn, }, }, }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx index b970ad092c7f4..fc9e2c7ed44a8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx @@ -44,7 +44,7 @@ import { import { isColumnInvalid, isDraggedField, normalizeOperationDataType } from './utils'; import { LayerPanel } from './layerpanel'; -import { IndexPatternColumn, getErrorMessages, insertNewColumn } from './operations'; +import { GenericIndexPatternColumn, getErrorMessages, insertNewColumn } from './operations'; import { IndexPatternField, IndexPatternPrivateState, IndexPatternPersistedState } from './types'; import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; import { DataPublicPluginStart } from '../../../../../src/plugins/data/public'; @@ -58,10 +58,13 @@ import { GeoFieldWorkspacePanel } from '../editor_frame_service/editor_frame/wor import { DraggingIdentifier } from '../drag_drop'; import { getStateTimeShiftWarningMessages } from './time_shift_utils'; import { getPrecisionErrorWarningMessages } from './utils'; -export type { OperationType, IndexPatternColumn } from './operations'; +export type { OperationType, GenericIndexPatternColumn } from './operations'; export { deleteColumn } from './operations'; -export function columnToOperation(column: IndexPatternColumn, uniqueLabel?: string): Operation { +export function columnToOperation( + column: GenericIndexPatternColumn, + uniqueLabel?: string +): Operation { const { dataType, label, isBucketed, scale } = column; return { dataType: normalizeOperationDataType(dataType), diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx index 5df02482a2745..a821dcee29d6d 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx @@ -18,6 +18,12 @@ import { import { documentField } from './document_field'; import { getFieldByNameFactory } from './pure_helpers'; import { isEqual } from 'lodash'; +import { DateHistogramIndexPatternColumn, TermsIndexPatternColumn } from './operations'; +import { + MathIndexPatternColumn, + RangeIndexPatternColumn, + StaticValueIndexPatternColumn, +} from './operations/definitions'; jest.mock('./loader'); jest.mock('../id_generator'); @@ -179,7 +185,7 @@ function testInitialState(): IndexPatternPrivateState { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -733,7 +739,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, colb: { dataType: 'number', isBucketed: false, @@ -768,7 +774,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { interval: 'w', }, - }, + } as DateHistogramIndexPatternColumn, colb: { dataType: 'number', isBucketed: false, @@ -976,7 +982,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, columnOrder: ['cola'], }, @@ -1086,7 +1092,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: '', customLabel: true, @@ -1218,7 +1224,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { value: '0' }, references: [], scale: 'ratio', - }, + } as StaticValueIndexPatternColumn, }, }, currentLayer: { @@ -1506,7 +1512,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -1648,7 +1654,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, colb: { label: 'My Op', customLabel: true, @@ -1726,7 +1732,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, colb: { label: 'My Op', customLabel: true, @@ -1830,7 +1836,7 @@ describe('IndexPattern Data Source suggestions', () => { maxBars: 100, ranges: [], }, - }, + } as RangeIndexPatternColumn, }, }, }, @@ -1876,7 +1882,7 @@ describe('IndexPattern Data Source suggestions', () => { maxBars: 100, ranges: [{ from: 1, to: 2, label: '' }], }, - }, + } as RangeIndexPatternColumn, }, }, }, @@ -1954,7 +1960,7 @@ describe('IndexPattern Data Source suggestions', () => { it("should not propose an over time suggestion if there's a top values aggregation with an high size", () => { const initialState = testInitialState(); - (initialState.layers.first.columns.col1 as { params: { size: number } }).params!.size = 6; + (initialState.layers.first.columns.col1 as TermsIndexPatternColumn).params!.size = 6; const suggestions = getDatasourceSuggestionsFromCurrentState({ ...initialState, indexPatterns: { 1: { ...initialState.indexPatterns['1'], timeFieldName: undefined } }, @@ -1995,7 +2001,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -2080,7 +2086,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', customLabel: true, @@ -2094,7 +2100,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col3: { label: 'My Op', customLabel: true, @@ -2108,7 +2114,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col4: { label: 'My Op', customLabel: true, @@ -2217,7 +2223,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, id2: { label: 'Average of field1', dataType: 'number', @@ -2348,7 +2354,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, id2: { label: 'Top 5', dataType: 'string', @@ -2357,7 +2363,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'terms', sourceField: 'dest', params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'asc' }, - }, + } as TermsIndexPatternColumn, id3: { label: 'Average of field1', dataType: 'number', @@ -2403,7 +2409,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'terms', sourceField: 'nonExistingField', params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'asc' }, - }, + } as TermsIndexPatternColumn, }, columnOrder: ['col1', 'col2'], }, @@ -2539,7 +2545,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, ref: { label: '', dataType: 'number', @@ -2629,7 +2635,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: '', dataType: 'number', @@ -2681,7 +2687,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { tinymathAst: '', }, - }, + } as MathIndexPatternColumn, ref4: { label: '', dataType: 'number', @@ -2691,7 +2697,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { tinymathAst: '', }, - }, + } as MathIndexPatternColumn, }, }, }, @@ -2756,7 +2762,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, ref: { label: '', dataType: 'number', @@ -2806,7 +2812,7 @@ describe('IndexPattern Data Source suggestions', () => { tinymathAst: '', }, references: ['metric'], - }, + } as MathIndexPatternColumn, metric: { label: '', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts index 8b940ec1f05af..6b15a5a8d1daf 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts @@ -16,7 +16,7 @@ import { getMetricOperationTypes, getOperationTypesForField, operationDefinitionMap, - IndexPatternColumn, + BaseIndexPatternColumn, OperationType, getExistingColumnGroups, isReferenced, @@ -62,11 +62,11 @@ function buildSuggestion({ // two match up. const layers = mapValues(updatedState.layers, (layer) => ({ ...layer, - columns: pick(layer.columns, layer.columnOrder) as Record, + columns: pick(layer.columns, layer.columnOrder) as Record, })); const columnOrder = layers[layerId].columnOrder; - const columnMap = layers[layerId].columns as Record; + const columnMap = layers[layerId].columns as Record; const isMultiRow = Object.values(columnMap).some((column) => column.isBucketed); return { @@ -221,7 +221,7 @@ function getExistingLayerSuggestionsForField( indexPattern, field, columnId: generateId(), - op: metricOperation.type, + op: metricOperation.type as OperationType, visualizationGroups: [], }); if (layerWithNewMetric) { @@ -243,7 +243,7 @@ function getExistingLayerSuggestionsForField( indexPattern, field, columnId: metrics[0], - op: metricOperation.type, + op: metricOperation.type as OperationType, visualizationGroups: [], }); if (layerWithReplacedMetric) { @@ -336,7 +336,7 @@ function createNewLayerWithMetricAggregation( return insertNewColumn({ op: 'date_histogram', layer: insertNewColumn({ - op: metricOperation.type, + op: metricOperation.type as OperationType, layer: { indexPatternId: indexPattern.id, columns: {}, columnOrder: [] }, columnId: generateId(), field, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx index 6161bcee4678f..335796442bd8b 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx @@ -13,6 +13,7 @@ import { ShallowWrapper } from 'enzyme'; import { EuiSelectable } from '@elastic/eui'; import { ChangeIndexPattern } from './change_indexpattern'; import { getFieldByNameFactory } from './pure_helpers'; +import { TermsIndexPatternColumn } from './operations'; interface IndexPatternPickerOption { label: string; @@ -160,7 +161,7 @@ const initialState: IndexPatternPrivateState = { type: 'alphabetical', }, }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts index d731069e6e7eb..431b8a84341e8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts @@ -26,6 +26,7 @@ import { } from './types'; import { createMockedRestrictedIndexPattern, createMockedIndexPattern } from './mocks'; import { documentField } from './document_field'; +import { DateHistogramIndexPatternColumn } from './operations'; const createMockStorage = (lastData?: Record) => { return { @@ -512,7 +513,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -563,7 +564,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -650,7 +651,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -870,7 +871,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, indexPatternId: '1', }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts index c131b16512823..974e37c2aea8e 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts @@ -19,7 +19,8 @@ import { import { getFieldByNameFactory } from '../pure_helpers'; import { documentField } from '../document_field'; import { IndexPattern, IndexPatternLayer, IndexPatternField } from '../types'; -import { IndexPatternColumn } from '.'; +import { GenericIndexPatternColumn } from '.'; +import { DateHistogramIndexPatternColumn } from './definitions/date_histogram'; const indexPatternFields = [ { @@ -77,7 +78,7 @@ const indexPattern = { }; const baseColumnArgs: { - previousColumn: IndexPatternColumn; + previousColumn: GenericIndexPatternColumn; indexPattern: IndexPattern; layer: IndexPatternLayer; field: IndexPatternField; @@ -113,7 +114,7 @@ const layer: IndexPatternLayer = { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: 'metricLabel', customLabel: true, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts index 8b1eaeb109d9b..1dacb334413f8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts @@ -9,6 +9,7 @@ import { checkReferences, checkForDataLayerType } from './utils'; import { operationDefinitionMap } from '..'; import { createMockedFullReference } from '../../mocks'; import { layerTypes } from '../../../../../common'; +import { DateHistogramIndexPatternColumn } from '../date_histogram'; // Mock prevents issue with circular loading jest.mock('..'); @@ -35,7 +36,6 @@ describe('utils', () => { columns: { ref: { label: 'Label', - // @ts-expect-error test-only operation type operationType: 'testReference', isBucketed: false, dataType: 'number', @@ -57,7 +57,6 @@ describe('utils', () => { columns: { ref: { label: 'Label', - // @ts-expect-error test-only operation type operationType: 'testReference', isBucketed: false, dataType: 'number', @@ -70,7 +69,7 @@ describe('utils', () => { dataType: 'date', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, }, columnOrder: ['invalid', 'ref'], indexPatternId: '', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts index 15bd7d4242b92..233138ef4ff0a 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts @@ -42,6 +42,11 @@ export interface ReferenceBasedIndexPatternColumn references: string[]; } +export type GenericIndexPatternColumn = + | BaseIndexPatternColumn + | FieldBasedIndexPatternColumn + | ReferenceBasedIndexPatternColumn; + // Used to store the temporary invalid state export interface IncompleteColumn { operationType?: OperationType; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx index a6134ddc67bc0..6290abac77844 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx @@ -11,7 +11,7 @@ import { buildExpressionFunction } from '../../../../../../../src/plugins/expres import { OperationDefinition } from './index'; import { FormattedIndexPatternColumn, FieldBasedIndexPatternColumn } from './column_types'; import { IndexPatternField } from '../../types'; -import { getInvalidFieldMessage, getFilter } from './helpers'; +import { getInvalidFieldMessage, getFilter, isColumnFormatted } from './helpers'; import { adjustTimeScaleLabelSuffix, adjustTimeScaleOnOtherColumnChange, @@ -84,9 +84,8 @@ export const countOperation: OperationDefinition { interval: '42w', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; }); @@ -332,7 +332,7 @@ describe('date_histogram', () => { interval: 'd', }, sourceField: 'other_timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; const instance = shallow( @@ -366,7 +366,7 @@ describe('date_histogram', () => { interval: 'auto', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; @@ -401,7 +401,7 @@ describe('date_histogram', () => { interval: 'auto', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; @@ -594,7 +594,7 @@ describe('date_histogram', () => { operationType: 'date_histogram', sourceField: 'missing', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, } ) ).toEqual('Missing field'); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx index ea875c069150d..efc7a10090cfa 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx @@ -71,272 +71,275 @@ function getMultipleDateHistogramsErrorMessage(layer: IndexPatternLayer, columnI }); } -export const dateHistogramOperation: OperationDefinition = - { - type: 'date_histogram', - displayName: i18n.translate('xpack.lens.indexPattern.dateHistogram', { - defaultMessage: 'Date histogram', - }), - input: 'field', - priority: 5, // Highest priority level used - operationParams: [{ name: 'interval', type: 'string', required: false }], - getErrorMessage: (layer, columnId, indexPattern) => - [ - ...(getInvalidFieldMessage( - layer.columns[columnId] as FieldBasedIndexPatternColumn, - indexPattern - ) || []), - getMultipleDateHistogramsErrorMessage(layer, columnId) || '', - ].filter(Boolean), - getHelpMessage: (props) => , - getPossibleOperationForField: ({ aggregationRestrictions, aggregatable, type }) => { - if ( - (type === 'date' || type === 'date_range') && - aggregatable && - (!aggregationRestrictions || aggregationRestrictions.date_histogram) - ) { - return { - dataType: 'date', - isBucketed: true, - scale: 'interval', - }; - } - }, - getDefaultLabel: (column, indexPattern) => getSafeName(column.sourceField, indexPattern), - buildColumn({ field }, columnParams) { +export const dateHistogramOperation: OperationDefinition< + DateHistogramIndexPatternColumn, + 'field', + { interval: string } +> = { + type: 'date_histogram', + displayName: i18n.translate('xpack.lens.indexPattern.dateHistogram', { + defaultMessage: 'Date histogram', + }), + input: 'field', + priority: 5, // Highest priority level used + operationParams: [{ name: 'interval', type: 'string', required: false }], + getErrorMessage: (layer, columnId, indexPattern) => + [ + ...(getInvalidFieldMessage( + layer.columns[columnId] as FieldBasedIndexPatternColumn, + indexPattern + ) || []), + getMultipleDateHistogramsErrorMessage(layer, columnId) || '', + ].filter(Boolean), + getHelpMessage: (props) => , + getPossibleOperationForField: ({ aggregationRestrictions, aggregatable, type }) => { + if ( + (type === 'date' || type === 'date_range') && + aggregatable && + (!aggregationRestrictions || aggregationRestrictions.date_histogram) + ) { return { - label: field.displayName, dataType: 'date', - operationType: 'date_histogram', - sourceField: field.name, isBucketed: true, scale: 'interval', - params: { - interval: columnParams?.interval ?? autoInterval, - }, }; - }, - isTransferable: (column, newIndexPattern) => { - const newField = newIndexPattern.getFieldByName(column.sourceField); + } + }, + getDefaultLabel: (column, indexPattern) => getSafeName(column.sourceField, indexPattern), + buildColumn({ field }, columnParams) { + return { + label: field.displayName, + dataType: 'date', + operationType: 'date_histogram', + sourceField: field.name, + isBucketed: true, + scale: 'interval', + params: { + interval: columnParams?.interval ?? autoInterval, + }, + }; + }, + isTransferable: (column, newIndexPattern) => { + const newField = newIndexPattern.getFieldByName(column.sourceField); - return Boolean( - newField && - newField.type === 'date' && - newField.aggregatable && - (!newField.aggregationRestrictions || newField.aggregationRestrictions.date_histogram) - ); - }, - onFieldChange: (oldColumn, field) => { - return { - ...oldColumn, - label: field.displayName, - sourceField: field.name, - }; - }, - toEsAggsFn: (column, columnId, indexPattern) => { - const usedField = indexPattern.getFieldByName(column.sourceField); - let timeZone: string | undefined; - let interval = column.params?.interval ?? autoInterval; - if ( - usedField && - usedField.aggregationRestrictions && - usedField.aggregationRestrictions.date_histogram - ) { - interval = restrictedInterval(usedField.aggregationRestrictions) as string; - timeZone = usedField.aggregationRestrictions.date_histogram.time_zone; - } - return buildExpressionFunction('aggDateHistogram', { - id: columnId, - enabled: true, - schema: 'segment', - field: column.sourceField, - time_zone: timeZone, - useNormalizedEsInterval: !usedField?.aggregationRestrictions?.date_histogram, - interval, - drop_partials: false, - min_doc_count: 0, - extended_bounds: extendedBoundsToAst({}), - }).toAst(); - }, - paramEditor: function ParamEditor({ - layer, - columnId, - currentColumn, - updateLayer, - dateRange, - data, - indexPattern, - }: ParamEditorProps) { - const field = currentColumn && indexPattern.getFieldByName(currentColumn.sourceField); - const intervalIsRestricted = - field!.aggregationRestrictions && field!.aggregationRestrictions.date_histogram; + return Boolean( + newField && + newField.type === 'date' && + newField.aggregatable && + (!newField.aggregationRestrictions || newField.aggregationRestrictions.date_histogram) + ); + }, + onFieldChange: (oldColumn, field) => { + return { + ...oldColumn, + label: field.displayName, + sourceField: field.name, + }; + }, + toEsAggsFn: (column, columnId, indexPattern) => { + const usedField = indexPattern.getFieldByName(column.sourceField); + let timeZone: string | undefined; + let interval = column.params?.interval ?? autoInterval; + if ( + usedField && + usedField.aggregationRestrictions && + usedField.aggregationRestrictions.date_histogram + ) { + interval = restrictedInterval(usedField.aggregationRestrictions) as string; + timeZone = usedField.aggregationRestrictions.date_histogram.time_zone; + } + return buildExpressionFunction('aggDateHistogram', { + id: columnId, + enabled: true, + schema: 'segment', + field: column.sourceField, + time_zone: timeZone, + useNormalizedEsInterval: !usedField?.aggregationRestrictions?.date_histogram, + interval, + drop_partials: false, + min_doc_count: 0, + extended_bounds: extendedBoundsToAst({}), + }).toAst(); + }, + paramEditor: function ParamEditor({ + layer, + columnId, + currentColumn, + updateLayer, + dateRange, + data, + indexPattern, + }: ParamEditorProps) { + const field = currentColumn && indexPattern.getFieldByName(currentColumn.sourceField); + const intervalIsRestricted = + field!.aggregationRestrictions && field!.aggregationRestrictions.date_histogram; - const interval = parseInterval(currentColumn.params.interval); + const interval = parseInterval(currentColumn.params.interval); - // We force the interval value to 1 if it's empty, since that is the ES behavior, - // and the isValidInterval function doesn't handle the empty case properly. Fixing - // isValidInterval involves breaking changes in other areas. - const isValid = isValidInterval( - `${interval.value === '' ? '1' : interval.value}${interval.unit}`, - restrictedInterval(field!.aggregationRestrictions) - ); + // We force the interval value to 1 if it's empty, since that is the ES behavior, + // and the isValidInterval function doesn't handle the empty case properly. Fixing + // isValidInterval involves breaking changes in other areas. + const isValid = isValidInterval( + `${interval.value === '' ? '1' : interval.value}${interval.unit}`, + restrictedInterval(field!.aggregationRestrictions) + ); - function onChangeAutoInterval(ev: EuiSwitchEvent) { - const { fromDate, toDate } = dateRange; - const value = ev.target.checked - ? data.search.aggs.calculateAutoTimeExpression({ from: fromDate, to: toDate }) || '1h' - : autoInterval; - updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); - } + function onChangeAutoInterval(ev: EuiSwitchEvent) { + const { fromDate, toDate } = dateRange; + const value = ev.target.checked + ? data.search.aggs.calculateAutoTimeExpression({ from: fromDate, to: toDate }) || '1h' + : autoInterval; + updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); + } - const setInterval = (newInterval: typeof interval) => { - const isCalendarInterval = calendarOnlyIntervals.has(newInterval.unit); - const value = `${isCalendarInterval ? '1' : newInterval.value}${newInterval.unit || 'd'}`; + const setInterval = (newInterval: typeof interval) => { + const isCalendarInterval = calendarOnlyIntervals.has(newInterval.unit); + const value = `${isCalendarInterval ? '1' : newInterval.value}${newInterval.unit || 'd'}`; - updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); - }; + updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); + }; - return ( - <> - {!intervalIsRestricted && ( - - - - )} - {currentColumn.params.interval !== autoInterval && ( - + {!intervalIsRestricted && ( + + - {intervalIsRestricted ? ( - - ) : ( - <> - - - { - const newInterval = { - ...interval, - value: e.target.value, - }; - setInterval(newInterval); - }} - /> - - - { - const newInterval = { - ...interval, - unit: e.target.value, - }; - setInterval(newInterval); - }} - isInvalid={!isValid} - options={[ - { - value: 'ms', - text: i18n.translate( - 'xpack.lens.indexPattern.dateHistogram.milliseconds', - { - defaultMessage: 'milliseconds', - } - ), - }, - { - value: 's', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.seconds', { - defaultMessage: 'seconds', - }), - }, - { - value: 'm', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.minutes', { - defaultMessage: 'minutes', - }), - }, - { - value: 'h', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.hours', { - defaultMessage: 'hours', - }), - }, - { - value: 'd', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.days', { - defaultMessage: 'days', - }), - }, - { - value: 'w', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.week', { - defaultMessage: 'week', - }), - }, - { - value: 'M', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.month', { - defaultMessage: 'month', - }), - }, - // Quarterly intervals appear to be unsupported by esaggs - { - value: 'y', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.year', { - defaultMessage: 'year', - }), - }, - ]} - /> - - - {!isValid && ( - <> - - - {i18n.translate('xpack.lens.indexPattern.invalidInterval', { - defaultMessage: 'Invalid interval value', - })} - - - )} - - )} - - )} - - ); - }, - }; + checked={currentColumn.params.interval !== autoInterval} + onChange={onChangeAutoInterval} + compressed + /> + + )} + {currentColumn.params.interval !== autoInterval && ( + + {intervalIsRestricted ? ( + + ) : ( + <> + + + { + const newInterval = { + ...interval, + value: e.target.value, + }; + setInterval(newInterval); + }} + /> + + + { + const newInterval = { + ...interval, + unit: e.target.value, + }; + setInterval(newInterval); + }} + isInvalid={!isValid} + options={[ + { + value: 'ms', + text: i18n.translate( + 'xpack.lens.indexPattern.dateHistogram.milliseconds', + { + defaultMessage: 'milliseconds', + } + ), + }, + { + value: 's', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.seconds', { + defaultMessage: 'seconds', + }), + }, + { + value: 'm', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.minutes', { + defaultMessage: 'minutes', + }), + }, + { + value: 'h', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.hours', { + defaultMessage: 'hours', + }), + }, + { + value: 'd', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.days', { + defaultMessage: 'days', + }), + }, + { + value: 'w', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.week', { + defaultMessage: 'week', + }), + }, + { + value: 'M', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.month', { + defaultMessage: 'month', + }), + }, + // Quarterly intervals appear to be unsupported by esaggs + { + value: 'y', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.year', { + defaultMessage: 'year', + }), + }, + ]} + /> + + + {!isValid && ( + <> + + + {i18n.translate('xpack.lens.indexPattern.invalidInterval', { + defaultMessage: 'Invalid interval value', + })} + + + )} + + )} + + )} + + ); + }, +}; function parseInterval(currentInterval: string) { const interval = currentInterval || ''; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx index 640ea3a1a41f6..b215e6ed7e318 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx @@ -74,7 +74,7 @@ describe('filters', () => { }, ], }, - }, + } as FiltersIndexPatternColumn, col2: { label: 'Count', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx index 47dd8fbc9c569..203774c6b1561 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx @@ -28,7 +28,7 @@ import { hasFunctionFieldArgument } from '../validation'; import type { GenericOperationDefinition, - IndexPatternColumn, + GenericIndexPatternColumn, OperationDefinition, ParamEditorProps, } from '../../index'; @@ -503,7 +503,7 @@ export function getFunctionSignatureLabel( function getFunctionArgumentsStringified( params: Required< - OperationDefinition + OperationDefinition >['operationParams'] ) { return params diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx index d3dc8e95933a3..93df78ec3f5ff 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx @@ -6,15 +6,18 @@ */ import { createMockedIndexPattern } from '../../../mocks'; -import { formulaOperation, GenericOperationDefinition, IndexPatternColumn } from '../index'; +import { formulaOperation, GenericOperationDefinition, GenericIndexPatternColumn } from '../index'; import { FormulaIndexPatternColumn } from './formula'; import { regenerateLayerFromAst } from './parse'; import type { IndexPattern, IndexPatternField, IndexPatternLayer } from '../../../types'; import { tinymathFunctions } from './util'; +import { TermsIndexPatternColumn } from '../terms'; +import { MovingAverageIndexPatternColumn } from '../calculations'; +import { StaticValueIndexPatternColumn } from '../static_value'; jest.mock('../../layer_helpers', () => { return { - getColumnOrder: jest.fn(({ columns }: { columns: Record }) => + getColumnOrder: jest.fn(({ columns }: { columns: Record }) => Object.keys(columns) ), getManagedColumnsFrom: jest.fn().mockReturnValue([]), @@ -113,7 +116,7 @@ describe('formula', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, }; }); @@ -191,7 +194,7 @@ describe('formula', () => { }, }, }, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, layer, indexPattern, }) @@ -225,7 +228,7 @@ describe('formula', () => { // Need to test with multiple replaces due to string replace query: `category.keyword: "Men's Clothing" or category.keyword: "Men's Shoes"`, }, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, layer, indexPattern, }) @@ -254,7 +257,7 @@ describe('formula', () => { language: 'lucene', query: `*`, }, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, layer, indexPattern, }) @@ -285,7 +288,7 @@ describe('formula', () => { references: ['col2'], timeScale: 'd', params: { window: 3 }, - }, + } as MovingAverageIndexPatternColumn, layer: { indexPatternId: '1', columnOrder: [], @@ -299,7 +302,7 @@ describe('formula', () => { references: ['col2'], timeScale: 'd', params: { window: 3 }, - }, + } as MovingAverageIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -345,7 +348,7 @@ describe('formula', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, layer: { indexPatternId: '1', columnOrder: [], @@ -361,7 +364,7 @@ describe('formula', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, }, indexPattern, @@ -392,7 +395,7 @@ describe('formula', () => { params: { value: '0', }, - }, + } as StaticValueIndexPatternColumn, layer, indexPattern, }) @@ -668,7 +671,7 @@ describe('formula', () => { scale: 'ratio', params: { formula, isFormulaBroken: isBroken }, references: [], - }, + } as FormulaIndexPatternColumn, }, columnOrder: [], indexPatternId: '', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx index 511f18415272e..5842cde4fea31 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx @@ -15,6 +15,7 @@ import { regenerateLayerFromAst } from './parse'; import { generateFormula } from './generate'; import { filterByVisibleOperation } from './util'; import { getManagedColumnsFrom } from '../../layer_helpers'; +import { isColumnFormatted } from '../helpers'; const defaultLabel = i18n.translate('xpack.lens.indexPattern.formulaLabel', { defaultMessage: 'Formula', @@ -120,8 +121,8 @@ export const formulaOperation: OperationDefinition>; @@ -33,12 +35,12 @@ export function getSafeFieldName({ } export function generateFormula( - previousColumn: ReferenceBasedIndexPatternColumn | IndexPatternColumn, + previousColumn: ReferenceBasedIndexPatternColumn | GenericIndexPatternColumn, layer: IndexPatternLayer, previousFormula: string, operationDefinitionMap: Record | undefined ) { - if (previousColumn.operationType === 'static_value') { + if (isColumnOfType('static_value', previousColumn)) { if (previousColumn.params && 'value' in previousColumn.params) { return String(previousColumn.params.value); // make sure it's a string } @@ -81,17 +83,25 @@ export function generateFormula( return previousFormula; } +interface ParameterizedColumn extends BaseIndexPatternColumn { + params: OperationParams; +} + +function isParameterizedColumn(col: GenericIndexPatternColumn): col is ParameterizedColumn { + return Boolean('params' in col && col.params); +} + function extractParamsForFormula( - column: IndexPatternColumn | ReferenceBasedIndexPatternColumn, + column: GenericIndexPatternColumn, operationDefinitionMap: Record | undefined ) { if (!operationDefinitionMap) { return []; } const def = operationDefinitionMap[column.operationType]; - if ('operationParams' in def && column.params) { + if ('operationParams' in def && isParameterizedColumn(column)) { return (def.operationParams || []).flatMap(({ name, required }) => { - const value = (column.params as OperationParams)![name]; + const value = column.params[name]; if (isObject(value)) { return Object.keys(value).map((subName) => ({ name: `${name}-${subName}`, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts index adccecc875c22..ead2467416ce2 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts @@ -8,7 +8,11 @@ import { i18n } from '@kbn/i18n'; import { isObject } from 'lodash'; import type { TinymathAST, TinymathVariable, TinymathLocation } from '@kbn/tinymath'; -import { OperationDefinition, GenericOperationDefinition, IndexPatternColumn } from '../index'; +import { + OperationDefinition, + GenericOperationDefinition, + GenericIndexPatternColumn, +} from '../index'; import { IndexPattern, IndexPatternLayer } from '../../../types'; import { mathOperation } from './math'; import { documentField } from '../../../document_field'; @@ -67,8 +71,8 @@ function extractColumns( layer: IndexPatternLayer, indexPattern: IndexPattern, label: string -): Array<{ column: IndexPatternColumn; location?: TinymathLocation }> { - const columns: Array<{ column: IndexPatternColumn; location?: TinymathLocation }> = []; +): Array<{ column: GenericIndexPatternColumn; location?: TinymathLocation }> { + const columns: Array<{ column: GenericIndexPatternColumn; location?: TinymathLocation }> = []; function parseNode(node: TinymathAST) { if (typeof node === 'number' || node.type !== 'function') { @@ -102,7 +106,7 @@ function extractColumns( const mappedParams = getOperationParams(nodeOperation, namedArguments || []); const newCol = ( - nodeOperation as OperationDefinition + nodeOperation as OperationDefinition ).buildColumn( { layer, @@ -139,7 +143,7 @@ function extractColumns( const mappedParams = getOperationParams(nodeOperation, namedArguments || []); const newCol = ( - nodeOperation as OperationDefinition + nodeOperation as OperationDefinition ).buildColumn( { layer, @@ -227,7 +231,7 @@ export function regenerateLayerFromAst( isFormulaBroken: !isValid, }, references: !isValid ? [] : [getManagedId(columnId, extracted.length - 1)], - }; + } as FormulaIndexPatternColumn; return { newLayer: { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts index f1530ba46caef..db267bfb0d564 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts @@ -13,7 +13,11 @@ import type { TinymathNamedArgument, TinymathVariable, } from 'packages/kbn-tinymath'; -import type { OperationDefinition, IndexPatternColumn, GenericOperationDefinition } from '../index'; +import type { + OperationDefinition, + GenericIndexPatternColumn, + GenericOperationDefinition, +} from '../index'; import type { GroupedNodes } from './types'; export const unquotedStringRegex = /[^0-9A-Za-z._@\[\]/]/; @@ -46,8 +50,8 @@ export function getValueOrName(node: TinymathAST) { export function getOperationParams( operation: - | OperationDefinition - | OperationDefinition, + | OperationDefinition + | OperationDefinition, params: TinymathNamedArgument[] = [] ): Record { const formalArgs: Record = (operation.operationParams || []).reduce( diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts index 1a8d8529a9b90..d6b9a1fff8e9d 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts @@ -20,7 +20,11 @@ import { tinymathFunctions, } from './util'; -import type { OperationDefinition, IndexPatternColumn, GenericOperationDefinition } from '../index'; +import type { + OperationDefinition, + GenericIndexPatternColumn, + GenericOperationDefinition, +} from '../index'; import type { IndexPattern, IndexPatternLayer } from '../../../types'; import type { TinymathNodeTypes } from './types'; import { parseTimeShift } from '../../../../../../../../src/plugins/data/common'; @@ -482,8 +486,8 @@ function checkSingleQuery(namedArguments: TinymathNamedArgument[] | undefined) { function validateNameArguments( node: TinymathFunction, nodeOperation: - | OperationDefinition - | OperationDefinition, + | OperationDefinition + | OperationDefinition, namedArguments: TinymathNamedArgument[] | undefined, indexPattern: IndexPattern ) { @@ -749,16 +753,16 @@ function runFullASTValidation( export function canHaveParams( operation: - | OperationDefinition - | OperationDefinition + | OperationDefinition + | OperationDefinition ) { return Boolean((operation.operationParams || []).length) || operation.filterable; } export function getInvalidParams( operation: - | OperationDefinition - | OperationDefinition, + | OperationDefinition + | OperationDefinition, params: TinymathNamedArgument[] = [] ) { return validateParams(operation, params).filter( @@ -768,8 +772,8 @@ export function getInvalidParams( export function getMissingParams( operation: - | OperationDefinition - | OperationDefinition, + | OperationDefinition + | OperationDefinition, params: TinymathNamedArgument[] = [] ) { return validateParams(operation, params).filter( @@ -779,8 +783,8 @@ export function getMissingParams( export function getWrongTypeParams( operation: - | OperationDefinition - | OperationDefinition, + | OperationDefinition + | OperationDefinition, params: TinymathNamedArgument[] = [] ) { return validateParams(operation, params).filter( @@ -789,7 +793,7 @@ export function getWrongTypeParams( } function getReturnedType( - operation: OperationDefinition, + operation: OperationDefinition, indexPattern: IndexPattern, firstArg: TinymathAST ) { @@ -822,8 +826,8 @@ function getDuplicateParams(params: TinymathNamedArgument[] = []) { export function validateParams( operation: - | OperationDefinition - | OperationDefinition, + | OperationDefinition + | OperationDefinition, params: TinymathNamedArgument[] = [] ) { const paramsObj = getOperationParams(operation, params); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx index a399183694863..9b22ef02fb3b5 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx @@ -6,8 +6,12 @@ */ import { i18n } from '@kbn/i18n'; -import { IndexPatternColumn, operationDefinitionMap } from '.'; -import { FieldBasedIndexPatternColumn, ReferenceBasedIndexPatternColumn } from './column_types'; +import { GenericIndexPatternColumn, operationDefinitionMap } from '.'; +import { + FieldBasedIndexPatternColumn, + FormattedIndexPatternColumn, + ReferenceBasedIndexPatternColumn, +} from './column_types'; import { IndexPattern } from '../../types'; export function getInvalidFieldMessage( @@ -36,7 +40,7 @@ export function getInvalidFieldMessage( operationDefinition && field && !operationDefinition.isTransferable( - column as IndexPatternColumn, + column as GenericIndexPatternColumn, indexPattern, operationDefinitionMap ) @@ -90,19 +94,35 @@ export function isValidNumber( ); } +export function isColumnOfType( + type: C['operationType'], + column: GenericIndexPatternColumn +): column is C { + return column.operationType === type; +} + +export function isColumnFormatted( + column: GenericIndexPatternColumn +): column is FormattedIndexPatternColumn { + return Boolean( + 'params' in column && + (column as FormattedIndexPatternColumn).params && + 'format' in (column as FormattedIndexPatternColumn).params! + ); +} + export function getFormatFromPreviousColumn( - previousColumn: IndexPatternColumn | ReferenceBasedIndexPatternColumn | undefined + previousColumn: GenericIndexPatternColumn | ReferenceBasedIndexPatternColumn | undefined ) { return previousColumn?.dataType === 'number' && - previousColumn.params && - 'format' in previousColumn.params && - previousColumn.params.format + isColumnFormatted(previousColumn) && + previousColumn.params ? { format: previousColumn.params.format } : undefined; } export function getFilter( - previousColumn: IndexPatternColumn | undefined, + previousColumn: GenericIndexPatternColumn | undefined, columnParams: { kql?: string | undefined; lucene?: string | undefined } | undefined ) { let filter = previousColumn?.filter; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts index 5898cfc26d88c..f18bdb9498f25 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts @@ -7,93 +7,51 @@ import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup, CoreStart } from 'kibana/public'; import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; -import { termsOperation, TermsIndexPatternColumn } from './terms'; -import { filtersOperation, FiltersIndexPatternColumn } from './filters'; -import { cardinalityOperation, CardinalityIndexPatternColumn } from './cardinality'; -import { percentileOperation, PercentileIndexPatternColumn } from './percentile'; +import { termsOperation } from './terms'; +import { filtersOperation } from './filters'; +import { cardinalityOperation } from './cardinality'; +import { percentileOperation } from './percentile'; import { minOperation, - MinIndexPatternColumn, averageOperation, - AvgIndexPatternColumn, sumOperation, - SumIndexPatternColumn, maxOperation, - MaxIndexPatternColumn, medianOperation, - MedianIndexPatternColumn, } from './metrics'; -import { dateHistogramOperation, DateHistogramIndexPatternColumn } from './date_histogram'; +import { dateHistogramOperation } from './date_histogram'; import { cumulativeSumOperation, - CumulativeSumIndexPatternColumn, counterRateOperation, - CounterRateIndexPatternColumn, derivativeOperation, - DerivativeIndexPatternColumn, movingAverageOperation, - MovingAverageIndexPatternColumn, - OverallSumIndexPatternColumn, overallSumOperation, - OverallMinIndexPatternColumn, overallMinOperation, - OverallMaxIndexPatternColumn, overallMaxOperation, - OverallAverageIndexPatternColumn, overallAverageOperation, } from './calculations'; -import { countOperation, CountIndexPatternColumn } from './count'; -import { - mathOperation, - MathIndexPatternColumn, - formulaOperation, - FormulaIndexPatternColumn, -} from './formula'; -import { staticValueOperation, StaticValueIndexPatternColumn } from './static_value'; -import { lastValueOperation, LastValueIndexPatternColumn } from './last_value'; +import { countOperation } from './count'; +import { mathOperation, formulaOperation } from './formula'; +import { staticValueOperation } from './static_value'; +import { lastValueOperation } from './last_value'; import { FrameDatasourceAPI, OperationMetadata, ParamEditorCustomProps } from '../../../types'; -import type { BaseIndexPatternColumn, ReferenceBasedIndexPatternColumn } from './column_types'; +import type { + BaseIndexPatternColumn, + GenericIndexPatternColumn, + ReferenceBasedIndexPatternColumn, +} from './column_types'; import { IndexPattern, IndexPatternField, IndexPatternLayer } from '../../types'; import { DateRange, LayerType } from '../../../../common'; import { ExpressionAstFunction } from '../../../../../../../src/plugins/expressions/public'; import { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; -import { RangeIndexPatternColumn, rangeOperation } from './ranges'; +import { rangeOperation } from './ranges'; import { IndexPatternDimensionEditorProps } from '../../dimension_panel'; -/** - * A union type of all available column types. If a column is of an unknown type somewhere - * withing the indexpattern data source it should be typed as `IndexPatternColumn` to make - * typeguards possible that consider all available column types. - */ -export type IndexPatternColumn = - | FiltersIndexPatternColumn - | RangeIndexPatternColumn - | TermsIndexPatternColumn - | DateHistogramIndexPatternColumn - | MinIndexPatternColumn - | MaxIndexPatternColumn - | AvgIndexPatternColumn - | CardinalityIndexPatternColumn - | SumIndexPatternColumn - | MedianIndexPatternColumn - | PercentileIndexPatternColumn - | CountIndexPatternColumn - | LastValueIndexPatternColumn - | CumulativeSumIndexPatternColumn - | OverallSumIndexPatternColumn - | OverallMinIndexPatternColumn - | OverallMaxIndexPatternColumn - | OverallAverageIndexPatternColumn - | CounterRateIndexPatternColumn - | DerivativeIndexPatternColumn - | MovingAverageIndexPatternColumn - | MathIndexPatternColumn - | FormulaIndexPatternColumn - | StaticValueIndexPatternColumn; - -export type FieldBasedIndexPatternColumn = Extract; - -export type { IncompleteColumn } from './column_types'; +export type { + IncompleteColumn, + BaseIndexPatternColumn, + GenericIndexPatternColumn, + FieldBasedIndexPatternColumn, +} from './column_types'; export type { TermsIndexPatternColumn } from './terms'; export type { FiltersIndexPatternColumn } from './filters'; @@ -125,7 +83,7 @@ export type { StaticValueIndexPatternColumn } from './static_value'; // List of all operation definitions registered to this data source. // If you want to implement a new operation, add the definition to this array and -// the column type to the `IndexPatternColumn` union type below. +// the column type to the `GenericIndexPatternColumn` union type below. const internalOperationDefinitions = [ filtersOperation, termsOperation, @@ -227,7 +185,7 @@ interface BaseOperationDefinitionProps { getDefaultLabel: ( column: C, indexPattern: IndexPattern, - columns: Record + columns: Record ) => string; /** * This function is called if another column in the same layer changed or got added/removed. @@ -337,7 +295,7 @@ interface OperationParam { defaultValue?: string | number; } -interface FieldlessOperationDefinition { +interface FieldlessOperationDefinition { input: 'none'; /** @@ -350,9 +308,9 @@ interface FieldlessOperationDefinition { */ buildColumn: ( arg: BaseBuildColumnArgs & { - previousColumn?: IndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, - columnParams?: (IndexPatternColumn & C)['params'] + columnParams?: P ) => C; /** * Returns the meta data of the operation if applied. Undefined @@ -372,7 +330,7 @@ interface FieldlessOperationDefinition { ) => ExpressionAstFunction; } -interface FieldBasedOperationDefinition { +interface FieldBasedOperationDefinition { input: 'field'; /** @@ -391,9 +349,9 @@ interface FieldBasedOperationDefinition { buildColumn: ( arg: BaseBuildColumnArgs & { field: IndexPatternField; - previousColumn?: IndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, - columnParams?: (IndexPatternColumn & C)['params'] & { + columnParams?: P & { kql?: string; lucene?: string; shift?: string; @@ -498,7 +456,7 @@ interface FullReferenceOperationDefinition { buildColumn: ( arg: BaseBuildColumnArgs & { referenceIds: string[]; - previousColumn?: IndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, columnParams?: (ReferenceBasedIndexPatternColumn & C)['params'] & { kql?: string; @@ -528,7 +486,7 @@ interface ManagedReferenceOperationDefinition */ buildColumn: ( arg: BaseBuildColumnArgs & { - previousColumn?: IndexPatternColumn | ReferenceBasedIndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, columnParams?: (ReferenceBasedIndexPatternColumn & C)['params'], operationDefinitionMap?: Record @@ -559,9 +517,9 @@ interface ManagedReferenceOperationDefinition ) => IndexPatternLayer; } -interface OperationDefinitionMap { - field: FieldBasedOperationDefinition; - none: FieldlessOperationDefinition; +interface OperationDefinitionMap { + field: FieldBasedOperationDefinition; + none: FieldlessOperationDefinition; fullReference: FullReferenceOperationDefinition; managedReference: ManagedReferenceOperationDefinition; } @@ -573,24 +531,25 @@ interface OperationDefinitionMap { */ export type OperationDefinition< C extends BaseIndexPatternColumn, - Input extends keyof OperationDefinitionMap -> = BaseOperationDefinitionProps & OperationDefinitionMap[Input]; + Input extends keyof OperationDefinitionMap, + P = {} +> = BaseOperationDefinitionProps & OperationDefinitionMap[Input]; /** * A union type of all available operation types. The operation type is a unique id of an operation. * Each column is assigned to exactly one operation type. */ -export type OperationType = typeof internalOperationDefinitions[number]['type']; +export type OperationType = string; /** * This is an operation definition of an unspecified column out of all possible * column types. */ export type GenericOperationDefinition = - | OperationDefinition - | OperationDefinition - | OperationDefinition - | OperationDefinition; + | OperationDefinition + | OperationDefinition + | OperationDefinition + | OperationDefinition; /** * List of all available operation definitions diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx index 13e16fe1af4d0..26074b47e0f48 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx @@ -15,6 +15,7 @@ import { createMockedIndexPattern } from '../../mocks'; import { LastValueIndexPatternColumn } from './last_value'; import { lastValueOperation } from './index'; import type { IndexPattern, IndexPatternLayer } from '../../types'; +import { TermsIndexPatternColumn } from './terms'; const uiSettingsMock = {} as IUiSettingsClient; @@ -56,7 +57,7 @@ describe('last_value', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col2: { label: 'Last value of a', dataType: 'number', @@ -66,7 +67,7 @@ describe('last_value', () => { params: { sortField: 'datefield', }, - }, + } as LastValueIndexPatternColumn, }, }; }); @@ -467,7 +468,7 @@ describe('last_value', () => { params: { sortField: 'timestamp' }, scale: 'ratio', sourceField: 'bytes', - }, + } as LastValueIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -499,7 +500,7 @@ describe('last_value', () => { col1: { ...errorLayer.columns.col1, params: { - ...errorLayer.columns.col1.params, + ...(errorLayer.columns.col1 as LastValueIndexPatternColumn).params, sortField: 'notExisting', }, } as LastValueIndexPatternColumn, @@ -530,7 +531,7 @@ describe('last_value', () => { col1: { ...errorLayer.columns.col1, params: { - ...errorLayer.columns.col1.params, + ...(errorLayer.columns.col1 as LastValueIndexPatternColumn).params, sortField: 'bytes', }, } as LastValueIndexPatternColumn, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx index 61f2390820067..a8851c79be2ae 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx @@ -17,6 +17,7 @@ import { PercentileIndexPatternColumn } from './percentile'; import { EuiFieldNumber } from '@elastic/eui'; import { act } from 'react-dom/test-utils'; import { EuiFormRow } from '@elastic/eui'; +import { TermsIndexPatternColumn } from './terms'; const uiSettingsMock = {} as IUiSettingsClient; @@ -58,7 +59,7 @@ describe('percentile', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col2: { label: '23rd percentile of a', dataType: 'number', @@ -68,7 +69,7 @@ describe('percentile', () => { params: { percentile: 23, }, - }, + } as PercentileIndexPatternColumn, }, }; }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx index 9c9f7e8b66a1f..3aaeb9d944728 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx @@ -17,6 +17,7 @@ import { getSafeName, isValidNumber, getFilter, + isColumnOfType, } from './helpers'; import { FieldBasedIndexPatternColumn } from './column_types'; import { adjustTimeScaleLabelSuffix } from '../time_scale_utils'; @@ -53,7 +54,11 @@ const DEFAULT_PERCENTILE_VALUE = 95; const supportedFieldTypes = ['number', 'histogram']; -export const percentileOperation: OperationDefinition = { +export const percentileOperation: OperationDefinition< + PercentileIndexPatternColumn, + 'field', + { percentile: number } +> = { type: 'percentile', displayName: i18n.translate('xpack.lens.indexPattern.percentile', { defaultMessage: 'Percentile', @@ -91,9 +96,8 @@ export const percentileOperation: OperationDefinition { const existingPercentileParam = - previousColumn?.operationType === 'percentile' && - previousColumn.params && - 'percentile' in previousColumn.params && + previousColumn && + isColumnOfType('percentile', previousColumn) && previousColumn.params.percentile; const newPercentileParam = columnParams?.percentile ?? (existingPercentileParam || DEFAULT_PERCENTILE_VALUE); @@ -174,7 +178,7 @@ export const percentileOperation: OperationDefinition { ranges: [{ from: 0, to: DEFAULT_INTERVAL, label: '' }], maxBars: 'auto', }, - }, + } as RangeIndexPatternColumn, col2: { label: 'Count', dataType: 'number', @@ -385,10 +385,10 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, maxBars: MAX_HISTOGRAM_VALUE, }, - }, + } as RangeIndexPatternColumn, }, }); }); @@ -424,7 +424,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, maxBars: GRANULARITY_DEFAULT_VALUE - GRANULARITY_STEP, }, }, @@ -448,7 +448,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, maxBars: GRANULARITY_DEFAULT_VALUE, }, }, @@ -511,7 +511,10 @@ describe('ranges', () => { currentColumn={ { ...layer.columns.col1, - params: { ...layer.columns.col1.params, parentFormat: undefined }, + params: { + ...(layer.columns.col1 as RangeIndexPatternColumn).params, + parentFormat: undefined, + }, } as RangeIndexPatternColumn } /> @@ -565,7 +568,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, ranges: [ { from: 0, to: DEFAULT_INTERVAL, label: '' }, { from: 50, to: Infinity, label: '' }, @@ -620,7 +623,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, ranges: [ { from: 0, to: DEFAULT_INTERVAL, label: '' }, { from: DEFAULT_INTERVAL, to: Infinity, label: 'customlabel' }, @@ -670,7 +673,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, ranges: [{ from: 0, to: 50, label: '' }], }, }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx index 6e397a926c7a0..63ec5293ddd79 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx @@ -244,7 +244,7 @@ export const rangeOperation: OperationDefinition { const original = jest.requireActual('lodash'); @@ -65,7 +66,7 @@ describe('static_value', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col2: { label: 'Static value: 23', dataType: 'number', @@ -75,7 +76,7 @@ describe('static_value', () => { params: { value: '23', }, - }, + } as StaticValueIndexPatternColumn, }, }; }); @@ -256,7 +257,7 @@ describe('static_value', () => { scale: 'ratio', params: { value: '23' }, references: [], - }, + } as StaticValueIndexPatternColumn, }) ).toEqual({ label: 'Static value: 23', @@ -303,7 +304,7 @@ describe('static_value', () => { scale: 'ratio', params: { value: '23' }, references: [], - }, + } as StaticValueIndexPatternColumn, }, { value: '53' } ) @@ -351,7 +352,7 @@ describe('static_value', () => { params: { value: '0', }, - }, + } as StaticValueIndexPatternColumn, }, } as IndexPatternLayer; const instance = shallow( diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx index b66092e8a48c3..45a35d18873fc 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx @@ -8,7 +8,7 @@ import React, { useCallback } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFieldNumber, EuiFormLabel, EuiSpacer } from '@elastic/eui'; import { OperationDefinition } from './index'; -import { ReferenceBasedIndexPatternColumn } from './column_types'; +import { ReferenceBasedIndexPatternColumn, GenericIndexPatternColumn } from './column_types'; import type { IndexPattern } from '../../types'; import { useDebouncedValue } from '../../../shared_components'; import { getFormatFromPreviousColumn, isValidNumber } from './helpers'; @@ -46,6 +46,12 @@ export interface StaticValueIndexPatternColumn extends ReferenceBasedIndexPatter }; } +function isStaticValueColumnLike( + col: GenericIndexPatternColumn +): col is StaticValueIndexPatternColumn { + return Boolean('params' in col && col.params && 'value' in col.params); +} + export const staticValueOperation: OperationDefinition< StaticValueIndexPatternColumn, 'managedReference' @@ -102,8 +108,8 @@ export const staticValueOperation: OperationDefinition< }, buildColumn({ previousColumn, layer, indexPattern }, columnParams, operationDefinitionMap) { const existingStaticValue = - previousColumn?.params && - 'value' in previousColumn.params && + previousColumn && + isStaticValueColumnLike(previousColumn) && isValidNumber(previousColumn.params.value) ? previousColumn.params.value : undefined; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx index 180d5ed5e49b7..9b19ab43473d2 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx @@ -20,9 +20,10 @@ import { dataPluginMock } from '../../../../../../../../src/plugins/data/public/ import { createMockedIndexPattern } from '../../../mocks'; import { ValuesInput } from './values_input'; import type { TermsIndexPatternColumn } from '.'; -import { termsOperation } from '../index'; +import { termsOperation, LastValueIndexPatternColumn } from '../index'; import { IndexPattern, IndexPatternLayer } from '../../../types'; import { FrameDatasourceAPI } from '../../../../types'; +import { DateHistogramIndexPatternColumn } from '../date_histogram'; const uiSettingsMock = {} as IUiSettingsClient; @@ -61,7 +62,7 @@ describe('terms', () => { orderDirection: 'asc', }, sourceField: 'source', - }, + } as TermsIndexPatternColumn, col2: { label: 'Count', dataType: 'number', @@ -357,7 +358,7 @@ describe('terms', () => { params: { sortField: 'datefield', }, - }, + } as LastValueIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -472,7 +473,7 @@ describe('terms', () => { params: { sortField: 'time', }, - }, + } as LastValueIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -551,7 +552,7 @@ describe('terms', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -583,7 +584,7 @@ describe('terms', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col1: { label: 'Value of timestamp', dataType: 'date', @@ -595,7 +596,7 @@ describe('terms', () => { interval: 'w', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -627,7 +628,7 @@ describe('terms', () => { orderDirection: 'desc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -755,7 +756,7 @@ describe('terms', () => { { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as TermsIndexPatternColumn).params, otherBucket: true, }, } as TermsIndexPatternColumn @@ -783,7 +784,7 @@ describe('terms', () => { ...layer.columns.col1, sourceField: 'bytes', params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as TermsIndexPatternColumn).params, otherBucket: true, }, } as TermsIndexPatternColumn @@ -1018,7 +1019,7 @@ describe('terms', () => { }, scale: 'ordinal', sourceField: 'bytes', - }, + } as TermsIndexPatternColumn, }, columnOrder: [], indexPatternId: '', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts index 86add22b2b8ce..b9d675716c788 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts @@ -10,7 +10,9 @@ export * from './layer_helpers'; export * from './time_scale_utils'; export type { OperationType, - IndexPatternColumn, + BaseIndexPatternColumn, + GenericOperationDefinition, + GenericIndexPatternColumn, FieldBasedIndexPatternColumn, IncompleteColumn, RequiredReference, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts index 3dc0677f3b9b6..66ed0e83c97e4 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts @@ -21,13 +21,21 @@ import { operationDefinitionMap, OperationType } from '../operations'; import { TermsIndexPatternColumn } from './definitions/terms'; import { DateHistogramIndexPatternColumn } from './definitions/date_histogram'; import { AvgIndexPatternColumn } from './definitions/metrics'; -import type { IndexPattern, IndexPatternLayer } from '../types'; +import type { IndexPattern, IndexPatternLayer, IndexPatternPrivateState } from '../types'; import { documentField } from '../document_field'; import { getFieldByNameFactory } from '../pure_helpers'; import { generateId } from '../../id_generator'; import { createMockedFullReference, createMockedManagedReference } from './mocks'; -import { IndexPatternColumn, OperationDefinition } from './definitions'; +import { + FiltersIndexPatternColumn, + FormulaIndexPatternColumn, + GenericIndexPatternColumn, + MathIndexPatternColumn, + MovingAverageIndexPatternColumn, + OperationDefinition, +} from './definitions'; import { TinymathAST } from 'packages/kbn-tinymath'; +import { CoreStart } from 'kibana/public'; jest.mock('../operations'); jest.mock('../../id_generator'); @@ -292,7 +300,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }; expect( @@ -323,7 +331,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, col3: { label: 'Reference', dataType: 'number', @@ -362,7 +370,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, col3: { label: 'Count of records', dataType: 'document', @@ -458,7 +466,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -488,7 +496,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -520,7 +528,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, }, columnId: 'col2', @@ -598,7 +606,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -680,8 +688,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error invalid type op: 'testReference', + visualizationGroups: [], }); expect(result.columnOrder).toEqual(['id1', 'col1']); expect(result.columns).toEqual( @@ -700,8 +708,8 @@ describe('state_helpers', () => { col1: { dataType: 'number', isBucketed: false, + label: '', - // @ts-expect-error only in test operationType: 'testReference', references: ['ref1'], }, @@ -745,7 +753,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -848,7 +856,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col1', @@ -878,7 +886,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col1', @@ -914,7 +922,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col1', @@ -948,7 +956,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, incompleteColumns: { col1: { operationType: 'terms' }, @@ -986,7 +994,7 @@ describe('state_helpers', () => { params: { filters: [], }, - }, + } as FiltersIndexPatternColumn, }, }, indexPattern, @@ -1022,7 +1030,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, indexPattern, @@ -1058,7 +1066,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, indexPattern, @@ -1093,7 +1101,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, indexPattern, @@ -1128,7 +1136,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, }, indexPattern, @@ -1160,7 +1168,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, }, indexPattern, @@ -1215,7 +1223,7 @@ describe('state_helpers', () => { scale: 'ratio', params: { isFormulaBroken: false, formula: 'average(bytes)' }, references: [], - }, + } as FormulaIndexPatternColumn, }, }, indexPattern, @@ -1244,7 +1252,7 @@ describe('state_helpers', () => { scale: 'ratio', params: { isFormulaBroken: false, formula: 'average(bytes)' }, references: [], - }, + } as FormulaIndexPatternColumn, }, }, indexPattern, @@ -1490,8 +1498,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error op: 'testReference', + visualizationGroups: [], }); expect(result.columnOrder).toEqual(['id1', 'col1']); @@ -1531,8 +1539,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error test only op: 'testReference', + visualizationGroups: [], }); expect(result.columnOrder).toEqual(['col1', 'id1']); @@ -1572,8 +1580,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error op: 'testReference', + visualizationGroups: [], }); expect(result.incompleteColumns).toEqual({ @@ -1612,8 +1620,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error op: 'testReference', + visualizationGroups: [], }); expect(result.incompleteColumns).toEqual({}); @@ -1631,8 +1639,8 @@ describe('state_helpers', () => { operationDefinitionMap.secondTest = { input: 'fullReference', displayName: 'Reference test 2', - // @ts-expect-error this type is not statically available type: 'secondTest', + selectionStyle: 'full', requiredReferences: [ { // Any numeric metric that isn't also a reference @@ -1641,7 +1649,6 @@ describe('state_helpers', () => { meta.dataType === 'number' && !meta.isBucketed, }, ], - // @ts-expect-error don't want to define valid arguments buildColumn: jest.fn((args) => { return { label: 'Test reference', @@ -1684,7 +1691,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: [], }, @@ -1693,7 +1699,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['ref1', 'invalid'], }, @@ -1704,8 +1709,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'output', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }) ).toEqual( expect.objectContaining({ @@ -1738,7 +1743,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: [], }, @@ -1747,7 +1751,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['ref1', 'invalid'], }, @@ -1757,8 +1760,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'output', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }); expect(layer.columns.output).toEqual( expect.objectContaining({ references: ['ref1', 'invalid'] }) @@ -1787,7 +1790,7 @@ describe('state_helpers', () => { isFormulaBroken: false, }, references: ['formulaX3'], - }, + } as FormulaIndexPatternColumn, formulaX0: { customLabel: true, dataType: 'number' as const, @@ -1802,7 +1805,7 @@ describe('state_helpers', () => { label: 'formulaX1', references: ['formulaX0'], params: { tinymathAst: 'formulaX0' }, - }, + } as MathIndexPatternColumn, formulaX2: { customLabel: true, dataType: 'number' as const, @@ -1811,13 +1814,13 @@ describe('state_helpers', () => { operationType: 'moving_average' as const, params: { window: 5 }, references: ['formulaX1'], - }, + } as MovingAverageIndexPatternColumn, formulaX3: { ...math, label: 'formulaX3', references: ['formulaX2'], params: { tinymathAst: 'formulaX2' }, - }, + } as MathIndexPatternColumn, }, }; @@ -1826,8 +1829,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'source', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }) ).toEqual( expect.objectContaining({ @@ -1854,12 +1857,11 @@ describe('state_helpers', () => { operationType: 'date_histogram' as const, sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, output: { label: 'Test reference', dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['fieldReused'], }, @@ -1870,8 +1872,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'output', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }) ).toEqual( expect.objectContaining({ @@ -1922,7 +1924,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -1967,7 +1968,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], filter: { language: 'kuery', query: 'bytes > 4000' }, @@ -2113,7 +2113,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2281,7 +2280,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2310,7 +2308,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2356,7 +2353,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2365,7 +2361,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col2'], }, @@ -2469,7 +2464,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }) ).toEqual(['col1']); @@ -2496,7 +2491,7 @@ describe('state_helpers', () => { }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col2: { label: 'Average of bytes', dataType: 'number', @@ -2517,7 +2512,7 @@ describe('state_helpers', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, }, }) ).toEqual(['col1', 'col3', 'col2']); @@ -2548,7 +2543,7 @@ describe('state_helpers', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, formula: { label: 'Formula', dataType: 'number', @@ -2560,7 +2555,7 @@ describe('state_helpers', () => { isFormulaBroken: false, }, references: ['math'], - }, + } as FormulaIndexPatternColumn, countX0: { label: 'countX0', dataType: 'number', @@ -2580,8 +2575,7 @@ describe('state_helpers', () => { tinymathAst: { type: 'function', name: 'add', - // @ts-expect-error String args are not valid tinymath, but signals something unique to Lens - args: ['countX0', 'count'], + args: ['countX0', 'count'] as unknown as TinymathAST[], location: { min: 0, max: 17, @@ -2591,7 +2585,7 @@ describe('state_helpers', () => { }, references: ['countX0', 'count'], customLabel: true, - }, + } as MathIndexPatternColumn, }, }) ).toEqual(['date', 'count', 'formula', 'countX0', 'math']); @@ -2679,7 +2673,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 3, }, - }, + } as TermsIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2713,7 +2707,7 @@ describe('state_helpers', () => { params: { window: 7, }, - }, + } as MovingAverageIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2742,7 +2736,7 @@ describe('state_helpers', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2765,10 +2759,10 @@ describe('state_helpers', () => { operationDefinitionMap.date_histogram.transfer = ((oldColumn) => ({ ...oldColumn, params: { - ...oldColumn.params, + ...(oldColumn as DateHistogramIndexPatternColumn).params, interval: 'w', }, - })) as OperationDefinition['transfer']; + })) as OperationDefinition['transfer']; const layer: IndexPatternLayer = { columnOrder: ['col1', 'col2'], columns: { @@ -2781,7 +2775,7 @@ describe('state_helpers', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, }, indexPatternId: 'original', }; @@ -2813,7 +2807,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 3, }, - }, + } as TermsIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2846,7 +2840,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 3, }, - }, + } as TermsIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2895,15 +2889,19 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + label: '', + dataType: 'number', + isBucketed: false, + }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(mock).toHaveBeenCalled(); expect(errors).toHaveLength(1); @@ -2919,20 +2917,26 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'managedReference', references: ['col2'] }, + col1: { + operationType: 'managedReference', + references: ['col2'], + label: '', + dataType: 'number', + isBucketed: false, + }, col2: { - // @ts-expect-error not statically analyzed operationType: 'testReference', references: [], + label: '', + dataType: 'number', + isBucketed: false, }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(notCalledMock).not.toHaveBeenCalled(); expect(mock).toHaveBeenCalledTimes(1); @@ -2953,19 +2957,22 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + label: '', + dataType: 'number', + isBucketed: false, + }, }, incompleteColumns: { - // @ts-expect-error not statically analyzed col1: { operationType: 'testIncompleteReference' }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(savedRef).toHaveBeenCalled(); expect(incompleteRef).not.toHaveBeenCalled(); @@ -2982,22 +2989,32 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + label: '', + dataType: 'number', + isBucketed: false, + }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(mock).toHaveBeenCalledWith( { indexPatternId: '1', columnOrder: [], columns: { - col1: { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + dataType: 'number', + isBucketed: false, + label: '', + }, }, }, 'col1', @@ -3021,7 +3038,7 @@ describe('state_helpers', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, }, indexPatternId: 'original', }; @@ -3047,7 +3064,7 @@ describe('state_helpers', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, indexPatternId: 'original', }; @@ -3073,7 +3090,7 @@ describe('state_helpers', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, indexPatternId: 'original', }; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts index 67546ca6009cf..289161c9d3e37 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts @@ -18,10 +18,10 @@ import { operationDefinitionMap, operationDefinitions, OperationType, - IndexPatternColumn, RequiredReference, OperationDefinition, GenericOperationDefinition, + TermsIndexPatternColumn, } from './definitions'; import type { IndexPattern, @@ -31,9 +31,14 @@ import type { } from '../types'; import { getSortScoreByPriority } from './operations'; import { generateId } from '../../id_generator'; -import { ReferenceBasedIndexPatternColumn } from './definitions/column_types'; +import { + GenericIndexPatternColumn, + ReferenceBasedIndexPatternColumn, + BaseIndexPatternColumn, +} from './definitions/column_types'; import { FormulaIndexPatternColumn, regenerateLayerFromAst } from './definitions/formula'; import type { TimeScaleUnit } from '../../../common/expressions'; +import { isColumnOfType } from './definitions/helpers'; interface ColumnAdvancedParams { filter?: Query | undefined; @@ -57,7 +62,7 @@ interface ColumnChange { interface ColumnCopy { layer: IndexPatternLayer; targetId: string; - sourceColumn: IndexPatternColumn; + sourceColumn: GenericIndexPatternColumn; sourceColumnId: string; indexPattern: IndexPattern; shouldDeleteSource?: boolean; @@ -92,7 +97,7 @@ export function copyColumn({ function copyReferencesRecursively( layer: IndexPatternLayer, - sourceColumn: IndexPatternColumn, + sourceColumn: GenericIndexPatternColumn, sourceId: string, targetId: string, indexPattern: IndexPattern @@ -511,7 +516,7 @@ export function replaceColumn({ if (operationDefinition.input === 'managedReference') { const newColumn = operationDefinition.buildColumn( { ...baseOptions, layer: tempLayer }, - previousColumn.params, + 'params' in previousColumn ? previousColumn.params : undefined, operationDefinitionMap ) as FormulaIndexPatternColumn; @@ -665,11 +670,11 @@ export function replaceColumn({ function removeOrphanedColumns( previousDefinition: - | OperationDefinition - | OperationDefinition - | OperationDefinition - | OperationDefinition, - previousColumn: IndexPatternColumn, + | OperationDefinition + | OperationDefinition + | OperationDefinition + | OperationDefinition, + previousColumn: GenericIndexPatternColumn, tempLayer: IndexPatternLayer, indexPattern: IndexPattern ) { @@ -765,7 +770,7 @@ function applyReferenceTransition({ }: { layer: IndexPatternLayer; columnId: string; - previousColumn: IndexPatternColumn; + previousColumn: GenericIndexPatternColumn; op: OperationType; indexPattern: IndexPattern; visualizationGroups: VisualizationDimensionGroupConfig[]; @@ -962,7 +967,10 @@ function applyReferenceTransition({ ); } -function copyCustomLabel(newColumn: IndexPatternColumn, previousOptions: IndexPatternColumn) { +function copyCustomLabel( + newColumn: GenericIndexPatternColumn, + previousOptions: GenericIndexPatternColumn +) { const adjustedColumn = { ...newColumn }; const operationChanged = newColumn.operationType !== previousOptions.operationType; const fieldChanged = @@ -978,7 +986,7 @@ function copyCustomLabel(newColumn: IndexPatternColumn, previousOptions: IndexPa function addBucket( layer: IndexPatternLayer, - column: IndexPatternColumn, + column: BaseIndexPatternColumn, addedColumnId: string, visualizationGroups: VisualizationDimensionGroupConfig[], targetGroup?: string @@ -1071,7 +1079,7 @@ export function reorderByGroups( function addMetric( layer: IndexPatternLayer, - column: IndexPatternColumn, + column: BaseIndexPatternColumn, addedColumnId: string ): IndexPatternLayer { const tempLayer = { @@ -1096,7 +1104,7 @@ export function getMetricOperationTypes(field: IndexPatternField) { }); } -export function updateColumnParam({ +export function updateColumnParam({ layer, columnId, paramName, @@ -1107,18 +1115,19 @@ export function updateColumnParam({ paramName: string; value: unknown; }): IndexPatternLayer { + const oldColumn = layer.columns[columnId]; return { ...layer, columns: { ...layer.columns, [columnId]: { - ...layer.columns[columnId], + ...oldColumn, params: { - ...layer.columns[columnId].params, + ...('params' in oldColumn ? oldColumn.params : {}), [paramName]: value, }, }, - } as Record, + } as Record, }; } @@ -1228,7 +1237,7 @@ export function getExistingColumnGroups(layer: IndexPatternLayer): [string[], st * Returns true if the given column can be applied to the given index pattern */ export function isColumnTransferable( - column: IndexPatternColumn, + column: GenericIndexPatternColumn, newIndexPattern: IndexPattern, layer: IndexPatternLayer ): boolean { @@ -1373,9 +1382,7 @@ export function hasTermsWithManyBuckets(layer: IndexPatternLayer): boolean { return layer.columnOrder.some((columnId) => { const column = layer.columns[columnId]; if (column) { - return ( - column.isBucketed && column.params && 'size' in column.params && column.params.size > 5 - ); + return isColumnOfType('terms', column) && column.params.size > 5; } }); } @@ -1447,7 +1454,7 @@ function maybeValidateOperations({ column, validation, }: { - column: IndexPatternColumn; + column: GenericIndexPatternColumn; validation: RequiredReference; }) { if (!validation.specificOperations) { @@ -1463,7 +1470,7 @@ export function isColumnValidAsReference({ column, validation, }: { - column: IndexPatternColumn; + column: GenericIndexPatternColumn; validation: RequiredReference; }): boolean { if (!column) return false; @@ -1481,14 +1488,14 @@ export function isColumnValidAsReference({ export function getManagedColumnsFrom( columnId: string, - columns: Record -): Array<[string, IndexPatternColumn]> { + columns: Record +): Array<[string, GenericIndexPatternColumn]> { const allNodes: Record = {}; Object.entries(columns).forEach(([id, col]) => { allNodes[id] = 'references' in col ? [...col.references] : []; }); const queue: string[] = allNodes[columnId]; - const store: Array<[string, IndexPatternColumn]> = []; + const store: Array<[string, GenericIndexPatternColumn]> = []; while (queue.length > 0) { const nextId = queue.shift()!; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts index dbdfd5c564125..30f8c85a81b90 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts @@ -7,7 +7,7 @@ import type { IndexPatternLayer } from '../types'; import type { TimeScaleUnit } from '../../../common/expressions'; -import type { IndexPatternColumn } from './definitions'; +import type { DateHistogramIndexPatternColumn, GenericIndexPatternColumn } from './definitions'; import { adjustTimeScaleLabelSuffix, adjustTimeScaleOnOtherColumnChange } from './time_scale_utils'; export const DEFAULT_TIME_SCALE = 's' as TimeScaleUnit; @@ -97,7 +97,7 @@ describe('time scale utils', () => { }); describe('adjustTimeScaleOnOtherColumnChange', () => { - const baseColumn: IndexPatternColumn = { + const baseColumn: GenericIndexPatternColumn = { operationType: 'count', sourceField: 'Records', label: 'Count of records per second', @@ -135,7 +135,7 @@ describe('time scale utils', () => { label: '', sourceField: 'date', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, }, }, 'col1', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts index a6c056933f022..a8e71c0fd86e5 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts @@ -8,7 +8,7 @@ import { unitSuffixesLong } from '../../../common/suffix_formatter'; import type { TimeScaleUnit } from '../../../common/expressions'; import type { IndexPatternLayer } from '../types'; -import type { IndexPatternColumn } from './definitions'; +import type { GenericIndexPatternColumn } from './definitions'; export const DEFAULT_TIME_SCALE = 's' as TimeScaleUnit; @@ -44,7 +44,7 @@ export function adjustTimeScaleLabelSuffix( return `${cleanedLabel}${getSuffix(newTimeScale, newShift)}`; } -export function adjustTimeScaleOnOtherColumnChange( +export function adjustTimeScaleOnOtherColumnChange( layer: IndexPatternLayer, thisColumnId: string, changedColumnId: string diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx index 1258100375a39..d7f238171128d 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx @@ -11,7 +11,7 @@ import { uniq } from 'lodash'; import { FormattedMessage } from '@kbn/i18n/react'; import { IndexPattern, - IndexPatternColumn, + GenericIndexPatternColumn, IndexPatternLayer, IndexPatternPrivateState, } from './types'; @@ -229,7 +229,7 @@ export function getStateTimeShiftWarningMessages( export function getColumnTimeShiftWarnings( dateHistogramInterval: ReturnType, - column: IndexPatternColumn + column: GenericIndexPatternColumn ) { const { isValueTooSmall, isValueNotMultiple } = getLayerTimeShiftChecks(dateHistogramInterval); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts b/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts index 15b9b47d7a565..432c932b85da8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts @@ -20,12 +20,14 @@ import { ExpressionAstExpressionBuilder, ExpressionAstFunction, } from '../../../../../src/plugins/expressions/public'; -import { IndexPatternColumn } from './indexpattern'; +import { GenericIndexPatternColumn } from './indexpattern'; import { operationDefinitionMap } from './operations'; import { IndexPattern, IndexPatternPrivateState, IndexPatternLayer } from './types'; -import { dateHistogramOperation } from './operations/definitions'; +import { DateHistogramIndexPatternColumn, RangeIndexPatternColumn } from './operations/definitions'; +import { FormattedIndexPatternColumn } from './operations/definitions/column_types'; +import { isColumnFormatted, isColumnOfType } from './operations/definitions/helpers'; -type OriginalColumn = { id: string } & IndexPatternColumn; +type OriginalColumn = { id: string } & GenericIndexPatternColumn; function getExpressionForLayer( layer: IndexPatternLayer, @@ -147,50 +149,29 @@ function getExpressionForLayer( }, }; }, {} as Record); - - type FormattedColumn = Required< - Extract< - IndexPatternColumn, - | { - params?: { - format: unknown; - }; - } - // when formatters are nested there's a slightly different format - | { - params: { - format?: unknown; - parentFormat?: unknown; - }; - } - > - >; const columnsWithFormatters = columnEntries.filter( ([, col]) => - col.params && - (('format' in col.params && col.params.format) || - ('parentFormat' in col.params && col.params.parentFormat)) - ) as Array<[string, FormattedColumn]>; - const formatterOverrides: ExpressionAstFunction[] = columnsWithFormatters.map( - ([id, col]: [string, FormattedColumn]) => { - // TODO: improve the type handling here - const parentFormat = 'parentFormat' in col.params ? col.params!.parentFormat! : undefined; - const format = (col as FormattedColumn).params!.format; + (isColumnOfType('range', col) && col.params?.parentFormat) || + (isColumnFormatted(col) && col.params?.format) + ) as Array<[string, RangeIndexPatternColumn | FormattedIndexPatternColumn]>; + const formatterOverrides: ExpressionAstFunction[] = columnsWithFormatters.map(([id, col]) => { + // TODO: improve the type handling here + const parentFormat = 'parentFormat' in col.params! ? col.params!.parentFormat! : undefined; + const format = col.params!.format; - const base: ExpressionAstFunction = { - type: 'function', - function: 'lens_format_column', - arguments: { - format: format ? [format.id] : [''], - columnId: [id], - decimals: typeof format?.params?.decimals === 'number' ? [format.params.decimals] : [], - parentFormat: parentFormat ? [JSON.stringify(parentFormat)] : [], - }, - }; + const base: ExpressionAstFunction = { + type: 'function', + function: 'lens_format_column', + arguments: { + format: format ? [format.id] : [''], + columnId: [id], + decimals: typeof format?.params?.decimals === 'number' ? [format.params.decimals] : [], + parentFormat: parentFormat ? [JSON.stringify(parentFormat)] : [], + }, + }; - return base; - } - ); + return base; + }); const firstDateHistogramColumn = columnEntries.find( ([, col]) => col.operationType === 'date_histogram' @@ -254,7 +235,9 @@ function getExpressionForLayer( const allDateHistogramFields = Object.values(columns) .map((column) => - column.operationType === dateHistogramOperation.type ? column.sourceField : null + isColumnOfType('date_histogram', column) + ? column.sourceField + : null ) .filter((field): field is string => Boolean(field)); @@ -291,7 +274,7 @@ function getExpressionForLayer( } // Topologically sorts references so that we can execute them in sequence -function sortedReferences(columns: Array) { +function sortedReferences(columns: Array) { const allNodes: Record = {}; columns.forEach(([id, col]) => { allNodes[id] = 'references' in col ? col.references : []; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/types.ts b/x-pack/plugins/lens/public/indexpattern_datasource/types.ts index 515693b4dd5c8..a0d43c5523c5b 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/types.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/types.ts @@ -5,17 +5,17 @@ * 2.0. */ -import type { IndexPatternColumn, IncompleteColumn } from './operations'; +import type { IncompleteColumn, GenericIndexPatternColumn } from './operations'; import type { IndexPatternAggRestrictions } from '../../../../../src/plugins/data/public'; import type { FieldSpec } from '../../../../../src/plugins/data/common'; import type { DragDropIdentifier } from '../drag_drop/providers'; import type { FieldFormatParams } from '../../../../../src/plugins/field_formats/common'; export type { - FieldBasedIndexPatternColumn, - IndexPatternColumn, + GenericIndexPatternColumn, OperationType, IncompleteColumn, + FieldBasedIndexPatternColumn, FiltersIndexPatternColumn, RangeIndexPatternColumn, TermsIndexPatternColumn, @@ -67,7 +67,7 @@ export type IndexPatternField = FieldSpec & { export interface IndexPatternLayer { columnOrder: string[]; - columns: Record; + columns: Record; // Each layer is tied to the index pattern that created it indexPatternId: string; // Partial columns represent the temporary invalid states diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx index 6d3f75a403dd7..f1f8f2cfe3e62 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx @@ -24,7 +24,7 @@ import type { ReferenceBasedIndexPatternColumn, } from './operations/definitions/column_types'; -import { operationDefinitionMap, IndexPatternColumn } from './operations'; +import { operationDefinitionMap, GenericIndexPatternColumn } from './operations'; import { getInvalidFieldMessage } from './operations/definitions/helpers'; import { isQueryValid } from './operations/definitions/filters'; @@ -65,7 +65,7 @@ export function isColumnInvalid( columnId: string, indexPattern: IndexPattern ) { - const column: IndexPatternColumn | undefined = layer.columns[columnId]; + const column: GenericIndexPatternColumn | undefined = layer.columns[columnId]; if (!column || !indexPattern) return; const operationDefinition = column.operationType && operationDefinitionMap[column.operationType]; @@ -75,12 +75,9 @@ export function isColumnInvalid( 'references' in column && Boolean(getReferencesErrors(layer, column, indexPattern).filter(Boolean).length); - const operationErrorMessages = operationDefinition.getErrorMessage?.( - layer, - columnId, - indexPattern, - operationDefinitionMap - ); + const operationErrorMessages = + operationDefinition && + operationDefinition.getErrorMessage?.(layer, columnId, indexPattern, operationDefinitionMap); const filterHasError = column.filter ? !isQueryValid(column.filter, indexPattern) : false; @@ -108,7 +105,10 @@ function getReferencesErrors( }); } -export function fieldIsInvalid(column: IndexPatternColumn | undefined, indexPattern: IndexPattern) { +export function fieldIsInvalid( + column: GenericIndexPatternColumn | undefined, + indexPattern: IndexPattern +) { if (!column || !hasField(column)) { return false; } diff --git a/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx b/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx index 5aacffb52cb49..5567d4562b1d8 100644 --- a/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx +++ b/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx @@ -28,6 +28,7 @@ import { TypedLensByValueInput, PersistedIndexPatternLayer, PieVisualizationState, + TermsIndexPatternColumn, } from '../../../lens/public'; import { FilterStateStore, DataView } from '../../../../../src/plugins/data/common'; import { useKibana } from '../common/lib/kibana'; @@ -88,7 +89,7 @@ function getLensAttributes( }, orderDirection: 'desc', }, - }, + } as TermsIndexPatternColumn, 'ed999e9d-204c-465b-897f-fe1a125b39ed': { sourceField: 'Records', isBucketed: false, From b55b52c298b5105216006fb4d16c5037a61c08c8 Mon Sep 17 00:00:00 2001 From: Marta Bondyra Date: Fri, 19 Nov 2021 13:03:11 +0100 Subject: [PATCH 061/114] [Lens] Add max steps limit to coloring (#119132) * [Lens] add max steps limit to coloring * customize EmptyPlaceholder usage * refactor --- x-pack/plugins/lens/common/types.ts | 7 +- .../metric_visualization/palette_config.tsx | 1 + .../coloring/color_stops.test.tsx | 27 ++++++ .../coloring/color_stops.tsx | 82 +++++++++++-------- .../shared_components/coloring/constants.ts | 1 + .../shared_components/empty_placeholder.tsx | 21 +++-- 6 files changed, 97 insertions(+), 42 deletions(-) diff --git a/x-pack/plugins/lens/common/types.ts b/x-pack/plugins/lens/common/types.ts index 307ed856c7c66..152eef4ebd3fe 100644 --- a/x-pack/plugins/lens/common/types.ts +++ b/x-pack/plugins/lens/common/types.ts @@ -58,8 +58,13 @@ export interface CustomPaletteParams { colorStops?: ColorStop[]; steps?: number; } +export type CustomPaletteParamsConfig = CustomPaletteParams & { + maxSteps?: number; +}; -export type RequiredPaletteParamTypes = Required; +export type RequiredPaletteParamTypes = Required & { + maxSteps?: number; +}; export type LayerType = 'data' | 'referenceLine'; diff --git a/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx b/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx index 59147a33963d1..08cff1c777d2e 100644 --- a/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx @@ -12,6 +12,7 @@ export const DEFAULT_PALETTE_NAME = 'status'; export const DEFAULT_COLOR_STEPS = 3; export const defaultPaletteParams: RequiredPaletteParamTypes = { ...sharedDefaultParams, + maxSteps: 5, name: DEFAULT_PALETTE_NAME, rangeType: 'number', steps: DEFAULT_COLOR_STEPS, diff --git a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx index b6482b0d89e04..5489c0cbd9693 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx @@ -58,6 +58,33 @@ describe('Color Stops component', () => { ).toBe(true); }); + it('should disable "add new" button if there is maxStops configured', () => { + props.colorStops = [ + { color: '#aaa', stop: 20 }, + { color: '#bbb', stop: 40 }, + { color: '#ccc', stop: 60 }, + { color: '#ccc', stop: 80 }, + { color: '#ccc', stop: 90 }, + ]; + const component = mount(); + const componentWithMaxSteps = mount( + + ); + expect( + component + .find('[data-test-subj="my-test_dynamicColoring_addStop"]') + .first() + .prop('isDisabled') + ).toBe(false); + + expect( + componentWithMaxSteps + .find('[data-test-subj="my-test_dynamicColoring_addStop"]') + .first() + .prop('isDisabled') + ).toBe(true); + }); + it('should add a new stop with default color and reasonable distance from last one', () => { let component = mount(); const addStopButton = component diff --git a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx index 1431e6ad135be..65f07351021b7 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx @@ -22,7 +22,7 @@ import useUnmount from 'react-use/lib/useUnmount'; import { DEFAULT_COLOR } from './constants'; import { getDataMinMax, getStepValue, isValidColor } from './utils'; import { TooltipWrapper, useDebouncedValue } from '../index'; -import type { ColorStop, CustomPaletteParams } from '../../../common'; +import type { ColorStop, CustomPaletteParamsConfig } from '../../../common'; const idGeneratorFn = htmlIdGenerator(); @@ -44,7 +44,7 @@ export interface CustomStopsProps { colorStops: ColorStop[]; onChange: (colorStops: ColorStop[]) => void; dataBounds: { min: number; max: number }; - paletteConfiguration: CustomPaletteParams | undefined; + paletteConfiguration: CustomPaletteParamsConfig | undefined; 'data-test-prefix': string; } export const CustomStops = ({ @@ -80,6 +80,9 @@ export const CustomStops = ({ }); const [sortedReason, setSortReason] = useState(''); const shouldEnableDelete = localColorStops.length > 2; + const shouldDisableAdd = Boolean( + paletteConfiguration?.maxSteps && localColorStops.length >= paletteConfiguration?.maxSteps + ); const [popoverInFocus, setPopoverInFocus] = useState(false); @@ -257,38 +260,51 @@ export const CustomStops = ({ - { - const newColorStops = [...localColorStops]; - const length = newColorStops.length; - const { max } = getDataMinMax(rangeType, dataBounds); - const step = getStepValue( - colorStops, - newColorStops.map(({ color, stop }) => ({ color, stop: Number(stop) })), - max - ); - const prevColor = localColorStops[length - 1].color || DEFAULT_COLOR; - const newStop = step + Number(localColorStops[length - 1].stop); - newColorStops.push({ - color: prevColor, - stop: String(newStop), - id: idGeneratorFn(), - }); - setLocalColorStops(newColorStops); - }} + - {i18n.translate('xpack.lens.dynamicColoring.customPalette.addColorStop', { - defaultMessage: 'Add color stop', - })} - + { + const newColorStops = [...localColorStops]; + const length = newColorStops.length; + const { max } = getDataMinMax(rangeType, dataBounds); + const step = getStepValue( + colorStops, + newColorStops.map(({ color, stop }) => ({ color, stop: Number(stop) })), + max + ); + const prevColor = localColorStops[length - 1].color || DEFAULT_COLOR; + const newStop = step + Number(localColorStops[length - 1].stop); + newColorStops.push({ + color: prevColor, + stop: String(newStop), + id: idGeneratorFn(), + }); + setLocalColorStops(newColorStops); + }} + > + {i18n.translate('xpack.lens.dynamicColoring.customPalette.addColorStop', { + defaultMessage: 'Add color stop', + })} + + ); }; diff --git a/x-pack/plugins/lens/public/shared_components/coloring/constants.ts b/x-pack/plugins/lens/public/shared_components/coloring/constants.ts index 29b50d3aee22d..fafa2cd613930 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/constants.ts +++ b/x-pack/plugins/lens/public/shared_components/coloring/constants.ts @@ -16,6 +16,7 @@ export const DEFAULT_MAX_STOP = 100; export const DEFAULT_COLOR_STEPS = 5; export const DEFAULT_COLOR = '#6092C0'; // Same as EUI ColorStops default for new stops export const defaultPaletteParams: RequiredPaletteParamTypes = { + maxSteps: undefined, name: DEFAULT_PALETTE_NAME, reverse: false, rangeType: 'percent', diff --git a/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx b/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx index 5812b02759803..8115a9f647e94 100644 --- a/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx +++ b/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx @@ -9,17 +9,22 @@ import React from 'react'; import { EuiIcon, EuiText, IconType, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -export const EmptyPlaceholder = (props: { icon: IconType }) => ( +const noResultsMessage = ( + +); + +export const EmptyPlaceholder = ({ + icon, + message = noResultsMessage, +}: { + icon: IconType; + message?: JSX.Element; +}) => ( <> - + -

- -

+

{message}

); From b2e30c8e1a7a86a875f76bc00d24f663fa4fa3a5 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Fri, 19 Nov 2021 13:19:24 +0100 Subject: [PATCH 062/114] use type.displayName for search filters and search query (#119025) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../public/lib/parse_query.test.ts | 54 ++++++++++++++----- .../public/lib/parse_query.ts | 12 ++++- .../objects_table/saved_objects_table.tsx | 15 +++--- 3 files changed, 60 insertions(+), 21 deletions(-) diff --git a/src/plugins/saved_objects_management/public/lib/parse_query.test.ts b/src/plugins/saved_objects_management/public/lib/parse_query.test.ts index 3ab2d14ba491d..76335aa1febc7 100644 --- a/src/plugins/saved_objects_management/public/lib/parse_query.test.ts +++ b/src/plugins/saved_objects_management/public/lib/parse_query.test.ts @@ -7,30 +7,29 @@ */ import { Query } from '@elastic/eui'; +import type { SavedObjectManagementTypeInfo } from '../../common'; import { parseQuery } from './parse_query'; +const createType = (name: string, displayName?: string): SavedObjectManagementTypeInfo => ({ + name, + displayName: displayName ?? name, + hidden: false, + namespaceType: 'multiple', +}); + describe('getQueryText', () => { it('parses the query text', () => { const query = Query.parse('some search'); - expect(parseQuery(query)).toEqual({ + expect(parseQuery(query, [])).toEqual({ queryText: 'some search', }); }); - it('parses the types', () => { - const query = Query.parse('type:(index-pattern or dashboard) kibana'); - - expect(parseQuery(query)).toEqual({ - queryText: 'kibana', - visibleTypes: ['index-pattern', 'dashboard'], - }); - }); - it('parses the tags', () => { const query = Query.parse('tag:(tag-1 or tag-2) kibana'); - expect(parseQuery(query)).toEqual({ + expect(parseQuery(query, [])).toEqual({ queryText: 'kibana', selectedTags: ['tag-1', 'tag-2'], }); @@ -39,7 +38,7 @@ describe('getQueryText', () => { it('parses all the fields', () => { const query = Query.parse('tag:(tag-1 or tag-2) type:(index-pattern) kibana'); - expect(parseQuery(query)).toEqual({ + expect(parseQuery(query, [])).toEqual({ queryText: 'kibana', visibleTypes: ['index-pattern'], selectedTags: ['tag-1', 'tag-2'], @@ -49,8 +48,37 @@ describe('getQueryText', () => { it('does not fail on unknown fields', () => { const query = Query.parse('unknown:(hello or dolly) some search'); - expect(parseQuery(query)).toEqual({ + expect(parseQuery(query, [])).toEqual({ queryText: 'some search', }); }); + + it('parses the types when provided types are empty', () => { + const query = Query.parse('type:(index-pattern or dashboard) kibana'); + + expect(parseQuery(query, [])).toEqual({ + queryText: 'kibana', + visibleTypes: ['index-pattern', 'dashboard'], + }); + }); + + it('maps displayName to name when parsing the types', () => { + const query = Query.parse('type:(i-p or dash) kibana'); + const types = [createType('index-pattern', 'i-p'), createType('dashboard', 'dash')]; + + expect(parseQuery(query, types)).toEqual({ + queryText: 'kibana', + visibleTypes: ['index-pattern', 'dashboard'], + }); + }); + + it('maps displayName to name even when some types are missing', () => { + const query = Query.parse('type:(i-p or dashboard) kibana'); + const types = [createType('index-pattern', 'i-p')]; + + expect(parseQuery(query, types)).toEqual({ + queryText: 'kibana', + visibleTypes: ['index-pattern', 'dashboard'], + }); + }); }); diff --git a/src/plugins/saved_objects_management/public/lib/parse_query.ts b/src/plugins/saved_objects_management/public/lib/parse_query.ts index bef60a038353e..9676ad22a93be 100644 --- a/src/plugins/saved_objects_management/public/lib/parse_query.ts +++ b/src/plugins/saved_objects_management/public/lib/parse_query.ts @@ -7,6 +7,7 @@ */ import { Query } from '@elastic/eui'; +import type { SavedObjectManagementTypeInfo } from '../../common'; interface ParsedQuery { queryText?: string; @@ -14,7 +15,7 @@ interface ParsedQuery { selectedTags?: string[]; } -export function parseQuery(query: Query): ParsedQuery { +export function parseQuery(query: Query, types: SavedObjectManagementTypeInfo[]): ParsedQuery { let queryText: string | undefined; let visibleTypes: string[] | undefined; let selectedTags: string[] | undefined; @@ -27,7 +28,14 @@ export function parseQuery(query: Query): ParsedQuery { .join(' '); } if (query.ast.getFieldClauses('type')) { - visibleTypes = query.ast.getFieldClauses('type')[0].value as string[]; + const displayedTypes = query.ast.getFieldClauses('type')[0].value as string[]; + const displayNameToNameMap = types.reduce((map, type) => { + map.set(type.displayName, type.name); + return map; + }, new Map()); + visibleTypes = displayedTypes.map((type) => { + return displayNameToNameMap.get(type) ?? type; + }); } if (query.ast.getFieldClauses('tag')) { selectedTags = query.ast.getFieldClauses('tag')[0].value as string[]; diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx b/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx index a73a695c5b39d..d4b3ecac5b8db 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/saved_objects_table.tsx @@ -149,7 +149,10 @@ export class SavedObjectsTable extends Component { const { taggingApi } = this.props; - const { queryText, visibleTypes, selectedTags } = parseQuery(this.state.activeQuery); + const { queryText, visibleTypes, selectedTags } = parseQuery( + this.state.activeQuery, + this.props.allowedTypes + ); const allowedTypes = this.props.allowedTypes.map((type) => type.name); @@ -210,7 +213,7 @@ export class SavedObjectsTable extends Component { const { activeQuery: query, page, perPage } = this.state; const { notifications, http, allowedTypes, taggingApi } = this.props; - const { queryText, visibleTypes, selectedTags } = parseQuery(query); + const { queryText, visibleTypes, selectedTags } = parseQuery(query, allowedTypes); const searchTypes = allowedTypes .map((type) => type.name) @@ -404,8 +407,8 @@ export class SavedObjectsTable extends Component { const { exportAllSelectedOptions, isIncludeReferencesDeepChecked, activeQuery } = this.state; - const { notifications, http, taggingApi } = this.props; - const { queryText, selectedTags } = parseQuery(activeQuery); + const { notifications, http, taggingApi, allowedTypes } = this.props; + const { queryText, selectedTags } = parseQuery(activeQuery, allowedTypes); const exportTypes = Object.entries(exportAllSelectedOptions).reduce((accum, [id, selected]) => { if (selected) { accum.push(id); @@ -658,8 +661,8 @@ export class SavedObjectsTable extends Component ({ - value: type.name, - name: type.name, + value: type.displayName, + name: type.displayName, view: `${type.displayName} (${savedObjectCounts[type.name] || 0})`, })); From 9df09ae6a6c8e482cc4496075168321e9f70bef6 Mon Sep 17 00:00:00 2001 From: Felix Barnsteiner Date: Fri, 19 Nov 2021 13:44:10 +0100 Subject: [PATCH 063/114] Remove transaction breakdown metrics (#115385) --- .../elasticsearch_fieldnames.test.ts.snap | 6 --- .../apm/common/elasticsearch_fieldnames.ts | 1 - x-pack/plugins/apm/dev_docs/apm_queries.md | 22 -------- .../apm/ftr_e2e/cypress/tasks/es_archiver.ts | 19 ++++--- .../__snapshots__/queries.test.ts.snap | 52 ++----------------- .../routes/transactions/breakdown/index.ts | 16 +----- .../constants/elasticsearch_fieldnames.ts | 1 - 7 files changed, 16 insertions(+), 101 deletions(-) diff --git a/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap b/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap index 2d1433324858b..6da21bf2bf2c7 100644 --- a/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap +++ b/x-pack/plugins/apm/common/__snapshots__/elasticsearch_fieldnames.test.ts.snap @@ -209,8 +209,6 @@ exports[`Error TBT_FIELD 1`] = `undefined`; exports[`Error TRACE_ID 1`] = `"trace id"`; -exports[`Error TRANSACTION_BREAKDOWN_COUNT 1`] = `undefined`; - exports[`Error TRANSACTION_DOM_INTERACTIVE 1`] = `undefined`; exports[`Error TRANSACTION_DURATION 1`] = `undefined`; @@ -448,8 +446,6 @@ exports[`Span TBT_FIELD 1`] = `undefined`; exports[`Span TRACE_ID 1`] = `"trace id"`; -exports[`Span TRANSACTION_BREAKDOWN_COUNT 1`] = `undefined`; - exports[`Span TRANSACTION_DOM_INTERACTIVE 1`] = `undefined`; exports[`Span TRANSACTION_DURATION 1`] = `undefined`; @@ -701,8 +697,6 @@ exports[`Transaction TBT_FIELD 1`] = `undefined`; exports[`Transaction TRACE_ID 1`] = `"trace id"`; -exports[`Transaction TRANSACTION_BREAKDOWN_COUNT 1`] = `undefined`; - exports[`Transaction TRANSACTION_DOM_INTERACTIVE 1`] = `undefined`; exports[`Transaction TRANSACTION_DURATION 1`] = `1337`; diff --git a/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts b/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts index 4a4cad5454c4b..b42c23ee2df94 100644 --- a/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts +++ b/x-pack/plugins/apm/common/elasticsearch_fieldnames.ts @@ -51,7 +51,6 @@ export const TRANSACTION_RESULT = 'transaction.result'; export const TRANSACTION_NAME = 'transaction.name'; export const TRANSACTION_ID = 'transaction.id'; export const TRANSACTION_SAMPLED = 'transaction.sampled'; -export const TRANSACTION_BREAKDOWN_COUNT = 'transaction.breakdown.count'; export const TRANSACTION_PAGE_URL = 'transaction.page.url'; // for transaction metrics export const TRANSACTION_ROOT = 'transaction.root'; diff --git a/x-pack/plugins/apm/dev_docs/apm_queries.md b/x-pack/plugins/apm/dev_docs/apm_queries.md index 0fbcd4fc1c8a8..e6021fa31b9f7 100644 --- a/x-pack/plugins/apm/dev_docs/apm_queries.md +++ b/x-pack/plugins/apm/dev_docs/apm_queries.md @@ -315,28 +315,6 @@ GET apm-*-metric-*,metrics-apm*/_search?terminate_after=1000 The above example is overly simplified. In reality [we do a bit more](https://github.com/elastic/kibana/blob/fe9b5332e157fd456f81aecfd4ffa78d9e511a66/x-pack/plugins/apm/server/lib/metrics/by_agent/shared/memory/index.ts#L51-L71) to properly calculate memory usage inside containers. Please note that an [Exists Query](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html) is used in the filter context in the query to ensure that the memory fields exist. - - -# Transaction breakdown metrics - -A pre-aggregations of transaction documents where `transaction.breakdown.count` is the number of original transactions. - -Noteworthy fields: `transaction.name`, `transaction.type` - -#### Sample document - -```json -{ - "@timestamp": "2021-09-27T21:59:59.828Z", - "processor.event": "metric", - "metricset.name": "transaction_breakdown", - "transaction.breakdown.count": 12, - "transaction.name": "GET /api/products", - "transaction.type": "request" -} -} -``` - # Span breakdown metrics A pre-aggregations of span documents where `span.self_time.count` is the number of original spans. Measures the "self-time" for a span type, and optional subtype, within a transaction group. diff --git a/x-pack/plugins/apm/ftr_e2e/cypress/tasks/es_archiver.ts b/x-pack/plugins/apm/ftr_e2e/cypress/tasks/es_archiver.ts index a2ff99c5c377e..383a6fa68cf8a 100644 --- a/x-pack/plugins/apm/ftr_e2e/cypress/tasks/es_archiver.ts +++ b/x-pack/plugins/apm/ftr_e2e/cypress/tasks/es_archiver.ts @@ -5,26 +5,29 @@ * 2.0. */ -import Path from 'path'; +import path from 'path'; import { execSync } from 'child_process'; -const ES_ARCHIVE_DIR = './cypress/fixtures/es_archiver'; +const ES_ARCHIVE_DIR = path.resolve( + __dirname, + '../../cypress/fixtures/es_archiver' +); // Otherwise execSync would inject NODE_TLS_REJECT_UNAUTHORIZED=0 and node would abort if used over https const NODE_TLS_REJECT_UNAUTHORIZED = '1'; -export const esArchiverLoad = (folder: string) => { - const path = Path.join(ES_ARCHIVE_DIR, folder); +export const esArchiverLoad = (archiveName: string) => { + const archivePath = path.join(ES_ARCHIVE_DIR, archiveName); execSync( - `node ../../../../scripts/es_archiver load "${path}" --config ../../../test/functional/config.js`, + `node ../../../../scripts/es_archiver load "${archivePath}" --config ../../../test/functional/config.js`, { env: { ...process.env, NODE_TLS_REJECT_UNAUTHORIZED }, stdio: 'inherit' } ); }; -export const esArchiverUnload = (folder: string) => { - const path = Path.join(ES_ARCHIVE_DIR, folder); +export const esArchiverUnload = (archiveName: string) => { + const archivePath = path.join(ES_ARCHIVE_DIR, archiveName); execSync( - `node ../../../../scripts/es_archiver unload "${path}" --config ../../../test/functional/config.js`, + `node ../../../../scripts/es_archiver unload "${archivePath}" --config ../../../test/functional/config.js`, { env: { ...process.env, NODE_TLS_REJECT_UNAUTHORIZED }, stdio: 'inherit' } ); }; diff --git a/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap b/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap index 66cc8b53421d3..d9e84c1557fa0 100644 --- a/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap +++ b/x-pack/plugins/apm/server/routes/transactions/__snapshots__/queries.test.ts.snap @@ -45,11 +45,6 @@ Object { "field": "span.self_time.sum.us", }, }, - "total_transaction_breakdown_count": Object { - "sum": Object { - "field": "transaction.breakdown.count", - }, - }, "types": Object { "aggs": Object { "subtypes": Object { @@ -94,11 +89,6 @@ Object { "field": "span.self_time.sum.us", }, }, - "total_transaction_breakdown_count": Object { - "sum": Object { - "field": "transaction.breakdown.count", - }, - }, "types": Object { "aggs": Object { "subtypes": Object { @@ -151,20 +141,8 @@ Object { }, }, Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "exists": Object { - "field": "span.self_time.sum.us", - }, - }, - Object { - "exists": Object { - "field": "transaction.breakdown.count", - }, - }, - ], + "exists": Object { + "field": "span.self_time.sum.us", }, }, ], @@ -191,11 +169,6 @@ Object { "field": "span.self_time.sum.us", }, }, - "total_transaction_breakdown_count": Object { - "sum": Object { - "field": "transaction.breakdown.count", - }, - }, "types": Object { "aggs": Object { "subtypes": Object { @@ -240,11 +213,6 @@ Object { "field": "span.self_time.sum.us", }, }, - "total_transaction_breakdown_count": Object { - "sum": Object { - "field": "transaction.breakdown.count", - }, - }, "types": Object { "aggs": Object { "subtypes": Object { @@ -297,20 +265,8 @@ Object { }, }, Object { - "bool": Object { - "minimum_should_match": 1, - "should": Array [ - Object { - "exists": Object { - "field": "span.self_time.sum.us", - }, - }, - Object { - "exists": Object { - "field": "transaction.breakdown.count", - }, - }, - ], + "exists": Object { + "field": "span.self_time.sum.us", }, }, Object { diff --git a/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts index 2c3bca8443db0..9c229a005b355 100644 --- a/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts +++ b/x-pack/plugins/apm/server/routes/transactions/breakdown/index.ts @@ -15,7 +15,6 @@ import { SPAN_SELF_TIME_SUM, TRANSACTION_TYPE, TRANSACTION_NAME, - TRANSACTION_BREAKDOWN_COUNT, } from '../../../../common/elasticsearch_fieldnames'; import { Setup } from '../../../lib/helpers/setup_request'; import { rangeQuery, kqlQuery } from '../../../../../observability/server'; @@ -51,11 +50,6 @@ export async function getTransactionBreakdown({ field: SPAN_SELF_TIME_SUM, }, }, - total_transaction_breakdown_count: { - sum: { - field: TRANSACTION_BREAKDOWN_COUNT, - }, - }, types: { terms: { field: SPAN_TYPE, @@ -92,15 +86,7 @@ export async function getTransactionBreakdown({ ...rangeQuery(start, end), ...environmentQuery(environment), ...kqlQuery(kuery), - { - bool: { - should: [ - { exists: { field: SPAN_SELF_TIME_SUM } }, - { exists: { field: TRANSACTION_BREAKDOWN_COUNT } }, - ], - minimum_should_match: 1, - }, - }, + { exists: { field: SPAN_SELF_TIME_SUM } }, ]; if (transactionName) { diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts index 01dd2a49b9be0..1b20b82c1202c 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts @@ -49,7 +49,6 @@ export const TRANSACTION_RESULT = 'transaction.result'; export const TRANSACTION_NAME = 'transaction.name'; export const TRANSACTION_ID = 'transaction.id'; export const TRANSACTION_SAMPLED = 'transaction.sampled'; -export const TRANSACTION_BREAKDOWN_COUNT = 'transaction.breakdown.count'; export const TRANSACTION_PAGE_URL = 'transaction.page.url'; // for transaction metrics export const TRANSACTION_ROOT = 'transaction.root'; From 0e680aba70deb255f63452e7b1b3839f4ce835df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20St=C3=BCrmer?= Date: Fri, 19 Nov 2021 14:14:41 +0100 Subject: [PATCH 064/114] [Infra UI] Select the palette option in test using clicks (#119042) --- x-pack/test/functional/page_objects/infra_home_page.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/x-pack/test/functional/page_objects/infra_home_page.ts b/x-pack/test/functional/page_objects/infra_home_page.ts index 2f2c1407fc041..4ab0cf61b7a17 100644 --- a/x-pack/test/functional/page_objects/infra_home_page.ts +++ b/x-pack/test/functional/page_objects/infra_home_page.ts @@ -121,8 +121,12 @@ export function InfraHomePageProvider({ getService, getPageObjects }: FtrProvide }, async changePalette(paletteId: string) { - await testSubjects.find('legendControlsPalette'); - await testSubjects.selectValue('legendControlsPalette', paletteId); + const paletteSelector = await testSubjects.find('legendControlsPalette'); + await paletteSelector.click(); + const paletteSelectorEntry = await paletteSelector.findByCssSelector( + `option[value=${paletteId}]` + ); + await paletteSelectorEntry.click(); }, async applyLegendControls() { From f775bedcf365a06ca6e5c6c85c2bef8c98f6cd17 Mon Sep 17 00:00:00 2001 From: Rudolf Meijering Date: Fri, 19 Nov 2021 14:41:04 +0100 Subject: [PATCH 065/114] waitForIndexStatusYellow: Don't reject on 408 status from health api (#119136) --- .../actions/wait_for_index_status_yellow.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/core/server/saved_objects/migrations/actions/wait_for_index_status_yellow.ts b/src/core/server/saved_objects/migrations/actions/wait_for_index_status_yellow.ts index 9d4df0ced8c0b..676471d99b7d2 100644 --- a/src/core/server/saved_objects/migrations/actions/wait_for_index_status_yellow.ts +++ b/src/core/server/saved_objects/migrations/actions/wait_for_index_status_yellow.ts @@ -40,11 +40,16 @@ export const waitForIndexStatusYellow = }: WaitForIndexStatusYellowParams): TaskEither.TaskEither => () => { return client.cluster - .health({ - index, - wait_for_status: 'yellow', - timeout, - }) + .health( + { + index, + wait_for_status: 'yellow', + timeout, + }, + // Don't reject on status code 408 so that we can handle the timeout + // explicitly and provide more context in the error message + { ignore: [408] } + ) .then((res) => { if (res.body.timed_out === true) { return Either.left({ From dbf0e3d76b77c710007f4fdfe62b88bd6f15062e Mon Sep 17 00:00:00 2001 From: Ahmad Bamieh Date: Fri, 19 Nov 2021 15:53:55 +0200 Subject: [PATCH 066/114] [i18n] [main] Integrate 7.16.0 Translations (#119000) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../translations/translations/ja-JP.json | 16246 ++++++++------- .../translations/translations/zh-CN.json | 16361 +++++++++------- 2 files changed, 18010 insertions(+), 14597 deletions(-) diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 9be504204ea6a..8a2e43d0f54bf 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -76,7116 +76,6402 @@ } }, "messages": { - "xpack.lens.formula.absFunction.markdown": "\n絶対値を計算します。負の値は-1で乗算されます。正の値は同じままです。\n\n例:海水位までの平均距離を計算します `abs(average(altitude))`\n ", - "xpack.lens.formula.addFunction.markdown": "\n2つの数値を加算します。\n+記号も使用できます\n\n例:2つのフィールドの合計を計算します\n\n`sum(price) + sum(tax)`\n\n例:固定値でカウントをオフセットします\n\n`add(count(), 5)`\n ", - "xpack.lens.formula.cbrtFunction.markdown": "\n値の立方根。\n\n例:体積から側面の長さを計算します\n`cbrt(last_value(volume))`\n ", - "xpack.lens.formula.ceilFunction.markdown": "\n値の上限(切り上げ)。\n\n例:価格を次のドル単位まで切り上げます\n`ceil(sum(price))`\n ", - "xpack.lens.formula.clampFunction.markdown": "\n最小値から最大値までの値を制限します。\n\n例:確実に異常値を特定します\n```\nclamp(\n average(bytes),\n percentile(bytes, percentile=5),\n percentile(bytes, percentile=95)\n)\n```\n", - "xpack.lens.formula.cubeFunction.markdown": "\n数値の三乗を計算します。\n\n例:側面の長さから体積を計算します\n`cube(last_value(length))`\n ", - "xpack.lens.formula.divideFunction.markdown": "\n1番目の数値を2番目の数値で除算します。\n/記号も使用できます\n\n例:利益率を計算します\n`sum(profit) / sum(revenue)`\n\n例:`divide(sum(bytes), 2)`\n ", - "xpack.lens.formula.expFunction.markdown": "\n*e*をn乗します。\n\n例:自然指数関数を計算します\n\n`exp(last_value(duration))`\n ", - "xpack.lens.formula.fixFunction.markdown": "\n正の値の場合は、下限を取ります。負の値の場合は、上限を取ります。\n\n例:ゼロに向かって端数処理します\n`fix(sum(profit))`\n ", - "xpack.lens.formula.floorFunction.markdown": "\n最も近い整数値まで切り捨てます\n\n例:価格を切り捨てます\n`floor(sum(price))`\n ", - "xpack.lens.formula.logFunction.markdown": "\nオプションで底をとる対数。デフォルトでは自然対数の底*e*を使用します。\n\n例:値を格納するために必要なビット数を計算します\n```\nlog(sum(bytes))\nlog(sum(bytes), 2)\n```\n ", - "xpack.lens.formula.modFunction.markdown": "\n関数を数値で除算した後の余り\n\n例:値の最後の3ビットを計算します\n`mod(sum(price), 1000)`\n ", - "xpack.lens.formula.multiplyFunction.markdown": "\n2つの数値を乗算します。\n*記号も使用できます。\n\n例:現在の税率を入れた価格を計算します\n`sum(bytes) * last_value(tax_rate)`\n\n例:一定の税率を入れた価格を計算します\n`multiply(sum(price), 1.2)`\n ", - "xpack.lens.formula.powFunction.markdown": "\n値を特定の乗数で累乗します。2番目の引数は必須です\n\n例:側面の長さに基づいて体積を計算します\n`pow(last_value(length), 3)`\n ", - "xpack.lens.formula.roundFunction.markdown": "\n特定の小数位に四捨五入します。デフォルトは0です。\n\n例:セントに四捨五入します\n```\nround(sum(bytes))\nround(sum(bytes), 2)\n```\n ", - "xpack.lens.formula.sqrtFunction.markdown": "\n正の値のみの平方根\n\n例:面積に基づいて側面の長さを計算します\n`sqrt(last_value(area))`\n ", - "xpack.lens.formula.squareFunction.markdown": "\n値を2乗します\n\n例:側面の長さに基づいて面積を計算します\n`square(last_value(length))`\n ", - "xpack.lens.formula.subtractFunction.markdown": "\n2番目の数値から1番目の数値を減算します。\n-記号も使用できます。\n\n例:フィールドの範囲を計算します\n`subtract(max(bytes), min(bytes))`\n ", - "xpack.lens.formulaDocumentation.filterRatioDescription.markdown": "### フィルター比率:\n\n`kql=''`を使用すると、1つのセットのドキュメントをフィルターして、同じグループの他のドキュメントと比較します。\n例:経時的なエラー率の変化を表示する\n\n```\ncount(kql='response.status_code > 400') / count()\n```\n ", - "xpack.lens.formulaDocumentation.markdown": "## 仕組み\n\nLens式では、Elasticsearchの集計および数学関数を使用して演算を実行できます\n。主に次の3種類の関数があります。\n\n* `sum(bytes)`などのElasticsearchメトリック\n* 時系列関数は`cumulative_sum()`などのElasticsearchメトリックを入力として使用します\n* `round()`などの数学関数\n\nこれらのすべての関数を使用する式の例:\n\n```\nround(100 * moving_average(\n average(cpu.load.pct),\n window=10,\n kql='datacenter.name: east*'\n))\n```\n\nElasticsearchの関数はフィールド名を取り、フィールドは引用符で囲むこともできます。`sum(bytes)`は\n`sum('bytes')`と同じです。\n\n一部の関数は、`moving_average(count(), window=5)`のような名前付き引数を取ります。\n\nElasticsearchメトリックはKQLまたはLucene構文を使用してフィルターできます。フィルターを追加するには、名前付き\nパラメーター`kql='field: value'`または`lucene=''`を使用します。KQLまたはLuceneクエリを作成するときには、必ず引用符を使用してください\n。検索が引用符で囲まれている場合は、`kql='Women's''のようにバックスラッシュでエスケープします。\n\n数学関数は位置引数を取ることができます。たとえば、pow(count(), 3)はcount() * count() * count()と同じです。\n\n+、-、/、*記号を使用して、基本演算を実行できます。", - "xpack.lens.formulaDocumentation.percentOfTotalDescription.markdown": "### 合計の割合\n\nすべてのグループで式は`overall_sum`を計算できます。\nこれは各グループを合計の割合に変換できます。\n\n```\nsum(products.base_price) / overall_sum(sum(products.base_price))\n```\n ", - "xpack.lens.formulaDocumentation.weekOverWeekDescription.markdown": "### 週単位:\n\n`shift='1w'`を使用すると、前の週から各グループの値を取得します\n。時間シフトは*Top values*関数と使用しないでください。\n\n```\npercentile(system.network.in.bytes, percentile=99) /\npercentile(system.network.in.bytes, percentile=99, shift='1w')\n```\n ", - "xpack.lens.indexPattern.cardinality.documentation.markdown": "\n指定されたフィールドの一意の値の数を計算します。数値、文字列、日付、ブール値で機能します。\n\n例:異なる製品の数を計算します。\n`unique_count(product.name)`\n\n例:「clothes」グループから異なる製品の数を計算します。\n`unique_count(product.name, kql='product.group=clothes')`\n ", - "xpack.lens.indexPattern.count.documentation.markdown": "\nドキュメント数を計算します。\n\n例:ドキュメント数を計算します。\n`count()`\n\n例:特定のフィルターと一致するドキュメントの数を計算します。\n`count(kql='price > 500')`\n ", - "xpack.lens.indexPattern.counterRate.documentation.markdown": "\n増加し続けるカウンターのレートを計算します。この関数は、経時的に単調に増加する種類の測定を含むカウンターメトリックフィールドでのみ結果を生成します。\n値が小さくなる場合は、カウンターリセットであると解釈されます。最も正確な結果を得るには、フィールドの「max`」で「counter_rate」を計算してください。\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n式で使用されるときには、現在の間隔を使用します。\n\n例:Memcachedサーバーで経時的に受信されたバイトの比率を可視化します。\n`counter_rate(max(memcached.stats.read.bytes))`\n ", - "xpack.lens.indexPattern.cumulativeSum.documentation.markdown": "\n経時的なメトリックの累計値を計算し、系列のすべての前の値を各値に追加します。この関数を使用するには、日付ヒストグラムディメンションも構成する必要があります。\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n\n例:経時的に累積された受信バイト数を可視化します。\n`cumulative_sum(sum(bytes))`\n ", - "xpack.lens.indexPattern.differences.documentation.markdown": "\n経時的にメトリックの最後の値に対する差異を計算します。この関数を使用するには、日付ヒストグラムディメンションも構成する必要があります。\n差異ではデータが連続する必要があります。差異を使用するときにデータが空の場合は、データヒストグラム間隔を大きくしてみてください。\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n\n例:経時的に受信したバイト数の変化を可視化します。\n`differences(sum(bytes))`\n ", - "xpack.lens.indexPattern.lastValue.documentation.markdown": "\n最後のドキュメントからフィールドの値を返し、インデックスパターンのデフォルト時刻フィールドで並べ替えます。\n\nこの関数はエンティティの最新の状態を取得する際に役立ちます。\n\n例:サーバーAの現在のステータスを取得:\n`last_value(server.status, kql='server.name=\"A\"')`\n ", - "xpack.lens.indexPattern.metric.documentation.markdown": "\nフィールドの{metric}を返します。この関数は数値フィールドでのみ動作します。\n\n例:価格の{metric}を取得:\n`{metric}(price)`\n\n例:英国からの注文の価格の{metric}を取得:\n`{metric}(price, kql='location:UK')`\n ", - "xpack.lens.indexPattern.movingAverage.documentation.markdown": "\n経時的なメトリックの移動平均を計算します。最後のn番目の値を平均化し、現在の値を計算します。この関数を使用するには、日付ヒストグラムディメンションも構成する必要があります。\nデフォルトウィンドウ値は{defaultValue}です\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n\n指名パラメーター「window」を取ります。これは現在値の平均計算に含める最後の値の数を指定します。\n\n例:測定の線を平滑化:\n`moving_average(sum(bytes), window=5)`\n ", - "xpack.lens.indexPattern.overall_average.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの平均を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_average」はすべてのディメンションで平均値を計算します。\n\n例:平均からの収束:\n`sum(bytes) - overall_average(sum(bytes))`\n ", - "xpack.lens.indexPattern.overall_max.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの最大値を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_max」はすべてのディメンションで最大値を計算します。\n\n例:範囲の割合\n`(sum(bytes) - overall_min(sum(bytes))) / (overall_max(sum(bytes)) - overall_min(sum(bytes)))`\n ", - "xpack.lens.indexPattern.overall_min.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの最小値を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_min」はすべてのディメンションで最小値を計算します。\n\n例:範囲の割合\n`(sum(bytes) - overall_min(sum(bytes)) / (overall_max(sum(bytes)) - overall_min(sum(bytes)))`\n ", - "xpack.lens.indexPattern.overall_sum.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの合計を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_sum」はすべてのディメンションで合計値を計算します。\n\n例:合計の割合\n`sum(bytes) / overall_sum(sum(bytes))`\n ", - "xpack.lens.indexPattern.percentile.documentation.markdown": "\nフィールドの値の指定された百分位数を返します。これはドキュメントに出現する値のnパーセントが小さい値です。\n\n例:値の95 %より大きいバイト数を取得:\n`percentile(bytes, percentile=95)`\n ", - "xpack.lens.app.addToLibrary": "ライブラリに保存", - "xpack.lens.app.cancel": "キャンセル", - "xpack.lens.app.cancelButtonAriaLabel": "変更を保存せずに最後に使用していたアプリに戻る", - "xpack.lens.app.docLoadingError": "保存されたドキュメントの保存中にエラーが発生", - "xpack.lens.app.downloadButtonAriaLabel": "データを CSV ファイルとしてダウンロード", - "xpack.lens.app.downloadButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", - "xpack.lens.app.downloadCSV": "CSV をダウンロード", - "xpack.lens.app.save": "保存", - "xpack.lens.app.saveAndReturn": "保存して戻る", - "xpack.lens.app.saveAndReturnButtonAriaLabel": "現在のLensビジュアライゼーションを保存し、前回使用していたアプリに戻る", - "xpack.lens.app.saveAs": "名前を付けて保存", - "xpack.lens.app.saveButtonAriaLabel": "現在のLensビジュアライゼーションを保存", - "xpack.lens.app.saveModalType": "レンズビジュアライゼーション", - "xpack.lens.app.saveVisualization.successNotificationText": "保存された'{visTitle}'", - "xpack.lens.app.unsavedFilename": "未保存", - "xpack.lens.app.unsavedWorkMessage": "作業内容を保存せずに、Lens から移動しますか?", - "xpack.lens.app.unsavedWorkTitle": "保存されていない変更", - "xpack.lens.app.updatePanel": "{originatingAppName}でパネルを更新", - "xpack.lens.app404": "404 Not Found", - "xpack.lens.breadcrumbsByValue": "ビジュアライゼーションを編集", - "xpack.lens.breadcrumbsCreate": "作成", - "xpack.lens.breadcrumbsTitle": "Visualizeライブラリ", - "xpack.lens.chartSwitch.dataLossDescription": "このビジュアライゼーションタイプを選択すると、現在適用されている構成選択の一部が失われます。", - "xpack.lens.chartSwitch.dataLossLabel": "警告", - "xpack.lens.chartSwitch.experimentalLabel": "実験的", - "xpack.lens.chartSwitch.noResults": "{term}の結果が見つかりませんでした。", - "xpack.lens.chartTitle.unsaved": "保存されていないビジュアライゼーション", - "xpack.lens.configPanel.addLayerButton": "レイヤーを追加", - "xpack.lens.configPanel.color.tooltip.auto": "カスタム色を指定しない場合、Lensは自動的に色を選択します。", - "xpack.lens.configPanel.color.tooltip.custom": "[自動]モードに戻すには、カスタム色をオフにしてください。", - "xpack.lens.configPanel.color.tooltip.disabled": "レイヤーに「内訳条件」が含まれている場合は、個別の系列をカスタム色にできません。", - "xpack.lens.configPanel.selectVisualization": "ビジュアライゼーションを選択してください", - "xpack.lens.configPanel.visualizationType": "ビジュアライゼーションタイプ", - "xpack.lens.configure.configurePanelTitle": "{groupLabel}", - "xpack.lens.configure.editConfig": "{label}構成の編集", - "xpack.lens.configure.emptyConfig": "フィールドを追加するか、ドラッグアンドドロップします", - "xpack.lens.configure.invalidConfigTooltip": "無効な構成です。", - "xpack.lens.configure.invalidConfigTooltipClick": "詳細はクリックしてください。", - "xpack.lens.customBucketContainer.dragToReorder": "ドラッグして並べ替え", - "xpack.lens.dataPanelWrapper.switchDatasource": "データソースに切り替える", - "xpack.lens.datatable.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.datatable.breakdownColumns": "列", - "xpack.lens.datatable.breakdownColumns.description": "フィールドでメトリックを列に分割します。列数を少なくし、横スクロールを避けることをお勧めします。", - "xpack.lens.datatable.breakdownRows": "行", - "xpack.lens.datatable.breakdownRows.description": "フィールドで表の行を分割します。これは高カーディナリティ内訳にお勧めです。", - "xpack.lens.datatable.conjunctionSign": " & ", - "xpack.lens.datatable.expressionHelpLabel": "データベースレンダー", - "xpack.lens.datatable.groupLabel": "表形式の値と単一の値", - "xpack.lens.datatable.label": "表", - "xpack.lens.datatable.metrics": "メトリック", - "xpack.lens.datatable.suggestionLabel": "表として", - "xpack.lens.datatable.titleLabel": "タイトル", - "xpack.lens.datatable.visualizationName": "データベース", - "xpack.lens.datatable.visualizationOf": "テーブル {operations}", - "xpack.lens.datatypes.boolean": "ブール", - "xpack.lens.datatypes.date": "日付", - "xpack.lens.datatypes.geoPoint": "geo_point", - "xpack.lens.datatypes.geoShape": "geo_shape", - "xpack.lens.datatypes.histogram": "ヒストグラム", - "xpack.lens.datatypes.ipAddress": "IP", - "xpack.lens.datatypes.number": "数字", - "xpack.lens.datatypes.record": "レコード", - "xpack.lens.datatypes.string": "文字列", - "xpack.lens.deleteLayerAriaLabel": "レイヤー {index} を削除", - "xpack.lens.dimensionContainer.close": "閉じる", - "xpack.lens.dimensionContainer.closeConfiguration": "構成を閉じる", - "xpack.lens.discover.visualizeFieldLegend": "Visualize フィールド", - "xpack.lens.dragDrop.altOption": "Alt/Option", - "xpack.lens.dragDrop.announce.cancelled": "移動がキャンセルされました。{label}は初期位置に戻りました", - "xpack.lens.dragDrop.announce.cancelledItem": "移動がキャンセルされました。{label}は位置{position}の{groupLabel}グループに戻りました", - "xpack.lens.dragDrop.announce.dropped.duplicated": "位置{position}の{groupLabel}グループで{label}を複製しました", - "xpack.lens.dragDrop.announce.dropped.duplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}の{groupLabel}グループに追加しました", - "xpack.lens.dragDrop.announce.dropped.moveCompatible": "位置{position}の{groupLabel}グループに{label}を移動しました", - "xpack.lens.dragDrop.announce.dropped.moveIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループに移動しました", - "xpack.lens.dragDrop.announce.dropped.reordered": "{groupLabel}グループの{label}を位置{prevPosition}から位置{position}に並べ替えました", - "xpack.lens.dragDrop.announce.dropped.replaceDuplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}の{groupLabel}グループで{dropLabel}を置き換えました", - "xpack.lens.dragDrop.announce.dropped.replaceIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループで{dropLabel}を置き換えました", - "xpack.lens.dragDrop.announce.dropped.swapCompatible": "位置{dropPosition}で{label}を{dropGroupLabel}に移動し、位置{position}で{dropLabel}を {groupLabel}グループに移動しました", - "xpack.lens.dragDrop.announce.dropped.swapIncompatible": "位置{position}で{label}を{groupLabel}の{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループの{dropLabel}と入れ替えました", - "xpack.lens.dragDrop.announce.droppedDefault": "位置{position}の{dropGroupLabel}グループで{label}を追加しました", - "xpack.lens.dragDrop.announce.droppedNoPosition": "{label}を{dropLabel}に追加しました", - "xpack.lens.dragDrop.announce.duplicate.short": " AltキーまたはOptionを押し続けると複製します。", - "xpack.lens.dragDrop.announce.duplicated.replace": "位置{position}の{groupLabel}で{dropLabel}を{label}に置き換えました", - "xpack.lens.dragDrop.announce.duplicated.replaceDuplicateCompatible": "位置{position}の{groupLabel}で{dropLabel}を{label}のコピーに置き換えました", - "xpack.lens.dragDrop.announce.lifted": "{label}を上げました", - "xpack.lens.dragDrop.announce.selectedTarget.default": "位置{position}の{dropGroupLabel}グループに{label}を追加しました。スペースまたはEnterを押して追加します", - "xpack.lens.dragDrop.announce.selectedTarget.defaultNoPosition": "{label}を{dropLabel}に追加します。スペースまたはEnterを押して追加します", - "xpack.lens.dragDrop.announce.selectedTarget.duplicated": "位置{position}の{dropGroupLabel}グループに{label}を複製しました。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製します", - "xpack.lens.dragDrop.announce.selectedTarget.duplicatedInGroup": "位置{position}の{dropGroupLabel}グループに{label}を複製しました。スペースまたはEnterを押して複製します", - "xpack.lens.dragDrop.announce.selectedTarget.duplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}で{groupLabel}グループに移動します。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製します", - "xpack.lens.dragDrop.announce.selectedTarget.moveCompatibleMain": "位置{position}で{groupLabel}の{label}を{dropGroupLabel}グループの位置{dropPosition}にドラッグしています。スペースバーまたはEnterキーを押すと移動します。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible": "{label}を{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループに移動します。スペースまたはEnterを押して移動します", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatibleMain": "位置{position}で{groupLabel}の{label}を{dropGroupLabel}グループの位置{dropPosition}にドラッグしています。スペースバーまたはEnterキーを押して、{label}を{nextLabel}に変換して移動します。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.noSelected": "対象が選択されていません。矢印キーを使用して対象を選択してください", - "xpack.lens.dragDrop.announce.selectedTarget.reordered": "{groupLabel}グループの{label}を位置{prevPosition}から位置{position}に並べ替えます。スペースまたはEnterを押して並べ替えます", - "xpack.lens.dragDrop.announce.selectedTarget.reorderedBack": "{label}は初期位置{prevPosition}に戻りました", - "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateCompatible": "位置{position}で{label}を複製し、{groupLabel}グループで{dropLabel}を置き換えます。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製して置換します", - "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}で{groupLabel}グループの{dropLabel}を置き換えます。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製して置換します", - "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatibleMain": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}にドラッグしています。スペースバーまたはEnterキーを押して、{label}を{nextLabel}に変換して、{dropLabel}を置き換えます。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.replaceMain": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}にドラッグしています。スペースまたはEnterを押して、{dropLabel}を{label}で置き換えます。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.swapCompatible": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}と入れ替えます。Shiftキーを押しながらスペースバーまたはEnterキーを押すと、入れ替えます", - "xpack.lens.dragDrop.announce.selectedTarget.swapIncompatible": "位置{position}で{label}を{groupLabel}の{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループの{dropLabel}と入れ替えます。Shiftキーを押しながらスペースバーまたはEnterキーを押すと、入れ替えます", - "xpack.lens.dragDrop.announce.swap.short": " Shiftキーを押すと入れ替えます。", - "xpack.lens.dragDrop.duplicate": "複製", - "xpack.lens.dragDrop.keyboardInstructions": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、左右の矢印キーを使用して、ドロップ対象間を移動します。もう一度スペースまたはEnterを押すと終了します。", - "xpack.lens.dragDrop.keyboardInstructionsReorder": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、上下矢印キーを使用すると、グループの項目を並べ替えます。左右矢印キーを使用すると、グループの外側でドロップ対象を選択します。もう一度スペースまたはEnterを押すと終了します。", - "xpack.lens.dragDrop.shift": "Shift", - "xpack.lens.dragDrop.swap": "入れ替える", - "xpack.lens.dynamicColoring.customPalette.addColorStop": "色経由点を追加", - "xpack.lens.dynamicColoring.customPalette.deleteButtonAriaLabel": "削除", - "xpack.lens.dynamicColoring.customPalette.deleteButtonDisabled": "2つ以上の経由点が必要であるため、この色経由点を削除することはできません", - "xpack.lens.dynamicColoring.customPalette.deleteButtonLabel": "削除", - "xpack.lens.dynamicColoring.customPalette.sortReason": "新しい経由値{value}のため、色経由点が並べ替えられました", - "xpack.lens.dynamicColoring.customPalette.stopAriaLabel": "{index}を停止", - "xpack.lens.editorFrame.buildExpressionError": "グラフの準備中に予期しないエラーが発生しました", - "xpack.lens.editorFrame.colorIndicatorLabel": "このディメンションの色:{hex}", - "xpack.lens.editorFrame.dataFailure": "データの読み込み中にエラーが発生しました。", - "xpack.lens.editorFrame.emptyWorkspace": "開始するにはここにフィールドをドロップしてください", - "xpack.lens.editorFrame.emptyWorkspaceHeading": "Lensはビジュアライゼーションを作成するための新しいツールです", - "xpack.lens.editorFrame.emptyWorkspaceSimple": "ここにフィールドをドロップ", - "xpack.lens.editorFrame.expandRenderingErrorButton": "エラーの詳細を表示", - "xpack.lens.editorFrame.expressionFailure": "式でエラーが発生しました", - "xpack.lens.editorFrame.expressionFailureMessage": "リクエストエラー:{type}, {reason}", - "xpack.lens.editorFrame.expressionFailureMessageWithContext": "リクエストエラー:{type}、{context}の{reason}", - "xpack.lens.editorFrame.expressionMissingDatasource": "ビジュアライゼーションのデータソースが見つかりませんでした", - "xpack.lens.editorFrame.expressionMissingVisualizationType": "ビジュアライゼーションタイプが見つかりません。", - "xpack.lens.editorFrame.goToForums": "リクエストとフィードバック", - "xpack.lens.editorFrame.invisibleIndicatorLabel": "このディメンションは現在グラフに表示されません", - "xpack.lens.editorFrame.networkErrorMessage": "ネットワークエラーです。しばらくたってから再試行するか、管理者に連絡してください。", - "xpack.lens.editorFrame.noColorIndicatorLabel": "このディメンションには個別の色がありません", - "xpack.lens.editorFrame.paletteColorIndicatorLabel": "このディメンションはパレットを使用しています", - "xpack.lens.editorFrame.previewErrorLabel": "レンダリングのプレビューに失敗しました", - "xpack.lens.editorFrame.requiredDimensionWarningLabel": "必要な次元", - "xpack.lens.editorFrame.suggestionPanelTitle": "提案", - "xpack.lens.editorFrame.workspaceLabel": "ワークスペース", - "xpack.lens.embeddable.failure": "ビジュアライゼーションを表示できませんでした", - "xpack.lens.embeddable.fixErrors": "Lensエディターで編集し、エラーを修正", - "xpack.lens.embeddable.moreErrors": "Lensエディターで編集すると、エラーの詳細が表示されます", - "xpack.lens.embeddableDisplayName": "レンズ", - "xpack.lens.fieldFormats.longSuffix.d": "日単位", - "xpack.lens.fieldFormats.longSuffix.h": "時間単位", - "xpack.lens.fieldFormats.longSuffix.m": "分単位", - "xpack.lens.fieldFormats.longSuffix.s": "秒単位", - "xpack.lens.fieldFormats.suffix.d": "/d", - "xpack.lens.fieldFormats.suffix.h": "/h", - "xpack.lens.fieldFormats.suffix.m": "/m", - "xpack.lens.fieldFormats.suffix.s": "/s", - "xpack.lens.fieldFormats.suffix.title": "接尾辞", - "xpack.lens.filterBy.removeLabel": "フィルターを削除", - "xpack.lens.fittingFunctionsDescription.carry": "ギャップを最後の値で埋める", - "xpack.lens.fittingFunctionsDescription.linear": "ギャップを線で埋める", - "xpack.lens.fittingFunctionsDescription.lookahead": "ギャップを次の値で埋める", - "xpack.lens.fittingFunctionsDescription.none": "ギャップを埋めない", - "xpack.lens.fittingFunctionsDescription.zero": "ギャップをゼロで埋める", - "xpack.lens.fittingFunctionsTitle.carry": "最後", - "xpack.lens.fittingFunctionsTitle.linear": "線形", - "xpack.lens.fittingFunctionsTitle.lookahead": "次へ", - "xpack.lens.fittingFunctionsTitle.none": "非表示", - "xpack.lens.fittingFunctionsTitle.zero": "ゼロ", - "xpack.lens.formula.base": "基数", - "xpack.lens.formula.decimals": "小数点以下", - "xpack.lens.formula.disableWordWrapLabel": "単語の折り返しを無効にする", - "xpack.lens.formula.editorHelpInlineHideLabel": "関数リファレンスを非表示", - "xpack.lens.formula.editorHelpInlineHideToolTip": "関数リファレンスを非表示", - "xpack.lens.formula.editorHelpInlineShowToolTip": "関数リファレンスを表示", - "xpack.lens.formula.editorHelpOverlayToolTip": "機能リファレンス", - "xpack.lens.formula.fullScreenEnterLabel": "拡張", - "xpack.lens.formula.fullScreenExitLabel": "縮小", - "xpack.lens.formula.kqlExtraArguments": "[kql]?:文字列、[lucene]?:文字列", - "xpack.lens.formula.left": "左", - "xpack.lens.formula.max": "最高", - "xpack.lens.formula.min": "分", - "xpack.lens.formula.number": "数字", - "xpack.lens.formula.optionalArgument": "任意。デフォルト値は{defaultValue}です", - "xpack.lens.formula.requiredArgument": "必須", - "xpack.lens.formula.right": "右", - "xpack.lens.formula.shiftExtraArguments": "[shift]?:文字列", - "xpack.lens.formula.string": "文字列", - "xpack.lens.formula.value": "値", - "xpack.lens.formulaCommonFormulaDocumentation": "最も一般的な式は2つの値を分割して割合を生成します。正確に表示するには、[値形式]を[割合]に設定します。", - "xpack.lens.formulaDocumentation.columnCalculationSection": "列計算", - "xpack.lens.formulaDocumentation.columnCalculationSectionDescription": "各行でこれらの関数が実行されますが、コンテキストとして列全体が提供されます。これはウィンドウ関数とも呼ばれます。", - "xpack.lens.formulaDocumentation.elasticsearchSection": "Elasticsearch", - "xpack.lens.formulaDocumentation.elasticsearchSectionDescription": "これらの関数は結果テーブルの各行の未加工ドキュメントで実行され、内訳ディメンションと一致するすべてのドキュメントを単一の値に集約します。", - "xpack.lens.formulaDocumentation.filterRatio": "フィルター比率", - "xpack.lens.formulaDocumentation.header": "式リファレンス", - "xpack.lens.formulaDocumentation.mathSection": "数学処理", - "xpack.lens.formulaDocumentation.mathSectionDescription": "これらの関数は、他の関数で計算された同じ行の単一の値を使用して、結果テーブルの各行で実行されます。", - "xpack.lens.formulaDocumentation.percentOfTotal": "合計の割合", - "xpack.lens.formulaDocumentation.weekOverWeek": "週単位", - "xpack.lens.formulaDocumentationHeading": "仕組み", - "xpack.lens.formulaEnableWordWrapLabel": "単語の折り返しを有効にする", - "xpack.lens.formulaExampleMarkdown": "例", - "xpack.lens.formulaFrequentlyUsedHeading": "一般的な式", - "xpack.lens.formulaPlaceholderText": "関数を演算と組み合わせて式を入力します。例:", - "xpack.lens.formulaSearchPlaceholder": "検索関数", - "xpack.lens.functions.counterRate.args.byHelpText": "カウンターレート計算を分割する列", - "xpack.lens.functions.counterRate.args.inputColumnIdHelpText": "カウンターレートを計算する列", - "xpack.lens.functions.counterRate.args.outputColumnIdHelpText": "結果のカウンターレートを格納する列", - "xpack.lens.functions.counterRate.args.outputColumnNameHelpText": "結果のカウンターレートを格納する列の名前", - "xpack.lens.functions.counterRate.help": "データテーブルの列のカウンターレートを計算します", - "xpack.lens.functions.lastValue.missingSortField": "このインデックスパターンには日付フィールドが含まれていません", - "xpack.lens.functions.mergeTables.help": "任意の数の Kibana 表を 1 つの表に結合し、インスペクターアダプター経由で公開するヘルパー", - "xpack.lens.functions.renameColumns.help": "データベースの列の名前の変更をアシストします", - "xpack.lens.functions.renameColumns.idMap.help": "キーが古い列 ID で値が対応する新しい列 ID となるように JSON エンコーディングされたオブジェクトです。他の列 ID はすべてのそのままです。", - "xpack.lens.functions.timeScale.dateColumnMissingMessage": "指定した dateColumnId {columnId} は存在しません。", - "xpack.lens.functions.timeScale.timeInfoMissingMessage": "日付ヒストグラム情報を取得できませんでした", - "xpack.lens.geoFieldWorkspace.dropMessage": "Mapsで開くにはここにフィールドをドロップします", - "xpack.lens.geoFieldWorkspace.dropZoneLabel": "Mapsで開くにはゾーンをドロップします", - "xpack.lens.heatmap.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.heatmap.cellValueLabel": "セル値", - "xpack.lens.heatmap.expressionHelpLabel": "ヒートマップレンダラー", - "xpack.lens.heatmap.groupLabel": "ヒートマップ", - "xpack.lens.heatmap.heatmapLabel": "ヒートマップ", - "xpack.lens.heatmap.horizontalAxisLabel": "横軸", - "xpack.lens.heatmap.titleLabel": "タイトル", - "xpack.lens.heatmap.verticalAxisLabel": "縦軸", - "xpack.lens.heatmap.visualizationName": "ヒートマップ", - "xpack.lens.heatmapChart.config.cellHeight.help": "グリッドセルの高さを指定します", - "xpack.lens.heatmapChart.config.cellWidth.help": "グリッドセルの幅を指定します", - "xpack.lens.heatmapChart.config.isCellLabelVisible.help": "セルラベルの表示・非表示を指定します。", - "xpack.lens.heatmapChart.config.isXAxisLabelVisible.help": "x軸のラベルを表示するかどうかを指定します。", - "xpack.lens.heatmapChart.config.isYAxisLabelVisible.help": "Y軸のラベルを表示するかどうかを指定します。", - "xpack.lens.heatmapChart.config.strokeColor.help": "グリッドストローク色を指定します", - "xpack.lens.heatmapChart.config.strokeWidth.help": "グリッドストローク幅を指定します", - "xpack.lens.heatmapChart.config.yAxisLabelColor.help": "Y軸ラベルの色を指定します。", - "xpack.lens.heatmapChart.config.yAxisLabelWidth.help": "Y軸ラベルの幅を指定します。", - "xpack.lens.heatmapChart.gridConfig.help": "ヒートマップレイアウトを構成します。", - "xpack.lens.heatmapChart.legend.help": "チャートの凡例を構成します。", - "xpack.lens.heatmapChart.legend.isVisible.help": "判例の表示・非表示を指定します。", - "xpack.lens.heatmapChart.legend.maxLines.help": "凡例項目ごとの行数を指定します。", - "xpack.lens.heatmapChart.legend.position.help": "凡例の配置を指定します。", - "xpack.lens.heatmapChart.legend.shouldTruncate.help": "凡例項目を切り捨てるかどうかを指定します。", - "xpack.lens.heatmapChart.legendVisibility.hide": "非表示", - "xpack.lens.heatmapChart.legendVisibility.show": "表示", - "xpack.lens.heatmapVisualization.arrayValuesWarningMessage": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", - "xpack.lens.heatmapVisualization.heatmapGroupLabel": "ヒートマップ", - "xpack.lens.heatmapVisualization.heatmapLabel": "ヒートマップ", - "xpack.lens.heatmapVisualization.missingXAccessorLongMessage": "横軸の構成がありません。", - "xpack.lens.heatmapVisualization.missingXAccessorShortMessage": "横軸がありません。", - "xpack.lens.indexPattern.advancedSettings": "高度なオプションを追加", - "xpack.lens.indexPattern.allFieldsLabel": "すべてのフィールド", - "xpack.lens.indexPattern.allFieldsLabelHelp": "使用可能なフィールドには、フィルターと一致する最初の 500 件のドキュメントのデータがあります。すべてのフィールドを表示するには、空のフィールドを展開します。一部のフィールドタイプは、完全なテキストおよびグラフィックフィールドを含む Lens では、ビジュアライゼーションできません。", - "xpack.lens.indexPattern.availableFieldsLabel": "利用可能なフィールド", - "xpack.lens.indexPattern.avg": "平均", - "xpack.lens.indexPattern.avg.description": "集約されたドキュメントから抽出された数値の平均値を計算する単一値メトリック集約", - "xpack.lens.indexPattern.avgOf": "{name} の平均", - "xpack.lens.indexPattern.bytesFormatLabel": "バイト(1024)", - "xpack.lens.indexPattern.calculations.dateHistogramErrorMessage": "{name} が動作するには、日付ヒストグラムが必要です。日付ヒストグラムを追加するか、別の関数を選択します。", - "xpack.lens.indexPattern.calculations.layerDataType": "このタイプのレイヤーでは{name}が無効です。", - "xpack.lens.indexPattern.cardinality": "ユニークカウント", - "xpack.lens.indexPattern.cardinality.signature": "フィールド:文字列", - "xpack.lens.indexPattern.cardinalityOf": "{name} のユニークカウント", - "xpack.lens.indexPattern.chooseField": "フィールドを選択", - "xpack.lens.indexPattern.chooseFieldLabel": "この関数を使用するには、フィールドを選択してください。", - "xpack.lens.indexPattern.chooseSubFunction": "サブ関数を選択", - "xpack.lens.indexPattern.columnFormatLabel": "値の形式", - "xpack.lens.indexPattern.columnLabel": "表示名", - "xpack.lens.indexPattern.count": "カウント", - "xpack.lens.indexPattern.counterRate": "カウンターレート", - "xpack.lens.indexPattern.counterRate.signature": "メトリック:数値", - "xpack.lens.indexPattern.CounterRateOf": "{name} のカウンターレート", - "xpack.lens.indexPattern.countOf": "レコード数", - "xpack.lens.indexPattern.cumulative_sum.signature": "メトリック:数値", - "xpack.lens.indexPattern.cumulativeSum": "累積和", - "xpack.lens.indexPattern.cumulativeSumOf": "{name}の累積和", - "xpack.lens.indexPattern.dateHistogram": "日付ヒストグラム", - "xpack.lens.indexPattern.dateHistogram.autoAdvancedExplanation": "間隔は次のロジックに従います。", - "xpack.lens.indexPattern.dateHistogram.autoBasicExplanation": "自動日付ヒストグラムは、間隔でデータフィールドをバケットに分割します。", - "xpack.lens.indexPattern.dateHistogram.autoBoundHeader": "対象間隔の測定", - "xpack.lens.indexPattern.dateHistogram.autoHelpText": "仕組み", - "xpack.lens.indexPattern.dateHistogram.autoInterval": "時間範囲のカスタマイズ", - "xpack.lens.indexPattern.dateHistogram.autoIntervalHeader": "使用される間隔", - "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "間隔を選択するには、Lensは指定された時間範囲を{targetBarSetting}設定で除算します。Lensはデータに最適な間隔を計算します。たとえば、30分、1時間、12です。棒の最大数は{maxBarSetting}値で設定します。", - "xpack.lens.indexPattern.dateHistogram.days": "日", - "xpack.lens.indexPattern.dateHistogram.hours": "時間", - "xpack.lens.indexPattern.dateHistogram.milliseconds": "ミリ秒", - "xpack.lens.indexPattern.dateHistogram.minimumInterval": "最低間隔", - "xpack.lens.indexPattern.dateHistogram.minutes": "分", - "xpack.lens.indexPattern.dateHistogram.month": "月", - "xpack.lens.indexPattern.dateHistogram.moreThanYear": "1年を超える", - "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "集約の制限により間隔は {intervalValue} に固定されています。", - "xpack.lens.indexPattern.dateHistogram.seconds": "秒", - "xpack.lens.indexPattern.dateHistogram.titleHelp": "自動日付ヒストグラムの仕組み", - "xpack.lens.indexPattern.dateHistogram.upTo": "最大", - "xpack.lens.indexPattern.dateHistogram.week": "週", - "xpack.lens.indexPattern.dateHistogram.year": "年", - "xpack.lens.indexPattern.decimalPlacesLabel": "小数点以下", - "xpack.lens.indexPattern.defaultFormatLabel": "デフォルト", - "xpack.lens.indexPattern.derivative": "差異", - "xpack.lens.indexPattern.derivativeOf": "{name} の差異", - "xpack.lens.indexPattern.differences.signature": "メトリック:数値", - "xpack.lens.indexPattern.emptyDimensionButton": "空のディメンション", - "xpack.lens.indexPattern.emptyFieldsLabel": "空のフィールド", - "xpack.lens.indexPattern.emptyFieldsLabelHelp": "空のフィールドには、フィルターに基づく最初の 500 件のドキュメントの値が含まれていませんでした。", - "xpack.lens.indexPattern.existenceErrorAriaLabel": "存在の取り込みに失敗しました", - "xpack.lens.indexPattern.existenceErrorLabel": "フィールド情報を読み込めません", - "xpack.lens.indexPattern.existenceTimeoutAriaLabel": "存在の取り込みがタイムアウトしました", - "xpack.lens.indexPattern.existenceTimeoutLabel": "フィールド情報に時間がかかりすぎました", - "xpack.lens.indexPattern.fieldDistributionLabel": "分布", - "xpack.lens.indexPattern.fieldItem.visualizeGeoFieldLinkText": "Mapsで可視化", - "xpack.lens.indexPattern.fieldItemTooltip": "可視化するには、ドラッグアンドドロップします。", - "xpack.lens.indexPattern.fieldNoOperation": "フィールド{field}は演算なしで使用できません", - "xpack.lens.indexPattern.fieldNotFound": "フィールド {invalidField} が見つかりませんでした", - "xpack.lens.indexPattern.fieldPanelEmptyStringValue": "空の文字列", - "xpack.lens.indexPattern.fieldPlaceholder": "フィールド", - "xpack.lens.indexPattern.fieldStatsButtonAriaLabel": "プレビュー{fieldName}:{fieldType}", - "xpack.lens.indexPattern.fieldStatsButtonEmptyLabel": "このフィールドにはデータがありませんが、ドラッグアンドドロップで可視化できます。", - "xpack.lens.indexPattern.fieldStatsButtonLabel": "フィールドプレビューを表示するには、クリックします。可視化するには、ドラッグアンドドロップします。", - "xpack.lens.indexPattern.fieldStatsCountLabel": "カウント", - "xpack.lens.indexPattern.fieldStatsDisplayToggle": "次のどちらかを切り替えます:", - "xpack.lens.indexPattern.fieldStatsLimited": "範囲タイプフィールドの概要情報がありません。", - "xpack.lens.indexPattern.fieldStatsNoData": "このフィールドは空です。500件のサンプリングされたドキュメントに存在しません。このフィールドを構成に追加すると、空白のグラフが作成される場合があります。", - "xpack.lens.indexPattern.fieldTimeDistributionLabel": "時間分布", - "xpack.lens.indexPattern.fieldTopValuesLabel": "トップの値", - "xpack.lens.indexPattern.fieldWrongType": "フィールド{invalidField}の型が正しくありません", - "xpack.lens.indexPattern.filterBy.clickToEdit": "クリックして編集", - "xpack.lens.indexPattern.filterBy.emptyFilterQuery": "(空)", - "xpack.lens.indexPattern.filterBy.label": "フィルタリング条件", - "xpack.lens.indexPattern.filters": "フィルター", - "xpack.lens.indexPattern.filters.addaFilter": "フィルターを追加", - "xpack.lens.indexPattern.filters.clickToEdit": "クリックして編集", - "xpack.lens.indexPattern.filters.isInvalid": "このクエリは無効です", - "xpack.lens.indexPattern.filters.label.placeholder": "すべてのレコード", - "xpack.lens.indexPattern.filters.queryPlaceholderKql": "{example}", - "xpack.lens.indexPattern.filters.queryPlaceholderLucene": "{example}", - "xpack.lens.indexPattern.filters.removeFilter": "フィルターを削除", - "xpack.lens.indexPattern.formulaExpressionNotHandled": "式{operation}の演算には次のパラメーターがありません:{params}", - "xpack.lens.indexPattern.formulaExpressionParseError": "式{expression}を解析できません", - "xpack.lens.indexPattern.formulaExpressionWrongType": "式の演算{operation}のパラメーターの型が正しくありません:{params}", - "xpack.lens.indexPattern.formulaFieldNotRequired": "演算{operation}ではどのフィールドも引数として使用できません", - "xpack.lens.indexPattern.formulaFieldValue": "フィールド", - "xpack.lens.indexPattern.formulaLabel": "式", - "xpack.lens.indexPattern.formulaMathMissingArgument": "式{operation}の演算には{count}個の引数がありません:{params}", - "xpack.lens.indexPattern.formulaMetricValue": "メトリック", - "xpack.lens.indexPattern.formulaNoFieldForOperation": "フィールドなし", - "xpack.lens.indexPattern.formulaNoOperation": "演算なし", - "xpack.lens.indexPattern.formulaOperationDoubleQueryError": "kql=またはlucene=のいずれかのみを使用します。両方は使用できません", - "xpack.lens.indexPattern.formulaOperationDuplicateParams": "演算{operation}のパラメーターが複数回宣言されました:{params}", - "xpack.lens.indexPattern.formulaOperationQueryError": "{rawQuery}では{language}=''に単一引用符が必要です", - "xpack.lens.indexPattern.formulaOperationTooManyFirstArguments": "式の演算{operation}には{supported, plural, one {1つの} other {サポートされている}} {type}が必要です。検出:{text}", - "xpack.lens.indexPattern.formulaOperationValue": "演算", - "xpack.lens.indexPattern.formulaOperationwrongArgument": "式の演算{operation}は{type}パラメーターをサポートしていません。検出:{text}", - "xpack.lens.indexPattern.formulaOperationWrongFirstArgument": "{operation}の最初の引数は{type}名でなければなりません。{argument}が見つかりました", - "xpack.lens.indexPattern.formulaParameterNotRequired": "演算{operation}ではどのパラメーターも使用できません", - "xpack.lens.indexPattern.formulaPartLabel": "{label}の一部", - "xpack.lens.indexPattern.formulaWarning": "現在適用されている式", - "xpack.lens.indexPattern.formulaWarningText": "式を上書きするには、クイック関数を選択します", - "xpack.lens.indexPattern.formulaWithTooManyArguments": "演算{operation}の引数が多すぎます", - "xpack.lens.indexPattern.functionsLabel": "関数を選択", - "xpack.lens.indexPattern.groupByDropdown": "グループ分けの条件", - "xpack.lens.indexPattern.incompleteOperation": "(未完了)", - "xpack.lens.indexPattern.intervals": "間隔", - "xpack.lens.indexPattern.invalidInterval": "無効な間隔値", - "xpack.lens.indexPattern.invalidOperationLabel": "選択した関数はこのフィールドで動作しません。", - "xpack.lens.indexPattern.invalidReferenceConfiguration": "ディメンション\"{dimensionLabel}\"の構成が正しくありません", - "xpack.lens.indexPattern.invalidTimeShift": "無効な時間シフトです。正の整数の後に単位s、m、h、d、w、M、yのいずれかを入力します。例:3時間は3hです", - "xpack.lens.indexPattern.lastValue": "最終値", - "xpack.lens.indexPattern.lastValue.invalidTypeSortField": "フィールド {invalidField} は日付フィールドではないため、並べ替えで使用できません", - "xpack.lens.indexPattern.lastValue.signature": "フィールド:文字列", - "xpack.lens.indexPattern.lastValue.sortField": "日付フィールドで並べ替え", - "xpack.lens.indexPattern.lastValue.sortFieldNotFound": "フィールド {invalidField} が見つかりませんでした", - "xpack.lens.indexPattern.lastValue.sortFieldPlaceholder": "並べ替えフィールド", - "xpack.lens.indexPattern.lastValueOf": "{name} の最後の値", - "xpack.lens.indexPattern.layerErrorWrapper": "レイヤー{position}エラー:{wrappedMessage}", - "xpack.lens.indexPattern.max": "最高", - "xpack.lens.indexPattern.max.description": "集約されたドキュメントから抽出された数値の最大値を返す単一値メトリック集約。", - "xpack.lens.indexPattern.maxOf": "{name} の最高値", - "xpack.lens.indexPattern.median": "中央", - "xpack.lens.indexPattern.median.description": "集約されたドキュメントから抽出された中央値を計算する単一値メトリック集約。", - "xpack.lens.indexPattern.medianOf": "{name} の中央値", - "xpack.lens.indexPattern.metaFieldsLabel": "メタフィールド", - "xpack.lens.indexPattern.metric.signature": "フィールド:文字列", - "xpack.lens.indexPattern.min": "最低", - "xpack.lens.indexPattern.min.description": "集約されたドキュメントから抽出された数値の最小値を返す単一値メトリック集約。", - "xpack.lens.indexPattern.minOf": "{name} の最低値", - "xpack.lens.indexPattern.missingFieldLabel": "見つからないフィールド", - "xpack.lens.indexPattern.missingReferenceError": "\"{dimensionLabel}\"は完全に構成されていません", - "xpack.lens.indexPattern.moveToWorkspace": "{field}をワークスペースに追加", - "xpack.lens.indexPattern.moveToWorkspaceDisabled": "このフィールドは自動的にワークスペースに追加できません。構成パネルで直接使用することはできます。", - "xpack.lens.indexPattern.moving_average.signature": "メトリック:数値、[window]:数値", - "xpack.lens.indexPattern.movingAverage": "移動平均", - "xpack.lens.indexPattern.movingAverage.basicExplanation": "移動平均はデータ全体でウィンドウをスライドし、平均値を表示します。移動平均は日付ヒストグラムでのみサポートされています。", - "xpack.lens.indexPattern.movingAverage.helpText": "仕組み", - "xpack.lens.indexPattern.movingAverage.limitations": "最初の移動平均値は2番目の項目から開始します。", - "xpack.lens.indexPattern.movingAverage.longerExplanation": "移動平均を計算するには、Lensはウィンドウの平均値を使用し、ギャップのスキップポリシーを適用します。 見つからない値がある場合、バケットがスキップされます。次の値に対して計算が実行されます。", - "xpack.lens.indexPattern.movingAverage.tableExplanation": "たとえば、データ[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]がある場合、ウィンドウサイズ5でシンプルな移動平均を計算できます。", - "xpack.lens.indexPattern.movingAverage.titleHelp": "移動平均の仕組み", - "xpack.lens.indexPattern.movingAverage.window": "ウィンドウサイズ", - "xpack.lens.indexPattern.movingAverage.windowInitialPartial": "要求されたアイテム数に達するまで、ウィンドウは部分的です。 例:ウィンドウサイズ5。", - "xpack.lens.indexPattern.movingAverage.windowLimitations": "ウィンドウには現在の値が含まれません。", - "xpack.lens.indexPattern.movingAverageOf": "{name} の移動平均", - "xpack.lens.indexPattern.multipleDateHistogramsError": "\"{dimensionLabel}\"は唯一の日付ヒストグラムではありません。時間シフトを使用するときには、1つの日付ヒストグラムのみを使用していることを確認してください。", - "xpack.lens.indexPattern.numberFormatLabel": "数字", - "xpack.lens.indexPattern.ofDocumentsLabel": "ドキュメント", - "xpack.lens.indexPattern.otherDocsLabel": "その他", - "xpack.lens.indexPattern.overall_metric": "メトリック:数値", - "xpack.lens.indexPattern.overallAverageOf": "{name}の全体平均値", - "xpack.lens.indexPattern.overallMax": "全体最高", - "xpack.lens.indexPattern.overallMaxOf": "{name}の全体最大値", - "xpack.lens.indexPattern.overallMin": "全体最低", - "xpack.lens.indexPattern.overallMinOf": "{name}の全体最小値", - "xpack.lens.indexPattern.overallSum": "全体合計", - "xpack.lens.indexPattern.overallSumOf": "{name}の全体平方和", - "xpack.lens.indexPattern.percentageOfLabel": "{percentage}% の", - "xpack.lens.indexPattern.percentFormatLabel": "割合(%)", - "xpack.lens.indexPattern.percentile": "パーセンタイル", - "xpack.lens.indexPattern.percentile.errorMessage": "パーセンタイルは1~99の範囲の整数でなければなりません。", - "xpack.lens.indexPattern.percentile.percentileValue": "パーセンタイル", - "xpack.lens.indexPattern.percentile.signature": "フィールド:文字列、[percentile]:数値", - "xpack.lens.indexPattern.percentileOf": "{name}の{percentile, selectordinal, other {#}}パーセンタイル", - "xpack.lens.indexPattern.pinnedTopValuesLabel": "{field}のフィルター", - "xpack.lens.indexPattern.quickFunctionsLabel": "クイック機能", - "xpack.lens.indexPattern.range.isInvalid": "この範囲は無効です", - "xpack.lens.indexPattern.ranges.addRange": "範囲を追加", - "xpack.lens.indexPattern.ranges.customIntervalsToggle": "カスタム範囲を作成", - "xpack.lens.indexPattern.ranges.customRangeLabelPlaceholder": "カスタムラベル", - "xpack.lens.indexPattern.ranges.customRanges": "範囲", - "xpack.lens.indexPattern.ranges.customRangesRemoval": "カスタム範囲を削除", - "xpack.lens.indexPattern.ranges.decreaseButtonLabel": "粒度を下げる", - "xpack.lens.indexPattern.ranges.deleteRange": "範囲を削除", - "xpack.lens.indexPattern.ranges.granularity": "間隔粒度", - "xpack.lens.indexPattern.ranges.granularityHelpText": "仕組み", - "xpack.lens.indexPattern.ranges.granularityPopoverAdvancedExplanation": "間隔は10、5、または2ずつ増分します。たとえば、間隔を100または0.2にすることができます。", - "xpack.lens.indexPattern.ranges.granularityPopoverBasicExplanation": "間隔の粒度は、フィールドの最小値と最大値に基づいて、フィールドを均等な幅の間隔に分割します。", - "xpack.lens.indexPattern.ranges.granularityPopoverExplanation": "間隔のサイズは「nice」値です。スライダーの粒度を変更すると、「nice」間隔が同じときには、間隔が同じままです。最小粒度は1です。最大値は{setting}です。最大粒度を変更するには、[高度な設定]に移動します。", - "xpack.lens.indexPattern.ranges.granularityPopoverTitle": "粒度間隔の仕組み", - "xpack.lens.indexPattern.ranges.increaseButtonLabel": "粒度を上げる", - "xpack.lens.indexPattern.ranges.lessThanOrEqualAppend": "≤", - "xpack.lens.indexPattern.ranges.lessThanOrEqualTooltip": "以下", - "xpack.lens.indexPattern.ranges.lessThanPrepend": "<", - "xpack.lens.indexPattern.ranges.lessThanTooltip": "より小さい", - "xpack.lens.indexPattern.records": "記録", - "xpack.lens.indexPattern.referenceFunctionPlaceholder": "サブ関数", - "xpack.lens.indexPattern.removeColumnAriaLabel": "フィールドを追加するか、{groupLabel}までドラッグアンドドロップします", - "xpack.lens.indexPattern.removeColumnLabel": "「{groupLabel}」から構成を削除", - "xpack.lens.indexPattern.sortField.invalid": "無効なフィールドです。インデックスパターンを確認するか、別のフィールドを選択してください。", - "xpack.lens.indexpattern.suggestions.nestingChangeLabel": "各 {outerOperation} の {innerOperation}", - "xpack.lens.indexpattern.suggestions.overallLabel": "全体の {operation}", - "xpack.lens.indexpattern.suggestions.overTimeLabel": "一定時間", - "xpack.lens.indexPattern.sum": "合計", - "xpack.lens.indexPattern.sum.description": "集約されたドキュメントから抽出された数値を合計する単一値メトリック集約。", - "xpack.lens.indexPattern.sumOf": "{name} の合計", - "xpack.lens.indexPattern.terms": "トップの値", - "xpack.lens.indexPattern.terms.advancedSettings": "高度な設定", - "xpack.lens.indexPattern.terms.missingBucketDescription": "このフィールドなしでドキュメントを含める", - "xpack.lens.indexPattern.terms.missingLabel": "(欠落値)", - "xpack.lens.indexPattern.terms.orderAlphabetical": "アルファベット順", - "xpack.lens.indexPattern.terms.orderAscending": "昇順", - "xpack.lens.indexPattern.terms.orderBy": "ランク条件", - "xpack.lens.indexPattern.terms.orderByHelp": "上位の値がランク付けされる条件となるディメンションを指定します。", - "xpack.lens.indexPattern.terms.orderDescending": "降順", - "xpack.lens.indexPattern.terms.orderDirection": "ランク方向", - "xpack.lens.indexPattern.terms.otherBucketDescription": "他の値を「その他」としてグループ化", - "xpack.lens.indexPattern.terms.otherLabel": "その他", - "xpack.lens.indexPattern.terms.size": "値の数", - "xpack.lens.indexPattern.termsOf": "{name} のトップの値", - "xpack.lens.indexPattern.termsWithMultipleShifts": "単一のレイヤーでは、メトリックを異なる時間シフトと動的な上位の値と組み合わせることができません。すべてのメトリックで同じ時間シフト値を使用するか、上位の値ではなくフィルターを使用します。", - "xpack.lens.indexPattern.termsWithMultipleShiftsFixActionLabel": "フィルターを使用", - "xpack.lens.indexPattern.timeScale.enableTimeScale": "単位で正規化", - "xpack.lens.indexPattern.timeScale.label": "単位で正規化", - "xpack.lens.indexPattern.timeScale.tooltip": "基本の日付間隔に関係なく、常に指定された時間単位のレートとして表示されるように値を正規化します。", - "xpack.lens.indexPattern.timeShift.12hours": "12時間前(12h)", - "xpack.lens.indexPattern.timeShift.3hours": "3時間前(3h)", - "xpack.lens.indexPattern.timeShift.3months": "3か月前(3M)", - "xpack.lens.indexPattern.timeShift.6hours": "6時間前(6h)", - "xpack.lens.indexPattern.timeShift.6months": "6か月前(6M)", - "xpack.lens.indexPattern.timeShift.day": "1日前(1d)", - "xpack.lens.indexPattern.timeShift.help": "時間シフトと単位を入力", - "xpack.lens.indexPattern.timeShift.hour": "1時間前(1h)", - "xpack.lens.indexPattern.timeShift.label": "時間シフト", - "xpack.lens.indexPattern.timeShift.month": "1か月前(1M)", - "xpack.lens.indexPattern.timeShift.noMultipleHelp": "時間シフトは日付ヒストグラム間隔の乗数でなければなりません。時間シフトまたは日付ヒストグラム間隔を調整", - "xpack.lens.indexPattern.timeShift.tooSmallHelp": "時間シフトは日付ヒストグラム間隔よりも大きくなければなりません。時間シフトを増やすか、日付ヒストグラムで間隔を小さくしてください", - "xpack.lens.indexPattern.timeShift.week": "1週間前(1w)", - "xpack.lens.indexPattern.timeShift.year": "1年前(1y)", - "xpack.lens.indexPattern.timeShiftMultipleWarning": "{label}は{columnTimeShift}の時間シフトを使用しています。これは{interval}の日付ヒストグラム間隔の乗数ではありません。不一致のデータを防止するには、時間シフトとして{interval}を使用します。", - "xpack.lens.indexPattern.timeShiftPlaceholder": "カスタム値を入力(例:8w)", - "xpack.lens.indexPattern.timeShiftSmallWarning": "{label}は{columnTimeShift}の時間シフトを使用しています。これは{interval}の日付ヒストグラム間隔よりも小さいです。不一致のデータを防止するには、時間シフトとして{interval}を使用します。", - "xpack.lens.indexPattern.uniqueLabel": "{label} [{num}]", - "xpack.lens.indexPattern.useAsTopLevelAgg": "最初にこのフィールドでグループ化", - "xpack.lens.indexPatterns.clearFiltersLabel": "名前とタイプフィルターを消去", - "xpack.lens.indexPatterns.fieldFiltersLabel": "タイプでフィルタリング", - "xpack.lens.indexPatterns.noAvailableDataLabel": "データを含むフィールドはありません。", - "xpack.lens.indexPatterns.noDataLabel": "フィールドがありません。", - "xpack.lens.indexPatterns.noEmptyDataLabel": "空のフィールドがありません。", - "xpack.lens.indexPatterns.noFields.extendTimeBullet": "時間範囲を拡張中", - "xpack.lens.indexPatterns.noFields.fieldTypeFilterBullet": "別のフィールドフィルターを使用", - "xpack.lens.indexPatterns.noFields.globalFiltersBullet": "グローバルフィルターを変更", - "xpack.lens.indexPatterns.noFields.tryText": "試行対象:", - "xpack.lens.indexPatterns.noFilteredFieldsLabel": "選択したフィルターと一致するフィールドはありません。", - "xpack.lens.indexPatterns.noMetaDataLabel": "メタフィールドがありません。", - "xpack.lens.indexPatternSuggestion.removeLayerLabel": "{indexPatternTitle}のみを表示", - "xpack.lens.indexPatternSuggestion.removeLayerPositionLabel": "レイヤー{layerNumber}のみを表示", - "xpack.lens.labelInput.label": "ラベル", - "xpack.lens.layerPanel.layerVisualizationType": "レイヤービジュアライゼーションタイプ", - "xpack.lens.lensSavedObjectLabel": "レンズビジュアライゼーション", - "xpack.lens.metric.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.metric.groupLabel": "表形式の値と単一の値", - "xpack.lens.metric.label": "メトリック", - "xpack.lens.pageTitle": "レンズ", - "xpack.lens.paletteHeatmapGradient.customize": "編集", - "xpack.lens.paletteHeatmapGradient.customizeLong": "パレットを編集", - "xpack.lens.paletteHeatmapGradient.label": "色", - "xpack.lens.palettePicker.label": "カラーパレット", - "xpack.lens.paletteTableGradient.customize": "編集", - "xpack.lens.paletteTableGradient.label": "色", - "xpack.lens.pie.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.pie.arrayValues": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", - "xpack.lens.pie.donutLabel": "ドーナッツ", - "xpack.lens.pie.expressionHelpLabel": "円表示", - "xpack.lens.pie.groupLabel": "比率", - "xpack.lens.pie.groupsizeLabel": "サイズ単位", - "xpack.lens.pie.pielabel": "円", - "xpack.lens.pie.pieWithNegativeWarningLabel": "{chartType}グラフは負の値では表示できません。別のビジュアライゼーションを試してください。", - "xpack.lens.pie.sliceGroupLabel": "スライス", - "xpack.lens.pie.suggestionLabel": "{chartName}として", - "xpack.lens.pie.treemapGroupLabel": "グループ分けの条件", - "xpack.lens.pie.treemaplabel": "ツリーマップ", - "xpack.lens.pie.treemapSuggestionLabel": "ツリーマップとして", - "xpack.lens.pie.visualizationName": "円", - "xpack.lens.pieChart.categoriesInLegendLabel": "ラベルを非表示", - "xpack.lens.pieChart.fitInsideOnlyLabel": "内部のみ", - "xpack.lens.pieChart.hiddenNumbersLabel": "グラフから非表示", - "xpack.lens.pieChart.labelPositionLabel": "位置", - "xpack.lens.pieChart.legendVisibility.auto": "自動", - "xpack.lens.pieChart.legendVisibility.hide": "非表示", - "xpack.lens.pieChart.legendVisibility.show": "表示", - "xpack.lens.pieChart.nestedLegendLabel": "ネスト済み", - "xpack.lens.pieChart.numberLabels": "値", - "xpack.lens.pieChart.percentDecimalsLabel": "割合の最大小数点桁数", - "xpack.lens.pieChart.showCategoriesLabel": "内部または外部", - "xpack.lens.pieChart.showFormatterValuesLabel": "値を表示", - "xpack.lens.pieChart.showPercentValuesLabel": "割合を表示", - "xpack.lens.pieChart.showTreemapCategoriesLabel": "ラベルを表示", - "xpack.lens.pieChart.valuesLabel": "ラベル", - "xpack.lens.resetLayerAriaLabel": "レイヤー {index} をリセット", - "xpack.lens.resetVisualizationAriaLabel": "ビジュアライゼーションをリセット", - "xpack.lens.searchTitle": "Lens:ビジュアライゼーションを作成", - "xpack.lens.section.configPanelLabel": "構成パネル", - "xpack.lens.section.dataPanelLabel": "データパネル", - "xpack.lens.section.workspaceLabel": "ビジュアライゼーションワークスペース", - "xpack.lens.shared.chartValueLabelVisibilityLabel": "ラベル", - "xpack.lens.shared.curveLabel": "視覚オプション", - "xpack.lens.shared.legend.filterForValueButtonAriaLabel": "値でフィルター", - "xpack.lens.shared.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "xpack.lens.shared.legend.filterOutValueButtonAriaLabel": "値を除外", - "xpack.lens.shared.legendAlignmentLabel": "アラインメント", - "xpack.lens.shared.legendInsideAlignmentLabel": "アラインメント", - "xpack.lens.shared.legendInsideColumnsLabel": "列の数", - "xpack.lens.shared.legendInsideLocationAlignmentLabel": "アラインメント", - "xpack.lens.shared.legendInsideTooltip": "凡例をビジュアライゼーション内に配置する必要があります", - "xpack.lens.shared.legendIsTruncated": "テキストを切り捨てる必要があります", - "xpack.lens.shared.legendLabel": "凡例", - "xpack.lens.shared.legendLocationBottomLeft": "左下", - "xpack.lens.shared.legendLocationBottomRight": "右下", - "xpack.lens.shared.legendLocationLabel": "場所", - "xpack.lens.shared.legendLocationTopLeft": "左上", - "xpack.lens.shared.legendLocationTopRight": "右上", - "xpack.lens.shared.legendPositionBottom": "一番下", - "xpack.lens.shared.legendPositionLeft": "左", - "xpack.lens.shared.legendPositionRight": "右", - "xpack.lens.shared.legendPositionTop": "トップ", - "xpack.lens.shared.legendVisibilityLabel": "表示", - "xpack.lens.shared.legendVisibleTooltip": "凡例を表示する必要があります", - "xpack.lens.shared.maxLinesLabel": "最大行", - "xpack.lens.shared.nestedLegendLabel": "ネスト済み", - "xpack.lens.shared.truncateLegend": "テキストを切り捨て", - "xpack.lens.shared.valueInLegendLabel": "値を表示", - "xpack.lens.sugegstion.refreshSuggestionLabel": "更新", - "xpack.lens.suggestion.refreshSuggestionTooltip": "選択したビジュアライゼーションに基づいて、候補を更新します。", - "xpack.lens.suggestions.currentVisLabel": "現在のビジュアライゼーション", - "xpack.lens.table.actionsLabel": "アクションを表示", - "xpack.lens.table.alignment.center": "中央", - "xpack.lens.table.alignment.label": "テキスト配置", - "xpack.lens.table.alignment.left": "左", - "xpack.lens.table.alignment.right": "右", - "xpack.lens.table.columnFilter.filterForValueText": "列のフィルター", - "xpack.lens.table.columnFilter.filterOutValueText": "列を除外", - "xpack.lens.table.columnVisibilityLabel": "列を非表示", - "xpack.lens.table.defaultAriaLabel": "データ表ビジュアライゼーション", - "xpack.lens.table.dynamicColoring.cell": "セル", - "xpack.lens.table.dynamicColoring.continuity.aboveLabel": "範囲の上", - "xpack.lens.table.dynamicColoring.continuity.allLabel": "範囲の上下", - "xpack.lens.table.dynamicColoring.continuity.belowLabel": "範囲の下", - "xpack.lens.table.dynamicColoring.continuity.label": "色の連続", - "xpack.lens.table.dynamicColoring.continuity.noneLabel": "範囲内", - "xpack.lens.table.dynamicColoring.customPalette.colorStopsHelpPercentage": "割合値は使用可能なデータ値の全範囲に対して相対的です。", - "xpack.lens.table.dynamicColoring.customPalette.colorStopsLabel": "色経由点", - "xpack.lens.table.dynamicColoring.customPalette.continuityHelp": "最初の色経由点の前、最後の色経由点の後に色が表示される方法を指定します。", - "xpack.lens.table.dynamicColoring.label": "値別の色", - "xpack.lens.table.dynamicColoring.none": "なし", - "xpack.lens.table.dynamicColoring.rangeType.label": "値型", - "xpack.lens.table.dynamicColoring.rangeType.number": "数字", - "xpack.lens.table.dynamicColoring.rangeType.percent": "割合(%)", - "xpack.lens.table.dynamicColoring.reverse.label": "色を反転", - "xpack.lens.table.dynamicColoring.text": "テキスト", - "xpack.lens.table.hide.hideLabel": "非表示", - "xpack.lens.table.palettePanelContainer.back": "戻る", - "xpack.lens.table.palettePanelTitle": "色の編集", - "xpack.lens.table.resize.reset": "幅のリセット", - "xpack.lens.table.sort.ascLabel": "昇順に並べ替える", - "xpack.lens.table.sort.descLabel": "降順に並べ替える", - "xpack.lens.table.summaryRow.average": "平均", - "xpack.lens.table.summaryRow.count": "値カウント", - "xpack.lens.table.summaryRow.customlabel": "概要ラベル", - "xpack.lens.table.summaryRow.label": "概要行", - "xpack.lens.table.summaryRow.maximum": "最高", - "xpack.lens.table.summaryRow.minimum": "最低", - "xpack.lens.table.summaryRow.none": "なし", - "xpack.lens.table.summaryRow.sum": "合計", - "xpack.lens.table.tableCellFilter.filterForValueAriaLabel": "値のフィルター:{cellContent}", - "xpack.lens.table.tableCellFilter.filterForValueText": "値でフィルター", - "xpack.lens.table.tableCellFilter.filterOutValueAriaLabel": "値の除外:{cellContent}", - "xpack.lens.table.tableCellFilter.filterOutValueText": "値を除外", - "xpack.lens.timeScale.removeLabel": "時間単位で正規化を削除", - "xpack.lens.timeShift.removeLabel": "時間シフトを削除", - "xpack.lens.visTypeAlias.description": "ドラッグアンドドロップエディターでビジュアライゼーションを作成します。いつでもビジュアライゼーションタイプを切り替えることができます。", - "xpack.lens.visTypeAlias.note": "ほとんどのユーザーに推奨されます。", - "xpack.lens.visTypeAlias.title": "レンズ", - "xpack.lens.visTypeAlias.type": "レンズ", - "xpack.lens.visualizeGeoFieldMessage": "Lensは{fieldType}フィールドを可視化できません", - "xpack.lens.xyChart.addDataLayerLabel": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.xyChart.addLayer": "レイヤーを追加", - "xpack.lens.xyChart.addLayerTooltip": "複数のレイヤーを使用すると、ビジュアライゼーションタイプを組み合わせたり、別のインデックスパターンを可視化したりすることができます。", - "xpack.lens.xyChart.axisExtent.custom": "カスタム", - "xpack.lens.xyChart.axisExtent.dataBounds": "データ境界", - "xpack.lens.xyChart.axisExtent.disabledDataBoundsMessage": "折れ線グラフのみをデータ境界に合わせることができます", - "xpack.lens.xyChart.axisExtent.full": "完全", - "xpack.lens.xyChart.axisExtent.label": "境界", - "xpack.lens.xyChart.axisNameLabel": "軸名", - "xpack.lens.xyChart.axisOrientation.angled": "傾斜", - "xpack.lens.xyChart.axisOrientation.horizontal": "横", - "xpack.lens.xyChart.axisOrientation.label": "向き", - "xpack.lens.xyChart.axisOrientation.vertical": "縦", - "xpack.lens.xyChart.axisSide.auto": "自動", - "xpack.lens.xyChart.axisSide.bottom": "一番下", - "xpack.lens.xyChart.axisSide.label": "軸側", - "xpack.lens.xyChart.axisSide.left": "左", - "xpack.lens.xyChart.axisSide.right": "右", - "xpack.lens.xyChart.axisSide.top": "トップ", - "xpack.lens.xyChart.axisTitlesSettings.help": "xおよびy軸のタイトルを表示", - "xpack.lens.xyChart.bottomAxisDisabledHelpText": "この設定は、下の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.bottomAxisLabel": "下の軸", - "xpack.lens.xyChart.boundaryError": "下界は上界よりも大きくなければなりません", - "xpack.lens.xyChart.chartTypeLabel": "チャートタイプ", - "xpack.lens.xyChart.chartTypeLegend": "チャートタイプ", - "xpack.lens.xyChart.curveStyleLabel": "曲線", - "xpack.lens.xyChart.curveType.help": "折れ線グラフで曲線タイプをレンダリングする方法を定義します", - "xpack.lens.xyChart.emptyXLabel": "(空)", - "xpack.lens.xyChart.extentMode.help": "範囲モード", - "xpack.lens.xyChart.fillOpacity.help": "エリアグラフの塗りつぶしの透明度を定義", - "xpack.lens.xyChart.fillOpacityLabel": "塗りつぶしの透明度", - "xpack.lens.xyChart.fittingFunction.help": "欠測値の処理方法を定義", - "xpack.lens.xyChart.floatingColumns.help": "凡例がグラフ内に表示されるときに列数を指定します。", - "xpack.lens.xyChart.Gridlines": "グリッド線", - "xpack.lens.xyChart.gridlinesSettings.help": "xおよびy軸のグリッド線を表示", - "xpack.lens.xyChart.help": "X/Y チャート", - "xpack.lens.xyChart.hideEndzones.help": "部分データの終了ゾーンマーカーを非表示", - "xpack.lens.xyChart.horizontalAlignment.help": "凡例がグラフ内に表示されるときに凡例の横の配置を指定します。", - "xpack.lens.xyChart.horizontalAxisLabel": "横軸", - "xpack.lens.xyChart.inclusiveZero": "境界にはゼロを含める必要があります。", - "xpack.lens.xyChart.isInside.help": "凡例がグラフ内に表示されるかどうかを指定します", - "xpack.lens.xyChart.isVisible.help": "判例の表示・非表示を指定します。", - "xpack.lens.xyChart.labelsOrientation.help": "軸ラベルの回転を定義します", - "xpack.lens.xyChart.leftAxisDisabledHelpText": "この設定は、左の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.leftAxisLabel": "左の軸", - "xpack.lens.xyChart.legend.help": "チャートの凡例を構成します。", - "xpack.lens.xyChart.legendLocation.inside": "内部", - "xpack.lens.xyChart.legendLocation.outside": "外側", - "xpack.lens.xyChart.legendVisibility.auto": "自動", - "xpack.lens.xyChart.legendVisibility.hide": "非表示", - "xpack.lens.xyChart.legendVisibility.show": "表示", - "xpack.lens.xyChart.lowerBoundLabel": "下界", - "xpack.lens.xyChart.maxLines.help": "凡例項目ごとの行数を指定します。", - "xpack.lens.xyChart.missingValuesLabel": "欠測値", - "xpack.lens.xyChart.missingValuesLabelHelpText": "デフォルトでは、Lensではデータのギャップが表示されません。ギャップを埋めるには、選択します。", - "xpack.lens.xyChart.nestUnderRoot": "データセット全体", - "xpack.lens.xyChart.overwriteAxisTitle": "軸タイトルを上書き", - "xpack.lens.xyChart.position.help": "凡例の配置を指定します。", - "xpack.lens.xyChart.renderer.help": "X/Y チャートを再レンダリング", - "xpack.lens.xyChart.rightAxisDisabledHelpText": "この設定は、右の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.rightAxisLabel": "右の軸", - "xpack.lens.xyChart.seriesColor.auto": "自動", - "xpack.lens.xyChart.seriesColor.label": "系列色", - "xpack.lens.xyChart.shouldTruncate.help": "凡例項目が切り捨てられるかどうかを指定します", - "xpack.lens.xyChart.ShowAxisTitleLabel": "表示", - "xpack.lens.xyChart.showEnzones": "部分データマーカーを表示", - "xpack.lens.xyChart.showSingleSeries.help": "エントリが1件の凡例を表示するかどうかを指定します", - "xpack.lens.xyChart.splitSeries": "内訳の基準", - "xpack.lens.xyChart.tickLabels": "目盛ラベル", - "xpack.lens.xyChart.tickLabelsSettings.help": "xおよびy軸の目盛ラベルを表示", - "xpack.lens.xyChart.title.help": "軸のタイトル", - "xpack.lens.xyChart.topAxisDisabledHelpText": "この設定は、上の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.topAxisLabel": "上の軸", - "xpack.lens.xyChart.upperBoundLabel": "上界", - "xpack.lens.xyChart.valuesHistogramDisabledHelpText": "この設定はヒストグラムで変更できません。", - "xpack.lens.xyChart.valuesInLegend.help": "凡例に値を表示", - "xpack.lens.xyChart.valuesPercentageDisabledHelpText": "この設定は割合エリアグラフで変更できません。", - "xpack.lens.xyChart.valuesStackedDisabledHelpText": "この設定は積み上げ棒グラフまたは割合棒グラフで変更できません", - "xpack.lens.xyChart.verticalAlignment.help": "凡例がグラフ内に表示されるときに凡例の縦の配置を指定します。", - "xpack.lens.xyChart.verticalAxisLabel": "縦軸", - "xpack.lens.xyChart.xAxisGridlines.help": "x 軸のグリッド線を表示するかどうかを指定します。", - "xpack.lens.xyChart.xAxisLabelsOrientation.help": "x軸のラベルの向きを指定します。", - "xpack.lens.xyChart.xAxisTickLabels.help": "x軸の目盛ラベルを表示するかどうかを指定します。", - "xpack.lens.xyChart.xAxisTitle.help": "x軸のタイトルを表示するかどうかを指定します。", - "xpack.lens.xyChart.xTitle.help": "x軸のタイトル", - "xpack.lens.xyChart.yLeftAxisgridlines.help": "左y軸のグリッド線を表示するかどうかを指定します。", - "xpack.lens.xyChart.yLeftAxisLabelsOrientation.help": "左y軸のラベルの向きを指定します。", - "xpack.lens.xyChart.yLeftAxisTickLabels.help": "左y軸の目盛ラベルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yLeftAxisTitle.help": "左y軸のタイトルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yLeftExtent.help": "Y左軸範囲", - "xpack.lens.xyChart.yLeftTitle.help": "左y軸のタイトル", - "xpack.lens.xyChart.yRightAxisgridlines.help": "右y軸のグリッド線を表示するかどうかを指定します。", - "xpack.lens.xyChart.yRightAxisLabelsOrientation.help": "右y軸のラベルの向きを指定します。", - "xpack.lens.xyChart.yRightAxisTickLabels.help": "右y軸の目盛ラベルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yRightAxisTitle.help": "右y軸のタイトルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yRightExtent.help": "Y右軸範囲", - "xpack.lens.xyChart.yRightTitle.help": "右 y 軸のタイトル", - "xpack.lens.xySuggestions.asPercentageTitle": "割合(%)", - "xpack.lens.xySuggestions.barChartTitle": "棒グラフ", - "xpack.lens.xySuggestions.dateSuggestion": "{xTitle}の上の {yTitle}", - "xpack.lens.xySuggestions.emptyAxisTitle": "(空)", - "xpack.lens.xySuggestions.flipTitle": "反転", - "xpack.lens.xySuggestions.lineChartTitle": "折れ線グラフ", - "xpack.lens.xySuggestions.nonDateSuggestion": "{yTitle}/{xTitle}", - "xpack.lens.xySuggestions.stackedChartTitle": "スタック", - "xpack.lens.xySuggestions.unstackedChartTitle": "スタックが解除されました", - "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", - "xpack.lens.xyVisualization.areaLabel": "エリア", - "xpack.lens.xyVisualization.arrayValues": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", - "xpack.lens.xyVisualization.barGroupLabel": "棒", - "xpack.lens.xyVisualization.barHorizontalFullLabel": "横棒", - "xpack.lens.xyVisualization.barHorizontalLabel": "H.棒", - "xpack.lens.xyVisualization.barLabel": "縦棒", - "xpack.lens.xyVisualization.dataFailureSplitShort": "{axis} がありません。", - "xpack.lens.xyVisualization.dataFailureYShort": "{axis} がありません。", - "xpack.lens.xyVisualization.dataTypeFailureXLong": "{axis}のデータ型が一致しません。日付と数値間隔型を混合することはできません。", - "xpack.lens.xyVisualization.dataTypeFailureXOrdinalLong": "{axis}のデータ型が一致しません。別の関数を使用してください。", - "xpack.lens.xyVisualization.dataTypeFailureXShort": "{axis}のデータ型が正しくありません。", - "xpack.lens.xyVisualization.dataTypeFailureYLong": "{axis}のディメンション{label}のデータ型が正しくありません。数値が想定されていますが、{dataType}です", - "xpack.lens.xyVisualization.dataTypeFailureYShort": "{axis}のデータ型が正しくありません。", - "xpack.lens.xyVisualization.lineGroupLabel": "折れ線と面", - "xpack.lens.xyVisualization.lineLabel": "折れ線", - "xpack.lens.xyVisualization.mixedBarHorizontalLabel": "混在した横棒", - "xpack.lens.xyVisualization.mixedLabel": "ミックスされた XY", - "xpack.lens.xyVisualization.noDataLabel": "結果が見つかりませんでした", - "xpack.lens.xyVisualization.stackedAreaLabel": "面積み上げ", - "xpack.lens.xyVisualization.stackedBarHorizontalFullLabel": "積み上げ横棒", - "xpack.lens.xyVisualization.stackedBarHorizontalLabel": "H.積み上げ棒", - "xpack.lens.xyVisualization.stackedBarLabel": "積み上げ縦棒", - "xpack.lens.xyVisualization.stackedPercentageAreaLabel": "面割合", - "xpack.lens.xyVisualization.stackedPercentageBarHorizontalFullLabel": "横棒割合", - "xpack.lens.xyVisualization.stackedPercentageBarHorizontalLabel": "H.割合棒", - "xpack.lens.xyVisualization.stackedPercentageBarLabel": "縦棒割合", - "xpack.lens.xyVisualization.xyLabel": "XY", - "advancedSettings.advancedSettingsLabel": "高度な設定", - "advancedSettings.badge.readOnly.text": "読み取り専用", - "advancedSettings.badge.readOnly.tooltip": "高度な設定を保存できません", - "advancedSettings.callOutCautionDescription": "これらの設定は非常に上級ユーザー向けなのでご注意ください。ここでの変更は Kibana の重要な部分に不具合を生じさせる可能性があります。これらの設定は非公開、サポート対象外、または実験的な場合があります。フィールドにデフォルト値がある場合、そのフィールドを未入力のままにするとデフォルトに戻り、他の構成で許容されないことがあります。カスタム設定を削除すると、Kibana の構成から永久に削除されます。", - "advancedSettings.callOutCautionTitle": "注意:不具合につながる可能性があります", - "advancedSettings.categoryNames.dashboardLabel": "ダッシュボード", - "advancedSettings.categoryNames.discoverLabel": "Discover", - "advancedSettings.categoryNames.generalLabel": "一般", - "advancedSettings.categoryNames.machineLearningLabel": "機械学習", - "advancedSettings.categoryNames.notificationsLabel": "通知", - "advancedSettings.categoryNames.observabilityLabel": "オブザーバビリティ", - "advancedSettings.categoryNames.reportingLabel": "レポート", - "advancedSettings.categoryNames.searchLabel": "検索", - "advancedSettings.categoryNames.securitySolutionLabel": "セキュリティソリューション", - "advancedSettings.categoryNames.timelionLabel": "Timelion", - "advancedSettings.categoryNames.visualizationsLabel": "ビジュアライゼーション", - "advancedSettings.categorySearchLabel": "カテゴリー", - "advancedSettings.featureCatalogueTitle": "日付形式の変更、ダークモードの有効化など、Kibanaエクスペリエンスをカスタマイズします。", - "advancedSettings.field.changeImageLinkAriaLabel": "{ariaName} を変更", - "advancedSettings.field.changeImageLinkText": "画像を変更", - "advancedSettings.field.codeEditorSyntaxErrorMessage": "無効な JSON 構文", - "advancedSettings.field.customSettingAriaLabel": "カスタム設定", - "advancedSettings.field.customSettingTooltip": "カスタム設定", - "advancedSettings.field.defaultValueText": "デフォルト:{value}", - "advancedSettings.field.defaultValueTypeJsonText": "デフォルト:{value}", - "advancedSettings.field.deprecationClickAreaLabel": "クリックすると {settingName} のサポート終了に関するドキュメントが表示されます。", - "advancedSettings.field.helpText": "この設定は Kibana サーバーにより上書きされ、変更することはできません。", - "advancedSettings.field.imageChangeErrorMessage": "画像を保存できませんでした", - "advancedSettings.field.invalidIconLabel": "無効", - "advancedSettings.field.offLabel": "オフ", - "advancedSettings.field.onLabel": "オン", - "advancedSettings.field.resetToDefaultLinkAriaLabel": "{ariaName} をデフォルトにリセット", - "advancedSettings.field.resetToDefaultLinkText": "デフォルトにリセット", - "advancedSettings.field.settingIsUnsaved": "設定は現在保存されていません。", - "advancedSettings.field.unsavedIconLabel": "未保存", - "advancedSettings.form.cancelButtonLabel": "変更をキャンセル", - "advancedSettings.form.clearNoSearchResultText": "(検索結果を消去)", - "advancedSettings.form.clearSearchResultText": "(検索結果を消去)", - "advancedSettings.form.noSearchResultText": "{queryText} {clearSearch}の設定が見つかりません", - "advancedSettings.form.requiresPageReloadToastButtonLabel": "ページを再読み込み", - "advancedSettings.form.requiresPageReloadToastDescription": "設定を有効にするためにページの再読み込みが必要です。", - "advancedSettings.form.saveButtonLabel": "変更を保存", - "advancedSettings.form.saveButtonTooltipWithInvalidChanges": "保存前に無効な設定を修正してください。", - "advancedSettings.form.saveErrorMessage": "を保存できませんでした", - "advancedSettings.form.searchResultText": "検索用語により {settingsCount} 件の設定が非表示になっています {clearSearch}", - "advancedSettings.pageTitle": "設定", - "advancedSettings.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", - "advancedSettings.searchBarAriaLabel": "高度な設定を検索", - "advancedSettings.voiceAnnouncement.ariaLabel": "詳細設定結果情報", - "alerts.documentationTitle": "ドキュメンテーションを表示", - "alerts.noPermissionsMessage": "アラートを表示するには、Kibanaスペースでアラート機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", - "alerts.noPermissionsTitle": "Kibana機能権限が必要です", - "autocomplete.fieldRequiredError": "値を空にすることはできません", - "autocomplete.invalidDateError": "有効な日付ではありません", - "autocomplete.invalidNumberError": "有効な数値ではありません", - "autocomplete.loadingDescription": "読み込み中...", - "autocomplete.selectField": "最初にフィールドを選択してください...", - "bfetch.disableBfetchCompression": "バッチ圧縮を無効にする", - "bfetch.disableBfetchCompressionDesc": "バッチ圧縮を無効にします。個別の要求をデバッグできますが、応答サイズが大きくなります。", - "charts.advancedSettings.visualization.colorMappingText": "互換性パレットを使用して、グラフで値を特定の色にマッピング色にマッピングします。", - "charts.advancedSettings.visualization.colorMappingTextDeprecation": "この設定はサポートが終了し、Kibana 8.0 ではサポートされません。", - "charts.advancedSettings.visualization.colorMappingTitle": "カラーマッピング", - "charts.colormaps.bluesText": "青", - "charts.colormaps.greensText": "緑", - "charts.colormaps.greenToRedText": "緑から赤", - "charts.colormaps.greysText": "グレー", - "charts.colormaps.redsText": "赤", - "charts.colormaps.yellowToRedText": "黄色から赤", - "charts.colorPicker.clearColor": "色をリセット", - "charts.colorPicker.setColor.screenReaderDescription": "値 {legendDataLabel} の色を設定", - "charts.countText": "カウント", - "charts.functions.palette.args.colorHelpText": "パレットの色です。{html} カラー名、{hex}、{hsl}、{hsla}、{rgb}、または {rgba} を使用できます。", - "charts.functions.palette.args.gradientHelpText": "サポートされている場合グラデーションパレットを作成しますか?", - "charts.functions.palette.args.reverseHelpText": "パレットを反転させますか?", - "charts.functions.palette.args.stopHelpText": "パレットの色経由点。使用するときには、各色に関連付ける必要があります。", - "charts.functions.paletteHelpText": "カラーパレットを作成します。", - "charts.functions.systemPalette.args.nameHelpText": "パレットリストのパレットの名前", - "charts.functions.systemPaletteHelpText": "動的カラーパレットを作成します。", - "charts.legend.toggleLegendButtonAriaLabel": "凡例を切り替える", - "charts.legend.toggleLegendButtonTitle": "凡例を切り替える", - "charts.palettes.complimentaryLabel": "無料", - "charts.palettes.coolLabel": "Cool", - "charts.palettes.customLabel": "カスタム", - "charts.palettes.defaultPaletteLabel": "デフォルト", - "charts.palettes.grayLabel": "グレー", - "charts.palettes.kibanaPaletteLabel": "互換性", - "charts.palettes.negativeLabel": "負", - "charts.palettes.positiveLabel": "正", - "charts.palettes.statusLabel": "ステータス", - "charts.palettes.temperatureLabel": "温度", - "charts.palettes.warmLabel": "ウォーム", - "charts.partialData.bucketTooltipText": "選択された時間範囲にはこのバケット全体は含まれていません。一部データが含まれている可能性があります。", - "console.autocomplete.addMethodMetaText": "メソド", - "console.consoleDisplayName": "コンソール", - "console.consoleMenu.copyAsCurlFailedMessage": "要求をcURLとしてコピーできませんでした", - "console.consoleMenu.copyAsCurlMessage": "リクエストが URL としてコピーされました", - "console.devToolsDescription": "コンソールでデータを操作するには、cURLをスキップして、JSONインターフェイスを使用します。", - "console.devToolsTitle": "Elasticsearch APIとの連携", - "console.exampleOutputTextarea": "開発ツールコンソールエディターの例", - "console.helpPage.keyboardCommands.autoIndentDescription": "現在のリクエストを自動インデントします", - "console.helpPage.keyboardCommands.closeAutoCompleteMenuDescription": "自動入力メニューを閉じます", - "console.helpPage.keyboardCommands.collapseAllScopesDescription": "現在のスコープを除きすべてのスコープを最小表示します。シフトを追加して拡張します。", - "console.helpPage.keyboardCommands.collapseExpandCurrentScopeDescription": "現在のスコープを最小/拡張表示します。", - "console.helpPage.keyboardCommands.jumpToPreviousNextRequestDescription": "前/次のリクエストの開始または終了に移動します。", - "console.helpPage.keyboardCommands.openAutoCompleteDescription": "自動入力を開きます(未入力時を含む)", - "console.helpPage.keyboardCommands.openDocumentationDescription": "現在のリクエストのドキュメントを開きます", - "console.helpPage.keyboardCommands.selectCurrentlySelectedInAutoCompleteMenuDescription": "現在の選択項目または自動入力メニューで最も使用されている用語を選択します", - "console.helpPage.keyboardCommands.submitRequestDescription": "リクエストを送信します", - "console.helpPage.keyboardCommands.switchFocusToAutoCompleteMenuDescription": "自動入力メニューに焦点を切り替えます。矢印を使用してさらに用語を選択します", - "console.helpPage.keyboardCommandsTitle": "キーボードコマンド", - "console.helpPage.pageTitle": "ヘルプ", - "console.helpPage.requestFormatDescription": "ホワイトエディターに 1 つ以上のリクエストを入力できます。コンソールはコンパクトなフォーマットのリクエストを理解できます。", - "console.helpPage.requestFormatTitle": "リクエストフォーマット", - "console.historyPage.applyHistoryButtonLabel": "適用", - "console.historyPage.clearHistoryButtonLabel": "クリア", - "console.historyPage.closehistoryButtonLabel": "閉じる", - "console.historyPage.itemOfRequestListAriaLabel": "リクエスト:{historyItem}", - "console.historyPage.noHistoryTextMessage": "履歴がありません", - "console.historyPage.pageTitle": "履歴", - "console.historyPage.requestListAriaLabel": "リクエストの送信履歴", - "console.inputTextarea": "開発ツールコンソール", - "console.loadingError.buttonLabel": "コンソールの再読み込み", - "console.loadingError.message": "最新データを取得するために再読み込みを試してください。", - "console.loadingError.title": "コンソールを読み込めません", - "console.notification.error.couldNotSaveRequestTitle": "リクエストをコンソール履歴に保存できませんでした。", - "console.notification.error.historyQuotaReachedMessage": "リクエスト履歴が満杯です。コンソール履歴を消去して、新しいリクエストを保存します。", - "console.notification.error.noRequestSelectedTitle": "リクエストを選択していません。リクエストの中にカーソルを置いて選択します。", - "console.notification.error.unknownErrorTitle": "不明なリクエストエラー", - "console.outputTextarea": "開発ツールコンソール出力", - "console.pageHeading": "コンソール", - "console.requestInProgressBadgeText": "リクエストが進行中", - "console.requestOptions.autoIndentButtonLabel": "自動インデント", - "console.requestOptions.copyAsUrlButtonLabel": "cURL としてコピー", - "console.requestOptions.openDocumentationButtonLabel": "ドキュメントを開く", - "console.requestOptionsButtonAriaLabel": "リクエストオプション", - "console.requestTimeElapasedBadgeTooltipContent": "経過時間", - "console.sendRequestButtonTooltip": "クリックしてリクエストを送信", - "console.settingsPage.autocompleteLabel": "自動入力", - "console.settingsPage.cancelButtonLabel": "キャンセル", - "console.settingsPage.fieldsLabelText": "フィールド", - "console.settingsPage.fontSizeLabel": "フォントサイズ", - "console.settingsPage.indicesAndAliasesLabelText": "インデックスとエイリアス", - "console.settingsPage.jsonSyntaxLabel": "JSON構文", - "console.settingsPage.pageTitle": "コンソール設定", - "console.settingsPage.pollingLabelText": "自動入力候補を自動的に更新", - "console.settingsPage.refreshButtonLabel": "自動入力候補の更新", - "console.settingsPage.refreshingDataDescription": "コンソールは、Elasticsearchをクエリして自動入力候補を更新します。クラスターが大きい場合や、ネットワークの制限がある場合には、自動更新で問題が発生する可能性があります。", - "console.settingsPage.refreshingDataLabel": "自動入力候補を更新しています", - "console.settingsPage.saveButtonLabel": "保存", - "console.settingsPage.templatesLabelText": "テンプレート", - "console.settingsPage.tripleQuotesMessage": "出力ウィンドウでは三重引用符を使用してください", - "console.settingsPage.wrapLongLinesLabelText": "長い行を改行", - "console.topNav.helpTabDescription": "ヘルプ", - "console.topNav.helpTabLabel": "ヘルプ", - "console.topNav.historyTabDescription": "履歴", - "console.topNav.historyTabLabel": "履歴", - "console.topNav.settingsTabDescription": "設定", - "console.topNav.settingsTabLabel": "設定", - "console.welcomePage.closeButtonLabel": "閉じる", - "console.welcomePage.pageTitle": "コンソールへようこそ", - "console.welcomePage.quickIntroDescription": "コンソール UI は、エディターペイン(左)と応答ペイン(右)の 2 つのペインに分かれています。エディターでリクエストを入力し、Elasticsearch に送信します。結果が右側の応答ペインに表示されます。", - "console.welcomePage.quickIntroTitle": "UI の簡単な説明", - "console.welcomePage.quickTips.cUrlFormatForRequestsDescription": "cURL フォーマットのリクエストを貼り付けると、Console 構文に変換されます。", - "console.welcomePage.quickTips.keyboardShortcutsDescription": "ヘルプボタンでキーボードショートカットが学べます。便利な情報が揃っています!", - "console.welcomePage.quickTips.resizeEditorDescription": "間の区切りをドラッグすることで、エディターとアウトプットペインのサイズを変更できます。", - "console.welcomePage.quickTips.submitRequestDescription": "緑の三角形のボタンをクリックして ES にリクエストを送信します。", - "console.welcomePage.quickTips.useWrenchMenuDescription": "レンチメニューで他の便利な機能が使えます。", - "console.welcomePage.quickTipsTitle": "今のうちにいくつか簡単なコツをお教えします", - "console.welcomePage.supportedRequestFormatDescription": "リクエストの入力中、コンソールが候補を提案するので、Enter/Tabを押して確定できます。これらの候補はリクエストの構造、およびインデックス、タイプに基づくものです。", - "console.welcomePage.supportedRequestFormatTitle": "コンソールは cURL と同様に、コンパクトなフォーマットのリクエストを理解できます。", - "core.application.appContainer.loadingAriaLabel": "アプリケーションを読み込んでいます", - "core.application.appNotFound.pageDescription": "この URL にアプリケーションが見つかりませんでした。前の画面に戻るか、メニューからアプリを選択してみてください。", - "core.application.appNotFound.title": "アプリケーションが見つかりません", - "core.application.appRenderError.defaultTitle": "アプリケーションエラー", - "core.chrome.browserDeprecationLink": "Web サイトのサポートマトリックス", - "core.chrome.browserDeprecationWarning": "このソフトウェアの将来のバージョンでは、Internet Explorerのサポートが削除されます。{link}をご確認ください。", - "core.chrome.legacyBrowserWarning": "ご使用のブラウザが Kibana のセキュリティ要件を満たしていません。", - "core.euiAccordion.isLoading": "読み込み中", - "core.euiBasicTable.selectAllRows": "すべての行を選択", - "core.euiBasicTable.selectThisRow": "この行を選択", - "core.euiBasicTable.tableAutoCaptionWithoutPagination": "この表には{itemCount}行あります。", - "core.euiBasicTable.tableAutoCaptionWithPagination": "この表には{totalItemCount}行中{itemCount}行あります; {page}/{pageCount}ページ。", - "core.euiBasicTable.tableCaptionWithPagination": "{tableCaption}; {page}/{pageCount}ページ。", - "core.euiBasicTable.tablePagination": "前の表のページネーション: {tableCaption}", - "core.euiBasicTable.tableSimpleAutoCaptionWithPagination": "この表には{itemCount}行あります; {page}/{pageCount}ページ。", - "core.euiBottomBar.customScreenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマーク{landmarkHeading}とページレベルのコントロールがあります。", - "core.euiBottomBar.screenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマークとページレベルのコントロールがあります。", - "core.euiBottomBar.screenReaderHeading": "ページレベルのコントロール", - "core.euiBreadcrumbs.collapsedBadge.ariaLabel": "折りたたまれたブレッドクラムを表示", - "core.euiBreadcrumbs.nav.ariaLabel": "ブレッドクラム", - "core.euiCardSelect.select": "選択してください", - "core.euiCardSelect.selected": "利用不可", - "core.euiCardSelect.unavailable": "選択済み", - "core.euiCodeBlock.copyButton": "コピー", - "core.euiCodeBlock.fullscreenCollapse": "縮小", - "core.euiCodeBlock.fullscreenExpand": "拡張", - "core.euiCollapsedItemActions.allActions": "すべてのアクション", - "core.euiColorPicker.alphaLabel": "アルファチャネル(不透明)値", - "core.euiColorPicker.closeLabel": "下矢印キーを押すと、色オプションを含むポップオーバーが開きます", - "core.euiColorPicker.colorErrorMessage": "無効な色値", - "core.euiColorPicker.colorLabel": "色値", - "core.euiColorPicker.openLabel": "Escapeキーを押すと、ポップオーバーを閉じます", - "core.euiColorPicker.popoverLabel": "色選択ダイアログ", - "core.euiColorPicker.transparent": "透明", - "core.euiColorPickerSwatch.ariaLabel": "色として{color}を選択します", - "core.euiColorStops.screenReaderAnnouncement": "{label}:{readOnly} {disabled}色終了位置ピッカー。各終了には数値と対応するカラー値があります。上下矢印キーを使用して、個別の終了を選択します。Enterキーを押すと、新しい終了を作成します。", - "core.euiColorStopThumb.buttonAriaLabel": "Enterキーを押すと、この点を変更します。Escapeキーを押すと、グループにフォーカスします", - "core.euiColorStopThumb.buttonTitle": "クリックすると編集できます。ドラッグすると再配置できます", - "core.euiColorStopThumb.removeLabel": "この終了を削除", - "core.euiColorStopThumb.screenReaderAnnouncement": "カラー終了編集フォームのポップアップが開きました。Tabを押してフォームコントロールを閲覧するか、Escでこのポップアップを閉じます。", - "core.euiColorStopThumb.stopErrorMessage": "値が範囲外です", - "core.euiColorStopThumb.stopLabel": "点値", - "core.euiColumnActions.hideColumn": "列を非表示", - "core.euiColumnActions.moveLeft": "左に移動", - "core.euiColumnActions.moveRight": "右に移動", - "core.euiColumnActions.sort": "{schemaLabel}を並べ替える", - "core.euiColumnSelector.button": "列", - "core.euiColumnSelector.buttonActivePlural": "{numberOfHiddenFields}個の列が非表示です", - "core.euiColumnSelector.buttonActiveSingular": "{numberOfHiddenFields}個の列が非表示です", - "core.euiColumnSelector.hideAll": "すべて非表示", - "core.euiColumnSelector.search": "検索", - "core.euiColumnSelector.searchcolumns": "列を検索", - "core.euiColumnSelector.selectAll": "すべて表示", - "core.euiColumnSorting.button": "フィールドの並べ替え", - "core.euiColumnSorting.clearAll": "並び替えを消去", - "core.euiColumnSorting.emptySorting": "現在並び替えられているフィールドはありません", - "core.euiColumnSorting.pickFields": "並び替え基準でフィールドの選択", - "core.euiColumnSorting.sortFieldAriaLabel": "並べ替え基準:", - "core.euiColumnSortingDraggable.defaultSortAsc": "A-Z", - "core.euiColumnSortingDraggable.defaultSortDesc": "Z-A", - "core.euiComboBoxOptionsList.allOptionsSelected": "利用可能なオプションをすべて選択しました", - "core.euiComboBoxOptionsList.alreadyAdded": "{label} はすでに追加されています", - "core.euiComboBoxOptionsList.createCustomOption": "{searchValue}をカスタムオプションとして追加", - "core.euiComboBoxOptionsList.delimiterMessage": "各項目を{delimiter}で区切って追加", - "core.euiComboBoxOptionsList.loadingOptions": "オプションを読み込み中", - "core.euiComboBoxOptionsList.noAvailableOptions": "利用可能なオプションがありません", - "core.euiComboBoxOptionsList.noMatchingOptions": "{searchValue} はどのオプションにも一致していません", - "core.euiComboBoxPill.removeSelection": "グループの選択項目から {children} を削除してください", - "core.euiCommonlyUsedTimeRanges.legend": "頻繁に使用", - "core.euiControlBar.customScreenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマーク{landmarkHeading}とページレベルのコントロールがあります。", - "core.euiControlBar.screenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマークとページレベルのコントロールがあります。", - "core.euiControlBar.screenReaderHeading": "ページレベルのコントロール", - "core.euiDataGrid.ariaLabel": "{label}; {page}/{pageCount}ページ。", - "core.euiDataGrid.ariaLabelledBy": "{page}/{pageCount}ページ。", - "core.euiDataGrid.screenReaderNotice": "セルにはインタラクティブコンテンツが含まれます。", - "core.euiDataGridCellButtons.expandButtonTitle": "クリックするか enter を押すと、セルのコンテンツとインタラクトできます。", - "core.euiDataGridHeaderCell.headerActions": "ヘッダーアクション", - "core.euiDataGridSchema.booleanSortTextAsc": "False-True", - "core.euiDataGridSchema.booleanSortTextDesc": "True-False", - "core.euiDataGridSchema.currencySortTextAsc": "低-高", - "core.euiDataGridSchema.currencySortTextDesc": "高-低", - "core.euiDataGridSchema.dateSortTextAsc": "旧-新", - "core.euiDataGridSchema.dateSortTextDesc": "新-旧", - "core.euiDataGridSchema.jsonSortTextAsc": "小-大", - "core.euiDataGridSchema.jsonSortTextDesc": "大-小", - "core.euiDataGridSchema.numberSortTextAsc": "低-高", - "core.euiDataGridSchema.numberSortTextDesc": "高-低", - "core.euiDatePopoverButton.outdatedTitle": "更新が必要:{title}", - "core.euiFieldPassword.maskPassword": "パスワードをマスク", - "core.euiFieldPassword.showPassword": "プレーンテキストとしてパスワードを表示します。注記:パスワードは画面上に見えるように表示されます。", - "core.euiFilePicker.clearSelectedFiles": "選択したファイルを消去", - "core.euiFilePicker.removeSelected": "削除", - "core.euiFlyout.closeAriaLabel": "このダイアログを閉じる", - "core.euiForm.addressFormErrors": "ハイライトされたエラーを修正してください。", - "core.euiFormControlLayoutClearButton.label": "インプットを消去", - "core.euiHeaderLinks.appNavigation": "アプリメニュー", - "core.euiHeaderLinks.openNavigationMenu": "メニューを開く", - "core.euiHue.label": "HSV カラーモードの「色相」値を選択", - "core.euiImage.closeImage": "全画面 {alt} 画像を閉じる", - "core.euiImage.openImage": "全画面 {alt} 画像を開く", - "core.euiLink.external.ariaLabel": "外部リンク", - "core.euiLink.newTarget.screenReaderOnlyText": "(新しいタブまたはウィンドウで開く)", - "core.euiMarkdownEditorFooter.closeButton": "閉じる", - "core.euiMarkdownEditorFooter.errorsTitle": "エラー", - "core.euiMarkdownEditorFooter.openUploadModal": "ファイルのアップロードモーダルを開く", - "core.euiMarkdownEditorFooter.showMarkdownHelp": "マークダウンヘルプを表示", - "core.euiMarkdownEditorFooter.showSyntaxErrors": "エラーを表示", - "core.euiMarkdownEditorFooter.supportedFileTypes": "サポートされているファイル:{supportedFileTypes}", - "core.euiMarkdownEditorFooter.syntaxTitle": "構文ヘルプ", - "core.euiMarkdownEditorFooter.unsupportedFileType": "ファイルタイプがサポートされていません", - "core.euiMarkdownEditorFooter.uploadingFiles": "クリックすると、ファイルをアップロードします", - "core.euiMarkdownEditorToolbar.editor": "エディター", - "core.euiMarkdownEditorToolbar.previewMarkdown": "プレビュー", - "core.euiModal.closeModal": "このモーダルウィンドウを閉じます", - "core.euiNotificationEventMessages.accordionAriaLabelButtonText": "+ {eventName}の{messagesLength}メスえーいj", - "core.euiNotificationEventMessages.accordionButtonText": "+ {messagesLength}以上", - "core.euiNotificationEventMessages.accordionHideText": "非表示", - "core.euiNotificationEventMeta.contextMenuButton": "{eventName}のメニュー", - "core.euiNotificationEventReadButton.markAsRead": "既読に設定", - "core.euiNotificationEventReadButton.markAsReadAria": "{eventName}を既読に設定", - "core.euiNotificationEventReadButton.markAsUnread": "未読に設定", - "core.euiNotificationEventReadButton.markAsUnreadAria": "{eventName}を未読に設定", - "core.euiNotificationEventReadIcon.read": "読み取り", - "core.euiNotificationEventReadIcon.readAria": "{eventName}は既読です", - "core.euiNotificationEventReadIcon.unread": "未読", - "core.euiNotificationEventReadIcon.unreadAria": "{eventName}は未読です", - "core.euiPagination.disabledNextPage": "次のページ", - "core.euiPagination.disabledPreviousPage": "前のページ", - "core.euiPagination.firstRangeAriaLabel": "ページ2を{lastPage}にスキップしています", - "core.euiPagination.lastRangeAriaLabel": "ページ{firstPage}を{lastPage}にスキップしています", - "core.euiPagination.nextPage": "次のページ、{page}", - "core.euiPagination.pageOfTotalCompressed": "{total}ページ中{page}ページ", - "core.euiPagination.previousPage": "前のページ、{page}", - "core.euiPaginationButton.longPageString": "{page}/{totalPages}ページ", - "core.euiPaginationButton.shortPageString": "{page}ページ", - "core.euiPinnableListGroup.pinExtraActionLabel": "項目をピン留め", - "core.euiPinnableListGroup.pinnedExtraActionLabel": "項目のピン留めを外す", - "core.euiPopover.screenReaderAnnouncement": "これはダイアログです。ダイアログを閉じるには、 escape を押してください。", - "core.euiProgress.valueText": "{value}%", - "core.euiQuickSelect.applyButton": "適用", - "core.euiQuickSelect.fullDescription": "現在 {timeTense} {timeValue} {timeUnit}に設定されています。", - "core.euiQuickSelect.legendText": "時間範囲をすばやく選択", - "core.euiQuickSelect.nextLabel": "次の時間ウィンドウ", - "core.euiQuickSelect.previousLabel": "前の時間ウィンドウ", - "core.euiQuickSelect.quickSelectTitle": "すばやく選択", - "core.euiQuickSelect.tenseLabel": "時間テンス", - "core.euiQuickSelect.unitLabel": "時間単位", - "core.euiQuickSelect.valueLabel": "時間値", - "core.euiRecentlyUsed.legend": "最近使用した日付範囲", - "core.euiRefreshInterval.fullDescription": "現在{optionValue} {optionText}に設定されている間隔を更新します。", - "core.euiRefreshInterval.legend": "以下の感覚ごとに更新", - "core.euiRefreshInterval.start": "開始", - "core.euiRefreshInterval.stop": "停止", - "core.euiRelativeTab.fullDescription": "単位は変更可能です。現在 {unit} に設定されています。", - "core.euiRelativeTab.numberInputError": "0以上でなければなりません", - "core.euiRelativeTab.numberInputLabel": "時間スパンの量", - "core.euiRelativeTab.relativeDate": "{position} 日付", - "core.euiRelativeTab.roundingLabel": "{unit} に四捨五入する", - "core.euiRelativeTab.unitInputLabel": "相対的時間スパン", - "core.euiResizableButton.horizontalResizerAriaLabel": "左右矢印キーを押してパネルサイズを調整します", - "core.euiResizableButton.verticalResizerAriaLabel": "上下矢印キーを押してパネルサイズを調整します", - "core.euiResizablePanel.toggleButtonAriaLabel": "押すと、このパネルを切り替えます", - "core.euiSaturation.ariaLabel": "HSVカラーモード彩度と値2軸スライダー", - "core.euiSaturation.screenReaderInstructions": "矢印キーで四角のカラーグラデーションを操作します。座標は、0~1の範囲のHSVカラーモード「彩度」および「値」数値を計算するために使用されます。左右キーで彩度を変更します。上下キーで値を変更します。", - "core.euiSelectable.loadingOptions": "オプションを読み込み中", - "core.euiSelectable.noAvailableOptions": "オプションがありません", - "core.euiSelectable.noMatchingOptions": "{searchValue} はどのオプションにも一致していません", - "core.euiSelectable.placeholderName": "フィルターオプション", - "core.euiSelectableListItem.excludedOption": "除外されたオプション。", - "core.euiSelectableListItem.excludedOptionInstructions": "このオプションの選択を解除するには、Enterを押します。", - "core.euiSelectableListItem.includedOption": "追加されたオプション。", - "core.euiSelectableListItem.includedOptionInstructions": "このオプションを除外するには、Enterを押します", - "core.euiSelectableTemplateSitewide.loadingResults": "結果を読み込み中", - "core.euiSelectableTemplateSitewide.noResults": "結果がありません", - "core.euiSelectableTemplateSitewide.onFocusBadgeGoTo": "移動:", - "core.euiSelectableTemplateSitewide.searchPlaceholder": "検索しています...", - "core.euiStat.loadingText": "統計を読み込み中です", - "core.euiStepStrings.complete": "ステップ{number}: {title}は完了しました", - "core.euiStepStrings.current": "現在のステップ{number}:{title}", - "core.euiStepStrings.disabled": "ステップ{number}: {title}は無効です", - "core.euiStepStrings.errors": "ステップ{number}: {title}にはエラーがあります", - "core.euiStepStrings.incomplete": "ステップ{number}: {title}は完了していません", - "core.euiStepStrings.loading": "ステップ{number}: {title}を読み込んでいます", - "core.euiStepStrings.simpleComplete": "ステップ{number}は完了しました", - "core.euiStepStrings.simpleCurrent": "現在のステップは{number}です", - "core.euiStepStrings.simpleDisabled": "ステップ{number}は無効です", - "core.euiStepStrings.simpleErrors": "ステップ{number}にはエラーがあります", - "core.euiStepStrings.simpleIncomplete": "ステップ{number}は完了していません", - "core.euiStepStrings.simpleLoading": "ステップ{number}を読み込んでいます", - "core.euiStepStrings.simpleStep": "ステップ{number}", - "core.euiStepStrings.simpleWarning": "ステップ{number}には警告があります", - "core.euiStepStrings.step": "ステップ{number}: {title}", - "core.euiStepStrings.warning": "ステップ{number}: {title}には警告があります", - "core.euiStyleSelector.buttonLegend": "データグリッドの表示密度を選択", - "core.euiStyleSelector.buttonText": "密度", - "core.euiStyleSelector.labelCompact": "コンパクト密度", - "core.euiStyleSelector.labelExpanded": "拡張密度", - "core.euiStyleSelector.labelNormal": "標準密度", - "core.euiSuperDatePicker.showDatesButtonLabel": "日付を表示", - "core.euiSuperSelect.screenReaderAnnouncement": "{optionsCount} 件のアイテムのフォームセレクターを使用しています。1 つのオプションを選択する必要があります。上下の矢印キーで移動するか、Escキーで閉じます。", - "core.euiSuperSelectControl.selectAnOption": "オプションの選択:{selectedValue} を選択済み", - "core.euiSuperUpdateButton.cannotUpdateTooltip": "アップデートできません", - "core.euiSuperUpdateButton.clickToApplyTooltip": "クリックして適用", - "core.euiSuperUpdateButton.refreshButtonLabel": "更新", - "core.euiSuperUpdateButton.updateButtonLabel": "更新", - "core.euiSuperUpdateButton.updatingButtonLabel": "更新中", - "core.euiTableHeaderCell.titleTextWithDesc": "{innerText}; {description}", - "core.euiTablePagination.rowsPerPage": "ページごとの行数", - "core.euiTablePagination.rowsPerPageOption": "{rowsPerPage}行", - "core.euiTableSortMobile.sorting": "並べ替え", - "core.euiToast.dismissToast": "トーストを閉じる", - "core.euiToast.newNotification": "新しい通知が表示されます", - "core.euiToast.notification": "通知", - "core.euiTourStep.closeTour": "ツアーを閉じる", - "core.euiTourStep.endTour": "ツアーを終了", - "core.euiTourStep.skipTour": "ツアーをスキップ", - "core.euiTourStepIndicator.ariaLabel": "ステップ{number} {status}", - "core.euiTourStepIndicator.isActive": "アクティブ", - "core.euiTourStepIndicator.isComplete": "完了", - "core.euiTourStepIndicator.isIncomplete": "未完了", - "core.euiTreeView.ariaLabel": "{nodeLabel} {ariaLabel} のチャイルド", - "core.euiTreeView.listNavigationInstructions": "矢印キーを使ってこのリストをすばやくナビゲートすることができます。", - "core.fatalErrors.clearYourSessionButtonLabel": "セッションを消去", - "core.fatalErrors.goBackButtonLabel": "戻る", - "core.fatalErrors.somethingWentWrongTitle": "問題が発生しました", - "core.fatalErrors.tryRefreshingPageDescription": "ページを更新してみてください。うまくいかない場合は、前のページに戻るか、セッションデータを消去してください。", - "core.notifications.errorToast.closeModal": "閉じる", - "core.notifications.globalToast.ariaLabel": "通知メッセージリスト", - "core.notifications.unableUpdateUISettingNotificationMessageTitle": "UI 設定を更新できません", - "core.status.greenTitle": "緑", - "core.status.redTitle": "赤", - "core.status.yellowTitle": "黄", - "core.statusPage.loadStatus.serverIsDownErrorMessage": "サーバーステータスのリクエストに失敗しました。サーバーがダウンしている可能性があります。", - "core.statusPage.loadStatus.serverStatusCodeErrorMessage": "サーバーステータスのリクエストに失敗しました。ステータスコード:{responseStatus}", - "core.statusPage.metricsTiles.columns.heapTotalHeader": "ヒープ合計", - "core.statusPage.metricsTiles.columns.heapUsedHeader": "使用ヒープ", - "core.statusPage.metricsTiles.columns.loadHeader": "読み込み", - "core.statusPage.metricsTiles.columns.requestsPerSecHeader": "1秒あたりのリクエスト", - "core.statusPage.metricsTiles.columns.resTimeAvgHeader": "平均応答時間", - "core.statusPage.metricsTiles.columns.resTimeMaxHeader": "最長応答時間", - "core.statusPage.serverStatus.statusTitle": "Kibanaのステータス:{kibanaStatus}", - "core.statusPage.statusApp.loadingErrorText": "ステータスの読み込み中にエラーが発生しました", - "core.statusPage.statusApp.statusActions.buildText": "ビルド{buildNum}", - "core.statusPage.statusApp.statusActions.commitText": "COMMIT {buildSha}", - "core.statusPage.statusApp.statusTitle": "プラグインステータス", - "core.statusPage.statusTable.columns.idHeader": "ID", - "core.statusPage.statusTable.columns.statusHeader": "ステータス", - "core.toasts.errorToast.seeFullError": "完全なエラーを表示", - "core.ui_settings.params.darkModeText": "Kibana UIのダークモードを有効にします。この設定を適用するにはページの更新が必要です。", - "core.ui_settings.params.darkModeTitle": "ダークモード", - "core.ui_settings.params.dateFormat.dayOfWeekText": "週の初めの曜日を設定します", - "core.ui_settings.params.dateFormat.dayOfWeekTitle": "曜日", - "core.ui_settings.params.dateFormat.optionsLinkText": "フォーマット", - "core.ui_settings.params.dateFormat.scaled.intervalsLinkText": "ISO8601間隔", - "core.ui_settings.params.dateFormat.scaledText": "時間ベースのデータが順番にレンダリングされ、フォーマットされたタイムスタンプが測定値の間隔に適応すべき状況で使用されるフォーマットを定義する値です。キーは{intervalsLink}です。", - "core.ui_settings.params.dateFormat.scaledTitle": "スケーリングされたデータフォーマットです", - "core.ui_settings.params.dateFormat.timezone.invalidValidationMessage": "無効なタイムゾーン:{timezone}", - "core.ui_settings.params.dateFormat.timezoneText": "使用されるタイムゾーンです。{defaultOption}ではご使用のブラウザーにより検知されたタイムゾーンが使用されます。", - "core.ui_settings.params.dateFormat.timezoneTitle": "データフォーマットのタイムゾーン", - "core.ui_settings.params.dateFormatText": "きちんとフォーマットされたデータを表示する際、この{formatLink}を使用します", - "core.ui_settings.params.dateFormatTitle": "データフォーマット", - "core.ui_settings.params.dateNanosFormatText": "Elasticsearchの{dateNanosLink}データタイプに使用されます", - "core.ui_settings.params.dateNanosFormatTitle": "ナノ秒フォーマットでの日付", - "core.ui_settings.params.dateNanosLinkTitle": "date_nanos", - "core.ui_settings.params.dayOfWeekText.invalidValidationMessage": "無効な曜日:{dayOfWeek}", - "core.ui_settings.params.defaultRoute.defaultRouteIsRelativeValidationMessage": "相対URLでなければなりません。", - "core.ui_settings.params.defaultRoute.defaultRouteText": "この設定は、Kibana起動時のデフォルトのルートを設定します。この設定で、Kibana起動時のランディングページを変更できます。ルートは相対URLでなければなりません。", - "core.ui_settings.params.defaultRoute.defaultRouteTitle": "デフォルトのルート", - "core.ui_settings.params.disableAnimationsText": "Kibana UIの不要なアニメーションをオフにします。変更を適用するにはページを更新してください。", - "core.ui_settings.params.disableAnimationsTitle": "アニメーションを無効にする", - "core.ui_settings.params.notifications.banner.markdownLinkText": "マークダウン対応", - "core.ui_settings.params.notifications.bannerLifetimeText": "バナー通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.bannerLifetimeTitle": "バナー通知時間", - "core.ui_settings.params.notifications.bannerText": "すべてのユーザーへの一時的な通知を目的としたカスタムバナーです。{markdownLink}", - "core.ui_settings.params.notifications.bannerTitle": "カスタムバナー通知", - "core.ui_settings.params.notifications.errorLifetimeText": "エラー通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.errorLifetimeTitle": "エラー通知時間", - "core.ui_settings.params.notifications.infoLifetimeText": "情報通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.infoLifetimeTitle": "情報通知時間", - "core.ui_settings.params.notifications.warningLifetimeText": "警告通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.warningLifetimeTitle": "警告通知時間", - "core.ui_settings.params.storeUrlText": "URLが長くなりすぎるためブラウザーが対応できない場合があります。セッションストレージにURLの一部を保存することでこの問題に対処できるかどうかをテストしています。結果を教えてください!", - "core.ui_settings.params.storeUrlTitle": "セッションストレージにURLを格納", - "core.ui_settings.params.themeVersionTitle": "テーマバージョン", - "core.ui.chrome.headerGlobalNav.goHomePageIconAriaLabel": "Elastic ホーム", - "core.ui.chrome.headerGlobalNav.helpMenuAskElasticTitle": "Elastic に確認する", - "core.ui.chrome.headerGlobalNav.helpMenuButtonAriaLabel": "ヘルプメニュー", - "core.ui.chrome.headerGlobalNav.helpMenuDocumentation": "ドキュメント", - "core.ui.chrome.headerGlobalNav.helpMenuGiveFeedbackOnApp": "{appName} についてのフィードバックを作成する", - "core.ui.chrome.headerGlobalNav.helpMenuGiveFeedbackTitle": "フィードバックを作成する", - "core.ui.chrome.headerGlobalNav.helpMenuKibanaDocumentationTitle": "Kibanaドキュメント", - "core.ui.chrome.headerGlobalNav.helpMenuOpenGitHubIssueTitle": "GitHubで問題を開く", - "core.ui.chrome.headerGlobalNav.helpMenuTitle": "ヘルプ", - "core.ui.chrome.headerGlobalNav.helpMenuVersion": "v {version}", - "core.ui.chrome.headerGlobalNav.logoAriaLabel": "Elastic ロゴ", - "core.ui.enterpriseSearchNavList.label": "エンタープライズサーチ", - "core.ui.errorUrlOverflow.bigUrlWarningNotificationMessage": "{advancedSettingsLink}で{storeInSessionStorageParam}オプションを有効にするか、オンスクリーンビジュアルを簡素化してください。", - "core.ui.errorUrlOverflow.bigUrlWarningNotificationMessage.advancedSettingsLinkText": "高度な設定", - "core.ui.errorUrlOverflow.bigUrlWarningNotificationTitle": "URLが大きく、Kibanaの動作が停止する可能性があります", - "core.ui.errorUrlOverflow.errorTitle": "このオブジェクトのURLは長すぎます。表示できません", - "core.ui.errorUrlOverflow.optionsToFixError.doNotUseIEText": "最新のブラウザーにアップグレードしてください。他の対応ブラウザーでは、いずれもこの制限がありません。", - "core.ui.errorUrlOverflow.optionsToFixError.enableOptionText": "{kibanaSettingsLink}で{storeInSessionStorageConfig}オプションを有効にしてください。", - "core.ui.errorUrlOverflow.optionsToFixError.enableOptionText.advancedSettingsLinkText": "高度な設定", - "core.ui.errorUrlOverflow.optionsToFixError.removeStuffFromDashboardText": "コンテンツまたはフィルターを削除すると、編集しているオブジェクトがシンプルになります。", - "core.ui.errorUrlOverflow.optionsToFixErrorDescription": "次を試してください。", - "core.ui.kibanaNavList.label": "分析", - "core.ui.legacyBrowserMessage": "この Elastic インストレーションは、現在ご使用のブラウザが満たしていない厳格なセキュリティ要件が有効になっています。", - "core.ui.legacyBrowserTitle": "ブラウザをアップグレードしてください", - "core.ui.loadingIndicatorAriaLabel": "コンテンツを読み込んでいます", - "core.ui.managementNavList.label": "管理", - "core.ui.observabilityNavList.label": "オブザーバビリティ", - "core.ui.overlays.banner.attentionTitle": "注意", - "core.ui.overlays.banner.closeButtonLabel": "閉じる", - "core.ui.primaryNav.pinnedLinksAriaLabel": "ピン留めされたリンク", - "core.ui.primaryNav.screenReaderLabel": "プライマリ", - "core.ui.primaryNav.toggleNavAriaLabel": "プライマリナビゲーションを切り替える", - "core.ui.primaryNavSection.screenReaderLabel": "プライマリナビゲーションリンク、{category}", - "core.ui.publicBaseUrlWarning.configMissingDescription": "{configKey}が見つかりません。本番環境を実行するときに構成してください。一部の機能が正常に動作しない場合があります。", - "core.ui.publicBaseUrlWarning.configMissingTitle": "構成がありません", - "core.ui.publicBaseUrlWarning.muteWarningButtonLabel": "ミュート警告", - "core.ui.publicBaseUrlWarning.seeDocumentationLinkLabel": "ドキュメントを参照してください。", - "core.ui.recentLinks.linkItem.screenReaderLabel": "{recentlyAccessedItemLinklabel}、タイプ:{pageType}", - "core.ui.recentlyViewed": "最近閲覧", - "core.ui.recentlyViewedAriaLabel": "最近閲覧したリンク", - "core.ui.securityNavList.label": "セキュリティ", - "core.ui.welcomeErrorMessage": "Elasticが正常に読み込まれませんでした。詳細はサーバーアウトプットを確認してください。", - "core.ui.welcomeMessage": "Elastic の読み込み中", - "dashboard.actions.DownloadCreateDrilldownAction.displayName": "CSV をダウンロード", - "dashboard.actions.downloadOptionsUnsavedFilename": "無題", - "dashboard.actions.toggleExpandPanelMenuItem.expandedDisplayName": "最小化", - "dashboard.actions.toggleExpandPanelMenuItem.notExpandedDisplayName": "パネルを最大化", - "dashboard.addPanel.noMatchingObjectsMessage": "一致するオブジェクトが見つかりませんでした。", - "dashboard.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} が追加されました", - "dashboard.appLeaveConfirmModal.cancelButtonLabel": "キャンセル", - "dashboard.appLeaveConfirmModal.unsavedChangesSubtitle": "作業を保存せずにダッシュボードから移動しますか?", - "dashboard.appLeaveConfirmModal.unsavedChangesTitle": "保存されていない変更", - "dashboard.badge.readOnly.text": "読み取り専用", - "dashboard.badge.readOnly.tooltip": "ダッシュボードを保存できません", - "dashboard.changeViewModeConfirmModal.cancelButtonLabel": "編集を続行", - "dashboard.changeViewModeConfirmModal.confirmButtonLabel": "変更を破棄", - "dashboard.changeViewModeConfirmModal.description": "表示モードに戻ったときに変更内容を保持または破棄できます。 破棄された変更を回復することはできません。", - "dashboard.changeViewModeConfirmModal.keepUnsavedChangesButtonLabel": "変更を保持", - "dashboard.changeViewModeConfirmModal.leaveEditModeTitle": "保存されていない変更があります", - "dashboard.cloneModal.cloneDashboardTitleAriaLabel": "クローンダッシュボードタイトル", - "dashboard.createConfirmModal.cancelButtonLabel": "キャンセル", - "dashboard.createConfirmModal.confirmButtonLabel": "やり直す", - "dashboard.createConfirmModal.continueButtonLabel": "編集を続行", - "dashboard.createConfirmModal.unsavedChangesSubtitle": "編集を続行するか、空のダッシュボードで始めることができます。", - "dashboard.createConfirmModal.unsavedChangesTitle": "新しいダッシュボードはすでに実行中です", - "dashboard.dashboardAppBreadcrumbsTitle": "ダッシュボード", - "dashboard.dashboardGrid.toast.unableToLoadDashboardDangerMessage": "ダッシュボードが読み込めません。", - "dashboard.dashboardPageTitle": "ダッシュボード", - "dashboard.dashboardWasNotSavedDangerMessage": "ダッシュボード「{dashTitle}」が保存されませんでした。エラー:{errorMessage}", - "dashboard.dashboardWasSavedSuccessMessage": "ダッシュボード「{dashTitle}」が保存されました。", - "dashboard.discardChangesConfirmModal.cancelButtonLabel": "キャンセル", - "dashboard.discardChangesConfirmModal.confirmButtonLabel": "変更を破棄", - "dashboard.discardChangesConfirmModal.discardChangesDescription": "変更を破棄すると、元に戻すことはできません。", - "dashboard.discardChangesConfirmModal.discardChangesTitle": "ダッシュボードへの変更を破棄しますか?", - "dashboard.editorMenu.aggBasedGroupTitle": "アグリゲーションに基づく", - "dashboard.embedUrlParamExtension.filterBar": "フィルターバー", - "dashboard.embedUrlParamExtension.include": "含める", - "dashboard.embedUrlParamExtension.query": "クエリ", - "dashboard.embedUrlParamExtension.timeFilter": "時間フィルター", - "dashboard.embedUrlParamExtension.topMenu": "トップメニュー", - "dashboard.emptyDashboardAdditionalPrivilege": "このダッシュボードを編集するには、追加権限が必要です。", - "dashboard.emptyDashboardTitle": "このダッシュボードは空です。", - "dashboard.emptyWidget.addPanelDescription": "データに関するストーリーを伝えるコンテンツを作成します。", - "dashboard.emptyWidget.addPanelTitle": "最初のビジュアライゼーションを追加", - "dashboard.factory.displayName": "ダッシュボード", - "dashboard.featureCatalogue.dashboardDescription": "ビジュアライゼーションと保存された検索のコレクションの表示と共有を行います。", - "dashboard.featureCatalogue.dashboardSubtitle": "ダッシュボードでデータを分析します。", - "dashboard.featureCatalogue.dashboardTitle": "ダッシュボード", - "dashboard.fillDashboardTitle": "このダッシュボードは空です。コンテンツを追加しましょう!", - "dashboard.helpMenu.appName": "ダッシュボード", - "dashboard.howToStartWorkingOnNewDashboardDescription": "上のメニューバーで[編集]をクリックすると、パネルの追加を開始します。", - "dashboard.howToStartWorkingOnNewDashboardEditLinkAriaLabel": "ダッシュボードを編集", - "dashboard.labs.enableLabsDescription": "このフラグはビューアーで[ラボ]ボタンを使用できるかどうかを決定します。ダッシュボードで実験的機能を有効および無効にするための簡単な方法です。", - "dashboard.labs.enableUI": "ダッシュボードで[ラボ]ボタンを有効にする", - "dashboard.listing.createNewDashboard.combineDataViewFromKibanaAppDescription": "あらゆるKibanaアプリからダッシュボードにデータビューを組み合わせて、すべてを1か所に表示できます。", - "dashboard.listing.createNewDashboard.createButtonLabel": "新規ダッシュボードを作成", - "dashboard.listing.createNewDashboard.newToKibanaDescription": "Kibanaは初心者ですか?{sampleDataInstallLink}してお試しください。", - "dashboard.listing.createNewDashboard.sampleDataInstallLinkText": "サンプルデータをインストール", - "dashboard.listing.createNewDashboard.title": "初めてのダッシュボードを作成してみましょう。", - "dashboard.listing.readonlyNoItemsBody": "使用可能なダッシュボードはありません。権限を変更してこのスペースにダッシュボードを表示するには、管理者に問い合わせてください。", - "dashboard.listing.readonlyNoItemsTitle": "表示するダッシュボードがありません", - "dashboard.listing.table.descriptionColumnName": "説明", - "dashboard.listing.table.entityName": "ダッシュボード", - "dashboard.listing.table.entityNamePlural": "ダッシュボード", - "dashboard.listing.table.titleColumnName": "タイトル", - "dashboard.listing.unsaved.discardAria": "{title}への変更を破棄", - "dashboard.listing.unsaved.discardTitle": "変更を破棄", - "dashboard.listing.unsaved.editAria": "{title}の編集を続行", - "dashboard.listing.unsaved.editTitle": "編集を続行", - "dashboard.listing.unsaved.loading": "読み込み中", - "dashboard.listing.unsaved.unsavedChangesTitle": "次の{dash}には保存されていない変更があります。", - "dashboard.migratedChanges": "一部のパネルは正常に最新バージョンに更新されました。", - "dashboard.noMatchRoute.bannerText": "ダッシュボードアプリケーションはこのルート{route}を認識できません。", - "dashboard.noMatchRoute.bannerTitleText": "ページが見つかりません", - "dashboard.panel.AddToLibrary": "ライブラリに保存", - "dashboard.panel.addToLibrary.successMessage": "パネル {panelTitle} は Visualize ライブラリに追加されました", - "dashboard.panel.clonedToast": "クローンパネル", - "dashboard.panel.clonePanel": "パネルのクローン", - "dashboard.panel.copyToDashboard.cancel": "キャンセル", - "dashboard.panel.copyToDashboard.description": "パネルのコピー先を選択します。コピー先のダッシュボードに移動します。", - "dashboard.panel.copyToDashboard.existingDashboardOptionLabel": "既存のダッシュボード", - "dashboard.panel.copyToDashboard.goToDashboard": "コピーしてダッシュボードを開く", - "dashboard.panel.copyToDashboard.newDashboardOptionLabel": "新規ダッシュボード", - "dashboard.panel.copyToDashboard.title": "ダッシュボードにコピー", - "dashboard.panel.invalidData": "URL の無効なデータ", - "dashboard.panel.LibraryNotification": "Visualize ライブラリ通知", - "dashboard.panel.libraryNotification.ariaLabel": "ライブラリ情報を表示し、このパネルのリンクを解除します", - "dashboard.panel.libraryNotification.toolTip": "このパネルを編集すると、他のダッシュボードに影響する場合があります。このパネルのみを変更するには、ライブラリからリンクを解除します。", - "dashboard.panel.removePanel.replacePanel": "パネルの交換", - "dashboard.panel.title.clonedTag": "コピー", - "dashboard.panel.unableToMigratePanelDataForSixOneZeroErrorMessage": "「6.1.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルには想定された列または行フィールドがありません", - "dashboard.panel.unableToMigratePanelDataForSixThreeZeroErrorMessage": "「6.3.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルに必要なフィールドがありません:{key}", - "dashboard.panel.unlinkFromLibrary": "ライブラリからのリンクを解除", - "dashboard.panel.unlinkFromLibrary.successMessage": "パネル {panelTitle} は Visualize ライブラリに接続されていません", - "dashboard.panelStorageError.clearError": "保存されていない変更の消去中にエラーが発生しました。{message}", - "dashboard.panelStorageError.getError": "保存されていない変更の取得中にエラーが発生しました。{message}", - "dashboard.panelStorageError.setError": "保存されていない変更の設定中にエラーが発生しました。{message}", - "dashboard.placeholder.factory.displayName": "プレースホルダー", - "dashboard.savedDashboard.newDashboardTitle": "新規ダッシュボード", - "dashboard.solutionToolbar.addPanelButtonLabel": "ビジュアライゼーションを作成", - "dashboard.solutionToolbar.editorMenuButtonLabel": "すべてのタイプ", - "dashboard.strings.dashboardEditTitle": "{title}を編集中", - "dashboard.topNav.cloneModal.cancelButtonLabel": "キャンセル", - "dashboard.topNav.cloneModal.cloneDashboardModalHeaderTitle": "ダッシュボードのクローンを作成", - "dashboard.topNav.cloneModal.confirmButtonLabel": "クローンの確認", - "dashboard.topNav.cloneModal.confirmCloneDescription": "クローンの確認", - "dashboard.topNav.cloneModal.dashboardExistsDescription": "{confirmClone}をクリックして重複タイトルでダッシュボードのクローンを作成します。", - "dashboard.topNav.cloneModal.dashboardExistsTitle": "「{newDashboardName}」というタイトルのダッシュボードがすでに存在します。", - "dashboard.topNav.cloneModal.enterNewNameForDashboardDescription": "ダッシュボードの新しい名前を入力してください。", - "dashboard.topNav.labsButtonAriaLabel": "ラボ", - "dashboard.topNav.labsConfigDescription": "ラボ", - "dashboard.topNav.options.hideAllPanelTitlesSwitchLabel": "パネルタイトルを表示", - "dashboard.topNav.options.syncColorsBetweenPanelsSwitchLabel": "パネル全体でカラーパレットを同期", - "dashboard.topNav.options.useMarginsBetweenPanelsSwitchLabel": "パネルの間に余白を使用", - "dashboard.topNav.saveModal.descriptionFormRowLabel": "説明", - "dashboard.topNav.saveModal.objectType": "ダッシュボード", - "dashboard.topNav.saveModal.storeTimeWithDashboardFormRowHelpText": "有効化すると、ダッシュボードが読み込まれるごとに現在選択された時刻の時間フィルターが変更されます。", - "dashboard.topNav.saveModal.storeTimeWithDashboardFormRowLabel": "ダッシュボードに時刻を保存", - "dashboard.topNav.showCloneModal.dashboardCopyTitle": "{title}のコピー", - "dashboard.topNave.cancelButtonAriaLabel": "表示モードに切り替える", - "dashboard.topNave.cloneButtonAriaLabel": "クローンを作成", - "dashboard.topNave.cloneConfigDescription": "ダッシュボードのコピーを作成します", - "dashboard.topNave.editButtonAriaLabel": "編集", - "dashboard.topNave.editConfigDescription": "編集モードに切り替えます", - "dashboard.topNave.fullScreenButtonAriaLabel": "全画面", - "dashboard.topNave.fullScreenConfigDescription": "全画面モード", - "dashboard.topNave.optionsButtonAriaLabel": "オプション", - "dashboard.topNave.optionsConfigDescription": "オプション", - "dashboard.topNave.saveAsButtonAriaLabel": "名前を付けて保存", - "dashboard.topNave.saveAsConfigDescription": "新しいダッシュボードとして保存", - "dashboard.topNave.saveButtonAriaLabel": "保存", - "dashboard.topNave.saveConfigDescription": "プロンプトを表示せずにダッシュボードをクイック保存", - "dashboard.topNave.shareButtonAriaLabel": "共有", - "dashboard.topNave.shareConfigDescription": "ダッシュボードを共有します", - "dashboard.topNave.viewConfigDescription": "表示専用モードに切り替え", - "dashboard.unsavedChangesBadge": "保存されていない変更", - "dashboard.urlWasRemovedInSixZeroWarningMessage": "URL「dashboard/create」は6.0で廃止されました。ブックマークを更新してください。", - "data.advancedSettings.autocompleteIgnoreTimerange": "時間範囲を使用", - "data.advancedSettings.autocompleteIgnoreTimerangeText": "このプロパティを無効にすると、現在の時間範囲からではなく、データセットからオートコンプリートの候補を取得します。{learnMoreLink}", - "data.advancedSettings.autocompleteValueSuggestionMethod": "自動入力値候補の提案方法", - "data.advancedSettings.autocompleteValueSuggestionMethodLearnMoreLink": "詳細情報", - "data.advancedSettings.autocompleteValueSuggestionMethodLink": "詳細情報", - "data.advancedSettings.autocompleteValueSuggestionMethodText": "KQL自動入力で値の候補をクエリするために使用される方法。terms_enumを選択すると、Elasticsearch用語enum APIを使用して、自動入力候補のパフォーマンスを改善します。terms_aggを選択すると、Elasticsearch用語アグリゲーションを使用します。{learnMoreLink}", - "data.advancedSettings.courier.customRequestPreference.requestPreferenceLinkText": "リクエスト設定", - "data.advancedSettings.courier.customRequestPreferenceText": "{setRequestReferenceSetting} が {customSettingValue} に設定されている時に使用される {requestPreferenceLink} です。", - "data.advancedSettings.courier.customRequestPreferenceTitle": "カスタムリクエスト設定", - "data.advancedSettings.courier.ignoreFilterText": "この構成は、似ていないインデックスにアクセスするビジュアライゼーションを含むダッシュボードのサポートを強化します。無効にすると、すべてのフィルターがすべてのビジュアライゼーションに適用されます。有効にすると、ビジュアライゼーションのインデックスにフィルター対象のフィールドが含まれていない場合、ビジュアライゼーションの際にフィルターが無視されます。", - "data.advancedSettings.courier.ignoreFilterTitle": "フィルターの無視", - "data.advancedSettings.courier.maxRequestsText": "Kibanaから送信された_msearchリクエストに使用される{maxRequestsLink}設定を管理します。この構成を無効にしてElasticsearchのデフォルトを使用するには、0に設定します。", - "data.advancedSettings.courier.maxRequestsTitle": "最大同時シャードリクエスト", - "data.advancedSettings.courier.requestPreferenceCustom": "カスタム", - "data.advancedSettings.courier.requestPreferenceNone": "なし", - "data.advancedSettings.courier.requestPreferenceSessionId": "セッションID", - "data.advancedSettings.courier.requestPreferenceText": "どのシャードが検索リクエストを扱うかを設定できます。
    \n
  • {sessionId}:同じシャードのすべての検索リクエストを実行するため、オペレーションを制限します。\n これにはリクエスト間でシャードのキャッシュを共有できるというメリットがあります。
  • \n
  • {custom}:独自の設定が可能になります。\n 'courier:customRequestPreference'で設定値をカスタマイズします。
  • \n
  • {none}:設定されていないことを意味します。\n これにより、リクエストが全シャードコピー間に分散されるため、パフォーマンスが改善される可能性があります。\n ただし、シャードによって更新ステータスが異なる場合があるため、結果に矛盾が生じる可能性があります。
  • \n
", - "data.advancedSettings.courier.requestPreferenceTitle": "リクエスト設定", - "data.advancedSettings.defaultIndexText": "インデックスが設定されていない時にアクセスするインデックスです", - "data.advancedSettings.defaultIndexTitle": "デフォルトのインデックス", - "data.advancedSettings.docTableHighlightText": "Discover と保存された検索ダッシュボードの結果をハイライトします。ハイライトすることで、大きなドキュメントを扱う際にリクエストが遅くなります。", - "data.advancedSettings.docTableHighlightTitle": "結果をハイライト", - "data.advancedSettings.histogram.barTargetText": "日付ヒストグラムで「自動」間隔を使用する際、この数に近いバケットの作成を試みます", - "data.advancedSettings.histogram.barTargetTitle": "目標バケット数", - "data.advancedSettings.histogram.maxBarsText": "Kibana全体で日付の密度とヒストグラム数を制限し、\n テストクエリを使用するときのパフォーマンスを向上させます。テストクエリのバケットが多すぎる場合は、\n バケットの間隔が増えます。この設定は個別に\n 各ヒストグラムアグリゲーションに適用されます。他の種類のアグリゲーションには適用されません。\n この設定の最大値を求めるには、Elasticsearch「search.max_buckets」\n 値を各ビジュアライゼーションのアグリゲーションの最大数で除算します。", - "data.advancedSettings.histogram.maxBarsTitle": "バケットの最大数", - "data.advancedSettings.historyLimitText": "履歴があるフィールド(例:クエリインプット)に個の数の最近の値が表示されます", - "data.advancedSettings.historyLimitTitle": "履歴制限数", - "data.advancedSettings.metaFieldsText": "_source の外にあり、ドキュメントが表示される時に融合されるフィールドです", - "data.advancedSettings.metaFieldsTitle": "メタフィールド", - "data.advancedSettings.pinFiltersText": "フィルターがデフォルトでグローバル(ピン付けされた状態)になるかの設定です", - "data.advancedSettings.pinFiltersTitle": "フィルターをデフォルトでピン付けする", - "data.advancedSettings.query.allowWildcardsText": "設定すると、クエリ句の頭に*が使えるようになります。現在クエリバーで実験的クエリ機能が有効になっている場合にのみ適用されます。基本的なLuceneクエリでリーディングワイルドカードを無効にするには、{queryStringOptionsPattern}を使用します。", - "data.advancedSettings.query.allowWildcardsTitle": "クエリでリーディングワイルドカードを許可する", - "data.advancedSettings.query.queryStringOptions.optionsLinkText": "オプション", - "data.advancedSettings.query.queryStringOptionsText": "Luceneクエリ文字列パーサーの{optionsLink}。「{queryLanguage}」が{luceneLanguage}に設定されているときにのみ使用されます。", - "data.advancedSettings.query.queryStringOptionsTitle": "クエリ文字列のオプション", - "data.advancedSettings.searchQueryLanguageKql": "KQL", - "data.advancedSettings.searchQueryLanguageLucene": "Lucene", - "data.advancedSettings.searchQueryLanguageText": "クエリ言語はクエリバーで使用されます。KQLはKibana用に特別に開発された新しい言語です。", - "data.advancedSettings.searchQueryLanguageTitle": "クエリ言語", - "data.advancedSettings.searchTimeout": "検索タイムアウト", - "data.advancedSettings.searchTimeoutDesc": "検索セッションの最大タイムアウトを変更するか、0 に設定してタイムアウトを無効にすると、クエリは完了するまで実行されます。", - "data.advancedSettings.sortOptions.optionsLinkText": "オプション", - "data.advancedSettings.sortOptionsText": "Elasticsearch の並べ替えパラメーターの {optionsLink}", - "data.advancedSettings.sortOptionsTitle": "並べ替えオプション", - "data.advancedSettings.suggestFilterValuesText": "フィルターエディターがフィールドの値の候補を表示しないようにするには、このプロパティをfalseにしてください。", - "data.advancedSettings.suggestFilterValuesTitle": "フィルターエディターの候補値", - "data.advancedSettings.timepicker.last15Minutes": "過去15分間", - "data.advancedSettings.timepicker.last1Hour": "過去1時間", - "data.advancedSettings.timepicker.last1Year": "過去1年間", - "data.advancedSettings.timepicker.last24Hours": "過去 24 時間", - "data.advancedSettings.timepicker.last30Days": "過去30日間", - "data.advancedSettings.timepicker.last30Minutes": "過去30分間", - "data.advancedSettings.timepicker.last7Days": "過去7日間", - "data.advancedSettings.timepicker.last90Days": "過去90日間", - "data.advancedSettings.timepicker.quickRanges.acceptedFormatsLinkText": "対応フォーマット", - "data.advancedSettings.timepicker.quickRangesText": "時間フィルターのクイックセクションに表示される範囲のリストです。それぞれのオブジェクトに「開始」、「終了」({acceptedFormatsLink}を参照)、「表示」(表示するタイトル)が含まれるオブジェクトの配列です。", - "data.advancedSettings.timepicker.quickRangesTitle": "タイムピッカーのクイック範囲", - "data.advancedSettings.timepicker.refreshIntervalDefaultsText": "時間フィルターのデフォルト更新間隔「値」はミリ秒で指定する必要があります。", - "data.advancedSettings.timepicker.refreshIntervalDefaultsTitle": "タイムピッカーの更新間隔", - "data.advancedSettings.timepicker.thisWeek": "今週", - "data.advancedSettings.timepicker.timeDefaultsText": "時間フィルターが選択されずにKibanaが起動した際に使用される時間フィルターです", - "data.advancedSettings.timepicker.timeDefaultsTitle": "デフォルトのタイムピッカー", - "data.advancedSettings.timepicker.today": "今日", - "data.aggTypes.buckets.ranges.rangesFormatMessage": "{gte} {from} と {lt} {to}", - "data.aggTypes.buckets.ranges.rangesFormatMessageArrowRight": "{from} → {to}", - "data.errors.fetchError": "ネットワークとプロキシ構成を確認してください。問題が解決しない場合は、ネットワーク管理者に問い合わせてください。", - "data.filter.applyFilterActionTitle": "現在のビューにフィルターを適用", - "data.filter.applyFilters.popupHeader": "適用するフィルターの選択", - "data.filter.applyFiltersPopup.cancelButtonLabel": "キャンセル", - "data.filter.applyFiltersPopup.saveButtonLabel": "適用", - "data.filter.filterBar.addFilterButtonLabel": "フィルターを追加します", - "data.filter.filterBar.deleteFilterButtonLabel": "削除", - "data.filter.filterBar.disabledFilterPrefix": "無効", - "data.filter.filterBar.disableFilterButtonLabel": "一時的に無効にする", - "data.filter.filterBar.editFilterButtonLabel": "フィルターを編集", - "data.filter.filterBar.enableFilterButtonLabel": "再度有効にする", - "data.filter.filterBar.excludeFilterButtonLabel": "結果を除外", - "data.filter.filterBar.fieldNotFound": "インデックスパターン {indexPattern} にフィールド {key} がありません", - "data.filter.filterBar.filterItemBadgeAriaLabel": "フィルターアクション", - "data.filter.filterBar.filterItemBadgeIconAriaLabel": "{filter}を削除", - "data.filter.filterBar.includeFilterButtonLabel": "結果を含める", - "data.filter.filterBar.indexPatternSelectPlaceholder": "インデックスパターンの選択", - "data.filter.filterBar.labelErrorInfo": "インデックスパターン{indexPattern}が見つかりません", - "data.filter.filterBar.labelErrorText": "エラー", - "data.filter.filterBar.labelWarningInfo": "フィールド{fieldName}は現在のビューに存在しません", - "data.filter.filterBar.labelWarningText": "警告", - "data.filter.filterBar.moreFilterActionsMessage": "フィルター:{innerText}。他のフィルターアクションを使用するには選択してください。", - "data.filter.filterBar.negatedFilterPrefix": "NOT ", - "data.filter.filterBar.pinFilterButtonLabel": "すべてのアプリにピン付け", - "data.filter.filterBar.pinnedFilterPrefix": "ピン付け済み", - "data.filter.filterBar.unpinFilterButtonLabel": "ピンを外す", - "data.filter.filterEditor.cancelButtonLabel": "キャンセル", - "data.filter.filterEditor.createCustomLabelInputLabel": "カスタムラベル", - "data.filter.filterEditor.createCustomLabelSwitchLabel": "カスタムラベルを作成しますか?", - "data.filter.filterEditor.doesNotExistOperatorOptionLabel": "存在しない", - "data.filter.filterEditor.editFilterPopupTitle": "フィルターを編集", - "data.filter.filterEditor.editFilterValuesButtonLabel": "フィルター値を編集", - "data.filter.filterEditor.editQueryDslButtonLabel": "クエリ DSL として編集", - "data.filter.filterEditor.existsOperatorOptionLabel": "存在する", - "data.filter.filterEditor.falseOptionLabel": "false", - "data.filter.filterEditor.fieldSelectLabel": "フィールド", - "data.filter.filterEditor.fieldSelectPlaceholder": "フィールドを選択", - "data.filter.filterEditor.indexPatternSelectLabel": "インデックスパターン", - "data.filter.filterEditor.isBetweenOperatorOptionLabel": "is between", - "data.filter.filterEditor.isNotBetweenOperatorOptionLabel": "is not between", - "data.filter.filterEditor.isNotOneOfOperatorOptionLabel": "is not one of", - "data.filter.filterEditor.isNotOperatorOptionLabel": "is not", - "data.filter.filterEditor.isOneOfOperatorOptionLabel": "is one of", - "data.filter.filterEditor.isOperatorOptionLabel": "is", - "data.filter.filterEditor.operatorSelectLabel": "演算子", - "data.filter.filterEditor.operatorSelectPlaceholderSelect": "選択してください", - "data.filter.filterEditor.operatorSelectPlaceholderWaiting": "待機中", - "data.filter.filterEditor.queryDslLabel": "Elasticsearch クエリ DSL", - "data.filter.filterEditor.rangeEndInputPlaceholder": "範囲の終了値", - "data.filter.filterEditor.rangeInputLabel": "範囲", - "data.filter.filterEditor.rangeStartInputPlaceholder": "範囲の開始値", - "data.filter.filterEditor.saveButtonLabel": "保存", - "data.filter.filterEditor.trueOptionLabel": "true", - "data.filter.filterEditor.valueInputLabel": "値", - "data.filter.filterEditor.valueInputPlaceholder": "値を入力", - "data.filter.filterEditor.valueSelectPlaceholder": "値を選択", - "data.filter.filterEditor.valuesSelectLabel": "値", - "data.filter.filterEditor.valuesSelectPlaceholder": "値を選択", - "data.filter.options.changeAllFiltersButtonLabel": "すべてのフィルターの変更", - "data.filter.options.deleteAllFiltersButtonLabel": "すべて削除", - "data.filter.options.disableAllFiltersButtonLabel": "すべて無効にする", - "data.filter.options.enableAllFiltersButtonLabel": "すべて有効にする", - "data.filter.options.invertDisabledFiltersButtonLabel": "有効・無効を反転", - "data.filter.options.invertNegatedFiltersButtonLabel": "含める・除外を反転", - "data.filter.options.pinAllFiltersButtonLabel": "すべてピン付け", - "data.filter.options.unpinAllFiltersButtonLabel": "すべてのピンを外す", - "data.filter.searchBar.changeAllFiltersTitle": "すべてのフィルターの変更", - "data.functions.esaggs.help": "AggConfig 集約を実行します", - "data.functions.esaggs.inspector.dataRequest.description": "このリクエストはElasticsearchにクエリし、ビジュアライゼーション用のデータを取得します。", - "data.functions.esaggs.inspector.dataRequest.title": "データ", - "data.inspector.table..dataDescriptionTooltip": "ビジュアライゼーションの元のデータを表示", - "data.inspector.table.dataTitle": "データ", - "data.inspector.table.downloadCSVToggleButtonLabel": "CSV をダウンロード", - "data.inspector.table.downloadOptionsUnsavedFilename": "未保存", - "data.inspector.table.exportButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", - "data.inspector.table.filterForValueButtonAriaLabel": "値でフィルター", - "data.inspector.table.filterForValueButtonTooltip": "値でフィルター", - "data.inspector.table.filterOutValueButtonAriaLabel": "値を除外", - "data.inspector.table.filterOutValueButtonTooltip": "値を除外", - "data.inspector.table.formattedCSVButtonLabel": "フォーマット済み CSV", - "data.inspector.table.formattedCSVButtonTooltip": "データを表形式でダウンロード", - "data.inspector.table.noDataAvailableDescription": "エレメントがデータを提供しませんでした。", - "data.inspector.table.noDataAvailableTitle": "利用可能なデータがありません", - "data.inspector.table.rawCSVButtonLabel": "CSV", - "data.inspector.table.rawCSVButtonTooltip": "日付をタイムスタンプとしてなど、提供されたデータをそのままダウンロードします", - "data.inspector.table.tableLabel": "テーブル{index}", - "data.inspector.table.tableSelectorLabel": "選択済み:", - "data.kueryAutocomplete.andOperatorDescription": "{bothArguments} が true であることを条件とする", - "data.kueryAutocomplete.andOperatorDescription.bothArgumentsText": "両方の引数", - "data.kueryAutocomplete.equalOperatorDescription": "一部の値に{equals}", - "data.kueryAutocomplete.equalOperatorDescription.equalsText": "一致する", - "data.kueryAutocomplete.existOperatorDescription": "いずれかの形式中に{exists}", - "data.kueryAutocomplete.existOperatorDescription.existsText": "存在する", - "data.kueryAutocomplete.filterResultsDescription": "{fieldName}を含む結果をフィルタリング", - "data.kueryAutocomplete.greaterThanOperatorDescription": "が一部の値{greaterThan}", - "data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText": "より大きい", - "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription": "が一部の値{greaterThanOrEqualTo}", - "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription.greaterThanOrEqualToText": "よりも大きいまたは等しい", - "data.kueryAutocomplete.lessThanOperatorDescription": "が一部の値{lessThan}", - "data.kueryAutocomplete.lessThanOperatorDescription.lessThanText": "より小さい", - "data.kueryAutocomplete.lessThanOrEqualOperatorDescription": "が一部の値{lessThanOrEqualTo}", - "data.kueryAutocomplete.lessThanOrEqualOperatorDescription.lessThanOrEqualToText": "より小さいまたは等しい", - "data.kueryAutocomplete.orOperatorDescription": "{oneOrMoreArguments} が true であることを条件とする", - "data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText": "1つ以上の引数", - "data.noDataPopover.content": "この時間範囲にはデータが含まれていません。表示するフィールドを増やし、グラフを作成するには、時間範囲を広げるか、調整してください。", - "data.noDataPopover.dismissAction": "今後表示しない", - "data.noDataPopover.subtitle": "ヒント", - "data.noDataPopover.title": "空のデータセット", - "data.painlessError.buttonTxt": "スクリプトを編集", - "data.painlessError.painlessScriptedFieldErrorMessage": "インデックスパターン{indexPatternName}でのランタイムフィールドまたはスクリプトフィールドの実行エラー", - "data.parseEsInterval.invalidEsCalendarIntervalErrorMessage": "無効なカレンダー間隔:{interval}、1よりも大きな値が必要です", - "data.parseEsInterval.invalidEsIntervalFormatErrorMessage": "無効な間隔形式:{interval}", - "data.query.queryBar.clearInputLabel": "インプットを消去", - "data.query.queryBar.comboboxAriaLabel": "{pageType} ページの検索とフィルタリング", - "data.query.queryBar.kqlFullLanguageName": "Kibana クエリ言語", - "data.query.queryBar.kqlLanguageName": "KQL", - "data.query.queryBar.KQLNestedQuerySyntaxInfoDocLinkText": "ドキュメント", - "data.query.queryBar.KQLNestedQuerySyntaxInfoOptOutText": "今後表示しない", - "data.query.queryBar.KQLNestedQuerySyntaxInfoText": "ネストされたフィールドをクエリされているようです。ネストされたクエリに対しては、ご希望の結果により異なる方法で KQL 構文を構築することができます。詳細については、{link}をご覧ください。", - "data.query.queryBar.KQLNestedQuerySyntaxInfoTitle": "KQL ネストされたクエリ構文", - "data.query.queryBar.kqlOffLabel": "オフ", - "data.query.queryBar.kqlOnLabel": "オン", - "data.query.queryBar.languageSwitcher.toText": "検索用にKibana Query Languageに切り替える", - "data.query.queryBar.luceneLanguageName": "Lucene", - "data.query.queryBar.searchInputAriaLabel": "{pageType} ページの検索とフィルタリングを行うには入力を開始してください", - "data.query.queryBar.searchInputPlaceholder": "検索", - "data.query.queryBar.syntaxOptionsDescription": "{docsLink}(KQL)は、シンプルなクエリ構文とスクリプトフィールドのサポートを提供します。KQLにはオートコンプリート機能もあります。KQLをオフにする場合は、{nonKqlModeHelpText}", - "data.query.queryBar.syntaxOptionsDescription.nonKqlModeHelpText": "KibanaはLuceneを使用します。", - "data.query.queryBar.syntaxOptionsTitle": "構文オプション", - "data.search.aggs.aggGroups.bucketsText": "バケット", - "data.search.aggs.aggGroups.metricsText": "メトリック", - "data.search.aggs.aggGroups.noneText": "なし", - "data.search.aggs.aggTypesLabel": "{fieldName} の範囲", - "data.search.aggs.buckets.dateHistogram.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.dateHistogram.dropPartials.help": "このアグリゲーションでdrop_partialsを使用するかどうかを指定します", - "data.search.aggs.buckets.dateHistogram.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.dateHistogram.extendedBounds.help": "extended_bounds設定を使用すると、強制的にヒストグラムアグリゲーションを実行し、特定の最小値に対してバケットの作成を開始し、最大値までバケットを作成し続けます。 ", - "data.search.aggs.buckets.dateHistogram.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.dateHistogram.format.help": "このアグリゲーションで使用するフォーマット", - "data.search.aggs.buckets.dateHistogram.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.dateHistogram.interval.help": "このアグリゲーションで使用する間隔", - "data.search.aggs.buckets.dateHistogram.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.dateHistogram.minDocCount.help": "このアグリゲーションで使用する最小ドキュメントカウント", - "data.search.aggs.buckets.dateHistogram.scaleMetricValues.help": "このアグリゲーションでscaleMetricValuesを使用するかどうかを指定します", - "data.search.aggs.buckets.dateHistogram.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.dateHistogram.timeRange.help": "このアグリゲーションで使用する時間範囲", - "data.search.aggs.buckets.dateHistogram.timeZone.help": "このアグリゲーションで使用するタイムゾーン", - "data.search.aggs.buckets.dateHistogram.useNormalizedEsInterval.help": "このアグリゲーションでuseNormalizedEsIntervalを使用するかどうかを指定します", - "data.search.aggs.buckets.dateHistogramLabel": "{intervalDescription} ごとの {fieldName}", - "data.search.aggs.buckets.dateHistogramTitle": "日付ヒストグラム", - "data.search.aggs.buckets.dateRange.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.dateRange.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.dateRange.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.dateRange.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.dateRange.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.dateRange.ranges.help": "このアグリゲーションで使用する範囲。", - "data.search.aggs.buckets.dateRange.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.dateRange.timeZone.help": "このアグリゲーションで使用するタイムゾーン。", - "data.search.aggs.buckets.dateRangeTitle": "日付範囲", - "data.search.aggs.buckets.filter.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.filter.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.filter.filter.help": "KQLまたはLuceneクエリに基づいて結果をフィルタリングします。geo_bounding_boxと一緒に使用しないでください", - "data.search.aggs.buckets.filter.geoBoundingBox.help": "バウンディングボックス内の点の位置に基づいて結果をフィルタリングします", - "data.search.aggs.buckets.filter.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.filter.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.filter.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.filters.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.filters.filters.help": "このアグリゲーションで使用するフィルター", - "data.search.aggs.buckets.filters.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.filters.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.filters.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.filtersTitle": "フィルター", - "data.search.aggs.buckets.filterTitle": "フィルター", - "data.search.aggs.buckets.geoHash.autoPrecision.help": "このアグリゲーションで自動精度を使用するかどうかを指定します", - "data.search.aggs.buckets.geoHash.boundingBox.help": "バウンディングボックス内の点の位置に基づいて結果をフィルタリングします", - "data.search.aggs.buckets.geoHash.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.geoHash.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.geoHash.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.geoHash.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.geoHash.isFilteredByCollar.help": "カラーでフィルタリングするかどうかを指定します", - "data.search.aggs.buckets.geoHash.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.geoHash.precision.help": "このアグリゲーションで使用する精度。", - "data.search.aggs.buckets.geoHash.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.geoHash.useGeocentroid.help": "このアグリゲーションでgeocentroid使用するかどうかを指定します", - "data.search.aggs.buckets.geohashGridTitle": "ジオハッシュ", - "data.search.aggs.buckets.geoTile.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.geoTile.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.geoTile.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.geoTile.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.geoTile.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.geoTile.precision.help": "このアグリゲーションで使用する精度。", - "data.search.aggs.buckets.geoTile.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.geoTile.useGeocentroid.help": "このアグリゲーションでgeocentroid使用するかどうかを指定します", - "data.search.aggs.buckets.geotileGridTitle": "ジオタイル", - "data.search.aggs.buckets.histogram.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.histogram.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.histogram.extendedBounds.help": "extended_bounds設定を使用すると、強制的にヒストグラムアグリゲーションを実行し、特定の最小値に対してバケットの作成を開始し、最大値までバケットを作成し続けます。 ", - "data.search.aggs.buckets.histogram.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.histogram.hasExtendedBounds.help": "このアグリゲーションでhas_extended_boundsを使用するかどうかを指定します", - "data.search.aggs.buckets.histogram.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.histogram.interval.help": "このアグリゲーションで使用する間隔", - "data.search.aggs.buckets.histogram.intervalBase.help": "このアグリゲーションで使用するIntervalBase", - "data.search.aggs.buckets.histogram.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.histogram.maxBars.help": "間隔を計算して、この数の棒を取得します", - "data.search.aggs.buckets.histogram.minDocCount.help": "このアグリゲーションでmin_doc_countを使用するかどうかを指定します", - "data.search.aggs.buckets.histogram.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.histogramTitle": "ヒストグラム", - "data.search.aggs.buckets.intervalOptions.autoDisplayName": "自動", - "data.search.aggs.buckets.intervalOptions.dailyDisplayName": "日", - "data.search.aggs.buckets.intervalOptions.hourlyDisplayName": "時間", - "data.search.aggs.buckets.intervalOptions.millisecondDisplayName": "ミリ秒", - "data.search.aggs.buckets.intervalOptions.minuteDisplayName": "分", - "data.search.aggs.buckets.intervalOptions.monthlyDisplayName": "月", - "data.search.aggs.buckets.intervalOptions.secondDisplayName": "秒", - "data.search.aggs.buckets.intervalOptions.weeklyDisplayName": "週", - "data.search.aggs.buckets.intervalOptions.yearlyDisplayName": "年", - "data.search.aggs.buckets.ipRange.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.ipRange.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.ipRange.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.ipRange.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.ipRange.ipRangeType.help": "このアグリゲーションで使用するIP範囲タイプ。値mask、fromTOのいずれかを取ります。", - "data.search.aggs.buckets.ipRange.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.ipRange.ranges.help": "このアグリゲーションで使用する範囲。", - "data.search.aggs.buckets.ipRange.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.ipRangeLabel": "{fieldName} IP 範囲", - "data.search.aggs.buckets.ipRangeTitle": "IP範囲", - "data.search.aggs.buckets.range.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.range.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.range.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.range.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.range.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.range.ranges.help": "このアグリゲーションで使用するシリアル化された範囲。", - "data.search.aggs.buckets.range.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.rangeTitle": "範囲", - "data.search.aggs.buckets.shardDelay.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.shardDelay.delay.help": "処理するシャード間の遅延。例:\"5s\".", - "data.search.aggs.buckets.shardDelay.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.shardDelay.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.shardDelay.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.shardDelay.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.significantTerms.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.significantTerms.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.significantTerms.exclude.help": "結果から除外する特定のバケット値", - "data.search.aggs.buckets.significantTerms.excludeLabel": "除外", - "data.search.aggs.buckets.significantTerms.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.significantTerms.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.significantTerms.include.help": "結果に含める特定のバケット値", - "data.search.aggs.buckets.significantTerms.includeLabel": "含める", - "data.search.aggs.buckets.significantTerms.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.significantTerms.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.significantTerms.size.help": "取得するバケットの最大数", - "data.search.aggs.buckets.significantTermsLabel": "{fieldName} のトップ {size} の珍しいアイテム", - "data.search.aggs.buckets.significantTermsTitle": "重要な用語", - "data.search.aggs.buckets.terms.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.terms.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.terms.exclude.help": "結果から除外する特定のバケット値", - "data.search.aggs.buckets.terms.excludeLabel": "除外", - "data.search.aggs.buckets.terms.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.terms.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.terms.include.help": "結果に含める特定のバケット値", - "data.search.aggs.buckets.terms.includeLabel": "含める", - "data.search.aggs.buckets.terms.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.terms.missingBucket.help": "trueに設定すると、見つからないフィールドのすべてのバケットをグループ化します", - "data.search.aggs.buckets.terms.missingBucketLabel": "欠測値", - "data.search.aggs.buckets.terms.missingBucketLabel.help": "ドキュメントのフィールドが見つからないときにグラフで使用される既定のラベル。", - "data.search.aggs.buckets.terms.order.help": "結果を返す順序:昇順または降順", - "data.search.aggs.buckets.terms.orderAgg.help": "結果の並べ替えで使用するアグリゲーション構成", - "data.search.aggs.buckets.terms.orderAscendingTitle": "昇順", - "data.search.aggs.buckets.terms.orderBy.help": "結果を並べ替える基準のフィールド", - "data.search.aggs.buckets.terms.orderDescendingTitle": "降順", - "data.search.aggs.buckets.terms.otherBucket.help": "trueに設定すると、許可されたサイズを超えるすべてのバケットをグループ化します", - "data.search.aggs.buckets.terms.otherBucketDescription": "このリクエストは、データバケットの基準外のドキュメントの数をカウントします。", - "data.search.aggs.buckets.terms.otherBucketLabel": "その他", - "data.search.aggs.buckets.terms.otherBucketLabel.help": "他のバケットのドキュメントのグラフで使用される既定のラベル", - "data.search.aggs.buckets.terms.otherBucketTitle": "他のバケット", - "data.search.aggs.buckets.terms.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.terms.size.help": "取得するバケットの最大数", - "data.search.aggs.buckets.termsTitle": "用語", - "data.search.aggs.error.aggNotFound": "「{type}」に登録されたアグリゲーションタイプが見つかりません。", - "data.search.aggs.function.buckets.dateHistogram.help": "ヒストグラムアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.dateRange.help": "日付範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.filter.help": "フィルターアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.filters.help": "フィルターアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.geoHash.help": "ジオハッシュアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.geoTile.help": "ジオタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.histogram.help": "ヒストグラムアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.ipRange.help": "IP範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.range.help": "範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.shardDelay.help": "シャード遅延アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.significantTerms.help": "重要な用語アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.terms.help": "用語アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.avg.help": "平均値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_avg.help": "平均値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_max.help": "最大値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_min.help": "最小値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_sum.help": "合計値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.cardinality.help": "カーディナリティアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.count.help": "カウントアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.cumulative_sum.help": "合計値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.derivative.help": "微分アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.filtered_metric.help": "フィルタリングされたメトリックアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.geo_bounds.help": "ジオ境界アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.geo_centroid.help": "ジオ中心アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.max.help": "最大値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.median.help": "中央値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.min.help": "最小値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.moving_avg.help": "移動平均値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.percentile_ranks.help": "パーセンタイル順位アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.percentiles.help": "パーセンタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.serial_diff.help": "シリアル差異アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.singlePercentile.help": "パーセンタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.std_deviation.help": "標準偏差アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.sum.help": "合計値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.top_hit.help": "上位一致のシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.histogram.missingMaxMinValuesWarning": "自動スケールヒストグラムバケットから最高値と最低値を取得できません。これによりビジュアライゼーションのパフォーマンスが低下する可能性があります。", - "data.search.aggs.metrics.averageBucketTitle": "平均バケット", - "data.search.aggs.metrics.averageLabel": "平均 {field}", - "data.search.aggs.metrics.averageTitle": "平均", - "data.search.aggs.metrics.avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.avg.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.avg.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.avg.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_avg.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_avg.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_avg.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_avg.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_max.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_max.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_max.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_max.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_max.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_max.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_max.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_min.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_min.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_min.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_min.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_min.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_min.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_min.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_sum.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_sum.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_sum.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_sum.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.cardinality.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.cardinality.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.cardinality.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.cardinality.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.cardinality.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.cardinality.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.count.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.count.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.count.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.count.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.countLabel": "カウント", - "data.search.aggs.metrics.countTitle": "カウント", - "data.search.aggs.metrics.cumulative_sum.buckets_path.help": "関心があるメトリックへのパス", - "data.search.aggs.metrics.cumulative_sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.cumulative_sum.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.cumulative_sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.cumulative_sum.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.cumulative_sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.cumulative_sum.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.cumulative_sum.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.cumulativeSumLabel": "累積和", - "data.search.aggs.metrics.cumulativeSumTitle": "累積和", - "data.search.aggs.metrics.derivative.buckets_path.help": "関心があるメトリックへのパス", - "data.search.aggs.metrics.derivative.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.derivative.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.derivative.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.derivative.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.derivative.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.derivative.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.derivative.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.derivativeLabel": "派生", - "data.search.aggs.metrics.derivativeTitle": "派生", - "data.search.aggs.metrics.filtered_metric.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成フィルターアグリゲーションでなければなりません", - "data.search.aggs.metrics.filtered_metric.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.filtered_metric.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.filtered_metric.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.filtered_metric.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.filtered_metric.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.filteredMetricLabel": "フィルタリング済み", - "data.search.aggs.metrics.filteredMetricTitle": "フィルタリングされたメトリック", - "data.search.aggs.metrics.geo_bounds.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.geo_bounds.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.geo_bounds.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.geo_bounds.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.geo_bounds.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.geo_bounds.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.geo_centroid.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.geo_centroid.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.geo_centroid.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.geo_centroid.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.geo_centroid.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.geo_centroid.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.geoBoundsLabel": "境界", - "data.search.aggs.metrics.geoBoundsTitle": "境界", - "data.search.aggs.metrics.geoCentroidLabel": "ジオセントロイド", - "data.search.aggs.metrics.geoCentroidTitle": "ジオセントロイド", - "data.search.aggs.metrics.max.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.max.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.max.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.max.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.max.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.max.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.maxBucketTitle": "最高バケット", - "data.search.aggs.metrics.maxLabel": "最高 {field}", - "data.search.aggs.metrics.maxTitle": "最高", - "data.search.aggs.metrics.median.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.median.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.median.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.median.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.median.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.median.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.medianLabel": "中央 {field}", - "data.search.aggs.metrics.medianTitle": "中央", - "data.search.aggs.metrics.metricAggregationsSubtypeTitle": "メトリック集約", - "data.search.aggs.metrics.min.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.min.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.min.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.min.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.min.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.min.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.minBucketTitle": "最低バケット", - "data.search.aggs.metrics.minLabel": "最低 {field}", - "data.search.aggs.metrics.minTitle": "最低", - "data.search.aggs.metrics.moving_avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.moving_avg.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.moving_avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.moving_avg.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.moving_avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.moving_avg.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.moving_avg.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.moving_avg.script.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.moving_avg.window.help": "ヒストグラム全体でスライドするウィンドウのサイズ。", - "data.search.aggs.metrics.movingAvgLabel": "移動平均", - "data.search.aggs.metrics.movingAvgTitle": "移動平均", - "data.search.aggs.metrics.overallAverageLabel": "全体平均", - "data.search.aggs.metrics.overallMaxLabel": "全体最高", - "data.search.aggs.metrics.overallMinLabel": "全体最低", - "data.search.aggs.metrics.overallSumLabel": "全体合計", - "data.search.aggs.metrics.parentPipelineAggregationsSubtypeTitle": "親パイプライン集約", - "data.search.aggs.metrics.percentile_ranks.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.percentile_ranks.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.percentile_ranks.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.percentile_ranks.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.percentile_ranks.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.percentile_ranks.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.percentile_ranks.values.help": "パーセンタイル順位の範囲", - "data.search.aggs.metrics.percentileRanks.valuePropsLabel": "「{label}」の {format} のパーセンタイル順位", - "data.search.aggs.metrics.percentileRanksLabel": "{field} のパーセンタイル順位", - "data.search.aggs.metrics.percentileRanksTitle": "パーセンタイル順位", - "data.search.aggs.metrics.percentiles.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.percentiles.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.percentiles.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.percentiles.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.percentiles.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.percentiles.percents.help": "パーセンタイル順位の範囲", - "data.search.aggs.metrics.percentiles.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.percentiles.valuePropsLabel": "{label} の {percentile} パーセンタイル", - "data.search.aggs.metrics.percentilesLabel": "{field} のパーセンタイル", - "data.search.aggs.metrics.percentilesTitle": "パーセンタイル", - "data.search.aggs.metrics.serial_diff.buckets_path.help": "関心があるメトリックへのパス", - "data.search.aggs.metrics.serial_diff.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.serial_diff.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.serial_diff.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.serial_diff.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.serial_diff.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.serial_diff.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.serial_diff.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.serialDiffLabel": "差分の推移", - "data.search.aggs.metrics.serialDiffTitle": "差分の推移", - "data.search.aggs.metrics.siblingPipelineAggregationsSubtypeTitle": "シブリングパイプラインアグリゲーション", - "data.search.aggs.metrics.singlePercentile.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.singlePercentile.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.singlePercentile.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.singlePercentile.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.singlePercentile.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.singlePercentile.percentile.help": "取得するパーセンタイル", - "data.search.aggs.metrics.singlePercentile.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.singlePercentileLabel": "パーセンタイル{field}", - "data.search.aggs.metrics.singlePercentileTitle": "パーセンタイル", - "data.search.aggs.metrics.standardDeviation.keyDetailsLabel": "{fieldDisplayName} の標準偏差", - "data.search.aggs.metrics.standardDeviation.lowerKeyDetailsTitle": "下の{label}", - "data.search.aggs.metrics.standardDeviation.upperKeyDetailsTitle": "上の{label}", - "data.search.aggs.metrics.standardDeviationLabel": "{field} の標準偏差", - "data.search.aggs.metrics.standardDeviationTitle": "標準偏差", - "data.search.aggs.metrics.std_deviation.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.std_deviation.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.std_deviation.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.std_deviation.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.std_deviation.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.std_deviation.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.sum.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.sum.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.sum.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.sumBucketTitle": "合計バケット", - "data.search.aggs.metrics.sumLabel": "{field} の合計", - "data.search.aggs.metrics.sumTitle": "合計", - "data.search.aggs.metrics.timeShift.help": "設定した時間の分だけメトリックの時間範囲をシフトします。例:1時間、7日。[前へ]は日付ヒストグラムまたは時間範囲フィルターから最も近い時間範囲を使用します。", - "data.search.aggs.metrics.top_hit.aggregate.help": "アグリゲーションタイプ", - "data.search.aggs.metrics.top_hit.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.top_hit.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.top_hit.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.top_hit.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.top_hit.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.top_hit.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.top_hit.size.help": "取得するバケットの最大数", - "data.search.aggs.metrics.top_hit.sortField.help": "結果を並べ替える基準のフィールド", - "data.search.aggs.metrics.top_hit.sortOrder.help": "結果を返す順序:昇順または降順", - "data.search.aggs.metrics.topHit.ascendingLabel": "昇順", - "data.search.aggs.metrics.topHit.averageLabel": "平均", - "data.search.aggs.metrics.topHit.concatenateLabel": "連結", - "data.search.aggs.metrics.topHit.descendingLabel": "降順", - "data.search.aggs.metrics.topHit.firstPrefixLabel": "最初", - "data.search.aggs.metrics.topHit.lastPrefixLabel": "最後", - "data.search.aggs.metrics.topHit.maxLabel": "最高", - "data.search.aggs.metrics.topHit.minLabel": "最低", - "data.search.aggs.metrics.topHit.sumLabel": "合計", - "data.search.aggs.metrics.topHitTitle": "トップヒット", - "data.search.aggs.metrics.uniqueCountLabel": "{field} のユニークカウント", - "data.search.aggs.metrics.uniqueCountTitle": "ユニークカウント", - "data.search.aggs.otherBucket.labelForMissingValuesLabel": "欠測値のラベル", - "data.search.aggs.otherBucket.labelForOtherBucketLabel": "他のバケットのラベル", - "data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage": "「{aggType}」アグリゲーションで使用するには、インデックスパターン「{indexPatternTitle}」の保存されたフィールド「{fieldParameter}」が無効です。新しいフィールドを選択してください。", - "data.search.aggs.paramTypes.field.notFoundSavedFieldParameterErrorMessage": "このオブジェクトに関連付けられたフィールド\"{fieldParameter}\"は、インデックスパターンに存在しません。別のフィールドを使用してください。", - "data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} は必須パラメーターです", - "data.search.aggs.percentageOfLabel": "{label} の割合", - "data.search.aggs.string.customLabel": "カスタムラベル", - "data.search.dataRequest.title": "データ", - "data.search.es_search.dataRequest.description": "このリクエストはElasticsearchにクエリし、ビジュアライゼーション用のデータを取得します。", - "data.search.es_search.hitsDescription": "クエリにより返されたドキュメントの数です。", - "data.search.es_search.hitsLabel": "ヒット数", - "data.search.es_search.hitsTotalDescription": "クエリに一致するドキュメントの数です。", - "data.search.es_search.hitsTotalLabel": "ヒット数(合計)", - "data.search.es_search.indexPatternDescription": "Elasticsearchインデックスに接続したインデックスパターンです。", - "data.search.es_search.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザーでのパースの時間は含まれません。", - "data.search.es_search.queryTimeLabel": "クエリ時間", - "data.search.es_search.queryTimeValue": "{queryTime}ms", - "data.search.esaggs.error.kibanaRequest": "サーバーでこの検索を実行するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", - "data.search.esdsl.help": "Elasticsearch リクエストを実行", - "data.search.esdsl.index.help": "クエリするElasticsearchインデックス", - "data.search.esdsl.q.help": "クエリDSL", - "data.search.esdsl.size.help": "Elasticsearch 検索 API サイズパラメーター", - "data.search.esErrorTitle": "検索結果を取得できません", - "data.search.functions.cidr.cidr.help": "CIDRブロックを指定", - "data.search.functions.cidr.help": "CIDRに基づく範囲を作成", - "data.search.functions.dateRange.from.help": "開始日を指定", - "data.search.functions.dateRange.help": "日付範囲を作成", - "data.search.functions.dateRange.to.help": "終了日を指定", - "data.search.functions.esaggs.aggConfigs.help": "agg_type 関数で構成されたアグリゲーションのリスト", - "data.search.functions.esaggs.index.help": "indexPatternLoad で取得されたインデックスパターン", - "data.search.functions.esaggs.metricsAtAllLevels.help": "各バケットレベルでメトリックがある列が含まれるかどうか", - "data.search.functions.esaggs.partialRows.help": "一部のデータのみを含む行を返すかどうか", - "data.search.functions.esaggs.timeFields.help": "クエリに対して解決された時間範囲を取得する時刻フィールドを指定します", - "data.search.functions.existsFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", - "data.search.functions.existsFilter.help": "Kibana existsフィルターを作成", - "data.search.functions.existsFilter.negate.help": "フィルターは否定でなければなりません。", - "data.search.functions.extendedBounds.help": "予想バウンドを作成", - "data.search.functions.extendedBounds.max.help": "上限値を指定", - "data.search.functions.extendedBounds.min.help": "下限値を指定", - "data.search.functions.field.help": "Kibanaフィールドを作成します。", - "data.search.functions.field.name.help": "フィールドの名前です", - "data.search.functions.field.script.help": "フィールドがスクリプト化されている場合はフィールドスクリプト。", - "data.search.functions.field.type.help": "フィールド型", - "data.search.functions.geoBoundingBox.arguments.error": "次のパラメーターのグループの1つ以上を指定する必要があります:{parameters}。", - "data.search.functions.geoBoundingBox.bottom_left.help": "左下角を指定", - "data.search.functions.geoBoundingBox.bottom_right.help": "右下角を指定", - "data.search.functions.geoBoundingBox.bottom.help": "下座標を指定", - "data.search.functions.geoBoundingBox.help": "ジオバウンディングボックスを作成", - "data.search.functions.geoBoundingBox.left.help": "左座標を指定", - "data.search.functions.geoBoundingBox.right.help": "右座標を指定", - "data.search.functions.geoBoundingBox.top_left.help": "左上角を指定", - "data.search.functions.geoBoundingBox.top_right.help": "右上角を指定", - "data.search.functions.geoBoundingBox.top.help": "上座標を指定", - "data.search.functions.geoBoundingBox.wkt.help": "よく知られたテキスト(WKT)を指定", - "data.search.functions.geoPoint.arguments.error": "「緯度」、「経度」、または「ポイント」パラメーターを指定してください。", - "data.search.functions.geoPoint.help": "地理ポイントを作成", - "data.search.functions.geoPoint.lat.help": "緯度を指定", - "data.search.functions.geoPoint.lon.help": "経度を指定", - "data.search.functions.geoPoint.point.error": "ポイントパラメーターは文字列または2つの数値にしてください。", - "data.search.functions.geoPoint.point.help": "カンマ区切りの座標が付いた文字列または2つの数値としてポイントを指定", - "data.search.functions.ipRange.from.help": "開始アドレスを指定", - "data.search.functions.ipRange.help": "IP範囲を作成", - "data.search.functions.ipRange.to.help": "終了アドレスを指定", - "data.search.functions.kibana_context.filters.help": "Kibana ジェネリックフィルターを指定します", - "data.search.functions.kibana_context.help": "Kibana グローバルコンテキストを更新します", - "data.search.functions.kibana_context.q.help": "自由形式の Kibana テキストクエリを指定します", - "data.search.functions.kibana_context.savedSearchId.help": "クエリとフィルターに使用する保存検索ID を指定します。", - "data.search.functions.kibana_context.timeRange.help": "Kibana 時間範囲フィルターを指定します", - "data.search.functions.kibana.help": "Kibana グローバルコンテキストを取得します", - "data.search.functions.kibanaFilter.disabled.help": "フィルターは無効でなければなりません", - "data.search.functions.kibanaFilter.field.help": "フリーフォームesdslクエリを指定", - "data.search.functions.kibanaFilter.help": "Kibanaフィルターを作成", - "data.search.functions.kibanaFilter.negate.help": "フィルターは否定でなければなりません", - "data.search.functions.kql.help": "Kibana kqlクエリ", - "data.search.functions.kql.q.help": "Kibana KQLフリーフォームテキストクエリを指定", - "data.search.functions.lucene.help": "Kibana Luceneクエリを作成", - "data.search.functions.lucene.q.help": "Kibanaフリーフォームテキストクエリを指定", - "data.search.functions.numericalRange.from.help": "開始値を指定", - "data.search.functions.numericalRange.help": "数値範囲を作成", - "data.search.functions.numericalRange.label.help": "範囲ラベルを指定", - "data.search.functions.numericalRange.to.help": "終了値を指定", - "data.search.functions.phraseFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", - "data.search.functions.phraseFilter.help": "Kibanaフレーズまたはフレーズフィルターを作成", - "data.search.functions.phraseFilter.negate.help": "フィルターは否定でなければなりません", - "data.search.functions.phraseFilter.phrase.help": "フレーズを指定", - "data.search.functions.queryFilter.help": "クエリフィルターを作成", - "data.search.functions.queryFilter.input.help": "クエリフィルターを指定", - "data.search.functions.queryFilter.label.help": "フィルターラベルを指定", - "data.search.functions.range.gt.help": "より大きい", - "data.search.functions.range.gte.help": "以上", - "data.search.functions.range.help": "Kibana範囲フィルターを作成", - "data.search.functions.range.lt.help": "より小さい", - "data.search.functions.range.lte.help": "以下", - "data.search.functions.rangeFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", - "data.search.functions.rangeFilter.help": "Kibana範囲フィルターを作成", - "data.search.functions.rangeFilter.negate.help": "フィルターは否定でなければなりません", - "data.search.functions.rangeFilter.range.help": "範囲を指定し、「range」関数を使用します。", - "data.search.functions.timerange.from.help": "開始日を指定", - "data.search.functions.timerange.help": "Kibana timerangeを作成", - "data.search.functions.timerange.mode.help": "モードを指定(絶対または相対)", - "data.search.functions.timerange.to.help": "終了日を指定", - "data.search.httpErrorTitle": "データを取得できません", - "data.search.searchBar.savedQueryDescriptionLabelText": "説明", - "data.search.searchBar.savedQueryDescriptionText": "再度使用するクエリテキストとフィルターを保存します。", - "data.search.searchBar.savedQueryForm.titleConflictText": "タイトルがすでに保存されているクエリに使用されています", - "data.search.searchBar.savedQueryFormCancelButtonText": "キャンセル", - "data.search.searchBar.savedQueryFormSaveButtonText": "保存", - "data.search.searchBar.savedQueryFormTitle": "クエリを保存", - "data.search.searchBar.savedQueryIncludeFiltersLabelText": "フィルターを含める", - "data.search.searchBar.savedQueryIncludeTimeFilterLabelText": "時間フィルターを含める", - "data.search.searchBar.savedQueryNameHelpText": "名前が必要です。タイトルの始めと終わりにはスペースを使用できません。名前は固有でなければなりません。", - "data.search.searchBar.savedQueryNameLabelText": "名前", - "data.search.searchBar.savedQueryNoSavedQueriesText": "保存されたクエリがありません。", - "data.search.searchBar.savedQueryPopoverButtonText": "保存されたクエリを表示", - "data.search.searchBar.savedQueryPopoverClearButtonAriaLabel": "現在保存されているクエリを消去", - "data.search.searchBar.savedQueryPopoverClearButtonText": "クリア", - "data.search.searchBar.savedQueryPopoverConfirmDeletionCancelButtonText": "キャンセル", - "data.search.searchBar.savedQueryPopoverConfirmDeletionConfirmButtonText": "削除", - "data.search.searchBar.savedQueryPopoverConfirmDeletionTitle": "「{savedQueryName}」を削除しますか?", - "data.search.searchBar.savedQueryPopoverDeleteButtonAriaLabel": "保存されたクエリ {savedQueryName} を削除", - "data.search.searchBar.savedQueryPopoverSaveAsNewButtonAriaLabel": "新規保存クエリを保存", - "data.search.searchBar.savedQueryPopoverSaveAsNewButtonText": "新規保存", - "data.search.searchBar.savedQueryPopoverSaveButtonAriaLabel": "新規保存クエリを保存", - "data.search.searchBar.savedQueryPopoverSaveButtonText": "現在のクエリを保存", - "data.search.searchBar.savedQueryPopoverSaveChangesButtonAriaLabel": "{title} への変更を保存", - "data.search.searchBar.savedQueryPopoverSaveChangesButtonText": "変更を保存", - "data.search.searchBar.savedQueryPopoverSavedQueryListItemButtonAriaLabel": "保存クエリボタン {savedQueryName}", - "data.search.searchBar.savedQueryPopoverSavedQueryListItemDescriptionAriaLabel": "{savedQueryName}の説明", - "data.search.searchBar.savedQueryPopoverSavedQueryListItemSelectedButtonAriaLabel": "選択されたクエリボタン {savedQueryName} を保存しました。変更を破棄するには押してください。", - "data.search.searchBar.savedQueryPopoverTitleText": "保存されたクエリ", - "data.search.searchSource.fetch.requestTimedOutNotificationMessage": "リクエストがタイムアウトしたため、データが不完全な可能性があります", - "data.search.searchSource.fetch.shardsFailedModal.close": "閉じる", - "data.search.searchSource.fetch.shardsFailedModal.copyToClipboard": "応答をクリップボードにコピー", - "data.search.searchSource.fetch.shardsFailedModal.failureHeader": "{failureName} at {failureDetails}", - "data.search.searchSource.fetch.shardsFailedModal.showDetails": "詳細を表示", - "data.search.searchSource.fetch.shardsFailedModal.tabHeaderRequest": "リクエスト", - "data.search.searchSource.fetch.shardsFailedModal.tabHeaderResponse": "応答", - "data.search.searchSource.fetch.shardsFailedModal.tabHeaderShardFailures": "シャードエラー", - "data.search.searchSource.fetch.shardsFailedModal.tableColIndex": "インデックス", - "data.search.searchSource.fetch.shardsFailedModal.tableColNode": "ノード", - "data.search.searchSource.fetch.shardsFailedModal.tableColReason": "理由", - "data.search.searchSource.fetch.shardsFailedModal.tableColShard": "シャード", - "data.search.searchSource.fetch.shardsFailedModal.tableRowCollapse": "{rowDescription}を折りたたむ", - "data.search.searchSource.fetch.shardsFailedModal.tableRowExpand": "{rowDescription}を展開する", - "data.search.searchSource.fetch.shardsFailedNotificationDescription": "表示されているデータは不完全か誤りの可能性があります。", - "data.search.searchSource.fetch.shardsFailedNotificationMessage": "{shardsTotal} 件中 {shardsFailed} 件のシャードでエラーが発生しました", - "data.search.searchSource.hitsDescription": "クエリにより返されたドキュメントの数です。", - "data.search.searchSource.hitsLabel": "ヒット数", - "data.search.searchSource.hitsTotalDescription": "クエリに一致するドキュメントの数です。", - "data.search.searchSource.hitsTotalLabel": "ヒット数(合計)", - "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} インデックス内の ID です。", - "data.search.searchSource.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザーでのパースの時間は含まれません。", - "data.search.searchSource.queryTimeLabel": "クエリ時間", - "data.search.searchSource.queryTimeValue": "{queryTime}ms", - "data.search.searchSource.requestTimeDescription": "ブラウザから Elasticsearch にリクエストが送信され返されるまでの所要時間です。リクエストがキューで待機していた時間は含まれません。", - "data.search.searchSource.requestTimeLabel": "リクエスト時間", - "data.search.searchSource.requestTimeValue": "{requestTime}ms", - "data.search.timeBuckets.infinityLabel": "1年を超える", - "data.search.timeBuckets.monthLabel": "1か月", - "data.search.timeBuckets.yearLabel": "1年", - "data.search.timeoutContactAdmin": "クエリがタイムアウトしました。実行時間を延長するには、システム管理者に問い合わせてください。", - "data.search.timeoutIncreaseSetting": "クエリがタイムアウトしました。検索タイムアウト詳細設定で実行時間を延長します。", - "data.search.timeoutIncreaseSettingActionText": "設定を編集", - "data.search.unableToGetSavedQueryToastTitle": "保存したクエリ {savedQueryId} を読み込めません", - "data.searchSession.warning.readDocs": "続きを読む", - "data.searchSessionIndicator.noCapability": "検索セッションを作成するアクセス権がありません。", - "data.searchSessions.sessionService.sessionEditNameError": "検索セッションの名前を編集できませんでした", - "data.searchSessions.sessionService.sessionObjectFetchError": "検索セッション情報を取得できませんでした", - "data.triggers.applyFilterDescription": "Kibanaフィルターが適用されるとき。単一の値または範囲フィルターにすることができます。", - "data.triggers.applyFilterTitle": "フィルターを適用", - "dataViews.ensureDefaultIndexPattern.bannerLabel": "Kibanaでデータの可視化と閲覧を行うには、Elasticsearchからデータを取得するためのインデックスパターンの作成が必要です。", - "dataViews.fetchFieldErrorTitle": "インデックスパターンのフィールド取得中にエラーが発生 {title}(ID:{id})", - "dataViews.indexPatternLoad.error.kibanaRequest": "サーバーでこの検索を実行するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", - "dataViews.unableWriteLabel": "インデックスパターンを書き込めません。このインデックスパターンへの最新の変更を取得するには、ページを更新してください。", - "devTools.badge.readOnly.text": "読み取り専用", - "devTools.badge.readOnly.tooltip": "を保存できませんでした", - "devTools.devToolsTitle": "開発ツール", - "discover.advancedSettings.context.defaultSizeText": "コンテキストビューに表示される周りのエントリーの数", - "discover.advancedSettings.context.defaultSizeTitle": "コンテキストサイズ", - "discover.advancedSettings.context.sizeStepText": "コンテキストサイズを増減させる際の最低単位です", - "discover.advancedSettings.context.sizeStepTitle": "コンテキストサイズのステップ", - "discover.advancedSettings.context.tieBreakerFieldsTitle": "タイブレーカーフィールド", - "discover.advancedSettings.defaultColumnsText": "デフォルトで Discover タブに表示される列です", - "discover.advancedSettings.defaultColumnsTitle": "デフォルトの列", - "discover.advancedSettings.discover.multiFieldsLinkText": "マルチフィールド", - "discover.advancedSettings.discover.readFieldsFromSource": "_sourceからフィールドを読み取る", - "discover.advancedSettings.discover.readFieldsFromSourceDescription": "有効にすると、「_source」から直接ドキュメントを読み込みます。これはまもなく廃止される予定です。無効にすると、上位レベルの検索サービスで新しいフィールドAPI経由でフィールドを取得します。", - "discover.advancedSettings.discover.showMultifields": "マルチフィールドを表示", - "discover.advancedSettings.discover.showMultifieldsDescription": "拡張ドキュメントビューに{multiFields}が表示されるかどうかを制御します。ほとんどの場合、マルチフィールドは元のフィールドと同じです。「searchFieldsFromSource」がオフのときにのみこのオプションを使用できます。", - "discover.advancedSettings.docTableHideTimeColumnText": "Discover と、ダッシュボードのすべての保存された検索で、「時刻」列を非表示にします。", - "discover.advancedSettings.docTableHideTimeColumnTitle": "「時刻」列を非表示", - "discover.advancedSettings.fieldsPopularLimitText": "最も頻繁に使用されるフィールドのトップNを表示します", - "discover.advancedSettings.fieldsPopularLimitTitle": "頻繁に使用されるフィールドの制限", - "discover.advancedSettings.maxDocFieldsDisplayedText": "ドキュメント列でレンダリングされたフィールドの最大数", - "discover.advancedSettings.maxDocFieldsDisplayedTitle": "表示される最大ドキュメントフィールド数", - "discover.advancedSettings.sampleSizeText": "表に表示する行数です", - "discover.advancedSettings.sampleSizeTitle": "行数", - "discover.advancedSettings.searchOnPageLoadText": "Discover の最初の読み込み時に検索を実行するかを制御します。この設定は、保存された検索の読み込み時には影響しません。", - "discover.advancedSettings.searchOnPageLoadTitle": "ページの読み込み時の検索", - "discover.advancedSettings.sortDefaultOrderTitle": "デフォルトの並べ替え方向", - "discover.advancedSettings.sortOrderAsc": "昇順", - "discover.advancedSettings.sortOrderDesc": "降順", - "discover.advancedSettings.params.maxCellHeightTitle": "表のセルの高さの上限", - "discover.advancedSettings.params.maxCellHeightText": "表のセルが使用する高さの上限です。この切り捨てを無効にするには0に設定します", - "discover.backToTopLinkText": "最上部へ戻る。", - "discover.badge.readOnly.text": "読み取り専用", - "discover.badge.readOnly.tooltip": "検索を保存できません", - "discover.bucketIntervalTooltip": "この間隔は選択された時間範囲に表示される{bucketsDescription}が作成されるため、{bucketIntervalDescription}にスケーリングされています。", - "discover.bucketIntervalTooltip.tooLargeBucketsText": "大きすぎるバケット", - "discover.bucketIntervalTooltip.tooManyBucketsText": "バケットが多すぎます", - "discover.clearSelection": "選択した項目をクリア", - "discover.context.breadcrumb": "周りのドキュメント", - "discover.context.contextOfTitle": "#{anchorId}の周りのドキュメント", - "discover.context.failedToLoadAnchorDocumentDescription": "アンカードキュメントの読み込みに失敗しました", - "discover.context.failedToLoadAnchorDocumentErrorDescription": "アンカードキュメントの読み込みに失敗しました。", - "discover.context.invalidTieBreakerFiledSetting": "無効なタイブレーカーフィールド設定", - "discover.context.loadButtonLabel": "読み込み", - "discover.context.loadingDescription": "読み込み中...", - "discover.context.newerDocumentsAriaLabel": "新しいドキュメントの数", - "discover.context.newerDocumentsDescription": "新しいドキュメント", - "discover.context.newerDocumentsWarning": "アンカーよりも新しいドキュメントは{docCount}件しか見つかりませんでした。", - "discover.context.newerDocumentsWarningZero": "アンカーよりも新しいドキュメントは見つかりませんでした。", - "discover.context.olderDocumentsAriaLabel": "古いドキュメントの数", - "discover.context.olderDocumentsDescription": "古いドキュメント", - "discover.context.olderDocumentsWarning": "アンカーよりも古いドキュメントは{docCount}件しか見つかりませんでした。", - "discover.context.olderDocumentsWarningZero": "アンカーよりも古いドキュメントは見つかりませんでした。", - "discover.context.reloadPageDescription.reloadOrVisitTextMessage": "ドキュメントリストを再読み込みするか、ドキュメントリストに戻り、有効なアンカードキュメントを選択してください。", - "discover.context.unableToLoadAnchorDocumentDescription": "アンカードキュメントを読み込めません", - "discover.context.unableToLoadDocumentDescription": "ドキュメントを読み込めません", - "discover.controlColumnHeader": "列の制御", - "discover.copyToClipboardJSON": "ドキュメントをクリップボードにコピー(JSON)", - "discover.discoverBreadcrumbTitle": "Discover", - "discover.discoverDefaultSearchSessionName": "Discover", - "discover.discoverDescription": "ドキュメントにクエリをかけたりフィルターを適用することで、データをインタラクティブに閲覧できます。", - "discover.discoverSubtitle": "インサイトを検索して見つけます。", - "discover.discoverTitle": "Discover", - "discover.doc.couldNotFindDocumentsDescription": "そのIDに一致するドキュメントがありません。", - "discover.doc.failedToExecuteQueryDescription": "検索の実行に失敗しました", - "discover.doc.failedToLocateDocumentDescription": "ドキュメントが見つかりませんでした", - "discover.doc.loadingDescription": "読み込み中…", - "discover.doc.somethingWentWrongDescription": "{indexName}が見つかりません。", - "discover.doc.somethingWentWrongDescriptionAddon": "インデックスが存在することを確認してください。", - "discover.docTable.documentsNavigation": "ドキュメントナビゲーション", - "discover.docTable.limitedSearchResultLabel": "{resultCount}件の結果のみが表示されます。検索結果を絞り込みます。", - "discover.docTable.noResultsTitle": "結果が見つかりませんでした", - "discover.docTable.rows": "行", - "discover.docTable.tableHeader.documentHeader": "ドキュメント", - "discover.docTable.tableHeader.moveColumnLeftButtonAriaLabel": "{columnName}列を左に移動", - "discover.docTable.tableHeader.moveColumnLeftButtonTooltip": "列を左に移動", - "discover.docTable.tableHeader.moveColumnRightButtonAriaLabel": "{columnName}列を右に移動", - "discover.docTable.tableHeader.moveColumnRightButtonTooltip": "列を右に移動", - "discover.docTable.tableHeader.removeColumnButtonAriaLabel": "{columnName}列を削除", - "discover.docTable.tableHeader.removeColumnButtonTooltip": "列の削除", - "discover.docTable.tableHeader.sortByColumnAscendingAriaLabel": "{columnName}を昇順に並べ替える", - "discover.docTable.tableHeader.sortByColumnDescendingAriaLabel": "{columnName}を降順に並べ替える", - "discover.docTable.tableHeader.sortByColumnUnsortedAriaLabel": "{columnName}で並べ替えを止める", - "discover.docTable.tableRow.detailHeading": "拡張ドキュメント", - "discover.docTable.tableRow.filterForValueButtonAriaLabel": "値でフィルター", - "discover.docTable.tableRow.filterForValueButtonTooltip": "値でフィルター", - "discover.docTable.tableRow.filterOutValueButtonAriaLabel": "値を除外", - "discover.docTable.tableRow.filterOutValueButtonTooltip": "値を除外", - "discover.docTable.tableRow.toggleRowDetailsButtonAriaLabel": "行の詳細を切り替える", - "discover.docTable.tableRow.viewSingleDocumentLinkText": "単一のドキュメントを表示", - "discover.docTable.tableRow.viewSurroundingDocumentsLinkText": "周りのドキュメントを表示", - "discover.docTable.totalDocuments": "{totalDocuments}ドキュメント", - "discover.documentsAriaLabel": "ドキュメント", - "discover.docViews.json.jsonTitle": "JSON", - "discover.docViews.table.filterForFieldPresentButtonAriaLabel": "フィールド表示のフィルター", - "discover.docViews.table.filterForFieldPresentButtonTooltip": "フィールド表示のフィルター", - "discover.docViews.table.filterForValueButtonAriaLabel": "値でフィルター", - "discover.docViews.table.filterForValueButtonTooltip": "値でフィルター", - "discover.docViews.table.filterOutValueButtonAriaLabel": "値を除外", - "discover.docViews.table.filterOutValueButtonTooltip": "値を除外", - "discover.docViews.table.scoreSortWarningTooltip": "_scoreの値を取得するには、並べ替える必要があります。", - "discover.docViews.table.tableTitle": "表", - "discover.docViews.table.toggleColumnInTableButtonAriaLabel": "表の列を切り替える", - "discover.docViews.table.toggleColumnInTableButtonTooltip": "表の列を切り替える", - "discover.docViews.table.toggleFieldDetails": "フィールド詳細を切り替える", - "discover.docViews.table.unableToFilterForPresenceOfMetaFieldsTooltip": "メタフィールドの有無でフィルタリングできません", - "discover.docViews.table.unableToFilterForPresenceOfScriptedFieldsTooltip": "スクリプトフィールドの有無でフィルタリングできません", - "discover.embeddable.inspectorRequestDataTitle": "データ", - "discover.embeddable.inspectorRequestDescription": "このリクエストはElasticsearchにクエリをかけ、検索データを取得します。", - "discover.embeddable.search.displayName": "検索", - "discover.field.mappingConflict": "このフィールドは、このパターンと一致するインデックス全体に対して複数の型(文字列、整数など)として定義されています。この競合フィールドを使用することはできますが、Kibana で型を認識する必要がある関数では使用できません。この問題を修正するにはデータのレンダリングが必要です。", - "discover.field.mappingConflict.title": "マッピングの矛盾", - "discover.field.title": "{fieldName} ({fieldDisplayName})", - "discover.fieldChooser.detailViews.emptyStringText": "空の文字列", - "discover.fieldChooser.detailViews.existsInRecordsText": "{value} / {totalValue}件のレコードに存在", - "discover.fieldChooser.detailViews.filterOutValueButtonAriaLabel": "{field}を除外:\"{value}\"", - "discover.fieldChooser.detailViews.filterValueButtonAriaLabel": "{field}を除外:\"{value}\"", - "discover.fieldChooser.detailViews.valueOfRecordsText": "{value} / {totalValue}件のレコード", - "discover.fieldChooser.discoverField.actions": "アクション", - "discover.fieldChooser.discoverField.addButtonAriaLabel": "{field}を表に追加", - "discover.fieldChooser.discoverField.addFieldTooltip": "フィールドを列として追加", - "discover.fieldChooser.discoverField.fieldTopValuesLabel": "トップ5の値", - "discover.fieldChooser.discoverField.multiField": "複数フィールド", - "discover.fieldChooser.discoverField.multiFields": "マルチフィールド", - "discover.fieldChooser.discoverField.multiFieldTooltipContent": "複数フィールドにはフィールドごとに複数の値を入力できます", - "discover.fieldChooser.discoverField.name": "フィールド", - "discover.fieldChooser.discoverField.removeButtonAriaLabel": "{field}を表から削除", - "discover.fieldChooser.discoverField.removeFieldTooltip": "フィールドを表から削除", - "discover.fieldChooser.discoverField.value": "値", - "discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForGeoFieldsErrorMessage": "ジオフィールドは分析できません。", - "discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForObjectFieldsErrorMessage": "オブジェクトフィールドは分析できません。", - "discover.fieldChooser.fieldCalculator.fieldIsNotPresentInDocumentsErrorMessage": "このフィールドはElasticsearchマッピングに表示されますが、ドキュメントテーブルの{hitsLength}件のドキュメントには含まれません。可視化や検索は可能な場合があります。", - "discover.fieldChooser.fieldFilterButtonLabel": "タイプでフィルタリング", - "discover.fieldChooser.fieldsMobileButtonLabel": "フィールド", - "discover.fieldChooser.filter.aggregatableLabel": "集約可能", - "discover.fieldChooser.filter.availableFieldsTitle": "利用可能なフィールド", - "discover.fieldChooser.filter.fieldSelectorLabel": "{id}フィルターオプションの選択", - "discover.fieldChooser.filter.filterByTypeLabel": "タイプでフィルタリング", - "discover.fieldChooser.filter.indexAndFieldsSectionAriaLabel": "インデックスとフィールド", - "discover.fieldChooser.filter.popularTitle": "人気", - "discover.fieldChooser.filter.searchableLabel": "検索可能", - "discover.fieldChooser.filter.selectedFieldsTitle": "スクリプトフィールド", - "discover.fieldChooser.filter.toggleButton.any": "すべて", - "discover.fieldChooser.filter.toggleButton.no": "いいえ", - "discover.fieldChooser.filter.toggleButton.yes": "はい", - "discover.fieldChooser.filter.typeLabel": "型", - "discover.fieldChooser.searchPlaceHolder": "検索フィールド名", - "discover.fieldChooser.toggleFieldFilterButtonHideAriaLabel": "フィールド設定を非表示", - "discover.fieldChooser.toggleFieldFilterButtonShowAriaLabel": "フィールド設定を表示", - "discover.fieldChooser.visualizeButton.label": "可視化", - "discover.fieldList.flyoutBackIcon": "戻る", - "discover.fieldList.flyoutHeading": "フィールドリスト", - "discover.fieldNameIcons.booleanAriaLabel": "ブールフィールド", - "discover.fieldNameIcons.conflictFieldAriaLabel": "矛盾フィールド", - "discover.fieldNameIcons.dateFieldAriaLabel": "日付フィールド", - "discover.fieldNameIcons.geoPointFieldAriaLabel": "地理ポイントフィールド", - "discover.fieldNameIcons.geoShapeFieldAriaLabel": "地理情報シェイプフィールド", - "discover.fieldNameIcons.ipAddressFieldAriaLabel": "IPアドレスフィールド", - "discover.fieldNameIcons.murmur3FieldAriaLabel": "Murmur3フィールド", - "discover.fieldNameIcons.nestedFieldAriaLabel": "入れ子フィールド", - "discover.fieldNameIcons.numberFieldAriaLabel": "数値フィールド", - "discover.fieldNameIcons.sourceFieldAriaLabel": "ソースフィールド", - "discover.fieldNameIcons.stringFieldAriaLabel": "文字列フィールド", - "discover.fieldNameIcons.unknownFieldAriaLabel": "不明なフィールド", - "discover.grid.documentHeader": "ドキュメント", - "discover.grid.filterFor": "フィルター", - "discover.grid.filterForAria": "この{value}でフィルターを適用", - "discover.grid.filterOut": "除外", - "discover.grid.filterOutAria": "この{value}を除外", - "discover.grid.flyout.documentNavigation": "ドキュメントナビゲーション", - "discover.grid.flyout.toastColumnAdded": "列'{columnName}'が追加されました", - "discover.grid.flyout.toastColumnRemoved": "列'{columnName}'が削除されました", - "discover.grid.flyout.toastFilterAdded": "フィルターが追加されました", - "discover.grid.tableRow.detailHeading": "拡張ドキュメント", - "discover.grid.tableRow.viewSingleDocumentLinkTextSimple": "1つのドキュメント", - "discover.grid.tableRow.viewSurroundingDocumentsLinkTextSimple": "周りのドキュメント", - "discover.grid.tableRow.viewText": "表示:", - "discover.grid.viewDoc": "詳細ダイアログを切り替え", - "discover.helpMenu.appName": "Discover", - "discover.hideChart": "グラフを非表示", - "discover.histogramOfFoundDocumentsAriaLabel": "検出されたドキュメントのヒストグラム", - "discover.hitCountSpinnerAriaLabel": "読み込み中の最終一致件数", - "discover.howToSeeOtherMatchingDocumentsDescription": "これらは検索条件に一致した初めの {sampleSize} 件のドキュメントです。他の結果を表示するには検索条件を絞ってください。", - "discover.howToSeeOtherMatchingDocumentsDescriptionGrid": "これらは検索条件に一致した初めの {sampleSize} 件のドキュメントです。他の結果を表示するには検索条件を絞ってください。", - "discover.inspectorRequestDataTitleChart": "グラフデータ", - "discover.inspectorRequestDataTitleDocuments": "ドキュメント", - "discover.inspectorRequestDataTitleTotalHits": "総ヒット数", - "discover.inspectorRequestDescriptionChart": "このリクエストはElasticsearchにクエリをかけ、グラフの集計データを取得します。", - "discover.inspectorRequestDescriptionDocument": "このリクエストはElasticsearchにクエリをかけ、ドキュメントを取得します。", - "discover.inspectorRequestDescriptionTotalHits": "このリクエストはElasticsearchにクエリをかけ、合計一致数を取得します。", - "discover.json.codeEditorAriaLabel": "Elasticsearch ドキュメントの JSON ビューのみを読み込む", - "discover.json.copyToClipboardLabel": "クリップボードにコピー", - "discover.loadingChartResults": "グラフを読み込み中", - "discover.loadingDocuments": "ドキュメントを読み込み中", - "discover.loadingJSON": "JSONを読み込んでいます", - "discover.loadingResults": "結果を読み込み中", - "discover.localMenu.inspectTitle": "検査", - "discover.localMenu.localMenu.newSearchTitle": "新規", - "discover.localMenu.localMenu.optionsTitle": "オプション", - "discover.localMenu.newSearchDescription": "新規検索", - "discover.localMenu.openInspectorForSearchDescription": "検索用にインスペクターを開きます", - "discover.localMenu.openSavedSearchDescription": "保存された検索を開きます", - "discover.localMenu.openTitle": "開く", - "discover.localMenu.optionsDescription": "オプション", - "discover.localMenu.saveSaveSearchObjectType": "検索", - "discover.localMenu.saveSearchDescription": "検索を保存します", - "discover.localMenu.saveTitle": "保存", - "discover.localMenu.shareSearchDescription": "検索を共有します", - "discover.localMenu.shareTitle": "共有", - "discover.noResults.adjustFilters": "フィルターを調整", - "discover.noResults.adjustSearch": "クエリを調整", - "discover.noResults.disableFilters": "フィルターを一時的に無効にしています", - "discover.noResults.expandYourTimeRangeTitle": "時間範囲を拡大", - "discover.noResults.queryMayNotMatchTitle": "期間を長くして検索を試してください。", - "discover.noResults.searchExamples.noResultsBecauseOfError": "検索結果の取得中にエラーが発生しました", - "discover.noResults.searchExamples.noResultsMatchSearchCriteriaTitle": "検索条件と一致する結果がありません。", - "discover.noResultsFound": "結果が見つかりませんでした", - "discover.notifications.invalidTimeRangeText": "指定された時間範囲が無効です。(開始:'{from}'、終了:'{to}')", - "discover.notifications.invalidTimeRangeTitle": "無効な時間範囲", - "discover.notifications.notSavedSearchTitle": "検索「{savedSearchTitle}」は保存されませんでした。", - "discover.notifications.savedSearchTitle": "検索「{savedSearchTitle}」が保存されました。", - "discover.reloadSavedSearchButton": "検索をリセット", - "discover.removeColumnLabel": "列を削除", - "discover.rootBreadcrumb": "Discover", - "discover.savedSearch.savedObjectName": "保存検索", - "discover.searchGenerationWithDescription": "検索{searchTitle}で生成されたテーブル", - "discover.searchGenerationWithDescriptionGrid": "検索{searchTitle}で生成されたテーブル({searchDescription})", - "discover.searchingTitle": "検索中", - "discover.selectColumnHeader": "列を選択", - "discover.selectedDocumentsNumber": "{nr}個のドキュメントが選択されました", - "discover.showAllDocuments": "すべてのドキュメントを表示", - "discover.showChart": "グラフを表示", - "discover.showErrorMessageAgain": "エラーメッセージを表示", - "discover.showSelectedDocumentsOnly": "選択したドキュメントのみを表示", - "discover.skipToBottomButtonLabel": "テーブルの最後に移動", - "discover.sourceViewer.errorMessage": "現在データを取得できませんでした。タブを更新して、再試行してください。", - "discover.sourceViewer.errorMessageTitle": "エラーが発生しました", - "discover.sourceViewer.refresh": "更新", - "discover.toggleSidebarAriaLabel": "サイドバーを切り替える", - "discover.topNav.openSearchPanel.manageSearchesButtonLabel": "検索の管理", - "discover.topNav.openSearchPanel.noSearchesFoundDescription": "一致する検索が見つかりませんでした。", - "discover.topNav.openSearchPanel.openSearchTitle": "検索を開く", - "discover.topNav.optionsPopover.currentViewMode": "{viewModeLabel}: {currentViewMode}", - "discover.uninitializedRefreshButtonText": "データを更新", - "discover.uninitializedText": "クエリを作成、フィルターを追加、または[更新]をクリックして、現在のクエリの結果を取得します。", - "discover.uninitializedTitle": "検索開始", - "embeddableApi.addPanel.createNewDefaultOption": "新規作成", - "embeddableApi.addPanel.displayName": "パネルの追加", - "embeddableApi.addPanel.noMatchingObjectsMessage": "一致するオブジェクトが見つかりませんでした。", - "embeddableApi.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} が追加されました", - "embeddableApi.addPanel.Title": "ライブラリから追加", - "embeddableApi.attributeService.saveToLibraryError": "保存中にエラーが発生しました。エラー:{errorMessage}", - "embeddableApi.contextMenuTrigger.description": "パネルの右上のコンテキストメニューをクリックします。", - "embeddableApi.contextMenuTrigger.title": "コンテキストメニュー", - "embeddableApi.customizePanel.action.displayName": "パネルタイトルを編集", - "embeddableApi.customizePanel.modal.cancel": "キャンセル", - "embeddableApi.customizePanel.modal.optionsMenuForm.panelTitleFormRowLabel": "パネルタイトル", - "embeddableApi.customizePanel.modal.optionsMenuForm.panelTitleInputAriaLabel": "パネルのカスタムタイトルを入力してください", - "embeddableApi.customizePanel.modal.optionsMenuForm.resetCustomDashboardButtonLabel": "リセット", - "embeddableApi.customizePanel.modal.saveButtonTitle": "保存", - "embeddableApi.customizePanel.modal.showTitle": "パネルタイトルを表示", - "embeddableApi.customizeTitle.optionsMenuForm.panelTitleFormRowLabel": "パネルタイトル", - "embeddableApi.customizeTitle.optionsMenuForm.panelTitleInputAriaLabel": "このインプットへの変更は直ちに適用されます。Enter を押して閉じます。", - "embeddableApi.customizeTitle.optionsMenuForm.resetCustomDashboardButtonLabel": "タイトルをリセット", - "embeddableApi.errors.embeddableFactoryNotFound": "{type} を読み込めません。Elasticsearch と Kibana のデフォルトのディストリビューションを適切なライセンスでアップグレードしてください。", - "embeddableApi.errors.paneldoesNotExist": "パネルが見つかりません", - "embeddableApi.helloworld.displayName": "こんにちは", - "embeddableApi.panel.dashboardPanelAriaLabel": "ダッシュボードパネル", - "embeddableApi.panel.editPanel.displayName": "{value} を編集", - "embeddableApi.panel.editTitleAriaLabel": "クリックしてタイトルを編集:{title}", - "embeddableApi.panel.enhancedDashboardPanelAriaLabel": "ダッシュボードパネル:{title}", - "embeddableApi.panel.inspectPanel.displayName": "検査", - "embeddableApi.panel.inspectPanel.untitledEmbeddableFilename": "無題", - "embeddableApi.panel.labelAborted": "中断しました", - "embeddableApi.panel.labelError": "エラー", - "embeddableApi.panel.optionsMenu.panelOptionsButtonAriaLabel": "パネルオプション", - "embeddableApi.panel.optionsMenu.panelOptionsButtonEnhancedAriaLabel": "{title} のパネルオプション", - "embeddableApi.panel.placeholderTitle": "[タイトルなし]", - "embeddableApi.panel.removePanel.displayName": "ダッシュボードから削除", - "embeddableApi.panelBadgeTrigger.description": "パネルに埋め込み可能なファイルが読み込まれるときに、アクションがタイトルバーに表示されます。", - "embeddableApi.panelBadgeTrigger.title": "パネルバッジ", - "embeddableApi.panelNotificationTrigger.description": "パネルの右上にアクションが表示されます。", - "embeddableApi.panelNotificationTrigger.title": "パネル通知", - "embeddableApi.samples.contactCard.displayName": "連絡先カード", - "embeddableApi.samples.filterableContainer.displayName": "フィルター可能なダッシュボード", - "embeddableApi.samples.filterableEmbeddable.displayName": "フィルター可能", - "embeddableApi.selectRangeTrigger.description": "ビジュアライゼーションでの値の範囲", - "embeddableApi.selectRangeTrigger.title": "範囲選択", - "embeddableApi.valueClickTrigger.description": "ビジュアライゼーションでデータポイントをクリック", - "embeddableApi.valueClickTrigger.title": "シングルクリック", - "esQuery.kql.errors.endOfInputText": "インプットの終わり", - "esQuery.kql.errors.fieldNameText": "フィールド名", - "esQuery.kql.errors.literalText": "文字通り", - "esQuery.kql.errors.syntaxError": "{expectedList} を期待しましたが {foundInput} が検出されました。", - "esQuery.kql.errors.valueText": "値", - "esQuery.kql.errors.whitespaceText": "空白類", - "esUi.cronEditor.cronDaily.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronDaily.fieldTimeLabel": "時間", - "esUi.cronEditor.cronDaily.hourSelectLabel": "時間", - "esUi.cronEditor.cronDaily.minuteSelectLabel": "分", - "esUi.cronEditor.cronHourly.fieldMinute.textAtLabel": "に", - "esUi.cronEditor.cronHourly.fieldTimeLabel": "分", - "esUi.cronEditor.cronMonthly.fieldDateLabel": "日付", - "esUi.cronEditor.cronMonthly.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronMonthly.fieldTimeLabel": "時間", - "esUi.cronEditor.cronMonthly.hourSelectLabel": "時間", - "esUi.cronEditor.cronMonthly.minuteSelectLabel": "分", - "esUi.cronEditor.cronMonthly.textOnTheLabel": "に", - "esUi.cronEditor.cronWeekly.fieldDateLabel": "日", - "esUi.cronEditor.cronWeekly.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronWeekly.fieldTimeLabel": "時間", - "esUi.cronEditor.cronWeekly.hourSelectLabel": "時間", - "esUi.cronEditor.cronWeekly.minuteSelectLabel": "分", - "esUi.cronEditor.cronWeekly.textOnLabel": "オン", - "esUi.cronEditor.cronYearly.fieldDate.textOnTheLabel": "に", - "esUi.cronEditor.cronYearly.fieldDateLabel": "日付", - "esUi.cronEditor.cronYearly.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronYearly.fieldMonth.textInLabel": "入", - "esUi.cronEditor.cronYearly.fieldMonthLabel": "月", - "esUi.cronEditor.cronYearly.fieldTimeLabel": "時間", - "esUi.cronEditor.cronYearly.hourSelectLabel": "時間", - "esUi.cronEditor.cronYearly.minuteSelectLabel": "分", - "esUi.cronEditor.day.friday": "金曜日", - "esUi.cronEditor.day.monday": "月曜日", - "esUi.cronEditor.day.saturday": "土曜日", - "esUi.cronEditor.day.sunday": "日曜日", - "esUi.cronEditor.day.thursday": "木曜日", - "esUi.cronEditor.day.tuesday": "火曜日", - "esUi.cronEditor.day.wednesday": "水曜日", - "esUi.cronEditor.fieldFrequencyLabel": "頻度", - "esUi.cronEditor.month.april": "4 月", - "esUi.cronEditor.month.august": "8 月", - "esUi.cronEditor.month.december": "12 月", - "esUi.cronEditor.month.february": "2 月", - "esUi.cronEditor.month.january": "1 月", - "esUi.cronEditor.month.july": "7 月", - "esUi.cronEditor.month.june": "6 月", - "esUi.cronEditor.month.march": "3 月", - "esUi.cronEditor.month.may": "5月", - "esUi.cronEditor.month.november": "11 月", - "esUi.cronEditor.month.october": "10 月", - "esUi.cronEditor.month.september": "9 月", - "esUi.cronEditor.textEveryLabel": "毎", - "esUi.forms.comboBoxField.placeHolderText": "入力してエンターキーを押してください", - "esUi.forms.fieldValidation.indexNameSpacesError": "インデックス名にはスペースを使用できません。", - "esUi.forms.fieldValidation.indexNameStartsWithDotError": "インデックス名の始めにピリオド(.)は使用できません。", - "esUi.forms.fieldValidation.indexPatternSpacesError": "インデックスパターンにはスペースを使用できません。", - "esUi.formWizard.backButtonLabel": "戻る", - "esUi.formWizard.nextButtonLabel": "次へ", - "esUi.formWizard.saveButtonLabel": "保存", - "esUi.formWizard.savingButtonLabel": "保存中...", - "esUi.validation.string.invalidJSONError": "無効なJSON", - "expressionError.errorComponent.description": "表現が失敗し次のメッセージが返されました:", - "expressionError.errorComponent.title": "おっと!表現が失敗しました", - "expressionError.renderer.debug.displayName": "デバッグ", - "expressionError.renderer.debug.helpDescription": "デバッグアウトプットをフォーマットされた {JSON} としてレンダリングします", - "expressionError.renderer.error.displayName": "エラー情報", - "expressionError.renderer.error.helpDescription": "エラーデータをユーザーにわかるようにレンダリングします", - "expressionImage.functions.image.args.dataurlHelpText": "画像の {https} {URL} または {BASE64} データ {URL} です。", - "expressionImage.functions.image.args.modeHelpText": "{contain} はサイズに合わせて拡大・縮小して画像全体を表示し、{cover} はコンテナーを画像で埋め、必要に応じて両端や下をクロップします。{stretch} は画像の高さと幅をコンテナーの 100% になるよう変更します。", - "expressionImage.functions.image.invalidImageModeErrorMessage": "「mode」は「{contain}」、「{cover}」、または「{stretch}」でなければなりません", - "expressionImage.functions.imageHelpText": "画像を表示します。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionImage.renderer.image.displayName": "画像", - "expressionImage.renderer.image.helpDescription": "画像をレンダリングします", - "expressionMetric.functions.metric.args.labelFontHelpText": "ラベルの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", - "expressionMetric.functions.metric.args.labelHelpText": "メトリックを説明するテキストです。", - "expressionMetric.functions.metric.args.metricFontHelpText": "メトリックの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", - "expressionMetric.functions.metric.args.metricFormatHelpText": "{NUMERALJS} 形式の文字列。例:{example1} または {example2}。", - "expressionMetric.functions.metricHelpText": "ラベルの上に数字を表示します。", - "expressionMetric.renderer.metric.displayName": "メトリック", - "expressionMetric.renderer.metric.helpDescription": "ラベルの上に数字をレンダリングします", - "expressionRepeatImage.error.repeatImage.missingMaxArgument": "{emptyImageArgument} を指定する場合は、{maxArgument} を設定する必要があります", - "expressionRepeatImage.functions.repeatImage.args.emptyImageHelpText": "この画像のエレメントについて、{CONTEXT}および{maxArg}パラメーターの差異を解消します。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionRepeatImage.functions.repeatImage.args.imageHelpText": "繰り返す画像です。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionRepeatImage.functions.repeatImage.args.maxHelpText": "画像が繰り返される最高回数です。", - "expressionRepeatImage.functions.repeatImage.args.sizeHelpText": "画像の高さまたは幅のピクセル単位での最高値です。画像が縦長の場合、この関数は高さを制限します。", - "expressionRepeatImage.functions.repeatImageHelpText": "繰り返し画像エレメントを構成します。", - "expressionRepeatImage.renderer.repeatImage.displayName": "RepeatImage", - "expressionRepeatImage.renderer.repeatImage.helpDescription": "基本repeatImageを表示", - "expressionRevealImage.functions.revealImage.args.emptyImageHelpText": "表示される背景画像です。画像アセットは「{BASE64}」データ {URL} として提供するか、部分式で渡します。", - "expressionRevealImage.functions.revealImage.args.imageHelpText": "表示する画像です。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionRevealImage.functions.revealImage.args.originHelpText": "画像で埋め始める位置です。たとえば、{list}、または {end}です。", - "expressionRevealImage.functions.revealImage.invalidImageUrl": "無効な画像URL:'{imageUrl}'。", - "expressionRevealImage.functions.revealImage.invalidPercentErrorMessage": "無効な値:「{percent}」。パーセンテージは 0 と 1 の間でなければなりません ", - "expressionRevealImage.functions.revealImageHelpText": "画像表示エレメントを構成します。", - "expressionRevealImage.renderer.revealImage.displayName": "画像の部分表示", - "expressionRevealImage.renderer.revealImage.helpDescription": "カスタムゲージスタイルチャートを作成するため、画像のパーセンテージを表示します", - "expressions.defaultErrorRenderer.errorTitle": "ビジュアライゼーションエラー", - "expressions.execution.functionDisabled": "関数 {fnName} が無効です。", - "expressions.execution.functionNotFound": "関数 {fnName} が見つかりませんでした。", - "expressions.functions.createTable.args.idsHelpText": "位置順序で生成する列ID。IDは行のキーを表します。", - "expressions.functions.createTable.args.nameHelpText": "位置順序で生成する列名。名前は一意でなくてもかまいません。指定しない場合は、デフォルトでIDが使用されます。", - "expressions.functions.createTable.args.rowCountText": "後から値を割り当てられる、テーブルに追加する空の行数。", - "expressions.functions.createTableHelpText": "データテーブルと、列のリスト、1つ以上の空の行を作成します。行を入力するには、{mapColumnFn}または{mathColumnFn}を使用します。", - "expressions.functions.cumulativeSum.args.byHelpText": "累積和計算を分割する列", - "expressions.functions.cumulativeSum.args.inputColumnIdHelpText": "累積和を計算する列", - "expressions.functions.cumulativeSum.args.outputColumnIdHelpText": "結果の累積和を格納する列", - "expressions.functions.cumulativeSum.args.outputColumnNameHelpText": "結果の累積和を格納する列の名前", - "expressions.functions.cumulativeSum.help": "データテーブルの列の累積和を計算します", - "expressions.functions.derivative.args.byHelpText": "微分係数計算を分割する列", - "expressions.functions.derivative.args.inputColumnIdHelpText": "微分係数を計算する列", - "expressions.functions.derivative.args.outputColumnIdHelpText": "結果の微分係数を格納する列", - "expressions.functions.derivative.args.outputColumnNameHelpText": "結果の微分係数を格納する列の名前", - "expressions.functions.derivative.help": "データテーブルの列の微分係数を計算します", - "expressions.functions.font.args.alignHelpText": "水平テキスト配置", - "expressions.functions.font.args.colorHelpText": "文字の色です。", - "expressions.functions.font.args.familyHelpText": "利用可能な{css}ウェブフォント文字列です", - "expressions.functions.font.args.italicHelpText": "テキストを斜体にしますか?", - "expressions.functions.font.args.lHeightHelpText": "ピクセル単位の行の高さです。", - "expressions.functions.font.args.sizeHelpText": "ピクセル単位のフォントサイズです。", - "expressions.functions.font.args.underlineHelpText": "テキストに下線を引きますか?", - "expressions.functions.font.args.weightHelpText": "フォントの重量です。たとえば、{list}、または {end}です。", - "expressions.functions.font.invalidFontWeightErrorMessage": "無効なフォント太さ:'{weight}'", - "expressions.functions.font.invalidTextAlignmentErrorMessage": "無効なテキストアラインメント:'{align}'", - "expressions.functions.fontHelpText": "フォントスタイルを作成します。", - "expressions.functions.mapColumn.args.copyMetaFromHelpText": "設定されている場合、指定した列IDのメタオブジェクトが指定したターゲット列にコピーされます。列が存在しない場合は失敗し、エラーは表示されません。", - "expressions.functions.mapColumn.args.expressionHelpText": "すべての行で実行される式。単一行の{DATATABLE}と一緒に指定され、セル値を返します。", - "expressions.functions.mapColumn.args.idHelpText": "結果列の任意のID。IDが指定されていないときには、指定された名前引数で既存の列からルックアップされます。この名前の列が存在しない場合、この名前と同じIDの新しい列がテーブルに追加されます。", - "expressions.functions.mapColumn.args.nameHelpText": "結果の列の名前です。名前は一意である必要はありません。", - "expressions.functions.mapColumnHelpText": "他の列の結果として計算された列を追加します。引数が指定された場合のみ変更が加えられます。{alterColumnFn}と{staticColumnFn}もご参照ください。", - "expressions.functions.math.args.expressionHelpText": "評価された {TINYMATH} 表現です。{TINYMATH_URL} をご覧ください。", - "expressions.functions.math.args.onErrorHelpText": "{TINYMATH}評価が失敗するか、NaNが返される場合、戻り値はonErrorで指定されます。「'throw'」の場合、例外が発生し、式の実行が終了します(デフォルト)。", - "expressions.functions.math.emptyDatatableErrorMessage": "空のデータベース", - "expressions.functions.math.emptyExpressionErrorMessage": "空の表現", - "expressions.functions.math.executionFailedErrorMessage": "数式の実行に失敗しました。列名を確認してください", - "expressions.functions.math.tooManyResultsErrorMessage": "式は 1 つの数字を返す必要があります。表現を {mean} または {sum} で囲んでみてください", - "expressions.functions.mathColumn.args.copyMetaFromHelpText": "設定されている場合、指定した列IDのメタオブジェクトが指定したターゲット列にコピーされます。列が存在しない場合は失敗し、エラーは表示されません。", - "expressions.functions.mathColumn.args.idHelpText": "結果の列のIDです。一意でなければなりません。", - "expressions.functions.mathColumn.args.nameHelpText": "結果の列の名前です。名前は一意である必要はありません。", - "expressions.functions.mathColumn.arrayValueError": "{name}で配列値に対する演算を実行できません", - "expressions.functions.mathColumn.uniqueIdError": "IDは一意でなければなりません", - "expressions.functions.mathColumnHelpText": "他の列の結果として計算された列を追加します。引数が指定された場合のみ変更が加えられます。{alterColumnFn}と{staticColumnFn}もご参照ください。", - "expressions.functions.mathHelpText": "{TYPE_NUMBER}または{DATATABLE}を{CONTEXT}として使用して、{TINYMATH}数式を解釈します。{DATATABLE}列は列名で表示されます。{CONTEXT}が数字の場合は、{value}と表示されます。", - "expressions.functions.movingAverage.args.byHelpText": "移動平均計算を分割する列", - "expressions.functions.movingAverage.args.inputColumnIdHelpText": "移動平均を計算する列", - "expressions.functions.movingAverage.args.outputColumnIdHelpText": "結果の移動平均を格納する列", - "expressions.functions.movingAverage.args.outputColumnNameHelpText": "結果の移動平均を格納する列の名前", - "expressions.functions.movingAverage.args.windowHelpText": "ヒストグラム全体でスライドするウィンドウのサイズ。", - "expressions.functions.movingAverage.help": "データテーブルの列の移動平均を計算します", - "expressions.functions.overallMetric.args.byHelpText": "全体の計算を分割する列", - "expressions.functions.overallMetric.args.inputColumnIdHelpText": "全体のメトリックを計算する列", - "expressions.functions.overallMetric.args.outputColumnIdHelpText": "結果の全体のメトリックを格納する列", - "expressions.functions.overallMetric.args.outputColumnNameHelpText": "結果の全体のメトリックを格納する列の名前", - "expressions.functions.overallMetric.help": "データテーブルの列の合計値、最小値、最大値、」または平均を計算します", - "expressions.functions.overallMetric.metricHelpText": "計算するメトリック", - "expressions.functions.seriesCalculations.columnConflictMessage": "指定した outputColumnId {columnId} はすでに存在します。別の列 ID を選択してください。", - "expressions.functions.theme.args.defaultHelpText": "テーマ情報がない場合のデフォルト値。", - "expressions.functions.theme.args.variableHelpText": "読み取るテーマ変数名。", - "expressions.functions.themeHelpText": "テーマ設定を読み取ります。", - "expressions.functions.uiSetting.args.default": "パラメーターが設定されていない場合のデフォルト値。", - "expressions.functions.uiSetting.args.parameter": "パラメーター名。", - "expressions.functions.uiSetting.error.kibanaRequest": "サーバーでUI設定を取得するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", - "expressions.functions.uiSetting.error.parameter": "無効なパラメーター\"{parameter}\"です。", - "expressions.functions.uiSetting.help": "UI設定パラメーター値を返します。", - "expressions.functions.var.help": "Kibanaグローバルコンテキストを更新します。", - "expressions.functions.var.name.help": "変数の名前を指定します。", - "expressions.functions.varset.help": "Kibanaグローバルコンテキストを更新します。", - "expressions.functions.varset.name.help": "変数の名前を指定します。", - "expressions.functions.varset.val.help": "変数の値を指定します。指定しないと、入力コンテキストが使用されます。", - "expressions.types.number.fromStringConversionErrorMessage": "\"{string}\" 文字列を数字に変換できません", - "expressionShape.functions.progress.args.barColorHelpText": "背景バーの色です。", - "expressionShape.functions.progress.args.barWeightHelpText": "背景バーの太さです。", - "expressionShape.functions.progress.args.fontHelpText": "ラベルの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", - "expressionShape.functions.progress.args.labelHelpText": "ラベルの表示・非表示を切り替えるには、{BOOLEAN_TRUE}または{BOOLEAN_FALSE}を使用します。また、ラベルとして表示する文字列を入力することもできます。", - "expressionShape.functions.progress.args.maxHelpText": "進捗エレメントの最高値です。", - "expressionShape.functions.progress.args.shapeHelpText": "{list} または {end} を選択します。", - "expressionShape.functions.progress.args.valueColorHelpText": "進捗バーの色です。", - "expressionShape.functions.progress.args.valueWeightHelpText": "進捗バーの太さです。", - "expressionShape.functions.progress.invalidMaxValueErrorMessage": "無効な {arg} 値:「{max, number}」。「{arg}」は 0 より大きい必要があります", - "expressionShape.functions.progress.invalidValueErrorMessage": "無効な値:「{value, number}」。値は 0 と {max, number} の間でなければなりません", - "expressionShape.functions.progressHelpText": "進捗エレメントを構成します。", - "expressionShape.functions.shape.args.borderHelpText": "図形の外郭の {SVG} カラーです。", - "expressionShape.functions.shape.args.borderWidthHelpText": "境界の太さです。", - "expressionShape.functions.shape.args.fillHelpText": "図形を塗りつぶす {SVG} カラーです。", - "expressionShape.functions.shape.args.maintainAspectHelpText": "図形の元の横縦比を維持しますか?", - "expressionShape.functions.shape.args.shapeHelpText": "図形を選択します。", - "expressionShape.functions.shape.invalidShapeErrorMessage": "無効な値:'{shape}'。このような形状は存在しません。", - "expressionShape.functions.shapeHelpText": "図形を作成します。", - "expressionShape.renderer.progress.displayName": "進捗", - "expressionShape.renderer.progress.helpDescription": "基本進捗状況をレンダリング", - "expressionShape.renderer.shape.displayName": "形状", - "expressionShape.renderer.shape.helpDescription": "基本的な図形をレンダリングします", - "fieldFormats.advancedSettings.format.bytesFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.bytesFormatText": "「バイト」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.bytesFormatTitle": "バイトフォーマット", - "fieldFormats.advancedSettings.format.currencyFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.currencyFormatText": "「通貨」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.currencyFormatTitle": "通貨フォーマット", - "fieldFormats.advancedSettings.format.defaultTypeMapText": "各フィールドタイプにデフォルトで使用するフォーマット名のマップです。フィールドタイプが特に指定されていない場合は {defaultFormat} が使用されます", - "fieldFormats.advancedSettings.format.defaultTypeMapTitle": "フィールドタイプフォーマット名", - "fieldFormats.advancedSettings.format.formattingLocale.numeralLanguageLinkText": "数字言語", - "fieldFormats.advancedSettings.format.formattingLocaleText": "{numeralLanguageLink} locale", - "fieldFormats.advancedSettings.format.formattingLocaleTitle": "フォーマットロケール", - "fieldFormats.advancedSettings.format.numberFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.numberFormatText": "「数字」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.numberFormatTitle": "数字フォーマット", - "fieldFormats.advancedSettings.format.percentFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.percentFormatText": "「パーセント」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.percentFormatTitle": "パーセントフォーマット", - "fieldFormats.advancedSettings.shortenFieldsText": "長いフィールドを短くします。例:foo.bar.bazの代わりにf.b.bazと表示", - "fieldFormats.advancedSettings.shortenFieldsTitle": "フィールドの短縮", - "fieldFormats.boolean.title": "ブール", - "fieldFormats.bytes.title": "バイト", - "fieldFormats.color.title": "色", - "fieldFormats.date_nanos.title": "日付ナノ", - "fieldFormats.date.title": "日付", - "fieldFormats.duration.inputFormats.days": "日", - "fieldFormats.duration.inputFormats.hours": "時間", - "fieldFormats.duration.inputFormats.microseconds": "マイクロ秒", - "fieldFormats.duration.inputFormats.milliseconds": "ミリ秒", - "fieldFormats.duration.inputFormats.minutes": "分", - "fieldFormats.duration.inputFormats.months": "か月", - "fieldFormats.duration.inputFormats.nanoseconds": "ナノ秒", - "fieldFormats.duration.inputFormats.picoseconds": "ピコ秒", - "fieldFormats.duration.inputFormats.seconds": "秒", - "fieldFormats.duration.inputFormats.weeks": "週間", - "fieldFormats.duration.inputFormats.years": "年", - "fieldFormats.duration.negativeLabel": "マイナス", - "fieldFormats.duration.outputFormats.asDays": "日", - "fieldFormats.duration.outputFormats.asDays.short": "d", - "fieldFormats.duration.outputFormats.asHours": "時間", - "fieldFormats.duration.outputFormats.asHours.short": "h", - "fieldFormats.duration.outputFormats.asMilliseconds": "ミリ秒", - "fieldFormats.duration.outputFormats.asMilliseconds.short": "ms", - "fieldFormats.duration.outputFormats.asMinutes": "分", - "fieldFormats.duration.outputFormats.asMinutes.short": "分", - "fieldFormats.duration.outputFormats.asMonths": "か月", - "fieldFormats.duration.outputFormats.asMonths.short": "mon", - "fieldFormats.duration.outputFormats.asSeconds": "秒", - "fieldFormats.duration.outputFormats.asSeconds.short": "s", - "fieldFormats.duration.outputFormats.asWeeks": "週間", - "fieldFormats.duration.outputFormats.asWeeks.short": "w", - "fieldFormats.duration.outputFormats.asYears": "年", - "fieldFormats.duration.outputFormats.asYears.short": "y", - "fieldFormats.duration.outputFormats.humanize.approximate": "人間が読み取り可能(近似値)", - "fieldFormats.duration.outputFormats.humanize.precise": "人間が読み取り可能(正確な値)", - "fieldFormats.duration.title": "期間", - "fieldFormats.histogram.title": "ヒストグラム", - "fieldFormats.ip.title": "IP アドレス", - "fieldFormats.number.title": "数字", - "fieldFormats.percent.title": "割合(%)", - "fieldFormats.relative_date.title": "相対日付", - "fieldFormats.static_lookup.title": "静的ルックアップ", - "fieldFormats.string.emptyLabel": "(空)", - "fieldFormats.string.title": "文字列", - "fieldFormats.string.transformOptions.base64": "Base64 デコード", - "fieldFormats.string.transformOptions.lower": "小文字", - "fieldFormats.string.transformOptions.none": "- なし -", - "fieldFormats.string.transformOptions.short": "短い点線", - "fieldFormats.string.transformOptions.title": "タイトルケース", - "fieldFormats.string.transformOptions.upper": "大文字", - "fieldFormats.string.transformOptions.url": "URL パラメーターデコード", - "fieldFormats.truncated_string.title": "切り詰めた文字列", - "fieldFormats.url.title": "Url", - "fieldFormats.url.types.audio": "音声", - "fieldFormats.url.types.img": "画像", - "fieldFormats.url.types.link": "リンク", - "flot.pie.unableToDrawLabelsInsideCanvasErrorMessage": "キャンバス内のラベルではパイを作成できません", - "flot.time.aprLabel": "4 月", - "flot.time.augLabel": "8 月", - "flot.time.decLabel": "12 月", - "flot.time.febLabel": "2 月", - "flot.time.friLabel": "金", - "flot.time.janLabel": "1月", - "flot.time.julLabel": "7月", - "flot.time.junLabel": "6 月", - "flot.time.marLabel": "3 月", - "flot.time.mayLabel": "5月", - "flot.time.monLabel": "月", - "flot.time.novLabel": "11月", - "flot.time.octLabel": "10 月", - "flot.time.satLabel": "土", - "flot.time.sepLabel": "9月", - "flot.time.sunLabel": "日", - "flot.time.thuLabel": "木", - "flot.time.tueLabel": "火", - "flot.time.wedLabel": "水", - "home.addData.addDataButtonLabel": "データを追加", - "home.addData.sampleDataButtonLabel": "サンプルデータを試す", - "home.addData.sectionTitle": "データを追加して開始する", - "home.addData.text": "データの操作を開始するには、多数の取り込みオプションのいずれかを使用します。アプリまたはサービスからデータを収集するか、ファイルをアップロードします。独自のデータを使用する準備ができていない場合は、サンプルデータセットを追加してください。", - "home.breadcrumbs.homeTitle": "ホーム", - "home.dataManagementDisableCollection": " 収集を停止するには、", - "home.dataManagementDisableCollectionLink": "ここで使用状況データを無効にします。", - "home.dataManagementDisclaimerPrivacy": "使用状況データがどのように製品とサービスの管理と改善につながるのかに関する詳細については ", - "home.dataManagementDisclaimerPrivacyLink": "プライバシーポリシーをご覧ください。", - "home.dataManagementEnableCollection": " 収集を開始するには、", - "home.dataManagementEnableCollectionLink": "ここで使用状況データを有効にします。", - "home.exploreButtonLabel": "独りで閲覧", - "home.exploreYourDataDescription": "すべてのステップを終えたら、データ閲覧準備の完了です。", - "home.header.title": "ようこそホーム", - "home.letsStartDescription": "任意のソースからクラスターにデータを追加して、リアルタイムでデータを分析して可視化します。当社のソリューションを使用すれば、どこからでも検索を追加し、エコシステムを監視して、セキュリティの脅威から保護することができます。", - "home.letsStartTitle": "データを追加して開始する", - "home.loadTutorials.requestFailedErrorMessage": "リクエスト失敗、ステータスコード:{status}", - "home.loadTutorials.unableToLoadErrorMessage": "チュートリアルが読み込めません。", - "home.manageData.devToolsButtonLabel": "開発ツール", - "home.manageData.sectionTitle": "管理", - "home.manageData.stackManagementButtonLabel": "スタック管理", - "home.pageTitle": "ホーム", - "home.recentlyAccessed.recentlyViewedTitle": "最近閲覧", - "home.sampleData.ecommerceSpec.ordersTitle": "[eコマース] 注文", - "home.sampleData.ecommerceSpec.promotionTrackingTitle": "[eコマース] プロモーショントラッキング", - "home.sampleData.ecommerceSpec.revenueDashboardDescription": "サンプルの e コマースの注文と収益を分析します", - "home.sampleData.ecommerceSpec.revenueDashboardTitle": "[eコマース] 収益ダッシュボード", - "home.sampleData.ecommerceSpec.soldProductsPerDayTitle": "[eコマース] 1日の販売製品", - "home.sampleData.ecommerceSpecDescription": "e コマースの注文をトラッキングするサンプルデータ、ビジュアライゼーション、ダッシュボードです。", - "home.sampleData.ecommerceSpecTitle": "サンプル e コマース注文", - "home.sampleData.flightsSpec.airportConnectionsTitle": "[フライト] 空港乗り継ぎ(空港にカーソルを合わせてください)", - "home.sampleData.flightsSpec.delayBucketsTitle": "[フライト] 遅延バケット", - "home.sampleData.flightsSpec.delaysAndCancellationsTitle": "[フライト] 遅延・欠航", - "home.sampleData.flightsSpec.departuresCountMapTitle": "[フライト] 出発カウントマップ", - "home.sampleData.flightsSpec.destinationWeatherTitle": "[フライト] 目的地の天候", - "home.sampleData.flightsSpec.flightLogTitle": "[フライト] 飛行記録", - "home.sampleData.flightsSpec.globalFlightDashboardDescription": "ES-Air、Logstash Airways、Kibana Airlines、JetBeats のサンプル飛行データを分析します", - "home.sampleData.flightsSpec.globalFlightDashboardTitle": "[フライト] グローバルフライトダッシュボード", - "home.sampleData.flightsSpecDescription": "飛行ルートを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。", - "home.sampleData.flightsSpecTitle": "サンプル飛行データ", - "home.sampleData.logsSpec.bytesDistributionTitle": "[ログ] バイト分布", - "home.sampleData.logsSpec.discoverTitle": "[ログ] 訪問", - "home.sampleData.logsSpec.goalsTitle": "[ログ] 目標", - "home.sampleData.logsSpec.heatmapTitle": "[ログ] 一意の訪問者ヒートマップ", - "home.sampleData.logsSpec.hostVisitsBytesTableTitle": "[ログ] ホスト、訪問数、バイト表", - "home.sampleData.logsSpec.responseCodesOverTimeTitle": "[ログ] 一定期間の応答コードと注釈", - "home.sampleData.logsSpec.sourceAndDestinationSankeyChartTitle": "[ログ] ソースと行先のサンキーダイアグラム", - "home.sampleData.logsSpec.visitorsMapTitle": "[ログ] ビジターマップ", - "home.sampleData.logsSpec.webTrafficDescription": "Elastic Web サイトのサンプル Webトラフィックログデータを分析します", - "home.sampleData.logsSpec.webTrafficTitle": "[ログ] Webトラフィック", - "home.sampleData.logsSpecDescription": "Web ログを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。", - "home.sampleData.logsSpecTitle": "サンプル Web ログ", - "home.sampleDataSet.installedLabel": "{name} がインストールされました", - "home.sampleDataSet.unableToInstallErrorMessage": "サンプルデータセット「{name}」をインストールできません", - "home.sampleDataSet.unableToLoadListErrorMessage": "サンプルデータセットのリストを読み込めません", - "home.sampleDataSet.unableToUninstallErrorMessage": "サンプルデータセット「{name}」をアンインストールできません", - "home.sampleDataSet.uninstalledLabel": "{name} がアンインストールされました", - "home.sampleDataSetCard.addButtonAriaLabel": "{datasetName} を追加", - "home.sampleDataSetCard.addButtonLabel": "データの追加", - "home.sampleDataSetCard.addingButtonAriaLabel": "{datasetName} を追加", - "home.sampleDataSetCard.addingButtonLabel": "追加中", - "home.sampleDataSetCard.dashboardLinkLabel": "ダッシュボード", - "home.sampleDataSetCard.default.addButtonAriaLabel": "{datasetName} を追加", - "home.sampleDataSetCard.default.addButtonLabel": "データの追加", - "home.sampleDataSetCard.default.unableToVerifyErrorMessage": "データセットステータスを確認できません、エラー:{statusMsg}", - "home.sampleDataSetCard.removeButtonAriaLabel": "{datasetName} を削除", - "home.sampleDataSetCard.removeButtonLabel": "削除", - "home.sampleDataSetCard.removingButtonAriaLabel": "{datasetName} を削除中", - "home.sampleDataSetCard.removingButtonLabel": "削除中", - "home.sampleDataSetCard.viewDataButtonAriaLabel": "{datasetName} を表示", - "home.sampleDataSetCard.viewDataButtonLabel": "データを表示", - "home.solutionsSection.sectionTitle": "ソリューションを選択", - "home.tryButtonLabel": "データの追加", - "home.tutorial.addDataToKibanaTitle": "データの追加", - "home.tutorial.card.sampleDataDescription": "これらの「ワンクリック」データセットで Kibana の探索を始めましょう。", - "home.tutorial.card.sampleDataTitle": "サンプルデータ", - "home.tutorial.elasticCloudButtonLabel": "Elastic Cloud", - "home.tutorial.instructionSet.checkStatusButtonLabel": "ステータスを確認", - "home.tutorial.instructionSet.customizeLabel": "コードスニペットのカスタマイズ", - "home.tutorial.instructionSet.noDataLabel": "データが見つかりません", - "home.tutorial.instructionSet.statusCheckTitle": "ステータス確認", - "home.tutorial.instructionSet.successLabel": "成功", - "home.tutorial.introduction.betaLabel": "ベータ", - "home.tutorial.introduction.imageAltDescription": "プライマリダッシュボードのスクリーンショット。", - "home.tutorial.introduction.viewButtonLabel": "エクスポートされたフィールドを表示", - "home.tutorial.noTutorialLabel": "チュートリアル {tutorialId} が見つかりません", - "home.tutorial.savedObject.addedLabel": "{savedObjectsLength} 件の保存されたオブジェクトが追加されました", - "home.tutorial.savedObject.confirmButtonLabel": "上書きを確定", - "home.tutorial.savedObject.defaultButtonLabel": "Kibana オブジェクトを読み込む", - "home.tutorial.savedObject.installLabel": "インデックスパターン、ビジュアライゼーション、事前定義済みのダッシュボードをインポートします。", - "home.tutorial.savedObject.installStatusLabel": "{savedObjectsLength} オブジェクトの {overwriteErrorsLength} がすでに存在します。インポートして既存のオブジェクトを上書きするには、「上書きを確定」をクリックしてください。オブジェクトへの変更はすべて失われます。", - "home.tutorial.savedObject.loadTitle": "Kibana オブジェクトを読み込む", - "home.tutorial.savedObject.requestFailedErrorMessage": "リクエスト失敗、エラー:{message}", - "home.tutorial.savedObject.unableToAddErrorMessage": "{savedObjectsLength} 件中 {errorsLength} 件の kibana オブジェクトが追加できません。エラー:{errorMessage}", - "home.tutorial.selectionLegend": "デプロイタイプ", - "home.tutorial.selfManagedButtonLabel": "自己管理", - "home.tutorial.tabs.sampleDataTitle": "サンプルデータ", - "home.tutorial.unexpectedStatusCheckStateErrorDescription": "予期せぬステータス確認ステータス {statusCheckState}", - "home.tutorial.unhandledInstructionTypeErrorDescription": "予期せぬ指示タイプ {visibleInstructions}", - "home.tutorialDirectory.featureCatalogueDescription": "一般的なアプリやサービスからデータを取り込みます。", - "home.tutorialDirectory.featureCatalogueTitle": "データの追加", - "home.tutorials.activemqLogs.artifacts.dashboards.linkLabel": "ActiveMQ 監査イベント", - "home.tutorials.activemqLogs.longDescription": "Filebeat で ActiveMQ ログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.activemqLogs.nameTitle": "ActiveMQ ログ", - "home.tutorials.activemqLogs.shortDescription": "Filebeat で ActiveMQ ログを収集します。", - "home.tutorials.activemqMetrics.artifacts.application.label": "Discover", - "home.tutorials.activemqMetrics.nameTitle": "ActiveMQ メトリック", - "home.tutorials.activemqMetrics.shortDescription": "ActiveMQ インスタンスから監視メトリックを取得します。", - "home.tutorials.aerospikeMetrics.artifacts.application.label": "Discover", - "home.tutorials.aerospikeMetrics.longDescription": "「aerospike」Metricbeatモジュールは、Aerospikeから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.aerospikeMetrics.nameTitle": "Aerospike メトリック", - "home.tutorials.aerospikeMetrics.shortDescription": "Aerospike サーバーから内部メトリックを取得します。", - "home.tutorials.apacheLogs.artifacts.dashboards.linkLabel": "Apache ログダッシュボード", - "home.tutorials.apacheLogs.longDescription": "apache Filebeatモジュールが、Apache 2 HTTPサーバーにより作成されたアクセスとエラーのログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.apacheLogs.nameTitle": "Apache ログ", - "home.tutorials.apacheLogs.shortDescription": "Apache HTTP サーバーが作成したアクセスとエラーのログを収集しパースします。", - "home.tutorials.apacheMetrics.artifacts.dashboards.linkLabel": "Apache メトリックダッシュボード", - "home.tutorials.apacheMetrics.longDescription": "「apache」Metricbeatモジュールは、Apache 2 HTTPサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.apacheMetrics.nameTitle": "Apache メトリック", - "home.tutorials.apacheMetrics.shortDescription": "Apache 2 HTTP サーバーから内部メトリックを取得します。", - "home.tutorials.auditbeat.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.auditbeat.longDescription": "Auditbeat を使用してホストから監査データを収集します。これらにはプロセス、ユーザー、ログイン、ソケット情報、ファイルアクセス、その他が含まれます。[詳細]({learnMoreLink})", - "home.tutorials.auditbeat.nameTitle": "Auditbeat", - "home.tutorials.auditbeat.shortDescription": "ホストから監査データを収集します。", - "home.tutorials.auditdLogs.artifacts.dashboards.linkLabel": "監査イベント", - "home.tutorials.auditdLogs.longDescription": "モジュールは監査デーモン(「auditd」)からログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.auditdLogs.nameTitle": "Auditd ログ", - "home.tutorials.auditdLogs.shortDescription": "Linux auditd デーモンからログを収集します。", - "home.tutorials.awsLogs.artifacts.dashboards.linkLabel": "AWS S3 サーバーアクセスログダッシュボード", - "home.tutorials.awsLogs.longDescription": "SQS通知設定されているS3バケットにAWSログをエクスポートすることで、AWSログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.awsLogs.nameTitle": "AWS S3 ベースのログ", - "home.tutorials.awsLogs.shortDescription": "Filebeat で S3 バケットから AWS ログを収集します。", - "home.tutorials.awsMetrics.artifacts.dashboards.linkLabel": "AWS メトリックダッシュボード", - "home.tutorials.awsMetrics.longDescription": "「aws」Metricbeatモジュールが、AWS APIとCloudwatchから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.awsMetrics.nameTitle": "AWS メトリック", - "home.tutorials.awsMetrics.shortDescription": "AWS API と Cloudwatch からの EC2 インスタンスの監視メトリックです。", - "home.tutorials.azureLogs.artifacts.dashboards.linkLabel": "Apacheログダッシュボード", - "home.tutorials.azureLogs.longDescription": "「azure」Filebeatモジュールは、Azureアクティビティと監査関連ログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.azureLogs.nameTitle": "Azureログ", - "home.tutorials.azureLogs.shortDescription": "Azureアクティビティと監査関連ログを収集します。", - "home.tutorials.azureMetrics.artifacts.dashboards.linkLabel": "Apacheメトリックダッシュボード", - "home.tutorials.azureMetrics.longDescription": "Metricbeatモジュール「azure」は、Azureから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.azureMetrics.nameTitle": "Azure メトリック", - "home.tutorials.azureMetrics.shortDescription": "Azure 監視メトリックをフェッチします。", - "home.tutorials.barracudaLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.barracudaLogs.longDescription": "これは、SyslogまたはファイルでBarracuda Web Application Firewallログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.barracudaLogs.nameTitle": "Barracuda ログ", - "home.tutorials.barracudaLogs.shortDescription": "Barracuda Web Application Firewall ログを syslog またはファイルから収集します。", - "home.tutorials.bluecoatLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.bluecoatLogs.longDescription": "これは、SyslogまたはファイルでBlue Coat Directorログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.bluecoatLogs.nameTitle": "Blue Coat ログ", - "home.tutorials.bluecoatLogs.shortDescription": "Blue Coat Director ログを syslog またはファイルから収集します。", - "home.tutorials.cefLogs.artifacts.dashboards.linkLabel": "CEF ネットワーク概要ダッシュボード", - "home.tutorials.cefLogs.longDescription": "これは Syslog で Common Event Format(CEF)データを受信するためのモジュールです。Syslog プロトコルでメッセージが受信されると、Syslog 入力がヘッダーを解析し、タイムスタンプ値を設定します。次に、プロセッサーが適用され、CEF エンコードデータを解析します。デコードされたデータは「cef」オブジェクトフィールドに書き込まれます。CEFデータを入力できるすべてのElastic Common Schema(ECS)フィールドが入力されます。 [詳細]({learnMoreLink})", - "home.tutorials.cefLogs.nameTitle": "CEF ログ", - "home.tutorials.cefLogs.shortDescription": "Syslog で Common Event Format(CEF)ログデータを収集します。", - "home.tutorials.cephMetrics.artifacts.application.label": "Discover", - "home.tutorials.cephMetrics.longDescription": "「ceph」Metricbeatモジュールは、Cephから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.cephMetrics.nameTitle": "Ceph メトリック", - "home.tutorials.cephMetrics.shortDescription": "Ceph サーバーから内部メトリックを取得します。", - "home.tutorials.checkpointLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.checkpointLogs.longDescription": "これは Check Point ファイアウォールログ用のモジュールです。Syslog形式のLog Exporterからのログをサポートします。[詳細]({learnMoreLink})", - "home.tutorials.checkpointLogs.nameTitle": "Check Point ログ", - "home.tutorials.checkpointLogs.shortDescription": "Check Point ファイアウォールログを収集します。", - "home.tutorials.ciscoLogs.artifacts.dashboards.linkLabel": "ASA ファイアウォールダッシュボード", - "home.tutorials.ciscoLogs.longDescription": "これは Cisco ネットワークデバイスのログ用のモジュールです(ASA、FTD、IOS、Nexus)。Syslogのログまたはファイルから読み取られたログを受信するための次のファイルセットが含まれます。[詳細]({learnMoreLink})", - "home.tutorials.ciscoLogs.nameTitle": "Cisco ログ", - "home.tutorials.ciscoLogs.shortDescription": "Syslog またはファイルから Cisco ネットワークデバイスログを収集します。", - "home.tutorials.cloudwatchLogs.longDescription": "FunctionbeatをAWS Lambda関数として実行するようデプロイし、Cloudwatchログを収集します。 [詳細]({learnMoreLink})", - "home.tutorials.cloudwatchLogs.nameTitle": "AWS Cloudwatch ログ", - "home.tutorials.cloudwatchLogs.shortDescription": "Functionbeat で Cloudwatch ログを収集します。", - "home.tutorials.cockroachdbMetrics.artifacts.dashboards.linkLabel": "CockroachDB メトリックダッシュボード", - "home.tutorials.cockroachdbMetrics.longDescription": "Metricbeatモジュール「cockroachdb」は、CockroachDBから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.cockroachdbMetrics.nameTitle": "CockroachDB メトリック", - "home.tutorials.cockroachdbMetrics.shortDescription": "CockroachDB サーバーから監視メトリックを取得します。", - "home.tutorials.common.auditbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.auditbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.auditbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.auditbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.auditbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.auditbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.auditbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.auditbeatInstructions.install.debTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.auditbeatInstructions.install.debTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.install.osxTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.auditbeatInstructions.install.osxTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.install.rpmTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.auditbeatInstructions.install.rpmTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.auditbeatInstructions.install.rpmTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.install.windowsTextPost": "{auditbeatPath} ファイルの {propertyName} を Elasticsearch のインストールに設定します。", - "home.tutorials.common.auditbeatInstructions.install.windowsTextPre": "Auditbeatは初めてですか?[クイックスタート]({guideLinkUrl})を参照してください。\n 1.[ダウンロード]({auditbeatLinkUrl})ページからAuditbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName}」ディレクトリの名前を「Auditbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Auditbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.auditbeatInstructions.install.windowsTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.debTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.osxTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.rpmTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.windowsTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.auditbeatStatusCheck.errorText": "まだデータを受信していません", - "home.tutorials.common.auditbeatStatusCheck.successText": "データを受信しました", - "home.tutorials.common.auditbeatStatusCheck.text": "Auditbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.auditbeatStatusCheck.title": "ステータス", - "home.tutorials.common.cloudInstructions.passwordAndResetLink": "{passwordTemplate}が「Elastic」ユーザーのパスワードです。\\{#config.cloud.profileUrl\\}\n パスワードを忘れた場合[Elastic Cloudでリセットしてください](\\{config.cloud.baseUrl\\}\\{config.cloud.profileUrl\\})。\n \\{/config.cloud.profileUrl\\}", - "home.tutorials.common.filebeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.filebeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.filebeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.filebeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.filebeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.filebeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.filebeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.filebeatEnableInstructions.debTextPost": "「/etc/filebeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.debTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatEnableInstructions.osxTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.osxTextPre": "インストールディレクトリから次のファイルを実行します:", - "home.tutorials.common.filebeatEnableInstructions.osxTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatEnableInstructions.rpmTextPost": "「/etc/filebeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.rpmTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", - "home.tutorials.common.filebeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.filebeatInstructions.install.debTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.filebeatInstructions.install.debTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.install.osxTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.filebeatInstructions.install.osxTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.install.rpmTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.filebeatInstructions.install.rpmTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.filebeatInstructions.install.rpmTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.install.windowsTextPost": "{filebeatPath} ファイルの {propertyName} を Elasticsearch のインストールに設定します。", - "home.tutorials.common.filebeatInstructions.install.windowsTextPre": "Filebeatは初めてですか?[クイックスタート]({guideLinkUrl})を参照してください。\n 1.[ダウンロード]({filebeatLinkUrl})ページからFilebeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName}」ディレクトリの名前を「Filebeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Filebeat を Windows サービスとしてインストールします。", - "home.tutorials.common.filebeatInstructions.install.windowsTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.debTitle": "Filebeat を起動します", - "home.tutorials.common.filebeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.osxTitle": "Filebeat を起動します", - "home.tutorials.common.filebeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.rpmTitle": "Filebeat を起動します", - "home.tutorials.common.filebeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.windowsTitle": "Filebeat を起動", - "home.tutorials.common.filebeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.filebeatStatusCheck.errorText": "モジュールからまだデータを受け取っていません", - "home.tutorials.common.filebeatStatusCheck.successText": "このモジュールからデータを受け取りました", - "home.tutorials.common.filebeatStatusCheck.text": "Filebeat の「{moduleName}」モジュールからデータを受け取ったことを確認してください。", - "home.tutorials.common.filebeatStatusCheck.title": "モジュールステータス", - "home.tutorials.common.functionbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.functionbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.functionbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.functionbeatAWSInstructions.textPost": "「」と「」がアカウント資格情報、「us-east-1」がご希望の地域です。", - "home.tutorials.common.functionbeatAWSInstructions.textPre": "環境で AWS アカウント認証情報を設定します。", - "home.tutorials.common.functionbeatAWSInstructions.title": "AWS 認証情報の設定", - "home.tutorials.common.functionbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.functionbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTextPost": "「」が投入するロググループの名前で、「」が Functionbeat デプロイのステージングに使用されるが有効な S3 バケット名です。", - "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTitle": "Cloudwatch ロググループの構成", - "home.tutorials.common.functionbeatEnableOnPremInstructionsOSXLinux.textPre": "「functionbeat.yml」ファイルで設定を変更します。", - "home.tutorials.common.functionbeatEnableOnPremInstructionsWindows.textPre": "{path} ファイルで設定を変更します。", - "home.tutorials.common.functionbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.functionbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatInstructions.config.osxTitle": "Elastic クラスターの構成", - "home.tutorials.common.functionbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.functionbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.functionbeatInstructions.deploy.osxTextPre": "これにより Functionbeat が Lambda 関数としてインストールされます「setup」コマンドで Elasticsearch の構成を確認し、Kibana インデックスパターンを読み込みます。通常このコマンドを省いても大丈夫です。", - "home.tutorials.common.functionbeatInstructions.deploy.osxTitle": "Functionbeat を AWS Lambda にデプロイ", - "home.tutorials.common.functionbeatInstructions.deploy.windowsTextPre": "これにより Functionbeat が Lambda 関数としてインストールされます「setup」コマンドで Elasticsearch の構成を確認し、Kibana インデックスパターンを読み込みます。通常このコマンドを省いても大丈夫です。", - "home.tutorials.common.functionbeatInstructions.deploy.windowsTitle": "Functionbeat を AWS Lambda にデプロイ", - "home.tutorials.common.functionbeatInstructions.install.linuxTextPre": "Functionbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.functionbeatInstructions.install.linuxTitle": "Functionbeat のダウンロードとインストール", - "home.tutorials.common.functionbeatInstructions.install.osxTextPre": "Functionbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.functionbeatInstructions.install.osxTitle": "Functionbeat のダウンロードとインストール", - "home.tutorials.common.functionbeatInstructions.install.windowsTextPre": "Functionbeatは初めてですか?[クイックスタート]({functionbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからFunctionbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName} ディレクトリの名前を「Functionbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトから、Functionbeat ディレクトリに移動します:", - "home.tutorials.common.functionbeatInstructions.install.windowsTitle": "Functionbeat のダウンロードとインストール", - "home.tutorials.common.functionbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.functionbeatStatusCheck.errorText": "Functionbeat からまだデータを受け取っていません", - "home.tutorials.common.functionbeatStatusCheck.successText": "Functionbeat からデータを受け取りました", - "home.tutorials.common.functionbeatStatusCheck.text": "Functionbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.functionbeatStatusCheck.title": "Functionbeat ステータス", - "home.tutorials.common.heartbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.heartbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.heartbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.heartbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.heartbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.heartbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.heartbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.heartbeatEnableCloudInstructions.debTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableCloudInstructions.defaultTextPost": "Heartbeatのモニターの設定の詳細は、[Heartbeat設定ドキュメント]({configureLink})をご覧ください。", - "home.tutorials.common.heartbeatEnableCloudInstructions.defaultTitle": "構成を変更 - 監視を追加", - "home.tutorials.common.heartbeatEnableCloudInstructions.osxTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableCloudInstructions.rpmTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableCloudInstructions.windowsTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.debTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.defaultTextPost": "{hostTemplate}は監視対象のURLです。Heartbeatの監視を構成する手順の詳細は、[Heartbeat構成ドキュメント]({configureLink})をご覧ください。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.defaultTitle": "構成を変更 - 監視を追加", - "home.tutorials.common.heartbeatEnableOnPremInstructions.osxTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.rpmTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.windowsTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", - "home.tutorials.common.heartbeatInstructions.install.debTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.heartbeatInstructions.install.debTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.install.osxTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.heartbeatInstructions.install.osxTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.install.rpmTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.heartbeatInstructions.install.rpmTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.install.windowsTextPre": "Heartbeatは初めてですか?[クイックスタート]({heartbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからHeartbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName} ディレクトリの名前を「Heartbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Heartbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.heartbeatInstructions.install.windowsTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.debTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.osxTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.rpmTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.windowsTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.heartbeatStatusCheck.errorText": "Heartbeat からまだデータを受け取っていません", - "home.tutorials.common.heartbeatStatusCheck.successText": "Heartbeat からデータを受け取りました", - "home.tutorials.common.heartbeatStatusCheck.text": "Heartbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.heartbeatStatusCheck.title": "Heartbeat のステータス", - "home.tutorials.common.logstashInstructions.install.java.osxTextPre": "[こちら]({link})のインストール手順に従ってください。", - "home.tutorials.common.logstashInstructions.install.java.osxTitle": "Java Runtime Environment のダウンロードとインストール", - "home.tutorials.common.logstashInstructions.install.java.windowsTextPre": "[こちら]({link})のインストール手順に従ってください。", - "home.tutorials.common.logstashInstructions.install.java.windowsTitle": "Java Runtime Environment のダウンロードとインストール", - "home.tutorials.common.logstashInstructions.install.logstash.osxTextPre": "Logstash は初めてですか? [入門ガイド]({link})をご覧ください。", - "home.tutorials.common.logstashInstructions.install.logstash.osxTitle": "Logstash のダウンロードとインストール", - "home.tutorials.common.logstashInstructions.install.logstash.windowsTextPre": "Logstash は初めてですか? [入門ガイド]({logstashLink})をご覧ください。\n 1.Logstash Windows zipファイルを[ダウンロード]({elasticLink})します。\n 2.zip ファイルのコンテンツを展開します。", - "home.tutorials.common.logstashInstructions.install.logstash.windowsTitle": "Logstash のダウンロードとインストール", - "home.tutorials.common.metricbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.metricbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.metricbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.metricbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.metricbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.metricbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.metricbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.metricbeatEnableInstructions.debTextPost": "「/etc/metricbeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.debTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatEnableInstructions.osxTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.osxTextPre": "インストールディレクトリから次のファイルを実行します:", - "home.tutorials.common.metricbeatEnableInstructions.osxTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatEnableInstructions.rpmTextPost": "「/etc/metricbeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.rpmTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", - "home.tutorials.common.metricbeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", - "home.tutorials.common.metricbeatInstructions.install.debTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.metricbeatInstructions.install.debTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.install.osxTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.metricbeatInstructions.install.osxTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.install.rpmTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.metricbeatInstructions.install.rpmTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.install.windowsTextPost": "{path} ファイルの「output.elasticsearch」を Elasticsearch のインストールに設定します。", - "home.tutorials.common.metricbeatInstructions.install.windowsTextPre": "Metricbeatは初めてですか?[クイックスタート]({metricbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからMetricbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.{directoryName}ディレクトリの名前を「Metricbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Metricbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.metricbeatInstructions.install.windowsTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.debTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.osxTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.rpmTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.windowsTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.metricbeatStatusCheck.errorText": "モジュールからまだデータを受け取っていません", - "home.tutorials.common.metricbeatStatusCheck.successText": "このモジュールからデータを受け取りました", - "home.tutorials.common.metricbeatStatusCheck.text": "Metricbeat の「{moduleName}」モジュールからデータを受け取ったことを確認してください", - "home.tutorials.common.metricbeatStatusCheck.title": "モジュールステータス", - "home.tutorials.common.premCloudInstructions.option1.textPre": "[Elastic Cloud]({link})にアクセスします。アカウントをお持ちでない場合は新規登録してください。14 日間の無料トライアルがご利用いただけます。\n\nElastic Cloud コンソールにログインします\n\nElastic Cloud コンソールで次の手順に従ってクラスターを作成します。\n 1.[デプロイを作成]を選択して[デプロイ名]を指定します\n 2.必要に応じて他のデプロイオプションを変更します(デフォルトも使い始めるのに有効です)\n 3.「デプロイを作成」をクリックします\n 4.デプロイの作成が完了するまで待ちます\n 5.新規クラウド Kibana インスタンスにアクセスし、Kibana ホームの手順に従います。", - "home.tutorials.common.premCloudInstructions.option1.title": "オプション 1:Elastic Cloud でお試しください", - "home.tutorials.common.premCloudInstructions.option2.textPre": "この Kibana インスタンスをマネージド Elasticsearch インスタンスに対して実行している場合は、手動セットアップを行います。\n\n「Elasticsearch」エンドポイントを {urlTemplate} として保存し、クラスターの「パスワード」を {passwordTemplate} として保存します。", - "home.tutorials.common.premCloudInstructions.option2.title": "オプション 2:Kibana を Cloud インスタンスに接続", - "home.tutorials.common.winlogbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.winlogbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.winlogbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.winlogbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.winlogbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.winlogbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.winlogbeatInstructions.install.windowsTextPost": "{path} ファイルの「output.elasticsearch」を Elasticsearch のインストールに設定します。", - "home.tutorials.common.winlogbeatInstructions.install.windowsTextPre": "Winlogbeatは初めてですか?[クイックスタート]({winlogbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからWinlogbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.{directoryName}ディレクトリの名前を「Winlogbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Winlogbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.winlogbeatInstructions.install.windowsTitle": "Winlogbeat のダウンロードとインストール", - "home.tutorials.common.winlogbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.winlogbeatInstructions.start.windowsTitle": "Winlogbeat を起動", - "home.tutorials.common.winlogbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.winlogbeatStatusCheck.errorText": "まだデータを受信していません", - "home.tutorials.common.winlogbeatStatusCheck.successText": "データを受信しました", - "home.tutorials.common.winlogbeatStatusCheck.text": "Winlogbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.winlogbeatStatusCheck.title": "モジュールステータス", - "home.tutorials.consulMetrics.artifacts.dashboards.linkLabel": "Consul メトリックダッシュボード", - "home.tutorials.consulMetrics.longDescription": "Metricbeatモジュール「consul」は、Consulから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.consulMetrics.nameTitle": "Consul メトリック", - "home.tutorials.consulMetrics.shortDescription": "CouchdB サーバーから監視メトリックを取得します。", - "home.tutorials.corednsLogs.artifacts.dashboards.linkLabel": "[[Filebeat CoreDNS] 概要", - "home.tutorials.corednsLogs.longDescription": "これは CoreDNS の Filebeatモジュールです。スタンドアロンのCoreDNSデプロイメントとKubernetesでのCoreDNSデプロイメントの両方をサポートします。[詳細]({learnMoreLink})", - "home.tutorials.corednsLogs.nameTitle": "CoreDNS ログ", - "home.tutorials.corednsLogs.shortDescription": "CoreDNS ログを収集します。", - "home.tutorials.corednsMetrics.artifacts.application.label": "Discover", - "home.tutorials.corednsMetrics.longDescription": "「coredns」Metricbeatモジュールが、CoreDNSから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.corednsMetrics.nameTitle": "CoreDNS メトリック", - "home.tutorials.corednsMetrics.shortDescription": "CoreDNS サーバーから監視メトリックを取得します。", - "home.tutorials.couchbaseMetrics.artifacts.application.label": "Discover", - "home.tutorials.couchbaseMetrics.longDescription": "「couchbase」Metricbeatモジュールは、Couchbaseから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.couchbaseMetrics.nameTitle": "Couchbase メトリック", - "home.tutorials.couchbaseMetrics.shortDescription": "Couchbase から内部メトリックを取得します。", - "home.tutorials.couchdbMetrics.artifacts.dashboards.linkLabel": "CouchDB メトリックダッシュボード", - "home.tutorials.couchdbMetrics.longDescription": "「couchdb」Metricbeatモジュールが、CouchDBから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.couchdbMetrics.nameTitle": "CouchDB メトリック", - "home.tutorials.couchdbMetrics.shortDescription": "CouchdB サーバーから監視メトリックを取得します。", - "home.tutorials.crowdstrikeLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.crowdstrikeLogs.longDescription": "これはFalcon [SIEM Connector](https://www.crowdstrike.com/blog/tech-center/integrate-with-your-siem)を使用したFilebeat module for CrowdStrike Falconです。 このモジュールはこのデータを収集し、ECS に変換して、取り込み、SIEM に表示します。 デフォルトでは、Falcon SIEMコネクターはJSON形式のFalcon Streaming APIイベントデータを出力します。[詳細]({learnMoreLink})", - "home.tutorials.crowdstrikeLogs.nameTitle": "CrowdStrike ログ", - "home.tutorials.crowdstrikeLogs.shortDescription": "Falcon SIEM コネクターを使用して CrowdStrike Falcon ログを収集します。", - "home.tutorials.cylanceLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.cylanceLogs.longDescription": "これは、SyslogまたはファイルでCylancePROTECTログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.cylanceLogs.nameTitle": "CylancePROTECT ログ", - "home.tutorials.dockerMetrics.artifacts.dashboards.linkLabel": "Docker メトリックダッシュボード", - "home.tutorials.dockerMetrics.longDescription": "「docker」 Metricbeatモジュールは、Dockerサーバーからメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.dockerMetrics.nameTitle": "Docker メトリック", - "home.tutorials.dockerMetrics.shortDescription": "Docker コンテナーに関するメトリックを取得します。", - "home.tutorials.dropwizardMetrics.artifacts.application.label": "Discover", - "home.tutorials.dropwizardMetrics.longDescription": "「dropwizard」 Metricbeatモジュールは、Dropwizard Javaアプリケーションから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.dropwizardMetrics.nameTitle": "Dropwizard メトリック", - "home.tutorials.dropwizardMetrics.shortDescription": "Dropwizard Java アプリケーションから内部メトリックを取得します。", - "home.tutorials.elasticsearchLogs.artifacts.application.label": "Discover", - "home.tutorials.elasticsearchLogs.longDescription": "「elasticsearch」Filebeatモジュールが、Elasticsearchにより作成されたログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.elasticsearchLogs.nameTitle": "Elasticsearch ログ", - "home.tutorials.elasticsearchLogs.shortDescription": "Elasticsearch により作成されたログを収集しパースします。", - "home.tutorials.elasticsearchMetrics.artifacts.application.label": "Discover", - "home.tutorials.elasticsearchMetrics.longDescription": "「elasticsearch」Metricbeatモジュールは、Elasticsearchから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.elasticsearchMetrics.nameTitle": "Elasticsearch メトリック", - "home.tutorials.elasticsearchMetrics.shortDescription": "Elasticsearch から内部メトリックを取得します。", - "home.tutorials.envoyproxyLogs.artifacts.dashboards.linkLabel": "Envoy Proxy 概要", - "home.tutorials.envoyproxyLogs.longDescription": "これは Envoy Proxy アクセスログ(https://www.envoyproxy.io/docs/envoy/v1.10.0/configuration/access_log)用の Filebeat モジュールです。KubernetesでのスタンドアロンのデプロイメントとEnvoyプロキシデプロイメントの両方をサポートします。[詳細]({learnMoreLink})", - "home.tutorials.envoyproxyLogs.nameTitle": "Envoy Proxy ログ", - "home.tutorials.envoyproxyLogs.shortDescription": "Envoy Proxy ログを収集します。", - "home.tutorials.envoyproxyMetrics.longDescription": "Metricbeatモジュール「envoyproxy」は、Envoy Proxyから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.envoyproxyMetrics.nameTitle": "Envoy Proxy メトリック", - "home.tutorials.envoyproxyMetrics.shortDescription": "Envoy Proxy サーバーから監視メトリックを取得します。", - "home.tutorials.etcdMetrics.artifacts.application.label": "Discover", - "home.tutorials.etcdMetrics.longDescription": "「etcd」Metricbeatモジュールは、Etcdから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.etcdMetrics.nameTitle": "Etcd メトリック", - "home.tutorials.etcdMetrics.shortDescription": "Etcd サーバーから内部メトリックを取得します。", - "home.tutorials.f5Logs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.f5Logs.longDescription": "これは、SyslogまたはファイルでBig-IP Access Policy Managerログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.f5Logs.nameTitle": "F5 ログ", - "home.tutorials.f5Logs.shortDescription": "Syslog またはファイルで F5 Big-IP Access Policy Manager ログを収集します。", - "home.tutorials.fortinetLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.fortinetLogs.longDescription": "これはSyslog形式で送信されたFortinet FortiOSログのためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.fortinetLogs.nameTitle": "Fortinet ログ", - "home.tutorials.fortinetLogs.shortDescription": "Syslog で Fortinet FortiOS ログを収集します。", - "home.tutorials.gcpLogs.artifacts.dashboards.linkLabel": "監査ログダッシュボード", - "home.tutorials.gcpLogs.longDescription": "これは Google Cloud ログのモジュールです。StackdriverからGoogle Pub/Subトピックシンクにエクスポートされた監査、VPCフロー、ファイアウォールログの読み取りをサポートします。[詳細]({learnMoreLink})", - "home.tutorials.gcpLogs.nameTitle": "Google Cloud ログ", - "home.tutorials.gcpLogs.shortDescription": "Google Cloud 監査、ファイアウォール、VPC フローログを収集します。", - "home.tutorials.gcpMetrics.artifacts.dashboards.linkLabel": "Google Cloudメトリックダッシュボード", - "home.tutorials.gcpMetrics.longDescription": "「gcp」Metricbeatモジュールは、Stackdriver Monitoring APIを使用して、Google Cloud Platformから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.gcpMetrics.nameTitle": "Google Cloudメトリック", - "home.tutorials.gcpMetrics.shortDescription": "Stackdriver Monitoring API を使用して、Google Cloud Platform から監視メトリックを取得します。", - "home.tutorials.golangMetrics.artifacts.dashboards.linkLabel": "Golang メトリックダッシュボード", - "home.tutorials.golangMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Golangアプリから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.golangMetrics.nameTitle": "Golang メトリック", - "home.tutorials.golangMetrics.shortDescription": "Golang アプリから内部メトリックを取得します。", - "home.tutorials.gsuiteLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.gsuiteLogs.longDescription": "これは異なるGSuite監査レポートAPIからデータを取り込むためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.gsuiteLogs.nameTitle": "GSuite ログ", - "home.tutorials.gsuiteLogs.shortDescription": "GSuite アクティビティレポートを収集します。", - "home.tutorials.haproxyLogs.artifacts.dashboards.linkLabel": "HAProxy 概要", - "home.tutorials.haproxyLogs.longDescription": "このモジュールは、(「haproxy」)プロセスからログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.haproxyLogs.nameTitle": "HAProxy ログ", - "home.tutorials.haproxyLogs.shortDescription": "HAProxy ログを収集します。", - "home.tutorials.haproxyMetrics.artifacts.application.label": "Discover", - "home.tutorials.haproxyMetrics.longDescription": "「haproxy」Metricbeatモジュールは、HAProxyアプリから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.haproxyMetrics.nameTitle": "HAProxy メトリック", - "home.tutorials.haproxyMetrics.shortDescription": "HAProxy サーバーから内部メトリックを取得します。", - "home.tutorials.ibmmqLogs.artifacts.dashboards.linkLabel": "IBM MQ イベント", - "home.tutorials.ibmmqLogs.longDescription": "Filebeat で IBM MQ ログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.ibmmqLogs.nameTitle": "IBM MQ ログ", - "home.tutorials.ibmmqLogs.shortDescription": "Filebeat で IBM MQ ログを収集します。", - "home.tutorials.ibmmqMetrics.artifacts.application.label": "Discover", - "home.tutorials.ibmmqMetrics.nameTitle": "IBM MQ メトリック", - "home.tutorials.ibmmqMetrics.shortDescription": "IBM MQ インスタンスから監視メトリックを取得します。", - "home.tutorials.icingaLogs.artifacts.dashboards.linkLabel": "Icinga Main ログ", - "home.tutorials.icingaLogs.longDescription": "このモジュールは[Icinga](https://www.icinga.com/products/icinga-2/)のメイン、デバッグ、スタートアップログを解析します。[詳細]({learnMoreLink})", - "home.tutorials.icingaLogs.nameTitle": "Icinga ログ", - "home.tutorials.icingaLogs.shortDescription": "Icinga メイン、デバッグ、スタートアップログを収集します。", - "home.tutorials.iisLogs.artifacts.dashboards.linkLabel": "IIS ログダッシュボード", - "home.tutorials.iisLogs.longDescription": "「iis」Filebeatモジュールが、Nginx HTTPサーバーにより作成されたアクセスとエラーのログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.iisLogs.nameTitle": "IIS ログ", - "home.tutorials.iisLogs.shortDescription": "IIS HTTP サーバーにより作成されたアクセスとエラーのログを収集しパースします。", - "home.tutorials.iisMetrics.artifacts.dashboards.linkLabel": "IISメトリックダッシュボード", - "home.tutorials.iisMetrics.longDescription": "「iis」Metricbeatモジュールは、IISサーバーおよび実行中のアプリケーションプールとWebサイトからメトリックを収集します。[詳細]({learnMoreLink})", - "home.tutorials.iisMetrics.nameTitle": "IISメトリック", - "home.tutorials.iisMetrics.shortDescription": "IISサーバー関連メトリックを収集します。", - "home.tutorials.impervaLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.impervaLogs.longDescription": "これは、SyslogまたはファイルでSecureSphereログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.impervaLogs.nameTitle": "Imperva ログ", - "home.tutorials.impervaLogs.shortDescription": "Syslog またはファイルから Imperva SecureSphere ログを収集します。", - "home.tutorials.infobloxLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.infobloxLogs.longDescription": "これは、SyslogまたはファイルでInfoblox NIOSログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.infobloxLogs.nameTitle": "Infoblox ログ", - "home.tutorials.infobloxLogs.shortDescription": "Syslog またはファイルから Infoblox NIOS ログを収集します。", - "home.tutorials.iptablesLogs.artifacts.dashboards.linkLabel": "Iptables 概要", - "home.tutorials.iptablesLogs.longDescription": "これは iptables と ip6tables ログ用のモジュールです。ネットワーク上で受信した syslog ログ経由や、ファイルからのログをパースします。また、ルールセット名、ルール番号、トラフィックに実行されたアクション (許可/拒否) を含む、Ubiquitiファイアウォールにより追加された接頭辞も認識できます [詳細]({learnMoreLink})", - "home.tutorials.iptablesLogs.nameTitle": "Iptables ログ", - "home.tutorials.iptablesLogs.shortDescription": "iptables および ip6tables ログを収集します。", - "home.tutorials.juniperLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.juniperLogs.longDescription": "これは、SyslogまたはファイルでJuniper JUNOSログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.juniperLogs.nameTitle": "Juniper ログ", - "home.tutorials.juniperLogs.shortDescription": "Syslog またはファイルから Juniper JUNOS ログを収集します。", - "home.tutorials.kafkaLogs.artifacts.dashboards.linkLabel": "Kafka ログダッシュボード", - "home.tutorials.kafkaLogs.longDescription": "「kafka」Filebeatモジュールは、Kafkaが作成したログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.kafkaLogs.nameTitle": "Kafka ログ", - "home.tutorials.kafkaLogs.shortDescription": "Kafka が作成したログを収集しパースします。", - "home.tutorials.kafkaMetrics.artifacts.application.label": "Discover", - "home.tutorials.kafkaMetrics.longDescription": "「kafka」Metricbeatモジュールは、Kafkaから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.kafkaMetrics.nameTitle": "Kafka メトリック", - "home.tutorials.kafkaMetrics.shortDescription": "Kafka サーバーから内部メトリックを取得します。", - "home.tutorials.kibanaLogs.artifacts.application.label": "Discover", - "home.tutorials.kibanaLogs.longDescription": "これはKibanaモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.kibanaLogs.nameTitle": "Kibana ログ", - "home.tutorials.kibanaLogs.shortDescription": "Kibana ログを収集します。", - "home.tutorials.kibanaMetrics.artifacts.application.label": "Discover", - "home.tutorials.kibanaMetrics.longDescription": "「kibana」Metricbeatモジュールは、Kibanaから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.kibanaMetrics.nameTitle": "Kibana メトリック", - "home.tutorials.kibanaMetrics.shortDescription": "Kibana から内部メトリックを取得します。", - "home.tutorials.kubernetesMetrics.artifacts.dashboards.linkLabel": "Kubernetes メトリックダッシュボード", - "home.tutorials.kubernetesMetrics.longDescription": "「kubernetes」Metricbeatモジュールは、Kubernetes APIからメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.kubernetesMetrics.nameTitle": "Kubernetes メトリック", - "home.tutorials.kubernetesMetrics.shortDescription": "Kubernetes からメトリックを取得します。", - "home.tutorials.logstashLogs.artifacts.dashboards.linkLabel": "Logstash ログ", - "home.tutorials.logstashLogs.longDescription": "このモジュールはLogstash標準ログと低速ログを解析します。プレーンテキスト形式とJSON形式がサポートされます。[詳細]({learnMoreLink})", - "home.tutorials.logstashLogs.nameTitle": "Logstash ログ", - "home.tutorials.logstashLogs.shortDescription": "Logstash メインおよび低速ログを収集します。", - "home.tutorials.logstashMetrics.artifacts.application.label": "Discover", - "home.tutorials.logstashMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Logstashサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.logstashMetrics.nameTitle": "Logstash メトリック", - "home.tutorials.logstashMetrics.shortDescription": "Logstash サーバーから内部メトリックを取得します。", - "home.tutorials.memcachedMetrics.artifacts.application.label": "Discover", - "home.tutorials.memcachedMetrics.longDescription": "「memcached」Metricbeatモジュールは、Memcachedから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.memcachedMetrics.nameTitle": "Memcached メトリック", - "home.tutorials.memcachedMetrics.shortDescription": "Memcached サーバーから内部メトリックを取得します。", - "home.tutorials.microsoftLogs.artifacts.dashboards.linkLabel": "Microsoft ATP 概要", - "home.tutorials.microsoftLogs.longDescription": "Elastic Securityで使用するMicrosoft Defender ATPアラートを収集します。[詳細]({learnMoreLink})", - "home.tutorials.microsoftLogs.nameTitle": "Microsoft Defender ATP ログ", - "home.tutorials.microsoftLogs.shortDescription": "Microsoft Defender ATP アラートを収集します。", - "home.tutorials.mispLogs.artifacts.dashboards.linkLabel": "MISP 概要", - "home.tutorials.mispLogs.longDescription": "これは MISP プラットフォーム(https://www.circl.lu/doc/misp/)から脅威インテリジェンス情報を読み取るための Filebeatモジュールです。MISP REST APIインターフェイスにアクセスするためにhttpjson入力を使用します。[詳細]({learnMoreLink})", - "home.tutorials.mispLogs.nameTitle": "MISP 脅威インテリジェンスログ", - "home.tutorials.mispLogs.shortDescription": "Filebeat を使用して MISP 脅威インテリジェンスデータを収集します。", - "home.tutorials.mongodbLogs.artifacts.dashboards.linkLabel": "MongoDB概要", - "home.tutorials.mongodbLogs.longDescription": "このモジュールは、[MongoDB](https://www.mongodb.com/)によって作成されたログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.mongodbLogs.nameTitle": "MongoDB ログ", - "home.tutorials.mongodbLogs.shortDescription": "MongoDB ログを収集します。", - "home.tutorials.mongodbMetrics.artifacts.dashboards.linkLabel": "MongoDB メトリックダッシュボード", - "home.tutorials.mongodbMetrics.longDescription": "「mongodb」Metricbeatモジュールは、MongoDBサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.mongodbMetrics.nameTitle": "MongoDB メトリック", - "home.tutorials.mongodbMetrics.shortDescription": "MongoDB から内部メトリックを取得します。", - "home.tutorials.mssqlLogs.artifacts.application.label": "Discover", - "home.tutorials.mssqlLogs.longDescription": "このモジュールはMSSQLにより作成されたエラーログを解析します。[詳細]({learnMoreLink})", - "home.tutorials.mssqlLogs.nameTitle": "MSSQL ログ", - "home.tutorials.mssqlLogs.shortDescription": "MSSQL ログを収集します。", - "home.tutorials.mssqlMetrics.artifacts.dashboards.linkLabel": "Microsoft SQL Server メトリックダッシュボード", - "home.tutorials.mssqlMetrics.longDescription": "「mssql」Metricbeatモジュールが、Microsoft SQL Serverインスタンスからの監視、ログ、パフォーマンスメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.mssqlMetrics.nameTitle": "Microsoft SQL Serverメトリック", - "home.tutorials.mssqlMetrics.shortDescription": "Microsoft SQL Server インスタンスから監視メトリックを取得します。", - "home.tutorials.muninMetrics.artifacts.application.label": "Discover", - "home.tutorials.muninMetrics.longDescription": "「munin」Metricbeatモジュールは、Muninから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.muninMetrics.nameTitle": "Munin メトリック", - "home.tutorials.muninMetrics.shortDescription": "Munin サーバーから内部メトリックを取得します。", - "home.tutorials.mysqlLogs.artifacts.dashboards.linkLabel": "MySQL ログダッシュボード", - "home.tutorials.mysqlLogs.longDescription": "「mysql」Filebeatモジュールは、MySQLが作成したエラーとスローログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.mysqlLogs.nameTitle": "MySQL ログ", - "home.tutorials.mysqlLogs.shortDescription": "MySQL が作成したエラーとスローログを収集しパースします。", - "home.tutorials.mysqlMetrics.artifacts.dashboards.linkLabel": "MySQL メトリックダッシュボード", - "home.tutorials.mysqlMetrics.longDescription": "「mysql」Metricbeatモジュールは、MySQLサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.mysqlMetrics.nameTitle": "MySQL メトリック", - "home.tutorials.mysqlMetrics.shortDescription": "MySQL から内部メトリックを取得します。", - "home.tutorials.natsLogs.artifacts.dashboards.linkLabel": "NATSログダッシュボード", - "home.tutorials.natsLogs.longDescription": "「nats」Filebeatモジュールが、Natsにより作成されたログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.natsLogs.nameTitle": "NATSログ", - "home.tutorials.natsLogs.shortDescription": "Nats により作成されたログを収集しパースします。", - "home.tutorials.natsMetrics.artifacts.dashboards.linkLabel": "NATSメトリックダッシュボード", - "home.tutorials.natsMetrics.longDescription": "「nats」Metricbeatモジュールが、Natsから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.natsMetrics.nameTitle": "NATSメトリック", - "home.tutorials.natsMetrics.shortDescription": "Nats サーバーから監視メトリックを取得します。", - "home.tutorials.netflowLogs.artifacts.dashboards.linkLabel": "Netflow 概要", - "home.tutorials.netflowLogs.longDescription": "これは UDP で NetFlow および IPFIX フローレコードを受信するモジュールです。この入力は、NetFlow バージョン 1、5、6、7、8、9、IPFIX をサポートします。NetFlowバージョン9以外では、フィールドが自動的にNetFlow v9にマッピングされます。[詳細]({learnMoreLink})", - "home.tutorials.netflowLogs.nameTitle": "NetFlow / IPFIX Collector", - "home.tutorials.netflowLogs.shortDescription": "NetFlow および IPFIX フローレコードを収集します。", - "home.tutorials.netscoutLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.netscoutLogs.longDescription": "これは、SyslogまたはファイルでArbor Peakflow SPログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.netscoutLogs.nameTitle": "Arbor Peakflow ログ", - "home.tutorials.netscoutLogs.shortDescription": "Syslog またはファイルから Netscout Arbor Peakflow SP ログを収集します。", - "home.tutorials.nginxLogs.artifacts.dashboards.linkLabel": "Nginx ログダッシュボード", - "home.tutorials.nginxLogs.longDescription": "「nginx」Filebeatモジュールは、Nginx HTTPサーバーが作成したアクセスとエラーのログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.nginxLogs.nameTitle": "Nginx ログ", - "home.tutorials.nginxLogs.shortDescription": "Nginx HTTP サーバーが作成したアクセスとエラーのログを収集しパースします。", - "home.tutorials.nginxMetrics.artifacts.dashboards.linkLabel": "Nginx メトリックダッシュボード", - "home.tutorials.nginxMetrics.longDescription": "Metricbeat モジュール「nginx」は、Nginx サーバーから内部メトリックを取得します。このモジュールは{statusModuleLink}が作成したウェブページからサーバーステータスデータを取得します。Nginxインストールで有効にする必要があります。[詳細]({learnMoreLink})", - "home.tutorials.nginxMetrics.nameTitle": "Nginx メトリック", - "home.tutorials.nginxMetrics.shortDescription": "Nginx HTTP サーバーから内部メトリックを取得します。", - "home.tutorials.o365Logs.artifacts.dashboards.linkLabel": "O365 監査ダッシュボード", - "home.tutorials.o365Logs.longDescription": "これは Office 365 API エンドポイントのいずれか経由で受信された Office 365 ログのモジュールです。現在、ユーザー、管理者、システム、ポリシーアクションのほか、Office 365 Management Activity APIによって公開されたOffice 365およびAzure ADアクティビティログからのイベントがサポートされています。 [詳細]({learnMoreLink})", - "home.tutorials.o365Logs.nameTitle": "Office 365 ログ", - "home.tutorials.o365Logs.shortDescription": "Office 365 API 経由で Office 365 アクティビティログを収集します。", - "home.tutorials.oktaLogs.artifacts.dashboards.linkLabel": "Okta 概要", - "home.tutorials.oktaLogs.longDescription": "Oktaモジュールは[Okta API](https://developer.okta.com/docs/reference/)からイベントを収集します。 特にこれは[OktaシステムログAPI](https://developer.okta.com/docs/reference/api/system-log/)からの読み取りをサポートします。 [詳細]({learnMoreLink})", - "home.tutorials.oktaLogs.nameTitle": "Okta ログ", - "home.tutorials.oktaLogs.shortDescription": "Okta API 経由で Okta システムログを収集します。", - "home.tutorials.openmetricsMetrics.longDescription": "Metricbeatモジュール「openmetrics」は、OpenMetricsの形式でメトリックを提供するエンドポイントからメトリックをフェッチします。[詳細]({learnMoreLink})", - "home.tutorials.openmetricsMetrics.nameTitle": "OpenMetrics メトリック", - "home.tutorials.openmetricsMetrics.shortDescription": "OpenMetrics 形式でメトリックを提供するエンドポイントからメトリックを取得します。", - "home.tutorials.oracleMetrics.artifacts.application.label": "Discover", - "home.tutorials.oracleMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Oraclサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.oracleMetrics.nameTitle": "Oracleメトリック", - "home.tutorials.oracleMetrics.shortDescription": "Oracleサーバーから内部メトリックを取得します。", - "home.tutorials.osqueryLogs.artifacts.dashboards.linkLabel": "Osquery コンプライアンスパック", - "home.tutorials.osqueryLogs.longDescription": "このモジュールはJSON形式で[osqueryd](https://osquery.readthedocs.io/en/latest/introduction/using-osqueryd/)で書き込まれた結果ログを収集してデコードします。osqueryd を設定するには、ご使用のオペレーティングシステムの osquery インストール手順に従い、「filesystem」ロギングドラバー(デフォルト)を構成します。 UTCタイムスタンプが有効であることを確認してください。 [詳細]({learnMoreLink})", - "home.tutorials.osqueryLogs.nameTitle": "Osquery ログ", - "home.tutorials.osqueryLogs.shortDescription": "JSON 形式で osquery を収集します。", - "home.tutorials.panwLogs.artifacts.dashboards.linkLabel": "PANW ネットワークフロー", - "home.tutorials.panwLogs.longDescription": "このモジュールは、Syslog から受信したログまたはファイルから読み取られたログを監視する Palo Alto Networks PAN-OS ファイアウォール監視ログのモジュールです。現在、トラフィックおよび脅威タイプのメッセージがサポートされています。[詳細]({learnMoreLink})", - "home.tutorials.panwLogs.nameTitle": "Palo Alto Networks PAN-OS ログ", - "home.tutorials.panwLogs.shortDescription": "Syslog またはログファイルから Palo Alto Networks PAN-OS 脅威およびトラフィックログを収集します。", - "home.tutorials.phpFpmMetrics.longDescription": "「php_fpm」Metricbeatモジュールは、PHP-FPMサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.phpFpmMetrics.nameTitle": "PHP-FPM メトリック", - "home.tutorials.phpFpmMetrics.shortDescription": "PHP-FPM から内部メトリックを取得します。", - "home.tutorials.postgresqlLogs.artifacts.dashboards.linkLabel": "PostgreSQL ログダッシュボード", - "home.tutorials.postgresqlLogs.longDescription": "「postgresql」Filebeatモジュールが、PostgreSQLにより作成されたエラーとスローログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.postgresqlLogs.nameTitle": "PostgreSQL ログ", - "home.tutorials.postgresqlLogs.shortDescription": "PostgreSQL により作成されたエラーとスローログを収集しパースします。", - "home.tutorials.postgresqlMetrics.longDescription": "「postgresql」Metricbeatモジュールは、PostgreSQLサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.postgresqlMetrics.nameTitle": "PostgreSQL メトリック", - "home.tutorials.postgresqlMetrics.shortDescription": "PostgreSQL から内部メトリックを取得します。", - "home.tutorials.prometheusMetrics.artifacts.application.label": "Discover", - "home.tutorials.prometheusMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Prometheusエンドポイントからメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.prometheusMetrics.nameTitle": "Prometheus メトリック", - "home.tutorials.prometheusMetrics.shortDescription": "Prometheus エクスポーターからメトリックを取得します。", - "home.tutorials.rabbitmqLogs.artifacts.application.label": "Discover", - "home.tutorials.rabbitmqLogs.longDescription": "このモジュールは[RabbitMQログファイル](https://www.rabbitmq.com/logging.html)を解析します [詳細]({learnMoreLink})。", - "home.tutorials.rabbitmqLogs.nameTitle": "RabbitMQ ログ", - "home.tutorials.rabbitmqLogs.shortDescription": "RabbitMQ ログを収集します。", - "home.tutorials.rabbitmqMetrics.artifacts.dashboards.linkLabel": "RabbitMQ メトリックダッシュボード", - "home.tutorials.rabbitmqMetrics.longDescription": "「rabbitmq」Metricbeatモジュールは、RabbitMQサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.rabbitmqMetrics.nameTitle": "RabbitMQ メトリック", - "home.tutorials.rabbitmqMetrics.shortDescription": "RabbitMQ サーバーから内部メトリックを取得します。", - "home.tutorials.radwareLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.radwareLogs.longDescription": "これは、SyslogまたはファイルでRadware DefenseProログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.radwareLogs.nameTitle": "Radware DefensePro ログ", - "home.tutorials.radwareLogs.shortDescription": "Syslog またはファイルから Radware DefensePro ログを収集します。", - "home.tutorials.redisenterpriseMetrics.artifacts.application.label": "Discover", - "home.tutorials.redisenterpriseMetrics.nameTitle": "Redis Enterprise メトリック", - "home.tutorials.redisenterpriseMetrics.shortDescription": "Redis Enterprise Server から監視メトリックを取得します。", - "home.tutorials.redisLogs.artifacts.dashboards.linkLabel": "Redis ログダッシュボード", - "home.tutorials.redisLogs.longDescription": "「redis」Filebeat モジュールは、Redis が作成したエラーとスローログをパースします。Redis がエラーログを作成するには、Redis 構成ファイルの「logfile」オプションが「redis-server.log」に設定されていることを確認してください。スローログは「SLOWLOG」コマンドで Redis から直接的に読み込まれます。Redis でスローログを記録するには、「slowlog-log-slower-than」オプションが設定されていることを確認してください。「slowlog」ファイルセットは実験的な機能のためご注意ください。[詳細]({learnMoreLink})", - "home.tutorials.redisLogs.nameTitle": "Redis ログ", - "home.tutorials.redisLogs.shortDescription": "Redis が作成したエラーとスローログを収集しパースします。", - "home.tutorials.redisMetrics.artifacts.dashboards.linkLabel": "Redis メトリックダッシュボード", - "home.tutorials.redisMetrics.longDescription": "「redis」Metricbeatモジュールは、Redisサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.redisMetrics.nameTitle": "Redis メトリック", - "home.tutorials.redisMetrics.shortDescription": "Redis から内部メトリックを取得します。", - "home.tutorials.santaLogs.artifacts.dashboards.linkLabel": "Santa 概要", - "home.tutorials.santaLogs.longDescription": "このモジュールは、プロセス実行を監視し、バイナリをブラックリスト/ホワイトリストに登録できるmacOS向けのセキュリティツールである[Google Santa](https://github.com/google/santa)からログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.santaLogs.nameTitle": "Google Santa ログ", - "home.tutorials.santaLogs.shortDescription": "MacOS でのプロセス実行に関する Google Santa ログを収集します。", - "home.tutorials.sonicwallLogs.longDescription": "これは、SyslogまたはファイルでSonicwall-FWログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.sonicwallLogs.nameTitle": "Sonicwall FW ログ", - "home.tutorials.sonicwallLogs.shortDescription": "Syslog またはファイルから Sonicwall-FW ログを収集します。", - "home.tutorials.sophosLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.sophosLogs.longDescription": "これはSophos製品用モジュールであり、Syslog形式で送信されたXG SFOSログが現在サポートされています。[詳細]({learnMoreLink})", - "home.tutorials.sophosLogs.nameTitle": "Sophos ログ", - "home.tutorials.sophosLogs.shortDescription": "Syslog で Sophos XG SFOS ログを収集します。", - "home.tutorials.squidLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.squidLogs.longDescription": "これは、SyslogまたはファイルでSquidログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.squidLogs.nameTitle": "Squid ログ", - "home.tutorials.squidLogs.shortDescription": "Syslog またはファイルから Squid ログを収集します。", - "home.tutorials.stanMetrics.artifacts.dashboards.linkLabel": "Stan メトリックダッシュボード", - "home.tutorials.stanMetrics.longDescription": "Metricbeatモジュール「stan」は、STANから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.stanMetrics.nameTitle": "STAN メトリック", - "home.tutorials.stanMetrics.shortDescription": "STAN サーバーから監視メトリックを取得します。", - "home.tutorials.statsdMetrics.longDescription": "Metricbeatモジュール「statsd」は、statsdから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.statsdMetrics.nameTitle": "statsd メトリック", - "home.tutorials.statsdMetrics.shortDescription": "statsd から監視メトリックを取得します。", - "home.tutorials.suricataLogs.artifacts.dashboards.linkLabel": "Suricata イベント概要", - "home.tutorials.suricataLogs.longDescription": "このモジュールは Suricata IDS/IPS/NSM ログ用です。[Suricata Eve JSON形式](https://suricata.readthedocs.io/en/latest/output/eve/eve-json-format.html)のログを解析します。 [詳細]({learnMoreLink})", - "home.tutorials.suricataLogs.nameTitle": "Suricata ログ", - "home.tutorials.suricataLogs.shortDescription": "Suricata IDS/IPS/NSM ログを収集します。", - "home.tutorials.systemLogs.artifacts.dashboards.linkLabel": "システム Syslog ダッシュボード", - "home.tutorials.systemLogs.longDescription": "このモジュールは、一般的なUnix/Linuxベースのディストリビューションのシステムログサービスが作成したログを収集しパースします。[詳細]({learnMoreLink})", - "home.tutorials.systemLogs.nameTitle": "システムログ", - "home.tutorials.systemLogs.shortDescription": "一般的な Unix/Linux ベースのディストリビューションのシステムログを収集します。", - "home.tutorials.systemMetrics.artifacts.dashboards.linkLabel": "システムメトリックダッシュボード", - "home.tutorials.systemMetrics.longDescription": "Metricbeat モジュール「system」は、ホストから CPU、メモリー、ネットワーク、ディスクの統計を収集します。システム全体の統計とプロセスやファイルシステムごとの統計を収集します。[詳細]({learnMoreLink})", - "home.tutorials.systemMetrics.nameTitle": "システムメトリック", - "home.tutorials.systemMetrics.shortDescription": "ホストから CPU、メモリー、ネットワーク、ディスクの統計を収集します。", - "home.tutorials.tomcatLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.tomcatLogs.longDescription": "これは、SyslogまたはファイルでApache Tomcatログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.tomcatLogs.nameTitle": "Tomcat ログ", - "home.tutorials.tomcatLogs.shortDescription": "Syslog またはファイルから Apache Tomcat ログを収集します。", - "home.tutorials.traefikLogs.artifacts.dashboards.linkLabel": "Traefik アクセスログ", - "home.tutorials.traefikLogs.longDescription": "このモジュールは[Træfik](https://traefik.io/)によって作成されたアクセスログを解析します。[詳細]({learnMoreLink})", - "home.tutorials.traefikLogs.nameTitle": "Traefik ログ", - "home.tutorials.traefikLogs.shortDescription": "Traefik アクセスログを収集します。", - "home.tutorials.traefikMetrics.longDescription": "Metricbeatモジュール「traefik」は、Traefikから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.traefikMetrics.nameTitle": "Traefik メトリック", - "home.tutorials.traefikMetrics.shortDescription": "Traefik から監視メトリックを取得します。", - "home.tutorials.uptimeMonitors.artifacts.dashboards.linkLabel": "Uptime アプリ", - "home.tutorials.uptimeMonitors.longDescription": "アクティブなプロービングでサービスの稼働状況を監視します。 HeartbeatはURLのリストに基づいて、シンプルにたずねます。「稼働していますか?」と。 [詳細]({learnMoreLink})", - "home.tutorials.uptimeMonitors.nameTitle": "稼働状況監視", - "home.tutorials.uptimeMonitors.shortDescription": "サービスの稼働状況を監視します。", - "home.tutorials.uwsgiMetrics.artifacts.dashboards.linkLabel": "uWSGI メトリックダッシュボード", - "home.tutorials.uwsgiMetrics.longDescription": "「uwsgi」Metricbeatモジュールは、uWSGIサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.uwsgiMetrics.nameTitle": "uWSGI メトリック", - "home.tutorials.uwsgiMetrics.shortDescription": "uWSGI サーバーから内部メトリックを取得します。", - "home.tutorials.vsphereMetrics.artifacts.application.label": "Discover", - "home.tutorials.vsphereMetrics.longDescription": "「vsphere」Metricbeatモジュールは、vSphereクラスターから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.vsphereMetrics.nameTitle": "vSphere メトリック", - "home.tutorials.vsphereMetrics.shortDescription": "vSphere から内部メトリックを取得します。", - "home.tutorials.windowsEventLogs.artifacts.application.label": "SIEM アプリ", - "home.tutorials.windowsEventLogs.longDescription": "Winlogbeatを使用してWindows Event Logからのログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.windowsEventLogs.nameTitle": "Windows イベントログ", - "home.tutorials.windowsEventLogs.shortDescription": "Windows イベントログからイベントを取得します。", - "home.tutorials.windowsMetrics.artifacts.application.label": "Discover", - "home.tutorials.windowsMetrics.longDescription": "「windows」Metricbeatモジュールは、Windowsから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.windowsMetrics.nameTitle": "Windows メトリック", - "home.tutorials.windowsMetrics.shortDescription": "Windows から内部メトリックを取得します。", - "home.tutorials.zeekLogs.artifacts.dashboards.linkLabel": "Zeek 概要", - "home.tutorials.zeekLogs.longDescription": "これは Zeek(旧称 Bro)のモジュールです。[Zeek JSON形式](https://www.zeek.org/manual/release/logs/index.html)のログを解析します。 [詳細]({learnMoreLink})", - "home.tutorials.zeekLogs.nameTitle": "Zeek ログ", - "home.tutorials.zeekLogs.shortDescription": "Zeek ネットワークセキュリティ監視ログを収集します。", - "home.tutorials.zookeeperMetrics.artifacts.application.label": "Discover", - "home.tutorials.zookeeperMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Zookeeperサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.zookeeperMetrics.nameTitle": "Zookeeper メトリック", - "home.tutorials.zookeeperMetrics.shortDescription": "Zookeeper サーバーから内部メトリックを取得します。", - "home.tutorials.zscalerLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.zscalerLogs.longDescription": "これは、Syslog またはファイルで Zscaler NSS ログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.zscalerLogs.nameTitle": "Zscaler ログ", - "home.tutorials.zscalerLogs.shortDescription": "これは、Syslog またはファイルで Zscaler NSS ログを受信するためのモジュールです。", - "home.welcomeTitle": "Elasticへようこそ", - "indexPatternEditor.aliasLabel": "エイリアス", - "indexPatternEditor.createIndex.noMatch": "名前は1つ以上のデータストリーム、インデックス、またはインデックスエイリアスと一致する必要があります。", - "indexPatternEditor.createIndexPattern.emptyState.checkDataButton": "新規データを確認", - "indexPatternEditor.createIndexPattern.emptyState.haveData": "すでにデータがある場合", - "indexPatternEditor.createIndexPattern.emptyState.integrationCardDescription": "さまざまなソースからデータを追加します。", - "indexPatternEditor.createIndexPattern.emptyState.integrationCardTitle": "統合の追加", - "indexPatternEditor.createIndexPattern.emptyState.learnMore": "詳細について", - "indexPatternEditor.createIndexPattern.emptyState.noDataTitle": "Kibanaを試しますか?まずデータが必要です。", - "indexPatternEditor.createIndexPattern.emptyState.readDocs": "ドキュメンテーションを表示", - "indexPatternEditor.createIndexPattern.emptyState.sampleDataCardDescription": "データセットとKibanaダッシュボードを読み込みます。", - "indexPatternEditor.createIndexPattern.emptyState.sampleDataCardTitle": "サンプルデータの追加", - "indexPatternEditor.createIndexPattern.emptyState.uploadCardDescription": "CSV、NDJSON、またはログファイルをインポートします。", - "indexPatternEditor.createIndexPattern.emptyState.uploadCardTitle": "ファイルをアップロード", - "indexPatternEditor.createIndexPattern.stepTime.noTimeFieldOptionLabel": "--- 時間フィルターを使用しない ---", - "indexPatternEditor.dataStreamLabel": "データストリーム", - "indexPatternEditor.editor.emptyPrompt.flyoutCloseButtonLabel": "閉じる", - "indexPatternEditor.editor.flyoutCloseButtonLabel": "閉じる", - "indexPatternEditor.editor.flyoutSaveButtonLabel": "インデックスパターンを作成", - "indexPatternEditor.editor.form.advancedSettings.hideButtonLabel": "高度な SIEM 設定の非表示化", - "indexPatternEditor.editor.form.advancedSettings.showButtonLabel": "高度なSIEM設定の表示", - "indexPatternEditor.editor.form.allowHiddenLabel": "非表示のインデックスとシステムインデックスを許可", - "indexPatternEditor.editor.form.customIdHelp": "Kibanaは各インデックスパターンの一意のIDを提供します。独自のIDを作成することもできます。", - "indexPatternEditor.editor.form.customIdLabel": "カスタムインデックスパターンID", - "indexPatternEditor.editor.form.noTimeFieldsLabel": "一致するデータストリーム、インデックス、またはインデックスエイリアスにはタイムスタンプフィールドがありません。", - "indexPatternEditor.editor.form.runtimeType.placeholderLabel": "タイムスタンプフィールドを選択", - "indexPatternEditor.editor.form.timeFieldHelp": "グローバル時間フィルターで使用するためのタイムスタンプフィールドを選択してください。", - "indexPatternEditor.editor.form.timeFieldLabel": "タイムスタンプフィールド", - "indexPatternEditor.editor.form.timestampFieldHelp": "グローバル時間フィルターで使用するためのタイムスタンプフィールドを選択してください。", - "indexPatternEditor.editor.form.timestampSelectAriaLabel": "タイムスタンプフィールド", - "indexPatternEditor.editor.form.titleLabel": "名前", - "indexPatternEditor.editor.form.TypeLabel": "インデックスパターンタイプ", - "indexPatternEditor.editor.form.typeSelectAriaLabel": "タイプフィールド", - "indexPatternEditor.emptyIndexPatternPrompt.documentation": "ドキュメンテーションを表示", - "indexPatternEditor.emptyIndexPatternPrompt.learnMore": "詳細について", - "indexPatternEditor.emptyIndexPatternPrompt.youHaveData": "Elasticsearchにデータがあります。", - "indexPatternEditor.form.allowHiddenAriaLabel": "非表示のインデックスとシステムインデックスを許可", - "indexPatternEditor.form.customIndexPatternIdLabel": "カスタムインデックスパターンID", - "indexPatternEditor.form.titleAriaLabel": "タイトルフィールド", - "indexPatternEditor.frozenLabel": "凍結", - "indexPatternEditor.indexLabel": "インデックス", - "indexPatternEditor.loadingHeader": "一致するインデックスを検索中…", - "indexPatternEditor.pagingLabel": "ページごとの行数:{perPage}", - "indexPatternEditor.requireTimestampOption.ValidationErrorMessage": "タイムスタンプフィールドを選択します。", - "indexPatternEditor.rollup.uncaughtError": "ロールアップインデックスパターンエラー:{error}", - "indexPatternEditor.rollupIndexPattern.warning.title": "ベータ機能", - "indexPatternEditor.rollupLabel": "ロールアップ", - "indexPatternEditor.saved": "Saved '{indexPatternTitle}'", - "indexPatternEditor.status.noSystemIndicesLabel": "データストリーム、インデックス、またはインデックスエイリアスがインデックスパターンと一致しません。", - "indexPatternEditor.status.noSystemIndicesWithPromptLabel": "データストリーム、インデックス、またはインデックスエイリアスがインデックスパターンと一致しません。", - "indexPatternEditor.status.notMatchLabel.notMatchDetail": "入力したインデックスパターンはデータストリーム、インデックス、またはインデックスエイリアスと一致しません。{strongIndices}と一致できます。", - "indexPatternEditor.status.notMatchLabel.notMatchNoIndicesDetail": "入力したインデックスパターンはデータストリーム、インデックス、またはインデックスエイリアスと一致しません。", - "indexPatternEditor.title": "インデックスパターンを作成", - "indexPatternEditor.typeSelect.betaLabel": "ベータ", - "indexPatternEditor.typeSelect.rollup": "ロールアップ", - "indexPatternEditor.typeSelect.rollupDescription": "要約データに制限された集約を実行します。", - "indexPatternEditor.typeSelect.rollupTitle": "ロールアップインデックスパターン", - "indexPatternEditor.typeSelect.standard": "スタンダード", - "indexPatternEditor.typeSelect.standardDescription": "すべてのデータに完全アグリゲーションを実行", - "indexPatternEditor.typeSelect.standardTitle": "標準インデックスパターン", - "indexPatternEditor.validations.titleHelpText": "複数の文字の一致にアスタリスク(*)を使用します。ペースと / ? , \" < > | 文字は使用できません。", - "indexPatternEditor.validations.titleIsRequiredErrorMessage": "名前が必要です。", - "indexPatternFieldEditor.cancelField.confirmationModal.cancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.cancelField.confirmationModal.description": "フィールドの変更は破棄されます。続行しますか?", - "indexPatternFieldEditor.cancelField.confirmationModal.title": "変更を破棄", - "indexPatternFieldEditor.color.actions": "アクション", - "indexPatternFieldEditor.color.addColorButton": "色を追加", - "indexPatternFieldEditor.color.backgroundLabel": "背景色", - "indexPatternFieldEditor.color.deleteAria": "削除", - "indexPatternFieldEditor.color.deleteTitle": "色のフォーマットを削除", - "indexPatternFieldEditor.color.exampleLabel": "例", - "indexPatternFieldEditor.color.patternLabel": "パターン(正規表現)", - "indexPatternFieldEditor.color.rangeLabel": "範囲(min:max)", - "indexPatternFieldEditor.color.textColorLabel": "文字の色", - "indexPatternFieldEditor.createField.flyoutAriaLabel": "フィールドを作成", - "indexPatternFieldEditor.date.documentationLabel": "ドキュメント", - "indexPatternFieldEditor.date.momentLabel": "Moment.jsのフォーマットパターン(デフォルト:{defaultPattern})", - "indexPatternFieldEditor.defaultErrorMessage": "このフォーマット構成の使用を試みた際にエラーが発生しました:{message}", - "indexPatternFieldEditor.defaultFormatDropDown": "- デフォルト -", - "indexPatternFieldEditor.defaultFormatHeader": "フォーマット(デフォルト:{defaultFormat})", - "indexPatternFieldEditor.deleteField.savedHeader": "「{fieldName}」が保存されました", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.cancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.removeButtonLabel": "フィールドの削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.removeMultipleButtonLabel": "フィールドの削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.saveButtonLabel": "変更を保存", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.deleteMultipleTitle": "{count}個のフィールドを削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.deleteSingleTitle": "フィールド'{name}'を削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.multipleDeletionDescription": "これらのランタイムフィールドを削除しようとしています。", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.typeConfirm": "REMOVEと入力すると確認します", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.warningChangingFields": "名前または型を変更すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.warningRemovingFields": "フィールドを削除すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", - "indexPatternFieldEditor.duration.decimalPlacesLabel": "小数部分の桁数", - "indexPatternFieldEditor.duration.includeSpace": "サフィックスと値の間にスペースを入れる", - "indexPatternFieldEditor.duration.inputFormatLabel": "インプット形式", - "indexPatternFieldEditor.duration.outputFormatLabel": "アウトプット形式", - "indexPatternFieldEditor.duration.showSuffixLabel": "接尾辞を表示", - "indexPatternFieldEditor.duration.showSuffixLabel.short": "短縮サフィックスを使用", - "indexPatternFieldEditor.durationErrorMessage": "小数部分の桁数は0から20までの間で指定する必要があります", - "indexPatternFieldEditor.editField.flyoutAriaLabel": "{fieldName} フィールドの編集", - "indexPatternFieldEditor.editor.flyoutCancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.editor.flyoutDefaultTitle": "フィールドを作成", - "indexPatternFieldEditor.editor.flyoutEditFieldSubtitle": "インデックスパターン:{patternName}", - "indexPatternFieldEditor.editor.flyoutEditFieldTitle": "「{fieldName}」フィールドの編集", - "indexPatternFieldEditor.editor.flyoutSaveButtonLabel": "保存", - "indexPatternFieldEditor.editor.form.advancedSettings.hideButtonLabel": "高度な SIEM 設定の非表示化", - "indexPatternFieldEditor.editor.form.advancedSettings.showButtonLabel": "高度なSIEM設定の表示", - "indexPatternFieldEditor.editor.form.changeWarning": "名前または型を変更すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", - "indexPatternFieldEditor.editor.form.customLabelDescription": "Discover、Maps、Visualizeでフィールド名の代わりに表示するラベルを作成します。長いフィールド名を短くする際に役立ちます。 クエリとフィルターは元のフィールド名を使用します。", - "indexPatternFieldEditor.editor.form.customLabelLabel": "カスタムラベル", - "indexPatternFieldEditor.editor.form.customLabelTitle": "カスタムラベルを設定", - "indexPatternFieldEditor.editor.form.defineFieldLabel": "スクリプトを定義", - "indexPatternFieldEditor.editor.form.fieldShadowingCalloutDescription": "このフィールドはマッピングされたフィールドの名前を共有します。このフィールドの値は検索結果に返されます。", - "indexPatternFieldEditor.editor.form.fieldShadowingCalloutTitle": "フィールドシャドーイング", - "indexPatternFieldEditor.editor.form.formatDescription": "値を表示する任意の形式を設定します。形式を変更すると値に影響し、Discoverでのハイライトができない可能性があります。", - "indexPatternFieldEditor.editor.form.formatTitle": "フォーマットの設定", - "indexPatternFieldEditor.editor.form.nameAriaLabel": "名前フィールド", - "indexPatternFieldEditor.editor.form.nameLabel": "名前", - "indexPatternFieldEditor.editor.form.popularityDescription": "ポピュラリティを調整し、フィールドリストでフィールドを上下に表示させます。 デフォルトでは、Discoverは選択の多いものから選択の少ないものの順に表示します。", - "indexPatternFieldEditor.editor.form.popularityLabel": "利用頻度", - "indexPatternFieldEditor.editor.form.popularityTitle": "ポピュラリティ", - "indexPatternFieldEditor.editor.form.runtimeType.placeholderLabel": "タイプを選択", - "indexPatternFieldEditor.editor.form.runtimeTypeLabel": "型", - "indexPatternFieldEditor.editor.form.script.learnMoreLinkText": "スクリプト構文の詳細を参照してください。", - "indexPatternFieldEditor.editor.form.scriptEditor.compileErrorMessage": "Painlessスクリプトのコンパイルエラー", - "indexPatternFieldEditor.editor.form.scriptEditorAriaLabel": "スクリプトエディター", - "indexPatternFieldEditor.editor.form.source.scriptFieldHelpText": "スクリプトがないランタイムフィールドは、{source}から値を取得します。フィールドが_sourceに存在しない場合は、検索リクエストは値を返しません。{learnMoreLink}", - "indexPatternFieldEditor.editor.form.typeSelectAriaLabel": "タイプ選択", - "indexPatternFieldEditor.editor.form.validations.customLabelIsRequiredErrorMessage": "フィールドにラベルを付けます。", - "indexPatternFieldEditor.editor.form.validations.nameIsRequiredErrorMessage": "名前が必要です。", - "indexPatternFieldEditor.editor.form.validations.popularityGreaterThan0ErrorMessage": "ポピュラリティはゼロ以上でなければなりません。", - "indexPatternFieldEditor.editor.form.validations.popularityIsRequiredErrorMessage": "フィールドにポピュラリティを割り当てます。", - "indexPatternFieldEditor.editor.form.validations.scriptIsRequiredErrorMessage": "フィールド値を設定するには、スクリプトが必要です。", - "indexPatternFieldEditor.editor.form.valueDescription": "{source}の同じ名前のフィールドから取得するのではなく、フィールドの値を設定します。", - "indexPatternFieldEditor.editor.form.valueTitle": "値を設定", - "indexPatternFieldEditor.editor.runtimeFieldsEditor.existRuntimeFieldNamesValidationErrorMessage": "この名前のフィールドはすでに存在します。", - "indexPatternFieldEditor.fieldPreview.documentIdField.label": "ドキュメントID", - "indexPatternFieldEditor.fieldPreview.documentIdField.loadDocumentsFromCluster": "クラスターからドキュメントを読み込む", - "indexPatternFieldEditor.fieldPreview.documentNav.nextArialabel": "次のドキュメント", - "indexPatternFieldEditor.fieldPreview.documentNav.previousArialabel": "前のドキュメント", - "indexPatternFieldEditor.fieldPreview.emptyPromptDescription": "既存のフィールドの名前を入力するか、スクリプトを定義して、計算された出力のプレビューを表示します。", - "indexPatternFieldEditor.fieldPreview.emptyPromptTitle": "プレビュー", - "indexPatternFieldEditor.fieldPreview.error.documentNotFoundDescription": "ドキュメントIDが見つかりません", - "indexPatternFieldEditor.fieldPreview.errorCallout.title": "プレビューエラー", - "indexPatternFieldEditor.fieldPreview.errorTitle": "フィールドプレビューを読み込めませんでした", - "indexPatternFieldEditor.fieldPreview.filterFieldsPlaceholder": "フィールドのフィルタリング", - "indexPatternFieldEditor.fieldPreview.pinFieldButtonLabel": "フィールドを固定", - "indexPatternFieldEditor.fieldPreview.searchResult.emptyPrompt.clearSearchButtonLabel": "検索のクリア", - "indexPatternFieldEditor.fieldPreview.searchResult.emptyPromptTitle": "このインデックスパターンには一致するフィールドがありません", - "indexPatternFieldEditor.fieldPreview.showLessFieldsButtonLabel": "簡易表示", - "indexPatternFieldEditor.fieldPreview.showMoreFieldsButtonLabel": "詳細表示", - "indexPatternFieldEditor.fieldPreview.subTitle": "開始:{from}", - "indexPatternFieldEditor.fieldPreview.subTitle.customData": "カスタムデータ", - "indexPatternFieldEditor.fieldPreview.title": "プレビュー", - "indexPatternFieldEditor.fieldPreview.updatingPreviewLabel": "更新中...", - "indexPatternFieldEditor.fieldPreview.viewImageButtonLabel": "画像を表示", - "indexPatternFieldEditor.formatHeader": "フォーマット", - "indexPatternFieldEditor.histogram.histogramAsNumberLabel": "アグリゲーションされた数値形式", - "indexPatternFieldEditor.histogram.numeralLabel": "数値形式パターン(任意)", - "indexPatternFieldEditor.histogram.subFormat.bytes": "バイト", - "indexPatternFieldEditor.histogram.subFormat.number": "数字", - "indexPatternFieldEditor.histogram.subFormat.percent": "割合(%)", - "indexPatternFieldEditor.noSuchFieldName": "フィールド名'{fieldName}'はインデックスパターンで見つかりません", - "indexPatternFieldEditor.number.documentationLabel": "ドキュメント", - "indexPatternFieldEditor.number.numeralLabel": "Numeral.js のフォーマットパターン (デフォルト: {defaultPattern})", - "indexPatternFieldEditor.samples.inputHeader": "インプット", - "indexPatternFieldEditor.samples.outputHeader": "アウトプット", - "indexPatternFieldEditor.samplesHeader": "サンプル", - "indexPatternFieldEditor.save.deleteErrorTitle": "フィールド削除を保存できませんでした", - "indexPatternFieldEditor.save.errorTitle": "フィールド変更を保存できませんでした", - "indexPatternFieldEditor.saveRuntimeField.confirmationModal.cancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.saveRuntimeField.confirmModal.title": "変更を'{name}'に保存", - "indexPatternFieldEditor.saveRuntimeField.confirmModal.typeConfirm": "続行するにはCHANGEと入力します", - "indexPatternFieldEditor.staticLookup.actions": "アクション", - "indexPatternFieldEditor.staticLookup.addEntryButton": "エントリーを追加", - "indexPatternFieldEditor.staticLookup.deleteAria": "削除", - "indexPatternFieldEditor.staticLookup.deleteTitle": "エントリーの削除", - "indexPatternFieldEditor.staticLookup.keyLabel": "キー", - "indexPatternFieldEditor.staticLookup.leaveBlankPlaceholder": "値をそのままにするには空欄にします", - "indexPatternFieldEditor.staticLookup.unknownKeyLabel": "不明なキーの値", - "indexPatternFieldEditor.staticLookup.valueLabel": "値", - "indexPatternFieldEditor.string.transformLabel": "変換", - "indexPatternFieldEditor.truncate.lengthLabel": "フィールドの長さ", - "indexPatternFieldEditor.url.heightLabel": "高さ", - "indexPatternFieldEditor.url.labelTemplateHelpText": "ラベルテンプレートのヘルプ", - "indexPatternFieldEditor.url.labelTemplateLabel": "ラベルテンプレート", - "indexPatternFieldEditor.url.offLabel": "オフ", - "indexPatternFieldEditor.url.onLabel": "オン", - "indexPatternFieldEditor.url.openTabLabel": "新規タブで開く", - "indexPatternFieldEditor.url.template.helpLinkText": "URLテンプレートのヘルプ", - "indexPatternFieldEditor.url.typeLabel": "型", - "indexPatternFieldEditor.url.urlTemplateLabel": "URLテンプレート", - "indexPatternFieldEditor.url.widthLabel": "幅", - "indexPatternManagement.actions.cancelButton": "キャンセル", - "indexPatternManagement.actions.createButton": "フィールドを作成", - "indexPatternManagement.actions.deleteButton": "削除", - "indexPatternManagement.actions.saveButton": "フィールドを保存", - "indexPatternManagement.createHeader": "スクリプトフィールドを作成", - "indexPatternManagement.customLabel": "カスタムラベル", - "indexPatternManagement.defaultFormatDropDown": "- デフォルト -", - "indexPatternManagement.defaultFormatHeader": "フォーマット(デフォルト:{defaultFormat})", - "indexPatternManagement.deleteField.cancelButton": "キャンセル", - "indexPatternManagement.deleteField.deleteButton": "削除", - "indexPatternManagement.deleteField.deletedHeader": "「{fieldName}」が削除されました", - "indexPatternManagement.deleteField.savedHeader": "「{fieldName}」が保存されました", - "indexPatternManagement.deleteFieldHeader": "フィールド「{fieldName}」を削除", - "indexPatternManagement.deleteFieldLabel": "削除されたフィールドは復元できません。{separator}続行してよろしいですか?", - "indexPatternManagement.disabledCallOutHeader": "スクリプティングが無効です", - "indexPatternManagement.disabledCallOutLabel": "Elasticsearchでのすべてのインラインスクリプティングが無効になっています。Kibanaでスクリプトフィールドを使用するには、インラインスクリプティングを有効にする必要があります。", - "indexPatternManagement.editHeader": "{fieldName}を編集", - "indexPatternManagement.editIndexPattern.deleteButton": "削除", - "indexPatternManagement.editIndexPattern.deprecation": "スクリプトフィールドは廃止予定です。代わりに{runtimeDocs}を使用してください。", - "indexPatternManagement.editIndexPattern.fields.addFieldButtonLabel": "フィールドの追加", - "indexPatternManagement.editIndexPattern.fields.allLangsDropDown": "すべての言語", - "indexPatternManagement.editIndexPattern.fields.allTypesDropDown": "すべてのフィールドタイプ", - "indexPatternManagement.editIndexPattern.fields.filterAria": "フィールドタイプをフィルター", - "indexPatternManagement.editIndexPattern.fields.filterPlaceholder": "検索", - "indexPatternManagement.editIndexPattern.fields.searchAria": "検索フィールド", - "indexPatternManagement.editIndexPattern.fields.table.additionalInfoAriaLabel": "追加フィールド情報", - "indexPatternManagement.editIndexPattern.fields.table.aggregatableDescription": "これらのフィールドはビジュアライゼーションの集約に使用できます", - "indexPatternManagement.editIndexPattern.fields.table.aggregatableLabel": "集約可能", - "indexPatternManagement.editIndexPattern.fields.table.customLabelTooltip": "フィールドのカスタムラベル。", - "indexPatternManagement.editIndexPattern.fields.table.deleteDescription": "削除", - "indexPatternManagement.editIndexPattern.fields.table.deleteLabel": "削除", - "indexPatternManagement.editIndexPattern.fields.table.editDescription": "編集", - "indexPatternManagement.editIndexPattern.fields.table.editLabel": "編集", - "indexPatternManagement.editIndexPattern.fields.table.excludedDescription": "取得の際に_sourceから除外されるフィールドです", - "indexPatternManagement.editIndexPattern.fields.table.excludedLabel": "除外", - "indexPatternManagement.editIndexPattern.fields.table.formatHeader": "フォーマット", - "indexPatternManagement.editIndexPattern.fields.table.isAggregatableAria": "は集約可能です", - "indexPatternManagement.editIndexPattern.fields.table.isExcludedAria": "は除外されています", - "indexPatternManagement.editIndexPattern.fields.table.isSearchableAria": "は検索可能です", - "indexPatternManagement.editIndexPattern.fields.table.multiTypeAria": "複数タイプのフィールド", - "indexPatternManagement.editIndexPattern.fields.table.multiTypeTooltip": "このフィールドのタイプはインデックスごとに変わります。多くの分析機能には使用できません。", - "indexPatternManagement.editIndexPattern.fields.table.nameHeader": "名前", - "indexPatternManagement.editIndexPattern.fields.table.primaryTimeAriaLabel": "プライマリ時間フィールド", - "indexPatternManagement.editIndexPattern.fields.table.primaryTimeTooltip": "このフィールドはイベントの発生時刻を表します。", - "indexPatternManagement.editIndexPattern.fields.table.runtimeIconTipTitle": "ランタイムフィールド", - "indexPatternManagement.editIndexPattern.fields.table.searchableDescription": "これらのフィールドはフィルターバーで使用できます", - "indexPatternManagement.editIndexPattern.fields.table.searchableHeader": "検索可能", - "indexPatternManagement.editIndexPattern.fields.table.typeHeader": "型", - "indexPatternManagement.editIndexPattern.list.DateHistogramDelaySummary": "遅延:{delay},", - "indexPatternManagement.editIndexPattern.list.dateHistogramSummary": "{aggName} (間隔:{interval}, {delay} {time_zone})", - "indexPatternManagement.editIndexPattern.list.defaultIndexPatternListName": "デフォルト", - "indexPatternManagement.editIndexPattern.list.histogramSummary": "{aggName} (間隔:{interval})", - "indexPatternManagement.editIndexPattern.list.rollupIndexPatternListName": "ロールアップ", - "indexPatternManagement.editIndexPattern.mappingConflictHeader": "マッピングの矛盾", - "indexPatternManagement.editIndexPattern.scripted.addFieldButton": "スクリプトフィールドを追加", - "indexPatternManagement.editIndexPattern.scripted.deleteField.cancelButton": "キャンセル", - "indexPatternManagement.editIndexPattern.scripted.deleteField.deleteButton": "削除", - "indexPatternManagement.editIndexPattern.scripted.deleteFieldLabel": "スクリプトフィールド「{fieldName}」を削除しますか?", - "indexPatternManagement.editIndexPattern.scripted.deprecationLangHeader": "廃止された言語が使用されています", - "indexPatternManagement.editIndexPattern.scripted.deprecationLangLabel.deprecationLangDetail": "次の廃止された言語が使用されています。{deprecatedLangsInUse}これらの言語は、KibanaとElasticsearchの次のメジャーバージョンでサポートされなくなります。問題を避けるため、スクリプトフィールドを{link}に変換してください。", - "indexPatternManagement.editIndexPattern.scripted.deprecationLangLabel.painlessDescription": "Painless", - "indexPatternManagement.editIndexPattern.scripted.newFieldPlaceholder": "新規スクリプトフィールド", - "indexPatternManagement.editIndexPattern.scripted.table.deleteDescription": "このフィールドを削除します", - "indexPatternManagement.editIndexPattern.scripted.table.deleteHeader": "削除", - "indexPatternManagement.editIndexPattern.scripted.table.editDescription": "このフィールドを編集します", - "indexPatternManagement.editIndexPattern.scripted.table.editHeader": "編集", - "indexPatternManagement.editIndexPattern.scripted.table.formatDescription": "フィールドに使用されているフォーマットです", - "indexPatternManagement.editIndexPattern.scripted.table.formatHeader": "フォーマット", - "indexPatternManagement.editIndexPattern.scripted.table.langDescription": "フィールドに使用されている言語です", - "indexPatternManagement.editIndexPattern.scripted.table.langHeader": "言語", - "indexPatternManagement.editIndexPattern.scripted.table.nameDescription": "フィールドの名前です", - "indexPatternManagement.editIndexPattern.scripted.table.nameHeader": "名前", - "indexPatternManagement.editIndexPattern.scripted.table.scriptDescription": "フィールドのスクリプトです", - "indexPatternManagement.editIndexPattern.scripted.table.scriptHeader": "スクリプト", - "indexPatternManagement.editIndexPattern.scriptedLabel": "スクリプトフィールドはビジュアライゼーションで使用され、ドキュメントに表示できます。ただし、検索することはできません。", - "indexPatternManagement.editIndexPattern.source.addButtonLabel": "追加", - "indexPatternManagement.editIndexPattern.source.deleteFilter.cancelButtonLabel": "キャンセル", - "indexPatternManagement.editIndexPattern.source.deleteFilter.deleteButtonLabel": "削除", - "indexPatternManagement.editIndexPattern.source.deleteSourceFilterLabel": "フィールドフィルター「{value}」を削除しますか?", - "indexPatternManagement.editIndexPattern.source.noteLabel": "下の表で、マルチフィールドが一致として誤って表示されます。これらのフィルターは、オリジナルのソースドキュメントのフィールドのみに適用されるため、一致するマルチフィールドはフィルタリングされません。", - "indexPatternManagement.editIndexPattern.source.table.cancelAria": "キャンセル", - "indexPatternManagement.editIndexPattern.source.table.deleteAria": "削除", - "indexPatternManagement.editIndexPattern.source.table.editAria": "編集", - "indexPatternManagement.editIndexPattern.source.table.filterDescription": "フィルター名", - "indexPatternManagement.editIndexPattern.source.table.filterHeader": "フィルター", - "indexPatternManagement.editIndexPattern.source.table.matchesDescription": "フィールドに使用されている言語です", - "indexPatternManagement.editIndexPattern.source.table.matchesHeader": "一致", - "indexPatternManagement.editIndexPattern.source.table.notMatchedLabel": "ソースフィルターが既知のフィールドと一致しません。", - "indexPatternManagement.editIndexPattern.source.table.saveAria": "保存", - "indexPatternManagement.editIndexPattern.sourceLabel": "フィールドフィルターは、ドキュメントの取得時に 1 つまたは複数のフィールドを除外するのに使用される場合もあります。これは Discover アプリでのドキュメントの表示中、またはダッシュボードアプリの保存された検索の結果を表示する表で起こります。ドキュメントに大きなフィールドや重要ではないフィールドが含まれている場合、この程度の低いレベルでフィルターにより除外すると良いかもしれません。", - "indexPatternManagement.editIndexPattern.sourcePlaceholder": "フィールドフィルター、ワイルドカード使用可(例:「user*」と入力して「user」で始まるフィールドをフィルタリング)", - "indexPatternManagement.editIndexPattern.tabs.fieldsHeader": "フィールド", - "indexPatternManagement.editIndexPattern.tabs.scriptedHeader": "スクリプトフィールド", - "indexPatternManagement.editIndexPattern.tabs.sourceHeader": "フィールドフィルター", - "indexPatternManagement.editIndexPattern.timeFilterHeader": "時刻フィールド:「{timeFieldName}」", - "indexPatternManagement.editIndexPattern.timeFilterLabel.mappingAPILink": "フィールドマッピング", - "indexPatternManagement.editIndexPattern.timeFilterLabel.timeFilterDetail": "{indexPatternTitle}でフィールドを表示して編集します。型や検索可否などのフィールド属性はElasticsearchで{mappingAPILink}に基づきます。", - "indexPatternManagement.fieldTypeConflict": "フィールドタイプの矛盾", - "indexPatternManagement.formatHeader": "フォーマット", - "indexPatternManagement.formatLabel": "フォーマットは、特定の値の表示形式を管理できます。また、値を完全に変更したり、Discover でのハイライト機能を無効にしたりすることも可能です。", - "indexPatternManagement.header.runtimeLink": "ランタイムフィールド", - "indexPatternManagement.indexNameLabel": "インデックス名", - "indexPatternManagement.indexPatterns.badge.readOnly.text": "読み取り専用", - "indexPatternManagement.indexPatterns.createFieldBreadcrumb": "フィールドを作成", - "indexPatternManagement.labelHelpText": "このフィールドが Discover、Maps、Visualize に表示されるときに使用するカスタムラベルを設定します。現在、クエリとフィルターはカスタムラベルをサポートせず、元のフィールド名が使用されます。", - "indexPatternManagement.languageLabel": "言語", - "indexPatternManagement.mappingConflictLabel.mappingConflictDetail": "{mappingConflict} {fieldName}というフィールドはすでに存在します。スクリプトフィールドに同じ名前を付けると、同時に両方のフィールドにクエリが実行できなくなります。", - "indexPatternManagement.mappingConflictLabel.mappingConflictLabel": "マッピングの矛盾:", - "indexPatternManagement.multiTypeLabelDesc": "このフィールドのタイプはインデックスごとに変わります。多くの分析機能には使用できません。タイプごとのインデックスは次のとおりです。", - "indexPatternManagement.nameErrorMessage": "名前が必要です", - "indexPatternManagement.nameLabel": "名前", - "indexPatternManagement.namePlaceholder": "新規スクリプトフィールド", - "indexPatternManagement.popularityLabel": "利用頻度", - "indexPatternManagement.script.accessWithLabel": "{code} でフィールドにアクセスします。", - "indexPatternManagement.script.getHelpLabel": "構文のヒントを得たり、スクリプトの結果をプレビューしたりできます。", - "indexPatternManagement.scriptedFieldsDeprecatedBody": "柔軟性とPainlessスクリプトサポートを強化するには、{runtimeDocs}を使用してください。", - "indexPatternManagement.scriptedFieldsDeprecatedTitle": "スクリプトフィールドは廃止予定です。", - "indexPatternManagement.scriptingLanguages.errorFetchingToastDescription": "Elasticsearchから利用可能なスクリプト言語の取得中にエラーが発生しました", - "indexPatternManagement.scriptInvalidErrorMessage": "スクリプトが無効です。詳細については、スクリプトプレビューを表示してください", - "indexPatternManagement.scriptLabel": "スクリプト", - "indexPatternManagement.scriptRequiredErrorMessage": "スクリプトが必要です", - "indexPatternManagement.syntax.default.formatLabel": "doc['some_field'].value", - "indexPatternManagement.syntax.defaultLabel.defaultDetail": "デフォルトで、KibanaのスクリプトフィールドはElasticsearchでの使用を目的に特別に開発されたシンプルでセキュアなスクリプト言語の{painless}を使用します。ドキュメントの値にアクセスするには次のフォーマットを使用します。", - "indexPatternManagement.syntax.defaultLabel.painlessLink": "Painless", - "indexPatternManagement.syntax.kibanaLabel": "現在、Kibanaでは、作成するPainlessスクリプトに特別な制限が1つ設定されています。Named関数を含めることができません。", - "indexPatternManagement.syntax.lucene.commonLabel.commonDetail": "Kibanaの旧バージョンからのアップグレードですか?おなじみの{lucene}は引き続きご利用いただけます。Lucene式はJavaScriptと非常に似ていますが、基本的な計算、ビット処理、比較オペレーション用に開発されたものです。", - "indexPatternManagement.syntax.lucene.commonLabel.luceneLink": "Lucene表現", - "indexPatternManagement.syntax.lucene.limits.fieldsLabel": "格納されたフィールドは利用できません", - "indexPatternManagement.syntax.lucene.limits.sparseLabel": "フィールドがまばらな(ドキュメントの一部にしか値がない)場合、値がないドキュメントには 0 の値が入力されます", - "indexPatternManagement.syntax.lucene.limits.typesLabel": "数字、ブール、日付、geo_pointフィールドのみアクセスできます", - "indexPatternManagement.syntax.lucene.limitsLabel": "Lucene表現には次のいくつかの制限があります。", - "indexPatternManagement.syntax.lucene.operations.arithmeticLabel": "算術演算子:{operators}", - "indexPatternManagement.syntax.lucene.operations.bitwiseLabel": "ビット処理演算子:{operators}", - "indexPatternManagement.syntax.lucene.operations.booleanLabel": "ブール演算子(三項演算子を含む):{operators}", - "indexPatternManagement.syntax.lucene.operations.comparisonLabel": "比較演算子:{operators}", - "indexPatternManagement.syntax.lucene.operations.distanceLabel": "距離関数:{operators}", - "indexPatternManagement.syntax.lucene.operations.mathLabel": "一般的な関数:{operators}", - "indexPatternManagement.syntax.lucene.operations.miscellaneousLabel": "その他関数:{operators}", - "indexPatternManagement.syntax.lucene.operations.trigLabel": "三角ライブラリ関数:{operators}", - "indexPatternManagement.syntax.lucene.operationsLabel": "Lucene表現で利用可能なオペレーションは次のとおりです。", - "indexPatternManagement.syntax.painlessLabel.javaAPIsLink": "ネイティブJava API", - "indexPatternManagement.syntax.painlessLabel.painlessDetail": "Painlessは非常に強力かつ使いやすい言語です。多くの{javaAPIs}にアクセスすることができます。{syntax}について読めば、すぐに習得することができます!", - "indexPatternManagement.syntax.painlessLabel.syntaxLink": "構文", - "indexPatternManagement.syntaxHeader": "構文", - "indexPatternManagement.testScript.errorMessage": "スクリプト内にエラーがあります", - "indexPatternManagement.testScript.fieldsLabel": "追加フィールド", - "indexPatternManagement.testScript.fieldsPlaceholder": "選択してください...", - "indexPatternManagement.testScript.instructions": "スクリプトを実行すると、最初の検索結果10件をプレビューできます。追加フィールドを選択して結果に含み、コンテキストをさらに加えたり、特定の文書上でフィルターにクエリを追加したりすることもできます。", - "indexPatternManagement.testScript.resultsLabel": "最初の10件", - "indexPatternManagement.testScript.resultsTitle": "結果を表示", - "indexPatternManagement.testScript.submitButtonLabel": "スクリプトを実行", - "indexPatternManagement.typeLabel": "型", - "indexPatternManagement.warningCallOutLabel.callOutDetail": "この機能を使う前に、{scripFields}と{scriptsInAggregation}についてよく理解するようにしてください。計算値の表示と集約にスクリプトフィールドが使用できます。そのため非常に遅い場合があり、適切に行わないとKibanaが使用できなくなる可能性もあります。", - "indexPatternManagement.warningCallOutLabel.runtimeLink": "ランタイムフィールド", - "indexPatternManagement.warningCallOutLabel.scripFieldsLink": "スクリプトフィールド", - "indexPatternManagement.warningCallOutLabel.scriptsInAggregationLink": "集約におけるスクリプト", - "indexPatternManagement.warningHeader": "廃止警告:", - "indexPatternManagement.warningLabel.painlessLinkLabel": "Painless", - "indexPatternManagement.warningLabel.warningDetail": "{language}は廃止され、KibanaとElasticsearchの次のメジャーバージョンではサポートされなくなります。新規スクリプトフィールドには{painlessLink}を使うことをお勧めします。", - "inputControl.control.noIndexPatternTooltip": "index-pattern id が見つかりませんでした:{indexPatternId}.", - "inputControl.control.notInitializedTooltip": "コントロールが初期化されていません", - "inputControl.control.noValuesDisableTooltip": "「{indexPatternName}」インデックスパターンでいずれのドキュメントにも存在しない「{fieldName}」フィールドがフィルターの対象になっています。異なるフィールドを選択するか、このフィールドに値が入力されているドキュメントをインデックスしてください。", - "inputControl.editor.controlEditor.controlLabel": "コントロールラベル", - "inputControl.editor.controlEditor.moveControlDownAriaLabel": "コントロールを下に移動", - "inputControl.editor.controlEditor.moveControlUpAriaLabel": "コントロールを上に移動", - "inputControl.editor.controlEditor.removeControlAriaLabel": "コントロールを削除", - "inputControl.editor.controlsTab.addButtonLabel": "追加", - "inputControl.editor.controlsTab.select.addControlAriaLabel": "コントロールを追加", - "inputControl.editor.controlsTab.select.controlTypeAriaLabel": "コントロールタイプを選択してください", - "inputControl.editor.controlsTab.select.listDropDownOptionLabel": "オプションリスト", - "inputControl.editor.controlsTab.select.rangeDropDownOptionLabel": "範囲スライダー", - "inputControl.editor.fieldSelect.fieldLabel": "フィールド", - "inputControl.editor.fieldSelect.selectFieldPlaceholder": "フィールドを選択してください...", - "inputControl.editor.indexPatternSelect.patternLabel": "インデックスパターン", - "inputControl.editor.indexPatternSelect.patternPlaceholder": "インデックスパターンを選択してください...", - "inputControl.editor.listControl.dynamicOptions.stringFieldDescription": "「文字列」フィールドでのみ利用可能", - "inputControl.editor.listControl.dynamicOptions.updateDescription": "ユーザーインプットに対する更新オプション", - "inputControl.editor.listControl.dynamicOptionsLabel": "ダイナミックオプション", - "inputControl.editor.listControl.multiselectDescription": "複数選択を許可", - "inputControl.editor.listControl.multiselectLabel": "複数選択", - "inputControl.editor.listControl.parentDescription": "オプションは親コントロールの値がベースになっています。親が設定されていない場合は無効です。", - "inputControl.editor.listControl.parentLabel": "親コントロール", - "inputControl.editor.listControl.sizeDescription": "オプション数", - "inputControl.editor.listControl.sizeLabel": "サイズ", - "inputControl.editor.optionsTab.pinFiltersLabel": "すべてのアプリケーションのフィルターをピン付け", - "inputControl.editor.optionsTab.updateFilterLabel": "変更するごとに Kibana フィルターを更新", - "inputControl.editor.optionsTab.useTimeFilterLabel": "時間フィルターを使用", - "inputControl.editor.rangeControl.decimalPlacesLabel": "小数部分の桁数", - "inputControl.editor.rangeControl.stepSizeLabel": "ステップサイズ", - "inputControl.function.help": "インプットコントロールビジュアライゼーション", - "inputControl.listControl.disableTooltip": "「{label}」が設定されるまで無効です。", - "inputControl.listControl.unableToFetchTooltip": "用語を取得できません、エラー:{errorMessage}", - "inputControl.rangeControl.unableToFetchTooltip": "範囲(最低値と最高値)を取得できません、エラー: {errorMessage}", - "inputControl.register.controlsDescription": "ドロップダウンメニューと範囲スライダーをダッシュボードに追加します。", - "inputControl.register.controlsTitle": "コントロール", - "inputControl.register.tabs.controlsTitle": "コントロール", - "inputControl.register.tabs.optionsTitle": "オプション", - "inputControl.vis.inputControlVis.applyChangesButtonLabel": "変更を適用", - "inputControl.vis.inputControlVis.cancelChangesButtonLabel": "変更をキャンセル", - "inputControl.vis.inputControlVis.clearFormButtonLabel": "用語を消去", - "inputControl.vis.listControl.partialResultsWarningMessage": "リクエストに長くかかり過ぎているため、用語リストが不完全な可能性があります。完全な結果を得るには、kibana.yml の自動完了設定を調整してください。", - "inputControl.vis.listControl.selectPlaceholder": "選択してください...", - "inputControl.vis.listControl.selectTextPlaceholder": "選択してください...", - "inspector.closeButton": "インスペクターを閉じる", - "inspector.reqTimestampDescription": "リクエストの開始が記録された時刻です", - "inspector.reqTimestampKey": "リクエストのタイムスタンプ", - "inspector.requests.copyToClipboardLabel": "クリップボードにコピー", - "inspector.requests.descriptionRowIconAriaLabel": "説明", - "inspector.requests.failedLabel": " (失敗)", - "inspector.requests.noRequestsLoggedDescription.elementHasNotLoggedAnyRequestsText": "エレメントが(まだ)リクエストを記録していません。", - "inspector.requests.noRequestsLoggedDescription.whatDoesItUsuallyMeanText": "これは通常、データを取得する必要がないか、エレメントがまだデータの取得を開始していないことを意味します。", - "inspector.requests.noRequestsLoggedTitle": "リクエストが記録されていません", - "inspector.requests.requestFailedTooltipTitle": "リクエストに失敗しました", - "inspector.requests.requestInProgressAriaLabel": "リクエストが進行中", - "inspector.requests.requestsDescriptionTooltip": "データを収集したリクエストを表示します", - "inspector.requests.requestsTitle": "リクエスト", - "inspector.requests.requestSucceededTooltipTitle": "リクエスト成功", - "inspector.requests.requestTabLabel": "リクエスト", - "inspector.requests.requestTimeLabel": "{requestTime}ms", - "inspector.requests.requestTooltipDescription": "リクエストの合計所要時間です。", - "inspector.requests.requestWasMadeDescription.requestHadFailureText": "、{failedCount} 件に失敗がありました", - "inspector.requests.responseTabLabel": "応答", - "inspector.requests.searchSessionId": "セッション ID を検索:{searchSessionId}", - "inspector.requests.statisticsTabLabel": "統計", - "inspector.title": "インスペクター", - "inspector.view": "{viewName} を表示", - "kibana_legacy.notify.toaster.errorStatusMessage": "エラー {errStatus} {errStatusText}: {errMessage}", - "kibana_legacy.notify.toaster.unavailableServerErrorMessage": "HTTP リクエストで接続に失敗しました。Kibana サーバーが実行されていて、ご使用のブラウザの接続が正常に動作していることを確認するか、システム管理者にお問い合わせください。", - "kibana_utils.history.savedObjectIsMissingNotificationMessage": "保存されたオブジェクトがありません", - "kibana_utils.stateManagement.stateHash.unableToRestoreUrlErrorMessage": "URL を完全に復元できません。共有機能を使用していることを確認してください。", - "kibana_utils.stateManagement.stateHash.unableToStoreHistoryInSessionErrorMessage": "セッションがいっぱいで安全に削除できるアイテムが見つからないため、Kibana は履歴アイテムを保存できません。\n\nこれは大抵新規タブに移動することで解決されますが、より大きな問題が原因である可能性もあります。このメッセージが定期的に表示される場合は、{gitHubIssuesUrl} で問題を報告してください。", - "kibana_utils.stateManagement.url.restoreUrlErrorTitle": "URLからの状態の復元エラー", - "kibana_utils.stateManagement.url.saveStateInUrlErrorTitle": "URLでの状態の保存エラー", - "kibana-react.dualRangeControl.maxInputAriaLabel": "範囲最大", - "kibana-react.dualRangeControl.minInputAriaLabel": "範囲最小", - "kibana-react.dualRangeControl.mustSetBothErrorMessage": "下と上の値の両方を設定する必要があります", - "kibana-react.dualRangeControl.outsideOfRangeErrorMessage": "値は {min} と {max} の間でなければなりません", - "kibana-react.dualRangeControl.upperValidErrorMessage": "上の値は下の値以上でなければなりません", - "kibana-react.exitFullScreenButton.exitFullScreenModeButtonAriaLabel": "全画面モードを終了", - "kibana-react.exitFullScreenButton.exitFullScreenModeButtonText": "全画面を終了", - "kibana-react.exitFullScreenButton.fullScreenModeDescription": "ESC キーで全画面モードを終了します。", - "kibana-react.kbnOverviewPageHeader.addDataButtonLabel": "データの追加", - "kibana-react.kbnOverviewPageHeader.devToolsButtonLabel": "開発ツール", - "kibana-react.kbnOverviewPageHeader.stackManagementButtonLabel": "管理", - "kibana-react.kibanaCodeEditor.ariaLabel": "コードエディター", - "kibana-react.kibanaCodeEditor.enterKeyLabel": "Enter", - "kibana-react.kibanaCodeEditor.escapeKeyLabel": "Esc", - "kibana-react.kibanaCodeEditor.startEditing": "編集を開始するには{key}を押してください。", - "kibana-react.kibanaCodeEditor.startEditingReadOnly": "コードの操作を開始するには{key}を押してください。", - "kibana-react.kibanaCodeEditor.stopEditing": "編集を停止するには{key}を押してください。", - "kibana-react.kibanaCodeEditor.stopEditingReadOnly": "コードの操作を停止するには{key}を押してください。", - "kibana-react.mountPointPortal.errorMessage": "ポータルコンテンツのレンダリングエラー", - "kibana-react.noDataPage.cantDecide": "どれを使用すべきかわからない場合{link}", - "kibana-react.noDataPage.cantDecide.link": "詳細については、ドキュメントをご確認ください。", - "kibana-react.noDataPage.elasticAgentCard.description": "Elasticエージェントを使用すると、シンプルで統一された方法でコンピューターからデータを収集するできます。", - "kibana-react.noDataPage.elasticAgentCard.title": "Elasticエージェントの追加", - "kibana-react.noDataPage.intro": "データを追加して開始するか、{solution}については{link}をご覧ください。", - "kibana-react.noDataPage.intro.link": "詳細", - "kibana-react.noDataPage.noDataPage.recommended": "推奨", - "kibana-react.noDataPage.welcomeTitle": "Elastic {solution}へようこそ。", - "kibana-react.pageFooter.changeDefaultRouteSuccessToast": "ランディングページが更新されました", - "kibana-react.pageFooter.changeHomeRouteLink": "ログイン時に別のページを表示", - "kibana-react.pageFooter.makeDefaultRouteLink": "これをランディングページにする", - "kibana-react.solutionNav.collapsibleLabel": "サイドナビゲーションを折りたたむ", - "kibana-react.solutionNav.mobileTitleText": "{solutionName}メニュー", - "kibana-react.solutionNav.openLabel": "サイドナビゲーションを開く", - "kibana-react.splitPanel.adjustPanelSizeAriaLabel": "左右のキーを押してパネルサイズを調整します", - "kibana-react.tableListView.listing.createNewItemButtonLabel": "Create {entityName}", - "kibana-react.tableListView.listing.deleteButtonMessage": "{itemCount} 件の {entityName} を削除", - "kibana-react.tableListView.listing.deleteConfirmModalDescription": "削除された {entityNamePlural} は復元できません。", - "kibana-react.tableListView.listing.deleteSelectedConfirmModal.title": "{itemCount} 件の {entityName} を削除", - "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.cancelButtonLabel": "キャンセル", - "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.confirmButtonLabel": "削除", - "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.confirmButtonLabelDeleting": "削除中", - "kibana-react.tableListView.listing.fetchErrorDescription": "{entityName}リストを取得できませんでした。{message}", - "kibana-react.tableListView.listing.fetchErrorTitle": "リストを取得できませんでした", - "kibana-react.tableListView.listing.listingLimitExceeded.advancedSettingsLinkText": "高度な設定", - "kibana-react.tableListView.listing.listingLimitExceededDescription": "{totalItems} 件の {entityNamePlural} がありますが、{listingLimitText} の設定により {listingLimitValue} 件までしか下の表に表示できません。{advancedSettingsLink} の下でこの設定を変更できます。", - "kibana-react.tableListView.listing.listingLimitExceededTitle": "リスティング制限超過", - "kibana-react.tableListView.listing.noAvailableItemsMessage": "利用可能な {entityNamePlural} がありません。", - "kibana-react.tableListView.listing.noMatchedItemsMessage": "検索条件に一致する {entityNamePlural} がありません。", - "kibana-react.tableListView.listing.table.actionTitle": "アクション", - "kibana-react.tableListView.listing.table.editActionDescription": "編集", - "kibana-react.tableListView.listing.table.editActionName": "編集", - "kibana-react.tableListView.listing.unableToDeleteDangerMessage": "{entityName} を削除できません", - "kibanaOverview.addData.sampleDataButtonLabel": "サンプルデータを試す", - "kibanaOverview.addData.sectionTitle": "データを取り込む", - "kibanaOverview.apps.title": "これらのアプリを検索", - "kibanaOverview.breadcrumbs.title": "分析", - "kibanaOverview.header.title": "分析", - "kibanaOverview.kibana.solution.description": "強力な分析ツールやアプリケーションスイートを使用して、データを探索、可視化、分析できます。", - "kibanaOverview.kibana.solution.title": "分析", - "kibanaOverview.manageData.sectionTitle": "データを管理", - "kibanaOverview.more.title": "Elasticではさまざまなことが可能です", - "kibanaOverview.news.title": "新機能", - "kibanaOverview.noDataConfig.solutionName": "分析", - "lists.exceptions.doesNotExistOperatorLabel": "存在しない", - "lists.exceptions.existsOperatorLabel": "存在する", - "lists.exceptions.isInListOperatorLabel": "リストにある", - "lists.exceptions.isNotInListOperatorLabel": "リストにない", - "lists.exceptions.isNotOneOfOperatorLabel": "is not one of", - "lists.exceptions.isNotOperatorLabel": "is not", - "lists.exceptions.isOneOfOperatorLabel": "is one of", - "lists.exceptions.isOperatorLabel": "is", - "management.breadcrumb": "スタック管理", - "management.landing.header": "Stack Management {version}へようこそ", - "management.landing.subhead": "インデックス、インデックスパターン、保存されたオブジェクト、Kibanaの設定、その他を管理します。", - "management.landing.text": "アプリの一覧は左側のメニューにあります。", - "management.nav.label": "管理", - "management.sections.dataTip": "クラスターデータとバックアップを管理します", - "management.sections.dataTitle": "データ", - "management.sections.ingestTip": "データを変換し、クラスターに読み込む方法を管理します", - "management.sections.ingestTitle": "投入", - "management.sections.insightsAndAlertingTip": "データの変化を検出する方法を管理します", - "management.sections.insightsAndAlertingTitle": "アラートとインサイト", - "management.sections.kibanaTip": "Kibanaをカスタマイズし、保存されたオブジェクトを管理します", - "management.sections.kibanaTitle": "Kibana", - "management.sections.section.tip": "機能とデータへのアクセスを制御します", - "management.sections.section.title": "セキュリティ", - "management.sections.stackTip": "ライセンスを管理し、スタックをアップグレードします", - "management.sections.stackTitle": "スタック", - "management.stackManagement.managementDescription": "Elastic Stack の管理を行うセンターコンソールです。", - "management.stackManagement.managementLabel": "スタック管理", - "management.stackManagement.title": "スタック管理", - "monaco.painlessLanguage.autocomplete.docKeywordDescription": "doc['field_name'] 構文を使用して、スクリプトからフィールド値にアクセスします", - "monaco.painlessLanguage.autocomplete.emitKeywordDescription": "戻らずに値を発行します。", - "monaco.painlessLanguage.autocomplete.fieldValueDescription": "フィールド「{fieldName}」の値を取得します", - "monaco.painlessLanguage.autocomplete.paramsKeywordDescription": "スクリプトに渡された変数にアクセスします。", - "newsfeed.emptyPrompt.noNewsText": "Kibana インスタンスがインターネットにアクセスできない場合、管理者にこの機能を無効にするように依頼してください。そうでない場合は、ニュースを取り込み続けます。", - "newsfeed.emptyPrompt.noNewsTitle": "ニュースがない場合", - "newsfeed.flyoutList.closeButtonLabel": "閉じる", - "newsfeed.flyoutList.versionTextLabel": "{version}", - "newsfeed.flyoutList.whatsNewTitle": "Elastic の新機能", - "newsfeed.headerButton.readAriaLabel": "ニュースフィードメニュー - すべての項目が既読です", - "newsfeed.headerButton.unreadAriaLabel": "ニュースフィードメニュー - 未読の項目があります", - "newsfeed.loadingPrompt.gettingNewsText": "最新ニュースを取得しています...", - "presentationUtil.dashboardPicker.searchDashboardPlaceholder": "ダッシュボードを検索...", - "presentationUtil.labs.components.browserSwitchHelp": "このブラウザーでラボを有効にします。ブラウザーを閉じた後も永続します。", - "presentationUtil.labs.components.browserSwitchName": "ブラウザー", - "presentationUtil.labs.components.calloutHelp": "変更を適用するには更新します", - "presentationUtil.labs.components.closeButtonLabel": "閉じる", - "presentationUtil.labs.components.descriptionMessage": "開発中の機能や実験的な機能を試します。", - "presentationUtil.labs.components.disabledStatusMessage": "デフォルト: {status}", - "presentationUtil.labs.components.enabledStatusMessage": "デフォルト: {status}", - "presentationUtil.labs.components.kibanaSwitchHelp": "すべてのKibanaユーザーでこのラボを有効にします。", - "presentationUtil.labs.components.kibanaSwitchName": "Kibana", - "presentationUtil.labs.components.labFlagsLabel": "ラボフラグ", - "presentationUtil.labs.components.noProjectsinSolutionMessage": "現在{solutionName}にはラボがありません。", - "presentationUtil.labs.components.noProjectsMessage": "現在ラボはありません。", - "presentationUtil.labs.components.overrideFlagsLabel": "上書き", - "presentationUtil.labs.components.overridenIconTipLabel": "デフォルトの上書き", - "presentationUtil.labs.components.resetToDefaultLabel": "デフォルトにリセット", - "presentationUtil.labs.components.sessionSwitchHelp": "このブラウザーセッションのラボを有効にします。ブラウザーを閉じるとリセットされます。", - "presentationUtil.labs.components.sessionSwitchName": "セッション", - "presentationUtil.labs.components.titleLabel": "ラボ", - "presentationUtil.labs.enableDeferBelowFoldProjectDescription": "「区切り」の下のすべてのパネル(ウィンドウ下部の下にある非表示の領域)はすぐに読み込まれません。ビューポートを入力するときにのみ読み込まれます", - "presentationUtil.labs.enableDeferBelowFoldProjectName": "「区切り」の下のパネルの読み込みを延期", - "presentationUtil.saveModalDashboard.addToDashboardLabel": "ダッシュボードに追加", - "presentationUtil.saveModalDashboard.dashboardInfoTooltip": "Visualizeライブラリに追加された項目はすべてのダッシュボードで使用できます。ライブラリ項目の編集は、使用されるすべての場所に表示されます。", - "presentationUtil.saveModalDashboard.existingDashboardOptionLabel": "既存", - "presentationUtil.saveModalDashboard.libraryOptionLabel": "ライブラリに追加", - "presentationUtil.saveModalDashboard.newDashboardOptionLabel": "新規", - "presentationUtil.saveModalDashboard.noDashboardOptionLabel": "なし", - "presentationUtil.saveModalDashboard.saveAndGoToDashboardLabel": "保存してダッシュボードを開く", - "presentationUtil.saveModalDashboard.saveLabel": "保存", - "presentationUtil.saveModalDashboard.saveToLibraryLabel": "保存してライブラリに追加", - "presentationUtil.solutionToolbar.editorMenuButtonLabel": "すべてのエディター", - "presentationUtil.solutionToolbar.libraryButtonLabel": "ライブラリから追加", - "presentationUtil.solutionToolbar.quickButton.ariaButtonLabel": "新しい{createType}を作成", - "presentationUtil.solutionToolbar.quickButton.legendLabel": "クイック作成", - "savedObjects.advancedSettings.listingLimitText": "一覧ページ用に取得するオブジェクトの数です", - "savedObjects.advancedSettings.listingLimitTitle": "オブジェクト取得制限", - "savedObjects.advancedSettings.perPageText": "読み込みダイアログで表示されるページごとのオブジェクトの数です", - "savedObjects.advancedSettings.perPageTitle": "ページごとのオブジェクト数", - "savedObjects.confirmModal.cancelButtonLabel": "キャンセル", - "savedObjects.confirmModal.overwriteButtonLabel": "上書き", - "savedObjects.confirmModal.overwriteConfirmationMessage": "{title} を上書きしてよろしいですか?", - "savedObjects.confirmModal.overwriteTitle": "{name} を上書きしますか?", - "savedObjects.confirmModal.saveDuplicateButtonLabel": "{name} を保存", - "savedObjects.confirmModal.saveDuplicateConfirmationMessage": "「{title}」というタイトルの {name} がすでに存在します。保存しますか?", - "savedObjects.finder.filterButtonLabel": "タイプ", - "savedObjects.finder.searchPlaceholder": "検索…", - "savedObjects.finder.sortAsc": "昇順", - "savedObjects.finder.sortAuto": "ベストマッチ", - "savedObjects.finder.sortButtonLabel": "並べ替え", - "savedObjects.finder.sortDesc": "降順", - "savedObjects.overwriteRejectedDescription": "上書き確認が拒否されました", - "savedObjects.saveDuplicateRejectedDescription": "重複ファイルの保存確認が拒否されました", - "savedObjects.saveModal.cancelButtonLabel": "キャンセル", - "savedObjects.saveModal.descriptionLabel": "説明", - "savedObjects.saveModal.duplicateTitleDescription": "「{title}」を保存すると、タイトルが重複します。", - "savedObjects.saveModal.duplicateTitleLabel": "この{objectType}はすでに存在します", - "savedObjects.saveModal.saveAsNewLabel": "新しい {objectType} として保存", - "savedObjects.saveModal.saveButtonLabel": "保存", - "savedObjects.saveModal.saveTitle": "{objectType} を保存", - "savedObjects.saveModal.titleLabel": "タイトル", - "savedObjects.saveModalOrigin.addToOriginLabel": "追加", - "savedObjects.saveModalOrigin.originAfterSavingSwitchLabel": "保存後に{originVerb}から{origin}", - "savedObjects.saveModalOrigin.returnToOriginLabel": "戻る", - "savedObjects.saveModalOrigin.saveAndReturnLabel": "保存して戻る", - "savedObjectsManagement.breadcrumb.index": "保存されたオブジェクト", - "savedObjectsManagement.deleteConfirm.modalDeleteButtonLabel": "削除", - "savedObjectsManagement.deleteConfirm.modalDescription": "このアクションはオブジェクトをKibanaから永久に削除します。", - "savedObjectsManagement.deleteConfirm.modalTitle": "「{title}」を削除しますか?", - "savedObjectsManagement.deleteSavedObjectsConfirmModalDescription": "この操作は次の保存されたオブジェクトを削除します:", - "savedObjectsManagement.importSummary.createdCountHeader": "{createdCount}件の新規項目", - "savedObjectsManagement.importSummary.createdOutcomeLabel": "作成済み", - "savedObjectsManagement.importSummary.errorCountHeader": "{errorCount}件のエラー", - "savedObjectsManagement.importSummary.errorOutcomeLabel": "{errorMessage}", - "savedObjectsManagement.importSummary.overwrittenCountHeader": "{overwrittenCount} overwritten", - "savedObjectsManagement.importSummary.overwrittenOutcomeLabel": "上書き", - "savedObjectsManagement.importSummary.warnings.defaultButtonLabel": "Go", - "savedObjectsManagement.managementSectionLabel": "保存されたオブジェクト", - "savedObjectsManagement.objects.savedObjectsTitle": "保存されたオブジェクト", - "savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.content": "共有オブジェクトは属しているすべてのスペースから削除されます。", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "キャンセル", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.idColumnName": "Id", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.titleColumnName": "タイトル", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.typeColumnName": "型", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModalTitle": "保存されたオブジェクトの削除", - "savedObjectsManagement.objectsTable.export.successNotification": "ファイルはバックグラウンドでダウンロード中です", - "savedObjectsManagement.objectsTable.export.successWithExcludedObjectsNotification": "ファイルはバックグラウンドでダウンロード中です。一部のオブジェクトはエクスポートから除外されました。除外されたオブジェクトの一覧は、エクスポートされたファイルの最後の行をご覧ください。", - "savedObjectsManagement.objectsTable.export.successWithMissingRefsNotification": "ファイルはバックグラウンドでダウンロード中です。一部の関連オブジェクトが見つかりませんでした。足りないオブジェクトの一覧は、エクスポートされたファイルの最後の行をご覧ください。", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.cancelButtonLabel": "キャンセル", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.exportAllButtonLabel": "すべてエクスポート", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.exportOptionsLabel": "オプション", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.includeReferencesDeepLabel": "関連オブジェクトを含める", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModalDescription": "エクスポートするタイプを選択してください", - "savedObjectsManagement.objectsTable.flyout.errorCalloutTitle": "申し訳ございません、エラーが発生しました", - "savedObjectsManagement.objectsTable.flyout.import.cancelButtonLabel": "キャンセル", - "savedObjectsManagement.objectsTable.flyout.import.confirmButtonLabel": "インポート", - "savedObjectsManagement.objectsTable.flyout.importFileErrorMessage": "エラーのためファイルを処理できませんでした:「{error}」", - "savedObjectsManagement.objectsTable.flyout.importPromptText": "インポート", - "savedObjectsManagement.objectsTable.flyout.importSavedObjectTitle": "保存されたオブジェクトのインポート", - "savedObjectsManagement.objectsTable.flyout.importSuccessful.confirmAllChangesButtonLabel": "すべての変更を確定", - "savedObjectsManagement.objectsTable.flyout.importSuccessful.confirmButtonLabel": "完了", - "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsCalloutLinkText": "新規インデックスパターンを作成", - "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsDescription": "次の保存されたオブジェクトは、存在しないインデックスパターンを使用しています。関連付け直す別のインデックスパターンを選択してください。必要に応じて、{indexPatternLink}できます。", - "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsTitle": "インデックスパターンの矛盾", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnCountDescription": "影響されるオブジェクトの数です", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnCountName": "カウント", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnIdDescription": "インデックスパターンのIDです", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnIdName": "ID", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnNewIndexPatternName": "新規インデックスパターン", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsDescription": "影響されるオブジェクトのサンプル", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsName": "影響されるオブジェクトのサンプル", - "savedObjectsManagement.objectsTable.flyout.selectFileToImportFormRowLabel": "インポートするファイルを選択してください", - "savedObjectsManagement.objectsTable.header.importButtonLabel": "インポート", - "savedObjectsManagement.objectsTable.header.refreshButtonLabel": "更新", - "savedObjectsManagement.objectsTable.header.savedObjectsTitle": "保存されたオブジェクト", - "savedObjectsManagement.objectsTable.howToDeleteSavedObjectsDescription": "保存されたオブジェクトを管理して共有します。オブジェクトの基本データを編集するには、関連付けられたアプリケーションに移動します。", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.disabledText": "オブジェクトが以前にコピーまたはインポートされたかどうかを確認します。", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.disabledTitle": "既存のオブジェクトを確認", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.enabledText": "このオプションを使用すると、オブジェクトの1つ以上のコピーを作成します。", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.enabledTitle": "ランダムIDで新しいオブジェクトを作成", - "savedObjectsManagement.objectsTable.importModeControl.importOptionsTitle": "インポートオプション", - "savedObjectsManagement.objectsTable.importModeControl.overwrite.disabledLabel": "競合時にアクションを要求", - "savedObjectsManagement.objectsTable.importModeControl.overwrite.enabledLabel": "自動的に競合を上書き", - "savedObjectsManagement.objectsTable.importSummary.unsupportedTypeError": "サポートされていないオブジェクトタイプ", - "savedObjectsManagement.objectsTable.overwriteModal.body.ambiguousConflict": "「{title}」は複数の既存のオブジェクトと競合します。上書きしますか?", - "savedObjectsManagement.objectsTable.overwriteModal.body.conflict": "「{title}」は既存のオブジェクトと競合します。上書きしますか?", - "savedObjectsManagement.objectsTable.overwriteModal.cancelButtonText": "スキップ", - "savedObjectsManagement.objectsTable.overwriteModal.overwriteButtonText": "上書き", - "savedObjectsManagement.objectsTable.overwriteModal.selectControlLabel": "オブジェクトID", - "savedObjectsManagement.objectsTable.overwriteModal.title": "{type}を上書きしますか?", - "savedObjectsManagement.objectsTable.relationships.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", - "savedObjectsManagement.objectsTable.relationships.columnActions.inspectActionName": "検査", - "savedObjectsManagement.objectsTable.relationships.columnActionsName": "アクション", - "savedObjectsManagement.objectsTable.relationships.columnErrorDescription": "関係でエラーが発生しました", - "savedObjectsManagement.objectsTable.relationships.columnErrorName": "エラー", - "savedObjectsManagement.objectsTable.relationships.columnIdDescription": "保存されたオブジェクトのID", - "savedObjectsManagement.objectsTable.relationships.columnIdName": "Id", - "savedObjectsManagement.objectsTable.relationships.columnRelationship.childAsValue": "子", - "savedObjectsManagement.objectsTable.relationships.columnRelationship.parentAsValue": "親", - "savedObjectsManagement.objectsTable.relationships.columnRelationshipName": "直接関係", - "savedObjectsManagement.objectsTable.relationships.columnTitleDescription": "保存されたオブジェクトのタイトルです", - "savedObjectsManagement.objectsTable.relationships.columnTitleName": "タイトル", - "savedObjectsManagement.objectsTable.relationships.columnTypeDescription": "保存されたオブジェクトのタイプです", - "savedObjectsManagement.objectsTable.relationships.columnTypeName": "型", - "savedObjectsManagement.objectsTable.relationships.invalidRelationShip": "この保存されたオブジェクトには無効な関係がいくつかあります。", - "savedObjectsManagement.objectsTable.relationships.relationshipsTitle": "{title}に関連する保存済みオブジェクトはこちらです。この{type}を削除すると、親オブジェクトに影響しますが、子オブジェクトには影響しません。", - "savedObjectsManagement.objectsTable.relationships.renderErrorMessage": "エラー", - "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.childAsValue.view": "子", - "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.name": "直接関係", - "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.parentAsValue.view": "親", - "savedObjectsManagement.objectsTable.relationships.search.filters.type.name": "型", - "savedObjectsManagement.objectsTable.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", - "savedObjectsManagement.objectsTable.table.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", - "savedObjectsManagement.objectsTable.table.columnActions.inspectActionName": "検査", - "savedObjectsManagement.objectsTable.table.columnActions.viewRelationshipsActionDescription": "この保存されたオブジェクトと他の保存されたオブジェクトとの関係性を表示します", - "savedObjectsManagement.objectsTable.table.columnActions.viewRelationshipsActionName": "関係", - "savedObjectsManagement.objectsTable.table.columnActionsName": "アクション", - "savedObjectsManagement.objectsTable.table.columnTitleDescription": "保存されたオブジェクトのタイトルです", - "savedObjectsManagement.objectsTable.table.columnTitleName": "タイトル", - "savedObjectsManagement.objectsTable.table.columnTypeDescription": "保存されたオブジェクトのタイプです", - "savedObjectsManagement.objectsTable.table.columnTypeName": "型", - "savedObjectsManagement.objectsTable.table.deleteButtonLabel": "削除", - "savedObjectsManagement.objectsTable.table.deleteButtonTitle": "保存されたオブジェクトを削除できません", - "savedObjectsManagement.objectsTable.table.exportButtonLabel": "エクスポート", - "savedObjectsManagement.objectsTable.table.exportPopoverButtonLabel": "エクスポート", - "savedObjectsManagement.objectsTable.table.typeFilterName": "型", - "savedObjectsManagement.objectsTable.unableFindSavedObjectNotificationMessage": "保存されたオブジェクトが見つかりません", - "savedObjectsManagement.objectsTable.unableFindSavedObjectsNotificationMessage": "保存されたオブジェクトが見つかりません", - "savedObjectsManagement.objectView.unableFindSavedObjectNotificationMessage": "保存されたオブジェクトが見つかりません", - "savedObjectsManagement.view.fieldDoesNotExistErrorMessage": "このオブジェクトに関連付けられたフィールドは、現在このインデックスパターンに存在しません。", - "savedObjectsManagement.view.indexPatternDoesNotExistErrorMessage": "このオブジェクトに関連付けられたインデックスパターンは現在存在しません。", - "savedObjectsManagement.view.savedObjectProblemErrorMessage": "この保存されたオブジェクトに問題があります", - "savedObjectsManagement.view.savedSearchDoesNotExistErrorMessage": "このオブジェクトに関連付けられた保存された検索は現在存在しません。", - "share.advancedSettings.csv.quoteValuesText": "csvエクスポートに値を引用するかどうかです", - "share.advancedSettings.csv.quoteValuesTitle": "CSVの値を引用", - "share.advancedSettings.csv.separatorText": "エクスポートされた値をこの文字列で区切ります", - "share.advancedSettings.csv.separatorTitle": "CSVセパレーター", - "share.contextMenu.embedCodeLabel": "埋め込みコード", - "share.contextMenu.embedCodePanelTitle": "埋め込みコード", - "share.contextMenu.permalinkPanelTitle": "パーマリンク", - "share.contextMenu.permalinksLabel": "パーマリンク", - "share.contextMenuTitle": "この {objectType} を共有", - "share.urlGenerators.error.createUrlFnProvided": "このジェネレーターは非推奨とマークされています。createUrl fn を付けないでください。", - "share.urlGenerators.error.migrationFnGivenNotDeprecated": "移行機能を提供する場合、このジェネレーターに非推奨マークを付ける必要があります", - "share.urlGenerators.error.noCreateUrlFnProvided": "このジェネレーターには非推奨のマークがありません。createUrl fn を付けてください。", - "share.urlGenerators.error.noMigrationFnProvided": "アクセスリンクジェネレーターに非推奨マークが付いている場合、移行機能を提供する必要があります。", - "share.urlGenerators.errors.noGeneratorWithId": "{id} という ID のジェネレーターはありません", - "share.urlPanel.canNotShareAsSavedObjectHelpText": "{objectType} が保存されるまで保存されたオブジェクトを共有することはできません。", - "share.urlPanel.copyIframeCodeButtonLabel": "iFrame コードをコピー", - "share.urlPanel.copyLinkButtonLabel": "リンクをコピー", - "share.urlPanel.generateLinkAsLabel": "名前を付けてリンクを生成", - "share.urlPanel.publicUrlHelpText": "公開URLを使用して、他のユーザーと共有します。ログインプロンプトをなくして、ワンステップの匿名アクセスを可能にします。", - "share.urlPanel.publicUrlLabel": "公開URL", - "share.urlPanel.savedObjectDescription": "この URL を共有することで、他のユーザーがこの {objectType} の最も最近保存されたバージョンを読み込めるようになります。", - "share.urlPanel.savedObjectLabel": "保存されたオブジェクト", - "share.urlPanel.shortUrlHelpText": "互換性が最も高くなるよう、短いスナップショット URL を共有することをお勧めします。Internet Explorer は URL の長さに制限があり、一部の wiki やマークアップパーサーは長い完全なスナップショット URL に対応していませんが、短い URL は正常に動作するはずです。", - "share.urlPanel.shortUrlLabel": "短い URL", - "share.urlPanel.snapshotDescription": "スナップショット URL には、{objectType} の現在の状態がエンコードされています。保存された {objectType} への編集内容はこの URL には反映されません。", - "share.urlPanel.snapshotLabel": "スナップショット", - "share.urlPanel.unableCreateShortUrlErrorMessage": "短い URL を作成できません。エラー:{errorMessage}", - "share.urlPanel.urlGroupTitle": "URL", - "share.urlService.redirect.components.Error.title": "リダイレクトエラー", - "share.urlService.redirect.components.Spinner.label": "リダイレクト中...", - "share.urlService.redirect.RedirectManager.invalidParamParams": "ロケーターパラメーターを解析できませんでした。ロケーターパラメーターはJSONとしてシリアル化し、「p」URL検索パラメーターで設定する必要があります。", - "share.urlService.redirect.RedirectManager.locatorNotFound": "ロケーター[ID = {id}]が存在しません。", - "share.urlService.redirect.RedirectManager.missingParamLocator": "ロケーターIDが指定されていません。URLで「l」検索パラメーターを指定します。これは既存のロケーターIDにしてください。", - "share.urlService.redirect.RedirectManager.missingParamParams": "ロケーターパラメーターが指定されていません。URLで「p」検索パラメーターを指定します。これはロケーターパラメーターのJSONシリアル化オブジェクトにしてください。", - "share.urlService.redirect.RedirectManager.missingParamVersion": "ロケーターパラメーターバージョンが指定されていません。URLで「v」検索パラメーターを指定します。これはロケーターパラメーターが生成されたときのKibanaのリリースバージョンです。", - "telemetry.callout.appliesSettingTitle": "この設定に加えた変更は {allOfKibanaText} に適用され、自動的に保存されます。", - "telemetry.callout.appliesSettingTitle.allOfKibanaText": "Kibana のすべて", - "telemetry.callout.clusterStatisticsDescription": "これは収集される基本的なクラスター統計の例です。インデックス、シャード、ノードの数が含まれます。監視がオンになっているかどうかなどのハイレベルの使用統計も含まれます。", - "telemetry.callout.clusterStatisticsTitle": "クラスター統計", - "telemetry.callout.errorLoadingClusterStatisticsDescription": "クラスター統計の取得中に予期せぬエラーが発生しました。Elasticsearch、Kibana、またはネットワークのエラーが原因の可能性があります。Kibana を確認し、ページを再読み込みして再試行してください。", - "telemetry.callout.errorLoadingClusterStatisticsTitle": "クラスター統計の読み込みエラー", - "telemetry.callout.errorUnprivilegedUserDescription": "暗号化されていないクラスター統計を表示するアクセス権がありません。", - "telemetry.callout.errorUnprivilegedUserTitle": "クラスター統計の表示エラー", - "telemetry.clusterData": "クラスターデータ", - "telemetry.optInErrorToastText": "使用状況統計設定の設定中にエラーが発生しました。", - "telemetry.optInErrorToastTitle": "エラー", - "telemetry.optInNoticeSeenErrorTitle": "エラー", - "telemetry.optInNoticeSeenErrorToastText": "通知の消去中にエラーが発生しました", - "telemetry.optInSuccessOff": "使用状況データ収集がオフです。", - "telemetry.optInSuccessOn": "使用状況データ収集がオンです。", - "telemetry.readOurUsageDataPrivacyStatementLinkText": "プライバシーポリシー", - "telemetry.securityData": "Endpoint Security データ", - "telemetry.telemetryBannerDescription": "Elastic Stackの改善にご協力ください使用状況データの収集は現在無効です。使用状況データの収集を有効にすると、製品とサービスを管理して改善することができます。詳細については、{privacyStatementLink}をご覧ください。", - "telemetry.telemetryConfigAndLinkDescription": "使用状況データの収集を有効にすると、製品とサービスを管理して改善することができます。詳細については、{privacyStatementLink}をご覧ください。", - "telemetry.telemetryOptedInDisableUsage": "ここで使用状況データを無効にする", - "telemetry.telemetryOptedInDismissMessage": "閉じる", - "telemetry.telemetryOptedInNoticeDescription": "使用状況データがどのように製品とサービスの管理と改善につながるのかに関する詳細については、{privacyStatementLink}をご覧ください。収集を停止するには、{disableLink}。", - "telemetry.telemetryOptedInNoticeTitle": "Elastic Stack の改善にご協力ください", - "telemetry.telemetryOptedInPrivacyStatement": "プライバシーポリシー", - "telemetry.usageDataTitle": "使用データ", - "telemetry.welcomeBanner.disableButtonLabel": "無効にする", - "telemetry.welcomeBanner.enableButtonLabel": "有効にする", - "telemetry.welcomeBanner.telemetryConfigDetailsDescription.telemetryPrivacyStatementLinkText": "プライバシーポリシー", - "telemetry.welcomeBanner.title": "Elastic Stack の改善にご協力ください", - "timelion.emptyExpressionErrorMessage": "Timelion エラー:式が入力されていません", - "timelion.expressionSuggestions.argument.description.acceptsText": "受け入れ", - "timelion.expressionSuggestions.func.description.chainableHelpText": "連鎖可能", - "timelion.expressionSuggestions.func.description.dataSourceHelpText": "データソース", - "timelion.fitFunctions.carry.downSampleErrorMessage": "ダウンサンプルには「carry」フィットメソドを使用せず、「scale」または「average」を使用してください", - "timelion.function.help": "Timelion のビジュアライゼーションです。", - "timelion.help.functions.absHelpText": "数列リストの各値の絶対値を返します", - "timelion.help.functions.aggregate.args.functionHelpText": "{functions} の 1 つ", - "timelion.help.functions.aggregateHelpText": "数列のすべての点の処理結果に基づく線を作成します。利用可能な関数:{functions}", - "timelion.help.functions.bars.args.stackHelpText": "バーがスタックした場合はデフォルトで true にする", - "timelion.help.functions.bars.args.widthHelpText": "バーの幅(ピクセル)", - "timelion.help.functions.barsHelpText": "seriesList をバーとして表示", - "timelion.help.functions.color.args.colorHelpText": "16 進数としての数列の色です。例:#c6c6c6 はかわいいライトグレーを示します。複数の色を指定し、複数数列がある場合、グラデーションになります。例:「#00B1CC:#00FF94:#FF3A39:#CC1A6F」", - "timelion.help.functions.colorHelpText": "数列の色を変更します", - "timelion.help.functions.common.args.fitHelpText": "ターゲットの期間と間隔に数列を合わせるためのアルゴリズムです。使用可能:{fitFunctions}", - "timelion.help.functions.common.args.offsetHelpText": "日付表現による数列の取得をオフセットします。例:1 か月前からイベントを作成する -1M は現在のように表示されます。「timerange」によって、チャートの全体的な時間範囲に関連した数列をオフセットします。例:「timerange:-2」は過去に対する全体的なチャート時間範囲の 2 倍をオフセットします。", - "timelion.help.functions.condition.args.elseHelpText": "比較が false の場合に点が設定される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", - "timelion.help.functions.condition.args.ifHelpText": "点が比較される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", - "timelion.help.functions.condition.args.operator.suggestions.eqHelpText": "equal", - "timelion.help.functions.condition.args.operator.suggestions.gteHelpText": "超過", - "timelion.help.functions.condition.args.operator.suggestions.gtHelpText": "より大きい", - "timelion.help.functions.condition.args.operator.suggestions.lteHelpText": "未満", - "timelion.help.functions.condition.args.operator.suggestions.ltHelpText": "より小さい", - "timelion.help.functions.condition.args.operator.suggestions.neHelpText": "not equal", - "timelion.help.functions.condition.args.operatorHelpText": "比較に使用する比較演算子、有効な演算子は eq(=)、ne(≠), lt(&lt;), lte(≦), gt(>), gte(≧)", - "timelion.help.functions.condition.args.thenHelpText": "比較が true の場合に点が設定される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", - "timelion.help.functions.conditionHelpText": "演算子を使って各点を数字、または別の数列の同じ点と比較し、true の場合値を結果の値に設定し、オプションとして else が使用されます。", - "timelion.help.functions.cusum.args.baseHelpText": "開始の数字です。基本的に、数列の初めにこの数字が追加されます", - "timelion.help.functions.cusumHelpText": "ベースから始め、数列の累積和を返します。", - "timelion.help.functions.derivativeHelpText": "一定期間の値の変化をプロットします。", - "timelion.help.functions.divide.args.divisorHelpText": "割る数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.divideHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に割けます。", - "timelion.help.functions.es.args.indexHelpText": "クエリを実行するインデックスで、ワイルドカードが使えます。「metrics」、「split」、「timefield」引数のスクリプトフィールドのフィールド名のインデックスパターン名とフィールド名の入力候補を提供します。", - "timelion.help.functions.es.args.intervalHelpText": "**これは使用しないでください**。fit 関数のデバッグは楽しいですが、間隔ピッカーを使用すべきです。", - "timelion.help.functions.es.args.kibanaHelpText": "Kibana ダッシュボードでフィルターを適用します。Kibana ダッシュボードの使用時にのみ適用されます。", - "timelion.help.functions.es.args.metricHelpText": "Elasticsearch メトリック集約:avg、sum、min、max、percentiles、または基数、後ろにフィールドを付けます。例:「sum:bytes」、「percentiles:bytes:95,99,99.9」、「count」", - "timelion.help.functions.es.args.qHelpText": "Lucene クエリ文字列の構文のクエリ", - "timelion.help.functions.es.args.splitHelpText": "分割する Elasticsearch フィールドと制限です。例:「{hostnameSplitArg}」は上位 10 のホスト名を取得します", - "timelion.help.functions.es.args.timefieldHelpText": "X 軸にフィールドタイプ「date」を使用", - "timelion.help.functions.esHelpText": "Elasticsearch インスタンスからデータを取得します", - "timelion.help.functions.firstHelpText": "これは単純に input seriesList を返す内部機能です。この機能は使わないでください", - "timelion.help.functions.fit.args.modeHelpText": "数列をターゲットに合わせるためのアルゴリズムです。次のいずれかです。{fitFunctions}", - "timelion.help.functions.fitHelpText": "定義された fit 関数を使用して空値を入力します", - "timelion.help.functions.graphite.args.metricHelpText": "取得する Graphite メトリック、例:{metricExample}", - "timelion.help.functions.graphiteHelpText": "[実験] Graphiteからデータを取得します。Kibana の高度な設定で Graphite サーバーを構成します", - "timelion.help.functions.hide.args.hideHelpText": "数列の表示と非表示を切り替えます", - "timelion.help.functions.hideHelpText": "デフォルトで数列を非表示にします", - "timelion.help.functions.holt.args.alphaHelpText": "\n 0 から 1 の平滑化加重です。\n アルファを上げると新しい数列がオリジナルにさらに近くなります。\n 下げると数列がスムーズになります", - "timelion.help.functions.holt.args.betaHelpText": "\n 0 から 1 の傾向加重です。\n ベータを上げると線の上下の動きが長くなります。\n 下げると新しい傾向をより早く反映するようになります", - "timelion.help.functions.holt.args.gammaHelpText": "0 から 1 のシーズン加重です。データが波のようになっていますか?\n この数字を上げると、最近のシーズンの重要性が高まり、波形の動きを速くします。\n 下げると新しいシーズンの重要性が下がり、過去がより重要視されます。", - "timelion.help.functions.holt.args.sampleHelpText": "\n シーズン数列の「予測」を開始する前にサンプリングするシーズンの数です。\n (gamma でのみ有効、デフォルト:all)", - "timelion.help.functions.holt.args.seasonHelpText": "シーズンの長さです、例:パターンが毎週繰り返される場合は 1w。(gamma でのみ有効)", - "timelion.help.functions.holtHelpText": "\n 数列の始めをサンプリングし、\n いくつかのオプションパラメーターを使用して何が起こるか予測します。基本的に、この機能は未来を予測するのではなく、\n 過去のデータに基づき現在何が起きているべきかを予測します。\n この情報は異常検知に役立ちます。null には予測値が入力されます。", - "timelion.help.functions.label.args.labelHelpText": "数列の凡例値です。文字列で $1、$2 などを使用して、正規表現の捕捉グループに合わせることができます。", - "timelion.help.functions.label.args.regexHelpText": "捕捉グループをサポートする正規表現です", - "timelion.help.functions.labelHelpText": "数列のラベルを変更します。%s で既存のラベルを参照します", - "timelion.help.functions.legend.args.columnsHelpText": "凡例を分ける列の数です", - "timelion.help.functions.legend.args.position.suggestions.falseHelpText": "凡例を無効にします", - "timelion.help.functions.legend.args.position.suggestions.neHelpText": "北東の角に凡例を配置します", - "timelion.help.functions.legend.args.position.suggestions.nwHelpText": "北西の角に凡例を配置します", - "timelion.help.functions.legend.args.position.suggestions.seHelpText": "南東の角に凡例を配置します", - "timelion.help.functions.legend.args.position.suggestions.swHelpText": "南西の角に凡例を配置します", - "timelion.help.functions.legend.args.positionHelpText": "凡例を配置する角:nw、ne、se、または sw。false で凡例を無効にすることもできます", - "timelion.help.functions.legend.args.showTimeHelpText": "グラフにカーソルを合わせた時、凡例の時間値を表示します。デフォルト:true", - "timelion.help.functions.legend.args.timeFormatHelpText": "moment.js フォーマットパターンです。デフォルト:{defaultTimeFormat}", - "timelion.help.functions.legendHelpText": "プロットの凡例の位置とスタイルを設定します", - "timelion.help.functions.lines.args.fillHelpText": "0 と 10 の間の数字です。エリアチャートの作成に使用します。", - "timelion.help.functions.lines.args.showHelpText": "線の表示と非表示を切り替えます", - "timelion.help.functions.lines.args.stackHelpText": "線をスタックします。よく誤解を招きます。この機能を使用する際は塗りつぶしを使うようにしましょう。", - "timelion.help.functions.lines.args.stepsHelpText": "線をステップとして表示します。つまり、点の間に中間値を挿入しません。", - "timelion.help.functions.lines.args.widthHelpText": "線の太さです", - "timelion.help.functions.linesHelpText": "seriesList を線として表示します", - "timelion.help.functions.log.args.baseHelpText": "対数のベースを設定します、デフォルトは 10 です", - "timelion.help.functions.logHelpText": "数列リストの各値の対数値を返します(デフォルトのベース:10)", - "timelion.help.functions.max.args.valueHelpText": "点を既存の値と引き渡された値のどちらか高い方に設定します。seriesList を引き渡す場合、数列がちょうど 1 つでなければなりません。", - "timelion.help.functions.maxHelpText": "インプット seriesList の各数列のそれぞれの配置の seriesList の 1 つまたは複数の数列の最高値です", - "timelion.help.functions.min.args.valueHelpText": "点を既存の値と引き渡された値のどちらか低い方に設定します。seriesList を引き渡す場合、数列がちょうど 1 つでなければなりません。", - "timelion.help.functions.minHelpText": "インプット seriesList の各数列のそれぞれの配置の seriesList の 1 つまたは複数の数列の最低値です", - "timelion.help.functions.movingaverage.args.positionHelpText": "結果時間に相対的な平均点の位置です。次のいずれかです。{validPositions}", - "timelion.help.functions.movingaverage.args.windowHelpText": "平均を出す点の数、または日付計算式(例:1d、1M)です。日付計算式が指定された場合、この機能は現在選択された間隔でできるだけ近づけます。日付計算式が間隔で均等に分けられない場合、結果に異常が出る場合があります。", - "timelion.help.functions.movingaverageHelpText": "特定期間の移動平均を計算します。ばらばらの数列を滑らかにするのに有効です。", - "timelion.help.functions.movingstd.args.positionHelpText": "結果時間に相対的な期間スライスの配置です。オプションは {positions} です。デフォルト:{defaultPosition}", - "timelion.help.functions.movingstd.args.windowHelpText": "標準偏差を計算する点の数です。", - "timelion.help.functions.movingstdHelpText": "特定期間の移動標準偏差を計算します。ネイティブ two-pass アルゴリズムを使用します。非常に長い数列や、非常に大きな数字を含む数列では、四捨五入による誤差がより明らかになる可能性があります。", - "timelion.help.functions.multiply.args.multiplierHelpText": "掛ける数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.multiplyHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に掛けます。", - "timelion.help.functions.notAllowedGraphiteUrl": "この Graphite URL は kibana.yml ファイルで構成されていません。\n 「timelion.graphiteUrls」で kibana.yml ファイルの Graphite サーバーリストを構成し、\n Kibana の高度な設定でいずれかを選択してください", - "timelion.help.functions.points.args.fillColorHelpText": "点を塗りつぶす色です。", - "timelion.help.functions.points.args.fillHelpText": "塗りつぶしの透明度を表す 0 から 10 までの数字です", - "timelion.help.functions.points.args.radiusHelpText": "点のサイズです", - "timelion.help.functions.points.args.showHelpText": "点の表示・非表示です", - "timelion.help.functions.points.args.symbolHelpText": "点のシンボルです。次のいずれかです。{validSymbols}", - "timelion.help.functions.points.args.weightHelpText": "点の周りの太さです", - "timelion.help.functions.pointsHelpText": "数列を点として表示します", - "timelion.help.functions.precision.args.precisionHelpText": "各値を切り捨てる桁数です", - "timelion.help.functions.precisionHelpText": "値の小数点以下を切り捨てる桁数です", - "timelion.help.functions.props.args.globalHelpText": "各数列に対し、seriesList にプロップを設定します", - "timelion.help.functions.propsHelpText": "数列に任意のプロパティを設定するため、自己責任で行ってください。例:{example}。", - "timelion.help.functions.quandl.args.codeHelpText": "プロットする Quandl コードです。これらは quandl.com に掲載されています。", - "timelion.help.functions.quandl.args.positionHelpText": "Quandl ソースによっては、複数数列を返すものがあります。どれを使用しますか?1 ベースインデックス", - "timelion.help.functions.quandlHelpText": "\n [実験]\n Quandl コードで quandl.com からデータを取得します。Kibana で {quandlKeyField} を空き API キーに設定\n 高度な設定API は、キーなしでは非常に低いレート制限があります。", - "timelion.help.functions.range.args.maxHelpText": "新しい最高値です", - "timelion.help.functions.range.args.minHelpText": "新しい最低値です", - "timelion.help.functions.rangeHelpText": "同じシェイプを維持しつつ数列の最高値と最低値を変更します", - "timelion.help.functions.scaleInterval.args.intervalHelpText": "新しい間隔の日付計算表記です。例:1 秒 = 1s。1m、5m、1M、1w、1y など。", - "timelion.help.functions.scaleIntervalHelpText": "変更すると、値(通常合計またはカウント)が新しい間隔にスケーリングされます。例:毎秒のレート", - "timelion.help.functions.static.args.labelHelpText": "数列のラベルを簡単に設定する方法です。.label()関数を使用することもできます。", - "timelion.help.functions.static.args.valueHelpText": "表示する単一の値です。複数の値が渡された場合、指定された時間範囲に均等に挿入されます。", - "timelion.help.functions.staticHelpText": "チャートに 1 つの値を挿入します", - "timelion.help.functions.subtract.args.termHelpText": "インプットから引く数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.subtractHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置から引きます。", - "timelion.help.functions.sum.args.termHelpText": "インプット数列に足す数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.sumHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に足します。", - "timelion.help.functions.title.args.titleHelpText": "プロットのタイトルです。", - "timelion.help.functions.titleHelpText": "プロットの上部にタイトルを追加します。複数の seriesList がコールされた場合、最後のコールが使用されます。", - "timelion.help.functions.trend.args.endHelpText": "始めまたは終わりからの計算を修了する場所です。たとえば、-10 の場合終わりから 10 点目で計算が終了し、+15 の場合始めから 15 点目で終了します。デフォルト:0", - "timelion.help.functions.trend.args.modeHelpText": "傾向線の生成に使用するアルゴリズムです。次のいずれかです。{validRegressions}", - "timelion.help.functions.trend.args.startHelpText": "始めまたは終わりからの計算を開始する場所です。たとえば、-10 の場合終わりから 10 点目から計算を開始し、+15 の場合始めから 15 点目から開始します。デフォルト:0", - "timelion.help.functions.trendHelpText": "指定された回帰アルゴリズムで傾向線を描きます", - "timelion.help.functions.trim.args.endHelpText": "数列の終わりから切り取るバケットです。デフォルト:1", - "timelion.help.functions.trim.args.startHelpText": "数列の始めから切り取るバケットです。デフォルト:1", - "timelion.help.functions.trimHelpText": "「部分的バケットの問題」に合わせて、数列の始めか終わりの N 個のバケットを無効化するように設定します。", - "timelion.help.functions.worldbank.args.codeHelpText": "Worldbank API パスです。これは通常ドメインの後ろからクエリ文字列までのすべてです。例:{apiPathExample}。", - "timelion.help.functions.worldbankHelpText": "\n [実験]\n 数列へのパスを使用して {worldbankUrl} からデータを取得します。\n Worldbank は主に年間データを提供し、現在の年のデータがないことがよくあります。\n 最近の期間範囲のデータが取得できない場合は、{offsetQuery} をお試しください。", - "timelion.help.functions.worldbankIndicators.args.countryHelpText": "Worldbank の国 ID です。通常は国の 2 文字のコートです", - "timelion.help.functions.worldbankIndicators.args.indicatorHelpText": "使用するインジケーターコードです。{worldbankUrl} で調べる必要があります。多くが分かりづらいものです。例:{indicatorExample} は人口です", - "timelion.help.functions.worldbankIndicatorsHelpText": "\n [実験]\n 国名とインジケーターを使って {worldbankUrl} からデータを取得します。Worldbank は\n 主に年間データを提供し、現在の年のデータがないことがよくあります。最近の期間範囲のデータが取得できない場合は、{offsetQuery} をお試しください。\n 時間範囲", - "timelion.help.functions.yaxis.args.colorHelpText": "軸ラベルの色です", - "timelion.help.functions.yaxis.args.labelHelpText": "軸のラベルです", - "timelion.help.functions.yaxis.args.maxHelpText": "最高値", - "timelion.help.functions.yaxis.args.minHelpText": "最低値", - "timelion.help.functions.yaxis.args.positionHelpText": "左から右", - "timelion.help.functions.yaxis.args.tickDecimalsHelpText": "y 軸とティックラベルの小数点以下の桁数です。", - "timelion.help.functions.yaxis.args.unitsHelpText": "Y 軸のラベルのフォーマットに使用する機能です。次のいずれかです。{formatters}", - "timelion.help.functions.yaxis.args.yaxisHelpText": "この数列をプロットする数字の Y 軸です。例:2 本目の Y 軸は .yaxis(2)になります。", - "timelion.help.functions.yaxisHelpText": "さまざまな Y 軸のオプションを構成します。おそらく最も重要なのは、N 本目(例:2 本目)の Y 軸を追加する機能です。", - "timelion.noFunctionErrorMessage": "そのような関数はありません:{name}", - "timelion.panels.timechart.unknownIntervalErrorMessage": "不明な間隔", - "timelion.requestHandlerErrorTitle": "Timelion リクエストエラー", - "timelion.serverSideErrors.argumentsOverflowErrorMessage": "{functionName} に引き渡された引数が多すぎます", - "timelion.serverSideErrors.bucketsOverflowErrorMessage": "最大バケットを超えました:{bucketCount}/{maxBuckets} が許可されています。より広い間隔または短い期間を選択してください", - "timelion.serverSideErrors.colorFunction.colorNotProvidedErrorMessage": "色が指定されていません", - "timelion.serverSideErrors.conditionFunction.unknownOperatorErrorMessage": "不明な演算子", - "timelion.serverSideErrors.conditionFunction.wrongArgTypeErrorMessage": "数字または seriesList でなければなりません", - "timelion.serverSideErrors.esFunction.indexNotFoundErrorMessage": "Elasticsearch インデックス {index} が見つかりません", - "timelion.serverSideErrors.holtFunction.missingParamsErrorMessage": "シーズンの長さとサンプルサイズ >= 2 を指定する必要があります", - "timelion.serverSideErrors.holtFunction.notEnoughPointsErrorMessage": "二重指数平滑化を使用するには最低 2 つの点が必要です", - "timelion.serverSideErrors.movingaverageFunction.notValidPositionErrorMessage": "有効な配置:{validPositions}", - "timelion.serverSideErrors.movingstdFunction.notValidPositionErrorMessage": "有効な配置:{validPositions}", - "timelion.serverSideErrors.pointsFunction.notValidSymbolErrorMessage": "有効なシンボル:{validSymbols}", - "timelion.serverSideErrors.quandlFunction.unsupportedIntervalErrorMessage": "quandl()でサポートされていない間隔:{interval}. quandl()でサポートされている間隔:{intervals}", - "timelion.serverSideErrors.sheetParseErrorMessage": "予想:文字 {column} で {expectedDescription}", - "timelion.serverSideErrors.unknownArgumentErrorMessage": "{functionName} への不明な引数:{argumentName}", - "timelion.serverSideErrors.unknownArgumentTypeErrorMessage": "引数タイプがサポートされていません:{argument}", - "timelion.serverSideErrors.worldbankFunction.noDataErrorMessage": "Worldbank へのリクエストは成功しましたが、{code} のデータがありませんでした", - "timelion.serverSideErrors.wrongFunctionArgumentTypeErrorMessage": "{functionName}({argumentName})は {requiredTypes} の内の 1 つでなければなりません。{actualType} を入手", - "timelion.serverSideErrors.yaxisFunction.notSupportedUnitTypeErrorMessage": "{units} はサポートされているユニットタイプではありません。", - "timelion.serverSideErrors.yaxisFunction.notValidCurrencyFormatErrorMessage": "通貨は 3 文字のコードでなければなりません", - "timelion.timelionDescription": "グラフに時系列データを表示します。", - "timelion.uiSettings.defaultIndexDescription": "{esParam} で検索するデフォルトの Elasticsearch インデックスです", - "timelion.uiSettings.defaultIndexLabel": "デフォルトのインデックス", - "timelion.uiSettings.experimentalLabel": "実験的", - "timelion.uiSettings.graphiteURLDescription": "{experimentalLabel} Graphite ホストの URL", - "timelion.uiSettings.graphiteURLLabel": "Graphite URL", - "timelion.uiSettings.legacyChartsLibraryDeprication": "この設定はサポートが終了し、Kibana 8.0 ではサポートされません。", - "timelion.uiSettings.legacyChartsLibraryDescription": "VisualizeでTimelionグラフのレガシーグラフライブラリを有効にします", - "timelion.uiSettings.legacyChartsLibraryLabel": "Timelionレガシーグラフライブラリ", - "timelion.uiSettings.maximumBucketsDescription": "1つのデータソースが返せるバケットの最大数です", - "timelion.uiSettings.maximumBucketsLabel": "バケットの最大数", - "timelion.uiSettings.minimumIntervalDescription": "「auto」を使用時に計算される最小の間隔です", - "timelion.uiSettings.minimumIntervalLabel": "最低間隔", - "timelion.uiSettings.quandlKeyDescription": "{experimentalLabel} www.quandl.com からの API キーです", - "timelion.uiSettings.quandlKeyLabel": "Quandl キー", - "timelion.uiSettings.targetBucketsDescription": "自動間隔の使用時に目標となるバケット数です。", - "timelion.uiSettings.targetBucketsLabel": "目標バケット数", - "timelion.uiSettings.timeFieldDescription": "{esParam} の使用時にタイムスタンプを含むデフォルトのフィールドです", - "timelion.uiSettings.timeFieldLabel": "時間フィールド", - "timelion.vis.expressionLabel": "Timelion 式", - "timelion.vis.interval.auto": "自動", - "timelion.vis.interval.day": "1日", - "timelion.vis.interval.hour": "1時間", - "timelion.vis.interval.minute": "1分", - "timelion.vis.interval.month": "1か月", - "timelion.vis.interval.second": "1秒", - "timelion.vis.interval.week": "1週間", - "timelion.vis.interval.year": "1年", - "timelion.vis.intervalLabel": "間隔", - "timelion.vis.invalidIntervalErrorMessage": "無効な間隔フォーマット。", - "timelion.vis.selectIntervalHelpText": "オプションを選択するかカスタム値を作成します。例:30s、20m、24h、2d、1w、1M", - "timelion.vis.selectIntervalPlaceholder": "間隔を選択", - "uiActions.actionPanel.more": "詳細", - "uiActions.actionPanel.title": "オプション", - "uiActions.errors.incompatibleAction": "操作に互換性がありません", - "uiActions.triggers.rowClickkDescription": "テーブル行をクリック", - "uiActions.triggers.rowClickTitle": "テーブル行クリック", - "usageCollection.stats.notReadyMessage": "まだ統計が準備できていません。しばらくたってから再試行してください。", - "visDefaultEditor.advancedToggle.advancedLinkLabel": "高度な設定", - "visDefaultEditor.agg.disableAggButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを無効にする", - "visDefaultEditor.agg.enableAggButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを有効にする", - "visDefaultEditor.agg.errorsAriaLabel": "{schemaTitle} {aggTitle} アグリゲーションにエラーがあります", - "visDefaultEditor.agg.modifyPriorityButtonTooltip": "ドラッグして {schemaTitle} {aggTitle} の優先度を変更する", - "visDefaultEditor.agg.removeDimensionButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを削除する", - "visDefaultEditor.agg.toggleEditorButtonAriaLabel": "{schema} エディターを切り替える", - "visDefaultEditor.aggAdd.addButtonLabel": "追加", - "visDefaultEditor.aggAdd.addGroupButtonLabel": "{groupNameLabel}を追加", - "visDefaultEditor.aggAdd.addSubGroupButtonLabel": "サブ {groupNameLabel} を追加", - "visDefaultEditor.aggAdd.bucketLabel": "バケット", - "visDefaultEditor.aggAdd.maxBuckets": "最大{groupNameLabel}数に達しました", - "visDefaultEditor.aggAdd.metricLabel": "メトリック", - "visDefaultEditor.aggParams.errors.aggWrongRunOrderErrorMessage": "「{schema}」集約は他のバケットの前に実行する必要があります!", - "visDefaultEditor.aggSelect.aggregationLabel": "集約", - "visDefaultEditor.aggSelect.helpLinkLabel": "{aggTitle}のヘルプ", - "visDefaultEditor.aggSelect.noCompatibleAggsDescription": "インデックスパターン{indexPatternTitle}には集約可能なフィールドが含まれていません。", - "visDefaultEditor.aggSelect.selectAggPlaceholder": "集約を選択してください", - "visDefaultEditor.aggSelect.subAggregationLabel": "サブ集約", - "visDefaultEditor.buckets.mustHaveBucketErrorMessage": "「日付ヒストグラム」または「ヒストグラム」集約のバケットを追加します。", - "visDefaultEditor.controls.aggNotValidLabel": "- 無効な集約 -", - "visDefaultEditor.controls.aggregateWith.noAggsErrorTooltip": "選択されたフィールドには互換性のある集約がありません。", - "visDefaultEditor.controls.aggregateWithLabel": "集約:", - "visDefaultEditor.controls.aggregateWithTooltip": "複数ヒットまたは複数値のフィールドを 1 つのメトリックにまとめる方法を選択します。", - "visDefaultEditor.controls.changePrecisionLabel": "マップズームの精度を変更", - "visDefaultEditor.controls.columnsLabel": "列", - "visDefaultEditor.controls.customMetricLabel": "カスタムメトリック", - "visDefaultEditor.controls.dateRanges.acceptedDateFormatsLinkText": "許容可能な日付形式", - "visDefaultEditor.controls.dateRanges.addRangeButtonLabel": "範囲を追加", - "visDefaultEditor.controls.dateRanges.errorMessage": "各範囲は1つ以上の有効な日付にしてください。", - "visDefaultEditor.controls.dateRanges.fromColumnLabel": "開始:", - "visDefaultEditor.controls.dateRanges.removeRangeButtonAriaLabel": "{from}から{to}の範囲を削除", - "visDefaultEditor.controls.dateRanges.toColumnLabel": "終了:", - "visDefaultEditor.controls.definiteMetricLabel": "メトリック:{metric}", - "visDefaultEditor.controls.dotSizeRatioHelpText": "最小の点から最大の点までの半径の比率を変更します。", - "visDefaultEditor.controls.dotSizeRatioLabel": "点サイズ率", - "visDefaultEditor.controls.dropPartialBucketsLabel": "不完全なバケットをドロップ", - "visDefaultEditor.controls.dropPartialBucketsTooltip": "時間範囲外にわたるバケットを削除してヒストグラムが不完全なバケットで開始・終了しないようにします。", - "visDefaultEditor.controls.extendedBounds.errorMessage": "最低値は最大値以下でなければなりません。", - "visDefaultEditor.controls.extendedBounds.maxLabel": "最高", - "visDefaultEditor.controls.extendedBounds.minLabel": "最低", - "visDefaultEditor.controls.extendedBoundsLabel": "拡張された境界", - "visDefaultEditor.controls.extendedBoundsTooltip": "最低値と最高値は結果を絞るのではなく、結果セットのバウンドを拡張します。", - "visDefaultEditor.controls.field.fieldIsNotExists": "このオブジェクトに関連付けられたフィールド\"{fieldParameter}\"は、インデックスパターンに存在しません。別のフィールドを使用してください。", - "visDefaultEditor.controls.field.fieldLabel": "フィールド", - "visDefaultEditor.controls.field.invalidFieldForAggregation": "このアグリゲーションで使用するには、インデックスパターン\"{indexPatternTitle}\"の保存されたフィールド\"{fieldParameter}\"が無効です。新しいフィールドを選択してください。", - "visDefaultEditor.controls.field.noCompatibleFieldsDescription": "インデックスパターン` {indexPatternTitle} に次の互換性のあるフィールドタイプが 1 つも含まれていません:{fieldTypes}", - "visDefaultEditor.controls.field.selectFieldPlaceholder": "フィールドの選択", - "visDefaultEditor.controls.filters.addFilterButtonLabel": "フィルターを追加します", - "visDefaultEditor.controls.filters.definiteFilterLabel": "{index} ラベルでフィルタリング", - "visDefaultEditor.controls.filters.filterLabel": "{index} でフィルタリング", - "visDefaultEditor.controls.filters.labelPlaceholder": "ラベル", - "visDefaultEditor.controls.filters.removeFilterButtonAriaLabel": "このフィルターを削除", - "visDefaultEditor.controls.filters.toggleFilterButtonAriaLabel": "フィルターラベルを切り替える", - "visDefaultEditor.controls.includeExclude.addUnitButtonLabel": "値を追加", - "visDefaultEditor.controls.ipRanges.addRangeButtonLabel": "範囲を追加", - "visDefaultEditor.controls.ipRanges.cidrMaskAriaLabel": "CIDR マスク:{mask}", - "visDefaultEditor.controls.ipRanges.cidrMasksButtonLabel": "CIDR マスク", - "visDefaultEditor.controls.ipRanges.fromToButtonLabel": "開始/終了", - "visDefaultEditor.controls.ipRanges.ipRangeFromAriaLabel": "IP 範囲の開始値:{value}", - "visDefaultEditor.controls.ipRanges.ipRangeToAriaLabel": "IP 範囲の終了値:{value}", - "visDefaultEditor.controls.ipRanges.removeCidrMaskButtonAriaLabel": "{mask} の CIDR マスクの値を削除", - "visDefaultEditor.controls.ipRanges.removeEmptyCidrMaskButtonAriaLabel": "CIDR マスクのデフォルトの値を削除", - "visDefaultEditor.controls.ipRanges.removeRangeAriaLabel": "{from}から{to}の範囲を削除", - "visDefaultEditor.controls.ipRangesAriaLabel": "IP 範囲", - "visDefaultEditor.controls.jsonInputLabel": "JSON インプット", - "visDefaultEditor.controls.jsonInputTooltip": "ここに追加された JSON 形式のプロパティは、すべてこのセクションの Elasticsearch 集約定義に融合されます。用語集約における「shard_size」がその例です。", - "visDefaultEditor.controls.maxBars.autoPlaceholder": "自動", - "visDefaultEditor.controls.maxBars.maxBarsHelpText": "間隔は、使用可能なデータに基づいて、自動的に選択されます。棒の最大数は、詳細設定の{histogramMaxBars}以下でなければなりません。", - "visDefaultEditor.controls.maxBars.maxBarsLabel": "棒の最大数", - "visDefaultEditor.controls.metricLabel": "メトリック", - "visDefaultEditor.controls.metrics.bucketTitle": "バケット", - "visDefaultEditor.controls.metrics.metricTitle": "メトリック", - "visDefaultEditor.controls.numberInterval.autoInteralIsUsed": "自動間隔が使用されます", - "visDefaultEditor.controls.numberInterval.minimumIntervalLabel": "最低間隔", - "visDefaultEditor.controls.numberInterval.minimumIntervalTooltip": "入力された値により高度な設定の {histogramMaxBars} で指定されたよりも多くのバケットが作成される場合、間隔は自動的にスケーリングされます。", - "visDefaultEditor.controls.numberInterval.selectIntervalPlaceholder": "間隔を入力", - "visDefaultEditor.controls.numberList.addUnitButtonLabel": "{unitName} を追加", - "visDefaultEditor.controls.numberList.duplicateValueErrorMessage": "重複値。", - "visDefaultEditor.controls.numberList.enterValuePlaceholder": "値を入力", - "visDefaultEditor.controls.numberList.invalidAscOrderErrorMessage": "値は昇順になっていません。", - "visDefaultEditor.controls.numberList.invalidRangeErrorMessage": "値は {min} から {max} の範囲でなければなりません。", - "visDefaultEditor.controls.numberList.removeUnitButtonAriaLabel": "{value} のランク値を削除", - "visDefaultEditor.controls.onlyRequestDataAroundMapExtentLabel": "マップ範囲のデータのみリクエストしてください", - "visDefaultEditor.controls.onlyRequestDataAroundMapExtentTooltip": "geo_bounding_box フィルター集約を適用して、襟付きのマップビューボックスにサブジェクトエリアを絞ります", - "visDefaultEditor.controls.orderAgg.alphabeticalLabel": "アルファベット順", - "visDefaultEditor.controls.orderAgg.orderByLabel": "並び順", - "visDefaultEditor.controls.orderLabel": "順序", - "visDefaultEditor.controls.otherBucket.groupValuesLabel": "他の値を別のバケットにまとめる", - "visDefaultEditor.controls.otherBucket.groupValuesTooltip": "トップ N 以外の値はこのバケットにまとめられます。欠測値があるドキュメントを含めるには、「欠測値を表示」を有効にしてください。", - "visDefaultEditor.controls.otherBucket.showMissingValuesLabel": "欠測値を表示", - "visDefaultEditor.controls.otherBucket.showMissingValuesTooltip": "「文字列」タイプのフィールドにのみ使用できます。有効にすると、欠測値があるドキュメントが検索に含まれます。バケットがトップ N の場合、チャートに表示されます。トップ N ではなく、「他の値を別のバケットにまとえる」が有効な場合、Elasticsearch は欠測値を「他」のバケットに追加します。", - "visDefaultEditor.controls.percentileRanks.percentUnitNameText": "パーセント", - "visDefaultEditor.controls.percentileRanks.valuesLabel": "値", - "visDefaultEditor.controls.percentileRanks.valueUnitNameText": "値", - "visDefaultEditor.controls.percentiles.percentsLabel": "パーセント", - "visDefaultEditor.controls.placeMarkersOffGridLabel": "グリッド外にマーカーを配置(ジオセントロイドを使用)", - "visDefaultEditor.controls.precisionLabel": "精度", - "visDefaultEditor.controls.ranges.addRangeButtonLabel": "範囲を追加", - "visDefaultEditor.controls.ranges.fromLabel": "開始:", - "visDefaultEditor.controls.ranges.greaterThanOrEqualPrepend": "≥", - "visDefaultEditor.controls.ranges.greaterThanOrEqualTooltip": "よりも大きいまたは等しい", - "visDefaultEditor.controls.ranges.lessThanPrepend": "<", - "visDefaultEditor.controls.ranges.lessThanTooltip": "より小さい", - "visDefaultEditor.controls.ranges.removeRangeButtonAriaLabel": "{from}から{to}の範囲を削除", - "visDefaultEditor.controls.ranges.toLabel": "終了:", - "visDefaultEditor.controls.rowsLabel": "行", - "visDefaultEditor.controls.scaleMetricsLabel": "メトリック値のスケーリング(非推奨)", - "visDefaultEditor.controls.scaleMetricsTooltip": "これを有効にすると、手動最低間隔を選択し、広い間隔が使用された場合、カウントと合計メトリックが手動で選択された間隔にスケーリングされます。", - "visDefaultEditor.controls.showEmptyBucketsLabel": "空のバケットを表示", - "visDefaultEditor.controls.showEmptyBucketsTooltip": "結果のあるバケットだけでなくすべてのバケットを表示します", - "visDefaultEditor.controls.sizeLabel": "サイズ", - "visDefaultEditor.controls.sizeTooltip": "トップ K のヒットをリクエスト。複数ヒットは「集約基準」でまとめられます。", - "visDefaultEditor.controls.sortOnLabel": "並べ替えオン", - "visDefaultEditor.controls.splitByLegend": "行または列でチャートを分割します。", - "visDefaultEditor.controls.timeInterval.createsTooLargeBucketsTooltip": "この間隔は、選択された時間範囲に表示するには大きすぎるバケットが作成されるため、にスケーリングされています。", - "visDefaultEditor.controls.timeInterval.createsTooManyBucketsTooltip": "この間隔は選択された時間範囲に表示しきれない数のバケットが作成されるため、にスケーリングされています。", - "visDefaultEditor.controls.timeInterval.invalidFormatErrorMessage": "無効な間隔フォーマット。", - "visDefaultEditor.controls.timeInterval.minimumIntervalLabel": "最低間隔", - "visDefaultEditor.controls.timeInterval.scaledHelpText": "現在 {bucketDescription} にスケーリングされています", - "visDefaultEditor.controls.timeInterval.selectIntervalPlaceholder": "間隔を選択", - "visDefaultEditor.controls.timeInterval.selectOptionHelpText": "オプションを選択するかカスタム値を作成します。例:30s、20m、24h、2d、1w、1M", - "visDefaultEditor.controls.useAutoInterval": "自動間隔を使用", - "visDefaultEditor.editorConfig.dateHistogram.customInterval.helpText": "構成間隔の倍数でなければなりません:{interval}", - "visDefaultEditor.editorConfig.histogram.interval.helpText": "構成間隔の倍数でなければなりません:{interval}", - "visDefaultEditor.metrics.wrongLastBucketTypeErrorMessage": "「{type}」メトリック集約を使用する場合、最後のバケット集約は「Date Histogram」または「Histogram」でなければなりません。", - "visDefaultEditor.options.colorRanges.errorText": "各範囲は前の範囲よりも大きくなければなりません。", - "visDefaultEditor.options.colorSchema.colorSchemaLabel": "配色", - "visDefaultEditor.options.colorSchema.howToChangeColorsDescription": "それぞれの色は凡例で変更できます。", - "visDefaultEditor.options.colorSchema.resetColorsButtonLabel": "色をリセット", - "visDefaultEditor.options.colorSchema.reverseColorSchemaLabel": "図表を反転", - "visDefaultEditor.options.percentageMode.documentationLabel": "Numeral.jsドキュメント", - "visDefaultEditor.options.percentageMode.numeralLabel": "形式パターン", - "visDefaultEditor.options.percentageMode.percentageModeLabel": "百分率モード", - "visDefaultEditor.options.rangeErrorMessage": "値は{min}と{max}の間でなければなりません", - "visDefaultEditor.options.vislibBasicOptions.legendPositionLabel": "凡例位置", - "visDefaultEditor.options.vislibBasicOptions.showTooltipLabel": "ツールヒントを表示", - "visDefaultEditor.palettePicker.label": "カラーパレット", - "visDefaultEditor.sidebar.autoApplyChangesLabelOff": "自動適用がオフです", - "visDefaultEditor.sidebar.autoApplyChangesLabelOn": "自動適用がオンです", - "visDefaultEditor.sidebar.autoApplyChangesOff": "オフ", - "visDefaultEditor.sidebar.autoApplyChangesOffLabel": "自動適用がオフです", - "visDefaultEditor.sidebar.autoApplyChangesOn": "オン", - "visDefaultEditor.sidebar.autoApplyChangesOnLabel": "自動適用がオンです", - "visDefaultEditor.sidebar.autoApplyChangesTooltip": "変更されるごとにビジュアライゼーションを自動的に更新します。", - "visDefaultEditor.sidebar.collapseButtonAriaLabel": "サイドバーを切り替える", - "visDefaultEditor.sidebar.discardChangesButtonLabel": "破棄", - "visDefaultEditor.sidebar.errorButtonTooltip": "ハイライトされたフィールドのエラーを解決する必要があります。", - "visDefaultEditor.sidebar.indexPatternAriaLabel": "インデックスパターン:{title}", - "visDefaultEditor.sidebar.savedSearch.goToDiscoverButtonText": "Discover にこの検索を表示", - "visDefaultEditor.sidebar.savedSearch.linkButtonAriaLabel": "保存された検索へのリンク。クリックして詳細を確認するかリンクを解除します。", - "visDefaultEditor.sidebar.savedSearch.popoverHelpText": "保存したこの検索に今後加える修正は、ビジュアライゼーションに反映されます。自動更新を無効にするには、リンクを削除します。", - "visDefaultEditor.sidebar.savedSearch.popoverTitle": "保存された検索にリンクされています", - "visDefaultEditor.sidebar.savedSearch.titleAriaLabel": "保存された検索:{title}", - "visDefaultEditor.sidebar.savedSearch.unlinkSavedSearchButtonText": "保存された検索へのリンクを削除", - "visDefaultEditor.sidebar.tabs.dataLabel": "データ", - "visDefaultEditor.sidebar.tabs.optionsLabel": "オプション", - "visDefaultEditor.sidebar.updateChartButtonLabel": "更新", - "visDefaultEditor.sidebar.updateInfoTooltip": "CTRL + Enterは更新のショートカットです。", - "visTypeMarkdown.function.font.help": "フォント設定です。", - "visTypeMarkdown.function.help": "マークダウンビジュアライゼーション", - "visTypeMarkdown.function.markdown.help": "レンダリングするマークダウン", - "visTypeMarkdown.function.openLinksInNewTab.help": "新規タブでリンクを開きます", - "visTypeMarkdown.markdownDescription": "テキストと画像をダッシュボードに追加します。", - "visTypeMarkdown.markdownTitleInWizard": "テキスト", - "visTypeMarkdown.params.fontSizeLabel": "ポイント単位のベースフォントサイズです。", - "visTypeMarkdown.params.helpLinkLabel": "ヘルプ", - "visTypeMarkdown.params.openLinksLabel": "新規タブでリンクを開く", - "visTypeMarkdown.tabs.dataText": "データ", - "visTypeMarkdown.tabs.optionsText": "オプション", - "visTypeMetric.colorModes.backgroundOptionLabel": "背景", - "visTypeMetric.colorModes.labelsOptionLabel": "ラベル", - "visTypeMetric.colorModes.noneOptionLabel": "なし", - "visTypeMetric.metricDescription": "計算結果を単独の数字として表示します。", - "visTypeMetric.metricTitle": "メトリック", - "visTypeMetric.params.color.useForLabel": "使用する色", - "visTypeMetric.params.rangesTitle": "範囲", - "visTypeMetric.params.settingsTitle": "設定", - "visTypeMetric.params.showTitleLabel": "タイトルを表示", - "visTypeMetric.params.style.fontSizeLabel": "ポイント単位のメトリックフォントサイズ", - "visTypeMetric.params.style.styleTitle": "スタイル", - "visTypeMetric.schemas.metricTitle": "メトリック", - "visTypeMetric.schemas.splitGroupTitle": "グループを分割", - "expressionMetricVis.function.dimension.splitGroup": "グループを分割", - "expressionMetricVis.function.bucket.help": "バケットディメンションの構成です。", - "expressionMetricVis.function.colorMode.help": "色を変更するメトリックの部分", - "expressionMetricVis.function.dimension.metric": "メトリック", - "expressionMetricVis.function.font.help": "フォント設定です。", - "expressionMetricVis.function.help": "メトリックビジュアライゼーション", - "expressionMetricVis.function.metric.help": "メトリックディメンションの構成です。", - "expressionMetricVis.function.percentageMode.help": "百分率モードでメトリックを表示します。colorRange を設定する必要があります。", - "expressionMetricVis.function.showLabels.help": "メトリック値の下にラベルを表示します。", - "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.deprecation": "Visualizeの円グラフのレガシーグラフライブラリは廃止予定であり、8.0以降ではサポートされません。", - "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.description": "Visualizeで円グラフのレガシーグラフライブラリを有効にします。", - "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.name": "円グラフのレガシーグラフライブラリ", - "visTypePie.controls.truncateLabel": "切り捨て", - "visTypePie.editors.pie.addLegendLabel": "凡例を表示", - "visTypePie.editors.pie.decimalSliderLabel": "割合の最大小数点桁数", - "visTypePie.editors.pie.distinctColorsLabel": "スライスごとに異なる色を使用", - "visTypePie.editors.pie.donutLabel": "ドーナッツ", - "visTypePie.editors.pie.labelPositionLabel": "ラベル位置", - "visTypePie.editors.pie.labelsSettingsTitle": "ラベル設定", - "visTypePie.editors.pie.nestedLegendLabel": "ネスト凡例", - "visTypePie.editors.pie.pieSettingsTitle": "パイ設定", - "visTypePie.editors.pie.showLabelsLabel": "ラベルを表示", - "visTypePie.editors.pie.showTopLevelOnlyLabel": "トップレベルのみ表示", - "visTypePie.editors.pie.showValuesLabel": "値を表示", - "visTypePie.editors.pie.valueFormatsLabel": "値", - "visTypePie.function.adimension.buckets": "スライス", - "visTypePie.function.args.addLegendHelpText": "グラフ凡例を表示", - "visTypePie.function.args.addTooltipHelpText": "スライスにカーソルを置いたときにツールチップを表示", - "visTypePie.function.args.bucketsHelpText": "バケットディメンション構成", - "visTypePie.function.args.distinctColorsHelpText": "スライスごとに異なる色をマッピングします。同じ値のスライスは同じ色になります", - "visTypePie.function.args.isDonutHelpText": "円グラフをドーナツグラフとして表示します", - "visTypePie.function.args.labelsHelpText": "円グラフラベル構成", - "visTypePie.function.args.legendPositionHelpText": "グラフの上、下、左、右に凡例を配置", - "visTypePie.function.args.metricHelpText": "メトリックディメンション構成", - "visTypePie.function.args.nestedLegendHelpText": "詳細凡例を表示", - "visTypePie.function.args.paletteHelpText": "グラフパレット名を定義します", - "visTypePie.function.args.splitColumnHelpText": "列ディメンション構成で分割", - "visTypePie.function.args.splitRowHelpText": "行ディメンション構成で分割", - "visTypePie.function.dimension.metric": "スライスサイズ", - "visTypePie.function.dimension.splitcolumn": "列分割", - "visTypePie.function.dimension.splitrow": "行分割", - "visTypePie.function.pieLabels.help": "円グラフラベルオブジェクトを生成します", - "visTypePie.function.pieLabels.lastLevel.help": "最上位のラベルのみを表示", - "visTypePie.function.pieLabels.percentDecimals.help": "割合として値に表示される10進数を定義します", - "visTypePie.function.pieLabels.position.help": "ラベル位置を定義します", - "visTypePie.function.pieLabels.show.help": "円グラフのラベルを表示します", - "visTypePie.function.pieLabels.truncate.help": "スライス値が表示される文字数を定義します", - "visTypePie.function.pieLabels.values.help": "スライス内の値を定義します", - "visTypePie.function.pieLabels.valuesFormat.help": "値の形式を定義します", - "visTypePie.functions.help": "パイビジュアライゼーション", - "visTypePie.labelPositions.insideOrOutsideText": "内部または外部", - "visTypePie.labelPositions.insideText": "内部", - "visTypePie.legend.filterForValueButtonAriaLabel": "値でフィルター", - "visTypePie.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "visTypePie.legend.filterOutValueButtonAriaLabel": "値を除外", - "visTypePie.legendPositions.bottomText": "一番下", - "visTypePie.legendPositions.leftText": "左", - "visTypePie.legendPositions.rightText": "右", - "visTypePie.legendPositions.topText": "トップ", - "visTypePie.pie.metricTitle": "スライスサイズ", - "visTypePie.pie.pieDescription": "全体に対する比率でデータを比較します。", - "visTypePie.pie.pieTitle": "円", - "visTypePie.pie.segmentTitle": "スライスの分割", - "visTypePie.pie.splitTitle": "チャートを分割", - "visTypePie.valuesFormats.percent": "割合を表示", - "visTypePie.valuesFormats.value": "値を表示", - "visTypeTable.defaultAriaLabel": "データ表ビジュアライゼーション", - "visTypeTable.function.adimension.buckets": "バケット", - "visTypeTable.function.args.bucketsHelpText": "バケットディメンション構成", - "visTypeTable.function.args.metricsHelpText": "メトリックディメンション構成", - "visTypeTable.function.args.percentageColHelpText": "割合を表示する列の名前", - "visTypeTable.function.args.perPageHelpText": "表ページの行数はページネーションで使用されます", - "visTypeTable.function.args.rowHelpText": "行値は分割表モードで使用されます。「true」に設定すると、行で分割します", - "visTypeTable.function.args.showToolbarHelpText": "「true」に設定すると、グリッドツールバーと[エクスポート]ボタンを表示します", - "visTypeTable.function.args.showTotalHelpText": "「true」に設定すると、合計行を表示します", - "visTypeTable.function.args.splitColumnHelpText": "列ディメンション構成で分割", - "visTypeTable.function.args.splitRowHelpText": "行ディメンション構成で分割", - "visTypeTable.function.args.titleHelpText": "ビジュアライゼーションタイトル。タイトルはデフォルトファイル名としてCSVエクスポートで使用されます", - "visTypeTable.function.args.totalFuncHelpText": "合計行の集計関数を指定します。使用可能なオプション:", - "visTypeTable.function.dimension.metrics": "メトリック", - "visTypeTable.function.dimension.splitColumn": "列で分割", - "visTypeTable.function.dimension.splitRow": "行で分割", - "visTypeTable.function.help": "表ビジュアライゼーション", - "visTypeTable.params.defaultPercentageCol": "非表示", - "visTypeTable.params.PercentageColLabel": "パーセンテージ列", - "visTypeTable.params.percentageTableColumnName": "{title} パーセント", - "visTypeTable.params.perPageLabel": "ページごとの最大行数", - "visTypeTable.params.showMetricsLabel": "すべてのバケット/レベルのメトリックを表示", - "visTypeTable.params.showPartialRowsLabel": "部分的な行を表示", - "visTypeTable.params.showPartialRowsTip": "部分データのある行を表示。表示されていなくてもすべてのバケット/レベルのメトリックが計算されます。", - "visTypeTable.params.showToolbarLabel": "ツールバーを表示", - "visTypeTable.params.showTotalLabel": "合計を表示", - "visTypeTable.params.totalFunctionLabel": "合計機能", - "visTypeTable.sort.ascLabel": "昇順で並べ替え", - "visTypeTable.sort.descLabel": "降順で並べ替え", - "visTypeTable.tableCellFilter.filterForValueAriaLabel": "値のフィルター:{cellContent}", - "visTypeTable.tableCellFilter.filterForValueText": "値でフィルター", - "visTypeTable.tableCellFilter.filterOutValueAriaLabel": "値の除外:{cellContent}", - "visTypeTable.tableCellFilter.filterOutValueText": "値を除外", - "visTypeTable.tableVisDescription": "行と列にデータを表示します。", - "visTypeTable.tableVisEditorConfig.schemas.bucketTitle": "行を分割", - "visTypeTable.tableVisEditorConfig.schemas.metricTitle": "メトリック", - "visTypeTable.tableVisEditorConfig.schemas.splitTitle": "テーブルを分割", - "visTypeTable.tableVisTitle": "データテーブル", - "visTypeTable.totalAggregations.averageText": "平均", - "visTypeTable.totalAggregations.countText": "カウント", - "visTypeTable.totalAggregations.maxText": "最高", - "visTypeTable.totalAggregations.minText": "最低", - "visTypeTable.totalAggregations.sumText": "合計", - "visTypeTable.vis.controls.exportButtonAriaLabel": "{dataGridAriaLabel} を CSV としてエクスポート", - "visTypeTable.vis.controls.exportButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", - "visTypeTable.vis.controls.exportButtonLabel": "エクスポート", - "visTypeTable.vis.controls.formattedCSVButtonLabel": "フォーマット済み", - "visTypeTable.vis.controls.rawCSVButtonLabel": "未加工", - "visTypeTagCloud.orientations.multipleText": "複数", - "visTypeTagCloud.orientations.rightAngledText": "直角", - "visTypeTagCloud.orientations.singleText": "単一", - "visTypeTagCloud.scales.linearText": "線形", - "visTypeTagCloud.scales.logText": "ログ", - "visTypeTagCloud.scales.squareRootText": "平方根", - "visTypeTagCloud.vis.schemas.metricTitle": "タグサイズ", - "visTypeTagCloud.vis.schemas.segmentTitle": "タグ", - "visTypeTagCloud.vis.tagCloudDescription": "単語の頻度とフォントサイズを表示します。", - "visTypeTagCloud.vis.tagCloudTitle": "タグクラウド", - "visTypeTagCloud.visParams.fontSizeLabel": "フォントサイズ範囲(ピクセル)", - "visTypeTagCloud.visParams.orientationsLabel": "方向", - "visTypeTagCloud.visParams.showLabelToggleLabel": "ラベルを表示", - "visTypeTagCloud.visParams.textScaleLabel": "テキストスケール", - "visTypeTimeseries.addDeleteButtons.addButtonDefaultTooltip": "追加", - "visTypeTimeseries.addDeleteButtons.cloneButtonDefaultTooltip": "クローンを作成", - "visTypeTimeseries.addDeleteButtons.deleteButtonDefaultTooltip": "削除", - "visTypeTimeseries.addDeleteButtons.reEnableTooltip": "再度有効にする", - "visTypeTimeseries.addDeleteButtons.temporarilyDisableTooltip": "一時的に無効にする", - "visTypeTimeseries.advancedSettings.maxBucketsText": "TSVBヒストグラム密度に影響します。「histogram:maxBars」よりも大きく設定する必要があります。", - "visTypeTimeseries.advancedSettings.maxBucketsTitle": "TSVBバケット制限", - "visTypeTimeseries.aggRow.addMetricButtonTooltip": "メトリックを追加", - "visTypeTimeseries.aggRow.deleteMetricButtonTooltip": "メトリックを削除", - "visTypeTimeseries.aggSelect.aggGroups.metricAggLabel": "メトリック集約", - "visTypeTimeseries.aggSelect.aggGroups.parentPipelineAggLabel": "親パイプライン集約", - "visTypeTimeseries.aggSelect.aggGroups.siblingPipelineAggLabel": "シブリングパイプライン集約", - "visTypeTimeseries.aggSelect.aggGroups.specialAggLabel": "特殊集約", - "visTypeTimeseries.aggSelect.selectAggPlaceholder": "集約を選択", - "visTypeTimeseries.annotationsEditor.addDataSourceButtonLabel": "データソースを追加", - "visTypeTimeseries.annotationsEditor.dataSourcesLabel": "データソース", - "visTypeTimeseries.annotationsEditor.fieldsLabel": "フィールド(必須 - コンマ区切りのパス)", - "visTypeTimeseries.annotationsEditor.howToCreateAnnotationDataSourceDescription": "下のボタンをクリックして注釈データソースを作成します。", - "visTypeTimeseries.annotationsEditor.iconLabel": "アイコン(必須)", - "visTypeTimeseries.annotationsEditor.ignoreGlobalFiltersLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.annotationsEditor.ignorePanelFiltersLabel": "パネルフィルターを無視しますか?", - "visTypeTimeseries.annotationsEditor.queryStringLabel": "クエリ文字列", - "visTypeTimeseries.annotationsEditor.rowTemplateHelpText": "eg.{rowTemplateExample}", - "visTypeTimeseries.annotationsEditor.rowTemplateLabel": "行テンプレート (必須)", - "visTypeTimeseries.annotationsEditor.timeFieldLabel": "時間フィールド (必須)", - "visTypeTimeseries.axisLabelOptions.axisLabel": "{unitValue} {unitString}単位", - "visTypeTimeseries.calculateLabel.bucketScriptsLabel": "バケットスクリプト", - "visTypeTimeseries.calculateLabel.countLabel": "カウント", - "visTypeTimeseries.calculateLabel.filterRatioLabel": "フィルターレート", - "visTypeTimeseries.calculateLabel.mathLabel": "数学処理", - "visTypeTimeseries.calculateLabel.positiveRateLabel": "{field} のカウンターレート", - "visTypeTimeseries.calculateLabel.seriesAggLabel": "数列アグリゲーション({metricFunction})", - "visTypeTimeseries.calculateLabel.staticValueLabel": "{metricValue} の静的値", - "visTypeTimeseries.calculateLabel.unknownLabel": "不明", - "visTypeTimeseries.calculation.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.calculation.painlessScriptDescription": "変数は {params}オブジェクトのキーです(例:{paramsName})。バケット間隔(ミリ秒単位)にアクセスするには {paramsInterval} を使用します。", - "visTypeTimeseries.calculation.painlessScriptLabel": "Painless スクリプト", - "visTypeTimeseries.calculation.variablesLabel": "変数", - "visTypeTimeseries.colorPicker.clearIconLabel": "クリア", - "visTypeTimeseries.colorPicker.notAccessibleAriaLabel": "カラーピッカー、アクセス不可", - "visTypeTimeseries.colorPicker.notAccessibleWithValueAriaLabel": "カラーピッカー({value})、アクセス不可", - "visTypeTimeseries.colorRules.adjustChartSizeAriaLabel": "上下の矢印を押してチャートサイズを調整します", - "visTypeTimeseries.colorRules.defaultPrimaryNameLabel": "背景", - "visTypeTimeseries.colorRules.defaultSecondaryNameLabel": "テキスト", - "visTypeTimeseries.colorRules.emptyLabel": "空", - "visTypeTimeseries.colorRules.greaterThanLabel": "> より大きい", - "visTypeTimeseries.colorRules.greaterThanOrEqualLabel": ">= greater than or equal", - "visTypeTimeseries.colorRules.ifMetricIsLabel": "メトリックが", - "visTypeTimeseries.colorRules.lessThanLabel": "< less than", - "visTypeTimeseries.colorRules.lessThanOrEqualLabel": "<= less than or equal", - "visTypeTimeseries.colorRules.setPrimaryColorLabel": "{primaryName} を設定", - "visTypeTimeseries.colorRules.setSecondaryColorLabel": "{secondaryName} を設定", - "visTypeTimeseries.colorRules.valueAriaLabel": "値", - "visTypeTimeseries.cumulativeSum.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.cumulativeSum.metricLabel": "メトリック", - "visTypeTimeseries.dataFormatPicker.bytesLabel": "バイト", - "visTypeTimeseries.dataFormatPicker.customLabel": "カスタム", - "visTypeTimeseries.dataFormatPicker.decimalPlacesLabel": "小数部分の桁数", - "visTypeTimeseries.dataFormatPicker.durationLabel": "期間", - "visTypeTimeseries.dataFormatPicker.formatPatternHelpText": "ドキュメント", - "visTypeTimeseries.dataFormatPicker.formatPatternLabel": "Numeral.js のフォーマットパターン (デフォルト: {defaultPattern})", - "visTypeTimeseries.dataFormatPicker.fromLabel": "開始:", - "visTypeTimeseries.dataFormatPicker.numberLabel": "数字", - "visTypeTimeseries.dataFormatPicker.percentLabel": "パーセント", - "visTypeTimeseries.dataFormatPicker.toLabel": "終了:", - "visTypeTimeseries.defaultDataFormatterLabel": "データフォーマッター", - "visTypeTimeseries.derivative.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.derivative.metricLabel": "メトリック", - "visTypeTimeseries.derivative.unitsLabel": "単位(1s、1m など)", - "visTypeTimeseries.durationOptions.daysLabel": "日", - "visTypeTimeseries.durationOptions.hoursLabel": "時間", - "visTypeTimeseries.durationOptions.humanize": "人間に読解可能", - "visTypeTimeseries.durationOptions.microsecondsLabel": "マイクロ秒", - "visTypeTimeseries.durationOptions.millisecondsLabel": "ミリ秒", - "visTypeTimeseries.durationOptions.minutesLabel": "分", - "visTypeTimeseries.durationOptions.monthsLabel": "か月", - "visTypeTimeseries.durationOptions.nanosecondsLabel": "ナノ秒", - "visTypeTimeseries.durationOptions.picosecondsLabel": "ピコ秒", - "visTypeTimeseries.durationOptions.secondsLabel": "秒", - "visTypeTimeseries.durationOptions.weeksLabel": "週間", - "visTypeTimeseries.durationOptions.yearsLabel": "年", - "visTypeTimeseries.emptyTextValue": "(空)", - "visTypeTimeseries.error.requestForPanelFailedErrorMessage": "このパネルのリクエストに失敗しました", - "visTypeTimeseries.fetchFields.loadIndexPatternFieldsErrorMessage": "index_pattern フィールドを読み込めません", - "visTypeTimeseries.fieldSelect.fieldIsNotValid": "\"{fieldParameter}\"フィールドは無効であり、現在のインデックスで使用できません。新しいフィールドを選択してください。", - "visTypeTimeseries.fieldSelect.selectFieldPlaceholder": "フィールドを選択してください...", - "visTypeTimeseries.filterRatio.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.filterRatio.denominatorLabel": "分母", - "visTypeTimeseries.filterRatio.fieldLabel": "フィールド", - "visTypeTimeseries.filterRatio.metricAggregationLabel": "メトリック集約", - "visTypeTimeseries.filterRatio.numeratorLabel": "分子", - "visTypeTimeseries.function.help": "TSVB ビジュアライゼーション", - "visTypeTimeseries.gauge.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.gauge.dataTab.metricsButtonLabel": "メトリック", - "visTypeTimeseries.gauge.editor.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.gauge.editor.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.gauge.editor.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.gauge.editor.labelPlaceholder": "ラベル", - "visTypeTimeseries.gauge.editor.toggleEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.gauge.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.gauge.optionsTab.colorRulesLabel": "カラールール", - "visTypeTimeseries.gauge.optionsTab.dataLabel": "データ", - "visTypeTimeseries.gauge.optionsTab.gaugeLineWidthLabel": "ゲージ線の幅", - "visTypeTimeseries.gauge.optionsTab.gaugeMaxLabel": "ゲージ最大値(自動は未入力)", - "visTypeTimeseries.gauge.optionsTab.gaugeStyleLabel": "ゲージスタイル", - "visTypeTimeseries.gauge.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.gauge.optionsTab.innerColorLabel": "内側の色:", - "visTypeTimeseries.gauge.optionsTab.innerLineWidthLabel": "内側の線の幅", - "visTypeTimeseries.gauge.optionsTab.optionsButtonLabel": "オプション", - "visTypeTimeseries.gauge.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.gauge.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.gauge.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.gauge.styleOptions.circleLabel": "円", - "visTypeTimeseries.gauge.styleOptions.halfCircleLabel": "半円", - "visTypeTimeseries.getInterval.daysLabel": "日", - "visTypeTimeseries.getInterval.hoursLabel": "時間", - "visTypeTimeseries.getInterval.minutesLabel": "分", - "visTypeTimeseries.getInterval.monthsLabel": "か月", - "visTypeTimeseries.getInterval.secondsLabel": "秒", - "visTypeTimeseries.getInterval.weeksLabel": "週間", - "visTypeTimeseries.getInterval.yearsLabel": "年", - "visTypeTimeseries.handleErrorResponse.unexpectedError": "予期しないエラー", - "visTypeTimeseries.iconSelect.asteriskLabel": "アスタリスク", - "visTypeTimeseries.iconSelect.bellLabel": "ベル", - "visTypeTimeseries.iconSelect.boltLabel": "ボルト", - "visTypeTimeseries.iconSelect.bombLabel": "ボム", - "visTypeTimeseries.iconSelect.bugLabel": "バグ", - "visTypeTimeseries.iconSelect.commentLabel": "コメント", - "visTypeTimeseries.iconSelect.exclamationCircleLabel": "マル感嘆符", - "visTypeTimeseries.iconSelect.exclamationTriangleLabel": "注意三角マーク", - "visTypeTimeseries.iconSelect.fireLabel": "炎", - "visTypeTimeseries.iconSelect.flagLabel": "旗", - "visTypeTimeseries.iconSelect.heartLabel": "ハート", - "visTypeTimeseries.iconSelect.mapMarkerLabel": "マップマーカー", - "visTypeTimeseries.iconSelect.mapPinLabel": "マップピン", - "visTypeTimeseries.iconSelect.starLabel": "星", - "visTypeTimeseries.iconSelect.tagLabel": "タグ", - "visTypeTimeseries.indexPattern.detailLevel": "詳細レベル", - "visTypeTimeseries.indexPattern.detailLevelAriaLabel": "詳細レベル", - "visTypeTimeseries.indexPattern.detailLevelHelpText": "時間範囲に基づき自動およびgte間隔を制御します。デフォルトの間隔は詳細設定の{histogramTargetBars}と{histogramMaxBars}の影響を受けます。", - "visTypeTimeseries.indexPattern.dropLastBucketLabel": "最後のバケットをドロップしますか?", - "visTypeTimeseries.indexPattern.finest": "最も細かい", - "visTypeTimeseries.indexPattern.intervalHelpText": "例:auto、1m、1d、7d、1y、>=1m", - "visTypeTimeseries.indexPattern.intervalLabel": "間隔", - "visTypeTimeseries.indexPattern.timeFieldLabel": "時間フィールド", - "visTypeTimeseries.indexPattern.timeRange.entireTimeRange": "時間範囲全体", - "visTypeTimeseries.indexPattern.timeRange.error": "現在のインデックスタイプでは\"{mode}\"を使用できません。", - "visTypeTimeseries.indexPattern.timeRange.hint": "この設定は、一致するドキュメントに使用される期間をコントロールします。「時間範囲全体」は、タイムピッカーで選択されたすべてのドキュメントと照会します。「最終値」は、期間の終了時から指定期間のドキュメントのみと照会します。", - "visTypeTimeseries.indexPattern.timeRange.label": "データ期間モード", - "visTypeTimeseries.indexPattern.timeRange.lastValue": "最終値", - "visTypeTimeseries.indexPattern.timeRange.selectTimeRange": "選択してください", - "visTypeTimeseries.indexPattern.сoarse": "粗い", - "visTypeTimeseries.kbnVisTypes.metricsDescription": "時系列データの高度な分析を実行します。", - "visTypeTimeseries.kbnVisTypes.metricsTitle": "TSVB", - "visTypeTimeseries.lastValueModeIndicator.lastBucketDate": "バケット:{lastBucketDate}", - "visTypeTimeseries.lastValueModeIndicator.lastValue": "最終値", - "visTypeTimeseries.lastValueModeIndicator.lastValueModeBadgeAriaLabel": "最後の値の詳細を表示", - "visTypeTimeseries.lastValueModeIndicator.panelInterval": "間隔:{formattedPanelInterval}", - "visTypeTimeseries.lastValueModePopover.gearButton": "最終値のインジケーター表示オプションを変更", - "visTypeTimeseries.lastValueModePopover.switch": "最終値モードを使用するときにラベルを表示", - "visTypeTimeseries.lastValueModePopover.title": "最終値オプション", - "visTypeTimeseries.markdown.alignOptions.bottomLabel": "一番下", - "visTypeTimeseries.markdown.alignOptions.middleLabel": "真ん中", - "visTypeTimeseries.markdown.alignOptions.topLabel": "一番上", - "visTypeTimeseries.markdown.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.markdown.dataTab.metricsButtonLabel": "メトリック", - "visTypeTimeseries.markdown.editor.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.markdown.editor.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.markdown.editor.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.markdown.editor.labelPlaceholder": "ラベル", - "visTypeTimeseries.markdown.editor.toggleEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.markdown.editor.variableNamePlaceholder": "変数名", - "visTypeTimeseries.markdown.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.markdown.optionsTab.customCSSLabel": "カスタム CSS(Less をサポート)", - "visTypeTimeseries.markdown.optionsTab.dataLabel": "データ", - "visTypeTimeseries.markdown.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.markdown.optionsTab.openLinksInNewTab": "新規タブでリンクを開きますか?", - "visTypeTimeseries.markdown.optionsTab.optionsButtonLabel": "オプション", - "visTypeTimeseries.markdown.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.markdown.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.markdown.optionsTab.showScrollbarsLabel": "スクロールバーを表示しますか?", - "visTypeTimeseries.markdown.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.markdown.optionsTab.verticalAlignmentLabel": "縦の配列:", - "visTypeTimeseries.markdownEditor.howToAccessEntireTreeDescription": "{all} という特殊な変数もあり、ツリー全体へのアクセスに使用できます。これは group by からデータのリストを作成する際に便利です:", - "visTypeTimeseries.markdownEditor.howToUseVariablesInMarkdownDescription": "次の変数は Markdown で Handlebar(mustache)構文を使用して使用できます。利用可能な表現は {handlebarLink} をご覧ください。", - "visTypeTimeseries.markdownEditor.howUseVariablesInMarkdownDescription.documentationLinkText": "ドキュメンテーションはここをクリックしてください", - "visTypeTimeseries.markdownEditor.nameLabel": "名前", - "visTypeTimeseries.markdownEditor.noVariablesAvailableDescription": "選択されたデータメトリックに利用可能な変数はありません。", - "visTypeTimeseries.markdownEditor.valueLabel": "値", - "visTypeTimeseries.math.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.math.expressionDescription.tinyMathLinkText": "TinyMath", - "visTypeTimeseries.math.expressionLabel": "表現", - "visTypeTimeseries.math.variablesLabel": "変数", - "visTypeTimeseries.metric.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.metric.dataTab.metricsButtonLabel": "メトリック", - "visTypeTimeseries.metric.editor.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.metric.editor.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.metric.editor.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.metric.editor.labelPlaceholder": "ラベル", - "visTypeTimeseries.metric.editor.toggleEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.metric.optionsTab.colorRulesLabel": "カラールール", - "visTypeTimeseries.metric.optionsTab.dataLabel": "データ", - "visTypeTimeseries.metric.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.metric.optionsTab.optionsButtonLabel": "オプション", - "visTypeTimeseries.metric.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.metric.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.metricMissingErrorMessage": "メトリックに {field} がありません", - "visTypeTimeseries.metricSelect.selectMetricPlaceholder": "メトリックを選択してください…", - "visTypeTimeseries.missingPanelConfigDescription": "「{modelType}」にパネル構成が欠けています", - "visTypeTimeseries.movingAverage.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.movingAverage.alpha": "アルファ", - "visTypeTimeseries.movingAverage.beta": "ベータ", - "visTypeTimeseries.movingAverage.gamma": "ガンマ", - "visTypeTimeseries.movingAverage.metricLabel": "メトリック", - "visTypeTimeseries.movingAverage.model.selectPlaceholder": "選択してください", - "visTypeTimeseries.movingAverage.modelLabel": "モデル", - "visTypeTimeseries.movingAverage.modelOptions.exponentiallyWeightedLabel": "指数加重", - "visTypeTimeseries.movingAverage.modelOptions.holtLinearLabel": "Holt-Linear", - "visTypeTimeseries.movingAverage.modelOptions.holtWintersLabel": "Holt-Winters", - "visTypeTimeseries.movingAverage.modelOptions.linearLabel": "線形", - "visTypeTimeseries.movingAverage.modelOptions.simpleLabel": "シンプル", - "visTypeTimeseries.movingAverage.multiplicative": "マルチキャプティブ", - "visTypeTimeseries.movingAverage.multiplicative.selectPlaceholder": "選択してください", - "visTypeTimeseries.movingAverage.multiplicativeOptions.false": "False", - "visTypeTimeseries.movingAverage.multiplicativeOptions.true": "True", - "visTypeTimeseries.movingAverage.period": "期間", - "visTypeTimeseries.movingAverage.windowSizeHint": "ウィンドウは、必ず、期間のサイズの 2 倍以上でなければなりません", - "visTypeTimeseries.movingAverage.windowSizeLabel": "ウィンドウサイズ", - "visTypeTimeseries.noButtonLabel": "いいえ", - "visTypeTimeseries.percentile.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.percentile.fieldLabel": "フィールド", - "visTypeTimeseries.percentile.fillToLabel": "次の基準に合わせる:", - "visTypeTimeseries.percentile.modeLabel": "モード:", - "visTypeTimeseries.percentile.modeOptions.bandLabel": "帯", - "visTypeTimeseries.percentile.modeOptions.lineLabel": "折れ線", - "visTypeTimeseries.percentile.percentile": "パーセンタイル", - "visTypeTimeseries.percentile.percentileAriaLabel": "パーセンタイル", - "visTypeTimeseries.percentile.percents": "パーセント", - "visTypeTimeseries.percentile.shadeLabel": "シェイド(0 から 1):", - "visTypeTimeseries.percentileHdr.numberOfSignificantValueDigits": "大きい値の桁数(HDR ヒストグラム)", - "visTypeTimeseries.percentileHdr.numberOfSignificantValueDigits.hint": "HDR ヒストグラム(ハイダイナミックレンジヒストグラム)は、レイテンシ測定のパーセンタイルランクを計算するときに役立つ別の実装方法です。メモリ消費量が多いというトレードオフがある t-digest 実装よりも高速になります。大きい値の桁数パラメーターは、大きい桁数のヒストグラムで値の解像度を指定します。", - "visTypeTimeseries.percentileRank.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.percentileRank.fieldLabel": "フィールド", - "visTypeTimeseries.percentileRank.values": "値", - "visTypeTimeseries.positiveOnly.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.positiveOnly.metricLabel": "メトリック", - "visTypeTimeseries.positiveRate.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.positiveRate.helpText": "このアグリゲーションは、{link}にのみ適用してください。これは、最大値、微分、正の値のみを適用するショートカットです。", - "visTypeTimeseries.positiveRate.helpTextLink": "単調に数値を増加しています", - "visTypeTimeseries.positiveRate.unitSelectPlaceholder": "スケールを選択...", - "visTypeTimeseries.positiveRate.unitsLabel": "スケール", - "visTypeTimeseries.postiveRate.fieldLabel": "フィールド", - "visTypeTimeseries.replaceVars.errors.markdownErrorDescription": "Markdown、既知の変数、ビルトイン Handlebars 表現のみが使用されていることを確認してください。", - "visTypeTimeseries.replaceVars.errors.markdownErrorTitle": "Markdown の処理中にエラーが発生", - "visTypeTimeseries.replaceVars.errors.unknownVarDescription": "{badVar} は不明な変数です", - "visTypeTimeseries.replaceVars.errors.unknownVarTitle": "Markdown の処理中にエラーが発生", - "visTypeTimeseries.searchStrategyUndefinedErrorMessage": "検索ストラテジが定義されていませんでした", - "visTypeTimeseries.serialDiff.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.serialDiff.lagLabel": "ラグ", - "visTypeTimeseries.serialDiff.metricLabel": "メトリック", - "visTypeTimeseries.series.missingAggregationKeyErrorMessage": "返答から集約キーが欠けています。このリクエストのパーミッションを確認してください。", - "visTypeTimeseries.series.shouldOneSeriesPerRequestErrorMessage": "1 つのリクエストに複数の数列を含めることはできません。", - "visTypeTimeseries.seriesAgg.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.seriesAgg.functionLabel": "関数", - "visTypeTimeseries.seriesAgg.functionOptions.avgLabel": "平均", - "visTypeTimeseries.seriesAgg.functionOptions.countLabel": "系列数", - "visTypeTimeseries.seriesAgg.functionOptions.cumulativeSumLabel": "累積和", - "visTypeTimeseries.seriesAgg.functionOptions.maxLabel": "最高", - "visTypeTimeseries.seriesAgg.functionOptions.minLabel": "最低", - "visTypeTimeseries.seriesAgg.functionOptions.overallAvgLabel": "全体平均", - "visTypeTimeseries.seriesAgg.functionOptions.overallMaxLabel": "全体最高", - "visTypeTimeseries.seriesAgg.functionOptions.overallMinLabel": "全体最低", - "visTypeTimeseries.seriesAgg.functionOptions.overallSumLabel": "全体合計", - "visTypeTimeseries.seriesAgg.functionOptions.sumLabel": "合計", - "visTypeTimeseries.seriesAgg.seriesAggIsNotCompatibleLabel": "数列集約は表の可視化に対応していません。", - "visTypeTimeseries.seriesConfig.filterLabel": "フィルター", - "visTypeTimeseries.seriesConfig.ignoreGlobalFilterDisabledTooltip": "グローバルフィルターはパネルオプションで無視されるため、これは無効です。", - "visTypeTimeseries.seriesConfig.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.seriesConfig.missingSeriesComponentDescription": "パネルタイプ {panelType} の数列コンポーネントが欠けています", - "visTypeTimeseries.seriesConfig.offsetSeriesTimeLabel": "数列の時間を(1m, 1h, 1w, 1d)でオフセット", - "visTypeTimeseries.seriesConfig.templateHelpText": "eg. {templateExample}", - "visTypeTimeseries.seriesConfig.templateLabel": "テンプレート", - "visTypeTimeseries.sort.dragToSortAriaLabel": "ドラッグして並べ替えます", - "visTypeTimeseries.sort.dragToSortTooltip": "ドラッグして並べ替えます", - "visTypeTimeseries.splits.everything.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.filter.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.filter.queryStringLabel": "クエリ文字列", - "visTypeTimeseries.splits.filterItems.labelAriaLabel": "ラベル", - "visTypeTimeseries.splits.filterItems.labelPlaceholder": "ラベル", - "visTypeTimeseries.splits.filters.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.groupBySelect.modeOptions.everythingLabel": "すべて", - "visTypeTimeseries.splits.groupBySelect.modeOptions.filterLabel": "フィルター", - "visTypeTimeseries.splits.groupBySelect.modeOptions.filtersLabel": "フィルター", - "visTypeTimeseries.splits.groupBySelect.modeOptions.termsLabel": "用語", - "visTypeTimeseries.splits.terms.byLabel": "グループ基準", - "visTypeTimeseries.splits.terms.defaultCountLabel": "ドキュメントカウント(デフォルト)", - "visTypeTimeseries.splits.terms.directionLabel": "方向", - "visTypeTimeseries.splits.terms.dirOptions.ascendingLabel": "昇順", - "visTypeTimeseries.splits.terms.dirOptions.descendingLabel": "降順", - "visTypeTimeseries.splits.terms.excludeLabel": "除外", - "visTypeTimeseries.splits.terms.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.terms.includeLabel": "含める", - "visTypeTimeseries.splits.terms.orderByLabel": "並び順", - "visTypeTimeseries.splits.terms.sizePlaceholder": "サイズ", - "visTypeTimeseries.splits.terms.termsLabel": "用語", - "visTypeTimeseries.splits.terms.topLabel": "一番上", - "visTypeTimeseries.static.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.static.staticValuesLabel": "固定値", - "visTypeTimeseries.stdAgg.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.stdAgg.fieldLabel": "フィールド", - "visTypeTimeseries.stdDeviation.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.stdDeviation.fieldLabel": "フィールド", - "visTypeTimeseries.stdDeviation.modeLabel": "モード", - "visTypeTimeseries.stdDeviation.modeOptions.boundsBandLabel": "境界バンド", - "visTypeTimeseries.stdDeviation.modeOptions.lowerBoundLabel": "下の境界", - "visTypeTimeseries.stdDeviation.modeOptions.rawLabel": "未加工", - "visTypeTimeseries.stdDeviation.modeOptions.upperBoundLabel": "上の境界", - "visTypeTimeseries.stdDeviation.sigmaLabel": "シグマ", - "visTypeTimeseries.stdSibling.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.stdSibling.metricLabel": "メトリック", - "visTypeTimeseries.stdSibling.modeLabel": "モード", - "visTypeTimeseries.stdSibling.modeOptions.boundsBandLabel": "境界バンド", - "visTypeTimeseries.stdSibling.modeOptions.lowerBoundLabel": "下の境界", - "visTypeTimeseries.stdSibling.modeOptions.rawLabel": "未加工", - "visTypeTimeseries.stdSibling.modeOptions.upperBoundLabel": "上の境界", - "visTypeTimeseries.stdSibling.sigmaLabel": "シグマ", - "visTypeTimeseries.table.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.table.aggregateFunctionLabel": "集約関数", - "visTypeTimeseries.table.avgLabel": "平均", - "visTypeTimeseries.table.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.table.colorRulesLabel": "カラールール", - "visTypeTimeseries.table.columnNotSortableTooltip": "この列は並べ替えできません", - "visTypeTimeseries.table.cumulativeSumLabel": "累積和", - "visTypeTimeseries.table.dataTab.columnLabel": "列ラベル", - "visTypeTimeseries.table.dataTab.columnsButtonLabel": "列", - "visTypeTimeseries.table.dataTab.defineFieldDescription": "表の可視化は、用語集約でグループ分けの基準となるフィールドを定義する必要があります。", - "visTypeTimeseries.table.dataTab.groupByFieldLabel": "フィールドでグループ分け", - "visTypeTimeseries.table.dataTab.rowsLabel": "行", - "visTypeTimeseries.table.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.table.fieldLabel": "フィールド", - "visTypeTimeseries.table.filterLabel": "フィルター", - "visTypeTimeseries.table.labelAriaLabel": "ラベル", - "visTypeTimeseries.table.labelPlaceholder": "ラベル", - "visTypeTimeseries.table.maxLabel": "最高", - "visTypeTimeseries.table.minLabel": "最低", - "visTypeTimeseries.table.noResultsAvailableMessage": "結果がありません。", - "visTypeTimeseries.table.noResultsAvailableWithDescriptionMessage": "結果がありません。このビジュアライゼーションは、フィールドでグループを選択する必要があります。", - "visTypeTimeseries.table.optionsTab.dataLabel": "データ", - "visTypeTimeseries.table.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.table.optionsTab.itemUrlHelpText": "これは mustache テンプレートをサポートしています。{key} が用語に設定されています。", - "visTypeTimeseries.table.optionsTab.itemUrlLabel": "アイテム URL", - "visTypeTimeseries.table.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.table.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.table.overallAvgLabel": "全体平均", - "visTypeTimeseries.table.overallMaxLabel": "全体最高", - "visTypeTimeseries.table.overallMinLabel": "全体最低", - "visTypeTimeseries.table.overallSumLabel": "全体合計", - "visTypeTimeseries.table.showTrendArrowsLabel": "傾向矢印を表示しますか?", - "visTypeTimeseries.table.sumLabel": "合計", - "visTypeTimeseries.table.tab.metricsLabel": "メトリック", - "visTypeTimeseries.table.tab.optionsLabel": "オプション", - "visTypeTimeseries.table.templateHelpText": "eg.{templateExample}", - "visTypeTimeseries.table.templateLabel": "テンプレート", - "visTypeTimeseries.table.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.timeSeries.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.timeseries.annotationsTab.annotationsButtonLabel": "注釈", - "visTypeTimeseries.timeSeries.axisMaxLabel": "軸最大値", - "visTypeTimeseries.timeSeries.axisMinLabel": "軸最小値", - "visTypeTimeseries.timeSeries.axisPositionLabel": "軸の配置", - "visTypeTimeseries.timeSeries.barLabel": "バー", - "visTypeTimeseries.timeSeries.chartBar.chartTypeLabel": "チャートタイプ", - "visTypeTimeseries.timeSeries.chartBar.fillLabel": "塗りつぶし(0 から 1)", - "visTypeTimeseries.timeSeries.chartBar.lineWidthLabel": "線の幅", - "visTypeTimeseries.timeSeries.chartBar.stackedLabel": "スタック", - "visTypeTimeseries.timeSeries.chartLine.chartTypeLabel": "チャートタイプ", - "visTypeTimeseries.timeSeries.chartLine.fillLabel": "塗りつぶし(0 から 1)", - "visTypeTimeseries.timeSeries.chartLine.lineWidthLabel": "線の幅", - "visTypeTimeseries.timeSeries.chartLine.pointSizeLabel": "点のサイズ", - "visTypeTimeseries.timeSeries.chartLine.stackedLabel": "スタック", - "visTypeTimeseries.timeSeries.chartLine.stepsLabel": "ステップ", - "visTypeTimeseries.timeSeries.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.timeseries.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.timeSeries.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.timeSeries.gradientLabel": "グラデーション", - "visTypeTimeseries.timeSeries.hideInLegendLabel": "凡例で非表示", - "visTypeTimeseries.timeSeries.labelPlaceholder": "ラベル", - "visTypeTimeseries.timeSeries.leftLabel": "左", - "visTypeTimeseries.timeseries.legendPositionOptions.bottomLabel": "一番下", - "visTypeTimeseries.timeseries.legendPositionOptions.leftLabel": "左", - "visTypeTimeseries.timeseries.legendPositionOptions.rightLabel": "右", - "visTypeTimeseries.timeSeries.lineLabel": "折れ線", - "visTypeTimeseries.timeSeries.noneLabel": "なし", - "visTypeTimeseries.timeSeries.offsetSeriesTimeLabel": "数列の時間を(1m, 1h, 1w, 1d)でオフセット", - "visTypeTimeseries.timeseries.optionsTab.axisMaxLabel": "軸最大値", - "visTypeTimeseries.timeseries.optionsTab.axisMinLabel": "軸最小値", - "visTypeTimeseries.timeseries.optionsTab.axisPositionLabel": "軸の配置", - "visTypeTimeseries.timeseries.optionsTab.axisScaleLabel": "軸のスケール", - "visTypeTimeseries.timeseries.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.timeseries.optionsTab.dataLabel": "データ", - "visTypeTimeseries.timeseries.optionsTab.displayGridLabel": "グリッドを表示", - "visTypeTimeseries.timeseries.optionsTab.ignoreDaylightTimeLabel": "夏時間を無視しますか?", - "visTypeTimeseries.timeseries.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.timeseries.optionsTab.legendPositionLabel": "凡例位置", - "visTypeTimeseries.timeseries.optionsTab.maxLinesLabel": "最大凡例行", - "visTypeTimeseries.timeseries.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.timeseries.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.timeseries.optionsTab.showLegendLabel": "凡例を表示しますか?", - "visTypeTimeseries.timeseries.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.timeseries.optionsTab.tooltipMode": "ツールチップ", - "visTypeTimeseries.timeseries.optionsTab.truncateLegendLabel": "凡例を切り捨てますか?", - "visTypeTimeseries.timeSeries.percentLabel": "パーセント", - "visTypeTimeseries.timeseries.positionOptions.leftLabel": "左", - "visTypeTimeseries.timeseries.positionOptions.rightLabel": "右", - "visTypeTimeseries.timeSeries.rainbowLabel": "虹", - "visTypeTimeseries.timeSeries.rightLabel": "右", - "visTypeTimeseries.timeseries.scaleOptions.logLabel": "ログ", - "visTypeTimeseries.timeseries.scaleOptions.normalLabel": "標準", - "visTypeTimeseries.timeSeries.separateAxisLabel": "軸を分けますか?", - "visTypeTimeseries.timeSeries.splitColorThemeLabel": "カラーテーマを分割", - "visTypeTimeseries.timeSeries.stackedLabel": "スタック", - "visTypeTimeseries.timeSeries.stackedWithinSeriesLabel": "数列内でスタック", - "visTypeTimeseries.timeSeries.tab.metricsLabel": "メトリック", - "visTypeTimeseries.timeSeries.tab.optionsLabel": "オプション", - "visTypeTimeseries.timeSeries.templateHelpText": "eg.{templateExample}", - "visTypeTimeseries.timeSeries.templateLabel": "テンプレート", - "visTypeTimeseries.timeSeries.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.timeseries.tooltipOptions.showAll": "すべての値を表示", - "visTypeTimeseries.timeseries.tooltipOptions.showFocused": "フォーカスされた値を表示", - "visTypeTimeseries.topHit.aggregateWith.selectPlaceholder": "選択してください...", - "visTypeTimeseries.topHit.aggregateWithLabel": "集約:", - "visTypeTimeseries.topHit.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.topHit.aggWithOptions.averageLabel": "平均", - "visTypeTimeseries.topHit.aggWithOptions.concatenate": "連結", - "visTypeTimeseries.topHit.aggWithOptions.maxLabel": "最高", - "visTypeTimeseries.topHit.aggWithOptions.minLabel": "最低", - "visTypeTimeseries.topHit.aggWithOptions.sumLabel": "合計", - "visTypeTimeseries.topHit.fieldLabel": "フィールド", - "visTypeTimeseries.topHit.order.selectPlaceholder": "選択してください...", - "visTypeTimeseries.topHit.orderByLabel": "並び順", - "visTypeTimeseries.topHit.orderLabel": "順序", - "visTypeTimeseries.topHit.orderOptions.ascLabel": "昇順", - "visTypeTimeseries.topHit.orderOptions.descLabel": "降順", - "visTypeTimeseries.topHit.sizeLabel": "サイズ", - "visTypeTimeseries.topN.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.topN.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.topN.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.topN.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.topN.labelPlaceholder": "ラベル", - "visTypeTimeseries.topN.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.topN.optionsTab.colorRulesLabel": "カラールール", - "visTypeTimeseries.topN.optionsTab.dataLabel": "データ", - "visTypeTimeseries.topN.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.topN.optionsTab.itemUrlDescription": "これは mustache テンプレートをサポートしています。{key} が用語に設定されています。", - "visTypeTimeseries.topN.optionsTab.itemUrlLabel": "アイテム URL", - "visTypeTimeseries.topN.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.topN.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.topN.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.topN.tab.metricsLabel": "メトリック", - "visTypeTimeseries.topN.tab.optionsLabel": "オプション", - "visTypeTimeseries.topN.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.units.auto": "自動", - "visTypeTimeseries.units.perDay": "日単位", - "visTypeTimeseries.units.perHour": "時間単位", - "visTypeTimeseries.units.perMillisecond": "ミリ秒単位", - "visTypeTimeseries.units.perMinute": "分単位", - "visTypeTimeseries.units.perSecond": "秒単位", - "visTypeTimeseries.unsupportedSplit.splitIsUnsupportedDescription": "{modelType} での分割はサポートされていません。", - "visTypeTimeseries.vars.variableNameAriaLabel": "変数名", - "visTypeTimeseries.vars.variableNamePlaceholder": "変数名", - "visTypeTimeseries.visEditorVisualization.applyChangesLabel": "変更を適用", - "visTypeTimeseries.visEditorVisualization.autoApplyLabel": "自動適用", - "visTypeTimeseries.visEditorVisualization.changesHaveNotBeenAppliedMessage": "ビジュアライゼーションへの変更が適用されました。", - "visTypeTimeseries.visEditorVisualization.changesSuccessfullyAppliedMessage": "最新の変更が適用されました。", - "visTypeTimeseries.visEditorVisualization.changesWillBeAutomaticallyAppliedMessage": "変更が自動的に適用されます。", - "visTypeTimeseries.visEditorVisualization.dataViewMode.dismissNoticeButtonText": "閉じる", - "visTypeTimeseries.visEditorVisualization.dataViewMode.link": "確認してください。", - "visTypeTimeseries.visPicker.gaugeLabel": "ゲージ", - "visTypeTimeseries.visPicker.metricLabel": "メトリック", - "visTypeTimeseries.visPicker.tableLabel": "表", - "visTypeTimeseries.visPicker.timeSeriesLabel": "時系列", - "visTypeTimeseries.visPicker.topNLabel": "トップ N", - "visTypeTimeseries.yesButtonLabel": "はい", - "visTypeVega.editor.formatError": "仕様のフォーマット中にエラーが発生", - "visTypeVega.editor.reformatAsHJSONButtonLabel": "HJSON に変換", - "visTypeVega.editor.reformatAsJSONButtonLabel": "JSON に変換しコメントを削除", - "visTypeVega.editor.vegaDocumentationLinkText": "Vega ドキュメント", - "visTypeVega.editor.vegaEditorOptionsButtonAriaLabel": "Vega エディターオプション", - "visTypeVega.editor.vegaHelpButtonAriaLabel": "Vega ヘルプ", - "visTypeVega.editor.vegaHelpLinkText": "Kibana Vega ヘルプ", - "visTypeVega.editor.vegaLiteDocumentationLinkText": "Vega-Lite ドキュメンテーション", - "visTypeVega.emsFileParser.emsFileNameDoesNotExistErrorMessage": "{emsfile} {emsfileName} が存在しません", - "visTypeVega.emsFileParser.missingNameOfFileErrorMessage": "{dataUrlParamValue} の {dataUrlParam} には {nameParam} パラメーター(ファイル名)が必要です", - "visTypeVega.esQueryParser.autointervalValueTypeErrorMessage": "{autointerval} は文字 {trueValue} または数字である必要があります", - "visTypeVega.esQueryParser.dataUrlMustNotHaveLegacyAndBodyQueryValuesAtTheSameTimeErrorMessage": "{dataUrlParam} はレガシー {legacyContext} と {bodyQueryConfigName} の値を同時に含めることができません。", - "visTypeVega.esQueryParser.dataUrlMustNotHaveLegacyContextTogetherWithContextOrTimefieldErrorMessage": "{dataUrlParam} は {legacyContext} と同時に {context} または {timefield} を含めることができません", - "visTypeVega.esQueryParser.legacyContextCanBeTrueErrorMessage": "レガシー {legacyContext} は {trueValue}(時間範囲ピッカーを無視)、または時間フィールドの名前のどちらかです。例:{timestampParam}", - "visTypeVega.esQueryParser.legacyUrlShouldChangeToWarningMessage": "レガシー {urlParam}: {legacyUrl} を {result} に変更する必要があります", - "visTypeVega.esQueryParser.shiftMustValueTypeErrorMessage": "{shiftParam} は数値でなければなりません", - "visTypeVega.esQueryParser.timefilterValueErrorMessage": "{timefilter} のプロパティは {trueValue}、{minValue}、または {maxValue} に設定する必要があります", - "visTypeVega.esQueryParser.unknownUnitValueErrorMessage": "不明な {unitParamName} 値。次のいずれかでなければなりません。[{unitParamValues}]", - "visTypeVega.esQueryParser.unnamedRequest": "無題のリクエスト#{index}", - "visTypeVega.esQueryParser.urlBodyValueTypeErrorMessage": "{configName} はオブジェクトでなければなりません", - "visTypeVega.esQueryParser.urlContextAndUrlTimefieldMustNotBeUsedErrorMessage": "{urlContext} と {timefield} は {queryParam} が設定されている場合使用できません", - "visTypeVega.function.help": "Vega ビジュアライゼーション", - "visTypeVega.inspector.dataSetsLabel": "データセット", - "visTypeVega.inspector.dataViewer.dataSetAriaLabel": "データセット", - "visTypeVega.inspector.dataViewer.gridAriaLabel": "{name}データグリッド", - "visTypeVega.inspector.signalValuesLabel": "単一の値", - "visTypeVega.inspector.signalViewer.gridAriaLabel": "単一の値のデータグリッド", - "visTypeVega.inspector.specLabel": "仕様", - "visTypeVega.inspector.specViewer.copyToClipboardLabel": "クリップボードにコピー", - "visTypeVega.inspector.vegaAdapter.signal": "信号", - "visTypeVega.inspector.vegaAdapter.value": "値", - "visTypeVega.inspector.vegaDebugLabel": "Vegaデバッグ", - "visTypeVega.mapView.experimentalMapLayerInfo": "マップレイヤーはまだ実験段階であり、オフィシャルGA機能のサポートSLAが適用されません。フィードバックがある場合は、{githubLink}で問題を報告してください。", - "visTypeVega.mapView.mapStyleNotFoundWarningMessage": "{mapStyleParam} が見つかりませんでした", - "visTypeVega.mapView.minZoomAndMaxZoomHaveBeenSwappedWarningMessage": "{minZoomPropertyName} と {maxZoomPropertyName} が交換されました", - "visTypeVega.mapView.resettingPropertyToMaxValueWarningMessage": "{name} を {max} にリセットしています", - "visTypeVega.mapView.resettingPropertyToMinValueWarningMessage": "{name} を {min} にリセットしています", - "visTypeVega.type.vegaDescription": "Vega を使用して、新しいタイプのビジュアライゼーションを作成します。", - "visTypeVega.type.vegaNote": "Vega 構文の知識が必要です。", - "visTypeVega.type.vegaTitleInWizard": "カスタムビジュアライゼーション", - "visTypeVega.urlParser.dataUrlRequiresUrlParameterInFormErrorMessage": "{dataUrlParam} には「{formLink}」の形で {urlParam} パラメーターが必要です", - "visTypeVega.urlParser.urlShouldHaveQuerySubObjectWarningMessage": "{urlObject} を使用するには {subObjectName} サブオブジェクトが必要です", - "visTypeVega.vegaParser.autoSizeDoesNotAllowFalse": "{autoSizeParam}が有効です。無効にするには、{autoSizeParam}を{noneParam}に設定してください", - "visTypeVega.vegaParser.baseView.externalUrlsAreNotEnabledErrorMessage": "外部 URL が無効です。{enableExternalUrls}を{kibanaConfigFileName}に追加", - "visTypeVega.vegaParser.baseView.functionIsNotDefinedForGraphErrorMessage": "このグラフには {funcName} が定義されていません", - "visTypeVega.vegaParser.baseView.indexNotFoundErrorMessage": "インデックス {index} が見つかりません", - "visTypeVega.vegaParser.baseView.timeValuesTypeErrorMessage": "時間フィルターの設定エラー:両方の時間の値は相対的または絶対的な日付である必要があります。 {start}、{end}", - "visTypeVega.vegaParser.baseView.unableToFindDefaultIndexErrorMessage": "デフォルトのインデックスが見つかりません", - "visTypeVega.vegaParser.centerOnMarkConfigValueTypeErrorMessage": "{configName} は {trueValue}、{falseValue}、または数字でなければなりません", - "visTypeVega.vegaParser.dataExceedsSomeParamsUseTimesLimitErrorMessage": "データには {urlParam}、{valuesParam}、 {sourceParam} の内複数を含めることができません", - "visTypeVega.vegaParser.hostConfigIsDeprecatedWarningMessage": "{deprecatedConfigName} は廃止されました。代わりに {newConfigName} を使用します。", - "visTypeVega.vegaParser.hostConfigValueTypeErrorMessage": "{configName} が含まれている場合、オブジェクトでなければなりません", - "visTypeVega.vegaParser.inputSpecDoesNotSpecifySchemaErrorMessage": "仕様に基づき、{schemaParam}フィールドには、\nVega({vegaSchemaUrl}を参照)または\nVega-Lite({vegaLiteSchemaUrl}を参照)の有効なURLを入力する必要があります。\nURLは識別子にすぎません。Kibanaやご使用のブラウザーがこのURLにアクセスすることはありません。", - "visTypeVega.vegaParser.invalidVegaSpecErrorMessage": "無効な Vega 仕様", - "visTypeVega.vegaParser.kibanaConfigValueTypeErrorMessage": "{configName} が含まれている場合、オブジェクトでなければなりません", - "visTypeVega.vegaParser.maxBoundsValueTypeWarningMessage": "{maxBoundsConfigName} は 4 つの数字の配列でなければなりません", - "visTypeVega.vegaParser.notSupportedUrlTypeErrorMessage": "{urlObject} はサポートされていません", - "visTypeVega.vegaParser.notValidLibraryVersionForInputSpecWarningMessage": "インプット仕様に {schemaLibrary} {schemaVersion} が使用されていますが、現在のバージョンの {schemaLibrary} は {libraryVersion} です。", - "visTypeVega.vegaParser.paddingConfigValueTypeErrorMessage": "{configName} は数字でなければなりません", - "visTypeVega.vegaParser.someKibanaConfigurationIsNoValidWarningMessage": "{configName} は有効ではありません", - "visTypeVega.vegaParser.someKibanaParamValueTypeWarningMessage": "{configName} はブール値でなければなりません", - "visTypeVega.vegaParser.textTruncateConfigValueTypeErrorMessage": "{configName} はブール値でなければなりません", - "visTypeVega.vegaParser.unexpectedValueForPositionConfigurationErrorMessage": "{configurationName} 構成に予期せぬ値が使用されています", - "visTypeVega.vegaParser.unrecognizedControlsLocationValueErrorMessage": "認識されていない {controlsLocationParam} 値。[{locToDirMap}]のいずれかが想定されます。", - "visTypeVega.vegaParser.unrecognizedDirValueErrorMessage": "認識されていない {dirParam} 値。[{expectedValues}]のいずれかが想定されます。", - "visTypeVega.vegaParser.VLCompilerShouldHaveGeneratedSingleProtectionObjectErrorMessage": "内部エラー:Vega-Lite コンパイラーがシングルプロジェクションオブジェクトを生成したはずです", - "visTypeVega.vegaParser.widthAndHeightParamsAreIgnored": "{autoSizeParam}が有効であるため、{widthParam}および{heightParam}パラメーターは無視されます。無効にする{autoSizeParam}: {noneParam}を設定", - "visTypeVega.vegaParser.widthAndHeightParamsAreRequired": "{autoSizeParam}が{noneParam}に設定されているときには、カットまたは繰り返された{vegaLiteParam}仕様を使用している間に何も表示されません。修正するには、{autoSizeParam}を削除するか、{vegaParam}を使用してください。", - "visTypeVega.visualization.renderErrorTitle": "Vega エラー", - "visTypeVega.visualization.unableToRenderWithoutDataWarningMessage": "データなしにはレンダリングできません", - "visTypeVislib.advancedSettings.visualization.heatmap.maxBucketsText": "1つのデータソースが返せるバケットの最大数です。値が大きいとブラウザのレンダリング速度が下がる可能性があります。", - "visTypeVislib.advancedSettings.visualization.heatmap.maxBucketsTitle": "ヒートマップの最大バケット数", - "visTypeVislib.aggResponse.allDocsTitle": "すべてのドキュメント", - "visTypeVislib.controls.gaugeOptions.alignmentLabel": "アラインメント", - "visTypeVislib.controls.gaugeOptions.autoExtendRangeLabel": "範囲を自動拡張", - "visTypeVislib.controls.gaugeOptions.extendRangeTooltip": "範囲をデータの最高値に広げます。", - "visTypeVislib.controls.gaugeOptions.gaugeTypeLabel": "ゲージタイプ", - "visTypeVislib.controls.gaugeOptions.labelsTitle": "ラベル", - "visTypeVislib.controls.gaugeOptions.rangesTitle": "範囲", - "visTypeVislib.controls.gaugeOptions.showLabelsLabel": "ラベルを表示", - "visTypeVislib.controls.gaugeOptions.showLegendLabel": "凡例を表示", - "visTypeVislib.controls.gaugeOptions.showOutline": "アウトラインを表示", - "visTypeVislib.controls.gaugeOptions.showScaleLabel": "縮尺を表示", - "visTypeVislib.controls.gaugeOptions.styleTitle": "スタイル", - "visTypeVislib.controls.gaugeOptions.subTextLabel": "サブラベル", - "visTypeVislib.controls.heatmapOptions.colorLabel": "色", - "visTypeVislib.controls.heatmapOptions.colorScaleLabel": "カラースケール", - "visTypeVislib.controls.heatmapOptions.colorsNumberLabel": "色の数", - "visTypeVislib.controls.heatmapOptions.labelsTitle": "ラベル", - "visTypeVislib.controls.heatmapOptions.overwriteAutomaticColorLabel": "自動カラーを上書きする", - "visTypeVislib.controls.heatmapOptions.rotateLabel": "回転", - "visTypeVislib.controls.heatmapOptions.scaleToDataBoundsLabel": "データバウンドに合わせる", - "visTypeVislib.controls.heatmapOptions.showLabelsTitle": "ラベルを表示", - "visTypeVislib.controls.heatmapOptions.useCustomRangesLabel": "カスタム範囲を使用", - "visTypeVislib.editors.heatmap.basicSettingsTitle": "基本設定", - "visTypeVislib.editors.heatmap.heatmapSettingsTitle": "ヒートマップ設定", - "visTypeVislib.editors.heatmap.highlightLabel": "ハイライト範囲", - "visTypeVislib.editors.heatmap.highlightLabelTooltip": "チャートのカーソルを当てた部分と凡例の対応するラベルをハイライトします。", - "visTypeVislib.functions.pie.help": "パイビジュアライゼーション", - "visTypeVislib.functions.vislib.help": "Vislib ビジュアライゼーション", - "visTypeVislib.gauge.alignmentAutomaticTitle": "自動", - "visTypeVislib.gauge.alignmentHorizontalTitle": "横", - "visTypeVislib.gauge.alignmentVerticalTitle": "縦", - "visTypeVislib.gauge.gaugeDescription": "メトリックのステータスを示します。", - "visTypeVislib.gauge.gaugeTitle": "ゲージ", - "visTypeVislib.gauge.gaugeTypes.arcText": "弧形", - "visTypeVislib.gauge.gaugeTypes.circleText": "円", - "visTypeVislib.gauge.groupTitle": "グループを分割", - "visTypeVislib.gauge.metricTitle": "メトリック", - "visTypeVislib.goal.goalDescription": "メトリックがどのように目標まで進むのかを追跡します。", - "visTypeVislib.goal.goalTitle": "ゴール", - "visTypeVislib.goal.groupTitle": "グループを分割", - "visTypeVislib.goal.metricTitle": "メトリック", - "visTypeVislib.heatmap.groupTitle": "Y 軸", - "visTypeVislib.heatmap.heatmapDescription": "マトリックスのセルのデータを網掛けにします。", - "visTypeVislib.heatmap.heatmapTitle": "ヒートマップ", - "visTypeVislib.heatmap.metricTitle": "値", - "visTypeVislib.heatmap.segmentTitle": "X 軸", - "visTypeVislib.heatmap.splitTitle": "チャートを分割", - "visTypeVislib.vislib.errors.noResultsFoundTitle": "結果が見つかりませんでした", - "visTypeVislib.vislib.heatmap.maxBucketsText": "定義された数列が多すぎます({nr})。構成されている最大値は {max} です。", - "visTypeVislib.vislib.legend.filterForValueButtonAriaLabel": "値 {legendDataLabel} でフィルタリング", - "visTypeVislib.vislib.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "visTypeVislib.vislib.legend.filterOutValueButtonAriaLabel": "値 {legendDataLabel} を除外", - "visTypeVislib.vislib.legend.loadingLabel": "読み込み中…", - "visTypeVislib.vislib.legend.toggleLegendButtonAriaLabel": "凡例を切り替える", - "visTypeVislib.vislib.legend.toggleLegendButtonTitle": "凡例を切り替える", - "visTypeVislib.vislib.legend.toggleOptionsButtonAriaLabel": "{legendDataLabel}、トグルオプション", - "visTypeVislib.vislib.tooltip.fieldLabel": "フィールド", - "visTypeVislib.vislib.tooltip.valueLabel": "値", - "visTypeXy.aggResponse.allDocsTitle": "すべてのドキュメント", - "visTypeXy.area.areaDescription": "軸と線の間のデータを強調します。", - "visTypeXy.area.areaTitle": "エリア", - "visTypeXy.area.groupTitle": "系列を分割", - "visTypeXy.area.metricsTitle": "Y 軸", - "visTypeXy.area.radiusTitle": "点のサイズ", - "visTypeXy.area.segmentTitle": "X 軸", - "visTypeXy.area.splitTitle": "チャートを分割", - "visTypeXy.area.tabs.metricsAxesTitle": "メトリックと軸", - "visTypeXy.area.tabs.panelSettingsTitle": "パネル設定", - "visTypeXy.axisModes.normalText": "標準", - "visTypeXy.axisModes.percentageText": "割合(%)", - "visTypeXy.axisModes.silhouetteText": "シルエット", - "visTypeXy.axisModes.wiggleText": "振動", - "visTypeXy.categoryAxis.rotate.angledText": "傾斜", - "visTypeXy.categoryAxis.rotate.horizontalText": "横", - "visTypeXy.categoryAxis.rotate.verticalText": "縦", - "visTypeXy.chartModes.normalText": "標準", - "visTypeXy.chartModes.stackedText": "スタック", - "visTypeXy.chartTypes.areaText": "エリア", - "visTypeXy.chartTypes.barText": "バー", - "visTypeXy.chartTypes.lineText": "折れ線", - "visTypeXy.controls.pointSeries.categoryAxis.alignLabel": "配置", - "visTypeXy.controls.pointSeries.categoryAxis.filterLabelsLabel": "フィルターラベル", - "visTypeXy.controls.pointSeries.categoryAxis.labelsTitle": "ラベル", - "visTypeXy.controls.pointSeries.categoryAxis.positionLabel": "位置", - "visTypeXy.controls.pointSeries.categoryAxis.showLabel": "軸線とラベルを表示", - "visTypeXy.controls.pointSeries.categoryAxis.showLabelsLabel": "ラベルを表示", - "visTypeXy.controls.pointSeries.categoryAxis.xAxisTitle": "X 軸", - "visTypeXy.controls.pointSeries.gridAxis.dontShowLabel": "非表示", - "visTypeXy.controls.pointSeries.gridAxis.gridText": "グリッド", - "visTypeXy.controls.pointSeries.gridAxis.xAxisLinesLabel": "X 軸線を表示", - "visTypeXy.controls.pointSeries.gridAxis.yAxisLinesLabel": "Y 軸線を表示", - "visTypeXy.controls.pointSeries.series.chartTypeLabel": "チャートタイプ", - "visTypeXy.controls.pointSeries.series.circlesRadius": "点のサイズ", - "visTypeXy.controls.pointSeries.series.lineModeLabel": "線のモード", - "visTypeXy.controls.pointSeries.series.lineWidthLabel": "線の幅", - "visTypeXy.controls.pointSeries.series.metricsTitle": "メトリック", - "visTypeXy.controls.pointSeries.series.modeLabel": "モード", - "visTypeXy.controls.pointSeries.series.newAxisLabel": "新規軸…", - "visTypeXy.controls.pointSeries.series.showDotsLabel": "点を表示", - "visTypeXy.controls.pointSeries.series.showLineLabel": "線を表示", - "visTypeXy.controls.pointSeries.series.valueAxisLabel": "値軸", - "visTypeXy.controls.pointSeries.seriesAccordionAriaLabel": "{agg} オプションを切り替える", - "visTypeXy.controls.pointSeries.valueAxes.addButtonTooltip": "Y 軸を追加します", - "visTypeXy.controls.pointSeries.valueAxes.customExtentsLabel": "カスタム範囲", - "visTypeXy.controls.pointSeries.valueAxes.maxLabel": "最高", - "visTypeXy.controls.pointSeries.valueAxes.minErrorMessage": "最低値は最高値よりも低く設定する必要があります。", - "visTypeXy.controls.pointSeries.valueAxes.minLabel": "最低", - "visTypeXy.controls.pointSeries.valueAxes.minNeededScaleText": "ログスケールが選択されている場合、最低値は 0 よりも大きいものである必要があります。", - "visTypeXy.controls.pointSeries.valueAxes.modeLabel": "モード", - "visTypeXy.controls.pointSeries.valueAxes.positionLabel": "位置", - "visTypeXy.controls.pointSeries.valueAxes.removeButtonTooltip": "Y 軸を削除します", - "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBounds.boundsMargin": "境界マージン", - "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBounds.minNeededBoundsMargin": "境界マージンは 0 以上でなければなりません。", - "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBoundsLabel": "データバウンドに合わせる", - "visTypeXy.controls.pointSeries.valueAxes.scaleTypeLabel": "スケールタイプ", - "visTypeXy.controls.pointSeries.valueAxes.setAxisExtentsLabel": "軸範囲を設定", - "visTypeXy.controls.pointSeries.valueAxes.showLabel": "軸線とラベルを表示", - "visTypeXy.controls.pointSeries.valueAxes.titleLabel": "タイトル", - "visTypeXy.controls.pointSeries.valueAxes.toggleCustomExtendsAriaLabel": "カスタム範囲を切り替える", - "visTypeXy.controls.pointSeries.valueAxes.toggleOptionsAriaLabel": "{axisName} オプションを切り替える", - "visTypeXy.controls.pointSeries.valueAxes.yAxisTitle": "Y 軸", - "visTypeXy.controls.truncateLabel": "切り捨て", - "visTypeXy.editors.elasticChartsOptions.detailedTooltip.label": "詳細ツールチップを表示", - "visTypeXy.editors.elasticChartsOptions.detailedTooltip.tooltip": "単一の値を表示するためのレガシー詳細ツールチップを有効にします。無効にすると、新しい概要のツールチップに複数の値が表示されます。", - "visTypeXy.editors.elasticChartsOptions.fillOpacity": "塗りつぶしの透明度", - "visTypeXy.editors.elasticChartsOptions.missingValuesLabel": "欠測値を埋める", - "visTypeXy.editors.pointSeries.currentTimeMarkerLabel": "現在時刻マーカー", - "visTypeXy.editors.pointSeries.orderBucketsBySumLabel": "バケットを合計で並べ替え", - "visTypeXy.editors.pointSeries.settingsTitle": "設定", - "visTypeXy.editors.pointSeries.showLabels": "チャートに値を表示", - "visTypeXy.editors.pointSeries.thresholdLine.colorLabel": "線の色", - "visTypeXy.editors.pointSeries.thresholdLine.showLabel": "しきい線を表示", - "visTypeXy.editors.pointSeries.thresholdLine.styleLabel": "ラインスタイル", - "visTypeXy.editors.pointSeries.thresholdLine.valueLabel": "しきい値", - "visTypeXy.editors.pointSeries.thresholdLine.widthLabel": "線の幅", - "visTypeXy.editors.pointSeries.thresholdLineSettingsTitle": "しきい線", - "visTypeXy.fittingFunctionsTitle.carry": "最後(ギャップを最後の値で埋める)", - "visTypeXy.fittingFunctionsTitle.linear": "線形(ギャップを線で埋める)", - "visTypeXy.fittingFunctionsTitle.lookahead": "次(ギャップを次の値で埋める)", - "visTypeXy.fittingFunctionsTitle.none": "非表示(ギャップを埋めない)", - "visTypeXy.fittingFunctionsTitle.zero": "ゼロ(ギャップをゼロで埋める)", - "visTypeXy.function.adimension.bucket": "バケット", - "visTypeXy.function.adimension.dotSize": "点のサイズ", - "visTypeXy.function.args.addLegend.help": "グラフ凡例を表示", - "visTypeXy.function.args.addTimeMarker.help": "時刻マーカーを表示", - "visTypeXy.function.args.addTooltip.help": "カーソルを置いたときにツールチップを表示", - "visTypeXy.function.args.args.chartType.help": "グラフの種類。折れ線、エリア、ヒストグラムを選択できます", - "visTypeXy.function.args.categoryAxes.help": "カテゴリ軸構成", - "visTypeXy.function.args.detailedTooltip.help": "詳細ツールチップを表示", - "visTypeXy.function.args.fillOpacity.help": "エリアグラフの塗りつぶしの透明度を定義します", - "visTypeXy.function.args.fittingFunction.help": "適合関数の名前", - "visTypeXy.function.args.gridCategoryLines.help": "グラフにグリッドカテゴリ線を表示", - "visTypeXy.function.args.gridValueAxis.help": "グリッドを表示する値軸の名前", - "visTypeXy.function.args.isVislibVis.help": "古いvislib可視化を示すフラグ。色を含む後方互換性のために使用されます", - "visTypeXy.function.args.labels.help": "グラフラベル構成", - "visTypeXy.function.args.legendPosition.help": "グラフの上、下、左、右に凡例を配置", - "visTypeXy.function.args.orderBucketsBySum.help": "バケットを合計で並べ替え", - "visTypeXy.function.args.palette.help": "グラフパレット名を定義します", - "visTypeXy.function.args.radiusRatio.help": "点サイズ率", - "visTypeXy.function.args.seriesDimension.help": "系列ディメンション構成", - "visTypeXy.function.args.seriesParams.help": "系列パラメーター構成", - "visTypeXy.function.args.splitColumnDimension.help": "列ディメンション構成で分割", - "visTypeXy.function.args.splitRowDimension.help": "行ディメンション構成で分割", - "visTypeXy.function.args.thresholdLine.help": "しきい値線構成", - "visTypeXy.function.args.times.help": "時刻マーカー構成", - "visTypeXy.function.args.valueAxes.help": "値軸構成", - "visTypeXy.function.args.widthDimension.help": "幅ディメンション構成", - "visTypeXy.function.args.xDimension.help": "X軸ディメンション構成", - "visTypeXy.function.args.yDimension.help": "Y軸ディメンション構成", - "visTypeXy.function.args.zDimension.help": "Z軸ディメンション構成", - "visTypeXy.function.categoryAxis.help": "カテゴリ軸オブジェクトを生成します", - "visTypeXy.function.categoryAxis.id.help": "カテゴリ軸のID", - "visTypeXy.function.categoryAxis.labels.help": "軸ラベル構成", - "visTypeXy.function.categoryAxis.position.help": "カテゴリ軸の位置", - "visTypeXy.function.categoryAxis.scale.help": "スケール構成", - "visTypeXy.function.categoryAxis.show.help": "カテゴリ軸を表示", - "visTypeXy.function.categoryAxis.title.help": "カテゴリ軸のタイトル", - "visTypeXy.function.categoryAxis.type.help": "カテゴリ軸の種類。カテゴリまたは値を選択できます", - "visTypeXy.function.dimension.metric": "メトリック", - "visTypeXy.function.dimension.splitcolumn": "列分割", - "visTypeXy.function.dimension.splitrow": "行分割", - "visTypeXy.function.label.color.help": "ラベルの色", - "visTypeXy.function.label.filter.help": "軸の重なるラベルと重複を非表示にします", - "visTypeXy.function.label.help": "ラベルオブジェクトを生成します", - "visTypeXy.function.label.overwriteColor.help": "色を上書き", - "visTypeXy.function.label.rotate.help": "角度を回転", - "visTypeXy.function.label.show.help": "ラベルを表示", - "visTypeXy.function.label.truncate.help": "切り捨てる前の記号の数", - "visTypeXy.function.scale.boundsMargin.help": "境界のマージン", - "visTypeXy.function.scale.defaultYExtents.help": "データ境界にスケールできるフラグ", - "visTypeXy.function.scale.help": "スケールオブジェクトを生成します", - "visTypeXy.function.scale.max.help": "最高値", - "visTypeXy.function.scale.min.help": "最低値", - "visTypeXy.function.scale.mode.help": "スケールモード。標準、割合、小刻み、シルエットを選択できます", - "visTypeXy.function.scale.setYExtents.help": "独自の範囲を設定できるフラグ", - "visTypeXy.function.scale.type.help": "スケールタイプ。線形、対数、平方根を選択できます", - "visTypeXy.function.seriesParam.circlesRadius.help": "円のサイズ(半径)を定義します", - "visTypeXy.function.seriesParam.drawLinesBetweenPoints.help": "点の間に線を描画", - "visTypeXy.function.seriesparam.help": "系列パラメーターオブジェクトを生成します", - "visTypeXy.function.seriesParam.id.help": "系列パラメーターのID", - "visTypeXy.function.seriesParam.interpolate.help": "補間モード。線形、カーディナル、階段状を選択できます", - "visTypeXy.function.seriesParam.label.help": "系列パラメーターの名前", - "visTypeXy.function.seriesParam.lineWidth.help": "線の幅", - "visTypeXy.function.seriesParam.mode.help": "グラフモード。積み上げまたは割合を選択できます", - "visTypeXy.function.seriesParam.show.help": "パラメーターを表示", - "visTypeXy.function.seriesParam.showCircles.help": "円を表示", - "visTypeXy.function.seriesParam.type.help": "グラフの種類。折れ線、エリア、ヒストグラムを選択できます", - "visTypeXy.function.seriesParam.valueAxis.help": "値軸の名前", - "visTypeXy.function.thresholdLine.color.help": "しきい線の色", - "visTypeXy.function.thresholdLine.help": "しきい値線オブジェクトを生成します", - "visTypeXy.function.thresholdLine.show.help": "しきい線を表示", - "visTypeXy.function.thresholdLine.style.help": "しきい線のスタイル。実線、点線、一点鎖線を選択できます", - "visTypeXy.function.thresholdLine.value.help": "しきい値", - "visTypeXy.function.thresholdLine.width.help": "しきい値線の幅", - "visTypeXy.function.timeMarker.class.help": "CSSクラス名", - "visTypeXy.function.timeMarker.color.help": "時刻マーカーの色", - "visTypeXy.function.timemarker.help": "時刻マーカーオブジェクトを生成します", - "visTypeXy.function.timeMarker.opacity.help": "時刻マーカーの透明度", - "visTypeXy.function.timeMarker.time.help": "正確な時刻", - "visTypeXy.function.timeMarker.width.help": "時刻マーカーの幅", - "visTypeXy.function.valueAxis.axisParams.help": "値軸パラメーター", - "visTypeXy.function.valueaxis.help": "値軸オブジェクトを生成します", - "visTypeXy.function.valueAxis.name.help": "値軸の名前", - "visTypeXy.functions.help": "XYビジュアライゼーション", - "visTypeXy.histogram.groupTitle": "系列を分割", - "visTypeXy.histogram.histogramDescription": "軸の縦棒にデータを表示します。", - "visTypeXy.histogram.histogramTitle": "縦棒", - "visTypeXy.histogram.metricTitle": "Y 軸", - "visTypeXy.histogram.radiusTitle": "点のサイズ", - "visTypeXy.histogram.segmentTitle": "X 軸", - "visTypeXy.histogram.splitTitle": "チャートを分割", - "visTypeXy.horizontalBar.groupTitle": "系列を分割", - "visTypeXy.horizontalBar.horizontalBarDescription": "軸の横棒にデータを表示します。", - "visTypeXy.horizontalBar.horizontalBarTitle": "横棒", - "visTypeXy.horizontalBar.metricTitle": "Y 軸", - "visTypeXy.horizontalBar.radiusTitle": "点のサイズ", - "visTypeXy.horizontalBar.segmentTitle": "X 軸", - "visTypeXy.horizontalBar.splitTitle": "チャートを分割", - "visTypeXy.interpolationModes.smoothedText": "スムーズ", - "visTypeXy.interpolationModes.steppedText": "ステップ", - "visTypeXy.interpolationModes.straightText": "直線", - "visTypeXy.legend.filterForValueButtonAriaLabel": "値でフィルター", - "visTypeXy.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "visTypeXy.legend.filterOutValueButtonAriaLabel": "値を除外", - "visTypeXy.legendPositions.bottomText": "一番下", - "visTypeXy.legendPositions.leftText": "左", - "visTypeXy.legendPositions.rightText": "右", - "visTypeXy.legendPositions.topText": "トップ", - "visTypeXy.line.groupTitle": "系列を分割", - "visTypeXy.line.lineDescription": "データを系列点として表示します。", - "visTypeXy.line.lineTitle": "折れ線", - "visTypeXy.line.metricTitle": "Y 軸", - "visTypeXy.line.radiusTitle": "点のサイズ", - "visTypeXy.line.segmentTitle": "X 軸", - "visTypeXy.line.splitTitle": "チャートを分割", - "visTypeXy.scaleTypes.linearText": "線形", - "visTypeXy.scaleTypes.logText": "ログ", - "visTypeXy.scaleTypes.squareRootText": "平方根", - "visTypeXy.thresholdLine.style.dashedText": "鎖線", - "visTypeXy.thresholdLine.style.dotdashedText": "点線", - "visTypeXy.thresholdLine.style.fullText": "完全", - "visualizations.advancedSettings.visualizeEnableLabsText": "ユーザーが実験的なビジュアライゼーションを作成、表示、編集できるようになります。無効の場合、\n ユーザーは本番準備が整ったビジュアライゼーションのみを利用できます。", - "visualizations.advancedSettings.visualizeEnableLabsTitle": "実験的なビジュアライゼーションを有効にする", - "visualizations.disabledLabVisualizationLink": "ドキュメンテーションを表示", - "visualizations.disabledLabVisualizationMessage": "ラボビジュアライゼーションを表示するには、高度な設定でラボモードをオンにしてください。", - "visualizations.disabledLabVisualizationTitle": "{title} はラボビジュアライゼーションです。", - "visualizations.displayName": "ビジュアライゼーション", - "visualizations.embeddable.placeholderTitle": "プレースホルダータイトル", - "visualizations.function.range.from.help": "範囲の開始", - "visualizations.function.range.help": "範囲オブジェクトを生成します", - "visualizations.function.range.to.help": "範囲の終了", - "visualizations.function.visDimension.accessor.help": "使用するデータセット内の列(列インデックスまたは列名)", - "visualizations.function.visDimension.error.accessor": "入力された列名は無効です。", - "visualizations.function.visDimension.format.help": "フォーマット", - "visualizations.function.visDimension.formatParams.help": "フォーマットパラメーター", - "visualizations.function.visDimension.help": "visConfig ディメンションオブジェクトを生成します", - "visualizations.function.xyDimension.aggType.help": "集約タイプ", - "visualizations.function.xydimension.help": "XYディメンションオブジェクトを生成します", - "visualizations.function.xyDimension.label.help": "ラベル", - "visualizations.function.xyDimension.params.help": "パラメーター", - "visualizations.function.xyDimension.visDimension.help": "ディメンションオブジェクト構成", - "visualizations.initializeWithoutIndexPatternErrorMessage": "インデックスパターンなしで集約を初期化しようとしています", - "visualizations.newVisWizard.aggBasedGroupDescription": "クラシック Visualize ライブラリを使用して、アグリゲーションに基づいてグラフを作成します。", - "visualizations.newVisWizard.aggBasedGroupTitle": "アグリゲーションに基づく", - "visualizations.newVisWizard.chooseSourceTitle": "ソースの選択", - "visualizations.newVisWizard.experimentalTitle": "実験的", - "visualizations.newVisWizard.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", - "visualizations.newVisWizard.exploreOptionLinkText": "探索オプション", - "visualizations.newVisWizard.filterVisTypeAriaLabel": "ビジュアライゼーションのタイプでフィルタリング", - "visualizations.newVisWizard.goBackLink": "別のビジュアライゼーションを選択", - "visualizations.newVisWizard.helpTextAriaLabel": "タイプを選択してビジュアライゼーションの作成を始めましょう。ESC を押してこのモーダルを閉じます。Tab キーを押して次に進みます。", - "visualizations.newVisWizard.learnMoreText": "詳細について", - "visualizations.newVisWizard.newVisTypeTitle": "新規 {visTypeName}", - "visualizations.newVisWizard.readDocumentationLink": "ドキュメンテーションを表示", - "visualizations.newVisWizard.searchSelection.notFoundLabel": "一致インデックスまたは保存した検索が見つかりません。", - "visualizations.newVisWizard.searchSelection.savedObjectType.search": "保存検索", - "visualizations.newVisWizard.title": "新規ビジュアライゼーション", - "visualizations.newVisWizard.toolsGroupTitle": "ツール", - "visualizations.noResultsFoundTitle": "結果が見つかりませんでした", - "visualizations.savedObjectName": "ビジュアライゼーション", - "visualizations.savingVisualizationFailed.errorMsg": "ビジュアライゼーションの保存が失敗しました", - "visualizations.visualizationTypeInvalidMessage": "無効なビジュアライゼーションタイプ \"{visType}\"", - "visualize.badge.readOnly.text": "読み取り専用", - "visualize.badge.readOnly.tooltip": "ビジュアライゼーションをライブラリに保存できません", - "visualize.byValue_pageHeading": "{originatingApp}アプリに埋め込まれた{chartType}タイプのビジュアライゼーション", - "visualize.confirmModal.confirmTextDescription": "変更を保存せずにVisualizeエディターから移動しますか?", - "visualize.confirmModal.title": "保存されていない変更", - "visualize.createVisualization.failedToLoadErrorMessage": "ビジュアライゼーションを読み込めませんでした", - "visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "indexPatternまたはsavedSearchIdが必要です", - "visualize.createVisualization.noVisTypeErrorMessage": "有効なビジュアライゼーションタイプを指定してください", - "visualize.editor.createBreadcrumb": "作成", - "visualize.editor.defaultEditBreadcrumbText": "ビジュアライゼーションを編集", - "visualize.experimentalVisInfoText": "このビジュアライゼーションはまだ実験段階であり、オフィシャルGA機能のサポートSLAが適用されません。フィードバックがある場合は、{githubLink}で問題を報告してください。", - "visualize.helpMenu.appName": "Visualizeライブラリ", - "visualize.linkedToSearch.unlinkSuccessNotificationText": "保存された検索「{searchTitle}」からリンクが解除されました", - "visualize.listing.betaTitle": "ベータ", - "visualize.listing.betaTooltip": "このビジュアライゼーションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャルGA機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャルGA機能のSLAが適用されません", - "visualize.listing.breadcrumb": "Visualizeライブラリ", - "visualize.listing.createNew.createButtonLabel": "新規ビジュアライゼーションを追加", - "visualize.listing.createNew.description": "データに基づき異なるビジュアライゼーションを作成できます。", - "visualize.listing.createNew.title": "最初のビジュアライゼーションの作成", - "visualize.listing.experimentalTitle": "実験的", - "visualize.listing.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", - "visualize.listing.table.descriptionColumnName": "説明", - "visualize.listing.table.entityName": "ビジュアライゼーション", - "visualize.listing.table.entityNamePlural": "ビジュアライゼーション", - "visualize.listing.table.listTitle": "Visualizeライブラリ", - "visualize.listing.table.titleColumnName": "タイトル", - "visualize.listing.table.typeColumnName": "型", - "visualize.listingPageTitle": "Visualizeライブラリ", - "visualize.noMatchRoute.bannerText": "Visualizeアプリケーションはこのルートを認識できません。{route}", - "visualize.noMatchRoute.bannerTitleText": "ページが見つかりません", - "visualize.pageHeading": "{chartName} {chartType}ビジュアライゼーション", - "visualize.topNavMenu.cancelAndReturnButtonTooltip": "完了する前に変更を破棄", - "visualize.topNavMenu.cancelButtonAriaLabel": "変更を保存せずに最後に使用していたアプリに戻る", - "visualize.topNavMenu.cancelButtonLabel": "キャンセル", - "visualize.topNavMenu.openInspectorButtonAriaLabel": "ビジュアライゼーションのインスペクターを開く", - "visualize.topNavMenu.openInspectorButtonLabel": "検査", - "visualize.topNavMenu.openInspectorDisabledButtonTooltip": "このビジュアライゼーションはインスペクターをサポートしていません。", - "visualize.topNavMenu.saveAndReturnVisualizationButtonAriaLabel": "可視化の編集が完了し、前回使用していたアプリに戻ります", - "visualize.topNavMenu.saveAndReturnVisualizationButtonLabel": "保存して戻る", - "visualize.topNavMenu.saveAndReturnVisualizationDisabledButtonTooltip": "完了する前に変更を適用または破棄", - "visualize.topNavMenu.saveVisualization.failureNotificationText": "「{visTitle}」の保存中にエラーが発生しました", - "visualize.topNavMenu.saveVisualization.successNotificationText": "保存された'{visTitle}'", - "visualize.topNavMenu.saveVisualizationAsButtonLabel": "名前を付けて保存", - "visualize.topNavMenu.saveVisualizationButtonAriaLabel": "ビジュアライゼーションを保存", - "visualize.topNavMenu.saveVisualizationButtonLabel": "保存", - "visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "保存する前に変更を適用または破棄", - "visualize.topNavMenu.saveVisualizationObjectType": "ビジュアライゼーション", - "visualize.topNavMenu.saveVisualizationToLibraryButtonLabel": "ライブラリに保存", - "visualize.topNavMenu.shareVisualizationButtonAriaLabel": "ビジュアライゼーションを共有", - "visualize.topNavMenu.shareVisualizationButtonLabel": "共有", - "visualize.topNavMenu.updatePanel": "{originatingAppName}でパネルを更新", - "visualize.visualizationLoadingFailedErrorMessage": "ビジュアライゼーションを読み込めませんでした", - "visualize.visualizeDescription": "ビジュアライゼーションを作成してElasticsearchインデックスに保存されたデータをアグリゲーションします。", - "visualize.visualizeListingBreadcrumbsTitle": "Visualizeライブラリ", - "visualize.visualizeListingDashboardAppName": "ダッシュボードアプリケーション", - "visualize.visualizeListingDashboardFlowDescription": "ダッシュボードを作成しますか?{dashboardApp}から直接ビジュアライゼーションを作成して追加します。", - "visualize.visualizeListingDeleteErrorTitle": "ビジュアライゼーションの削除中にエラーが発生", - "xpack.actions.actionTypeRegistry.get.missingActionTypeErrorMessage": "アクションタイプ「{id}」は登録されていません。", - "xpack.actions.actionTypeRegistry.register.duplicateActionTypeErrorMessage": "アクションタイプ「{id}」はすでに登録されています。", - "xpack.actions.alertHistoryEsIndexConnector.name": "アラート履歴Elasticsearchインデックス", - "xpack.actions.appName": "アクション", - "xpack.actions.builtin.case.swimlaneTitle": "スイムレーン", - "xpack.actions.builtin.cases.jiraTitle": "Jira", - "xpack.actions.builtin.cases.resilientTitle": "IBM Resilient", - "xpack.actions.builtin.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", - "xpack.actions.builtin.email.customViewInKibanaMessage": "このメッセージはKibanaによって送信されました[{kibanaFooterLinkText}]({link})。", - "xpack.actions.builtin.email.errorSendingErrorMessage": "エラー送信メールアドレス", - "xpack.actions.builtin.email.kibanaFooterLinkText": "Kibana を開く", - "xpack.actions.builtin.email.sentByKibanaMessage": "このメッセージは Kibana によって送信されました。", - "xpack.actions.builtin.emailTitle": "メール", - "xpack.actions.builtin.esIndex.errorIndexingErrorMessage": "エラーインデックス作成ドキュメント", - "xpack.actions.builtin.esIndexTitle": "インデックス", - "xpack.actions.builtin.jira.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", - "xpack.actions.builtin.pagerduty.invalidTimestampErrorMessage": "タイムスタンプ\"{timestamp}\"の解析エラー", - "xpack.actions.builtin.pagerduty.missingDedupkeyErrorMessage": "eventActionが「{eventAction}」のときにはDedupKeyが必要です", - "xpack.actions.builtin.pagerduty.pagerdutyConfigurationError": "pagerduty アクションの設定エラー:{message}", - "xpack.actions.builtin.pagerduty.postingErrorMessage": "pagerduty イベントの投稿エラー", - "xpack.actions.builtin.pagerduty.postingRetryErrorMessage": "pagerduty イベントの投稿エラー:http status {status}、後ほど再試行", - "xpack.actions.builtin.pagerduty.postingUnexpectedErrorMessage": "pagerduty イベントの投稿エラー:予期せぬステータス {status}", - "xpack.actions.builtin.pagerduty.timestampParsingFailedErrorMessage": "タイムスタンプの解析エラー \"{timestamp}\":{message}", - "xpack.actions.builtin.pagerdutyTitle": "PagerDuty", - "xpack.actions.builtin.serverLog.errorLoggingErrorMessage": "メッセージのロギングエラー", - "xpack.actions.builtin.serverLogTitle": "サーバーログ", - "xpack.actions.builtin.serviceNowITSMTitle": "ServiceNow ITSM", - "xpack.actions.builtin.serviceNowSIRTitle": "ServiceNow SecOps", - "xpack.actions.builtin.serviceNowTitle": "ServiceNow", - "xpack.actions.builtin.slack.errorPostingErrorMessage": "slack メッセージの投稿エラー", - "xpack.actions.builtin.slack.errorPostingRetryDateErrorMessage": "slack メッセージの投稿エラー、 {retryString} で再試行", - "xpack.actions.builtin.slack.errorPostingRetryLaterErrorMessage": "slack メッセージの投稿エラー、後ほど再試行", - "xpack.actions.builtin.slack.slackConfigurationError": "slack アクションの設定エラー:{message}", - "xpack.actions.builtin.slack.slackConfigurationErrorNoHostname": "slack アクションの構成エラー:Web フック URL からホスト名をパースできません", - "xpack.actions.builtin.slack.unexpectedHttpResponseErrorMessage": "slack からの予期せぬ http 応答:{httpStatus} {httpStatusText}", - "xpack.actions.builtin.slack.unexpectedNullResponseErrorMessage": "Slack から予期せぬ null 応答", - "xpack.actions.builtin.slackTitle": "Slack", - "xpack.actions.builtin.swimlane.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", - "xpack.actions.builtin.swimlaneTitle": "スイムレーン", - "xpack.actions.builtin.teams.errorPostingRetryDateErrorMessage": "Microsoft Teams メッセージの投稿エラーです。{retryString} に再試行します", - "xpack.actions.builtin.teams.errorPostingRetryLaterErrorMessage": "Microsoft Teams メッセージの投稿エラーです。しばらくたってから再試行します", - "xpack.actions.builtin.teams.invalidResponseErrorMessage": "Microsoft Teams への投稿エラーです。無効な応答です", - "xpack.actions.builtin.teams.teamsConfigurationError": "Teams アクションの設定エラー:{message}", - "xpack.actions.builtin.teams.teamsConfigurationErrorNoHostname": "Teams アクションの構成エラー:Web フック URL からホスト名をパースできません", - "xpack.actions.builtin.teams.unreachableErrorMessage": "Microsoft Teams への投稿エラーです。予期しないエラーです", - "xpack.actions.builtin.teamsTitle": "Microsoft Teams", - "xpack.actions.builtin.webhook.invalidResponseErrorMessage": "Webフックの呼び出しエラー、無効な応答", - "xpack.actions.builtin.webhook.invalidResponseRetryDateErrorMessage": "Webフックの呼び出しエラー、{retryString} に再試行", - "xpack.actions.builtin.webhook.invalidResponseRetryLaterErrorMessage": "Webフックの呼び出しエラー、後ほど再試行", - "xpack.actions.builtin.webhook.invalidUsernamePassword": "ユーザーとパスワードの両方を指定する必要があります", - "xpack.actions.builtin.webhook.requestFailedErrorMessage": "Webフックの呼び出しエラー。要求が失敗しました", - "xpack.actions.builtin.webhook.unreachableErrorMessage": "webhookの呼び出しエラー、予期せぬエラー", - "xpack.actions.builtin.webhook.webhookConfigurationError": "Web フックアクションの構成中にエラーが発生:{message}", - "xpack.actions.builtin.webhook.webhookConfigurationErrorNoHostname": "Webフックアクションの構成エラーです。URLを解析できません。{err}", - "xpack.actions.builtin.webhookTitle": "Web フック", - "xpack.actions.disabledActionTypeError": "アクションタイプ \"{actionType}\" は、Kibana 構成 xpack.actions.enabledActionTypes では有効化されません", - "xpack.actions.featureRegistry.actionsFeatureName": "アクションとコネクター", - "xpack.actions.savedObjects.goToConnectorsButtonText": "コネクターに移動", - "xpack.actions.serverSideErrors.expirerdLicenseErrorMessage": "{licenseType} ライセンスの期限が切れたのでアクションタイプ {actionTypeId} は無効です。", - "xpack.actions.serverSideErrors.invalidLicenseErrorMessage": "{licenseType} ライセンスでサポートされないのでアクションタイプ {actionTypeId} は無効です。ライセンスをアップグレードしてください。", - "xpack.actions.serverSideErrors.predefinedActionDeleteDisabled": "あらかじめ構成されたアクション{id}は削除できません。", - "xpack.actions.serverSideErrors.predefinedActionUpdateDisabled": "あらかじめ構成されたアクション{id}は更新できません。", - "xpack.actions.serverSideErrors.unavailableLicenseErrorMessage": "現時点でライセンス情報を入手できないため、アクションタイプ {actionTypeId} は無効です。", - "xpack.actions.serverSideErrors.unavailableLicenseInformationErrorMessage": "グラフを利用できません。現在ライセンス情報が利用できません。", - "xpack.actions.urlAllowedHostsConfigurationError": "ターゲット{field}「{value}」はKibana構成xpack.actions.allowedHostsに追加されていません", - "xpack.alerting.alertNavigationRegistry.get.missingNavigationError": "「{consumer}」内のアラートタイプ「{alertType}」のナビゲーションは登録されていません。", - "xpack.alerting.alertNavigationRegistry.register.duplicateDefaultError": "「{consumer}」内のデフォルトナビゲーションはすでに登録されています。", - "xpack.alerting.alertNavigationRegistry.register.duplicateNavigationError": "「{consumer}」内のアラートタイプ「{alertType}」のナビゲーションは既に登録されています。", - "xpack.alerting.api.error.disabledApiKeys": "アラートは API キーに依存しますがキーが無効になっているようです", - "xpack.alerting.appName": "アラート", - "xpack.alerting.builtinActionGroups.recovered": "回復済み", - "xpack.alerting.injectActionParams.email.kibanaFooterLinkText": "Kibanaでルールを表示", - "xpack.alerting.rulesClient.invalidDate": "パラメーター{field}の無効な日付:「{dateValue}」", - "xpack.alerting.rulesClient.validateActions.invalidGroups": "無効なアクショングループ:{groups}", - "xpack.alerting.rulesClient.validateActions.misconfiguredConnector": "無効なコネクター:{groups}", - "xpack.alerting.ruleTypeRegistry.get.missingAlertTypeError": "ルールタイプ「{id}」は登録されていません。", - "xpack.alerting.ruleTypeRegistry.register.customRecoveryActionGroupUsageError": "ルールタイプ [id=\"{id}\"] を登録できません。アクショングループ[{actionGroup}] は、復元とアクティブなアクショングループの両方として使用できません。", - "xpack.alerting.ruleTypeRegistry.register.duplicateAlertTypeError": "ルールタイプ\"{id}\"はすでに登録されています。", - "xpack.alerting.savedObjects.goToRulesButtonText": "ルールに移動", - "xpack.alerting.serverSideErrors.expirerdLicenseErrorMessage": "{licenseType} ライセンスの期限が切れたのでアラートタイプ {alertTypeId} は無効です。", - "xpack.alerting.serverSideErrors.invalidLicenseErrorMessage": "アラート{alertTypeId}は無効です。{licenseType}ライセンスが必要です。アップグレードオプションを表示するには、[ライセンス管理]に移動してください。", - "xpack.alerting.serverSideErrors.unavailableLicenseErrorMessage": "現時点でライセンス情報を入手できないため、アラートタイプ {alertTypeId} は無効です。", - "xpack.alerting.serverSideErrors.unavailableLicenseInformationErrorMessage": "アラートを利用できません。現在ライセンス情報が利用できません。", - "xpack.apm.a.thresholdMet": "しきい値一致", - "xpack.apm.addDataButtonLabel": "データの追加", - "xpack.apm.agentConfig.allOptionLabel": "すべて", - "xpack.apm.agentConfig.apiRequestSize.description": "チャンクエンコーディング(HTTPストリーミング)を経由してAPM ServerインテークAPIに送信されるリクエスト本文の最大合計圧縮サイズ。\nわずかなオーバーシュートの可能性があることに注意してください。\n\n使用できるバイト単位は、「b」、「kb」、「mb」です。「1kb」は「1024b」と等価です。", - "xpack.apm.agentConfig.apiRequestSize.label": "API リクエストサイズ", - "xpack.apm.agentConfig.apiRequestTime.description": "APM Server への HTTP リクエストを開いておく最大時間。\n\n注:この値は、APM Server の「read_timeout」設定よりも低くする必要があります。", - "xpack.apm.agentConfig.apiRequestTime.label": "API リクエスト時間", - "xpack.apm.agentConfig.captureBody.description": "HTTPリクエストのトランザクションの場合、エージェントはオプションとしてリクエスト本文(POST変数など)をキャプチャすることができます。\nメッセージブローカーからメッセージを受信すると開始するトランザクションでは、エージェントがテキストメッセージの本文を取り込むことができます。", - "xpack.apm.agentConfig.captureBody.label": "本文をキャプチャ", - "xpack.apm.agentConfig.captureHeaders.description": "「true」に設定すると、メッセージングフレームワーク(Kafkaなど)を使用するときに、エージェントはHTTP要求と応答ヘッダー(Cookieを含む)、およびメッセージヘッダー/プロパティを取り込みます。\n\n注:これを「false」に設定すると、ネットワーク帯域幅、ディスク容量、およびオブジェクト割り当てが減少します。", - "xpack.apm.agentConfig.captureHeaders.label": "ヘッダーのキャプチャ", - "xpack.apm.agentConfig.chooseService.editButton": "編集", - "xpack.apm.agentConfig.chooseService.service.environment.label": "環境", - "xpack.apm.agentConfig.chooseService.service.name.label": "サービス名", - "xpack.apm.agentConfig.circuitBreakerEnabled.description": "Circuit Breakerを有効にすべきかどうかを指定するブール値。 有効にすると、エージェントは定期的にストレス監視をポーリングして、システム/プロセス/JVMのストレス状態を検出します。監視のいずれかがストレスの兆候を検出した場合、`recording`構成オプションの設定が「false」であるかのようにエージェントは一時停止し、リソース消費を最小限に抑えられます。一時停止した場合、エージェントはストレス状態が緩和されたかどうかを検出するために同じ監視のポーリングを継続します。すべての監視でシステム/プロセス/JVMにストレスがないことが認められると、エージェントは再開して完全に機能します。", - "xpack.apm.agentConfig.circuitBreakerEnabled.label": "Cirtcuit Breaker が有効", - "xpack.apm.agentConfig.configTable.appliedTooltipMessage": "1 つ以上のエージェントにより適用されました", - "xpack.apm.agentConfig.configTable.configTable.failurePromptText": "エージェントの構成一覧を取得できませんでした。ユーザーに十分なパーミッションがない可能性があります。", - "xpack.apm.agentConfig.configTable.createConfigButtonLabel": "構成の作成", - "xpack.apm.agentConfig.configTable.emptyPromptTitle": "構成が見つかりません。", - "xpack.apm.agentConfig.configTable.environmentColumnLabel": "サービス環境", - "xpack.apm.agentConfig.configTable.lastUpdatedColumnLabel": "最終更新", - "xpack.apm.agentConfig.configTable.notAppliedTooltipMessage": "まだエージェントにより適用されていません", - "xpack.apm.agentConfig.configTable.serviceNameColumnLabel": "サービス名", - "xpack.apm.agentConfig.configurationsPanelTitle": "構成", - "xpack.apm.agentConfig.configurationsPanelTitle.noPermissionTooltipLabel": "ユーザーロールには、エージェント構成を作成する権限がありません", - "xpack.apm.agentConfig.createConfigButtonLabel": "構成の作成", - "xpack.apm.agentConfig.createConfigTitle": "構成の作成", - "xpack.apm.agentConfig.deleteModal.cancel": "キャンセル", - "xpack.apm.agentConfig.deleteModal.confirm": "削除", - "xpack.apm.agentConfig.deleteModal.text": "サービス「{serviceName}」と環境「{environment}」の構成を削除しようとしています。", - "xpack.apm.agentConfig.deleteModal.title": "構成を削除", - "xpack.apm.agentConfig.deleteSection.deleteConfigFailedText": "「{serviceName}」の構成を削除中に問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.agentConfig.deleteSection.deleteConfigFailedTitle": "構成を削除できませんでした", - "xpack.apm.agentConfig.deleteSection.deleteConfigSucceededText": "「{serviceName}」の構成が正常に削除されました。エージェントに反映されるまでに少し時間がかかります。", - "xpack.apm.agentConfig.deleteSection.deleteConfigSucceededTitle": "構成が削除されました", - "xpack.apm.agentConfig.editConfigTitle": "構成の編集", - "xpack.apm.agentConfig.enableLogCorrelation.description": "エージェントがSLF4JのMDCと融合してトレースログ相関を有効にすべきかどうかを指定するブール値。「true」に設定した場合、エージェントは現在アクティブなスパンとトランザクションの「trace.id」と「transaction.id」をMDCに設定します。Javaエージェントバージョン1.16.0以降では、エージェントは、エラーメッセージが記録される前に、取り込まれたエラーの「error.id」もMDCに追加します。注:実行時にこの設定を有効にできますが、再起動しないと無効にはできません。", - "xpack.apm.agentConfig.enableLogCorrelation.label": "ログ相関を有効にする", - "xpack.apm.agentConfig.logLevel.description": "エージェントのログ記録レベルを設定します", - "xpack.apm.agentConfig.logLevel.label": "ログレベル", - "xpack.apm.agentConfig.newConfig.description": "APMアプリ内からエージェント構成を微調整してください。変更はAPMエージェントに自動的に伝達されるので、再デプロイする必要はありません。", - "xpack.apm.agentConfig.profilingInferredSpansEnabled.description": "「true」に設定すると、エージェントは、別名統計プロファイラーと呼ばれるサンプリングプロファイラーであるasync-profilerに基づいてメソッド実行用のスパンを作成します。サンプリングプロファイラーのしくみの性質上、推定スパンの期間は厳密ではなく見込みのみです。「profiling_inferred_spans_sampling_interval」では、正確度とオーバーヘッドの間のトレードオフを微調整できます。推定スパンは、プロファイルセッションの終了後に作成されます。つまり、通常のスパンと推定スパンの間にはUIに表示されるタイミングに遅延があります。注:この機能はWindowsで使用できません。", - "xpack.apm.agentConfig.profilingInferredSpansEnabled.label": "プロファイル推定スパンが有効です", - "xpack.apm.agentConfig.profilingInferredSpansExcludedClasses.description": "プロファイラー推定スパンを作成する必要がないクラスを除外します。このオプションは、0文字以上に一致するワイルドカード「*」をサポートします。デフォルトでは、照合時に大文字と小文字の区別はありません。要素の前に「(?-i)」を付けると、照合時に大文字と小文字が区別されます。", - "xpack.apm.agentConfig.profilingInferredSpansExcludedClasses.label": "プロファイル推定スパンでクラスを除外しました", - "xpack.apm.agentConfig.profilingInferredSpansIncludedClasses.description": "設定した場合、エージェントは、このリストに一致するメソッドの推定スパンのみを作成します。値を設定すると、わずかに負荷が低減することがあり、対象となるクラスのスパンのみを作成することによって煩雑になるのを防止できます。このオプションは、0文字以上に一致するワイルドカード「*」をサポートします。例:「org.example.myapp.*」デフォルトでは、照合時に大文字と小文字の区別はありません。要素の前に「(?-i)」を付けると、照合時に大文字と小文字が区別されます。", - "xpack.apm.agentConfig.profilingInferredSpansIncludedClasses.label": "プロファイル推定スパンでクラスを包含しました", - "xpack.apm.agentConfig.profilingInferredSpansMinDuration.description": "推定スパンの最小期間。最小期間もサンプリング間隔によって暗黙的に設定されることに注意してください。ただし、サンプリング間隔を大きくすると、推定スパンの期間の精度も低下します。", - "xpack.apm.agentConfig.profilingInferredSpansMinDuration.label": "プロファイル推定スパン最小期間", - "xpack.apm.agentConfig.profilingInferredSpansSamplingInterval.description": "プロファイルセッション内でスタックトレースを収集する頻度。低い値に設定するほど継続時間の精度が上がります。その代わり、オーバーヘッドが増し、潜在的に無関係なオペレーションのスパンが増えるという犠牲が伴います。プロファイル推定スパンの最小期間は、この設定値と同じです。", - "xpack.apm.agentConfig.profilingInferredSpansSamplingInterval.label": "プロファイル推定サンプリング間隔", - "xpack.apm.agentConfig.range.errorText": "{rangeType, select,\n between {{min}と{max}の間でなければなりません}\n gt {値は{min}よりも大きい値でなければなりません}\n lt {{max}よりも低く設定する必要があります}\n other {整数でなければなりません}\n }", - "xpack.apm.agentConfig.recording.description": "記録中の場合、エージェントは着信HTTPリクエストを計測し、エラーを追跡し、メトリックを収集して送信します。記録なしに設定すると、エージェントはnoopとして動作し、更新された更新のポーリングを除き、データの収集や APM Server との通信を行いません。これは可逆スイッチなので、記録なしに設定されていてもエージェントスレッドは強制終了されませんが、この状態ではほとんどアイドル状態なのでオーバーヘッドは無視できます。この設定を使用すると、Elastic APMが有効か無効かを動的に制御できます。", - "xpack.apm.agentConfig.recording.label": "記録中", - "xpack.apm.agentConfig.sanitizeFiledNames.description": "場合によっては、サニタイズが必要です。つまり、Elastic APM に送信される機密データを削除する必要があります。この構成では、サニタイズされるフィールド名のワイルドカードパターンのリストを使用できます。これらは HTTP ヘッダー(Cookie を含む)と「application/x-www-form-urlencoded」データ(POST フォームフィールド)に適用されます。クエリ文字列と取り込まれた要求本文(「application/json」データなど)はサニタイズされません。", - "xpack.apm.agentConfig.sanitizeFiledNames.label": "フィールド名のサニタイズ", - "xpack.apm.agentConfig.saveConfig.failed.text": "「{serviceName}」の構成の保存中に問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.agentConfig.saveConfig.failed.title": "構成を保存できませんでした", - "xpack.apm.agentConfig.saveConfig.succeeded.text": "「{serviceName}」の構成を保存しました。エージェントに反映されるまでに少し時間がかかります。", - "xpack.apm.agentConfig.saveConfig.succeeded.title": "構成が保存されました", - "xpack.apm.agentConfig.saveConfigurationButtonLabel": "次のステップ", - "xpack.apm.agentConfig.serverTimeout.description": "APM Server への要求で構成されたタイムアウトより時間がかかる場合、\n要求がキャンセルされ、イベント(例外またはトランザクション)が破棄されます。\n0に設定するとタイムアウトが無効になります。\n\n警告:タイムアウトが無効か高い値に設定されている場合、APM Serverがタイムアウトになると、アプリでメモリの問題が発生する可能性があります。", - "xpack.apm.agentConfig.serverTimeout.label": "サーバータイムアウト", - "xpack.apm.agentConfig.servicePage.alreadyConfiguredOption": "すでに構成済み", - "xpack.apm.agentConfig.servicePage.cancelButton": "キャンセル", - "xpack.apm.agentConfig.servicePage.environment.description": "構成ごとに 1 つの環境のみがサポートされます。", - "xpack.apm.agentConfig.servicePage.environment.fieldLabel": "サービス環境", - "xpack.apm.agentConfig.servicePage.environment.title": "環境", - "xpack.apm.agentConfig.servicePage.service.description": "構成するサービスを選択してください。", - "xpack.apm.agentConfig.servicePage.service.fieldLabel": "サービス名", - "xpack.apm.agentConfig.servicePage.service.title": "サービス", - "xpack.apm.agentConfig.settingsPage.discardChangesButton": "変更を破棄", - "xpack.apm.agentConfig.settingsPage.notFound.message": "リクエストされた構成が存在しません", - "xpack.apm.agentConfig.settingsPage.notFound.title": "申し訳ございません、エラーが発生しました", - "xpack.apm.agentConfig.settingsPage.saveButton": "構成を保存", - "xpack.apm.agentConfig.spanFramesMinDuration.description": "デフォルト設定では、APM エージェントは記録されたすべてのスパンでスタックトレースを収集します。\nこれはコード内でスパンの原因になる厳密な場所を見つけるうえで非常に役立ちますが、このスタックトレースを収集するとオーバーヘッドが生じます。\nこのオプションを負の値(「-1ms」など)に設定すると、すべてのスパンのスタックトレースが収集されます。正の値(たとえば、「5 ms」)に設定すると、スタックトレース収集を、指定値(たとえば、5ミリ秒)以上の期間にわたるスパンに制限されます。\n\nスパンのスタックトレース収集を完全に無効にするには、値を「0ms」に設定します。", - "xpack.apm.agentConfig.spanFramesMinDuration.label": "スパンフレーム最小期間", - "xpack.apm.agentConfig.stackTraceLimit.description": "0 に設定するとスタックトレース収集が無効になります。収集するフレームの最大数として正の整数値が使用されます。-1 に設定すると、すべてのフレームが収集されます。", - "xpack.apm.agentConfig.stackTraceLimit.label": "スタックトレース制限", - "xpack.apm.agentConfig.stressMonitorCpuDurationThreshold.description": "システムに現在ストレスがかかっているか、それとも以前に検出したストレスが緩和されたかを判断するために必要な最小時間。この時期のすべての測定は、関連しきい値と比較してストレス状態の変化を検出できるように一貫性が必要です。「1m」以上にする必要があります。", - "xpack.apm.agentConfig.stressMonitorCpuDurationThreshold.label": "ストレス監視 CPU 期間しきい値", - "xpack.apm.agentConfig.stressMonitorGcReliefThreshold.description": "ヒープにストレスがかからない時期を特定するためにGC監視で使用するしきい値。「stress_monitor_gc_stress_threshold」を超えた場合、エージェントはそれをヒープストレス状態と見なします。ストレス状態が収まったことを確認するには、すべてのヒーププールで占有メモリの割合がこのしきい値よりも低いことを確認します。GC監視は、直近のGCの後で測定したメモリ消費のみに依存します。", - "xpack.apm.agentConfig.stressMonitorGcReliefThreshold.label": "ストレス監視システム GC 緩和しきい値", - "xpack.apm.agentConfig.stressMonitorGcStressThreshold.description": "ヒープストレスを特定するためにGC監視で使用するしきい値。すべてのヒーププールに同じしきい値が使用され、いずれかの使用率がその値を超える場合、エージェントはそれをヒープストレスと見なします。GC監視は、直近のGCの後で測定したメモリ消費のみに依存します。", - "xpack.apm.agentConfig.stressMonitorGcStressThreshold.label": "ストレス監視システム GC ストレスしきい値", - "xpack.apm.agentConfig.stressMonitorSystemCpuReliefThreshold.description": "システムにCPUストレスがかかっていないことを判断するためにシステムCPU監視で使用するしきい値。監視機能でCPUストレスを検出した場合にCPUストレスが緩和されたと判断するには、測定されたシステムCPUが「stress_monitor_cpu_duration_threshold」と同じ長さ以上の期間にわたってこのしきい値を下回る必要があります。", - "xpack.apm.agentConfig.stressMonitorSystemCpuReliefThreshold.label": "ストレス監視システム CPU 緩和しきい値", - "xpack.apm.agentConfig.stressMonitorSystemCpuStressThreshold.description": "システムCPU監視でシステムCPUストレスの検出に使用するしきい値。システムCPUが少なくとも「stress_monitor_cpu_duration_threshold」と同じ長さ以上の期間にわたってこのしきい値を超えると、監視機能はこれをストレス状態と見なします。", - "xpack.apm.agentConfig.stressMonitorSystemCpuStressThreshold.label": "ストレス監視システム CPU ストレスしきい値", - "xpack.apm.agentConfig.transactionIgnoreUrl.description": "特定の URL への要求が命令されないように制限するために使用します。この構成では、無視される URL パスのワイルドカードパターンのカンマ区切りのリストを使用できます。受信 HTTP 要求が検出されると、要求パスが、リストの各要素に対してテストされます。たとえば、このリストに「/home/index」を追加すると、一致して、「http://localhost/home/index」と「http://whatever.com/home/index?value1=123」から命令が削除されます。", - "xpack.apm.agentConfig.transactionIgnoreUrl.label": "URL に基づくトランザクションを無視", - "xpack.apm.agentConfig.transactionMaxSpans.description": "トランザクションごとに記録される範囲を制限します。", - "xpack.apm.agentConfig.transactionMaxSpans.label": "トランザクションの最大範囲", - "xpack.apm.agentConfig.transactionSampleRate.description": "デフォルトでは、エージェントはすべてのトランザクション(たとえば、サービスへのリクエストなど)をサンプリングします。オーバーヘッドやストレージ要件を減らすには、サンプルレートの値を0.0〜1.0に設定します。全体的な時間とサンプリングされないトランザクションの結果は記録されますが、コンテキスト情報、ラベル、スパンは記録されません。", - "xpack.apm.agentConfig.transactionSampleRate.label": "トランザクションのサンプルレート", - "xpack.apm.agentConfig.unsavedSetting.tooltip": "未保存", - "xpack.apm.agentMetrics.java.gcRate": "GC レート", - "xpack.apm.agentMetrics.java.gcRateChartTitle": "1 分ごとのガベージコレクション", - "xpack.apm.agentMetrics.java.gcTime": "GC 時間", - "xpack.apm.agentMetrics.java.gcTimeChartTitle": "1 分ごとのごみ収集の時間", - "xpack.apm.agentMetrics.java.heapMemoryChartTitle": "ヒープ領域", - "xpack.apm.agentMetrics.java.heapMemorySeriesCommitted": "平均実行割当", - "xpack.apm.agentMetrics.java.heapMemorySeriesMax": "平均制限", - "xpack.apm.agentMetrics.java.heapMemorySeriesUsed": "平均使用", - "xpack.apm.agentMetrics.java.nonHeapMemoryChartTitle": "ヒープ領域以外", - "xpack.apm.agentMetrics.java.nonHeapMemorySeriesCommitted": "平均実行割当", - "xpack.apm.agentMetrics.java.nonHeapMemorySeriesUsed": "平均使用", - "xpack.apm.agentMetrics.java.threadCount": "平均カウント", - "xpack.apm.agentMetrics.java.threadCountChartTitle": "スレッド数", - "xpack.apm.agentMetrics.java.threadCountMax": "最高カウント", - "xpack.apm.aggregatedTransactions.fallback.badge": "サンプリングされたトランザクションに基づく", - "xpack.apm.aggregatedTransactions.fallback.tooltip": "メトリックイベントが現在の時間範囲にないか、メトリックイベントドキュメントにないフィールドに基づいてフィルターが適用されたため、このページはトランザクションイベントデータを使用しています。", - "xpack.apm.alertAnnotationButtonAriaLabel": "アラート詳細を表示", - "xpack.apm.alertAnnotationCriticalTitle": "重大アラート", - "xpack.apm.alertAnnotationNoSeverityTitle": "アラート", - "xpack.apm.alertAnnotationWarningTitle": "警告アラート", - "xpack.apm.alerting.fields.environment": "環境", - "xpack.apm.alerting.fields.service": "サービス", - "xpack.apm.alerting.fields.type": "型", - "xpack.apm.alerts.action_variables.environment": "アラートが作成されるトランザクションタイプ", - "xpack.apm.alerts.action_variables.intervalSize": "アラート条件が満たされた期間の長さと単位", - "xpack.apm.alerts.action_variables.serviceName": "アラートが作成されるサービス", - "xpack.apm.alerts.action_variables.threshold": "この値を超えるすべてのトリガーによりアラートが実行されます", - "xpack.apm.alerts.action_variables.transactionType": "アラートが作成されるトランザクションタイプ", - "xpack.apm.alerts.action_variables.triggerValue": "しきい値に達し、アラートをトリガーした値", - "xpack.apm.alerts.anomalySeverity.criticalLabel": "致命的", - "xpack.apm.alerts.anomalySeverity.majorLabel": "メジャー", - "xpack.apm.alerts.anomalySeverity.minor": "マイナー", - "xpack.apm.alerts.anomalySeverity.scoreDetailsDescription": "スコア {value} {value, select, critical {} other {以上}}", - "xpack.apm.alerts.anomalySeverity.warningLabel": "警告", - "xpack.apm.alertTypes.errorCount.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- しきい値\\{\\{context.threshold\\}\\}エラー\n- トリガーされた値:過去\\{\\{context.interval\\}\\}に\\{\\{context.triggerValue\\}\\}件のエラー", - "xpack.apm.alertTypes.errorCount.description": "サービスのエラー数が定義されたしきい値を超過したときにアラートを発行します。", - "xpack.apm.alertTypes.errorCount.reason": "エラー数が{serviceName}の{threshold}を超えています(現在の値は{measured})", - "xpack.apm.alertTypes.transactionDuration.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- レイテンシしきい値:\\{\\{context.threshold\\}\\}ミリ秒\n- 観察されたレイテンシ:直前の\\{\\{context.interval\\}\\}に\\{\\{context.triggerValue\\}\\}", - "xpack.apm.alertTypes.transactionDuration.description": "サービスの特定のトランザクションタイプのレイテンシが定義されたしきい値を超えたときにアラートを発行します。", - "xpack.apm.alertTypes.transactionDuration.reason": "レイテンシが{serviceName}の{threshold}を超えています(現在の値は{measured})", - "xpack.apm.alertTypes.transactionDurationAnomaly.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- 重要度しきい値:\\{\\{context.threshold\\}\\}%\n- 重要度値:\\{\\{context.triggerValue\\}\\}\n", - "xpack.apm.alertTypes.transactionDurationAnomaly.description": "サービスのレイテンシが異常であるときにアラートを表示します。", - "xpack.apm.alertTypes.transactionDurationAnomaly.reason": "{serviceName}の{severityLevel}異常が検知されました(スコアは{measured})", - "xpack.apm.alertTypes.transactionErrorRate.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- しきい値:\\{\\{context.threshold\\}\\}%\n- トリガーされた値:過去\\{\\{context.interval\\}\\}にエラーの\\{\\{context.triggerValue\\}\\}%", - "xpack.apm.alertTypes.transactionErrorRate.description": "サービスのトランザクションエラー率が定義されたしきい値を超過したときにアラートを発行します。", - "xpack.apm.alertTypes.transactionErrorRate.reason": "トランザクションエラー率が{serviceName}の{threshold}を超えています(現在の値は{measured})", - "xpack.apm.analyzeDataButton.label": "データを分析", - "xpack.apm.analyzeDataButton.tooltip": "実験 - データの分析では、任意のディメンションの結果データを選択してフィルタリングし、パフォーマンスの問題の原因または影響を調査することができます", - "xpack.apm.analyzeDataButtonLabel": "データを分析", - "xpack.apm.analyzeDataButtonLabel.message": "実験 - データの分析では、任意のディメンションの結果データを選択してフィルタリングし、パフォーマンスの問題の原因または影響を調査することができます。", - "xpack.apm.anomaly_detection.error.invalid_license": "異常検知を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。このライセンスがあれば、機械学習を活用して、サービスを監視できます。", - "xpack.apm.anomaly_detection.error.missing_read_privileges": "異常検知ジョブを表示するには、機械学習およびAPMの「読み取り」権限が必要です", - "xpack.apm.anomaly_detection.error.missing_write_privileges": "異常検知ジョブを作成するには、機械学習およびAPMの「書き込み」権限が必要です", - "xpack.apm.anomaly_detection.error.not_available": "機械学習を利用できません", - "xpack.apm.anomaly_detection.error.not_available_in_space": "選択したスペースでは、機械学習を利用できません", - "xpack.apm.anomalyDetection.createJobs.failed.text": "APMサービス環境用に[{environments}]1つ以上の異常検知ジョブを作成しているときに問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.anomalyDetection.createJobs.failed.title": "異常検知ジョブを作成できませんでした", - "xpack.apm.anomalyDetection.createJobs.succeeded.text": "APMサービス環境[{environments}]の異常検知ジョブが正常に作成されました。機械学習がトラフィック異常値の分析を開始するには、少し時間がかかります。", - "xpack.apm.anomalyDetection.createJobs.succeeded.title": "異常検知ジョブが作成されました", - "xpack.apm.anomalyDetectionSetup.linkLabel": "異常検知", - "xpack.apm.anomalyDetectionSetup.notEnabledForEnvironmentText": "「{currentEnvironment}」環境では、まだ異常検知が有効ではありません。クリックすると、セットアップを続行します。", - "xpack.apm.anomalyDetectionSetup.notEnabledText": "異常検知はまだ有効ではありません。クリックすると、セットアップを続行します。", - "xpack.apm.api.fleet.cloud_apm_package_policy.requiredRoleOnCloud": "スーパーユーザーロールが付与されたElastic Cloudユーザーのみが操作できます。", - "xpack.apm.api.fleet.fleetSecurityRequired": "FleetおよびSecurityプラグインが必要です", - "xpack.apm.apmDescription": "アプリケーション内から自動的に詳細なパフォーマンスメトリックやエラーを集めます。", - "xpack.apm.apmSchema.index": "APMサーバースキーマ - インデックス", - "xpack.apm.apmSettings.index": "APM 設定 - インデックス", - "xpack.apm.backendDetail.dependenciesTableColumnBackend": "サービス", - "xpack.apm.backendDetail.dependenciesTableTitle": "アップストリームサービス", - "xpack.apm.backendDetailFailedTransactionRateChartTitle": "失敗したトランザクション率", - "xpack.apm.backendDetailLatencyChartTitle": "レイテンシ", - "xpack.apm.backendDetailThroughputChartTitle": "スループット", - "xpack.apm.backendErrorRateChart.chartTitle": "失敗したトランザクション率", - "xpack.apm.backendErrorRateChart.previousPeriodLabel": "前の期間", - "xpack.apm.backendLatencyChart.chartTitle": "レイテンシ", - "xpack.apm.backendLatencyChart.previousPeriodLabel": "前の期間", - "xpack.apm.backendThroughputChart.chartTitle": "スループット", - "xpack.apm.backendThroughputChart.previousPeriodLabel": "前の期間", - "xpack.apm.chart.annotation.version": "バージョン", - "xpack.apm.chart.cpuSeries.processAverageLabel": "プロセス平均", - "xpack.apm.chart.cpuSeries.processMaxLabel": "プロセス最大", - "xpack.apm.chart.cpuSeries.systemAverageLabel": "システム平均", - "xpack.apm.chart.cpuSeries.systemMaxLabel": "システム最大", - "xpack.apm.chart.error": "データの取得時にエラーが発生しました。再試行してください", - "xpack.apm.chart.memorySeries.systemAverageLabel": "平均", - "xpack.apm.chart.memorySeries.systemMaxLabel": "最高", - "xpack.apm.clearFilters": "フィルターを消去", - "xpack.apm.compositeSpanCallsLabel": "、{count}件の呼び出し、平均{duration}", - "xpack.apm.compositeSpanDurationLabel": "平均時間", - "xpack.apm.correlations.correlationsTable.excludeDescription": "値を除外", - "xpack.apm.correlations.correlationsTable.excludeLabel": "除外", - "xpack.apm.correlations.correlationsTable.filterDescription": "値でフィルタリング", - "xpack.apm.correlations.correlationsTable.filterLabel": "フィルター", - "xpack.apm.correlations.correlationsTable.loadingText": "読み込み中", - "xpack.apm.correlations.correlationsTable.noDataText": "データなし", - "xpack.apm.correlations.failedTransactions.correlationsTable.fieldNameLabel": "フィールド名", - "xpack.apm.correlations.failedTransactions.correlationsTable.fieldValueLabel": "フィールド値", - "xpack.apm.correlations.failedTransactions.correlationsTable.impactLabel": "インパクト", - "xpack.apm.correlations.failedTransactions.correlationsTable.pValueLabel": "スコア", - "xpack.apm.correlations.failedTransactions.errorTitle": "失敗したトランザクションで相関関係の実行中にエラーが発生しました", - "xpack.apm.correlations.failedTransactions.highImpactText": "高", - "xpack.apm.correlations.failedTransactions.lowImpactText": "低", - "xpack.apm.correlations.failedTransactions.mediumImpactText": "中", - "xpack.apm.correlations.failedTransactions.panelTitle": "失敗したトランザクション", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.actionsLabel": "フィルター", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationColumnDescription": "属性の相関関係スコア[0-1]。スコアが大きいほど、属性の遅延が大きくなります。", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationLabel": "相関関係", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.excludeDescription": "値を除外", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.excludeLabel": "除外", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.fieldNameLabel": "フィールド名", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.fieldValueLabel": "フィールド値", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.filterDescription": "値でフィルタリング", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.filterLabel": "フィルター", - "xpack.apm.correlations.latencyCorrelations.errorTitle": "相関関係の取得中にエラーが発生しました", - "xpack.apm.correlations.latencyCorrelations.panelTitle": "レイテンシ分布", - "xpack.apm.correlations.latencyCorrelations.tableTitle": "相関関係", - "xpack.apm.correlations.latencyPopoverBasicExplanation": "相関関係により、トランザクション応答時間の増加や遅延の原因となっている属性を検出できます。", - "xpack.apm.correlations.latencyPopoverChartExplanation": "遅延分布グラフは、サービスのトランザクションの全体的な遅延を可視化します。表の属性にカーソルを置くと、遅延の分布がグラフに追加されます。", - "xpack.apm.correlations.latencyPopoverFilterExplanation": "フィルターを追加または削除して、APMアプリでクエリに影響を及ぼすこともできます。", - "xpack.apm.correlations.latencyPopoverPerformanceExplanation": "この分析は多数の属性に対して統計検索を実行します。広い時間範囲やトランザクションスループットが高いサービスでは、時間がかかる場合があります。パフォーマンスを改善するには、時間範囲を絞り込みます。", - "xpack.apm.correlations.latencyPopoverTableExplanation": "この表は0~1の相関係数で並べ替えられます。相関値が高い属性は、遅延が長いトランザクションの原因である可能性が高くなります。", - "xpack.apm.correlations.latencyPopoverTitle": "遅延の相関関係", - "xpack.apm.csm.breakdownFilter.browser": "ブラウザー", - "xpack.apm.csm.breakdownFilter.device": "デバイス", - "xpack.apm.csm.breakdownFilter.location": "場所", - "xpack.apm.csm.breakDownFilter.noBreakdown": "内訳なし", - "xpack.apm.csm.breakdownFilter.os": "OS", - "xpack.apm.csm.pageViews.analyze": "分析", - "xpack.apm.customLink.buttom.create": "カスタムリンクを作成", - "xpack.apm.customLink.buttom.create.title": "作成", - "xpack.apm.customLink.buttom.manage": "カスタムリンクを管理", - "xpack.apm.customLink.empty": "カスタムリンクが見つかりません。独自のカスタムリンク、たとえば特定のダッシュボードまたは外部リンクへのリンクをセットアップします。", - "xpack.apm.dependenciesTable.columnErrorRate": "失敗したトランザクション率", - "xpack.apm.dependenciesTable.columnImpact": "インパクト", - "xpack.apm.dependenciesTable.columnLatency": "レイテンシ(平均)", - "xpack.apm.dependenciesTable.columnThroughput": "スループット", - "xpack.apm.dependenciesTable.serviceMapLinkText": "サービスマップを表示", - "xpack.apm.emptyMessage.noDataFoundDescription": "別の時間範囲を試すか検索フィルターをリセットしてください。", - "xpack.apm.emptyMessage.noDataFoundLabel": "データが見つかりません。", - "xpack.apm.error.prompt.body": "詳細はブラウザの開発者コンソールをご確認ください。", - "xpack.apm.error.prompt.title": "申し訳ございませんが、エラーが発生しました :(", - "xpack.apm.errorCountAlert.name": "エラー数しきい値", - "xpack.apm.errorCountAlertTrigger.errors": " エラー", - "xpack.apm.errorGroupDetails.culpritLabel": "原因", - "xpack.apm.errorGroupDetails.errorGroupTitle": "エラーグループ {errorGroupId}", - "xpack.apm.errorGroupDetails.errorOccurrenceTitle": "エラーのオカレンス", - "xpack.apm.errorGroupDetails.exceptionMessageLabel": "例外メッセージ", - "xpack.apm.errorGroupDetails.logMessageLabel": "ログメッセージ", - "xpack.apm.errorGroupDetails.occurrencesChartLabel": "オカレンス", - "xpack.apm.errorGroupDetails.relatedTransactionSample": "関連トランザクションサンプル", - "xpack.apm.errorGroupDetails.unhandledLabel": "未対応", - "xpack.apm.errorRate.chart.errorRate": "失敗したトランザクション率(平均)", - "xpack.apm.errorRate.chart.errorRate.previousPeriodLabel": "前の期間", - "xpack.apm.errorsTable.errorMessageAndCulpritColumnLabel": "エラーメッセージと原因", - "xpack.apm.errorsTable.groupIdColumnDescription": "スタックトレースのハッシュ。動的パラメータのため、エラーメッセージが異なる場合でも、類似したエラーをグループ化します。", - "xpack.apm.errorsTable.groupIdColumnLabel": "グループ ID", - "xpack.apm.errorsTable.latestOccurrenceColumnLabel": "最近のオカレンス", - "xpack.apm.errorsTable.noErrorsLabel": "エラーが見つかりませんでした", - "xpack.apm.errorsTable.occurrencesColumnLabel": "オカレンス", - "xpack.apm.errorsTable.typeColumnLabel": "型", - "xpack.apm.errorsTable.unhandledLabel": "未対応", - "xpack.apm.failedTransactionsCorrelations.licenseCheckText": "失敗したトランザクションの相関関係機能を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。", - "xpack.apm.featureRegistry.apmFeatureName": "APMおよびユーザーエクスペリエンス", - "xpack.apm.feedbackMenu.appName": "APM", - "xpack.apm.fetcher.error.status": "エラー", - "xpack.apm.fetcher.error.title": "リソースの取得中にエラーが発生しました", - "xpack.apm.fetcher.error.url": "URL", - "xpack.apm.filter.environment.allLabel": "すべて", - "xpack.apm.filter.environment.label": "環境", - "xpack.apm.filter.environment.notDefinedLabel": "未定義", - "xpack.apm.filter.environment.selectEnvironmentLabel": "環境を選択", - "xpack.apm.fleet_integration.settings.advancedOptionsLavel": "高度なオプション", - "xpack.apm.fleet_integration.settings.apm.capturePersonalDataDescription": "IPやユーザーエージェントなどの個人データを取り込みます", - "xpack.apm.fleet_integration.settings.apm.capturePersonalDataTitle": "個人データを取り込む", - "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentDescription": "サービス環境が定義されていないイベントで記録するデフォルトのサービス環境。", - "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentLabel": "デフォルトのサービス環境", - "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentTitle": "サービス構成", - "xpack.apm.fleet_integration.settings.apm.expvarEnabledDescription": "/debug/varsの下に公開されます", - "xpack.apm.fleet_integration.settings.apm.expvarEnabledTitle": "APM Server Golang expvarサポートを有効にする", - "xpack.apm.fleet_integration.settings.apm.hostLabel": "ホスト", - "xpack.apm.fleet_integration.settings.apm.hostTitle": "サーバー構成", - "xpack.apm.fleet_integration.settings.apm.idleTimeoutLabel": "基本接続が終了するまでのアイドル時間", - "xpack.apm.fleet_integration.settings.apm.maxConnectionsLabel": "許可された同時接続数", - "xpack.apm.fleet_integration.settings.apm.maxEventBytesLabel": "イベントごとの最大サイズ(バイト)", - "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesDescription": "リクエストヘッダーサイズおよびタイミング構成の上限を設定します。", - "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesLabel": "リクエストヘッダーの最大サイズ(バイト)", - "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesTitle": "上限", - "xpack.apm.fleet_integration.settings.apm.readTimeoutLabel": "リクエスト全体を読み取る最大期間", - "xpack.apm.fleet_integration.settings.apm.responseHeadersHelpText": "セキュリティポリシー遵守目的で使用できます。", - "xpack.apm.fleet_integration.settings.apm.responseHeadersLabel": "HTTP応答に追加されたカスタムHTTPヘッダー", - "xpack.apm.fleet_integration.settings.apm.responseHeadersTitle": "カスタムヘッダー", - "xpack.apm.fleet_integration.settings.apm.settings.subtitle": "APM統合の設定", - "xpack.apm.fleet_integration.settings.apm.settings.title": "一般", - "xpack.apm.fleet_integration.settings.apm.shutdownTimeoutLabel": "シャットダウン時にリリースを解放する前の最大時間", - "xpack.apm.fleet_integration.settings.apm.urlLabel": "URL", - "xpack.apm.fleet_integration.settings.apm.writeTimeoutLabel": "応答を書き込む最大時間", - "xpack.apm.fleet_integration.settings.apmAgent.description": "{title}アプリケーションの計測を構成します。", - "xpack.apm.fleet_integration.settings.disabledLabel": "無効", - "xpack.apm.fleet_integration.settings.enabledLabel": "有効", - "xpack.apm.fleet_integration.settings.optionalLabel": "オプション", - "xpack.apm.fleet_integration.settings.requiredFieldLabel": "必須フィールド", - "xpack.apm.fleet_integration.settings.requiredLabel": "必須", - "xpack.apm.fleet_integration.settings.rum.enableRumDescription": "リアルユーザー監視(RUM)を有効にする", - "xpack.apm.fleet_integration.settings.rum.enableRumTitle": "RUMを有効にする", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderDescription": "エージェントの認証を構成", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderHelpText": "ユーザーエージェントが送信する許可された元のヘッダー。", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderLabel": "許可された元のヘッダー", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderTitle": "カスタムヘッダー", - "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsHelpText": "「Content-Type」、「Content-Encoding」、「Accept」のほかにAccess-Control-Allow-Headersがサポートされています。", - "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsLabel": "Access-Control-Allow-Headers", - "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternHelpText": "スタックトレースフレームのfile_nameおよびabs_pathをこのregexpと照合し、ライブラリフレームを特定します。", - "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternLabel": "ライブラリフレームパターン", - "xpack.apm.fleet_integration.settings.rum.rumResponseHeadersHelpText": "セキュリティポリシー遵守などの目的でRUM応答に追加されます。", - "xpack.apm.fleet_integration.settings.rum.rumResponseHeadersLabel": "カスタムHTTP応答ヘッダー", - "xpack.apm.fleet_integration.settings.rum.settings.subtitle": "RUM JSエージェントの構成を管理します。", - "xpack.apm.fleet_integration.settings.rum.settings.title": "リアルユーザー監視", - "xpack.apm.fleet_integration.settings.selectOrCreateOptions": "オプションを選択または作成", - "xpack.apm.fleet_integration.settings.tls.settings.subtitle": "TLS構成の設定。", - "xpack.apm.fleet_integration.settings.tls.settings.title": "TLS設定", - "xpack.apm.fleet_integration.settings.tls.tlsCertificateLabel": "サーバー証明書へのファイルパス。", - "xpack.apm.fleet_integration.settings.tls.tlsCertificateTitle": "TLS証明書", - "xpack.apm.fleet_integration.settings.tls.tlsCipherSuitesHelpText": "TLS 1.3では構成できません。", - "xpack.apm.fleet_integration.settings.tls.tlsCipherSuitesLabel": "TLS接続の暗号化スイート", - "xpack.apm.fleet_integration.settings.tls.tlsCurveTypesLabel": "ECDHEに基づく暗号化スイートの曲線タイプ", - "xpack.apm.fleet_integration.settings.tls.tlsEnabledTitle": "TLS を有効にする", - "xpack.apm.fleet_integration.settings.tls.tlsKeyLabel": "サーバー証明書鍵へのファイルパス", - "xpack.apm.fleet_integration.settings.tls.tlsSupportedProtocolsLabel": "サポートされているプロトコルバージョン", - "xpack.apm.fleetIntegration.assets.description": "APMでアプリケーショントレースとサービスマップを表示", - "xpack.apm.fleetIntegration.assets.name": "サービス", - "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentButtonText": "APMエージェントのインストール", - "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentDescription": "エージェントの起動後、ホストでAPMエージェントをインストールし、アプリケーションとサービスからデータを収集できます。", - "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentTitle": "APMエージェントのインストール", - "xpack.apm.formatters.hoursTimeUnitLabel": "h", - "xpack.apm.formatters.microsTimeUnitLabel": "μs", - "xpack.apm.formatters.millisTimeUnitLabel": "ms", - "xpack.apm.formatters.minutesTimeUnitLabel": "分", - "xpack.apm.formatters.secondsTimeUnitLabel": "s", - "xpack.apm.header.badge.readOnly.text": "読み取り専用", - "xpack.apm.header.badge.readOnly.tooltip": "を保存できませんでした", - "xpack.apm.helpMenu.upgradeAssistantLink": "アップグレードアシスタント", - "xpack.apm.helpPopover.ariaLabel": "ヘルプ", - "xpack.apm.home.alertsMenu.alerts": "アラートとルール", - "xpack.apm.home.alertsMenu.createAnomalyAlert": "異常ルールを作成", - "xpack.apm.home.alertsMenu.createThresholdAlert": "しきい値ルールを作成", - "xpack.apm.home.alertsMenu.errorCount": "エラー数", - "xpack.apm.home.alertsMenu.transactionDuration": "レイテンシ", - "xpack.apm.home.alertsMenu.transactionErrorRate": "失敗したトランザクション率", - "xpack.apm.home.alertsMenu.viewActiveAlerts": "ルールの管理", - "xpack.apm.home.serviceLogsTabLabel": "ログ", - "xpack.apm.home.serviceMapTabLabel": "サービスマップ", - "xpack.apm.instancesLatencyDistributionChartLegend": "インスタンス", - "xpack.apm.instancesLatencyDistributionChartLegend.previousPeriod": "前の期間", - "xpack.apm.instancesLatencyDistributionChartTitle": "インスタンスのレイテンシ分布", - "xpack.apm.instancesLatencyDistributionChartTooltipClickToFilterDescription": "クリックすると、インスタンスでフィルタリングします", - "xpack.apm.instancesLatencyDistributionChartTooltipLatencyLabel": "レイテンシ", - "xpack.apm.instancesLatencyDistributionChartTooltipThroughputLabel": "スループット", - "xpack.apm.invalidLicense.licenseManagementLink": "ライセンスを更新", - "xpack.apm.invalidLicense.message": "現在ご使用のライセンスが期限切れか有効でなくなったため、APM UI を利用できません。", - "xpack.apm.invalidLicense.title": "無効なライセンス", - "xpack.apm.jvmsTable.cpuColumnLabel": "CPU 平均", - "xpack.apm.jvmsTable.explainServiceNodeNameMissing": "これらのメトリックが所属する JVM を特定できませんでした。7.5 よりも古い APM Server を実行していることが原因である可能性が高いです。この問題は APM Server 7.5 以降にアップグレードすることで解決されます。", - "xpack.apm.jvmsTable.heapMemoryColumnLabel": "ヒープ領域の平均", - "xpack.apm.jvmsTable.nameColumnLabel": "名前", - "xpack.apm.jvmsTable.nameExplanation": "JVM 名はデフォルトでコンピューター ID(該当する場合)またはホスト名ですが、エージェントの「'service_node_name」で手動で構成することもできます。", - "xpack.apm.jvmsTable.noJvmsLabel": "JVM が見つかりませんでした", - "xpack.apm.jvmsTable.nonHeapMemoryColumnLabel": "非ヒープ領域の平均", - "xpack.apm.jvmsTable.threadCountColumnLabel": "最大スレッド数", - "xpack.apm.keyValueFilterList.actionFilterLabel": "値でフィルタリング", - "xpack.apm.latencyCorrelations.licenseCheckText": "遅延の相関関係を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。使用すると、パフォーマンスの低下に関連しているフィールドを検出できます。", - "xpack.apm.license.betaBadge": "ベータ", - "xpack.apm.license.betaTooltipMessage": "現在、この機能はベータです。不具合を見つけた場合やご意見がある場合、サポートに問い合わせるか、またはディスカッションフォーラムにご報告ください。", - "xpack.apm.license.button": "トライアルを開始", - "xpack.apm.license.title": "無料の 30 日トライアルを開始", - "xpack.apm.localFilters.titles.browser": "ブラウザー", - "xpack.apm.localFilters.titles.device": "デバイス", - "xpack.apm.localFilters.titles.location": "場所", - "xpack.apm.localFilters.titles.os": "OS", - "xpack.apm.localFilters.titles.serviceName": "サービス名", - "xpack.apm.localFilters.titles.transactionUrl": "URL", - "xpack.apm.localFiltersTitle": "フィルター", - "xpack.apm.metrics.transactionChart.machineLearningLabel": "機械学習:", - "xpack.apm.metrics.transactionChart.machineLearningTooltip": "ストリームには、平均レイテンシの想定境界が表示されます。赤色の垂直の注釈は、異常スコアが75以上の異常値を示します。", - "xpack.apm.metrics.transactionChart.machineLearningTooltip.withKuery": "フィルタリングで検索バーを使用しているときには、機械学習結果が表示されません", - "xpack.apm.metrics.transactionChart.viewJob": "ジョブを表示", - "xpack.apm.navigation.serviceMapTitle": "サービスマップ", - "xpack.apm.navigation.servicesTitle": "サービス", - "xpack.apm.navigation.tracesTitle": "トレース", - "xpack.apm.notAvailableLabel": "N/A", - "xpack.apm.profiling.collapseSimilarFrames": "類似した項目を折りたたむ", - "xpack.apm.profiling.highlightFrames": "検索", - "xpack.apm.profiling.table.name": "名前", - "xpack.apm.profiling.table.value": "自己", - "xpack.apm.propertiesTable.agentFeature.noDataAvailableLabel": "利用可能なデータがありません", - "xpack.apm.propertiesTable.agentFeature.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。", - "xpack.apm.propertiesTable.tabs.exceptionStacktraceLabel": "例外のスタックトレース", - "xpack.apm.propertiesTable.tabs.logs.serviceName": "サービス名", - "xpack.apm.propertiesTable.tabs.logsLabel": "ログ", - "xpack.apm.propertiesTable.tabs.logStacktraceLabel": "スタックトレース", - "xpack.apm.propertiesTable.tabs.metadataLabel": "メタデータ", - "xpack.apm.propertiesTable.tabs.timelineLabel": "Timeline", - "xpack.apm.rum.coreVitals.dataUndefined": "N/A", - "xpack.apm.rum.coreVitals.fcp": "初回コンテンツの描画", - "xpack.apm.rum.coreVitals.fcpTooltip": "初回コンテンツの描画(FCP)は初期のレンダリングに集中し、ページの読み込みが開始してから、ページのコンテンツのいずれかの部分が画面に表示されるときまでの時間を測定します。", - "xpack.apm.rum.coreVitals.tbt": "合計ブロック時間", - "xpack.apm.rum.coreVitals.tbtTooltip": "合計ブロック時間(TBT)は、初回コンテンツの描画からトランザクションが完了したときまでに発生する、各長いタスクのブロック時間(50 ミリ秒超)の合計です。", - "xpack.apm.rum.dashboard.backend": "バックエンド", - "xpack.apm.rum.dashboard.dataMissing": "N/A", - "xpack.apm.rum.dashboard.frontend": "フロントエンド", - "xpack.apm.rum.dashboard.impactfulMetrics.highTrafficPages": "高トラフィックページ", - "xpack.apm.rum.dashboard.impactfulMetrics.jsErrors": "JavaScript エラー", - "xpack.apm.rum.dashboard.overall.label": "全体", - "xpack.apm.rum.dashboard.pageLoad.label": "ページの読み込み", - "xpack.apm.rum.dashboard.pageLoadDistribution.label": "ページ読み込み分布", - "xpack.apm.rum.dashboard.pageLoadDuration.label": "ページ読み込み時間", - "xpack.apm.rum.dashboard.pageLoadTime.label": "ページ読み込み時間(秒)", - "xpack.apm.rum.dashboard.pageLoadTimes.label": "ページ読み込み時間", - "xpack.apm.rum.dashboard.pagesLoaded.label": "ページが読み込まれました", - "xpack.apm.rum.dashboard.pageViews": "合計ページビュー", - "xpack.apm.rum.dashboard.resetZoom.label": "ズームをリセット", - "xpack.apm.rum.dashboard.tooltips.backEnd": "バックエンド時間は、最初の 1 バイトを受信するまでの時間(TTFB)です。これは、要求が実行された後、最初の応答パケットが受信された時点です。", - "xpack.apm.rum.dashboard.tooltips.frontEnd": "フロントエンド時間は、合計ページ読み込み時間からバックエンド時間を減算した時間です。", - "xpack.apm.rum.dashboard.tooltips.totalPageLoad": "合計はすべてのページ読み込み時間です。", - "xpack.apm.rum.dashboard.totalPageLoad": "合計", - "xpack.apm.rum.filterGroup.breakdown": "内訳", - "xpack.apm.rum.filterGroup.coreWebVitals": "コアWebバイタル", - "xpack.apm.rum.filterGroup.seconds": "秒", - "xpack.apm.rum.filterGroup.selectBreakdown": "内訳を選択", - "xpack.apm.rum.jsErrors.errorMessage": "エラーメッセージ", - "xpack.apm.rum.jsErrors.errorRate": "エラー率", - "xpack.apm.rum.jsErrors.impactedPageLoads": "影響を受けるページ読み込み数", - "xpack.apm.rum.jsErrors.totalErrors": "合計エラー数", - "xpack.apm.rum.uxMetrics.longestLongTasks": "最長タスク時間", - "xpack.apm.rum.uxMetrics.longestLongTasksTooltip": "最も長いタスクの時間。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", - "xpack.apm.rum.uxMetrics.noOfLongTasks": "時間がかかるタスク数", - "xpack.apm.rum.uxMetrics.noOfLongTasksTooltip": "長いタスクの数。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", - "xpack.apm.rum.uxMetrics.sumLongTasks": "時間がかかるタスクの合計時間", - "xpack.apm.rum.uxMetrics.sumLongTasksTooltip": "長いタスクの合計時間。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", - "xpack.apm.rum.visitorBreakdown": "アクセスユーザー内訳", - "xpack.apm.rum.visitorBreakdown.browser": "ブラウザー", - "xpack.apm.rum.visitorBreakdown.operatingSystem": "オペレーティングシステム", - "xpack.apm.rum.visitorBreakdownMap.avgPageLoadDuration": "平均ページ読み込み時間", - "xpack.apm.rum.visitorBreakdownMap.pageLoadDurationByRegion": "地域別ページ読み込み時間(平均)", - "xpack.apm.searchInput.filter": "フィルター...", - "xpack.apm.selectPlaceholder": "オプションを選択:", - "xpack.apm.serviceDependencies.breakdownChartTitle": "依存関係にかかった時間", - "xpack.apm.serviceDetails.dependenciesTabLabel": "依存関係", - "xpack.apm.serviceDetails.errorsTabLabel": "エラー", - "xpack.apm.serviceDetails.metrics.cpuUsageChartTitle": "CPU 使用状況", - "xpack.apm.serviceDetails.metrics.errorOccurrencesChart.title": "エラーのオカレンス", - "xpack.apm.serviceDetails.metrics.errorsList.title": "エラー", - "xpack.apm.serviceDetails.metrics.memoryUsageChartTitle": "システムメモリー使用状況", - "xpack.apm.serviceDetails.metricsTabLabel": "メトリック", - "xpack.apm.serviceDetails.nodesTabLabel": "JVM", - "xpack.apm.serviceDetails.overviewTabLabel": "概要", - "xpack.apm.serviceDetails.profilingTabExperimentalDescription": "プロファイリングは実験的機能であり、内部利用専用です。", - "xpack.apm.serviceDetails.profilingTabExperimentalLabel": "実験的", - "xpack.apm.serviceDetails.profilingTabLabel": "プロファイリング", - "xpack.apm.serviceDetails.transactionsTabLabel": "トランザクション", - "xpack.apm.serviceHealthStatus.critical": "重大", - "xpack.apm.serviceHealthStatus.healthy": "正常", - "xpack.apm.serviceHealthStatus.unknown": "不明", - "xpack.apm.serviceHealthStatus.warning": "警告", - "xpack.apm.serviceIcons.cloud": "クラウド", - "xpack.apm.serviceIcons.container": "コンテナー", - "xpack.apm.serviceIcons.service": "サービス", - "xpack.apm.serviceIcons.serviceDetails.cloud.availabilityZoneLabel": "{zones, plural, =other {可用性ゾーン}} ", - "xpack.apm.serviceIcons.serviceDetails.cloud.machineTypesLabel": "{machineTypes, plural, =other {コンピュータータイプ}} ", - "xpack.apm.serviceIcons.serviceDetails.cloud.projectIdLabel": "プロジェクト ID", - "xpack.apm.serviceIcons.serviceDetails.cloud.providerLabel": "クラウドプロバイダー", - "xpack.apm.serviceIcons.serviceDetails.container.containerizedLabel": "コンテナー化", - "xpack.apm.serviceIcons.serviceDetails.container.noLabel": "いいえ", - "xpack.apm.serviceIcons.serviceDetails.container.orchestrationLabel": "オーケストレーション", - "xpack.apm.serviceIcons.serviceDetails.container.osLabel": "OS", - "xpack.apm.serviceIcons.serviceDetails.container.totalNumberInstancesLabel": "インスタンスの合計数", - "xpack.apm.serviceIcons.serviceDetails.container.yesLabel": "はい", - "xpack.apm.serviceIcons.serviceDetails.service.agentLabel": "エージェント名・バージョン", - "xpack.apm.serviceIcons.serviceDetails.service.frameworkLabel": "フレームワーク名", - "xpack.apm.serviceIcons.serviceDetails.service.runtimeLabel": "ランタイム名・バージョン", - "xpack.apm.serviceIcons.serviceDetails.service.versionLabel": "サービスバージョン", - "xpack.apm.serviceInventory.mlNudgeMessageTitle": "異常検知を有効にして、正常性ステータスインジケーターをサービスに追加します", - "xpack.apm.serviceInventory.toastText": "現在 Elastic Stack 7.0+ を実行中で、以前のバージョン 6.x からの互換性のないデータを検知しました。このデータを APM で表示するには、移行が必要です。詳細 ", - "xpack.apm.serviceInventory.toastTitle": "選択された時間範囲内にレガシーデータが検知されました。", - "xpack.apm.serviceInventory.upgradeAssistantLinkText": "アップグレードアシスタント", - "xpack.apm.serviceLogs.noInfrastructureMessage": "表示するログメッセージがありません。", - "xpack.apm.serviceMap.anomalyDetectionPopoverDisabled": "APM 設定で異常検知を有効にすると、サービス正常性インジケーターが表示されます。", - "xpack.apm.serviceMap.anomalyDetectionPopoverLink": "異常を表示", - "xpack.apm.serviceMap.anomalyDetectionPopoverNoData": "選択した時間範囲で、異常スコアを検出できませんでした。異常エクスプローラーで詳細を確認してください。", - "xpack.apm.serviceMap.anomalyDetectionPopoverScoreMetric": "スコア(最大)", - "xpack.apm.serviceMap.anomalyDetectionPopoverTitle": "異常検知", - "xpack.apm.serviceMap.anomalyDetectionPopoverTooltip": "サービス正常性インジケーターは、機械学習の異常検知に基づいています。", - "xpack.apm.serviceMap.avgCpuUsagePopoverStat": "CPU使用状況(平均)", - "xpack.apm.serviceMap.avgMemoryUsagePopoverStat": "メモリー使用状況(平均)", - "xpack.apm.serviceMap.avgReqPerMinutePopoverMetric": "スループット(平均)", - "xpack.apm.serviceMap.avgTransDurationPopoverStat": "レイテンシ(平均)", - "xpack.apm.serviceMap.center": "中央", - "xpack.apm.serviceMap.download": "ダウンロード", - "xpack.apm.serviceMap.emptyBanner.docsLink": "詳細はドキュメントをご覧ください", - "xpack.apm.serviceMap.emptyBanner.message": "接続されているサービスや外部リクエストを検出できる場合、システムはそれらをマップします。最新版の APM エージェントが動作していることを確認してください。", - "xpack.apm.serviceMap.emptyBanner.title": "単一のサービスしかないようです。", - "xpack.apm.serviceMap.errorRatePopoverStat": "失敗したトランザクション率(平均)", - "xpack.apm.serviceMap.focusMapButtonText": "焦点マップ", - "xpack.apm.serviceMap.invalidLicenseMessage": "サービスマップを利用するには、Elastic Platinum ライセンスが必要です。これにより、APM データとともにアプリケーションスタックすべてを可視化することができるようになります。", - "xpack.apm.serviceMap.noServicesPromptDescription": "現在選択されている時間範囲と環境内では、マッピングするサービスが見つかりません。別の範囲を試すか、選択した環境を確認してください。サービスがない場合は、セットアップ手順に従って開始してください。", - "xpack.apm.serviceMap.noServicesPromptTitle": "サービスが利用できません", - "xpack.apm.serviceMap.popover.noDataText": "選択した環境のデータがありません。別の環境に切り替えてください。", - "xpack.apm.serviceMap.resourceCountLabel": "{count}個のリソース", - "xpack.apm.serviceMap.serviceDetailsButtonText": "サービス詳細", - "xpack.apm.serviceMap.subtypePopoverStat": "サブタイプ", - "xpack.apm.serviceMap.timeoutPrompt.docsLink": "APM 設定の詳細については、ドキュメントを参照してください", - "xpack.apm.serviceMap.timeoutPromptDescription": "サービスマップのデータの取得中にタイムアウトしました。時間範囲を狭めて範囲を制限するか、小さい値で構成設定「{configName}」を使用してください。", - "xpack.apm.serviceMap.timeoutPromptTitle": "サービスマップタイムアウト", - "xpack.apm.serviceMap.typePopoverStat": "型", - "xpack.apm.serviceMap.viewFullMap": "サービスの全体マップを表示", - "xpack.apm.serviceMap.zoomIn": "ズームイン", - "xpack.apm.serviceMap.zoomOut": "ズームアウト", - "xpack.apm.serviceNodeMetrics.containerId": "コンテナー ID", - "xpack.apm.serviceNodeMetrics.host": "ホスト", - "xpack.apm.serviceNodeMetrics.serviceName": "サービス名", - "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningDocumentationLink": "APM Server のドキュメンテーション", - "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningText": "これらのメトリックが所属する JVM を特定できませんでした。7.5 よりも古い APM Server を実行していることが原因である可能性が高いです。この問題は APM Server 7.5 以降にアップグレードすることで解決されます。アップグレードに関する詳細は、{link} をご覧ください。代わりに Kibana クエリバーを使ってホスト名、コンテナー ID、またはその他フィールドでフィルタリングすることもできます。", - "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningTitle": "JVM を特定できませんでした", - "xpack.apm.serviceNodeNameMissing": "(空)", - "xpack.apm.serviceOveriew.errorsTableOccurrences": "{occurrencesCount} occ.", - "xpack.apm.serviceOverview.dependenciesTableTabLink": "依存関係を表示", - "xpack.apm.serviceOverview.dependenciesTableTitle": "ダウンストリームサービスとバックエンド", - "xpack.apm.serviceOverview.errorsTableColumnLastSeen": "前回の認識", - "xpack.apm.serviceOverview.errorsTableColumnName": "名前", - "xpack.apm.serviceOverview.errorsTableColumnOccurrences": "オカレンス", - "xpack.apm.serviceOverview.errorsTableLinkText": "エラーを表示", - "xpack.apm.serviceOverview.errorsTableTitle": "エラー", - "xpack.apm.serviceOverview.instancesTable.actionMenus.container.subtitle": "このコンテナーのログとインデックスを表示し、さらに詳細を確認できます。", - "xpack.apm.serviceOverview.instancesTable.actionMenus.container.title": "コンテナーの詳細", - "xpack.apm.serviceOverview.instancesTable.actionMenus.containerLogs": "コンテナーログ", - "xpack.apm.serviceOverview.instancesTable.actionMenus.containerMetrics": "コンテナーメトリック", - "xpack.apm.serviceOverview.instancesTable.actionMenus.filterByInstance": "インスタンスで概要をフィルタリング", - "xpack.apm.serviceOverview.instancesTable.actionMenus.metrics": "メトリック", - "xpack.apm.serviceOverview.instancesTable.actionMenus.pod.subtitle": "このポッドのログとメトリックを表示し、さらに詳細を確認できます。", - "xpack.apm.serviceOverview.instancesTable.actionMenus.pod.title": "ポッドの詳細", - "xpack.apm.serviceOverview.instancesTable.actionMenus.podLogs": "ポッドログ", - "xpack.apm.serviceOverview.instancesTable.actionMenus.podMetrics": "ポッドメトリック", - "xpack.apm.serviceOverview.instancesTableColumnCpuUsage": "CPU使用状況(平均)", - "xpack.apm.serviceOverview.instancesTableColumnErrorRate": "失敗したトランザクション率", - "xpack.apm.serviceOverview.instancesTableColumnMemoryUsage": "メモリー使用状況(平均)", - "xpack.apm.serviceOverview.instancesTableColumnNodeName": "ノード名", - "xpack.apm.serviceOverview.instancesTableColumnThroughput": "スループット", - "xpack.apm.serviceOverview.instancesTableTitle": "インスタンス", - "xpack.apm.serviceOverview.instanceTable.details.cloudTitle": "クラウド", - "xpack.apm.serviceOverview.instanceTable.details.containerTitle": "コンテナー", - "xpack.apm.serviceOverview.instanceTable.details.serviceTitle": "サービス", - "xpack.apm.serviceOverview.latencyChartTitle": "レイテンシ", - "xpack.apm.serviceOverview.latencyChartTitle.prepend": "メトリック", - "xpack.apm.serviceOverview.latencyChartTitle.previousPeriodLabel": "前の期間", - "xpack.apm.serviceOverview.latencyColumnAvgLabel": "レイテンシ(平均)", - "xpack.apm.serviceOverview.latencyColumnDefaultLabel": "レイテンシ", - "xpack.apm.serviceOverview.latencyColumnP95Label": "レイテンシ(95 番目)", - "xpack.apm.serviceOverview.latencyColumnP99Label": "レイテンシ(99 番目)", - "xpack.apm.serviceOverview.mlNudgeMessage.content": "APM の異常検知統合で、異常なトランザクションを特定し、アップストリームおよびダウンストリームサービスの正常性を確認します。わずか数分で開始できます。", - "xpack.apm.serviceOverview.mlNudgeMessage.dismissButton": "閉じる", - "xpack.apm.serviceOverview.mlNudgeMessage.learnMoreButton": "使ってみる", - "xpack.apm.serviceOverview.throughtputChart.previousPeriodLabel": "前の期間", - "xpack.apm.serviceOverview.throughtputChartTitle": "スループット", - "xpack.apm.serviceOverview.tpmHelp": "スループットは1分あたりのトランザクション数(tpm)で測定されます", - "xpack.apm.serviceOverview.transactionsTableColumnErrorRate": "失敗したトランザクション率", - "xpack.apm.serviceOverview.transactionsTableColumnImpact": "インパクト", - "xpack.apm.serviceOverview.transactionsTableColumnName": "名前", - "xpack.apm.serviceOverview.transactionsTableColumnThroughput": "スループット", - "xpack.apm.serviceProfiling.valueTypeLabel.allocObjects": "Alloc. objects", - "xpack.apm.serviceProfiling.valueTypeLabel.allocSpace": "Alloc. space", - "xpack.apm.serviceProfiling.valueTypeLabel.cpuTime": "On-CPU", - "xpack.apm.serviceProfiling.valueTypeLabel.inuseObjects": "使用中のオブジェクト", - "xpack.apm.serviceProfiling.valueTypeLabel.inuseSpace": "使用中のスペース", - "xpack.apm.serviceProfiling.valueTypeLabel.samples": "サンプル", - "xpack.apm.serviceProfiling.valueTypeLabel.unknown": "その他", - "xpack.apm.serviceProfiling.valueTypeLabel.wallTime": "Wall", - "xpack.apm.servicesTable.environmentColumnLabel": "環境", - "xpack.apm.servicesTable.healthColumnLabel": "ヘルス", - "xpack.apm.servicesTable.latencyAvgColumnLabel": "レイテンシ(平均)", - "xpack.apm.servicesTable.metricsExplanationLabel": "これらのメトリックは何か。", - "xpack.apm.servicesTable.nameColumnLabel": "名前", - "xpack.apm.servicesTable.notFoundLabel": "サービスが見つかりません", - "xpack.apm.servicesTable.throughputColumnLabel": "スループット", - "xpack.apm.servicesTable.tooltip.metricsExplanation": "サービスメトリックは、トランザクションタイプ「要求」、「ページ読み込み」、または上位の使用可能なトランザクションタイプのいずれかで集計されます。", - "xpack.apm.servicesTable.transactionColumnLabel": "トランザクションタイプ", - "xpack.apm.servicesTable.transactionErrorRate": "失敗したトランザクション率", - "xpack.apm.settings.agentConfig": "エージェントの編集", - "xpack.apm.settings.agentConfig.createConfigButton.tooltip": "エージェント構成を作成する権限がありません", - "xpack.apm.settings.agentConfig.descriptionText": "APMアプリ内からエージェント構成を微調整してください。変更はAPMエージェントに自動的に伝達されるので、再デプロイする必要はありません。", - "xpack.apm.settings.anomaly_detection.legacy_jobs.body": "以前の統合のレガシー機械学習ジョブが見つかりました。これは、APMアプリでは使用されていません。", - "xpack.apm.settings.anomaly_detection.legacy_jobs.button": "ジョブの確認", - "xpack.apm.settings.anomaly_detection.legacy_jobs.title": "レガシーMLジョブはAPMアプリで使用されていません。", - "xpack.apm.settings.anomalyDetection": "異常検知", - "xpack.apm.settings.anomalyDetection.addEnvironments.cancelButtonText": "キャンセル", - "xpack.apm.settings.anomalyDetection.addEnvironments.createJobsButtonText": "ジョブの作成", - "xpack.apm.settings.anomalyDetection.addEnvironments.descriptionText": "異常検知を有効にするサービス環境を選択してください。異常は選択した環境内のすべてのサービスとトランザクションタイプで表面化します。", - "xpack.apm.settings.anomalyDetection.addEnvironments.selectorLabel": "環境", - "xpack.apm.settings.anomalyDetection.addEnvironments.selectorPlaceholder": "環境を選択または追加", - "xpack.apm.settings.anomalyDetection.addEnvironments.titleText": "環境を選択", - "xpack.apm.settings.anomalyDetection.jobList.actionColumnLabel": "アクション", - "xpack.apm.settings.anomalyDetection.jobList.addEnvironments": "MLジョブを作成", - "xpack.apm.settings.anomalyDetection.jobList.emptyListText": "異常検知ジョブがありません。", - "xpack.apm.settings.anomalyDetection.jobList.environmentColumnLabel": "環境", - "xpack.apm.settings.anomalyDetection.jobList.environments": "環境", - "xpack.apm.settings.anomalyDetection.jobList.failedFetchText": "異常検知ジョブを取得できません。", - "xpack.apm.settings.anomalyDetection.jobList.mlDescriptionText": "異常検知を新しい環境に追加するには、機械学習ジョブを作成します。既存の機械学習ジョブは、{mlJobsLink}で管理できます。", - "xpack.apm.settings.anomalyDetection.jobList.mlDescriptionText.mlJobsLinkText": "機械学習", - "xpack.apm.settings.anomalyDetection.jobList.mlJobLinkText": "MLでジョブを表示", - "xpack.apm.settings.apmIndices.applyButton": "変更を適用", - "xpack.apm.settings.apmIndices.applyChanges.failed.text": "インデックスの適用時に何か問題が発生しました。エラー:{errorMessage}", - "xpack.apm.settings.apmIndices.applyChanges.failed.title": "インデックスが適用できませんでした。", - "xpack.apm.settings.apmIndices.applyChanges.succeeded.text": "インデックスの変更の適用に成功しました。これらの変更は、APM UIで直ちに反映されます。", - "xpack.apm.settings.apmIndices.applyChanges.succeeded.title": "適用されるインデックス", - "xpack.apm.settings.apmIndices.cancelButton": "キャンセル", - "xpack.apm.settings.apmIndices.description": "APM UI は、APM インデックスをクエリするためにインデックスパターンを使用しています。APM Server がイベントを書き込むインデックス名をカスタマイズした場合、APM UI が機能するにはこれらパターンをアップデートする必要がある場合があります。ここの設定は、 kibana.yml で設定されたものよりも優先します。", - "xpack.apm.settings.apmIndices.errorIndicesLabel": "エラーインデックス", - "xpack.apm.settings.apmIndices.helpText": "上書き {configurationName}: {defaultValue}", - "xpack.apm.settings.apmIndices.metricsIndicesLabel": "メトリックインデックス", - "xpack.apm.settings.apmIndices.noPermissionTooltipLabel": "ユーザーロールには、APMインデックスを変更する権限がありません", - "xpack.apm.settings.apmIndices.onboardingIndicesLabel": "オンボーディングインデックス", - "xpack.apm.settings.apmIndices.sourcemapIndicesLabel": "ソースマップインデックス", - "xpack.apm.settings.apmIndices.spanIndicesLabel": "スパンインデックス", - "xpack.apm.settings.apmIndices.title": "インデックス", - "xpack.apm.settings.apmIndices.transactionIndicesLabel": "トランザクションインデックス", - "xpack.apm.settings.createApmPackagePolicy.errorToast.title": "クラウドエージェントポリシーでAPMパッケージポリシーを作成できません", - "xpack.apm.settings.customizeApp": "アプリをカスタマイズ", - "xpack.apm.settings.customizeUI.customLink": "カスタムリンク", - "xpack.apm.settings.customizeUI.customLink.create.failed": "リンクを保存できませんでした!", - "xpack.apm.settings.customizeUI.customLink.create.failed.message": "リンクを保存するときに問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.settings.customizeUI.customLink.create.successed": "リンクを保存しました。", - "xpack.apm.settings.customizeUI.customLink.createCustomLink": "カスタムリンクを作成", - "xpack.apm.settings.customizeUI.customLink.default.label": "Elastic.co", - "xpack.apm.settings.customizeUI.customLink.default.url": "https://www.elastic.co", - "xpack.apm.settings.customizeUI.customLink.delete": "削除", - "xpack.apm.settings.customizeUI.customLink.delete.failed": "カスタムリンクを削除できませんでした", - "xpack.apm.settings.customizeUI.customLink.delete.successed": "カスタムリンクを削除しました。", - "xpack.apm.settings.customizeUI.customLink.emptyPromptText": "変更しましょう。サービスごとのトランザクションの詳細でアクションコンテキストメニューにカスタムリンクを追加できます。自社のサポートポータルへの役立つリンクを作成するか、新しい不具合レポートを発行します。詳細はドキュメントをご覧ください。", - "xpack.apm.settings.customizeUI.customLink.emptyPromptTitle": "リンクが見つかりません。", - "xpack.apm.settings.customizeUI.customLink.flyout.action.title": "リンク", - "xpack.apm.settings.customizeUI.customLink.flyout.close": "閉じる", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.addAnotherFilter": "別のフィルターを追加", - "xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption": "フィールドを選択してください...", - "xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption.value": "値", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.prepend": "フィールド", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.subtitle": "フィルターオプションを使用すると、特定のサービスについてのみ表示されるようにスコープを設定できます。", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.title": "フィルター", - "xpack.apm.settings.customizeUI.customLink.flyout.label": "リンクは APM アプリ全体にわたるトランザクション詳細のコンテキストで利用できるようになります。作成できるリンクの数は無制限です。トランザクションメタデータのいずれかを使用することで、動的変数を参照して URL を入力できます。さらなる詳細および例がドキュメンテーションに記載されています", - "xpack.apm.settings.customizeUI.customLink.flyout.label.doc": "ドキュメンテーション", - "xpack.apm.settings.customizeUI.customLink.flyout.link.label": "ラベル", - "xpack.apm.settings.customizeUI.customLink.flyout.link.label.helpText": "これはアクションコンテキストメニューに表示されるラベルです。できるだけ短くしてください。", - "xpack.apm.settings.customizeUI.customLink.flyout.link.label.placeholder": "例:サポートチケット", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url": "URL", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url.doc": "詳細はドキュメントをご覧ください。", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url.helpText": "URL にフィールド名変数(例:{sample})を追加すると値を適用できます。", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url.placeholder": "例:https://www.elastic.co/", - "xpack.apm.settings.customizeUI.customLink.flyout.required": "必須", - "xpack.apm.settings.customizeUI.customLink.flyout.save": "保存", - "xpack.apm.settings.customizeUI.customLink.flyout.title": "リンクを作成", - "xpack.apm.settings.customizeUI.customLink.info": "これらのリンクは、トランザクション詳細などによって、アプリの選択した領域にあるアクションコンテキストメニューに表示されます。", - "xpack.apm.settings.customizeUI.customLink.license.text": "カスタムリンクを作成するには、Elastic Gold 以上のライセンスが必要です。適切なライセンスがあれば、カスタムリンクを作成してサービスを分析する際にワークフローを改良できます。", - "xpack.apm.settings.customizeUI.customLink.linkPreview.descrition": "上記のフィルターに基づき、サンプルトランザクションドキュメントの値でリンクをテストしてください。", - "xpack.apm.settings.customizeUI.customLink.noPermissionTooltipLabel": "ユーザーロールには、カスタムリンクを作成する権限がありません", - "xpack.apm.settings.customizeUI.customLink.preview.contextVariable.invalid": "無効な変数が定義されているため、サンプルトランザクションドキュメントが見つかりませんでした。", - "xpack.apm.settings.customizeUI.customLink.preview.contextVariable.noMatch": "{variables} に一致する値がサンプルトランザクションドキュメント内にありませんでした。", - "xpack.apm.settings.customizeUI.customLink.preview.transaction.notFound": "定義されたフィルターに基づき、一致するトランザクションドキュメントが見つかりませんでした。", - "xpack.apm.settings.customizeUI.customLink.previewSectionTitle": "プレビュー", - "xpack.apm.settings.customizeUI.customLink.searchInput.filter": "名前と URL でリンクをフィルタリング...", - "xpack.apm.settings.customizeUI.customLink.table.editButtonDescription": "このカスタムリンクを編集", - "xpack.apm.settings.customizeUI.customLink.table.editButtonLabel": "編集", - "xpack.apm.settings.customizeUI.customLink.table.lastUpdated": "最終更新", - "xpack.apm.settings.customizeUI.customLink.table.name": "名前", - "xpack.apm.settings.customizeUI.customLink.table.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。", - "xpack.apm.settings.customizeUI.customLink.table.url": "URL", - "xpack.apm.settings.indices": "インデックス", - "xpack.apm.settings.schema": "スキーマ", - "xpack.apm.settings.schema.confirm.apmServerSettingsCloudLinkText": "クラウドでAPMサーバー設定に移動", - "xpack.apm.settings.schema.confirm.cancelText": "キャンセル", - "xpack.apm.settings.schema.confirm.checkboxLabel": "データストリームに切り替えることを確認する", - "xpack.apm.settings.schema.confirm.irreversibleWarning.message": "移行中には一時的にAPMデータ収集に影響する可能性があります。移行プロセスは数分で完了します。", - "xpack.apm.settings.schema.confirm.irreversibleWarning.title": "データストリームへの切り替えは元に戻せません。", - "xpack.apm.settings.schema.confirm.switchButtonText": "データストリームに切り替える", - "xpack.apm.settings.schema.confirm.title": "選択内容を確認してください", - "xpack.apm.settings.schema.confirm.unsupportedConfigs.descriptionText": "互換性のあるカスタムapm-server.ymlユーザー設定がFleetサーバー設定に移動されます。削除する前に互換性のない設定について通知されます。", - "xpack.apm.settings.schema.confirm.unsupportedConfigs.title": "次のapm-server.ymlユーザー設定は互換性がないため削除されます", - "xpack.apm.settings.schema.descriptionText.irreversibleEmphasisText": "元に戻せません", - "xpack.apm.settings.schema.descriptionText.superuserEmphasisText": "スーパーユーザー", - "xpack.apm.settings.schema.disabledReason": "データストリームへの切り替えを使用できません: {reasons}", - "xpack.apm.settings.schema.disabledReason.cloudApmMigrationEnabled": "クラウド移行が有効ではありません", - "xpack.apm.settings.schema.disabledReason.hasCloudAgentPolicy": "クラウドエージェントポリシーが存在しません", - "xpack.apm.settings.schema.disabledReason.hasRequiredRole": "ユーザーにはスーパーユーザーロールがありません", - "xpack.apm.settings.schema.migrate.classicIndices.currentSetup": "現在の設定", - "xpack.apm.settings.schema.migrate.classicIndices.description": "現在、データのクラシックAPMインデックスを使用しています。このデータスキーマは廃止予定であり、Elastic Stackバージョン8.0でデータストリームに置換されます。", - "xpack.apm.settings.schema.migrate.classicIndices.title": "クラシックAPMインデックス", - "xpack.apm.settings.schema.migrate.dataStreams.buttonText": "データストリームに切り替える", - "xpack.apm.settings.schema.migrate.dataStreams.description": "今後、新しく取り込まれたデータはすべてデータストリームに格納されます。以前に取り込まれたデータはクラシックAPMインデックスに残ります。APMおよびUXアプリは引き続き両方のインデックスをサポートします。", - "xpack.apm.settings.schema.migrate.dataStreams.title": "データストリーム", - "xpack.apm.settings.schema.migrationInProgressPanelDescription": "古いAPMサーバーインスタンスのシャットダウン中に新しいAPMサーバーを含めるFleetサーバーインスタンスを作成しています。数分以内にデータがもう一度アプリに取り込まれます。", - "xpack.apm.settings.schema.migrationInProgressPanelTitle": "データストリームに切り替え中...", - "xpack.apm.settings.schema.success.description": "APM統合が設定されました。現在導入されているエージェントからデータを受信できます。統合に適用されたポリシーは自由に確認できます。", - "xpack.apm.settings.schema.success.returnText": "あるいは、{serviceInventoryLink}に戻ることができます。", - "xpack.apm.settings.schema.success.returnText.serviceInventoryLink": "サービスインベントリ", - "xpack.apm.settings.schema.success.title": "データストリームが正常に設定されました。", - "xpack.apm.settings.schema.success.viewIntegrationInFleet.buttonText": "FleetでAPM統合を表示", - "xpack.apm.settings.title": "設定", - "xpack.apm.settings.unsupportedConfigs.errorToast.title": "APMサーバー設定を取り込めません", - "xpack.apm.settingsLinkLabel": "設定", - "xpack.apm.setupInstructionsButtonLabel": "セットアップの手順", - "xpack.apm.stacktraceTab.causedByFramesToogleButtonLabel": "作成元", - "xpack.apm.stacktraceTab.localVariablesToogleButtonLabel": "ローカル変数", - "xpack.apm.stacktraceTab.noStacktraceAvailableLabel": "利用可能なスタックトレースがありません。", - "xpack.apm.timeComparison.label": "比較", - "xpack.apm.timeComparison.select.dayBefore": "前の日", - "xpack.apm.timeComparison.select.weekBefore": "前の週", - "xpack.apm.toggleHeight.showLessButtonLabel": "表示する行数を減らす", - "xpack.apm.toggleHeight.showMoreButtonLabel": "表示する行数を増やす", - "xpack.apm.tracesTable.avgResponseTimeColumnLabel": "レイテンシ(平均)", - "xpack.apm.tracesTable.impactColumnDescription": "ご利用のサービスで最も頻繁に使用されていて、最も遅いエンドポイントです。レイテンシとスループットを乗算した結果です", - "xpack.apm.tracesTable.impactColumnLabel": "インパクト", - "xpack.apm.tracesTable.nameColumnLabel": "名前", - "xpack.apm.tracesTable.notFoundLabel": "このクエリのトレースが見つかりません", - "xpack.apm.tracesTable.originatingServiceColumnLabel": "発生元サービス", - "xpack.apm.tracesTable.tracesPerMinuteColumnLabel": "1 分あたりのトレース", - "xpack.apm.transactionActionMenu.actionsButtonLabel": "調査", - "xpack.apm.transactionActionMenu.container.subtitle": "このコンテナーのログとインデックスを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.container.title": "コンテナーの詳細", - "xpack.apm.transactionActionMenu.customLink.section": "カスタムリンク", - "xpack.apm.transactionActionMenu.customLink.showAll": "すべて表示", - "xpack.apm.transactionActionMenu.customLink.showFewer": "簡易表示", - "xpack.apm.transactionActionMenu.customLink.subtitle": "リンクは新しいウィンドウで開きます。", - "xpack.apm.transactionActionMenu.host.subtitle": "ホストログとメトリックを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.host.title": "ホストの詳細", - "xpack.apm.transactionActionMenu.pod.subtitle": "このポッドのログとメトリックを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.pod.title": "ポッドの詳細", - "xpack.apm.transactionActionMenu.showContainerLogsLinkLabel": "コンテナーログ", - "xpack.apm.transactionActionMenu.showContainerMetricsLinkLabel": "コンテナーメトリック", - "xpack.apm.transactionActionMenu.showHostLogsLinkLabel": "ホストログ", - "xpack.apm.transactionActionMenu.showHostMetricsLinkLabel": "ホストメトリック", - "xpack.apm.transactionActionMenu.showPodLogsLinkLabel": "ポッドログ", - "xpack.apm.transactionActionMenu.showPodMetricsLinkLabel": "ポッドメトリック", - "xpack.apm.transactionActionMenu.showTraceLogsLinkLabel": "トレースログ", - "xpack.apm.transactionActionMenu.status.subtitle": "ステータスを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.status.title": "ステータスの詳細", - "xpack.apm.transactionActionMenu.trace.subtitle": "トレースログを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.trace.title": "トレースの詳細", - "xpack.apm.transactionActionMenu.viewInUptime": "ステータス", - "xpack.apm.transactionActionMenu.viewSampleDocumentLinkLabel": "サンプルドキュメントを表示", - "xpack.apm.transactionBreakdown.chartTitle": "スパンタイプ別時間", - "xpack.apm.transactionDetails.clearSelectionAriaLabel": "選択した項目をクリア", - "xpack.apm.transactionDetails.distribution.panelTitle": "レイテンシ分布", - "xpack.apm.transactionDetails.emptySelectionText": "クリックおよびドラッグして範囲を選択", - "xpack.apm.transactionDetails.noTraceParentButtonTooltip": "トレースの親が見つかりませんでした", - "xpack.apm.transactionDetails.percentOfTraceLabelExplanation": "{parentType, select, transaction {トランザクション} trace {トレース} }の割合が100%を超えています。これは、この{childType, select, span {スパン} transaction {トランザクション} }がルートトランザクションよりも時間がかかるためです。", - "xpack.apm.transactionDetails.requestMethodLabel": "リクエストメソッド", - "xpack.apm.transactionDetails.resultLabel": "結果", - "xpack.apm.transactionDetails.serviceLabel": "サービス", - "xpack.apm.transactionDetails.servicesTitle": "サービス", - "xpack.apm.transactionDetails.spanFlyout.backendLabel": "バックエンド", - "xpack.apm.transactionDetails.spanFlyout.compositeExampleWarning": "これは連続した類似したスパンのグループのサンプルドキュメントです", - "xpack.apm.transactionDetails.spanFlyout.databaseStatementTitle": "データベースステートメント", - "xpack.apm.transactionDetails.spanFlyout.nameLabel": "名前", - "xpack.apm.transactionDetails.spanFlyout.spanAction": "アクション", - "xpack.apm.transactionDetails.spanFlyout.spanDetailsTitle": "スパン詳細", - "xpack.apm.transactionDetails.spanFlyout.spanSubtype": "サブタイプ", - "xpack.apm.transactionDetails.spanFlyout.spanType": "型", - "xpack.apm.transactionDetails.spanFlyout.spanType.navigationTimingLabel": "ナビゲーションタイミング", - "xpack.apm.transactionDetails.spanFlyout.stackTraceTabLabel": "スタックトレース", - "xpack.apm.transactionDetails.spanFlyout.viewSpanInDiscoverButtonLabel": "Discover でスパンを表示", - "xpack.apm.transactionDetails.spanTypeLegendTitle": "型", - "xpack.apm.transactionDetails.statusCode": "ステータスコード", - "xpack.apm.transactionDetails.syncBadgeAsync": "非同期", - "xpack.apm.transactionDetails.syncBadgeBlocking": "ブロック", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaDescription": "失敗したトランザクション率はGAではありません。不具合が発生したら報告してください。", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaLabel": "ベータ", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaTitle": "失敗したトランザクション率", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsLabel": "失敗したトランザクションの相関関係", - "xpack.apm.transactionDetails.tabs.latencyLabel": "遅延の相関関係", - "xpack.apm.transactionDetails.tabs.traceSamplesLabel": "トレースのサンプル", - "xpack.apm.transactionDetails.traceNotFound": "選択されたトレースが見つかりません", - "xpack.apm.transactionDetails.traceSampleTitle": "トレースのサンプル", - "xpack.apm.transactionDetails.transactionLabel": "トランザクション", - "xpack.apm.transactionDetails.transFlyout.callout.agentDroppedSpansMessage": "このトランザクションを報告した APM エージェントが、構成に基づき {dropped} 個以上のスパンをドロップしました。", - "xpack.apm.transactionDetails.transFlyout.callout.learnMoreAboutDroppedSpansLinkText": "ドロップされたスパンの詳細。", - "xpack.apm.transactionDetails.transFlyout.transactionDetailsTitle": "トランザクションの詳細", - "xpack.apm.transactionDetails.userAgentAndVersionLabel": "ユーザーエージェントとバージョン", - "xpack.apm.transactionDetails.viewFullTraceButtonLabel": "完全なトレースを表示", - "xpack.apm.transactionDetails.viewingFullTraceButtonTooltip": "現在完全なトレースが表示されています", - "xpack.apm.transactionDistribution.chart.allTransactionsLabel": "すべてのトランザクション", - "xpack.apm.transactionDistribution.chart.currentTransactionMarkerLabel": "現在のサンプル", - "xpack.apm.transactionDistribution.chart.numberOfTransactionsLabel": "# トランザクション", - "xpack.apm.transactionDurationAlert.aggregationType.95th": "95 パーセンタイル", - "xpack.apm.transactionDurationAlert.aggregationType.99th": "99 パーセンタイル", - "xpack.apm.transactionDurationAlert.aggregationType.avg": "平均", - "xpack.apm.transactionDurationAlert.name": "レイテンシしきい値", - "xpack.apm.transactionDurationAlertTrigger.ms": "ms", - "xpack.apm.transactionDurationAlertTrigger.when": "タイミング", - "xpack.apm.transactionDurationAnomalyAlert.name": "レイテンシ異常値", - "xpack.apm.transactionDurationAnomalyAlertTrigger.anomalySeverity": "異常と重要度があります", - "xpack.apm.transactionDurationLabel": "期間", - "xpack.apm.transactionErrorRateAlert.name": "失敗したトランザクション率しきい値", - "xpack.apm.transactionErrorRateAlertTrigger.isAbove": "より大きい", - "xpack.apm.transactionRateLabel": "{displayedValue} tpm", - "xpack.apm.transactions.latency.chart.95thPercentileLabel": "95 パーセンタイル", - "xpack.apm.transactions.latency.chart.99thPercentileLabel": "99 パーセンタイル", - "xpack.apm.transactions.latency.chart.averageLabel": "平均", - "xpack.apm.tutorial.agent_config.choosePolicy.helper": "選択したポリシー構成を下のスニペットに追加します。", - "xpack.apm.tutorial.agent_config.choosePolicyLabel": "ポリシーを選択", - "xpack.apm.tutorial.agent_config.defaultStandaloneConfig": "デフォルトのダッシュボード構成", - "xpack.apm.tutorial.agent_config.fleetPoliciesLabel": "Fleetポリシー", - "xpack.apm.tutorial.agent_config.getStartedWithFleet": "Fleetの基本", - "xpack.apm.tutorial.agent_config.manageFleetPolicies": "Fleetポリシーの管理", - "xpack.apm.tutorial.apmAgents.statusCheck.btnLabel": "エージェントステータスを確認", - "xpack.apm.tutorial.apmAgents.statusCheck.errorMessage": "エージェントからまだデータを受け取っていません", - "xpack.apm.tutorial.apmAgents.statusCheck.successMessage": "1 つまたは複数のエージェントからデータを受け取りました", - "xpack.apm.tutorial.apmAgents.statusCheck.text": "アプリケーションが実行されていてエージェントがデータを送信していることを確認してください。", - "xpack.apm.tutorial.apmAgents.statusCheck.title": "エージェントステータス", - "xpack.apm.tutorial.apmAgents.title": "APM エージェント", - "xpack.apm.tutorial.apmServer.callOut.message": "ご使用の APM Server を 7.0 以上に更新してあることを確認してください。 Kibana の管理セクションにある移行アシスタントで 6.x データを移行することもできます。", - "xpack.apm.tutorial.apmServer.callOut.title": "重要:7.0 以上に更新中", - "xpack.apm.tutorial.apmServer.fleet.apmIntegration.button": "APM統合", - "xpack.apm.tutorial.apmServer.fleet.manageApmIntegration.button": "FleetでAPM統合を管理", - "xpack.apm.tutorial.apmServer.fleet.message": "APMA統合は、APMデータ用にElasticsearchテンプレートとIngest Nodeパイプラインをインストールします。", - "xpack.apm.tutorial.apmServer.statusCheck.btnLabel": "APM Server ステータスを確認", - "xpack.apm.tutorial.apmServer.statusCheck.errorMessage": "APM Server が検出されました。7.0 以上に更新され、動作中であることを確認してください。", - "xpack.apm.tutorial.apmServer.statusCheck.successMessage": "APM Server が正しくセットアップされました", - "xpack.apm.tutorial.apmServer.statusCheck.text": "APM エージェントの導入を開始する前に、APM Server が動作していることを確認してください。", - "xpack.apm.tutorial.apmServer.statusCheck.title": "APM Server ステータス", - "xpack.apm.tutorial.apmServer.title": "APM Server", - "xpack.apm.tutorial.djangoClient.configure.commands.addAgentComment": "インストールされたアプリにエージェントを追加します", - "xpack.apm.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "パフォーマンスメトリックを送信するには、追跡ミドルウェアを追加します。", - "xpack.apm.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", - "xpack.apm.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", - "xpack.apm.tutorial.djangoClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", - "xpack.apm.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", - "xpack.apm.tutorial.djangoClient.configure.textPost": "高度な用途に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.djangoClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", - "xpack.apm.tutorial.djangoClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.djangoClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。", - "xpack.apm.tutorial.djangoClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.dotNetClient.configureAgent.textPost": "エージェントに「IConfiguration」インスタンスが渡されていない場合、(例:非 ASP.NET Core アプリケーションの場合)、エージェントを環境変数で構成することもできます。\n 高度な用途に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.dotNetClient.configureAgent.title": "appsettings.json ファイルの例:", - "xpack.apm.tutorial.dotNetClient.configureApplication.textPost": "「IConfiguration」インスタンスを渡すのは任意であり、これにより、エージェントはこの「IConfiguration」インスタンス(例:「appsettings.json」ファイル)から構成を読み込みます。", - "xpack.apm.tutorial.dotNetClient.configureApplication.textPre": "「Elastic.Apm.NetCoreAll」パッケージの ASP.NET Core の場合、「Startup.cs」ファイル内の「Configure」メソドの「UseElasticApm」メソドを呼び出します。", - "xpack.apm.tutorial.dotNetClient.configureApplication.title": "エージェントをアプリケーションに追加", - "xpack.apm.tutorial.dotNetClient.download.textPre": "[NuGet]({allNuGetPackagesLink}) から.NETアプリケーションにエージェントパッケージを追加してください。用途の異なる複数の NuGet パッケージがあります。\n\nEntity Framework CoreのASP.NET Coreアプリケーションの場合は、[Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink})パッケージをダウンロードしてください。このパッケージは、自動的にすべてのエージェントコンポーネントをアプリケーションに追加します。\n\n 依存性を最低限に抑えたい場合、ASP.NET Coreの監視のみに[Elastic.Apm.AspNetCore]({aspNetCorePackageLink})パッケージ、またはEntity Framework Coreの監視のみに[Elastic.Apm.EfCore]({efCorePackageLink})パッケージを使用することができます。\n\n 手動インストルメンテーションのみにパブリックAgent APIを使用する場合は、[Elastic.Apm]({elasticApmPackageLink})パッケージを使用してください。", - "xpack.apm.tutorial.dotNetClient.download.title": "APM エージェントのダウンロード", - "xpack.apm.tutorial.downloadServer.title": "APM Server をダウンロードして展開します", - "xpack.apm.tutorial.downloadServerRpm": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink})をご覧ください。", - "xpack.apm.tutorial.downloadServerTitle": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink})をご覧ください。", - "xpack.apm.tutorial.editConfig.textPre": "Elastic Stack の X-Pack セキュアバージョンをご使用の場合、「apm-server.yml」構成ファイルで認証情報を指定する必要があります。", - "xpack.apm.tutorial.editConfig.title": "構成を編集する", - "xpack.apm.tutorial.elasticCloud.textPre": "APMサーバーを有効にするには、](https://cloud.elastic.co/deployments/{deploymentId}/edit)Elastic Cloudコンソール[に移動し、デプロイ設定でAPMを有効にします。有効になったら、このページを更新してください。", - "xpack.apm.tutorial.elasticCloudInstructions.title": "APM エージェント", - "xpack.apm.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", - "xpack.apm.tutorial.flaskClient.configure.commands.configureElasticApmComment": "またはアプリケーションの設定で ELASTIC_APM を使用するよう構成します。", - "xpack.apm.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します", - "xpack.apm.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", - "xpack.apm.tutorial.flaskClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", - "xpack.apm.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", - "xpack.apm.tutorial.flaskClient.configure.textPost": "高度な用途に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.flaskClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", - "xpack.apm.tutorial.flaskClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.flaskClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。", - "xpack.apm.tutorial.flaskClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します:", - "xpack.apm.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.goClient.configure.commands.setServiceEnvironment": "サービス環境を設定します", - "xpack.apm.tutorial.goClient.configure.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は # a-z、A-Z、0-9、-、_、スペースです。", - "xpack.apm.tutorial.goClient.configure.commands.usedExecutableNameComment": "ELASTIC_APM_SERVICE_NAME が指定されていない場合、実行ファイルの名前が使用されます。", - "xpack.apm.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", - "xpack.apm.tutorial.goClient.configure.textPost": "高度な構成に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.goClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは実行ファイル名または「ELASTIC_APM_SERVICE_NAME」環境変数に基づいてプログラムで作成されます。", - "xpack.apm.tutorial.goClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.goClient.install.textPre": "Go の APM エージェントパッケージをインストールします。", - "xpack.apm.tutorial.goClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.goClient.instrument.textPost": "Goのソースコードのインストルメンテーションの詳細ガイドは、[ドキュメンテーション]({documentationLink})をご参照ください。", - "xpack.apm.tutorial.goClient.instrument.textPre": "提供されたインストルメンテーションモジュールの 1 つ、またはトレーサー API を直接使用して、Go アプリケーションにインストルメンテーションを設定します。", - "xpack.apm.tutorial.goClient.instrument.title": "アプリケーションのインストルメンテーション", - "xpack.apm.tutorial.introduction": "アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。", - "xpack.apm.tutorial.javaClient.download.textPre": "[Maven Central]({mavenCentralLink})からエージェントジャーをダウンロードします。アプリケーションにエージェントを依存関係として「追加しない」でください。", - "xpack.apm.tutorial.javaClient.download.title": "APM エージェントのダウンロード", - "xpack.apm.tutorial.javaClient.startApplication.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。", - "xpack.apm.tutorial.javaClient.startApplication.textPre": "「-javaagent」フラグを追加し、システムプロパティを使用してエージェントを構成します。\n\n * 任意のサービス名を設定します(使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)\n * カスタム APM Server URL(デフォルト:{customApmServerUrl})を設定します\n * APM Server シークレットトークンを設定します\n * サービス環境を設定します\n * アプリケーションのベースパッケージを設定します", - "xpack.apm.tutorial.javaClient.startApplication.title": "javaagent フラグでアプリケーションを起動", - "xpack.apm.tutorial.jsClient.enableRealUserMonitoring.textPre": "デフォルトでは、APM Server を実行すると RUM サポートは無効になります。RUMサポートを有効にする手順については、[ドキュメンテーション]({documentationLink})をご覧ください。", - "xpack.apm.tutorial.jsClient.enableRealUserMonitoring.title": "APM Server のリアルユーザー監視サポートを有効にする", - "xpack.apm.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "任意のサービス名を設定します(使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)", - "xpack.apm.tutorial.jsClient.installDependency.commands.setServiceEnvironmentComment": "サービス環境を設定します", - "xpack.apm.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "サービスバージョンを設定します(ソースマップ機能に必要)", - "xpack.apm.tutorial.jsClient.installDependency.textPost": "React や Angular などのフレームワーク統合には、カスタム依存関係があります。詳細は[統合ドキュメント]({docLink})をご覧ください。", - "xpack.apm.tutorial.jsClient.installDependency.textPre": "「npm install @elastic/apm-rum --save」でエージェントをアプリケーションへの依存関係としてインストールできます。\n\nその後で以下のようにアプリケーションでエージェントを初期化して構成できます。", - "xpack.apm.tutorial.jsClient.installDependency.title": "エージェントを依存関係としてセットアップ", - "xpack.apm.tutorial.jsClient.scriptTags.textPre": "または、スクリプトタグを使用してエージェントのセットアップと構成ができます。` を追加 - -++++ - -[float] -=== Explore and query your data - You have questions about your data. What pages on your website contain a specific word or phrase? What events were logged most recently? What processes take longer than 500 milliseconds to respond? + +With *Discover*, you can quickly gain insight to your data: search and filter your data, get information +about the structure of the fields, and display your findings in a visualization. +You can also customize and save your searches and place them on a dashboard. + +[role="screenshot"] +image::images/discover.png[A view of the Discover app] + + +[float] +=== Explore and query your data + This tutorial shows you how to use *Discover* to quickly search large amounts of data and understand what’s going on at any given time. @@ -43,9 +33,7 @@ that summarize the contents of the data. At the end of this tutorial, you’ll be ready to start exploring with your own data in *Discover*. - -[float] -=== Prerequisites +*Prerequisites:* - If you don’t already have {kib}, set it up with https://www.elastic.co/cloud/elasticsearch-service/signup?baymax=docs-body&elektra=docs[our free trial]. - You must have data in {es}. This tutorial uses the @@ -64,12 +52,12 @@ Tell {kib} where to find the data you want to explore, and then specify the time . Select the data you want to work with. + -{kib} uses a <> to tell it where to find +{kib} uses a <> to tell it where to find your {es} data. -To view the ecommerce sample data, make sure the index pattern is set to **kibana_sample_data_ecommerce**. +To view the ecommerce sample data, make sure the {data-source} is set to **kibana_sample_data_ecommerce**. + [role="screenshot"] -image::images/discover-index-pattern.png[How to set the index pattern in Discover, width=50%] +image::images/discover-data-view.png[How to set the {data-source} in Discover, width=50%] . Adjust the <> to view data for the *Last 7 days*. + @@ -101,7 +89,7 @@ image:images/find-manufacturer-field.png[Fields list that displays the top five . Click image:images/add-icon.png[Add icon] to toggle the field into the document table. -. Find the `customer_first_name` and `customer_last_name` last name fields and add +. Find the `customer_first_name` and `customer_last_name` fields and add them to your document table. Your table should look similar to this: + [role="screenshot"] @@ -110,22 +98,22 @@ image:images/document-table.png[Document table with fields for manufacturer, cus . To rearrange the table columns, hover the mouse over a column header, and then use the move control. -. To view more of the document table, click *Hide chart*. +. To view more of the document table, click *Chart options > Hide chart*. [float] [[add-field-in-discover]] -=== Add a field to your index pattern +=== Add a field to your {data-source} What happens if you forgot to define an important value as a separate field? Or, what if you want to combine two fields and treat them as one? This is where {ref}/runtime.html[runtime fields] come into play. -You can add a runtime field to your index pattern from inside of **Discover**, +You can add a runtime field to your {data-source} from inside of **Discover**, and then use that field for analysis and visualizations, the same way you do with other fields. -. Click the ellipsis icon (...), and then click *Add field to index pattern*. +. Click the ellipsis icon (...), and then click *Add field to data view*. + [role="screenshot"] -image:images/add-field-to-pattern.png[Dropdown menu located next to index pattern field with item for adding a field to an index pattern, width=50%] +image:images/add-field-to-data-view.png[Dropdown menu located next to {data-source} field with item for adding a field to a {data-source}, width=50%] . In the *Create field* form, enter `hello` for the name. @@ -166,7 +154,7 @@ refer to <>. One of the unique capabilities of **Discover** is the ability to combine free text search with filtering based on structured data. -To search all fields, enter a simple string in the **Search** field. +To search all fields, enter a simple string in the query bar. [role="screenshot"] image:images/discover-search-field.png[Search field in Discover] @@ -236,14 +224,11 @@ You can bookmark this document and share the link. Save your search so you can repeat it later, generate a CSV report, or use it in visualizations, dashboards, and Canvas workpads. Saving a search saves the query text, filters, -and current view of *Discover*—the columns selected in the document table, the sort order, and the index pattern. +and current view of *Discover*—the columns selected in the document table, the sort order, and the {data-source}. . In the toolbar, click **Save**. . Give your search a title, and then click **Save**. -+ -[role="screenshot"] -image:images/discover-save-saved-search.png[Save saved search in Discover, width=50%] [float] === Visualize your findings From 09a1a74069ddd5ed8545ae3d77fdbc5bb1819131 Mon Sep 17 00:00:00 2001 From: Stacey Gammon Date: Fri, 19 Nov 2021 12:37:56 -0500 Subject: [PATCH 082/114] update api docs (#119198) --- api_docs/actions.json | 2 +- api_docs/alerting.json | 50 +- api_docs/alerting.mdx | 2 +- api_docs/apm.json | 350 +- api_docs/apm.mdx | 2 +- api_docs/banners.json | 4 +- api_docs/cases.json | 80 +- api_docs/cases.mdx | 2 +- api_docs/charts.json | 282 + api_docs/charts.mdx | 2 +- api_docs/core.json | 301 +- api_docs/core.mdx | 2 +- api_docs/core_application.json | 44 +- api_docs/core_application.mdx | 2 +- api_docs/core_chrome.mdx | 2 +- api_docs/core_http.json | 85 +- api_docs/core_http.mdx | 2 +- api_docs/core_saved_objects.json | 2 +- api_docs/core_saved_objects.mdx | 2 +- api_docs/custom_integrations.json | 72 +- api_docs/custom_integrations.mdx | 2 +- api_docs/dashboard.json | 48 +- api_docs/data.json | 7467 ++++------------- api_docs/data.mdx | 2 +- api_docs/data_autocomplete.mdx | 2 +- api_docs/data_query.json | 138 +- api_docs/data_query.mdx | 2 +- api_docs/data_search.json | 309 +- api_docs/data_search.mdx | 2 +- api_docs/data_ui.json | 8 +- api_docs/data_ui.mdx | 2 +- api_docs/data_views.json | 2402 ++---- api_docs/data_visualizer.json | 36 +- api_docs/deprecations_by_api.mdx | 76 +- api_docs/deprecations_by_plugin.mdx | 200 +- api_docs/discover.json | 168 +- api_docs/discover.mdx | 2 +- api_docs/elastic_apm_synthtrace.json | 409 +- api_docs/elastic_apm_synthtrace.mdx | 11 +- api_docs/elastic_datemath.json | 28 +- api_docs/embeddable.json | 90 +- api_docs/es_ui_shared.json | 2 +- api_docs/event_log.json | 37 +- api_docs/event_log.mdx | 2 +- api_docs/expression_image.json | 2 +- api_docs/expression_metric.json | 4 +- api_docs/expression_metric_vis.json | 176 +- api_docs/expression_metric_vis.mdx | 2 +- api_docs/expression_repeat_image.json | 2 +- api_docs/expression_shape.json | 4 +- api_docs/expressions.json | 210 +- api_docs/expressions.mdx | 2 +- api_docs/features.json | 16 +- api_docs/field_formats.json | 164 +- api_docs/field_formats.mdx | 2 +- api_docs/fleet.json | 388 +- api_docs/fleet.mdx | 5 +- api_docs/global_search.json | 4 +- api_docs/home.json | 618 +- api_docs/home.mdx | 8 +- api_docs/kbn_apm_config_loader.json | 34 + api_docs/kbn_apm_config_loader.mdx | 2 +- api_docs/kbn_es_archiver.json | 36 +- api_docs/kbn_es_archiver.mdx | 2 +- api_docs/kbn_es_query.json | 6 +- api_docs/kbn_logging.json | 2 +- api_docs/kbn_mapbox_gl.json | 20 +- api_docs/kbn_monaco.json | 204 +- api_docs/kbn_monaco.mdx | 2 +- api_docs/kbn_react_field.json | 387 + api_docs/kbn_react_field.mdx | 33 + api_docs/kbn_rule_data_utils.json | 2 +- .../kbn_securitysolution_autocomplete.json | 6 +- api_docs/kbn_securitysolution_es_utils.json | 364 +- ...kbn_securitysolution_io_ts_list_types.json | 244 +- .../kbn_securitysolution_io_ts_list_types.mdx | 2 +- api_docs/kbn_securitysolution_list_api.json | 16 +- api_docs/kbn_securitysolution_list_hooks.json | 40 +- api_docs/kbn_securitysolution_list_utils.json | 26 +- api_docs/kbn_server_route_repository.json | 2 +- api_docs/kbn_storybook.json | 2 +- api_docs/kibana_legacy.json | 33 +- api_docs/kibana_legacy.mdx | 2 +- api_docs/kibana_react.json | 1621 ++-- api_docs/kibana_react.mdx | 2 +- api_docs/kibana_utils.json | 48 +- api_docs/lens.json | 355 +- api_docs/lens.mdx | 2 +- api_docs/lists.json | 64 +- api_docs/management.json | 28 +- api_docs/management.mdx | 2 +- api_docs/maps.json | 60 +- api_docs/maps.mdx | 2 +- api_docs/metrics_entities.json | 2 +- api_docs/ml.json | 9 +- api_docs/monitoring.json | 2 +- api_docs/navigation.json | 42 +- api_docs/observability.json | 140 +- api_docs/observability.mdx | 2 +- api_docs/plugin_directory.mdx | 71 +- api_docs/presentation_util.json | 147 +- api_docs/presentation_util.mdx | 2 +- api_docs/reporting.json | 447 +- api_docs/reporting.mdx | 11 +- api_docs/rule_registry.json | 283 +- api_docs/rule_registry.mdx | 5 +- api_docs/runtime_fields.json | 6 +- api_docs/saved_objects.json | 12 +- api_docs/saved_objects_management.json | 10 +- api_docs/saved_objects_tagging.json | 2 +- api_docs/security_solution.json | 812 +- api_docs/security_solution.mdx | 2 +- api_docs/share.json | 230 +- api_docs/share.mdx | 2 +- api_docs/spaces.json | 32 +- api_docs/task_manager.json | 2 +- api_docs/telemetry.json | 2 +- api_docs/telemetry_collection_manager.json | 2 +- api_docs/timelines.json | 664 +- api_docs/timelines.mdx | 2 +- api_docs/triggers_actions_ui.json | 8 +- api_docs/ui_actions.json | 6 +- api_docs/ui_actions_enhanced.json | 6 +- api_docs/ui_actions_enhanced.mdx | 2 +- api_docs/usage_collection.json | 2 +- api_docs/vis_default_editor.json | 4 +- api_docs/vis_type_vislib.json | 6 +- api_docs/vis_type_xy.json | 4 +- api_docs/visualizations.json | 132 +- 129 files changed, 9898 insertions(+), 11208 deletions(-) create mode 100644 api_docs/kbn_react_field.json create mode 100644 api_docs/kbn_react_field.mdx diff --git a/api_docs/actions.json b/api_docs/actions.json index 342583332b7d9..6240b1f06e9b6 100644 --- a/api_docs/actions.json +++ b/api_docs/actions.json @@ -779,7 +779,7 @@ "label": "ActionParamsType", "description": [], "signature": [ - "Readonly<{} & { subAction: \"getFields\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"getIncident\"; subActionParams: Readonly<{} & { externalId: string; }>; }> | Readonly<{} & { subAction: \"handshake\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"pushToService\"; subActionParams: Readonly<{} & { incident: Readonly<{} & { description: string | null; name: string; externalId: string | null; incidentTypes: number[] | null; severityCode: number | null; }>; comments: Readonly<{} & { comment: string; commentId: string; }>[] | null; }>; }> | Readonly<{} & { subAction: \"incidentTypes\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"severity\"; subActionParams: Readonly<{} & {}>; }>" + "Readonly<{} & { subAction: \"getFields\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"getIncident\"; subActionParams: Readonly<{} & { externalId: string; }>; }> | Readonly<{} & { subAction: \"handshake\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"pushToService\"; subActionParams: Readonly<{} & { incident: Readonly<{} & { name: string; description: string | null; externalId: string | null; incidentTypes: number[] | null; severityCode: number | null; }>; comments: Readonly<{} & { comment: string; commentId: string; }>[] | null; }>; }> | Readonly<{} & { subAction: \"incidentTypes\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"severity\"; subActionParams: Readonly<{} & {}>; }>" ], "path": "x-pack/plugins/actions/server/builtin_action_types/resilient/index.ts", "deprecated": false, diff --git a/api_docs/alerting.json b/api_docs/alerting.json index b0d37c25a10aa..41ac8743fc8d1 100644 --- a/api_docs/alerting.json +++ b/api_docs/alerting.json @@ -24,7 +24,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">) => string | ", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">) => string | ", { "pluginId": "@kbn/utility-types", "scope": "server", @@ -47,7 +47,7 @@ "label": "alert", "description": [], "signature": [ - "{ id: string; name: string; tags: string[]; enabled: boolean; params: never; actions: ", + "{ name: string; tags: string[]; id: string; enabled: boolean; params: never; actions: ", { "pluginId": "alerting", "scope": "common", @@ -1038,7 +1038,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false @@ -1606,6 +1606,19 @@ ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.AlertType.cancelAlertsOnRuleTimeout", + "type": "CompoundType", + "tags": [], + "label": "cancelAlertsOnRuleTimeout", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -1676,7 +1689,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">[]" + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">[]" ], "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts", "deprecated": false @@ -1738,6 +1751,23 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "alerting", + "id": "def-server.PluginSetupContract.getSecurityHealth", + "type": "Function", + "tags": [], + "label": "getSecurityHealth", + "description": [], + "signature": [ + "() => Promise<", + "SecurityHealth", + ">" + ], + "path": "x-pack/plugins/alerting/server/plugin.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -2181,7 +2211,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">>; delete: ({ id }: { id: string; }) => Promise<{}>; find: = never>({ options: { fields, ...options }, }?: { options?: ", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">>; delete: ({ id }: { id: string; }) => Promise<{}>; find: = never>({ options: { fields, ...options }, }?: { options?: ", "FindOptions", " | undefined; }) => Promise<", { @@ -2199,9 +2229,9 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> | Pick<", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> | Pick<", "AlertWithLegacyId", - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\" | \"legacyId\">>; resolve: = never>({ id, }: { id: string; }) => Promise<", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\" | \"legacyId\">>; resolve: = never>({ id, includeLegacyId, }: { id: string; includeLegacyId?: boolean | undefined; }) => Promise<", { "pluginId": "alerting", "scope": "common", @@ -4152,7 +4182,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> & Pick<", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> & Pick<", { "pluginId": "core", "scope": "server", @@ -4188,7 +4218,7 @@ "label": "SanitizedAlert", "description": [], "signature": [ - "{ id: string; name: string; tags: string[]; enabled: boolean; params: Params; actions: ", + "{ name: string; tags: string[]; id: string; enabled: boolean; params: Params; actions: ", { "pluginId": "alerting", "scope": "common", @@ -4234,7 +4264,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" ], "path": "x-pack/plugins/alerting/common/alert.ts", "deprecated": false, diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 5524dbb996759..546516399e54d 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -18,7 +18,7 @@ Contact [Kibana Alerting](https://github.com/orgs/elastic/teams/kibana-alerting- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 258 | 0 | 250 | 17 | +| 260 | 0 | 252 | 18 | ## Client diff --git a/api_docs/apm.json b/api_docs/apm.json index 2fd290d8b9c35..8e4a40501f6a3 100644 --- a/api_docs/apm.json +++ b/api_docs/apm.json @@ -184,7 +184,7 @@ "APMPluginStartDependencies", ", unknown>, plugins: Pick<", "APMPluginSetupDependencies", - ", \"data\" | \"cloud\" | \"security\" | \"home\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"taskManager\" | \"alerting\">) => { config$: ", + ", \"security\" | \"home\" | \"data\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"cloud\" | \"taskManager\" | \"alerting\">) => { config$: ", "Observable", "; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; autocreateApmIndexPattern: boolean; ui: Readonly<{} & { enabled: boolean; transactionGroupBucketSize: number; maxTraceItems: number; }>; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", @@ -248,7 +248,7 @@ "signature": [ "Pick<", "APMPluginSetupDependencies", - ", \"data\" | \"cloud\" | \"security\" | \"home\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"taskManager\" | \"alerting\">" + ", \"security\" | \"home\" | \"data\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"cloud\" | \"taskManager\" | \"alerting\">" ], "path": "x-pack/plugins/apm/server/plugin.ts", "deprecated": false, @@ -545,15 +545,7 @@ "section": "def-server.RuleRegistryPluginStartContract", "text": "RuleRegistryPluginStartContract" }, - ">; }; cloud?: { setup: ", - { - "pluginId": "cloud", - "scope": "server", - "docId": "kibCloudPluginApi", - "section": "def-server.CloudSetup", - "text": "CloudSetup" - }, - "; start: () => Promise; } | undefined; security?: { setup: ", + ">; }; security?: { setup: ", { "pluginId": "security", "scope": "server", @@ -635,6 +627,14 @@ "section": "def-server.UsageCollectionSetup", "text": "UsageCollectionSetup" }, + "; start: () => Promise; } | undefined; cloud?: { setup: ", + { + "pluginId": "cloud", + "scope": "server", + "docId": "kibCloudPluginApi", + "section": "def-server.CloudSetup", + "text": "CloudSetup" + }, "; start: () => Promise; } | undefined; taskManager?: { setup: ", { "pluginId": "taskManager", @@ -737,9 +737,9 @@ "label": "APIEndpoint", "description": [], "signature": [ - "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/dynamic\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"POST /internal/apm/latency/overall_distribution\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/ux/client-metrics\" | \"GET /internal/apm/ux/page-load-distribution\" | \"GET /internal/apm/ux/page-load-distribution/breakdown\" | \"GET /internal/apm/ux/page-view-trends\" | \"GET /internal/apm/ux/services\" | \"GET /internal/apm/ux/visitor-breakdown\" | \"GET /internal/apm/ux/web-core-vitals\" | \"GET /internal/apm/ux/long-task-metrics\" | \"GET /internal/apm/ux/url-search\" | \"GET /internal/apm/ux/js-errors\" | \"GET /api/apm/observability_overview/has_rum_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/backend\" | \"GET /internal/apm/services/{serviceName}/serviceNodes\" | \"GET /internal/apm/services\" | \"GET /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search\" | \"POST /api/apm/services/{serviceName}/annotation\" | \"GET /internal/apm/services/{serviceName}/error_groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/error_groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/profiling/timeline\" | \"GET /internal/apm/services/{serviceName}/profiling/statistics\" | \"GET /internal/apm/services/{serviceName}/alerts\" | \"GET /internal/apm/services/{serviceName}/infrastructure\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_duration\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_count\" | \"GET /api/apm/settings/agent-configuration\" | \"GET /api/apm/settings/agent-configuration/view\" | \"DELETE /api/apm/settings/agent-configuration\" | \"PUT /api/apm/settings/agent-configuration\" | \"POST /api/apm/settings/agent-configuration/search\" | \"GET /api/apm/settings/agent-configuration/services\" | \"GET /api/apm/settings/agent-configuration/environments\" | \"GET /api/apm/settings/agent-configuration/agent_name\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps\" | \"POST /api/apm/sourcemaps\" | \"DELETE /api/apm/sourcemaps/{id}\" | \"GET /internal/apm/fleet/has_data\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/backends/top_backends\" | \"GET /internal/apm/backends/upstream_services\" | \"GET /internal/apm/backends/metadata\" | \"GET /internal/apm/backends/charts/latency\" | \"GET /internal/apm/backends/charts/throughput\" | \"GET /internal/apm/backends/charts/error_rate\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\"" + "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/dynamic\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"POST /internal/apm/latency/overall_distribution\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/ux/client-metrics\" | \"GET /internal/apm/ux/page-load-distribution\" | \"GET /internal/apm/ux/page-load-distribution/breakdown\" | \"GET /internal/apm/ux/page-view-trends\" | \"GET /internal/apm/ux/services\" | \"GET /internal/apm/ux/visitor-breakdown\" | \"GET /internal/apm/ux/web-core-vitals\" | \"GET /internal/apm/ux/long-task-metrics\" | \"GET /internal/apm/ux/url-search\" | \"GET /internal/apm/ux/js-errors\" | \"GET /api/apm/observability_overview/has_rum_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/backend\" | \"GET /internal/apm/services/{serviceName}/serviceNodes\" | \"GET /internal/apm/services\" | \"GET /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search\" | \"POST /api/apm/services/{serviceName}/annotation\" | \"GET /internal/apm/services/{serviceName}/error_groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/error_groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/profiling/timeline\" | \"GET /internal/apm/services/{serviceName}/profiling/statistics\" | \"GET /internal/apm/services/{serviceName}/alerts\" | \"GET /internal/apm/services/{serviceName}/infrastructure\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_duration\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_count\" | \"GET /api/apm/settings/agent-configuration\" | \"GET /api/apm/settings/agent-configuration/view\" | \"DELETE /api/apm/settings/agent-configuration\" | \"PUT /api/apm/settings/agent-configuration\" | \"POST /api/apm/settings/agent-configuration/search\" | \"GET /api/apm/settings/agent-configuration/services\" | \"GET /api/apm/settings/agent-configuration/environments\" | \"GET /api/apm/settings/agent-configuration/agent_name\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps\" | \"POST /api/apm/sourcemaps\" | \"DELETE /api/apm/sourcemaps/{id}\" | \"GET /internal/apm/fleet/has_data\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/backends/top_backends\" | \"GET /internal/apm/backends/upstream_services\" | \"GET /internal/apm/backends/metadata\" | \"GET /internal/apm/backends/charts/latency\" | \"GET /internal/apm/backends/charts/throughput\" | \"GET /internal/apm/backends/charts/error_rate\" | \"POST /internal/apm/correlations/p_values\" | \"GET /internal/apm/correlations/field_candidates\" | \"POST /internal/apm/correlations/field_stats\" | \"POST /internal/apm/correlations/field_value_pairs\" | \"POST /internal/apm/correlations/significant_correlations\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\"" ], - "path": "x-pack/plugins/apm/server/routes/get_global_apm_server_route_repository.ts", + "path": "x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts", "deprecated": false, "initialIsOpen": false }, @@ -1186,9 +1186,11 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", ", - "MetricsChartsByAgentAPIResponse", - ", ", + ", { charts: { title: string; key: string; yUnit: ", + "YUnit", + "; series: { title: string; key: string; type: ", + "ChartType", + "; color: string; overallValue: number; data: { x: number; y: number | null; }[]; }[]; }[]; }, ", "APMRouteCreateOptions", ">; } & { \"GET /internal/apm/observability_overview\": ", { @@ -1646,7 +1648,7 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { totalErrorPages: number; totalErrors: number; totalErrorGroups: number; items: { count: number; errorGroupId: React.ReactText; errorMessage: string; }[] | undefined; }, ", + ", { totalErrorPages: number; totalErrors: number; totalErrorGroups: number; items: { count: number; errorGroupId: string | number; errorMessage: string; }[] | undefined; }, ", "APMRouteCreateOptions", ">; } & { \"GET /api/apm/observability_overview/has_rum_data\": ", { @@ -2140,7 +2142,7 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { host: React.ReactText; containerId: React.ReactText; }, ", + ", { host: string | number; containerId: string | number; }, ", "APMRouteCreateOptions", ">; } & { \"GET /api/apm/services/{serviceName}/annotation/search\": ", { @@ -4888,6 +4890,316 @@ }, ", { currentTimeseries: { x: number; y: number; }[]; comparisonTimeseries: { x: number; y: number; }[] | null; }, ", "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/p_values\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/p_values\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldCandidates: ", + "ArrayC", + "<", + "StringC", + ">; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { failedTransactionsCorrelations: ", + "FailedTransactionsCorrelation", + "[]; ccsWarning: boolean; }, ", + "APMRouteCreateOptions", + ">; } & { \"GET /internal/apm/correlations/field_candidates\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/correlations/field_candidates\", ", + "TypeC", + "<{ query: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { fieldCandidates: string[]; }, ", + "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/field_stats\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/field_stats\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldsToSample: ", + "ArrayC", + "<", + "StringC", + ">; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { stats: ", + "FieldStats", + "[]; errors: any[]; }, ", + "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/field_value_pairs\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/field_value_pairs\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldCandidates: ", + "ArrayC", + "<", + "StringC", + ">; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { fieldValuePairs: ", + "FieldValuePair", + "[]; errors: any[]; }, ", + "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/significant_correlations\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/significant_correlations\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldValuePairs: ", + "ArrayC", + "<", + "TypeC", + "<{ fieldName: ", + "StringC", + "; fieldValue: ", + "UnionC", + "<[", + "StringC", + ", ", + "Type", + "]>; }>>; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { latencyCorrelations: ", + "LatencyCorrelation", + "[]; ccsWarning: boolean; totalDocCount: number; }, ", + "APMRouteCreateOptions", ">; } & { \"GET /internal/apm/fallback_to_transactions\": ", { "pluginId": "@kbn/server-route-repository", @@ -4986,7 +5298,7 @@ "APMRouteCreateOptions", ">; }>" ], - "path": "x-pack/plugins/apm/server/routes/get_global_apm_server_route_repository.ts", + "path": "x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts", "deprecated": false, "initialIsOpen": false } diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 5daa09e8df84c..54a6d5e007058 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -18,7 +18,7 @@ Contact [APM UI](https://github.com/orgs/elastic/teams/apm-ui) for questions reg | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 39 | 0 | 39 | 37 | +| 39 | 0 | 39 | 42 | ## Client diff --git a/api_docs/banners.json b/api_docs/banners.json index eae41491a43d2..d370967767d93 100644 --- a/api_docs/banners.json +++ b/api_docs/banners.json @@ -38,7 +38,7 @@ "label": "placement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false @@ -129,7 +129,7 @@ "label": "BannerPlacement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false, diff --git a/api_docs/cases.json b/api_docs/cases.json index e38f156b031d7..ff2fd8e755fa6 100644 --- a/api_docs/cases.json +++ b/api_docs/cases.json @@ -702,7 +702,9 @@ "section": "def-common.Case", "text": "Case" }, - ", postComment: (args: PostComment) => Promise) => Promise) | undefined" + ", postComment: (args: ", + "PostComment", + ") => Promise) => Promise) | undefined" ], "path": "x-pack/plugins/cases/public/components/create/index.tsx", "deprecated": false, @@ -735,7 +737,9 @@ "label": "postComment", "description": [], "signature": [ - "(args: PostComment) => Promise" + "(args: ", + "PostComment", + ") => Promise" ], "path": "x-pack/plugins/cases/public/components/create/index.tsx", "deprecated": false, @@ -2935,7 +2939,7 @@ "label": "actionField", "description": [], "signature": [ - "(\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" + "(\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false @@ -2948,7 +2952,7 @@ "label": "action", "description": [], "signature": [ - "\"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"" + "\"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false @@ -3165,6 +3169,27 @@ ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false + }, + { + "parentPluginId": "cases", + "id": "def-common.Ecs.kibana", + "type": "Object", + "tags": [], + "label": "kibana", + "description": [], + "signature": [ + "{ alert: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.SignalEcsAAD", + "text": "SignalEcsAAD" + }, + "; } | undefined" + ], + "path": "x-pack/plugins/cases/common/ui/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -4143,7 +4168,7 @@ "label": "updateKey", "description": [], "signature": [ - "\"status\" | \"title\" | \"description\" | \"tags\" | \"settings\" | \"connector\"" + "\"title\" | \"tags\" | \"description\" | \"status\" | \"settings\" | \"connector\"" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false @@ -6796,7 +6821,7 @@ "label": "CaseUserActionAttributes", "description": [], "signature": [ - "{ action_field: (\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; }" + "{ action_field: (\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; }" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -6872,7 +6897,7 @@ "label": "CaseUserActionResponse", "description": [], "signature": [ - "{ action_field: (\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; }" + "{ action_field: (\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; }" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -6886,7 +6911,7 @@ "label": "CaseUserActionsResponse", "description": [], "signature": [ - "({ action_field: (\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; })[]" + "({ action_field: (\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; })[]" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -8040,7 +8065,7 @@ "tags": [], "label": "SAVED_OBJECT_TYPES", "description": [ - "\nIf more values are added here please also add them here: x-pack/test/case_api_integration/common/fixtures/plugins" + "\nIf more values are added here please also add them here: x-pack/test/cases_api_integration/common/fixtures/plugins" ], "signature": [ "string[]" @@ -8107,6 +8132,35 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.SignalEcsAAD", + "type": "Type", + "tags": [], + "label": "SignalEcsAAD", + "description": [], + "signature": [ + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.SignalEcs", + "text": "SignalEcs" + }, + " & { rule?: (", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.RuleEcs", + "text": "RuleEcs" + }, + " & { uuid: string[]; }) | undefined; building_block_type?: string[] | undefined; workflow_status?: string[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/ui/types.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.StatusAll", @@ -8565,7 +8619,7 @@ "label": "UpdateKey", "description": [], "signature": [ - "\"status\" | \"title\" | \"description\" | \"tags\" | \"settings\" | \"connector\"" + "\"title\" | \"tags\" | \"description\" | \"status\" | \"settings\" | \"connector\"" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false, @@ -8593,7 +8647,7 @@ "label": "UserAction", "description": [], "signature": [ - "\"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"" + "\"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -8607,7 +8661,7 @@ "label": "UserActionField", "description": [], "signature": [ - "(\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" + "(\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -8621,7 +8675,7 @@ "label": "UserActionFieldType", "description": [], "signature": [ - "\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\"" + "\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\"" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 9400133d89bda..b9e4d1c7d7567 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -18,7 +18,7 @@ Contact [Security Solution Threat Hunting](https://github.com/orgs/elastic/teams | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 476 | 0 | 432 | 14 | +| 478 | 0 | 434 | 15 | ## Client diff --git a/api_docs/charts.json b/api_docs/charts.json index e53f10c539790..0fc469bf82674 100644 --- a/api_docs/charts.json +++ b/api_docs/charts.json @@ -2158,6 +2158,147 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE", + "type": "Object", + "tags": [], + "label": "MULTILAYER_TIME_AXIS_STYLE", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel", + "type": "Object", + "tags": [], + "label": "tickLabel", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.rotation", + "type": "number", + "tags": [], + "label": "rotation", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment", + "type": "Object", + "tags": [], + "label": "alignment", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.vertical", + "type": "string", + "tags": [], + "label": "vertical", + "description": [], + "signature": [ + "\"bottom\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.horizontal", + "type": "string", + "tags": [], + "label": "horizontal", + "description": [], + "signature": [ + "\"left\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine", + "type": "Object", + "tags": [], + "label": "tickLine", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine.size", + "type": "number", + "tags": [], + "label": "size", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "charts", "id": "def-public.truncatedColorMaps", @@ -3921,6 +4062,147 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE", + "type": "Object", + "tags": [], + "label": "MULTILAYER_TIME_AXIS_STYLE", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel", + "type": "Object", + "tags": [], + "label": "tickLabel", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.rotation", + "type": "number", + "tags": [], + "label": "rotation", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment", + "type": "Object", + "tags": [], + "label": "alignment", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.vertical", + "type": "string", + "tags": [], + "label": "vertical", + "description": [], + "signature": [ + "\"bottom\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.horizontal", + "type": "string", + "tags": [], + "label": "horizontal", + "description": [], + "signature": [ + "\"left\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine", + "type": "Object", + "tags": [], + "label": "tickLine", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine.size", + "type": "number", + "tags": [], + "label": "size", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "charts", "id": "def-common.truncatedColorMaps", diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 32f7fc46723ad..5f906789d65e8 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -18,7 +18,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 286 | 4 | 254 | 3 | +| 310 | 4 | 278 | 3 | ## Client diff --git a/api_docs/core.json b/api_docs/core.json index 93a0d2007f651..08d1c27ddf8e9 100644 --- a/api_docs/core.json +++ b/api_docs/core.json @@ -27,7 +27,7 @@ "section": "def-public.ToastsApi", "text": "ToastsApi" }, - ", \"get$\" | \"add\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" + ", \"add\" | \"get$\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" ], "path": "src/core/public/notifications/toasts/toasts_api.tsx", "deprecated": false, @@ -1112,6 +1112,27 @@ } ] }, + { + "parentPluginId": "core", + "id": "def-public.CoreSetup.theme", + "type": "Object", + "tags": [], + "label": "theme", + "description": [ + "{@link ThemeServiceSetup}" + ], + "signature": [ + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.ThemeServiceSetup", + "text": "ThemeServiceSetup" + } + ], + "path": "src/core/public/index.ts", + "deprecated": false + }, { "parentPluginId": "core", "id": "def-public.CoreSetup.getStartServices", @@ -1383,6 +1404,27 @@ "path": "src/core/public/index.ts", "deprecated": false }, + { + "parentPluginId": "core", + "id": "def-public.CoreStart.theme", + "type": "Object", + "tags": [], + "label": "theme", + "description": [ + "{@link ThemeServiceStart}" + ], + "signature": [ + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.ThemeServiceStart", + "text": "ThemeServiceStart" + } + ], + "path": "src/core/public/index.ts", + "deprecated": false + }, { "parentPluginId": "core", "id": "def-public.CoreStart.injectedMetadata", @@ -1421,6 +1463,33 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "core", + "id": "def-public.CoreTheme", + "type": "Interface", + "tags": [], + "label": "CoreTheme", + "description": [ + "\nContains all the required information to apply Kibana's theme at the various levels it can be used.\n" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.CoreTheme.darkMode", + "type": "boolean", + "tags": [], + "label": "darkMode", + "description": [ + "is dark mode enabled or not" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "core", "id": "def-public.DeprecationsServiceStart", @@ -1603,7 +1672,7 @@ "label": "links", "description": [], "signature": [ - "{ readonly settings: string; readonly elasticStackGetStarted: string; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly enterpriseSearch: { readonly base: string; readonly appSearchBase: string; readonly workplaceSearchBase: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite_missing_bucket: string; readonly date_histogram: string; readonly date_range: string; readonly date_format_pattern: string; readonly filter: string; readonly filters: string; readonly geohash_grid: string; readonly histogram: string; readonly ip_range: string; readonly range: string; readonly significant_terms: string; readonly terms: string; readonly avg: string; readonly avg_bucket: string; readonly max_bucket: string; readonly min_bucket: string; readonly sum_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative_sum: string; readonly derivative: string; readonly geo_bounds: string; readonly geo_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving_avg: string; readonly percentile_ranks: string; readonly serial_diff: string; readonly std_dev: string; readonly sum: string; readonly top_hits: string; }; readonly runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: string; readonly rollupJobs: string; readonly elasticsearch: Record; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; readonly autocompleteChanges: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record; readonly ml: Record; readonly transforms: Record; readonly visualize: Record; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record; readonly maps: Record; readonly monitoring: Record; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record; readonly ccs: Record; readonly plugins: Record; readonly snapshotRestore: Record; readonly ingest: Record; readonly fleet: Readonly<{ datastreamsILM: string; beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; }" + "{ readonly settings: string; readonly elasticStackGetStarted: string; readonly upgrade: { readonly upgradingElasticStack: string; }; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly enterpriseSearch: { readonly base: string; readonly appSearchBase: string; readonly workplaceSearchBase: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite_missing_bucket: string; readonly date_histogram: string; readonly date_range: string; readonly date_format_pattern: string; readonly filter: string; readonly filters: string; readonly geohash_grid: string; readonly histogram: string; readonly ip_range: string; readonly range: string; readonly significant_terms: string; readonly terms: string; readonly terms_doc_count_error: string; readonly avg: string; readonly avg_bucket: string; readonly max_bucket: string; readonly min_bucket: string; readonly sum_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative_sum: string; readonly derivative: string; readonly geo_bounds: string; readonly geo_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving_avg: string; readonly percentile_ranks: string; readonly serial_diff: string; readonly std_dev: string; readonly sum: string; readonly top_hits: string; }; readonly runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: { readonly overview: string; readonly batchReindex: string; readonly remoteReindex: string; }; readonly rollupJobs: string; readonly elasticsearch: Record; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record; readonly ml: Record; readonly transforms: Record; readonly visualize: Record; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record; readonly maps: Readonly<{ guide: string; importGeospatialPrivileges: string; gdalTutorial: string; }>; readonly monitoring: Record; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record; readonly ccs: Record; readonly plugins: Record; readonly snapshotRestore: Record; readonly ingest: Record; readonly fleet: Readonly<{ datastreamsILM: string; beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; settingsFleetServerProxySettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; onPremRegistry: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; readonly endpoints: { readonly troubleshooting: string; }; }" ], "path": "src/core/public/doc_links/doc_links_service.ts", "deprecated": false @@ -2079,7 +2148,7 @@ "signature": [ "() => Readonly, \"type\" | \"description\" | \"name\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", + ", \"name\" | \"type\" | \"description\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", "UserProvidedValues", ">>" ], @@ -2355,25 +2424,25 @@ "{@link ToastsSetup}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -2381,7 +2450,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -2529,25 +2598,25 @@ "{@link ToastsStart}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -2555,7 +2624,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -2976,7 +3045,7 @@ "label": "size", "description": [], "signature": [ - "\"m\" | \"s\" | \"l\" | undefined" + "\"s\" | \"m\" | \"l\" | undefined" ], "path": "src/core/public/overlays/flyout/flyout_service.tsx", "deprecated": false @@ -3007,6 +3076,20 @@ "path": "src/core/public/overlays/flyout/flyout_service.tsx", "deprecated": false }, + { + "parentPluginId": "core", + "id": "def-public.OverlayFlyoutOpenOptions.maskProps", + "type": "CompoundType", + "tags": [], + "label": "maskProps", + "description": [], + "signature": [ + "EuiOverlayMaskProps", + " | undefined" + ], + "path": "src/core/public/overlays/flyout/flyout_service.tsx", + "deprecated": false + }, { "parentPluginId": "core", "id": "def-public.OverlayFlyoutOpenOptions.onClose", @@ -3265,7 +3348,7 @@ "label": "buttonColor", "description": [], "signature": [ - "\"text\" | \"primary\" | \"success\" | \"warning\" | \"danger\" | \"accent\" | \"secondary\" | \"ghost\" | undefined" + "\"text\" | \"primary\" | \"success\" | \"warning\" | \"danger\" | \"accent\" | \"ghost\" | undefined" ], "path": "src/core/public/overlays/modal/modal_service.tsx", "deprecated": false @@ -5913,6 +5996,76 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceSetup", + "type": "Interface", + "tags": [], + "label": "ThemeServiceSetup", + "description": [], + "path": "src/core/public/theme/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceSetup.theme$", + "type": "Object", + "tags": [], + "label": "theme$", + "description": [], + "signature": [ + "Observable", + "<", + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.CoreTheme", + "text": "CoreTheme" + }, + ">" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceStart", + "type": "Interface", + "tags": [], + "label": "ThemeServiceStart", + "description": [], + "path": "src/core/public/theme/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceStart.theme$", + "type": "Object", + "tags": [], + "label": "theme$", + "description": [], + "signature": [ + "Observable", + "<", + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.CoreTheme", + "text": "CoreTheme" + }, + ">" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "core", "id": "def-public.ToastOptions", @@ -6104,7 +6257,7 @@ "defines a type of UI element {@link UiSettingsType}" ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" ], "path": "src/core/types/ui_settings.ts", "deprecated": false @@ -6328,25 +6481,25 @@ "\nMethods for adding and removing global toast messages. See {@link ToastsApi}." ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -6354,7 +6507,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -6626,7 +6779,7 @@ "\nA sub-set of {@link UiSettingsParams} exposed to the client-side." ], "signature": [ - "{ type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", + "{ name?: string | undefined; type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", "DeprecationSettings", " | undefined; metric?: { type: ", { @@ -6776,7 +6929,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -6833,7 +6986,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -6865,25 +7018,25 @@ "\n{@link IToasts}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -6891,7 +7044,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -7027,25 +7180,25 @@ "\n{@link IToasts}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -7053,7 +7206,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -7189,7 +7342,7 @@ "\nUI element type to represent the settings." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\"" ], "path": "src/core/types/ui_settings.ts", "deprecated": false, @@ -7645,7 +7798,7 @@ "tags": [], "label": "collect", "description": [ - "\nCollect gathers event loop delays metrics from nodejs perf_hooks.monitorEventLoopDelay\nthe histogram calculations start from the last time `reset` was called or this\nEventLoopDelaysMonitor instance was created." + "\nCollect gathers event loop delays metrics from nodejs perf_hooks.monitorEventLoopDelay\nthe histogram calculations start from the last time `reset` was called or this\nEventLoopDelaysMonitor instance was created.\n\nReturns metrics in milliseconds." ], "signature": [ "() => ", @@ -11761,7 +11914,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -12813,7 +12966,7 @@ "tags": [], "label": "IntervalHistogram", "description": [ - "\nan IntervalHistogram object that samples and reports the event loop delay over time.\nThe delays will be reported in nanoseconds.\n" + "\nan IntervalHistogram object that samples and reports the event loop delay over time.\nThe delays will be reported in milliseconds.\n" ], "path": "src/core/server/metrics/types.ts", "deprecated": false, @@ -12956,7 +13109,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -12979,7 +13132,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -13017,7 +13170,7 @@ "signature": [ "() => Readonly, \"type\" | \"description\" | \"name\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\">>>" + ", \"name\" | \"type\" | \"description\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\">>>" ], "path": "src/core/server/ui_settings/types.ts", "deprecated": false, @@ -14928,7 +15081,7 @@ "signature": [ "{ legacy: { globalConfig$: ", "Observable", - " moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + " moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", { "pluginId": "@kbn/config-schema", "scope": "server", @@ -14952,7 +15105,7 @@ "section": "def-server.ByteSizeValue", "text": "ByteSizeValue" }, - ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: \"b\" | \"kb\" | \"mb\" | \"gb\" | undefined) => string; }>; }>; }>>; get: () => Readonly<{ elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: \"b\" | \"kb\" | \"mb\" | \"gb\" | undefined) => string; }>; }>; }>>; get: () => Readonly<{ elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", { "pluginId": "@kbn/config-schema", "scope": "server", @@ -16538,7 +16691,7 @@ "defines a type of UI element {@link UiSettingsType}" ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" ], "path": "src/core/types/ui_settings.ts", "deprecated": false @@ -17291,7 +17444,7 @@ "label": "EcsEventCategory", "description": [], "signature": [ - "\"network\" | \"web\" | \"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" + "\"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"network\" | \"web\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" ], "path": "node_modules/@kbn/logging/target_types/ecs/event.d.ts", "deprecated": false, @@ -17351,7 +17504,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -18496,7 +18649,7 @@ "\nA sub-set of {@link UiSettingsParams} exposed to the client-side." ], "signature": [ - "{ type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", + "{ name?: string | undefined; type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", "DeprecationSettings", " | undefined; metric?: { type: ", { @@ -18604,7 +18757,7 @@ "label": "SharedGlobalConfig", "description": [], "signature": [ - "{ readonly elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; readonly path: Readonly<{ readonly data: string; }>; readonly savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + "{ readonly elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; readonly path: Readonly<{ readonly data: string; }>; readonly savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", { "pluginId": "@kbn/config-schema", "scope": "server", @@ -18670,7 +18823,7 @@ "\nUI element type to represent the settings." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\"" ], "path": "src/core/types/ui_settings.ts", "deprecated": false, diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 4f2f4806d4a1e..4a7d32ebae214 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_application.json b/api_docs/core_application.json index 52f50c364fdba..312205b6d0589 100644 --- a/api_docs/core_application.json +++ b/api_docs/core_application.json @@ -1611,6 +1611,30 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "core", + "id": "def-public.AppMountParameters.theme$", + "type": "Object", + "tags": [], + "label": "theme$", + "description": [ + "\nAn observable emitting {@link CoreTheme | Core's theme}.\nShould be used when mounting the application to include theme information.\n" + ], + "signature": [ + "Observable", + "<", + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.CoreTheme", + "text": "CoreTheme" + }, + ">" + ], + "path": "src/core/public/application/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -2120,23 +2144,23 @@ "\nDefines the list of fields that can be updated via an {@link AppUpdater}." ], "signature": [ - "{ status?: ", + "{ deepLinks?: ", { "pluginId": "core", "scope": "public", "docId": "kibCoreApplicationPluginApi", - "section": "def-public.AppStatus", - "text": "AppStatus" + "section": "def-public.AppDeepLink", + "text": "AppDeepLink" }, - " | undefined; deepLinks?: ", + "[] | undefined; searchable?: boolean | undefined; status?: ", { "pluginId": "core", "scope": "public", "docId": "kibCoreApplicationPluginApi", - "section": "def-public.AppDeepLink", - "text": "AppDeepLink" + "section": "def-public.AppStatus", + "text": "AppStatus" }, - "[] | undefined; searchable?: boolean | undefined; navLinkStatus?: ", + " | undefined; navLinkStatus?: ", { "pluginId": "core", "scope": "public", @@ -2176,7 +2200,7 @@ "section": "def-public.App", "text": "App" }, - ", \"status\" | \"deepLinks\" | \"searchable\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\">> | undefined" + ", \"deepLinks\" | \"searchable\" | \"status\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\">> | undefined" ], "path": "src/core/public/application/types.ts", "deprecated": false, @@ -2223,7 +2247,7 @@ "section": "def-public.AppDeepLink", "text": "AppDeepLink" }, - ", \"id\" | \"title\" | \"order\" | \"path\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { deepLinks: ", + ", \"title\" | \"id\" | \"order\" | \"path\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { deepLinks: ", { "pluginId": "core", "scope": "public", @@ -2263,7 +2287,7 @@ "section": "def-public.App", "text": "App" }, - ", \"status\" | \"id\" | \"title\" | \"order\" | \"capabilities\" | \"category\" | \"navLinkStatus\" | \"defaultPath\" | \"chromeless\" | \"appRoute\" | \"exactRoute\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { status: ", + ", \"title\" | \"id\" | \"order\" | \"capabilities\" | \"category\" | \"status\" | \"navLinkStatus\" | \"defaultPath\" | \"chromeless\" | \"appRoute\" | \"exactRoute\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { status: ", { "pluginId": "core", "scope": "public", diff --git a/api_docs/core_application.mdx b/api_docs/core_application.mdx index 3f0a60c42fe9f..b1d9899d5e445 100644 --- a/api_docs/core_application.mdx +++ b/api_docs/core_application.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_chrome.mdx b/api_docs/core_chrome.mdx index b88dcb91dd555..60c48cfe97a7d 100644 --- a/api_docs/core_chrome.mdx +++ b/api_docs/core_chrome.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_http.json b/api_docs/core_http.json index b73187fe291b6..ac4ba937d9eaa 100644 --- a/api_docs/core_http.json +++ b/api_docs/core_http.json @@ -516,7 +516,7 @@ "section": "def-public.HttpResponse", "text": "HttpResponse" }, - ", controller: ", + ", controller: ", { "pluginId": "core", "scope": "public", @@ -532,7 +532,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - " | Promise<", + " | Promise<", { "pluginId": "core", "scope": "public", @@ -540,7 +540,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - ">) | undefined" + ">) | undefined" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -560,7 +560,7 @@ "section": "def-public.HttpResponse", "text": "HttpResponse" }, - "" + "" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -623,7 +623,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - " | Promise<", + " | Promise<", { "pluginId": "core", "scope": "public", @@ -631,7 +631,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - ">) | undefined" + ">) | undefined" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -762,7 +762,7 @@ "section": "def-public.HttpResponse", "text": "HttpResponse" }, - "" + "" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -795,7 +795,8 @@ "docId": "kibCoreHttpPluginApi", "section": "def-public.IHttpFetchError", "text": "IHttpFetchError" - } + }, + "" ], "path": "src/core/public/http/types.ts", "deprecated": false @@ -1733,7 +1734,7 @@ "section": "def-public.IHttpFetchError", "text": "IHttpFetchError" }, - " extends Error" + " extends Error" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -1818,12 +1819,12 @@ { "parentPluginId": "core", "id": "def-public.IHttpFetchError.body", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "body", "description": [], "signature": [ - "any" + "TResponseBody | undefined" ], "path": "src/core/public/http/types.ts", "deprecated": false @@ -1929,6 +1930,52 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody", + "type": "Interface", + "tags": [], + "label": "ResponseErrorBody", + "description": [], + "path": "src/core/public/http/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "src/core/public/http/types.ts", + "deprecated": false + }, + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody.statusCode", + "type": "number", + "tags": [], + "label": "statusCode", + "description": [], + "path": "src/core/public/http/types.ts", + "deprecated": false + }, + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody.attributes", + "type": "Object", + "tags": [], + "label": "attributes", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "src/core/public/http/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -3361,7 +3408,7 @@ "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -3377,7 +3424,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/types.ts", "deprecated": false @@ -3716,7 +3763,7 @@ "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -3732,7 +3779,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/types.ts", "deprecated": false @@ -3946,7 +3993,7 @@ "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -3962,7 +4009,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/types.ts", "deprecated": false @@ -9286,7 +9333,7 @@ "\nAccess or manipulate the Kibana base path\n\n{@link BasePath}" ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -9302,7 +9349,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/base_path_service.ts", "deprecated": false, diff --git a/api_docs/core_http.mdx b/api_docs/core_http.mdx index 7d982a7068dac..a7b9c1aeaa2d8 100644 --- a/api_docs/core_http.mdx +++ b/api_docs/core_http.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_saved_objects.json b/api_docs/core_saved_objects.json index bd9b903ee0b5a..47e18a54bf5d0 100644 --- a/api_docs/core_saved_objects.json +++ b/api_docs/core_saved_objects.json @@ -15482,7 +15482,7 @@ }, " extends Pick<", "SavedObject", - ", \"type\" | \"id\" | \"version\" | \"namespaces\" | \"migrationVersion\" | \"coreMigrationVersion\" | \"error\" | \"updated_at\" | \"originId\">" + ", \"version\" | \"type\" | \"id\" | \"namespaces\" | \"migrationVersion\" | \"coreMigrationVersion\" | \"error\" | \"updated_at\" | \"originId\">" ], "path": "src/core/server/saved_objects/service/saved_objects_client.ts", "deprecated": false, diff --git a/api_docs/core_saved_objects.mdx b/api_docs/core_saved_objects.mdx index 10df368c8caed..f23c59ee296b9 100644 --- a/api_docs/core_saved_objects.mdx +++ b/api_docs/core_saved_objects.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/custom_integrations.json b/api_docs/custom_integrations.json index 5436d08651300..085e47662ffe0 100644 --- a/api_docs/custom_integrations.json +++ b/api_docs/custom_integrations.json @@ -387,7 +387,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\")[]" + "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -434,7 +434,7 @@ "\nA category applicable to an Integration." ], "signature": [ - "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\"" + "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -646,7 +646,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\")[]" + "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -748,7 +748,7 @@ "label": "id", "description": [], "signature": [ - "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\"" + "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -769,7 +769,7 @@ "\nThe list of all available categories." ], "signature": [ - "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\")[]" + "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -785,7 +785,7 @@ "\nA category applicable to an Integration." ], "signature": [ - "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\"" + "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -1129,10 +1129,10 @@ }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.communication", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.communications", "type": "string", "tags": [], - "label": "communication", + "label": "communications", "description": [ "// Kibana added" ], @@ -1141,40 +1141,10 @@ }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.customer_support", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.file_storage", "type": "string", "tags": [], - "label": "customer_support", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.document_storage", - "type": "string", - "tags": [], - "label": "document_storage", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.enterprise_management", - "type": "string", - "tags": [], - "label": "enterprise_management", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.knowledge_platform", - "type": "string", - "tags": [], - "label": "knowledge_platform", + "label": "file_storage", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -1191,40 +1161,30 @@ }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.project_management", - "type": "string", - "tags": [], - "label": "project_management", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.software_development", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.upload_file", "type": "string", "tags": [], - "label": "software_development", + "label": "upload_file", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.upload_file", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.website_search", "type": "string", "tags": [], - "label": "upload_file", + "label": "website_search", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.website_search", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.geo", "type": "string", "tags": [], - "label": "website_search", + "label": "geo", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index bf6e0a0722698..2062d5b87232d 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -18,7 +18,7 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 100 | 1 | 84 | 1 | +| 96 | 1 | 80 | 1 | ## Client diff --git a/api_docs/dashboard.json b/api_docs/dashboard.json index 9383105dd7f9d..aa91ffaf0faeb 100644 --- a/api_docs/dashboard.json +++ b/api_docs/dashboard.json @@ -1630,15 +1630,7 @@ "label": "searchSource", "description": [], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -1654,7 +1646,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -1686,7 +1678,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -1694,7 +1686,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -1702,7 +1694,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -1726,7 +1726,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -2316,7 +2316,7 @@ "section": "def-common.RawSavedDashboardPanel730ToLatest", "text": "RawSavedDashboardPanel730ToLatest" }, - ", \"type\" | \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" + ", \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"type\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -2722,7 +2722,7 @@ "RawSavedDashboardPanel620", " | Pick<", "RawSavedDashboardPanel620", - ", \"title\" | \"panelIndex\" | \"name\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", { "pluginId": "dashboard", "scope": "common", @@ -2791,7 +2791,7 @@ "RawSavedDashboardPanel620", " | Pick<", "RawSavedDashboardPanel620", - ", \"title\" | \"panelIndex\" | \"name\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", { "pluginId": "dashboard", "scope": "common", @@ -3024,7 +3024,7 @@ "signature": [ "Pick, \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly type?: string | undefined; readonly name?: string | undefined; panelIndex: string; panelRefName?: string | undefined; }" + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\">, \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly type?: string | undefined; readonly name?: string | undefined; panelIndex: string; panelRefName?: string | undefined; }" ], "path": "src/plugins/dashboard/common/bwc/types.ts", "deprecated": false, @@ -3040,7 +3040,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanel610", - ", \"columns\" | \"title\" | \"sort\" | \"panelIndex\" | \"gridData\" | \"version\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"panelIndex\" | \"title\" | \"gridData\" | \"version\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3056,7 +3056,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanel620", - ", \"columns\" | \"title\" | \"sort\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3072,7 +3072,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanel620", - ", \"columns\" | \"title\" | \"sort\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3088,7 +3088,7 @@ "signature": [ "Pick, \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\">, \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3110,7 +3110,7 @@ "section": "def-common.RawSavedDashboardPanel730ToLatest", "text": "RawSavedDashboardPanel730ToLatest" }, - ", \"type\" | \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" + ", \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"type\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3126,7 +3126,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanelTo60", - ", \"columns\" | \"title\" | \"sort\" | \"size_x\" | \"size_y\" | \"row\" | \"col\" | \"panelIndex\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"size_x\" | \"size_y\" | \"row\" | \"col\" | \"panelIndex\" | \"title\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, diff --git a/api_docs/data.json b/api_docs/data.json index 244d61d1f2ad2..3fc551003c1d8 100644 --- a/api_docs/data.json +++ b/api_docs/data.json @@ -493,7 +493,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -522,7 +522,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_config.ts", "deprecated": false, @@ -2234,7 +2234,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -2263,7 +2263,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_configs.ts", "deprecated": false, @@ -2798,279 +2798,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -3228,18 +3232,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -3278,19 +3270,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -3316,86 +3308,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -3492,6 +3404,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -3524,205 +3456,177 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -3742,15 +3646,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "dataViews", @@ -3782,11 +3686,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -3794,19 +3698,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -3858,183 +3762,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -4358,15 +4262,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -4468,30 +4372,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -4704,18 +4584,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -4760,6 +4628,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -5108,6 +4988,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -5152,30 +5068,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -5224,6 +5116,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -5272,34 +5180,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -5322,35 +5202,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -5374,19 +5262,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "dataViews", @@ -5443,59 +5323,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -5543,11 +5423,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -5555,11 +5435,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -5611,107 +5491,107 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "dataViews", @@ -5755,231 +5635,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -6239,19 +6119,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -6285,14 +6165,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -6455,27 +6327,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -6827,31 +6699,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "dataVisualizer", @@ -7075,36 +6947,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -7280,32 +7152,34 @@ }, { "parentPluginId": "data", - "id": "def-public.SearchSource.setPreferredSearchStrategyId", + "id": "def-public.SearchSource.setOverwriteDataViewType", "type": "Function", "tags": [], - "label": "setPreferredSearchStrategyId", + "label": "setOverwriteDataViewType", "description": [ - "**\nPUBLIC API\n\ninternal, dont use" + "**\nPUBLIC API\n\nUsed to make the search source overwrite the actual data view type for the\nspecific requests done. This should only be needed very rarely, since it means\ne.g. we'd be treating a rollup index pattern as a regular one. Be very sure\nyou understand the consequences of using this method before using it.\n" ], "signature": [ - "(searchStrategyId: string) => void" + "(overwriteType: string | false | undefined) => void" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-public.SearchSource.setPreferredSearchStrategyId.$1", - "type": "string", + "id": "def-public.SearchSource.setOverwriteDataViewType.$1", + "type": "CompoundType", "tags": [], - "label": "searchStrategyId", - "description": [], + "label": "overwriteType", + "description": [ + "If `false` is passed in it will disable the overwrite, otherwise\nthe passed in value will be used as the data view type for this search source." + ], "signature": [ - "string" + "string | false | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -7320,7 +7194,7 @@ "\nsets value to a single search source field" ], "signature": [ - "(field: K, value: ", + "(field: K, value: ", { "pluginId": "data", "scope": "common", @@ -7385,7 +7259,7 @@ "\nremove field" ], "signature": [ - "(field: K) => this" + "(field: K) => this" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -7510,7 +7384,7 @@ "\nGets a single field from the fields" ], "signature": [ - "(field: K, recurse?: boolean) => ", + "(field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -7564,7 +7438,7 @@ "\nGet the field from our own fields, don't traverse up the chain" ], "signature": [ - "(field: K) => ", + "(field: K) => ", { "pluginId": "data", "scope": "common", @@ -7618,11 +7492,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" } ], "children": [], @@ -7711,7 +7585,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -7742,7 +7616,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -7890,11 +7764,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts" + "path": "src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts" }, { "plugin": "maps", @@ -9124,7 +8998,7 @@ "section": "def-common.Query", "text": "Query" }, - "> | undefined; }, never>, \"id\" | \"filter\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", + "> | undefined; }, never>, \"filter\" | \"id\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -9212,7 +9086,7 @@ "section": "def-common.QueryFilter", "text": "QueryFilter" }, - ">[] | undefined; }, never>, \"id\" | \"filters\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", + ">[] | undefined; }, never>, \"filters\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -9796,7 +9670,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", + ".HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", { "pluginId": "expressions", "scope": "common", @@ -9828,7 +9702,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", "AggExpressionType", ", ", { @@ -9884,7 +9758,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".DATE_HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", + ".DATE_HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -9916,7 +9790,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, \"timeRange\" | \"extended_bounds\"> & Pick<{ timeRange?: ", + "> | undefined; }, \"extended_bounds\" | \"timeRange\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -9948,7 +9822,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"timeRange\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"timeRange\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", "AggExpressionType", ", ", { @@ -10004,11 +9878,11 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".TERMS>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", + ".TERMS>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", "AggExpressionType", " | undefined; }, \"orderAgg\"> & Pick<{ orderAgg?: ", "AggExpressionType", - " | undefined; }, never>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", + " | undefined; }, never>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", "AggExpressionType", ", ", { @@ -12817,34 +12691,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.ts" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" @@ -12877,218 +12723,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" @@ -13097,42 +12731,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" @@ -13141,46 +12739,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx" @@ -13213,54 +12771,6 @@ "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -13320,14 +12830,6 @@ { "plugin": "transform", "path": "x-pack/plugins/transform/server/routes/api/transforms.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" } ], "children": [ @@ -13690,7 +13192,7 @@ "tags": [], "label": "warning", "description": [ - "\nOptional warnings that should be surfaced to the end user" + "\nOptional warnings returned from Elasticsearch (for example, deprecation warnings)" ], "signature": [ "string | undefined" @@ -13915,7 +13417,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -13962,7 +13464,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -14663,7 +14165,7 @@ "label": "AggGroupName", "description": [], "signature": [ - "\"none\" | \"buckets\" | \"metrics\"" + "\"buckets\" | \"metrics\" | \"none\"" ], "path": "src/plugins/data/common/search/aggs/agg_groups.ts", "deprecated": false, @@ -14940,7 +14442,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -15512,71 +15014,71 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "visualizations", @@ -15770,66 +15272,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/reducers/map/types.ts" @@ -16006,6 +15448,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/routes/map_page/url_state/global_sync.ts" @@ -16114,474 +15564,6 @@ "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -16614,22 +15596,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/selectors/map_selectors.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, { "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" @@ -16726,34 +15692,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/url_state/app_state_manager.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/map_container/map_container.d.ts" @@ -16778,14 +15716,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/toolbar_overlay/toolbar_overlay.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_control.d.ts" @@ -16802,54 +15732,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_popover.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.d.ts" @@ -17036,47 +15918,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "maps", @@ -17202,38 +16076,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -17250,14 +16092,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" @@ -17278,22 +16112,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, { "plugin": "visualize", "path": "src/plugins/visualize/common/locator.ts" @@ -17309,74 +16127,6 @@ { "plugin": "visualize", "path": "src/plugins/visualize/target/types/common/locator.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" } ], "initialIsOpen": false @@ -17509,16 +16259,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - } - ], + "references": [], "initialIsOpen": false }, { @@ -17601,11 +16342,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -17629,47 +16370,47 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -17845,7 +16586,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -17994,27 +16735,27 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "observability", @@ -18026,19 +16767,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "dataViews", @@ -18082,19 +16823,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "dashboard", @@ -18537,15 +17278,7 @@ "\nsearch source interface" ], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -18561,7 +17294,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -18593,7 +17326,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -18601,7 +17334,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -18609,7 +17342,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -18633,7 +17374,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -18753,14 +17494,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" @@ -18773,130 +17506,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" @@ -18937,14 +17546,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" @@ -18994,13 +17595,7 @@ "description": [], "signature": [ "{ value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -19035,7 +17630,16 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [], + "references": [ + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + } + ], "initialIsOpen": false }, { @@ -19332,79 +17936,79 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_context_url.tsx" + "path": "src/plugins/discover/public/utils/get_context_url.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_context_url.tsx" + "path": "src/plugins/discover/public/utils/get_context_url.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", @@ -19526,6 +18130,10 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts" @@ -19622,70 +18230,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/locators.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, { "plugin": "lens", "path": "x-pack/plugins/lens/public/mocks/data_plugin_mock.ts" @@ -19694,38 +18238,6 @@ "plugin": "lens", "path": "x-pack/plugins/lens/public/mocks/data_plugin_mock.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts" - }, { "plugin": "dashboard", "path": "src/plugins/dashboard/public/locator.test.ts" @@ -20214,7 +18726,7 @@ "label": "buildQueryFilter", "description": [], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -20235,7 +18747,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/query_string_filter.d.ts", "deprecated": false @@ -22309,190 +20821,6 @@ "plugin": "lens", "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/index.tsx" @@ -23824,13 +22152,7 @@ "description": [], "signature": [ "(interval: string) => { value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/public/index.ts", @@ -24104,7 +22426,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", { "pluginId": "inspector", "scope": "common", @@ -24147,7 +22469,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/inspect/inspector_stats.ts", "deprecated": false @@ -24289,6 +22611,56 @@ "deprecated": false } ] + }, + { + "parentPluginId": "data", + "id": "def-public.search.checkColumnForPrecisionError", + "type": "Function", + "tags": [], + "label": "checkColumnForPrecisionError", + "description": [], + "signature": [ + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => ", + { + "pluginId": "@kbn/utility-types", + "scope": "server", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-server.Serializable", + "text": "Serializable" + } + ], + "path": "src/plugins/data/public/index.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-public.search.checkColumnForPrecisionError.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/search/tabify/utils.ts", + "deprecated": false + } + ] } ], "initialIsOpen": false @@ -24527,7 +22899,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24734,7 +23106,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24911,15 +23283,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", @@ -25001,18 +23373,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/index_data_visualizer.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/datavisualizer/file_based/file_datavisualizer.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/app.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/app.tsx" @@ -25073,22 +23433,10 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/plugin.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -25137,10 +23485,6 @@ "plugin": "transform", "path": "x-pack/plugins/transform/public/app/sections/transform_management/components/action_edit/use_edit_action.tsx" }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_deprecation_logs_step/external_links.tsx" - }, { "plugin": "uptime", "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" @@ -25299,7 +23643,7 @@ }, { "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/timeseries_vis_renderer.tsx" + "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" }, { "plugin": "visTypeVega", @@ -25429,7 +23773,7 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/chart/histogram.tsx" + "path": "src/plugins/discover/public/application/main/components/chart/histogram.tsx" }, { "plugin": "dashboard", @@ -25605,7 +23949,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -25613,7 +23965,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -25637,7 +23997,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -27550,279 +25910,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -27980,18 +26344,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -28030,19 +26382,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -28068,86 +26420,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -28244,6 +26516,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -28276,205 +26568,177 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -28494,15 +26758,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "dataViews", @@ -28534,11 +26798,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -28546,19 +26810,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -28610,183 +26874,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -29110,15 +27374,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -29220,30 +27484,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -29456,18 +27696,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -29512,6 +27740,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -29860,6 +28100,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -29904,30 +28180,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -29976,6 +28228,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -30024,34 +28292,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -30074,35 +28314,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -30126,19 +28374,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "dataViews", @@ -30195,59 +28435,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -30295,11 +28535,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -30307,11 +28547,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -30363,107 +28603,107 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "dataViews", @@ -30507,231 +28747,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -30991,19 +29231,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -31037,14 +29277,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -31207,27 +29439,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -31579,31 +29811,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "dataVisualizer", @@ -32119,36 +30351,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -32324,36 +30556,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -33924,71 +32156,71 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "visualizations", @@ -34182,66 +32414,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/reducers/map/types.ts" @@ -34418,6 +32590,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/routes/map_page/url_state/global_sync.ts" @@ -34526,474 +32706,6 @@ "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -35026,22 +32738,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/selectors/map_selectors.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, { "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" @@ -35138,34 +32834,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/url_state/app_state_manager.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/map_container/map_container.d.ts" @@ -35190,14 +32858,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/toolbar_overlay/toolbar_overlay.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_control.d.ts" @@ -35214,54 +32874,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_popover.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.d.ts" @@ -35448,47 +33060,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "maps", @@ -35614,38 +33218,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -35662,14 +33234,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" @@ -35690,22 +33254,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, { "plugin": "visualize", "path": "src/plugins/visualize/common/locator.ts" @@ -35721,74 +33269,6 @@ { "plugin": "visualize", "path": "src/plugins/visualize/target/types/common/locator.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" } ], "initialIsOpen": false @@ -35833,16 +33313,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - } - ], + "references": [], "initialIsOpen": false }, { @@ -35896,11 +33367,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -35924,47 +33395,47 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -36002,14 +33473,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" @@ -36022,130 +33485,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" @@ -36186,14 +33525,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" @@ -36214,13 +33545,7 @@ "description": [], "signature": [ "{ value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -36275,7 +33600,7 @@ "label": "buildQueryFilter", "description": [], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -36296,7 +33621,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/query_string_filter.d.ts", "deprecated": false @@ -36701,6 +34026,8 @@ "description": [], "signature": [ "string | number | boolean | ", + "SerializableArray", + " | ", { "pluginId": "@kbn/utility-types", "scope": "server", @@ -36708,8 +34035,6 @@ "section": "def-server.SerializableRecord", "text": "SerializableRecord" }, - " | ", - "SerializableArray", " | null | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/build_filters.d.ts", @@ -40204,7 +37529,7 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "dashboard", @@ -40470,7 +37795,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>" + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -41435,279 +38760,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -41865,18 +39194,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -41915,19 +39232,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -41953,86 +39270,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -42129,6 +39366,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -42161,205 +39418,177 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -42379,15 +39608,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "dataViews", @@ -42419,11 +39648,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -42431,19 +39660,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -42495,183 +39724,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -42995,15 +40224,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -43105,30 +40334,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -43341,18 +40546,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -43397,6 +40590,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -43745,6 +40950,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -43789,30 +41030,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -43861,6 +41078,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -43909,34 +41142,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -43959,35 +41164,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -44011,19 +41224,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "dataViews", @@ -44080,59 +41285,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -44180,11 +41385,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -44192,11 +41397,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -44248,107 +41453,107 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "dataViews", @@ -44392,231 +41597,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -44876,19 +42081,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -44922,14 +42127,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -45092,27 +42289,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -45464,31 +42661,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "dataVisualizer", @@ -45712,36 +42909,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -46421,6 +43618,8 @@ "description": [], "signature": [ "string | number | boolean | ", + "SerializableArray", + " | ", { "pluginId": "@kbn/utility-types", "scope": "server", @@ -46428,8 +43627,6 @@ "section": "def-server.SerializableRecord", "text": "SerializableRecord" }, - " | ", - "SerializableArray", " | null | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/build_filters.d.ts", @@ -46684,7 +43881,7 @@ "label": "buildQueryFilter", "description": [], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -46707,7 +43904,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/query_string_filter.d.ts", "deprecated": false @@ -47906,7 +45103,7 @@ "section": "def-common.IndexPatternLoadExpressionFunctionDefinition", "text": "IndexPatternLoadExpressionFunctionDefinition" }, - ", \"type\" | \"telemetry\" | \"extract\" | \"inject\" | \"migrations\" | \"name\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" + ", \"name\" | \"type\" | \"telemetry\" | \"inject\" | \"extract\" | \"migrations\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" ], "path": "src/plugins/data_views/common/expressions/load_index_pattern.ts", "deprecated": false, @@ -51496,34 +48693,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.ts" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" @@ -51556,218 +48725,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" @@ -51776,42 +48733,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" @@ -51820,46 +48741,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx" @@ -51892,54 +48773,6 @@ "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -51999,14 +48832,6 @@ { "plugin": "transform", "path": "x-pack/plugins/transform/server/routes/api/transforms.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" } ], "children": [ @@ -52762,7 +49587,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false @@ -53756,7 +50581,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -54100,71 +50925,71 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "visualizations", @@ -54358,66 +51183,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/reducers/map/types.ts" @@ -54594,6 +51359,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/routes/map_page/url_state/global_sync.ts" @@ -54702,474 +51475,6 @@ "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -55202,22 +51507,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/selectors/map_selectors.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, { "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" @@ -55314,34 +51603,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/url_state/app_state_manager.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/map_container/map_container.d.ts" @@ -55366,14 +51627,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/toolbar_overlay/toolbar_overlay.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_control.d.ts" @@ -55390,54 +51643,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_popover.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.d.ts" @@ -55624,47 +51829,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "maps", @@ -55790,38 +51987,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -55838,14 +52003,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" @@ -55866,22 +52023,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, { "plugin": "visualize", "path": "src/plugins/visualize/common/locator.ts" @@ -55897,74 +52038,6 @@ { "plugin": "visualize", "path": "src/plugins/visualize/target/types/common/locator.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" } ], "initialIsOpen": false @@ -56046,16 +52119,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - } - ], + "references": [], "initialIsOpen": false }, { @@ -56223,11 +52287,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -56251,47 +52315,47 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -56497,7 +52561,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -56646,27 +52710,27 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "observability", @@ -56678,19 +52742,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "dataViews", @@ -56734,19 +52798,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "dashboard", @@ -57114,14 +53178,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" @@ -57134,130 +53190,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" @@ -57298,14 +53230,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" @@ -57449,7 +53373,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -57501,7 +53425,16 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [], + "references": [ + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + } + ], "initialIsOpen": false }, { @@ -57678,7 +53611,7 @@ "label": "RuntimeType", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -57904,162 +53837,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/attachments/add.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/attachments/add.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts" @@ -58100,34 +53877,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/session_service.test.ts" diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 09da06cd90312..e464b55190043 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_autocomplete.mdx b/api_docs/data_autocomplete.mdx index 1ab5f0813963c..fbb865d4c3f8f 100644 --- a/api_docs/data_autocomplete.mdx +++ b/api_docs/data_autocomplete.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_query.json b/api_docs/data_query.json index a2c70fc6b1c3b..7ea3b2347e395 100644 --- a/api_docs/data_query.json +++ b/api_docs/data_query.json @@ -934,7 +934,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -942,7 +950,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -966,7 +982,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -1095,7 +1111,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1103,7 +1127,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1127,7 +1159,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -1330,7 +1362,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1338,7 +1378,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1362,7 +1410,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }" + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }" ], "path": "src/plugins/data/public/query/saved_query/saved_query_service.ts", "deprecated": false, @@ -1750,7 +1798,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1758,7 +1814,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1782,7 +1846,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -1903,7 +1967,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1911,7 +1983,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1935,7 +2015,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -2555,7 +2635,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -2563,7 +2651,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -2587,7 +2683,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -2856,7 +2952,7 @@ "label": "TimeHistoryContract", "description": [], "signature": [ - "{ add: (time: ", + "{ get: () => ", { "pluginId": "data", "scope": "common", @@ -2864,7 +2960,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - ") => void; get: () => ", + "[]; add: (time: ", { "pluginId": "data", "scope": "common", @@ -2872,7 +2968,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - "[]; }" + ") => void; }" ], "path": "src/plugins/data/public/query/timefilter/time_history.ts", "deprecated": false, diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 72e44bc9b5ac2..78567a5cebb24 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_search.json b/api_docs/data_search.json index 6a7a9e1f72aa0..b741a284e5062 100644 --- a/api_docs/data_search.json +++ b/api_docs/data_search.json @@ -48,7 +48,7 @@ "signature": [ "(sessionService: Pick<", "SessionService", - ", \"start\" | \"destroy\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">, { waitForIdle = 1000 }: ", + ", \"destroy\" | \"start\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">, { waitForIdle = 1000 }: ", { "pluginId": "data", "scope": "public", @@ -83,7 +83,7 @@ "signature": [ "Pick<", "SessionService", - ", \"start\" | \"destroy\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">" + ", \"destroy\" | \"start\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">" ], "path": "src/plugins/data/public/search/session/session_helpers.ts", "deprecated": false, @@ -164,7 +164,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; destroy: () => void; readonly state$: ", + "{ destroy: () => void; start: () => string; readonly state$: ", "Observable", "<", { @@ -572,7 +572,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; destroy: () => void; readonly state$: ", + "{ destroy: () => void; start: () => string; readonly state$: ", "Observable", "<", { @@ -1039,7 +1039,7 @@ "label": "ISessionService", "description": [], "signature": [ - "{ start: () => string; destroy: () => void; readonly state$: ", + "{ destroy: () => void; start: () => string; readonly state$: ", "Observable", "<", { @@ -2846,7 +2846,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -2875,7 +2875,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_config.ts", "deprecated": false, @@ -4587,7 +4587,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -4616,7 +4616,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_configs.ts", "deprecated": false, @@ -5183,6 +5183,19 @@ "returnComment": [], "children": [] }, + { + "parentPluginId": "data", + "id": "def-common.AggType.hasPrecisionError", + "type": "Function", + "tags": [], + "label": "hasPrecisionError", + "description": [], + "signature": [ + "((aggBucket: Record) => boolean) | undefined" + ], + "path": "src/plugins/data/common/search/aggs/agg_type.ts", + "deprecated": false + }, { "parentPluginId": "data", "id": "def-common.AggType.postFlightRequest", @@ -5213,7 +5226,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, inspectorRequestAdapter?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, inspectorRequestAdapter?: ", { "pluginId": "inspector", "scope": "common", @@ -5289,15 +5302,7 @@ "label": "searchSource", "description": [], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -5313,7 +5318,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -5345,7 +5350,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -5353,7 +5358,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -5361,7 +5366,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -5385,7 +5398,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -6187,7 +6200,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -6230,7 +6243,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/aggs/param_types/base.ts", "deprecated": false @@ -6399,7 +6412,7 @@ "label": "getShiftedKey", "description": [], "signature": [ - "(agg: TBucketAggConfig, key: React.ReactText, timeShift: moment.Duration) => React.ReactText" + "(agg: TBucketAggConfig, key: string | number, timeShift: moment.Duration) => string | number" ], "path": "src/plugins/data/common/search/aggs/buckets/bucket_agg_type.ts", "deprecated": false, @@ -6426,7 +6439,7 @@ "label": "key", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/data/common/search/aggs/buckets/bucket_agg_type.ts", "deprecated": false, @@ -6921,13 +6934,7 @@ "label": "unit", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - } + "Unit" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/invalid_es_calendar_interval_error.ts", "deprecated": false, @@ -7532,32 +7539,34 @@ }, { "parentPluginId": "data", - "id": "def-common.SearchSource.setPreferredSearchStrategyId", + "id": "def-common.SearchSource.setOverwriteDataViewType", "type": "Function", "tags": [], - "label": "setPreferredSearchStrategyId", + "label": "setOverwriteDataViewType", "description": [ - "**\nPUBLIC API\n\ninternal, dont use" + "**\nPUBLIC API\n\nUsed to make the search source overwrite the actual data view type for the\nspecific requests done. This should only be needed very rarely, since it means\ne.g. we'd be treating a rollup index pattern as a regular one. Be very sure\nyou understand the consequences of using this method before using it.\n" ], "signature": [ - "(searchStrategyId: string) => void" + "(overwriteType: string | false | undefined) => void" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.SearchSource.setPreferredSearchStrategyId.$1", - "type": "string", + "id": "def-common.SearchSource.setOverwriteDataViewType.$1", + "type": "CompoundType", "tags": [], - "label": "searchStrategyId", - "description": [], + "label": "overwriteType", + "description": [ + "If `false` is passed in it will disable the overwrite, otherwise\nthe passed in value will be used as the data view type for this search source." + ], "signature": [ - "string" + "string | false | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -7572,7 +7581,7 @@ "\nsets value to a single search source field" ], "signature": [ - "(field: K, value: ", + "(field: K, value: ", { "pluginId": "data", "scope": "common", @@ -7637,7 +7646,7 @@ "\nremove field" ], "signature": [ - "(field: K) => this" + "(field: K) => this" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -7762,7 +7771,7 @@ "\nGets a single field from the fields" ], "signature": [ - "(field: K, recurse?: boolean) => ", + "(field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -7816,7 +7825,7 @@ "\nGet the field from our own fields, don't traverse up the chain" ], "signature": [ - "(field: K) => ", + "(field: K) => ", { "pluginId": "data", "scope": "common", @@ -7870,11 +7879,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" } ], "children": [], @@ -7963,7 +7972,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -7994,7 +8003,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -8142,11 +8151,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts" + "path": "src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts" }, { "plugin": "maps", @@ -9214,6 +9223,58 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.checkColumnForPrecisionError", + "type": "Function", + "tags": [], + "label": "checkColumnForPrecisionError", + "description": [], + "signature": [ + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => ", + { + "pluginId": "@kbn/utility-types", + "scope": "server", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-server.Serializable", + "text": "Serializable" + } + ], + "path": "src/plugins/data/common/search/tabify/utils.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.checkColumnForPrecisionError.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/search/tabify/utils.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.cidrToAst", @@ -11414,7 +11475,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", { "pluginId": "inspector", "scope": "common", @@ -11457,7 +11518,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/inspect/inspector_stats.ts", "deprecated": false, @@ -12675,13 +12736,7 @@ ], "signature": [ "(interval: string) => { value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -13038,13 +13093,7 @@ "description": [], "signature": [ "(interval: string) => { value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; } | null" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", @@ -13579,7 +13628,7 @@ "section": "def-common.Query", "text": "Query" }, - "> | undefined; }, never>, \"id\" | \"filter\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", + "> | undefined; }, never>, \"filter\" | \"id\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -13667,7 +13716,7 @@ "section": "def-common.QueryFilter", "text": "QueryFilter" }, - ">[] | undefined; }, never>, \"id\" | \"filters\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", + ">[] | undefined; }, never>, \"filters\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -14251,7 +14300,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", + ".HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", { "pluginId": "expressions", "scope": "common", @@ -14283,7 +14332,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", "AggExpressionType", ", ", { @@ -14339,7 +14388,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".DATE_HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", + ".DATE_HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -14371,7 +14420,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, \"timeRange\" | \"extended_bounds\"> & Pick<{ timeRange?: ", + "> | undefined; }, \"extended_bounds\" | \"timeRange\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -14403,7 +14452,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"timeRange\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"timeRange\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", "AggExpressionType", ", ", { @@ -14459,11 +14508,11 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".TERMS>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", + ".TERMS>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", "AggExpressionType", " | undefined; }, \"orderAgg\"> & Pick<{ orderAgg?: ", "AggExpressionType", - " | undefined; }, never>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", + " | undefined; }, never>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", "AggExpressionType", ", ", { @@ -18488,6 +18537,36 @@ "path": "src/plugins/data/common/search/aggs/agg_type.ts", "deprecated": false }, + { + "parentPluginId": "data", + "id": "def-common.AggTypeConfig.hasPrecisionError", + "type": "Function", + "tags": [], + "label": "hasPrecisionError", + "description": [], + "signature": [ + "((aggBucket: Record) => boolean) | undefined" + ], + "path": "src/plugins/data/common/search/aggs/agg_type.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.AggTypeConfig.hasPrecisionError.$1", + "type": "Object", + "tags": [], + "label": "aggBucket", + "description": [], + "signature": [ + "Record" + ], + "path": "src/plugins/data/common/search/aggs/agg_type.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "data", "id": "def-common.AggTypeConfig.getSerializedFormat", @@ -19929,7 +20008,7 @@ "tags": [], "label": "warning", "description": [ - "\nOptional warnings that should be surfaced to the end user" + "\nOptional warnings returned from Elasticsearch (for example, deprecation warnings)" ], "signature": [ "string | undefined" @@ -20471,7 +20550,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -20518,7 +20597,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -22785,7 +22864,7 @@ "label": "AggGroupName", "description": [], "signature": [ - "\"none\" | \"buckets\" | \"metrics\"" + "\"buckets\" | \"metrics\" | \"none\"" ], "path": "src/plugins/data/common/search/aggs/agg_groups.ts", "deprecated": false, @@ -23461,7 +23540,7 @@ "label": "EsQuerySearchAfter", "description": [], "signature": [ - "[React.ReactText, React.ReactText]" + "[string | number, string | number]" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -25192,7 +25271,7 @@ "label": "GeoPoint", "description": [], "signature": [ - "string | [number, number] | Point" + "string | Point | [number, number]" ], "path": "src/plugins/data/common/search/expressions/geo_point.ts", "deprecated": false, @@ -25681,9 +25760,9 @@ "\nSame as `ISearchOptions`, but contains only serializable fields, which can\nbe sent over the network." ], "signature": [ - "{ executionContext?: ", + "{ isStored?: boolean | undefined; isRestore?: boolean | undefined; sessionId?: string | undefined; executionContext?: ", "KibanaExecutionContext", - " | undefined; isStored?: boolean | undefined; isRestore?: boolean | undefined; sessionId?: string | undefined; strategy?: string | undefined; legacyHitsTotal?: boolean | undefined; }" + " | undefined; strategy?: string | undefined; legacyHitsTotal?: boolean | undefined; }" ], "path": "src/plugins/data/common/search/types.ts", "deprecated": false, @@ -25714,15 +25793,7 @@ "\nsearch source interface" ], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -25738,7 +25809,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -25770,7 +25841,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -25778,7 +25849,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -25786,7 +25857,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -25810,7 +25889,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -26070,13 +26149,7 @@ "description": [], "signature": [ "{ value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -26497,7 +26570,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false @@ -26532,7 +26605,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false @@ -26567,7 +26640,7 @@ "section": "def-common.DateRange", "text": "DateRange" }, - ") => { from: React.ReactText; to: React.ReactText; type: \"date_range\"; }" + ") => { from: string | number; to: string | number; type: \"date_range\"; }" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false, @@ -28011,7 +28084,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/geo_point.ts", "deprecated": false @@ -29642,7 +29715,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -30877,7 +30950,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false @@ -30912,7 +30985,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false @@ -30947,7 +31020,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false @@ -30982,7 +31055,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index a8aa1bfaeea25..0e9cacaae2723 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_ui.json b/api_docs/data_ui.json index b8acd6a7ee454..ca430c525b425 100644 --- a/api_docs/data_ui.json +++ b/api_docs/data_ui.json @@ -572,9 +572,9 @@ "signature": [ "Pick, \"children\" | \"onClick\" | \"color\" | \"onKeyDown\" | \"id\" | \"title\" | \"security\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"children\" | \"onClick\" | \"color\" | \"onKeyDown\" | \"id\" | \"title\" | \"security\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\"> & Required, \"title\" | \"id\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"title\" | \"id\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\"> & Required, \"children\" | \"onClick\" | \"color\" | \"onKeyDown\" | \"id\" | \"title\" | \"security\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"placeholder\">> & { onChange: (indexPatternId?: string | undefined) => void; indexPatternId: string; onNoIndexPatterns?: (() => void) | undefined; }" + ", \"title\" | \"id\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"placeholder\">> & { onChange: (indexPatternId?: string | undefined) => void; indexPatternId: string; onNoIndexPatterns?: (() => void) | undefined; }" ], "path": "src/plugins/data/public/ui/index_pattern_select/index_pattern_select.tsx", "deprecated": false, @@ -596,7 +596,7 @@ "section": "def-public.SearchBarProps", "text": "SearchBarProps" }, - ", \"filters\" | \"query\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"intl\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\">, \"filters\" | \"query\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\">, any> & { WrappedComponent: React.ComponentType, \"query\" | \"filters\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\">, any> & { WrappedComponent: React.ComponentType & ReactIntl.InjectedIntlProps>; }" + ", \"query\" | \"filters\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"intl\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\"> & ReactIntl.InjectedIntlProps>; }" ], "path": "src/plugins/data/public/ui/search_bar/index.tsx", "deprecated": false, diff --git a/api_docs/data_ui.mdx b/api_docs/data_ui.mdx index 4b6d148264650..3be20731ae26c 100644 --- a/api_docs/data_ui.mdx +++ b/api_docs/data_ui.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_views.json b/api_docs/data_views.json index 3cd0d35e51890..9e6e0265948f3 100644 --- a/api_docs/data_views.json +++ b/api_docs/data_views.json @@ -1804,7 +1804,7 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "dashboard", @@ -2070,7 +2070,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>" + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -3118,279 +3118,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -3548,18 +3552,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -3598,19 +3590,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -3636,86 +3628,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -3812,6 +3724,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -3844,14 +3776,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -4030,39 +3954,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "data", @@ -4118,159 +4022,159 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -4282,15 +4186,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "data", @@ -4342,11 +4246,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -4354,19 +4258,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -4418,183 +4322,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -4918,15 +4822,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -5028,30 +4932,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -5264,18 +5144,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -5320,6 +5188,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -5668,6 +5548,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -5712,30 +5628,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -5784,6 +5676,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -5832,34 +5740,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -5882,35 +5762,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -5934,19 +5822,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" } ], "children": [], @@ -6011,59 +5891,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -6111,11 +5991,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -6123,11 +6003,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -6178,40 +6058,40 @@ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { "plugin": "data", @@ -6243,79 +6123,79 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "data", @@ -6359,231 +6239,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -6843,19 +6723,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -6889,14 +6769,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -7059,27 +6931,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -7431,31 +7303,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "data", @@ -7667,36 +7539,36 @@ "path": "src/plugins/data/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -8143,7 +8015,7 @@ "signature": [ "() => Promise, \"type\" | \"description\" | \"name\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", + ", \"name\" | \"type\" | \"description\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", "UserProvidedValues", ">>" ], @@ -8950,7 +8822,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -10664,7 +10536,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -10760,6 +10632,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/plugin.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/sourcerer/routes/index.ts" + }, + { + "plugin": "timelines", + "path": "x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/server/data_indexing/indexing_routes.ts" @@ -11118,7 +10998,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -13238,7 +13118,7 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "dashboard", @@ -13504,7 +13384,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>" + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -14605,279 +14485,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -15035,18 +14919,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -15085,19 +14957,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -15123,86 +14995,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -15299,6 +15091,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -15331,14 +15143,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -15517,39 +15321,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "data", @@ -15605,159 +15389,159 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -15769,15 +15553,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "data", @@ -15829,11 +15613,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -15841,19 +15625,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -15905,183 +15689,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -16405,15 +16189,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -16515,30 +16299,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -16751,18 +16511,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -16807,6 +16555,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -17155,6 +16915,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -17199,30 +16995,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -17271,6 +17043,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -17296,56 +17084,28 @@ "path": "src/plugins/index_pattern_management/target/types/public/components/utils.d.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, { "plugin": "inputControlVis", @@ -17369,35 +17129,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -17421,19 +17189,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" } ], "children": [], @@ -17498,59 +17258,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -17598,11 +17358,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -17610,11 +17370,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -17665,40 +17425,40 @@ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { "plugin": "data", @@ -17730,79 +17490,79 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "data", @@ -17846,231 +17606,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -18330,19 +18090,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -18376,14 +18136,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -18546,27 +18298,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -18918,31 +18670,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "data", @@ -19154,36 +18906,36 @@ "path": "src/plugins/data/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -19374,7 +19126,7 @@ "section": "def-common.IndexPatternLoadExpressionFunctionDefinition", "text": "IndexPatternLoadExpressionFunctionDefinition" }, - ", \"type\" | \"telemetry\" | \"extract\" | \"inject\" | \"migrations\" | \"name\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" + ", \"name\" | \"type\" | \"telemetry\" | \"inject\" | \"extract\" | \"migrations\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" ], "path": "src/plugins/data_views/common/expressions/load_index_pattern.ts", "deprecated": false, @@ -21827,34 +21579,6 @@ "plugin": "data", "path": "src/plugins/data/public/ui/filter_bar/filter_bar.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" @@ -21887,218 +21611,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" @@ -22107,42 +21619,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" @@ -22151,46 +21627,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx" @@ -22223,54 +21659,6 @@ "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -22331,14 +21719,6 @@ "plugin": "transform", "path": "x-pack/plugins/transform/server/routes/api/transforms.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/query/timefilter/get_time.test.ts" @@ -23094,7 +22474,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false @@ -23995,7 +23375,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24320,11 +23700,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -24348,11 +23728,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "data", @@ -24360,39 +23740,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -24598,7 +23978,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24779,27 +24159,27 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "observability", @@ -24847,19 +24227,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "data", @@ -24951,19 +24331,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "dashboard", @@ -25435,7 +24815,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -25467,7 +24847,7 @@ "label": "RuntimeType", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, diff --git a/api_docs/data_visualizer.json b/api_docs/data_visualizer.json index 2ea93ccfcadb5..762ccaaab4fe6 100644 --- a/api_docs/data_visualizer.json +++ b/api_docs/data_visualizer.json @@ -560,9 +560,6 @@ "tags": [], "label": "fieldName", "description": [], - "signature": [ - "string | undefined" - ], "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false }, @@ -574,7 +571,7 @@ "label": "type", "description": [], "signature": [ - "\"number\" | \"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"text\"" + "\"number\" | \"boolean\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"keyword\" | \"text\"" ], "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false @@ -602,6 +599,19 @@ "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false, "children": [ + { + "parentPluginId": "dataVisualizer", + "id": "def-common.FieldVisStats.error", + "type": "Object", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "Error | undefined" + ], + "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", + "deprecated": false + }, { "parentPluginId": "dataVisualizer", "id": "def-common.FieldVisStats.cardinality", @@ -821,7 +831,7 @@ "label": "topValues", "description": [], "signature": [ - "{ key: React.ReactText; doc_count: number; }[] | undefined" + "{ key: string | number; doc_count: number; }[] | undefined" ], "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false @@ -1032,20 +1042,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "dataVisualizer", - "id": "def-common.InputData", - "type": "Type", - "tags": [], - "label": "InputData", - "description": [], - "signature": [ - "any[]" - ], - "path": "x-pack/plugins/data_visualizer/common/types/index.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "dataVisualizer", "id": "def-common.JobFieldType", @@ -1054,7 +1050,7 @@ "label": "JobFieldType", "description": [], "signature": [ - "\"number\" | \"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"text\"" + "\"number\" | \"boolean\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"keyword\" | \"text\"" ], "path": "x-pack/plugins/data_visualizer/common/types/job_field_type.ts", "deprecated": false, diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 7ff55c5ddc95d..450098853a987 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -14,15 +14,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Referencing plugin(s) | Remove By | | ---------------|-----------|-----------| | | securitySolution | - | -| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, osquery, securitySolution, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | -| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, securitySolution, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | -| | dataViews, timelines, monitoring, securitySolution, indexPatternManagement, stackAlerts, transform | - | -| | home, savedObjects, security, fleet, indexPatternFieldEditor, discover, dashboard, lens, observability, maps, fileUpload, dataVisualizer, ml, infra, graph, monitoring, osquery, securitySolution, stackAlerts, transform, upgradeAssistant, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, kibanaOverview, savedObjectsManagement, visualize, visTypeTimelion, visTypeTimeseries, visTypeVega | - | -| | dataViews, timelines, monitoring, securitySolution, indexPatternManagement, stackAlerts, transform, data | - | -| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, securitySolution, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | -| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, osquery, securitySolution, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | -| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, securitySolution, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries | - | -| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, osquery, securitySolution, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega | - | +| | home, savedObjects, security, fleet, indexPatternFieldEditor, discover, dashboard, lens, observability, maps, fileUpload, dataVisualizer, ml, infra, graph, monitoring, securitySolution, stackAlerts, transform, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, kibanaOverview, savedObjectsManagement, visualize, visTypeTimelion, visTypeTimeseries, visTypeVega | - | +| | data, lens, visTypeTimeseries, infra, maps, securitySolution, timelines, visTypeTimelion | - | | | apm, security, securitySolution | - | | | apm, security, securitySolution | - | | | reporting, encryptedSavedObjects, actions, ml, dataEnhanced, logstash, securitySolution | - | @@ -30,28 +23,35 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | securitySolution | - | | | dataViews, visTypeTimeseries, maps, lens, discover, data | - | | | dataViews, discover, observability, savedObjects, security, dashboard, lens, maps, graph, stackAlerts, transform, indexPatternManagement, inputControlVis, savedObjectsManagement, visTypeTimelion, data | - | +| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | +| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | +| | dataViews, monitoring, indexPatternManagement, stackAlerts, transform | - | | | dataViews, discover, transform, canvas | - | | | dataViews, observability, indexPatternEditor | - | -| | dataViews | - | | | dataViews, indexPatternManagement | - | +| | dataViews | - | +| | dataViews, monitoring, indexPatternManagement, stackAlerts, transform, data | - | | | dataViews, discover, transform, canvas, data | - | | | dataViews, data | - | | | dataViews, data | - | | | dataViews | - | | | dataViews, observability, indexPatternEditor, data | - | +| | dataViews, discover, observability, savedObjects, security, dashboard, lens, maps, graph, stackAlerts, transform, indexPatternManagement, inputControlVis, savedObjectsManagement, visTypeTimelion, data | - | +| | dataViews, indexPatternManagement, data | - | | | dataViews, visualizations, dashboard, data | - | +| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | | | dataViews, data | - | | | dataViews, visTypeTimeseries, maps, lens, discover, data | - | -| | dataViews, discover, observability, savedObjects, security, dashboard, lens, maps, graph, stackAlerts, transform, indexPatternManagement, inputControlVis, savedObjectsManagement, visTypeTimelion, data | - | | | dataViews, discover, dashboard, lens, visualize | - | -| | dataViews, indexPatternManagement, data | - | +| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | | | dataViews, maps | - | | | dataViews, discover, transform, canvas | - | +| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries | - | +| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega | - | | | dataViews, visTypeTimeseries, maps, lens, discover | - | | | dataViews, maps | - | | | fleet, indexPatternFieldEditor, discover, dashboard, lens, ml, stackAlerts, indexPatternManagement, visTypePie, visTypeTable, visTypeTimeseries, visTypeXy, visTypeVislib | - | | | reporting, visTypeTimeseries | - | -| | data, lens, visTypeTimeseries, infra, maps, visTypeTimelion | - | | | maps | - | | | dashboard, maps, graph, visualize | - | | | spaces, security, reporting, actions, alerting, ml, fleet, remoteClusters, graph, indexLifecycleManagement, maps, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | - | @@ -75,8 +75,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | spaces, savedObjectsManagement | - | | | reporting | - | | | reporting | - | -| | ml, infra, reporting, ingestPipelines | - | -| | ml, infra, reporting, ingestPipelines | - | +| | ml, infra, reporting, ingestPipelines, upgradeAssistant | - | +| | ml, infra, reporting, ingestPipelines, upgradeAssistant | - | | | cloud, apm | - | | | visTypeVega | - | | | monitoring, visTypeVega | - | @@ -96,14 +96,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | ml | - | | | actions | - | | | console | - | -| | security, reporting, apm, infra, securitySolution | 7.16 | -| | security, reporting, apm, infra, securitySolution | 7.16 | +| | security, reporting, apm, infra | 7.16 | +| | security, reporting, apm, infra | 7.16 | | | security | 7.16 | -| | discover, visualizations, dashboard, lens, observability, maps, dashboardEnhanced, discoverEnhanced, securitySolution, visualize | 8.1 | -| | lens, timelines, securitySolution, stackAlerts, transform, indexPatternManagement, visTypeTimelion, visTypeVega | 8.1 | -| | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | -| | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | -| | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | | | dataViews, fleet, infra, monitoring, stackAlerts, indexPatternManagement | 8.1 | | | dataViews, fleet, infra, monitoring, stackAlerts, indexPatternManagement, data | 8.1 | | | dataViews | 8.1 | @@ -118,14 +113,21 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | visTypeTimeseries, graph, indexPatternManagement, dataViews | 8.1 | | | dataViews, indexPatternManagement | 8.1 | | | visTypeTimeseries | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, infra, dashboardEnhanced, discoverEnhanced, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, infra, dashboardEnhanced, discoverEnhanced, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | | | visTypeTimeseries | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, infra, dashboardEnhanced, discoverEnhanced, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | | | visTypeTimeseries | 8.1 | | | visTypeTimeseries, graph, indexPatternManagement | 8.1 | | | discover, maps, inputControlVis | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, dashboardEnhanced, discoverEnhanced, visualize | 8.1 | | | discover, maps, inputControlVis | 8.1 | | | lens, infra, apm, graph, monitoring, stackAlerts, transform | 8.1 | +| | lens, stackAlerts, transform, indexPatternManagement, visTypeTimelion, visTypeVega | 8.1 | | | observability | 8.1 | +| | observability | 8.1 | | | observability | 8.1 | +| | observability | 8.1 | | | indexPatternManagement | 8.1 | | | indexPatternManagement | 8.1 | | | indexPatternManagement | 8.1 | @@ -138,17 +140,14 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | visualizations, visDefaultEditor | 8.1 | | | visualizations, visDefaultEditor | 8.1 | | | visualize | 8.1 | -| | timelines | 8.1 | -| | timelines | 8.1 | -| | timelines | 8.1 | | | dashboardEnhanced | 8.1 | | | dashboardEnhanced | 8.1 | | | discoverEnhanced | 8.1 | | | discoverEnhanced | 8.1 | -| | cases, alerting, dataEnhanced | 8.1 | -| | actions, alerting, cases, dataEnhanced | 8.1 | -| | cases, alerting, dataEnhanced | 8.1 | -| | cases, alerting, dataEnhanced | 8.1 | +| | alerting, dataEnhanced | 8.1 | +| | alerting, dataEnhanced | 8.1 | +| | actions, alerting, dataEnhanced | 8.1 | +| | alerting, dataEnhanced | 8.1 | ## Unreferenced deprecated APIs @@ -157,14 +156,20 @@ Safe to remove. | Deprecated API | | ---------------| -| | | | +| | | | | | -| | | | | | +| | | | +| | +| | +| | +| | +| | +| | | | | | | | @@ -201,15 +206,10 @@ Safe to remove. | | | | | | -| | -| | -| | -| | -| | -| | | | | | | | +| | | | | | | | @@ -222,9 +222,9 @@ Safe to remove. | | | | | | +| | | | | | -| | | | | | | | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index ef22bf4c497ee..bce46bdee8533 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -35,8 +35,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode) | 8.1 | -| | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder) | 8.1 | | | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode) | 8.1 | +| | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder) | 8.1 | | | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode) | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24) | - | @@ -54,8 +54,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | - | | | [license_context.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/public/context/license/license_context.tsx#:~:text=license%24) | - | | | [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | - | -| | [data_view.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view.ts#:~:text=spacesService) | 7.16 | -| | [data_view.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view.ts#:~:text=getSpaceId) | 7.16 | +| | [route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view/route.ts#:~:text=spacesService) | 7.16 | +| | [route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view/route.ts#:~:text=getSpaceId) | 7.16 | @@ -66,27 +66,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes) | - | | | [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes) | - | | | [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes) | - | -| | [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | +| | [embeddable.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getFunction) | - | | | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.test.ts#:~:text=getFunctions) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getTypes), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getTypes), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getTypes) | - | | | [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [state.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/types/state.d.ts#:~:text=Render), [state.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/types/state.d.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render), [pie.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/pie.ts#:~:text=Render), [pie.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/pie.ts#:~:text=Render)+ 6 more | - | -| | [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | +| | [embeddable.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getFunction) | - | | | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.test.ts#:~:text=getFunctions) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getTypes), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getTypes), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getTypes) | - | -| | [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | - - - -## cases - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=KueryNode)+ 25 more | 8.1 | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder)+ 36 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=KueryNode)+ 25 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=KueryNode)+ 25 more | 8.1 | +| | [embeddable.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | @@ -124,8 +113,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [export_csv_action.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/actions/export_csv_action.tsx#:~:text=fieldFormats) | - | | | [save_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/save_dashboard.ts#:~:text=esFilters), [save_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/save_dashboard.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [sync_dashboard_container_input.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_container_input.ts#:~:text=esFilters), [sync_dashboard_container_input.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_container_input.ts#:~:text=esFilters), [sync_dashboard_container_input.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_container_input.ts#:~:text=esFilters), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=esFilters)+ 15 more | 8.1 | | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 25 more | 8.1 | -| | [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract), [make_default_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/test_helpers/make_default_services.ts#:~:text=IndexPatternsContract), [make_default_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/test_helpers/make_default_services.ts#:~:text=IndexPatternsContract), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract)+ 2 more | - | +| | [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [load_saved_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/load_saved_dashboard_state.ts#:~:text=ensureDefaultDataView), [load_saved_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/load_saved_dashboard_state.ts#:~:text=ensureDefaultDataView) | - | | | [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern)+ 6 more | - | | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 25 more | 8.1 | @@ -149,8 +138,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=esFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=esFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=esFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter) | 8.1 | -| | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter) | 8.1 | +| | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter) | 8.1 | @@ -160,8 +149,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternField), [agg_config.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/agg_config.test.ts#:~:text=IndexPatternField), [agg_config.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/agg_config.test.ts#:~:text=IndexPatternField), [_terms_other_bucket_helper.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.test.ts#:~:text=IndexPatternField)+ 11 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 29 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 88 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [query_suggestion_provider.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/autocomplete/providers/query_suggestion_provider.ts#:~:text=IFieldType), [query_suggestion_provider.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/autocomplete/providers/query_suggestion_provider.ts#:~:text=IFieldType)+ 36 more | 8.1 | @@ -172,10 +161,10 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternFieldMap) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternSpec), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternSpec) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternType), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternType) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 29 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 88 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternListItem) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 88 more | - | | | [aggs_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/aggs/aggs_service.ts#:~:text=indexPatternsServiceFactory), [esaggs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/expressions/esaggs.ts#:~:text=indexPatternsServiceFactory), [search_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/search_service.ts#:~:text=indexPatternsServiceFactory) | - | | | [data_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions), [data_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions) | - | @@ -186,8 +175,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | -| | [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder)+ 2 more | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | +| | [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder)+ 2 more | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | | | [session_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/session_service.ts#:~:text=authc) | - | @@ -205,8 +194,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternType) | - | | | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternListItem) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternType) | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IIndexPattern), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=IIndexPattern), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=IIndexPattern) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes) | - | @@ -214,23 +203,23 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternFieldMap) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=intervalName) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsContract) | - | +| | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternListItem) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternType) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsService) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsContract) | - | | | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=ensureDefaultDataView) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern) | - | -| | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternListItem) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName) | 8.1 | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=flattenHit) | - | | | [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=addScriptedField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=addScriptedField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=addScriptedField) | 8.1 | | | [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=removeScriptedField) | 8.1 | | | [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getNonScriptedFields) | 8.1 | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=getScriptedFields), [register_index_pattern_usage_collection.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/register_index_pattern_usage_collection.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields)+ 1 more | 8.1 | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsService) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName) | 8.1 | @@ -246,13 +235,13 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 60 more | - | -| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField)+ 20 more | - | +| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 54 more | - | +| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField)+ 20 more | - | | | [file_data_visualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/file_data_visualizer/file_data_visualizer.tsx#:~:text=indexPatterns), [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=indexPatterns) | - | -| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField)+ 20 more | - | -| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 60 more | - | -| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField)+ 5 more | - | -| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 25 more | - | +| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField)+ 20 more | - | +| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 54 more | - | +| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField)+ 5 more | - | +| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 22 more | - | @@ -260,34 +249,34 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | -| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | -| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | -| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | -| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | -| | [build_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/build_services.ts#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=indexPatterns), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=indexPatterns) | - | -| | [histogram.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/chart/histogram.tsx#:~:text=fieldFormats) | - | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/get_context_url.tsx#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/get_context_url.tsx#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=esFilters)+ 17 more | 8.1 | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | -| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 16 more | - | -| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | -| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | -| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=ensureDefaultDataView), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | -| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | -| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/context_app.tsx#:~:text=IndexPatternField)+ 94 more | - | -| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 186 more | - | -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | -| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | -| | [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | - | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/embeddable/search_embeddable_factory.d.ts#:~:text=executeTriggerActions) | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | +| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | +| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | +| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | +| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | +| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | +| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | +| | [build_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/build_services.ts#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=indexPatterns), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=indexPatterns) | - | +| | [histogram.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/chart/histogram.tsx#:~:text=fieldFormats) | - | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/get_context_url.tsx#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/get_context_url.tsx#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=esFilters)+ 17 more | 8.1 | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | +| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 16 more | - | +| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | +| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | +| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=ensureDefaultDataView), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | +| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | +| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | +| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | +| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | +| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/context_app.tsx#:~:text=IndexPatternField)+ 94 more | - | +| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 186 more | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | +| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | +| | [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | - | +| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/embeddable/search_embeddable_factory.d.ts#:~:text=executeTriggerActions) | - | | | [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | | | [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | @@ -411,16 +400,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | +| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | | | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField)+ 8 more | - | | | [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName) | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/plugin.ts#:~:text=indexPatterns), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/plugin.ts#:~:text=indexPatterns) | - | | | [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=fieldFormats), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=fieldFormats), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=fieldFormats), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=fieldFormats), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=fieldFormats), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/plugin.ts#:~:text=fieldFormats), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=fieldFormats), [setup_environment.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/setup_environment.tsx#:~:text=fieldFormats) | - | | | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField)+ 8 more | - | -| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | +| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | | | [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName) | 8.1 | | | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField) | - | -| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 9 more | - | +| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 9 more | - | | | [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName) | 8.1 | @@ -441,16 +430,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [test_script.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=esQuery), [test_script.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=esQuery), [test_script.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=esQuery) | 8.1 | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType) | 8.1 | | | [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [index_header.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx#:~:text=IIndexPattern), [index_header.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx#:~:text=IIndexPattern), [index_header.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts#:~:text=IIndexPattern), [index_header.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern)+ 6 more | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 42 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract)+ 2 more | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern)+ 82 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem)+ 6 more | - | +| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 42 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern)+ 82 more | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField) | 8.1 | | | [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | 8.1 | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields) | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/constants/index.ts#:~:text=getKbnTypeNames), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/constants/index.ts#:~:text=getKbnTypeNames) | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 16 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType) | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 16 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern)+ 36 more | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField) | 8.1 | | | [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | 8.1 | @@ -500,8 +489,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=indexPatterns), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=indexPatterns), [controls_tab.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/controls_tab.tsx#:~:text=indexPatterns) | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter)+ 4 more | 8.1 | -| | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [list_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/list_control_editor.tsx#:~:text=IndexPatternField)+ 14 more | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPatternsContract), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.ts#:~:text=IndexPatternsContract), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=IndexPatternsContract), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract)+ 18 more | - | +| | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [list_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/list_control_editor.tsx#:~:text=IndexPatternField)+ 14 more | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPattern), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPattern), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPattern), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/create_search_source.ts#:~:text=IndexPattern), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/create_search_source.ts#:~:text=IndexPattern), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPattern), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPattern), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPattern), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPattern), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPattern)+ 54 more | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter)+ 4 more | 8.1 | | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | @@ -542,9 +531,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esKuery), [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esKuery), [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esKuery) | 8.1 | | | [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esQuery), [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx#:~:text=esQuery), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=esQuery), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=esQuery), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=esQuery), [datapanel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx#:~:text=esQuery), [datapanel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx#:~:text=esQuery)+ 1 more | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter)+ 16 more | 8.1 | +| | [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract)+ 22 more | - | | | [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField)+ 8 more | - | | | [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService) | - | -| | [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract)+ 22 more | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/plugin.ts#:~:text=ensureDefaultDataView), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/plugin.ts#:~:text=ensureDefaultDataView) | - | | | [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPattern), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/existing_fields.d.ts#:~:text=IndexPattern), [existing_fields.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/existing_fields.d.ts#:~:text=IndexPattern), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPattern), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPattern)+ 36 more | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter)+ 16 more | 8.1 | @@ -595,19 +584,19 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | | | [kibana_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/kibana_services.ts#:~:text=indexPatterns) | - | | | [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=esFilters), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=esFilters), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=esFilters), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=esFilters), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=esFilters), [es_geo_line_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_line_source/es_geo_line_source.tsx#:~:text=esFilters), [es_geo_line_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_line_source/es_geo_line_source.tsx#:~:text=esFilters), [es_geo_line_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_line_source/es_geo_line_source.tsx#:~:text=esFilters), [app_sync.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/url_state/app_sync.ts#:~:text=esFilters), [app_sync.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/url_state/app_sync.ts#:~:text=esFilters)+ 9 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 115 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 117 more | 8.1 | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract) | - | | | [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 272 more | - | | | [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract) | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern)+ 206 more | - | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 115 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 117 more | 8.1 | | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | | | [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 131 more | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern)+ 98 more | - | | | [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService) | - | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 115 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 117 more | 8.1 | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | | | [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=indexPatternsServiceFactory), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/plugin.ts#:~:text=indexPatternsServiceFactory), [indexing_routes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts#:~:text=indexPatternsServiceFactory) | - | | | [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings) | - | @@ -620,13 +609,13 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/datavisualizer/index_based/index_data_visualizer.tsx#:~:text=indexPatterns), [file_datavisualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/datavisualizer/file_based/file_datavisualizer.tsx#:~:text=indexPatterns), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=indexPatterns), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=indexPatterns), [import_jobs_flyout.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx#:~:text=indexPatterns), [anomaly_charts_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx#:~:text=indexPatterns) | - | +| | [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=indexPatterns), [import_jobs_flyout.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx#:~:text=indexPatterns), [anomaly_charts_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx#:~:text=indexPatterns) | - | | | [dependency_cache.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=fieldFormats), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=fieldFormats), [dependency_cache.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/target/types/public/application/util/dependency_cache.d.ts#:~:text=fieldFormats) | - | | | [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter) | 8.1 | | | [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter) | 8.1 | | | [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter) | 8.1 | -| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 14 more | - | -| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 14 more | - | +| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 15 more | - | +| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 15 more | - | | | [check_license.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/license/check_license.tsx#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24) | - | | | [annotations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/server/routes/annotations.ts#:~:text=authc) | - | @@ -657,18 +646,20 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract) | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 38 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 40 more | - | | | [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec) | - | | | [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=indexPatterns), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=indexPatterns), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=indexPatterns), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/pages/alerts/index.tsx#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns)+ 5 more | - | -| | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters) | 8.1 | +| | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters) | 8.1 | | | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter) | 8.1 | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter) | 8.1 | | | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter) | 8.1 | | | [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec) | - | | | [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract) | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 38 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 40 more | - | | | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter) | 8.1 | | | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter) | 8.1 | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 14 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter) | 8.1 | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 15 more | - | | | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter) | 8.1 | | | [use_discover_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx#:~:text=urlGenerator) | - | @@ -678,10 +669,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern)+ 2 more | - | -| | [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=indexPatterns), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=indexPatterns) | - | -| | [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern)+ 2 more | - | -| | [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern) | - | | | [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=urlGenerator), [use_discover_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/common/hooks/use_discover_link.tsx#:~:text=urlGenerator) | - | @@ -721,8 +708,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=fieldsFromSource), [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=fieldsFromSource) | - | | | [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=IndexPattern), [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=IndexPattern) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/plugin.ts#:~:text=fieldFormats) | - | -| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/ilm_policy_link.tsx#:~:text=getUrl) | - | -| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/ilm_policy_link.tsx#:~:text=getUrl) | - | +| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/components/ilm_policy_link.tsx#:~:text=getUrl) | - | +| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/components/ilm_policy_link.tsx#:~:text=getUrl) | - | | | [get_csv_panel_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx#:~:text=license%24), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/share_context_menu/index.ts#:~:text=license%24), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/index.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/plugin.ts#:~:text=license%24), [get_csv_panel_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.test.ts#:~:text=license%24) | - | | | [reporting_usage_collector.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/usage/reporting_usage_collector.ts#:~:text=license%24), [core.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/core.ts#:~:text=license%24) | - | | | [get_user.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/routes/lib/get_user.ts#:~:text=authc) | - | @@ -818,25 +805,11 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [use_risky_hosts_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_risky_hosts_dashboard_button_href.ts#:~:text=dashboardUrlGenerator), [use_risky_hosts_dashboard_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_risky_hosts_dashboard_links.tsx#:~:text=dashboardUrlGenerator), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=dashboardUrlGenerator) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern)+ 30 more | - | -| | [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern)+ 74 more | - | -| | [middleware.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=indexPatterns), [plugin.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/plugin.tsx#:~:text=indexPatterns), [dependencies_start_mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/mock/endpoint/dependencies_start_mock.ts#:~:text=indexPatterns) | - | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx#:~:text=esFilters), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters)+ 14 more | 8.1 | -| | [expandable_network.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx#:~:text=esQuery), [expandable_network.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx#:~:text=esQuery), [events_viewer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx#:~:text=esQuery), [events_viewer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx#:~:text=esQuery)+ 30 more | 8.1 | -| | [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter)+ 165 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern)+ 158 more | - | -| | [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern)+ 30 more | - | -| | [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter)+ 165 more | 8.1 | -| | [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern)+ 10 more | - | -| | [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter)+ 165 more | 8.1 | +| | [middleware.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=indexPatterns), [dependencies_start_mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/mock/endpoint/dependencies_start_mock.ts#:~:text=indexPatterns) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/sourcerer/routes/index.ts#:~:text=indexPatternsServiceFactory) | - | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode)+ 4 more | - | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode)+ 4 more | - | | | [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=authc), [create_signals_migration_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/create_signals_migration_route.ts#:~:text=authc), [delete_signals_migration_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/delete_signals_migration_route.ts#:~:text=authc), [finalize_signals_migration_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/finalize_signals_migration_route.ts#:~:text=authc), [open_close_signals_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/open_close_signals_route.ts#:~:text=authc), [preview_rules_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/preview_rules_route.ts#:~:text=authc), [common.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/timeline/utils/common.ts#:~:text=authc) | - | -| | [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=spacesService), [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=spacesService), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/plugin.ts#:~:text=spacesService) | 7.16 | -| | [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=getSpaceId), [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=getSpaceId), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/plugin.ts#:~:text=getSpaceId) | 7.16 | | | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/index.tsx#:~:text=onAppLeave) | - | | | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/bottom_bar/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/bottom_bar/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/index.tsx#:~:text=AppLeaveHandler), [routes.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/routes.tsx#:~:text=AppLeaveHandler), [routes.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/routes.tsx#:~:text=AppLeaveHandler)+ 3 more | - | @@ -885,15 +858,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern) | - | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType) | 8.1 | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx#:~:text=esQuery) | 8.1 | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter)+ 5 more | 8.1 | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern)+ 8 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter)+ 5 more | 8.1 | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType) | 8.1 | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter)+ 5 more | 8.1 | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType) | 8.1 | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts#:~:text=indexPatternsServiceFactory) | - | @@ -922,7 +887,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [external_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_deprecation_logs_step/external_links.tsx#:~:text=indexPatterns) | - | +| | [external_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx#:~:text=getUrl), [app_context.mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/__jest__/client_integration/helpers/app_context.mock.ts#:~:text=getUrl) | - | +| | [external_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx#:~:text=getUrl), [app_context.mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/__jest__/client_integration/helpers/app_context.mock.ts#:~:text=getUrl) | - | | | [reindex_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24) | - | @@ -1002,20 +968,20 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService)+ 44 more | - | -| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 40 more | - | +| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 36 more | - | | | [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField)+ 2 more | - | -| | [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=indexPatterns), [combo_box_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx#:~:text=indexPatterns), [query_bar_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/query_bar_wrapper.tsx#:~:text=indexPatterns), [annotation_row.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx#:~:text=indexPatterns), [metrics_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/metrics_type.ts#:~:text=indexPatterns), [convert_series_to_datatable.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.ts#:~:text=indexPatterns), [timeseries_vis_renderer.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/timeseries_vis_renderer.tsx#:~:text=indexPatterns) | - | +| | [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=indexPatterns), [combo_box_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx#:~:text=indexPatterns), [query_bar_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/query_bar_wrapper.tsx#:~:text=indexPatterns), [annotation_row.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx#:~:text=indexPatterns), [metrics_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/metrics_type.ts#:~:text=indexPatterns), [convert_series_to_datatable.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.ts#:~:text=indexPatterns), [timeseries_visualization.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx#:~:text=indexPatterns) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/plugin.ts#:~:text=fieldFormats) | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig) | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter) | 8.1 | | | [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService)+ 44 more | - | -| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 40 more | - | +| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 36 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter) | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig) | 8.1 | | | [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField) | - | -| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 15 more | - | +| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 13 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService)+ 44 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/plugin.ts#:~:text=fieldFormats) | - | @@ -1090,8 +1056,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter)+ 6 more | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/plugin.ts#:~:text=ensureDefaultDataView), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/plugin.ts#:~:text=ensureDefaultDataView) | - | | | [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern) | - | -| | [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned) | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter)+ 6 more | 8.1 | +| | [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned) | 8.1 | | | [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern) | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter)+ 6 more | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/plugin.ts#:~:text=ensureDefaultDataView) | - | diff --git a/api_docs/discover.json b/api_docs/discover.json index d1c21d5e5b82f..4fe053761869a 100644 --- a/api_docs/discover.json +++ b/api_docs/discover.json @@ -21,7 +21,7 @@ }, ">" ], - "path": "src/plugins/discover/public/saved_searches/get_saved_searches.ts", + "path": "src/plugins/discover/public/services/saved_searches/get_saved_searches.ts", "deprecated": false, "children": [ { @@ -34,7 +34,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/get_saved_searches.ts", + "path": "src/plugins/discover/public/services/saved_searches/get_saved_searches.ts", "deprecated": false, "isRequired": false }, @@ -48,7 +48,7 @@ "signature": [ "GetSavedSearchDependencies" ], - "path": "src/plugins/discover/public/saved_searches/get_saved_searches.ts", + "path": "src/plugins/discover/public/services/saved_searches/get_saved_searches.ts", "deprecated": false, "isRequired": true } @@ -66,7 +66,7 @@ "signature": [ "(id?: string | undefined) => string" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -79,7 +79,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": false } @@ -97,7 +97,7 @@ "signature": [ "(id?: string | undefined) => string" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -110,7 +110,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": false } @@ -136,7 +136,7 @@ }, ") => Promise" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -155,7 +155,7 @@ "text": "SavedSearch" } ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": true } @@ -172,10 +172,10 @@ "description": [], "signature": [ "() => Promise" ], - "path": "src/plugins/discover/public/shared/index.ts", + "path": "src/plugins/discover/public/utils/index.ts", "deprecated": false, "children": [], "returnComment": [], @@ -199,7 +199,7 @@ }, ") => Promise" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -218,7 +218,7 @@ "text": "SavedSearch" } ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": true } @@ -471,6 +471,37 @@ ], "path": "src/plugins/discover/public/locator.ts", "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverAppLocatorParams.viewMode", + "type": "CompoundType", + "tags": [], + "label": "viewMode", + "description": [ + "\nTable view: Documents vs Field Statistics" + ], + "signature": [ + "VIEW_MODE", + " | undefined" + ], + "path": "src/plugins/discover/public/locator.ts", + "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverAppLocatorParams.hideAggregatedPreview", + "type": "CompoundType", + "tags": [], + "label": "hideAggregatedPreview", + "description": [ + "\nHide mini distribution/preview charts when in Field Statistics mode" + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/discover/public/locator.ts", + "deprecated": false } ], "initialIsOpen": false @@ -692,6 +723,33 @@ ], "path": "src/plugins/discover/public/url_generator.ts", "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverUrlGeneratorState.viewMode", + "type": "CompoundType", + "tags": [], + "label": "viewMode", + "description": [], + "signature": [ + "VIEW_MODE", + " | undefined" + ], + "path": "src/plugins/discover/public/url_generator.ts", + "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverUrlGeneratorState.hideAggregatedPreview", + "type": "CompoundType", + "tags": [], + "label": "hideAggregatedPreview", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/discover/public/url_generator.ts", + "deprecated": false } ], "initialIsOpen": false @@ -731,7 +789,7 @@ "SearchOutput", ">" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false, "children": [ { @@ -751,7 +809,7 @@ "text": "SavedSearch" } ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false, "children": [], "returnComment": [] @@ -766,7 +824,7 @@ "tags": [], "label": "SavedSearch", "description": [], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false, "children": [ { @@ -777,15 +835,7 @@ "label": "searchSource", "description": [], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -801,7 +851,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -833,7 +883,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -841,7 +891,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -849,7 +899,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -873,7 +931,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -955,7 +1013,7 @@ "SavedObjectReference", "[]; }; }" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -968,7 +1026,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -981,7 +1039,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -995,7 +1053,7 @@ "SortOrder", "[] | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1008,7 +1066,7 @@ "signature": [ "string[] | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1021,7 +1079,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1036,7 +1094,7 @@ "DiscoverGridSettingsColumn", "> | undefined; } | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1049,7 +1107,7 @@ "signature": [ "boolean | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1062,7 +1120,7 @@ "signature": [ "{ outcome?: \"conflict\" | \"aliasMatch\" | \"exactMatch\" | undefined; aliasTargetId?: string | undefined; errorJSON?: string | undefined; } | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1076,7 +1134,7 @@ "VIEW_MODE", " | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1089,7 +1147,7 @@ "signature": [ "boolean | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false } ], @@ -1119,7 +1177,7 @@ "text": "EmbeddableInput" } ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false, "children": [ { @@ -1132,7 +1190,7 @@ "signature": [ "{ from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1152,7 +1210,7 @@ }, " | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1172,7 +1230,7 @@ }, "[] | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1185,7 +1243,7 @@ "signature": [ "boolean | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1198,7 +1256,7 @@ "signature": [ "string[] | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1212,7 +1270,7 @@ "SortOrder", "[] | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false } ], @@ -1643,6 +1701,20 @@ "path": "src/plugins/discover/common/index.ts", "deprecated": false, "initialIsOpen": false + }, + { + "parentPluginId": "discover", + "id": "def-common.TRUNCATE_MAX_HEIGHT", + "type": "string", + "tags": [], + "label": "TRUNCATE_MAX_HEIGHT", + "description": [], + "signature": [ + "\"truncate:maxHeight\"" + ], + "path": "src/plugins/discover/common/index.ts", + "deprecated": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 11185327d4d35..3115411252d25 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -18,7 +18,7 @@ Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-disco | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 84 | 0 | 58 | 7 | +| 89 | 0 | 61 | 7 | ## Client diff --git a/api_docs/elastic_apm_synthtrace.json b/api_docs/elastic_apm_synthtrace.json index 13d950c53a8df..0f47f0f26abe0 100644 --- a/api_docs/elastic_apm_synthtrace.json +++ b/api_docs/elastic_apm_synthtrace.json @@ -9,8 +9,293 @@ "objects": [] }, "server": { - "classes": [], + "classes": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient", + "type": "Class", + "tags": [], + "label": "SynthtraceEsClient", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + "{ perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.clean", + "type": "Function", + "tags": [], + "label": "clean", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.index", + "type": "Function", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "(events: ", + "Fields", + "[]) => Promise<", + "IndicesRefreshResponse", + ">" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.index.$1", + "type": "Array", + "tags": [], + "label": "events", + "description": [], + "signature": [ + "Fields", + "[]" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], "functions": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser", + "type": "Function", + "tags": [], + "label": "browser", + "description": [], + "signature": [ + "(serviceName: string, production: string, userAgent: Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>) => ", + "Browser" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser.$1", + "type": "string", + "tags": [], + "label": "serviceName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser.$2", + "type": "string", + "tags": [], + "label": "production", + "description": [], + "signature": [ + "string" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser.$3", + "type": "Object", + "tags": [], + "label": "userAgent", + "description": [], + "signature": [ + "Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets", + "type": "Function", + "tags": [], + "label": "cleanWriteTargets", + "description": [], + "signature": [ + "({\n writeTargets,\n client,\n logger,\n}: { writeTargets: ", + "ElasticsearchOutputWriteTargets", + "; client: ", + "default", + "; logger: { perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }; }) => Promise" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1", + "type": "Object", + "tags": [], + "label": "{\n writeTargets,\n client,\n logger,\n}", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1.writeTargets", + "type": "Object", + "tags": [], + "label": "writeTargets", + "description": [], + "signature": [ + "ElasticsearchOutputWriteTargets" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + "{ perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.createLogger", + "type": "Function", + "tags": [], + "label": "createLogger", + "description": [], + "signature": [ + "(logLevel: ", + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.LogLevel", + "text": "LogLevel" + }, + ") => { perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/create_logger.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.createLogger.$1", + "type": "Enum", + "tags": [], + "label": "logLevel", + "description": [], + "signature": [ + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.LogLevel", + "text": "LogLevel" + } + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/create_logger.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@elastic/apm-synthtrace", "id": "def-server.getBreakdownMetrics", @@ -47,6 +332,22 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getChromeUserAgentDefaults", + "type": "Function", + "tags": [], + "label": "getChromeUserAgentDefaults", + "description": [], + "signature": [ + "() => Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/defaults/get_chrome_user_agent_defaults.ts", + "deprecated": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@elastic/apm-synthtrace", "id": "def-server.getObserverDefaults", @@ -75,8 +376,14 @@ "(events: ", "Fields", "[]) => { \"metricset.name\": string; 'span.destination.service.response_time.sum.us': number; 'span.destination.service.response_time.count': number; '@timestamp'?: number | undefined; 'agent.name'?: string | undefined; 'agent.version'?: string | undefined; 'container.id'?: string | undefined; 'ecs.version'?: string | undefined; 'event.outcome'?: string | undefined; 'event.ingested'?: number | undefined; 'error.id'?: string | undefined; 'error.exception'?: ", - "Exception", - "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.duration.histogram'?: { values: number[]; counts: number[]; } | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.Exception", + "text": "Exception" + }, + "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'kubernetes.pod.uid'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.duration.histogram'?: { values: number[]; counts: number[]; } | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" ], "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_span_destination_metrics.ts", "deprecated": false, @@ -111,8 +418,14 @@ "(events: ", "Fields", "[]) => { 'transaction.duration.histogram': { values: number[]; counts: number[]; }; _doc_count: number; '@timestamp'?: number | undefined; 'agent.name'?: string | undefined; 'agent.version'?: string | undefined; 'container.id'?: string | undefined; 'ecs.version'?: string | undefined; 'event.outcome'?: string | undefined; 'event.ingested'?: number | undefined; 'error.id'?: string | undefined; 'error.exception'?: ", - "Exception", - "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'metricset.name'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.destination.service.response_time.sum.us'?: number | undefined; 'span.destination.service.response_time.count'?: number | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.Exception", + "text": "Exception" + }, + "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'kubernetes.pod.uid'?: string | undefined; 'metricset.name'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.destination.service.response_time.sum.us'?: number | undefined; 'span.destination.service.response_time.count'?: number | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" ], "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_transaction_metrics.ts", "deprecated": false, @@ -136,6 +449,52 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getWriteTargets", + "type": "Function", + "tags": [], + "label": "getWriteTargets", + "description": [], + "signature": [ + "({\n client,\n}: { client: ", + "default", + "; }) => Promise<", + "ElasticsearchOutputWriteTargets", + ">" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getWriteTargets.$1", + "type": "Object", + "tags": [], + "label": "{\n client,\n}", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getWriteTargets.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_write_targets.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@elastic/apm-synthtrace", "id": "def-server.service", @@ -305,8 +664,44 @@ "initialIsOpen": false } ], - "interfaces": [], - "enums": [], + "interfaces": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.Exception", + "type": "Interface", + "tags": [], + "label": "Exception", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/entity.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.Exception.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/entity.ts", + "deprecated": false + } + ], + "initialIsOpen": false + } + ], + "enums": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.LogLevel", + "type": "Enum", + "tags": [], + "label": "LogLevel", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/create_logger.ts", + "deprecated": false, + "initialIsOpen": false + } + ], "misc": [], "objects": [] }, diff --git a/api_docs/elastic_apm_synthtrace.mdx b/api_docs/elastic_apm_synthtrace.mdx index b41afe6c7357c..6b9b560494e26 100644 --- a/api_docs/elastic_apm_synthtrace.mdx +++ b/api_docs/elastic_apm_synthtrace.mdx @@ -18,10 +18,19 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 18 | 0 | 18 | 6 | +| 43 | 0 | 43 | 6 | ## Server ### Functions +### Classes + + +### Interfaces + + +### Enums + + diff --git a/api_docs/elastic_datemath.json b/api_docs/elastic_datemath.json index 166f816481b33..44dcf5f5257d8 100644 --- a/api_docs/elastic_datemath.json +++ b/api_docs/elastic_datemath.json @@ -105,7 +105,7 @@ "label": "Unit", "description": [], "signature": [ - "\"y\" | \"M\" | \"w\" | \"d\" | \"h\" | \"m\" | \"s\" | \"ms\"" + "\"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\"" ], "path": "packages/elastic-datemath/src/index.ts", "deprecated": false, @@ -119,13 +119,7 @@ "label": "units", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "[]" ], "path": "packages/elastic-datemath/src/index.ts", @@ -140,13 +134,7 @@ "label": "unitsAsc", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "[]" ], "path": "packages/elastic-datemath/src/index.ts", @@ -161,13 +149,7 @@ "label": "unitsDesc", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "[]" ], "path": "packages/elastic-datemath/src/index.ts", @@ -182,7 +164,7 @@ "label": "UnitsMap", "description": [], "signature": [ - "{ y: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; M: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; w: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; d: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; h: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; m: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; s: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; ms: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; }" + "{ ms: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; s: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; m: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; h: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; d: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; w: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; M: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; y: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; }" ], "path": "packages/elastic-datemath/src/index.ts", "deprecated": false, diff --git a/api_docs/embeddable.json b/api_docs/embeddable.json index 8e6bc29a0f5a8..cda4be2d4d995 100644 --- a/api_docs/embeddable.json +++ b/api_docs/embeddable.json @@ -498,7 +498,7 @@ "section": "def-public.ToastsApi", "text": "ToastsApi" }, - ", \"get$\" | \"add\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" + ", \"add\" | \"get$\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" ], "path": "src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx", "deprecated": false, @@ -2534,48 +2534,48 @@ "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IEmbeddable", - "text": "IEmbeddable" + "section": "def-public.IContainer", + "text": "IContainer" }, - "<", + "<{}, ", { "pluginId": "embeddable", - "scope": "common", + "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableInput", - "text": "EmbeddableInput" + "section": "def-public.ContainerInput", + "text": "ContainerInput" }, - ", ", + "<{}>, ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.EmbeddableOutput", - "text": "EmbeddableOutput" + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" }, "> | ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" }, - "<{}, ", + "<", { "pluginId": "embeddable", - "scope": "public", + "scope": "common", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" }, - "<{}>, ", + ", ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" }, ">" ], @@ -6150,7 +6150,7 @@ "section": "def-public.ContainerOutput", "text": "ContainerOutput" }, - "> | undefined) => Promise<", + "> | undefined) => Promise" + ">" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts", "deprecated": false, @@ -6267,7 +6267,7 @@ "section": "def-public.ContainerOutput", "text": "ContainerOutput" }, - "> | undefined) => Promise<", + "> | undefined) => Promise" + " | undefined>" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts", "deprecated": false, @@ -7626,48 +7626,48 @@ "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IEmbeddable", - "text": "IEmbeddable" + "section": "def-public.IContainer", + "text": "IContainer" }, - "<", + "<{}, ", { "pluginId": "embeddable", - "scope": "common", + "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableInput", - "text": "EmbeddableInput" + "section": "def-public.ContainerInput", + "text": "ContainerInput" }, - ", ", + "<{}>, ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.EmbeddableOutput", - "text": "EmbeddableOutput" + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" }, "> | ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" }, - "<{}, ", + "<", { "pluginId": "embeddable", - "scope": "public", + "scope": "common", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" }, - "<{}>, ", + ", ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" }, ">" ], @@ -7686,7 +7686,7 @@ "\nRenders the embeddable at the given node." ], "signature": [ - "(domNode: Element | HTMLElement) => void" + "(domNode: HTMLElement | Element) => void" ], "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, @@ -7699,7 +7699,7 @@ "label": "domNode", "description": [], "signature": [ - "Element | HTMLElement" + "HTMLElement | Element" ], "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, @@ -8166,7 +8166,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", \"rows\" | \"columns\">; column: number; row: number; value: any; }[]; timeFieldName?: string | undefined; negate?: boolean | undefined; }" + ", \"columns\" | \"rows\">; column: number; row: number; value: any; }[]; timeFieldName?: string | undefined; negate?: boolean | undefined; }" ], "path": "src/plugins/embeddable/public/lib/triggers/triggers.ts", "deprecated": false @@ -8307,7 +8307,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - ", \"createFromSavedObject\" | \"isContainerType\" | \"getExplicitInput\" | \"savedObjectMetaData\" | \"canCreateNew\" | \"getDefaultInput\" | \"telemetry\" | \"extract\" | \"inject\" | \"migrations\" | \"grouping\" | \"getIconType\" | \"getDescription\">>" + ", \"telemetry\" | \"inject\" | \"extract\" | \"migrations\" | \"createFromSavedObject\" | \"isContainerType\" | \"getExplicitInput\" | \"savedObjectMetaData\" | \"canCreateNew\" | \"getDefaultInput\" | \"grouping\" | \"getIconType\" | \"getDescription\">>" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable_factory_definition.ts", "deprecated": false, diff --git a/api_docs/es_ui_shared.json b/api_docs/es_ui_shared.json index da0ba7b688c93..5560b8e52ba28 100644 --- a/api_docs/es_ui_shared.json +++ b/api_docs/es_ui_shared.json @@ -855,7 +855,7 @@ }, " extends Pick,Pick<", "IAceEditorProps", - ", \"onChange\" | \"name\" | \"defaultValue\" | \"className\" | \"placeholder\" | \"style\" | \"onCopy\" | \"onPaste\" | \"onFocus\" | \"onBlur\" | \"onInput\" | \"onLoad\" | \"onScroll\" | \"value\" | \"height\" | \"width\" | \"fontSize\" | \"theme\" | \"showGutter\" | \"showPrintMargin\" | \"highlightActiveLine\" | \"focus\" | \"cursorStart\" | \"wrapEnabled\" | \"readOnly\" | \"minLines\" | \"maxLines\" | \"navigateToFileEnd\" | \"debounceChangePeriod\" | \"enableBasicAutocompletion\" | \"enableLiveAutocompletion\" | \"tabSize\" | \"scrollMargin\" | \"enableSnippets\" | \"onSelectionChange\" | \"onCursorChange\" | \"onValidate\" | \"onBeforeLoad\" | \"onSelection\" | \"editorProps\" | \"setOptions\" | \"keyboardHandler\" | \"commands\" | \"annotations\" | \"markers\">" + ", \"name\" | \"onChange\" | \"defaultValue\" | \"className\" | \"placeholder\" | \"style\" | \"onCopy\" | \"onPaste\" | \"onFocus\" | \"onBlur\" | \"onInput\" | \"onLoad\" | \"onScroll\" | \"value\" | \"height\" | \"width\" | \"fontSize\" | \"theme\" | \"showGutter\" | \"showPrintMargin\" | \"highlightActiveLine\" | \"focus\" | \"cursorStart\" | \"wrapEnabled\" | \"readOnly\" | \"minLines\" | \"maxLines\" | \"navigateToFileEnd\" | \"debounceChangePeriod\" | \"enableBasicAutocompletion\" | \"enableLiveAutocompletion\" | \"tabSize\" | \"scrollMargin\" | \"enableSnippets\" | \"onSelectionChange\" | \"onCursorChange\" | \"onValidate\" | \"onBeforeLoad\" | \"onSelection\" | \"editorProps\" | \"setOptions\" | \"keyboardHandler\" | \"commands\" | \"annotations\" | \"markers\">" ], "path": "src/plugins/es_ui_shared/public/components/code_editor/code_editor.tsx", "deprecated": false, diff --git a/api_docs/event_log.json b/api_docs/event_log.json index 60a3d9e83be7b..4d5192092dd12 100644 --- a/api_docs/event_log.json +++ b/api_docs/event_log.json @@ -753,7 +753,7 @@ "label": "logEvent", "description": [], "signature": [ - "(properties: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" + "(properties: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -766,7 +766,7 @@ "label": "properties", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -783,7 +783,7 @@ "label": "startTiming", "description": [], "signature": [ - "(event: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" + "(event: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -796,7 +796,7 @@ "label": "event", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -813,7 +813,7 @@ "label": "stopTiming", "description": [], "signature": [ - "(event: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" + "(event: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -826,7 +826,7 @@ "label": "event", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -886,7 +886,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" + "(Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false @@ -905,7 +905,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -919,7 +919,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined" + "Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1138,7 +1138,7 @@ "label": "getLogger", "description": [], "signature": [ - "(properties: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => ", + "(properties: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => ", { "pluginId": "eventLog", "scope": "server", @@ -1158,7 +1158,7 @@ "label": "properties", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -1166,6 +1166,21 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "eventLog", + "id": "def-server.IEventLogService.getIndexPattern", + "type": "Function", + "tags": [], + "label": "getIndexPattern", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/event_log/server/types.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "lifecycle": "setup", diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 6e25f1ddfa019..8be153435a703 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -18,7 +18,7 @@ Contact [Kibana Alerting](https://github.com/orgs/elastic/teams/kibana-alerting- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 80 | 0 | 80 | 4 | +| 81 | 0 | 81 | 4 | ## Server diff --git a/api_docs/expression_image.json b/api_docs/expression_image.json index f92cd0d258e1d..3ef746c8819dd 100644 --- a/api_docs/expression_image.json +++ b/api_docs/expression_image.json @@ -346,7 +346,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_metric.json b/api_docs/expression_metric.json index 4ffb80c5a0cec..15ac62a53293f 100644 --- a/api_docs/expression_metric.json +++ b/api_docs/expression_metric.json @@ -121,7 +121,7 @@ "label": "metricFunction", "description": [], "signature": [ - "() => { name: \"metric\"; aliases: never[]; type: \"render\"; inputTypes: (\"number\" | \"string\" | \"null\")[]; help: string; args: { label: { types: \"string\"[]; aliases: string[]; help: string; default: string; }; labelFont: { types: \"style\"[]; help: string; default: string; }; metricFont: { types: \"style\"[]; help: string; default: string; }; metricFormat: { types: \"string\"[]; aliases: string[]; help: string; }; }; fn: (input: string | number | null, { label, labelFont, metricFont, metricFormat }: ", + "() => { name: \"metric\"; aliases: never[]; type: \"render\"; inputTypes: (\"string\" | \"number\" | \"null\")[]; help: string; args: { label: { types: \"string\"[]; aliases: string[]; help: string; default: string; }; labelFont: { types: \"style\"[]; help: string; default: string; }; metricFont: { types: \"style\"[]; help: string; default: string; }; metricFormat: { types: \"string\"[]; aliases: string[]; help: string; }; }; fn: (input: string | number | null, { label, labelFont, metricFont, metricFormat }: ", { "pluginId": "expressionMetric", "scope": "common", @@ -129,7 +129,7 @@ "section": "def-common.Arguments", "text": "Arguments" }, - ") => { type: \"render\"; as: string; value: { metric: React.ReactText; label: string; labelFont: ", + ") => { type: \"render\"; as: string; value: { metric: string | number; label: string; labelFont: ", { "pluginId": "expressions", "scope": "common", diff --git a/api_docs/expression_metric_vis.json b/api_docs/expression_metric_vis.json index 251e916797e7e..0aa40780768d0 100644 --- a/api_docs/expression_metric_vis.json +++ b/api_docs/expression_metric_vis.json @@ -133,25 +133,6 @@ "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.colorSchema", - "type": "Enum", - "tags": [], - "label": "colorSchema", - "description": [], - "signature": [ - { - "pluginId": "charts", - "scope": "common", - "docId": "kibChartsPluginApi", - "section": "def-common.ColorSchemas", - "text": "ColorSchemas" - } - ], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricArguments.colorMode", @@ -160,31 +141,11 @@ "label": "colorMode", "description": [], "signature": [ - "\"Background\" | \"Labels\" | \"None\"" + "\"None\" | \"Background\" | \"Labels\"" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.useRanges", - "type": "boolean", - "tags": [], - "label": "useRanges", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.invertColors", - "type": "boolean", - "tags": [], - "label": "invertColors", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricArguments.showLabels", @@ -197,40 +158,28 @@ }, { "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.bgFill", - "type": "string", - "tags": [], - "label": "bgFill", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.subText", - "type": "string", - "tags": [], - "label": "subText", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.colorRange", - "type": "Array", + "id": "def-common.MetricArguments.palette", + "type": "Object", "tags": [], - "label": "colorRange", + "label": "palette", "description": [], "signature": [ { - "pluginId": "expressions", + "pluginId": "charts", "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Range", - "text": "Range" + "docId": "kibChartsPluginApi", + "section": "def-common.PaletteOutput", + "text": "PaletteOutput" }, - "[]" + "<", + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.CustomPaletteState", + "text": "CustomPaletteState" + }, + "> | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false @@ -290,7 +239,14 @@ "label": "bucket", "description": [], "signature": [ - "{ type: \"vis_dimension\"; } & { accessor: number | ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionValueBoxed", + "text": "ExpressionValueBoxed" + }, + "<\"vis_dimension\", { accessor: number | ", { "pluginId": "expressions", "scope": "common", @@ -298,7 +254,7 @@ "section": "def-common.DatatableColumn", "text": "DatatableColumn" }, - "; format: { id?: string | undefined; params: Record; }; }" + "; format: { id?: string | undefined; params: Record; }; }> | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false @@ -371,16 +327,6 @@ "description": [], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricOptions.rowIndex", - "type": "number", - "tags": [], - "label": "rowIndex", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false } ], "initialIsOpen": false @@ -418,35 +364,6 @@ "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.useRanges", - "type": "boolean", - "tags": [], - "label": "useRanges", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.colorSchema", - "type": "Enum", - "tags": [], - "label": "colorSchema", - "description": [], - "signature": [ - { - "pluginId": "charts", - "scope": "common", - "docId": "kibChartsPluginApi", - "section": "def-common.ColorSchemas", - "text": "ColorSchemas" - } - ], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricVisParam.metricColorMode", @@ -455,27 +372,27 @@ "label": "metricColorMode", "description": [], "signature": [ - "\"Background\" | \"Labels\" | \"None\"" + "\"None\" | \"Background\" | \"Labels\"" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false }, { "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.colorsRange", - "type": "Array", + "id": "def-common.MetricVisParam.palette", + "type": "Object", "tags": [], - "label": "colorsRange", + "label": "palette", "description": [], "signature": [ { - "pluginId": "expressions", + "pluginId": "charts", "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Range", - "text": "Range" + "docId": "kibChartsPluginApi", + "section": "def-common.CustomPaletteState", + "text": "CustomPaletteState" }, - "[]" + " | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false @@ -499,31 +416,30 @@ "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.invertColors", - "type": "boolean", - "tags": [], - "label": "invertColors", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricVisParam.style", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "style", "description": [], "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionTypeStyle", + "text": "ExpressionTypeStyle" + }, + " & Pick<", { "pluginId": "charts", "scope": "common", "docId": "kibChartsPluginApi", "section": "def-common.Style", "text": "Style" - } + }, + ", \"bgColor\" | \"labelColor\">" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 891d4d3f022d5..bfbd6bb8b825a 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -18,7 +18,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 49 | 0 | 49 | 0 | +| 40 | 0 | 40 | 0 | ## Common diff --git a/api_docs/expression_repeat_image.json b/api_docs/expression_repeat_image.json index 416a827e5bafb..f61abea4ce928 100644 --- a/api_docs/expression_repeat_image.json +++ b/api_docs/expression_repeat_image.json @@ -409,7 +409,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_repeat_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_shape.json b/api_docs/expression_shape.json index 018c438303cb0..12a589bc5f701 100644 --- a/api_docs/expression_shape.json +++ b/api_docs/expression_shape.json @@ -1399,7 +1399,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, @@ -2580,7 +2580,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expressions.json b/api_docs/expressions.json index d6a5667f352f8..f615409f9b4c6 100644 --- a/api_docs/expressions.json +++ b/api_docs/expressions.json @@ -7972,6 +7972,10 @@ "path": "src/plugins/expressions/common/expression_functions/types.ts", "deprecated": true, "references": [ + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" + }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/functions/filters.ts" @@ -9487,7 +9491,7 @@ "label": "label", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -9500,7 +9504,7 @@ "label": "value", "description": [], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -10395,7 +10399,7 @@ "label": "padding", "description": [], "signature": [ - "\"m\" | \"s\" | \"l\" | \"xs\" | \"xl\" | undefined" + "\"s\" | \"m\" | \"l\" | \"xs\" | \"xl\" | undefined" ], "path": "src/plugins/expressions/public/react_expression_renderer.tsx", "deprecated": false @@ -10518,6 +10522,36 @@ "path": "src/plugins/expressions/public/react_expression_renderer.tsx", "deprecated": false }, + { + "parentPluginId": "expressions", + "id": "def-public.ReactExpressionRendererProps.onRender$", + "type": "Function", + "tags": [], + "label": "onRender$", + "description": [], + "signature": [ + "((item: number) => void) | undefined" + ], + "path": "src/plugins/expressions/public/react_expression_renderer.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressions", + "id": "def-public.ReactExpressionRendererProps.onRender$.$1", + "type": "number", + "tags": [], + "label": "item", + "description": [], + "signature": [ + "number" + ], + "path": "src/plugins/expressions/public/react_expression_renderer.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-public.ReactExpressionRendererProps.debounce", @@ -10930,16 +10964,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/ast/types.ts", @@ -11229,7 +11263,7 @@ "\nThis type contains a unions of all supported font labels, or the the name of\nthe font the user would see in a UI." ], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -11245,7 +11279,7 @@ "\nThis type contains a union of all supported font values, equivalent to the CSS\n`font-value` property." ], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -11334,7 +11368,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"y\" | \"x\" | \"size\" | \"text\"" + "\"size\" | \"y\" | \"color\" | \"x\" | \"text\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -17944,6 +17978,10 @@ "path": "src/plugins/expressions/common/expression_functions/types.ts", "deprecated": true, "references": [ + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" + }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/functions/filters.ts" @@ -18978,7 +19016,7 @@ "label": "label", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -18991,7 +19029,7 @@ "label": "value", "description": [], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -19867,16 +19905,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/ast/types.ts", @@ -20094,7 +20132,7 @@ "\nThis type contains a unions of all supported font labels, or the the name of\nthe font the user would see in a UI." ], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -20110,7 +20148,7 @@ "\nThis type contains a union of all supported font values, equivalent to the CSS\n`font-value` property." ], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -20199,7 +20237,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"y\" | \"x\" | \"size\" | \"text\"" + "\"size\" | \"y\" | \"color\" | \"x\" | \"text\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -23618,16 +23656,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/util/expressions_inspector_adapter.ts", @@ -27201,7 +27239,7 @@ "label": "fontFamily", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" ], "path": "src/plugins/expressions/common/types/style.ts", "deprecated": false @@ -29837,6 +29875,10 @@ "path": "src/plugins/expressions/common/expression_functions/types.ts", "deprecated": true, "references": [ + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" + }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/functions/filters.ts" @@ -31735,7 +31777,7 @@ "label": "label", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -31748,7 +31790,7 @@ "label": "value", "description": [], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -31807,7 +31849,7 @@ "label": "family", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" ], "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", "deprecated": false @@ -31883,6 +31925,19 @@ ], "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.FontArguments.sizeUnit", + "type": "string", + "tags": [], + "label": "sizeUnit", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false } ], "initialIsOpen": false @@ -32805,6 +32860,17 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "expressions", + "id": "def-common.FontSizeUnit", + "type": "Enum", + "tags": [], + "label": "FontSizeUnit", + "description": [], + "path": "src/plugins/expressions/common/types/style.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "expressions", "id": "def-common.FontStyle", @@ -33244,16 +33310,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/ast/types.ts", @@ -34033,7 +34099,7 @@ "\nThis type contains a unions of all supported font labels, or the the name of\nthe font the user would see in a UI." ], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -34049,7 +34115,7 @@ "\nA collection of supported fonts." ], "signature": [ - "({ label: \"Open Sans\"; value: \"'Open Sans', Helvetica, Arial, sans-serif\"; } | { label: \"American Typewriter\"; value: \"'American Typewriter', 'Courier New', Courier, Monaco, mono\"; } | { label: \"Arial\"; value: \"Arial, sans-serif\"; } | { label: \"Baskerville\"; value: \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Book Antiqua\"; value: \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Brush Script\"; value: \"'Brush Script MT', 'Comic Sans', sans-serif\"; } | { label: \"Chalkboard\"; value: \"Chalkboard, 'Comic Sans', sans-serif\"; } | { label: \"Didot\"; value: \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Futura\"; value: \"Futura, Impact, Helvetica, Arial, sans-serif\"; } | { label: \"Gill Sans\"; value: \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Helvetica Neue\"; value: \"'Helvetica Neue', Helvetica, Arial, sans-serif\"; } | { label: \"Hoefler Text\"; value: \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\"; } | { label: \"Lucida Grande\"; value: \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Myriad\"; value: \"Myriad, Helvetica, Arial, sans-serif\"; } | { label: \"Optima\"; value: \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Palatino\"; value: \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; })[]" + "({ label: \"Open Sans\"; value: \"'Open Sans', Helvetica, Arial, sans-serif\"; } | { label: \"American Typewriter\"; value: \"'American Typewriter', 'Courier New', Courier, Monaco, mono\"; } | { label: \"Arial\"; value: \"Arial, sans-serif\"; } | { label: \"Baskerville\"; value: \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Book Antiqua\"; value: \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Brush Script\"; value: \"'Brush Script MT', 'Comic Sans', sans-serif\"; } | { label: \"Chalkboard\"; value: \"Chalkboard, 'Comic Sans', sans-serif\"; } | { label: \"Didot\"; value: \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Futura\"; value: \"Futura, Impact, Helvetica, Arial, sans-serif\"; } | { label: \"Gill Sans\"; value: \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Helvetica Neue\"; value: \"'Helvetica Neue', Helvetica, Arial, sans-serif\"; } | { label: \"Hoefler Text\"; value: \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\"; } | { label: \"Inter\"; value: \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\"; } | { label: \"Lucida Grande\"; value: \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Myriad\"; value: \"Myriad, Helvetica, Arial, sans-serif\"; } | { label: \"Optima\"; value: \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Palatino\"; value: \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; })[]" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -34065,7 +34131,7 @@ "\nThis type contains a union of all supported font values, equivalent to the CSS\n`font-value` property." ], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -34232,7 +34298,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"y\" | \"x\" | \"size\" | \"text\"" + "\"size\" | \"y\" | \"color\" | \"x\" | \"text\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -37322,6 +37388,64 @@ } ] }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit", + "type": "Object", + "tags": [], + "label": "sizeUnit", + "description": [], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.default", + "type": "string", + "tags": [], + "label": "default", + "description": [], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + } + ] + }, { "parentPluginId": "expressions", "id": "def-common.font.args.underline", @@ -37670,6 +37794,20 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "expressions", + "id": "def-common.inter", + "type": "Object", + "tags": [], + "label": "inter", + "description": [], + "signature": [ + "{ label: \"Inter\"; value: \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\"; }" + ], + "path": "src/plugins/expressions/common/fonts.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "expressions", "id": "def-common.lucidaGrande", @@ -37906,7 +38044,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\" | \"boolean\" | \"null\")[]" + "(\"string\" | \"boolean\" | \"number\" | \"null\")[]" ], "path": "src/plugins/expressions/common/expression_functions/specs/map_column.ts", "deprecated": false diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index bb31b4a579d13..724b17051736b 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2092 | 27 | 1646 | 3 | +| 2102 | 27 | 1656 | 3 | ## Client diff --git a/api_docs/features.json b/api_docs/features.json index c3749ffb6751c..df4d2f2ec06d5 100644 --- a/api_docs/features.json +++ b/api_docs/features.json @@ -61,7 +61,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -788,7 +788,7 @@ "\nDenotes which Primary Feature Privilege this sub-feature privilege should be included in.\n`read` is also included in `all` automatically." ], "signature": [ - "\"all\" | \"none\" | \"read\"" + "\"none\" | \"all\" | \"read\"" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false @@ -1091,7 +1091,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -2518,7 +2518,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -2751,7 +2751,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -2786,7 +2786,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false @@ -2807,7 +2807,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3518,7 +3518,7 @@ "\nDenotes which Primary Feature Privilege this sub-feature privilege should be included in.\n`read` is also included in `all` automatically." ], "signature": [ - "\"all\" | \"none\" | \"read\"" + "\"none\" | \"all\" | \"read\"" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false diff --git a/api_docs/field_formats.json b/api_docs/field_formats.json index 5d7f31781d000..a1296107c65ef 100644 --- a/api_docs/field_formats.json +++ b/api_docs/field_formats.json @@ -100,7 +100,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/public/lib/converters/date.ts", "deprecated": false, @@ -113,7 +113,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/public/lib/converters/date.ts", "deprecated": false, @@ -250,7 +250,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/common/converters/date_nanos_shared.ts", "deprecated": false, @@ -263,7 +263,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/date_nanos_shared.ts", "deprecated": false, @@ -503,7 +503,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/server/lib/converters/date_server.ts", "deprecated": false, @@ -516,7 +516,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/server/lib/converters/date_server.ts", "deprecated": false, @@ -551,7 +551,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/server/lib/converters/date_nanos_server.ts", "deprecated": false, @@ -564,7 +564,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/server/lib/converters/date_nanos_server.ts", "deprecated": false, @@ -1017,7 +1017,7 @@ "label": "findColorRuleForVal", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -1030,7 +1030,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -1047,7 +1047,7 @@ "label": "htmlConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -1060,7 +1060,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -3623,7 +3623,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/percent.ts", "deprecated": false, @@ -3636,7 +3636,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/percent.ts", "deprecated": false, @@ -3731,7 +3731,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/relative_date.ts", "deprecated": false, @@ -3744,7 +3744,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/relative_date.ts", "deprecated": false, @@ -3756,114 +3756,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat", - "type": "Class", - "tags": [], - "label": "SourceFormat", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.SourceFormat", - "text": "SourceFormat" - }, - " extends ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - } - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false, - "children": [ - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.id", - "type": "Enum", - "tags": [], - "label": "id", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FIELD_FORMAT_IDS", - "text": "FIELD_FORMAT_IDS" - } - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false - }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.title", - "type": "string", - "tags": [], - "label": "title", - "description": [], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false - }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.fieldType", - "type": "Enum", - "tags": [], - "label": "fieldType", - "description": [], - "signature": [ - { - "pluginId": "@kbn/field-types", - "scope": "server", - "docId": "kibKbnFieldTypesPluginApi", - "section": "def-server.KBN_FIELD_TYPES", - "text": "KBN_FIELD_TYPES" - } - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false - }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.textConvert", - "type": "Function", - "tags": [], - "label": "textConvert", - "description": [], - "signature": [ - "(value: string) => string" - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false, - "children": [ - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.textConvert.$1", - "type": "string", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, { "parentPluginId": "fieldFormats", "id": "def-common.StaticLookupFormat", @@ -4100,7 +3992,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/string.ts", "deprecated": false, @@ -4113,7 +4005,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/string.ts", "deprecated": false, @@ -5520,7 +5412,15 @@ "label": "IFieldFormatsRegistry", "description": [], "signature": [ - "{ init: (getConfig: ", + "{ deserialize: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FormatFactory", + "text": "FormatFactory" + }, + "; init: (getConfig: ", { "pluginId": "fieldFormats", "scope": "common", @@ -5544,15 +5444,7 @@ "section": "def-common.FieldFormatInstanceType", "text": "FieldFormatInstanceType" }, - "[]) => void; deserialize: ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FormatFactory", - "text": "FormatFactory" - }, - "; register: (fieldFormats: ", + "[]) => void; register: (fieldFormats: ", { "pluginId": "fieldFormats", "scope": "common", diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 37adeb9bc2bb7..630f25f3e37d7 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 284 | 7 | 246 | 3 | +| 278 | 7 | 240 | 3 | ## Client diff --git a/api_docs/fleet.json b/api_docs/fleet.json index 06c6bf2dbae32..e99b0560d408e 100644 --- a/api_docs/fleet.json +++ b/api_docs/fleet.json @@ -2438,6 +2438,36 @@ "deprecated": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-public.pagePathGetters.settings", + "type": "Function", + "tags": [], + "label": "settings", + "description": [], + "signature": [ + "() => [string, string]" + ], + "path": "x-pack/plugins/fleet/public/constants/page_paths.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-public.pagePathGetters.settings_edit_fleet_server_hosts", + "type": "Function", + "tags": [], + "label": "settings_edit_fleet_server_hosts", + "description": [], + "signature": [ + "() => [string, string]" + ], + "path": "x-pack/plugins/fleet/public/constants/page_paths.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -4641,7 +4671,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -4848,7 +4878,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -5389,6 +5419,26 @@ ], "path": "x-pack/plugins/fleet/server/plugin.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-server.FleetSetupDeps.telemetry", + "type": "Object", + "tags": [], + "label": "telemetry", + "description": [], + "signature": [ + { + "pluginId": "telemetry", + "scope": "server", + "docId": "kibTelemetryPluginApi", + "section": "def-server.TelemetryPluginSetup", + "text": "TelemetryPluginSetup" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/server/plugin.ts", + "deprecated": false } ], "initialIsOpen": false @@ -5859,36 +5909,7 @@ "initialIsOpen": false } ], - "objects": [ - { - "parentPluginId": "fleet", - "id": "def-server.apm", - "type": "Object", - "tags": [], - "label": "apm", - "description": [], - "signature": [ - "Agent" - ], - "path": "node_modules/elastic-apm-node/index.d.ts", - "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "fleet", - "id": "def-server.apm", - "type": "Object", - "tags": [], - "label": "apm", - "description": [], - "signature": [ - "Agent" - ], - "path": "node_modules/elastic-apm-node/index.d.ts", - "deprecated": false, - "initialIsOpen": false - } - ], + "objects": [], "setup": { "parentPluginId": "fleet", "id": "def-server.FleetSetupContract", @@ -6648,7 +6669,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", "SavedObject", "<", { @@ -6666,7 +6687,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", "SavedObject", "<", { @@ -6684,7 +6705,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", { "pluginId": "fleet", "scope": "common", @@ -6692,7 +6713,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })) => boolean" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })) => boolean" ], "path": "x-pack/plugins/fleet/common/services/packages_with_integrations.ts", "deprecated": false, @@ -6904,7 +6925,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", "SavedObject", "<", { @@ -6922,7 +6943,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", "SavedObject", "<", { @@ -6940,7 +6961,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", { "pluginId": "fleet", "scope": "common", @@ -6948,7 +6969,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" ], "path": "x-pack/plugins/fleet/common/services/packages_with_integrations.ts", "deprecated": false, @@ -8705,7 +8726,7 @@ "label": "body", "description": [], "signature": [ - "{ description?: string | undefined; name: string; }" + "{ name: string; description?: string | undefined; }" ], "path": "x-pack/plugins/fleet/common/types/rest_spec/agent_policy.ts", "deprecated": false @@ -9152,6 +9173,29 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.DeleteOutputResponse", + "type": "Interface", + "tags": [], + "label": "DeleteOutputResponse", + "description": [], + "path": "x-pack/plugins/fleet/common/types/rest_spec/output.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-common.DeleteOutputResponse.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "x-pack/plugins/fleet/common/types/rest_spec/output.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.DeletePackagePoliciesRequest", @@ -12861,14 +12905,6 @@ "description": [], "signature": [ "(", - { - "pluginId": "customIntegrations", - "scope": "common", - "docId": "kibCustomIntegrationsPluginApi", - "section": "def-common.CustomIntegrationIcon", - "text": "CustomIntegrationIcon" - }, - " | ", { "pluginId": "fleet", "scope": "common", @@ -12876,6 +12912,14 @@ "section": "def-common.PackageSpecIcon", "text": "PackageSpecIcon" }, + " | ", + { + "pluginId": "customIntegrations", + "scope": "common", + "docId": "kibCustomIntegrationsPluginApi", + "section": "def-common.CustomIntegrationIcon", + "text": "CustomIntegrationIcon" + }, ")[]" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", @@ -13323,6 +13367,16 @@ "path": "x-pack/plugins/fleet/common/types/models/output.ts", "deprecated": false }, + { + "parentPluginId": "fleet", + "id": "def-common.NewOutput.is_default_monitoring", + "type": "boolean", + "tags": [], + "label": "is_default_monitoring", + "description": [], + "path": "x-pack/plugins/fleet/common/types/models/output.ts", + "deprecated": false + }, { "parentPluginId": "fleet", "id": "def-common.NewOutput.name", @@ -13799,7 +13853,7 @@ "section": "def-common.NewPackagePolicy", "text": "NewPackagePolicy" }, - ", \"description\" | \"name\" | \"enabled\" | \"package\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">" + ", \"name\" | \"description\" | \"enabled\" | \"package\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">" ], "path": "x-pack/plugins/fleet/common/types/models/package_policy.ts", "deprecated": false, @@ -14307,7 +14361,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" + "(\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false @@ -14941,7 +14995,7 @@ "section": "def-common.NewAgentPolicy", "text": "NewAgentPolicy" }, - ", \"description\" | \"name\" | \"is_default\" | \"is_default_fleet_server\" | \"is_managed\" | \"monitoring_enabled\" | \"unenroll_timeout\" | \"is_preconfigured\" | \"data_output_id\" | \"monitoring_output_id\">" + ", \"name\" | \"description\" | \"is_default\" | \"is_default_fleet_server\" | \"is_managed\" | \"monitoring_enabled\" | \"unenroll_timeout\" | \"is_preconfigured\" | \"data_output_id\" | \"monitoring_output_id\">" ], "path": "x-pack/plugins/fleet/common/types/models/preconfiguration.ts", "deprecated": false, @@ -14988,7 +15042,7 @@ "section": "def-common.NewPackagePolicy", "text": "NewPackagePolicy" }, - ", \"description\" | \"name\" | \"enabled\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">> & { name: string; package: Partial<", + ", \"name\" | \"description\" | \"enabled\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">> & { name: string; package: Partial<", { "pluginId": "fleet", "scope": "common", @@ -15035,7 +15089,7 @@ "section": "def-common.Output", "text": "Output" }, - ", \"type\" | \"id\" | \"name\" | \"is_default\" | \"is_preconfigured\" | \"hosts\" | \"ca_sha256\" | \"api_key\">" + ", \"name\" | \"type\" | \"id\" | \"is_default\" | \"is_preconfigured\" | \"hosts\" | \"ca_sha256\" | \"api_key\" | \"is_default_monitoring\">" ], "path": "x-pack/plugins/fleet/common/types/models/preconfiguration.ts", "deprecated": false, @@ -15732,7 +15786,7 @@ "label": "[RegistryPolicyTemplateKeys.categories]", "description": [], "signature": [ - "(\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" + "(\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false @@ -16501,6 +16555,32 @@ ], "path": "x-pack/plugins/fleet/common/types/rest_spec/package_policy.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.UpgradePackagePolicyBaseResponse.statusCode", + "type": "number", + "tags": [], + "label": "statusCode", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/rest_spec/package_policy.ts", + "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.UpgradePackagePolicyBaseResponse.body", + "type": "Object", + "tags": [], + "label": "body", + "description": [], + "signature": [ + "{ message: string; } | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/rest_spec/package_policy.ts", + "deprecated": false } ], "initialIsOpen": false @@ -16727,20 +16807,6 @@ } ], "misc": [ - { - "parentPluginId": "fleet", - "id": "def-common.AGENT_ACTION_SAVED_OBJECT_TYPE", - "type": "string", - "tags": [], - "label": "AGENT_ACTION_SAVED_OBJECT_TYPE", - "description": [], - "signature": [ - "\"fleet-agent-actions\"" - ], - "path": "x-pack/plugins/fleet/common/constants/agent.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.AGENT_ACTIONS_INDEX", @@ -16906,20 +16972,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.AGENT_SAVED_OBJECT_TYPE", - "type": "string", - "tags": [], - "label": "AGENT_SAVED_OBJECT_TYPE", - "description": [], - "signature": [ - "\"fleet-agents\"" - ], - "path": "x-pack/plugins/fleet/common/constants/agent.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.AGENT_TYPE_EPHEMERAL", @@ -17046,36 +17098,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.AgentPolicyActionV7_9", - "type": "Type", - "tags": [], - "label": "AgentPolicyActionV7_9", - "description": [], - "signature": [ - "Pick<", - { - "pluginId": "fleet", - "scope": "common", - "docId": "kibFleetPluginApi", - "section": "def-common.AgentPolicyAction", - "text": "AgentPolicyAction" - }, - ", \"id\" | \"policy_id\" | \"created_at\" | \"policy_revision\" | \"ack_data\" | \"sent_at\"> & { type: \"CONFIG_CHANGE\"; data: { config: ", - { - "pluginId": "fleet", - "scope": "common", - "docId": "kibFleetPluginApi", - "section": "def-common.FullAgentPolicy", - "text": "FullAgentPolicy" - }, - "; }; }" - ], - "path": "x-pack/plugins/fleet/common/types/models/agent.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.AgentPolicySOAttributes", @@ -17084,7 +17106,7 @@ "label": "AgentPolicySOAttributes", "description": [], "signature": [ - "{ status: ", + "{ name: string; description?: string | undefined; updated_at: string; status: ", { "pluginId": "fleet", "scope": "common", @@ -17092,7 +17114,7 @@ "section": "def-common.ValueOf", "text": "ValueOf" }, - "<{ readonly Active: \"active\"; readonly Inactive: \"inactive\"; }>; description?: string | undefined; name: string; updated_at: string; namespace: string; updated_by: string; is_default?: boolean | undefined; package_policies: string[] | ", + "<{ readonly Active: \"active\"; readonly Inactive: \"inactive\"; }>; namespace: string; updated_by: string; is_default?: boolean | undefined; package_policies: string[] | ", { "pluginId": "fleet", "scope": "common", @@ -17134,6 +17156,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.AGENTS_PREFIX", + "type": "string", + "tags": [], + "label": "AGENTS_PREFIX", + "description": [], + "signature": [ + "\"fleet-agents\"" + ], + "path": "x-pack/plugins/fleet/common/constants/agent.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.AgentStatus", @@ -17710,20 +17746,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.ENROLLMENT_API_KEYS_SAVED_OBJECT_TYPE", - "type": "string", - "tags": [], - "label": "ENROLLMENT_API_KEYS_SAVED_OBJECT_TYPE", - "description": [], - "signature": [ - "\"fleet-enrollment-api-keys\"" - ], - "path": "x-pack/plugins/fleet/common/constants/enrollment_api_key.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.EnrollmentAPIKeySOAttributes", @@ -17787,20 +17809,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.FLEET_API_ROOT_7_9", - "type": "string", - "tags": [], - "label": "FLEET_API_ROOT_7_9", - "description": [], - "signature": [ - "\"/api/ingest_manager/fleet\"" - ], - "path": "x-pack/plugins/fleet/common/constants/routes.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.FLEET_APM_PACKAGE", @@ -18834,7 +18842,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", "SavedObject", "<", { @@ -18852,7 +18860,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", "SavedObject", "<", { @@ -18870,7 +18878,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", { "pluginId": "fleet", "scope": "common", @@ -18878,7 +18886,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -18943,7 +18951,7 @@ "label": "PackagePolicySOAttributes", "description": [], "signature": [ - "{ description?: string | undefined; name: string; enabled: boolean; package?: ", + "{ name: string; description?: string | undefined; enabled: boolean; package?: ", { "pluginId": "fleet", "scope": "common", @@ -19070,7 +19078,7 @@ "label": "PackageSpecCategory", "description": [], "signature": [ - "\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\"" + "\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\"" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false, @@ -19253,31 +19261,31 @@ "label": "RegistrySearchResult", "description": [], "signature": [ - "{ type?: \"integration\" | undefined; title: string; description: string; icons?: (", + "{ name: string; title: string; version: string; type?: \"integration\" | undefined; description: string; path: string; download: string; internal?: boolean | undefined; data_streams?: ", { "pluginId": "fleet", "scope": "common", "docId": "kibFleetPluginApi", - "section": "def-common.PackageSpecIcon", - "text": "PackageSpecIcon" + "section": "def-common.RegistryDataStream", + "text": "RegistryDataStream" }, - "[] & ", + "[] | undefined; release: \"experimental\" | \"beta\" | \"ga\"; categories?: (\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined; icons?: (", { "pluginId": "fleet", "scope": "common", "docId": "kibFleetPluginApi", - "section": "def-common.RegistryImage", - "text": "RegistryImage" + "section": "def-common.PackageSpecIcon", + "text": "PackageSpecIcon" }, - "[]) | undefined; categories?: (\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined; name: string; version: string; path: string; download: string; internal?: boolean | undefined; data_streams?: ", + "[] & ", { "pluginId": "fleet", "scope": "common", "docId": "kibFleetPluginApi", - "section": "def-common.RegistryDataStream", - "text": "RegistryDataStream" + "section": "def-common.RegistryImage", + "text": "RegistryImage" }, - "[] | undefined; release: \"experimental\" | \"beta\" | \"ga\"; policy_templates?: ", + "[]) | undefined; policy_templates?: ", { "pluginId": "fleet", "scope": "common", @@ -19307,7 +19315,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\">[]" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\">[]" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -20791,6 +20799,19 @@ "path": "x-pack/plugins/fleet/common/constants/output.ts", "deprecated": false }, + { + "parentPluginId": "fleet", + "id": "def-common.DEFAULT_OUTPUT.is_default_monitoring", + "type": "boolean", + "tags": [], + "label": "is_default_monitoring", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/fleet/common/constants/output.ts", + "deprecated": false + }, { "parentPluginId": "fleet", "id": "def-common.DEFAULT_OUTPUT.type", @@ -21438,6 +21459,26 @@ "description": [], "path": "x-pack/plugins/fleet/common/constants/routes.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.OUTPUT_API_ROUTES.DELETE_PATTERN", + "type": "string", + "tags": [], + "label": "DELETE_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.OUTPUT_API_ROUTES.CREATE_PATTERN", + "type": "string", + "tags": [], + "label": "CREATE_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false } ], "initialIsOpen": false @@ -21613,6 +21654,16 @@ "description": [], "path": "x-pack/plugins/fleet/common/constants/routes.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.PACKAGE_POLICY_API_ROUTES.DRYRUN_PATTERN", + "type": "string", + "tags": [], + "label": "DRYRUN_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false } ], "initialIsOpen": false @@ -21746,6 +21797,21 @@ "deprecated": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-common.packagePolicyRouteService.getDryRunPath", + "type": "Function", + "tags": [], + "label": "getDryRunPath", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/fleet/common/services/routes.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -21879,4 +21945,4 @@ } ] } -} +} \ No newline at end of file diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index a118b318a4651..765e26fd45a03 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -18,7 +18,7 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1223 | 15 | 1121 | 10 | +| 1229 | 15 | 1127 | 10 | ## Client @@ -48,9 +48,6 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar ### Start -### Objects - - ### Functions diff --git a/api_docs/global_search.json b/api_docs/global_search.json index 7dd6198974f6c..9a8b76c27a93f 100644 --- a/api_docs/global_search.json +++ b/api_docs/global_search.json @@ -455,7 +455,7 @@ "signature": [ "Pick<", "GlobalSearchProviderResult", - ", \"type\" | \"id\" | \"title\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" + ", \"title\" | \"type\" | \"id\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" ], "path": "x-pack/plugins/global_search/common/types.ts", "deprecated": false, @@ -1108,7 +1108,7 @@ "signature": [ "Pick<", "GlobalSearchProviderResult", - ", \"type\" | \"id\" | \"title\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" + ", \"title\" | \"type\" | \"id\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" ], "path": "x-pack/plugins/global_search/common/types.ts", "deprecated": false, diff --git a/api_docs/home.json b/api_docs/home.json index f8056623d3387..a8dc02313ef3e 100644 --- a/api_docs/home.json +++ b/api_docs/home.json @@ -1,7 +1,171 @@ { "id": "home", "client": { - "classes": [], + "classes": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry", + "type": "Class", + "tags": [], + "label": "FeatureCatalogueRegistry", + "description": [], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.setup", + "type": "Function", + "tags": [], + "label": "setup", + "description": [], + "signature": [ + "() => { register: (feature: ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueEntry", + "text": "FeatureCatalogueEntry" + }, + ") => void; registerSolution: (solution: ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueSolution", + "text": "FeatureCatalogueSolution" + }, + ") => void; }" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.start", + "type": "Function", + "tags": [], + "label": "start", + "description": [], + "signature": [ + "({ capabilities }: { capabilities: ", + "Capabilities", + "; }) => void" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.start.$1", + "type": "Object", + "tags": [], + "label": "{ capabilities }", + "description": [], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.start.$1.capabilities", + "type": "Object", + "tags": [], + "label": "capabilities", + "description": [], + "signature": [ + "Capabilities" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.get", + "type": "Function", + "tags": [], + "label": "get", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueEntry", + "text": "FeatureCatalogueEntry" + }, + "[]" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.getSolutions", + "type": "Function", + "tags": [], + "label": "getSolutions", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueSolution", + "text": "FeatureCatalogueSolution" + }, + "[]" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.removeFeature", + "type": "Function", + "tags": [], + "label": "removeFeature", + "description": [], + "signature": [ + "(appId: string) => void" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.removeFeature.$1", + "type": "string", + "tags": [], + "label": "appId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], "functions": [ { "parentPluginId": "home", @@ -43,6 +207,81 @@ } ], "interfaces": [ + { + "parentPluginId": "home", + "id": "def-public.AddDataTab", + "type": "Interface", + "tags": [], + "label": "AddDataTab", + "description": [], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.component", + "type": "Function", + "tags": [], + "label": "component", + "description": [], + "signature": [ + "React.FunctionComponent<{}>" + ], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.component.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P & { children?: React.ReactNode; }" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.component.$2", + "type": "Any", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "any" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "home", "id": "def-public.Environment", @@ -760,7 +999,13 @@ "description": [], "signature": [ "{ registerAddDataTab: (tab: ", - "AddDataTab", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.AddDataTab", + "text": "AddDataTab" + }, ") => void; }" ], "path": "src/plugins/home/public/plugin.ts", @@ -852,7 +1097,13 @@ "label": "featureCatalogue", "description": [], "signature": [ - "FeatureCatalogueRegistry" + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueRegistry", + "text": "FeatureCatalogueRegistry" + } ], "path": "src/plugins/home/public/plugin.ts", "deprecated": false @@ -865,8 +1116,263 @@ "server": { "classes": [], "functions": [], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "home", + "id": "def-server.AppLinkData", + "type": "Interface", + "tags": [], + "label": "AppLinkData", + "description": [ + "\nThis type is used by consumers to register a new app link for a sample dataset." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.sampleObject", + "type": "CompoundType", + "tags": [], + "label": "sampleObject", + "description": [ + "\nThe sample object that is used for this app link's path; if the path does not use an object ID, set this to null." + ], + "signature": [ + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.SampleObject", + "text": "SampleObject" + }, + " | null" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.getPath", + "type": "Function", + "tags": [], + "label": "getPath", + "description": [ + "\nFunction that returns the path for this app link. Note that the `objectId` can be different than the given `sampleObject.id`, depending\non how the sample data was installed. If the `sampleObject` is null, the `objectId` argument will be an empty string." + ], + "signature": [ + "(objectId: string) => string" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.getPath.$1", + "type": "string", + "tags": [], + "label": "objectId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.label", + "type": "string", + "tags": [], + "label": "label", + "description": [ + "\nThe label for this app link." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.icon", + "type": "string", + "tags": [], + "label": "icon", + "description": [ + "\nThe icon for this app link." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel", + "type": "Interface", + "tags": [], + "label": "SampleDatasetDashboardPanel", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.sampleDataId", + "type": "string", + "tags": [], + "label": "sampleDataId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.dashboardId", + "type": "string", + "tags": [], + "label": "dashboardId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.oldEmbeddableId", + "type": "string", + "tags": [], + "label": "oldEmbeddableId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.embeddableId", + "type": "string", + "tags": [], + "label": "embeddableId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.embeddableType", + "type": "Enum", + "tags": [], + "label": "embeddableType", + "description": [], + "signature": [ + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.EmbeddableTypes", + "text": "EmbeddableTypes" + } + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.embeddableConfig", + "type": "Uncategorized", + "tags": [], + "label": "embeddableConfig", + "description": [], + "signature": [ + "object" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleObject", + "type": "Interface", + "tags": [], + "label": "SampleObject", + "description": [ + "This type is used to identify an object in a sample dataset." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.SampleObject.type", + "type": "string", + "tags": [], + "label": "type", + "description": [ + "The type of the sample object." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleObject.id", + "type": "string", + "tags": [], + "label": "id", + "description": [ + "The ID of the sample object." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "home", + "id": "def-server.TutorialContext", + "type": "Interface", + "tags": [], + "label": "TutorialContext", + "description": [], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.TutorialContext.Unnamed", + "type": "Any", + "tags": [], + "label": "Unnamed", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + } + ], "enums": [ + { + "parentPluginId": "home", + "id": "def-server.EmbeddableTypes", + "type": "Enum", + "tags": [], + "label": "EmbeddableTypes", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "home", "id": "def-server.TutorialsCategory", @@ -888,7 +1394,7 @@ "label": "ArtifactsSchema", "description": [], "signature": [ - "{ readonly application?: Readonly<{} & { label: string; path: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" + "{ readonly application?: Readonly<{} & { path: string; label: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -916,7 +1422,7 @@ "label": "InstructionsSchema", "description": [], "signature": [ - "{ readonly params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; readonly instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }" + "{ readonly params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; readonly instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -938,10 +1444,24 @@ "section": "def-server.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]; dataIndices: Readonly<{} & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", + "[]; previewImagePath: string; overviewDashboard: string; dataIndices: Readonly<{} & { fields: Record; id: string; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", "SavedObject", - "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", - "SampleDatasetDashboardPanel", + "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.AppLinkData", + "text": "AppLinkData" + }, + "[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.SampleDatasetDashboardPanel", + "text": "SampleDatasetDashboardPanel" + }, ") => void; }" ], "path": "src/plugins/home/server/services/sample_data/sample_data_registry.ts", @@ -964,7 +1484,7 @@ "section": "def-server.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]; dataIndices: Readonly<{} & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>" + "[]; previewImagePath: string; overviewDashboard: string; dataIndices: Readonly<{} & { fields: Record; id: string; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>" ], "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", "deprecated": false, @@ -972,6 +1492,36 @@ "children": [], "initialIsOpen": false }, + { + "parentPluginId": "home", + "id": "def-server.ScopedTutorialContextFactory", + "type": "Type", + "tags": [], + "label": "ScopedTutorialContextFactory", + "description": [], + "signature": [ + "(...args: any[]) => any" + ], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "home", + "id": "def-server.ScopedTutorialContextFactory.$1", + "type": "Array", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "any[]" + ], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "home", "id": "def-server.TutorialProvider", @@ -981,8 +1531,14 @@ "description": [], "signature": [ "(context: ", - "TutorialContext", - ") => Readonly<{ isBeta?: boolean | undefined; savedObjects?: any[] | undefined; euiIconType?: string | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { id: string; name: string; category: \"other\" | \"security\" | \"metrics\" | \"logging\"; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.TutorialContext", + "text": "TutorialContext" + }, + ") => Readonly<{ savedObjects?: any[] | undefined; isBeta?: boolean | undefined; euiIconType?: string | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { name: string; id: string; category: \"metrics\" | \"security\" | \"other\" | \"logging\"; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", "deprecated": false, @@ -996,7 +1552,13 @@ "label": "context", "description": [], "signature": [ - "TutorialContext" + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.TutorialContext", + "text": "TutorialContext" + } ], "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", "deprecated": false @@ -1012,7 +1574,7 @@ "label": "TutorialSchema", "description": [], "signature": [ - "{ readonly isBeta?: boolean | undefined; readonly savedObjects?: any[] | undefined; readonly euiIconType?: string | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly id: string; readonly name: string; readonly category: \"other\" | \"security\" | \"metrics\" | \"logging\"; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" + "{ readonly savedObjects?: any[] | undefined; readonly isBeta?: boolean | undefined; readonly euiIconType?: string | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly name: string; readonly id: string; readonly category: \"metrics\" | \"security\" | \"other\" | \"logging\"; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -1249,7 +1811,13 @@ "text": "TutorialProvider" }, ") => void; addScopedTutorialContextFactory: (scopedTutorialContextFactory: ", - "ScopedTutorialContextFactory", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.ScopedTutorialContextFactory", + "text": "ScopedTutorialContextFactory" + }, ") => void; }" ], "path": "src/plugins/home/server/plugin.ts", @@ -1271,10 +1839,24 @@ "section": "def-server.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]; dataIndices: Readonly<{} & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", + "[]; previewImagePath: string; overviewDashboard: string; dataIndices: Readonly<{} & { fields: Record; id: string; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", "SavedObject", - "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", - "SampleDatasetDashboardPanel", + "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.AppLinkData", + "text": "AppLinkData" + }, + "[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.SampleDatasetDashboardPanel", + "text": "SampleDatasetDashboardPanel" + }, ") => void; }" ], "path": "src/plugins/home/server/plugin.ts", diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 73526e517647c..e4ce618a1d0c3 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 96 | 2 | 74 | 5 | +| 132 | 4 | 102 | 0 | ## Client @@ -34,6 +34,9 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que ### Functions +### Classes + + ### Interfaces @@ -54,6 +57,9 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que ### Objects +### Interfaces + + ### Enums diff --git a/api_docs/kbn_apm_config_loader.json b/api_docs/kbn_apm_config_loader.json index 11ddc8679c815..134f3435ee02c 100644 --- a/api_docs/kbn_apm_config_loader.json +++ b/api_docs/kbn_apm_config_loader.json @@ -219,6 +219,40 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/apm-config-loader", + "id": "def-server.shouldInstrumentClient", + "type": "Function", + "tags": [], + "label": "shouldInstrumentClient", + "description": [], + "signature": [ + "(config: ", + "AgentConfigOptions", + " | undefined) => boolean" + ], + "path": "packages/kbn-apm-config-loader/src/rum_agent_configuration.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/apm-config-loader", + "id": "def-server.shouldInstrumentClient.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "AgentConfigOptions", + " | undefined" + ], + "path": "packages/kbn-apm-config-loader/src/rum_agent_configuration.ts", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false } ], "interfaces": [], diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index abc95dbeff0b3..8fd82f64fec05 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 14 | 0 | 14 | 0 | +| 16 | 0 | 16 | 0 | ## Server diff --git a/api_docs/kbn_es_archiver.json b/api_docs/kbn_es_archiver.json index 543a46deb3c4f..df0e26225b2e9 100644 --- a/api_docs/kbn_es_archiver.json +++ b/api_docs/kbn_es_archiver.json @@ -55,6 +55,7 @@ "id": "def-server.EsArchiver.save", "type": "Function", "tags": [ + "property", "property" ], "label": "save", @@ -62,7 +63,7 @@ "\nExtract data and mappings from an elasticsearch index and store\nit in the baseDir so it can be used later to recreate the index.\n" ], "signature": [ - "(path: string, indices: string | string[], { raw, query }?: { raw?: boolean | undefined; query?: Record | undefined; }) => Promise | undefined; }) => Promise>" ], @@ -106,7 +107,7 @@ "id": "def-server.EsArchiver.save.$3", "type": "Object", "tags": [], - "label": "{ raw = false, query }", + "label": "{\n raw = false,\n keepIndexNames = false,\n query,\n }", "description": [], "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false, @@ -124,6 +125,19 @@ "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false }, + { + "parentPluginId": "@kbn/es-archiver", + "id": "def-server.EsArchiver.save.$3.keepIndexNames", + "type": "CompoundType", + "tags": [], + "label": "keepIndexNames", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-es-archiver/src/es_archiver.ts", + "deprecated": false + }, { "parentPluginId": "@kbn/es-archiver", "id": "def-server.EsArchiver.save.$3.query", @@ -147,6 +161,7 @@ "id": "def-server.EsArchiver.load", "type": "Function", "tags": [ + "property", "property", "property" ], @@ -155,7 +170,7 @@ "\nLoad an index from an archive\n" ], "signature": [ - "(path: string, { skipExisting, useCreate, }?: { skipExisting?: boolean | undefined; useCreate?: boolean | undefined; }) => Promise Promise>" ], @@ -183,7 +198,7 @@ "id": "def-server.EsArchiver.load.$2", "type": "Object", "tags": [], - "label": "{\n skipExisting = false,\n useCreate = false,\n }", + "label": "{\n skipExisting = false,\n useCreate = false,\n docsOnly = false,\n }", "description": [], "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false, @@ -213,6 +228,19 @@ ], "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false + }, + { + "parentPluginId": "@kbn/es-archiver", + "id": "def-server.EsArchiver.load.$2.docsOnly", + "type": "CompoundType", + "tags": [], + "label": "docsOnly", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-es-archiver/src/es_archiver.ts", + "deprecated": false } ] } diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index a2c90c35d0489..3a6675f162601 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 25 | 0 | 12 | 1 | +| 27 | 0 | 14 | 1 | ## Server diff --git a/api_docs/kbn_es_query.json b/api_docs/kbn_es_query.json index c912aa62390b2..1095f32d95c0d 100644 --- a/api_docs/kbn_es_query.json +++ b/api_docs/kbn_es_query.json @@ -977,7 +977,7 @@ "\nCreates a filter corresponding to a raw Elasticsearch query DSL object" ], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -997,7 +997,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts", "deprecated": false, @@ -4101,7 +4101,7 @@ "section": "def-common.FilterMeta", "text": "FilterMeta" }, - "; query?: { query_string?: { query: string; } | undefined; } | undefined; }" + "; query?: { query_string?: { query: string; fields?: string[] | undefined; } | undefined; } | undefined; }" ], "path": "packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts", "deprecated": false, diff --git a/api_docs/kbn_logging.json b/api_docs/kbn_logging.json index ca0d0f8a37ef6..6f750cfb91347 100644 --- a/api_docs/kbn_logging.json +++ b/api_docs/kbn_logging.json @@ -616,7 +616,7 @@ "label": "EcsEventCategory", "description": [], "signature": [ - "\"network\" | \"web\" | \"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" + "\"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"network\" | \"web\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" ], "path": "packages/kbn-logging/src/ecs/event.ts", "deprecated": false, diff --git a/api_docs/kbn_mapbox_gl.json b/api_docs/kbn_mapbox_gl.json index ee5b4c6dadc7d..76fd490447c1d 100644 --- a/api_docs/kbn_mapbox_gl.json +++ b/api_docs/kbn_mapbox_gl.json @@ -3822,7 +3822,7 @@ "label": "on", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -3880,7 +3880,7 @@ "label": "on", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -3924,7 +3924,7 @@ "label": "on", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -3968,7 +3968,7 @@ "label": "once", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4026,7 +4026,7 @@ "label": "once", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4070,7 +4070,7 @@ "label": "once", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4114,7 +4114,7 @@ "label": "off", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4172,7 +4172,7 @@ "label": "off", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4216,7 +4216,7 @@ "label": "off", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -6750,7 +6750,7 @@ "label": "scheme", "description": [], "signature": [ - "\"xyz\" | \"tms\" | undefined" + "\"tms\" | \"xyz\" | undefined" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false diff --git a/api_docs/kbn_monaco.json b/api_docs/kbn_monaco.json index 17323f36e0d89..03527a796a800 100644 --- a/api_docs/kbn_monaco.json +++ b/api_docs/kbn_monaco.json @@ -132,6 +132,94 @@ ], "path": "packages/kbn-monaco/src/types.ts", "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.CompleteLangModuleType.validation$", + "type": "Function", + "tags": [], + "label": "validation$", + "description": [], + "signature": [ + "() => ", + "Observable", + "<", + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.LangValidation", + "text": "LangValidation" + }, + ">" + ], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError", + "type": "Interface", + "tags": [], + "label": "EditorError", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.startLineNumber", + "type": "number", + "tags": [], + "label": "startLineNumber", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.startColumn", + "type": "number", + "tags": [], + "label": "startColumn", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.endLineNumber", + "type": "number", + "tags": [], + "label": "endLineNumber", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.endColumn", + "type": "number", + "tags": [], + "label": "endColumn", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -213,6 +301,59 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation", + "type": "Interface", + "tags": [], + "label": "LangValidation", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation.isValidating", + "type": "boolean", + "tags": [], + "label": "isValidating", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation.isValid", + "type": "boolean", + "tags": [], + "label": "isValid", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation.errors", + "type": "Array", + "tags": [], + "label": "errors", + "description": [], + "signature": [ + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.EditorError", + "text": "EditorError" + }, + "[]" + ], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/monaco", "id": "def-common.PainlessAutocompleteField", @@ -274,7 +415,7 @@ "label": "kind", "description": [], "signature": [ - "\"keyword\" | \"type\" | \"field\" | \"property\" | \"method\" | \"class\" | \"constructor\"" + "\"type\" | \"field\" | \"keyword\" | \"property\" | \"method\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false @@ -357,6 +498,32 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.SyntaxErrors", + "type": "Interface", + "tags": [], + "label": "SyntaxErrors", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.SyntaxErrors.Unnamed", + "type": "Any", + "tags": [], + "label": "Unnamed", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -369,7 +536,7 @@ "label": "PainlessCompletionKind", "description": [], "signature": [ - "\"keyword\" | \"type\" | \"field\" | \"property\" | \"method\" | \"class\" | \"constructor\"" + "\"type\" | \"field\" | \"keyword\" | \"property\" | \"method\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false, @@ -513,7 +680,38 @@ "description": [], "signature": [ "() => ", - "SyntaxErrors" + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.SyntaxErrors", + "text": "SyntaxErrors" + } + ], + "path": "packages/kbn-monaco/src/painless/index.ts", + "deprecated": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.PainlessLang.validation$", + "type": "Function", + "tags": [], + "label": "validation$", + "description": [], + "signature": [ + "() => ", + "Observable", + "<", + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.LangValidation", + "text": "LangValidation" + }, + ">" ], "path": "packages/kbn-monaco/src/painless/index.ts", "deprecated": false, diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 08c7f95ee4f43..adb95090405cc 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 38 | 0 | 38 | 3 | +| 52 | 1 | 52 | 2 | ## Common diff --git a/api_docs/kbn_react_field.json b/api_docs/kbn_react_field.json new file mode 100644 index 0000000000000..dca7be13b92c7 --- /dev/null +++ b/api_docs/kbn_react_field.json @@ -0,0 +1,387 @@ +{ + "id": "@kbn/react-field", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButton", + "type": "Function", + "tags": [], + "label": "FieldButton", + "description": [], + "signature": [ + "({\n size = 'm',\n isActive = false,\n fieldIcon,\n fieldName,\n fieldInfoIcon,\n fieldAction,\n className,\n isDraggable = false,\n onClick,\n dataTestSubj,\n buttonProps,\n ...rest\n}: ", + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldButtonProps", + "text": "FieldButtonProps" + }, + ") => JSX.Element" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButton.$1", + "type": "Object", + "tags": [], + "label": "{\n size = 'm',\n isActive = false,\n fieldIcon,\n fieldName,\n fieldInfoIcon,\n fieldAction,\n className,\n isDraggable = false,\n onClick,\n dataTestSubj,\n buttonProps,\n ...rest\n}", + "description": [], + "signature": [ + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldButtonProps", + "text": "FieldButtonProps" + } + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldIcon", + "type": "Function", + "tags": [], + "label": "FieldIcon", + "description": [ + "\nField token icon used across the app" + ], + "signature": [ + "({\n type,\n label,\n size = 's',\n scripted,\n className,\n ...rest\n}: ", + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldIconProps", + "text": "FieldIconProps" + }, + ") => JSX.Element" + ], + "path": "packages/kbn-react-field/src/field_icon/field_icon.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldIcon.$1", + "type": "Object", + "tags": [], + "label": "{\n type,\n label,\n size = 's',\n scripted,\n className,\n ...rest\n}", + "description": [], + "signature": [ + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldIconProps", + "text": "FieldIconProps" + } + ], + "path": "packages/kbn-react-field/src/field_icon/field_icon.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps", + "type": "Interface", + "tags": [], + "label": "FieldButtonProps", + "description": [], + "signature": [ + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldButtonProps", + "text": "FieldButtonProps" + }, + " extends React.HTMLAttributes" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps.fieldName", + "type": "CompoundType", + "tags": [], + "label": "fieldName", + "description": [ + "\nLabel for the button" + ], + "signature": [ + "string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | null | undefined" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false + }, + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps.fieldIcon", + "type": "CompoundType", + "tags": [], + "label": "fieldIcon", + "description": [ + "\nIcon representing the field type.\nRecommend using FieldIcon" + ], + "signature": [ + "string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | null | undefined" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false + }, + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps.fieldInfoIcon", + "type": "CompoundType", + "tags": [], + "label": "fieldInfoIcon", + "description": [ + "\nAn optional node to place inside and at the end of the
); +}; diff --git a/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx b/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx index 20892ce8e9c5d..f71009a37b747 100644 --- a/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx @@ -34,7 +34,7 @@ const props = { describe('CasesTableFilters ', () => { beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); (useGetTags as jest.Mock).mockReturnValue({ tags: ['coke', 'pepsi'], fetchTags }); (useGetReporters as jest.Mock).mockReturnValue({ reporters: ['casetester'], diff --git a/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx b/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx index a2b4c14c0278a..26430482bc067 100644 --- a/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx @@ -141,7 +141,12 @@ export const CasesTableUtilityBar: FunctionComponent = ({ )} - + {i18n.REFRESH} diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.tsx b/x-pack/plugins/cases/public/components/app/index.tsx similarity index 54% rename from x-pack/plugins/security_solution/public/cases/components/callout/helpers.tsx rename to x-pack/plugins/cases/public/components/app/index.tsx index fdd49ad17168d..0ac336adb94a9 100644 --- a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.tsx +++ b/x-pack/plugins/cases/public/components/app/index.tsx @@ -5,7 +5,9 @@ * 2.0. */ -import md5 from 'md5'; +import { CasesRoutes } from './routes'; +import { CasesRoutesProps } from './types'; -export const createCalloutId = (ids: string[], delimiter: string = '|'): string => - md5(ids.join(delimiter)); +export type CasesProps = CasesRoutesProps; +// eslint-disable-next-line import/no-default-export +export { CasesRoutes as default }; diff --git a/x-pack/plugins/cases/public/components/app/routes.test.tsx b/x-pack/plugins/cases/public/components/app/routes.test.tsx new file mode 100644 index 0000000000000..69410327af1ef --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/routes.test.tsx @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +// eslint-disable-next-line @kbn/eslint/module_migration +import { MemoryRouterProps } from 'react-router'; +import { render, screen } from '@testing-library/react'; +import { MemoryRouter } from 'react-router-dom'; +import { TestProviders } from '../../common/mock'; +import { CasesRoutes } from './routes'; + +jest.mock('../all_cases', () => ({ + AllCases: () =>
{'All cases'}
, +})); + +jest.mock('../case_view', () => ({ + CaseView: () =>
{'Case view'}
, +})); + +jest.mock('../create', () => ({ + CreateCase: () =>
{'Create case'}
, +})); + +jest.mock('../configure_cases', () => ({ + ConfigureCases: () =>
{'Configure cases'}
, +})); + +const getCaseViewPaths = () => [ + '/cases/test-id', + '/cases/test-id/comment-id', + '/cases/test-id/sub-cases/sub-case-id', + '/cases/test-id/sub-cases/sub-case-id/comment-id', +]; + +const renderWithRouter = ( + initialEntries: MemoryRouterProps['initialEntries'] = ['/cases'], + userCanCrud = true +) => { + return render( + + + [false, {}]} /> + + + ); +}; + +describe('Cases routes', () => { + describe('All cases', () => { + it('navigates to the all cases page', () => { + renderWithRouter(); + expect(screen.getByText('All cases')).toBeInTheDocument(); + }); + + // User has read only privileges + it('user can navigate to the all cases page with userCanCrud = false', () => { + renderWithRouter(['/cases'], false); + expect(screen.getByText('All cases')).toBeInTheDocument(); + }); + }); + + describe('Case view', () => { + it.each(getCaseViewPaths())('navigates to the cases view page for path: %s', (path: string) => { + renderWithRouter([path]); + expect(screen.getByText('Case view')).toBeInTheDocument(); + // User has read only privileges + }); + + it.each(getCaseViewPaths())( + 'user can navigate to the cases view page with userCanCrud = false and path: %s', + (path: string) => { + renderWithRouter([path], false); + expect(screen.getByText('Case view')).toBeInTheDocument(); + } + ); + }); + + describe('Create case', () => { + it('navigates to the create case page', () => { + renderWithRouter(['/cases/create']); + expect(screen.getByText('Create case')).toBeInTheDocument(); + }); + + it('shows the no privileges page if userCanCrud = false', () => { + renderWithRouter(['/cases/create'], false); + expect(screen.getByText('Privileges required')).toBeInTheDocument(); + }); + }); + + describe('Configure cases', () => { + it('navigates to the configure cases page', () => { + renderWithRouter(['/cases/configure']); + expect(screen.getByText('Configure cases')).toBeInTheDocument(); + }); + + it('shows the no privileges page if userCanCrud = false', () => { + renderWithRouter(['/cases/configure'], false); + expect(screen.getByText('Privileges required')).toBeInTheDocument(); + }); + }); +}); diff --git a/x-pack/plugins/cases/public/components/app/routes.tsx b/x-pack/plugins/cases/public/components/app/routes.tsx new file mode 100644 index 0000000000000..bd4450baaf3fb --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/routes.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, { useCallback } from 'react'; +import { Redirect, Route, Switch } from 'react-router-dom'; +import { AllCases } from '../all_cases'; +import { CaseView } from '../case_view'; +import { CreateCase } from '../create'; +import { ConfigureCases } from '../configure_cases'; +import { CasesRoutesProps } from './types'; +import { useCasesContext } from '../cases_context/use_cases_context'; +import { + getCasesConfigurePath, + getCreateCasePath, + getCaseViewPath, + getCaseViewWithCommentPath, + getSubCaseViewPath, + getSubCaseViewWithCommentPath, + useAllCasesNavigation, + useCaseViewNavigation, +} from '../../common/navigation'; +import { NoPrivilegesPage } from '../no_privileges'; +import * as i18n from './translations'; +import { useReadonlyHeader } from './use_readonly_header'; + +const CasesRoutesComponent: React.FC = ({ + disableAlerts, + onComponentInitialized, + actionsNavigation, + ruleDetailsNavigation, + showAlertDetails, + useFetchAlertData, + refreshRef, + hideSyncAlerts, + timelineIntegration, +}) => { + const { basePath, userCanCrud } = useCasesContext(); + const { navigateToAllCases } = useAllCasesNavigation(); + const { navigateToCaseView } = useCaseViewNavigation(); + useReadonlyHeader(); + + const onCreateCaseSuccess = useCallback( + async ({ id }) => navigateToCaseView({ detailName: id }), + [navigateToCaseView] + ); + + return ( + + + + + + + {userCanCrud ? ( + + ) : ( + + )} + + + + {userCanCrud ? ( + + ) : ( + + )} + + + + + + + + + + + ); +}; + +export const CasesRoutes = React.memo(CasesRoutesComponent); diff --git a/x-pack/plugins/cases/public/components/app/translations.ts b/x-pack/plugins/cases/public/components/app/translations.ts new file mode 100644 index 0000000000000..6796f0e03aa77 --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/translations.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const NO_PRIVILEGES_MSG = (pageName: string) => + i18n.translate('xpack.cases.noPrivileges.message', { + values: { pageName }, + defaultMessage: + 'To view {pageName} page, you must update privileges. For more information, contact your Kibana administrator.', + }); + +export const NO_PRIVILEGES_TITLE = i18n.translate('xpack.cases.noPrivileges.title', { + defaultMessage: 'Privileges required', +}); + +export const NO_PRIVILEGES_BUTTON = i18n.translate('xpack.cases.noPrivileges.button', { + defaultMessage: 'Back to Cases', +}); + +export const CREATE_CASE_PAGE_NAME = i18n.translate('xpack.cases.createCase', { + defaultMessage: 'Create Case', +}); + +export const CONFIGURE_CASES_PAGE_NAME = i18n.translate('xpack.cases.configureCases', { + defaultMessage: 'Configure Cases', +}); + +export const READ_ONLY_BADGE_TEXT = i18n.translate('xpack.cases.badge.readOnly.text', { + defaultMessage: 'Read only', +}); + +export const READ_ONLY_BADGE_TOOLTIP = i18n.translate('xpack.cases.badge.readOnly.tooltip', { + defaultMessage: 'Unable to create or edit cases', +}); diff --git a/x-pack/plugins/cases/public/components/app/types.ts b/x-pack/plugins/cases/public/components/app/types.ts new file mode 100644 index 0000000000000..943cf5fcad96d --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/types.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 { MutableRefObject } from 'react'; +import { Ecs, CaseViewRefreshPropInterface } from '../../../common'; +import { CasesNavigation } from '../links'; +import { CasesTimelineIntegration } from '../timeline_context'; + +export interface CasesRoutesProps { + disableAlerts?: boolean; + onComponentInitialized?: () => void; + actionsNavigation?: CasesNavigation; + ruleDetailsNavigation?: CasesNavigation; + showAlertDetails?: (alertId: string, index: string) => void; + useFetchAlertData: (alertIds: string[]) => [boolean, Record]; + /** + * A React `Ref` that Exposes data refresh callbacks. + * **NOTE**: Do not hold on to the `.current` object, as it could become stale + */ + refreshRef?: MutableRefObject; + hideSyncAlerts?: boolean; + timelineIntegration?: CasesTimelineIntegration; +} diff --git a/x-pack/plugins/cases/public/components/app/use_readonly_header.test.tsx b/x-pack/plugins/cases/public/components/app/use_readonly_header.test.tsx new file mode 100644 index 0000000000000..31c9b46ad7ea5 --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/use_readonly_header.test.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 { renderHook } from '@testing-library/react-hooks'; + +import { useKibana } from '../../common/lib/kibana'; +import { TestProviders } from '../../common/mock'; +import { useReadonlyHeader } from './use_readonly_header'; + +const useKibanaMock = useKibana as jest.Mocked; +jest.mock('../../common/lib/kibana'); + +const mockedSetBadge = jest.fn(); + +describe('CaseContainerComponent', () => { + beforeEach(() => { + jest.clearAllMocks(); + useKibanaMock().services.chrome.setBadge = mockedSetBadge; + }); + + it('does not display the readonly glasses badge when the user has write permissions', () => { + renderHook(() => useReadonlyHeader(), { + wrapper: ({ children }) => {children}, + }); + + expect(mockedSetBadge).not.toBeCalled(); + }); + + it('displays the readonly glasses badge read permissions but not write', () => { + renderHook(() => useReadonlyHeader(), { + wrapper: ({ children }) => {children}, + }); + + expect(mockedSetBadge).toBeCalledTimes(1); + }); +}); diff --git a/x-pack/plugins/observability/public/hooks/use_readonly_header.tsx b/x-pack/plugins/cases/public/components/app/use_readonly_header.ts similarity index 71% rename from x-pack/plugins/observability/public/hooks/use_readonly_header.tsx rename to x-pack/plugins/cases/public/components/app/use_readonly_header.ts index 4d8779e1ea150..eb522dffe4c7b 100644 --- a/x-pack/plugins/observability/public/hooks/use_readonly_header.tsx +++ b/x-pack/plugins/cases/public/components/app/use_readonly_header.ts @@ -7,27 +7,27 @@ import { useCallback, useEffect } from 'react'; -import * as i18n from '../components/app/cases/translations'; -import { useGetUserCasesPermissions } from '../hooks/use_get_user_cases_permissions'; -import { useKibana } from '../utils/kibana_react'; +import * as i18n from './translations'; +import { useKibana } from '../../common/lib/kibana'; +import { useCasesContext } from '../cases_context/use_cases_context'; /** * This component places a read-only icon badge in the header if user only has read permissions */ export function useReadonlyHeader() { - const userPermissions = useGetUserCasesPermissions(); + const { userCanCrud } = useCasesContext(); const chrome = useKibana().services.chrome; // if the user is read only then display the glasses badge in the global navigation header const setBadge = useCallback(() => { - if (userPermissions != null && !userPermissions.crud && userPermissions.read) { + if (!userCanCrud) { chrome.setBadge({ text: i18n.READ_ONLY_BADGE_TEXT, tooltip: i18n.READ_ONLY_BADGE_TOOLTIP, iconType: 'glasses', }); } - }, [chrome, userPermissions]); + }, [chrome, userCanCrud]); useEffect(() => { setBadge(); diff --git a/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx b/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx index f6d52583d436f..ada2b61c816db 100644 --- a/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx +++ b/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx @@ -13,22 +13,18 @@ import { ConfirmDeleteCaseModal } from '../confirm_delete_case'; import { PropertyActions } from '../property_actions'; import { Case } from '../../../common'; import { CaseService } from '../../containers/use_get_case_user_actions'; -import { CasesNavigation } from '../links'; +import { useAllCasesNavigation } from '../../common/navigation'; interface CaseViewActions { - allCasesNavigation: CasesNavigation; caseData: Case; currentExternalIncident: CaseService | null; } -const ActionsComponent: React.FC = ({ - allCasesNavigation, - caseData, - currentExternalIncident, -}) => { +const ActionsComponent: React.FC = ({ caseData, currentExternalIncident }) => { // Delete case const { handleToggleModal, handleOnDeleteConfirm, isDeleted, isDisplayConfirmDeleteModal } = useDeleteCases(); + const { navigateToAllCases } = useAllCasesNavigation(); const propertyActions = useMemo( () => [ @@ -51,7 +47,7 @@ const ActionsComponent: React.FC = ({ ); if (isDeleted) { - allCasesNavigation.onClick(null); + navigateToAllCases(); return null; } return ( diff --git a/x-pack/plugins/cases/public/components/case_action_bar/index.tsx b/x-pack/plugins/cases/public/components/case_action_bar/index.tsx index 8149fd6591645..e95410c1967b6 100644 --- a/x-pack/plugins/cases/public/components/case_action_bar/index.tsx +++ b/x-pack/plugins/cases/public/components/case_action_bar/index.tsx @@ -25,7 +25,6 @@ import { StatusContextMenu } from './status_context_menu'; import { getStatusDate, getStatusTitle } from './helpers'; import { SyncAlertsSwitch } from '../case_settings/sync_alerts_switch'; import { OnUpdateFields } from '../case_view'; -import { CasesNavigation } from '../links'; const MyDescriptionList = styled(EuiDescriptionList)` ${({ theme }) => css` @@ -41,7 +40,6 @@ const MyDescriptionList = styled(EuiDescriptionList)` `; interface CaseActionBarProps { - allCasesNavigation: CasesNavigation; caseData: Case; currentExternalIncident: CaseService | null; userCanCrud: boolean; @@ -51,7 +49,6 @@ interface CaseActionBarProps { onUpdateField: (args: OnUpdateFields) => void; } const CaseActionBarComponent: React.FC = ({ - allCasesNavigation, caseData, currentExternalIncident, disableAlerting, @@ -157,11 +154,7 @@ const CaseActionBarComponent: React.FC = ({
{userCanCrud && ( - + )} diff --git a/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx b/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx index 627c90a45aa66..0073d2a491b74 100644 --- a/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx +++ b/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx @@ -9,24 +9,29 @@ import React from 'react'; import { EuiEmptyPrompt, EuiButton } from '@elastic/eui'; import * as i18n from './translations'; -import { CasesNavigation } from '../links'; +import { useAllCasesNavigation } from '../../common/navigation'; interface Props { - allCasesNavigation: CasesNavigation; caseId: string; } -export const DoesNotExist = ({ allCasesNavigation, caseId }: Props) => ( - {i18n.DOES_NOT_EXIST_TITLE}} - titleSize="xs" - body={

{i18n.DOES_NOT_EXIST_DESCRIPTION(caseId)}

} - actions={ - - {i18n.DOES_NOT_EXIST_BUTTON} - - } - /> -); +export const DoesNotExist = React.memo(({ caseId }: Props) => { + const { navigateToAllCases } = useAllCasesNavigation(); + + return ( + {i18n.DOES_NOT_EXIST_TITLE}} + titleSize="xs" + body={

{i18n.DOES_NOT_EXIST_DESCRIPTION(caseId)}

} + actions={ + + {i18n.DOES_NOT_EXIST_BUTTON} + + } + /> + ); +}); + +DoesNotExist.displayName = 'DoesNotExist'; diff --git a/x-pack/plugins/cases/public/components/case_view/index.test.tsx b/x-pack/plugins/cases/public/components/case_view/index.test.tsx index dcc244116fbcb..aaf4928703896 100644 --- a/x-pack/plugins/cases/public/components/case_view/index.test.tsx +++ b/x-pack/plugins/cases/public/components/case_view/index.test.tsx @@ -7,6 +7,7 @@ import React from 'react'; import { mount } from 'enzyme'; +import { act, waitFor } from '@testing-library/react'; import '../../common/mock/match_media'; import { CaseComponent, CaseComponentProps, CaseView, CaseViewProps } from '.'; @@ -22,7 +23,6 @@ import { SpacesApi } from '../../../../spaces/public'; import { useUpdateCase } from '../../containers/use_update_case'; import { useGetCase } from '../../containers/use_get_case'; import { useGetCaseUserActions } from '../../containers/use_get_case_user_actions'; -import { waitFor } from '@testing-library/react'; import { useConnectors } from '../../containers/configure/use_connectors'; import { connectorsMock } from '../../containers/configure/mock'; @@ -30,10 +30,6 @@ import { usePostPushToService } from '../../containers/use_post_push_to_service' import { CaseType, ConnectorTypes } from '../../../common'; import { useKibana } from '../../common/lib/kibana'; -const mockId = basicCase.id; -jest.mock('react-router-dom', () => ({ - useParams: () => ({ detailName: mockId }), -})); jest.mock('../../containers/use_update_case'); jest.mock('../../containers/use_get_case_user_actions'); jest.mock('../../containers/use_get_case'); @@ -41,13 +37,13 @@ jest.mock('../../containers/configure/use_connectors'); jest.mock('../../containers/use_post_push_to_service'); jest.mock('../user_action_tree/user_action_timestamp'); jest.mock('../../common/lib/kibana'); +jest.mock('../../common/navigation/hooks'); const useUpdateCaseMock = useUpdateCase as jest.Mock; const useGetCaseUserActionsMock = useGetCaseUserActions as jest.Mock; const useConnectorsMock = useConnectors as jest.Mock; const usePostPushToServiceMock = usePostPushToService as jest.Mock; -const useKibanaMock = useKibana as jest.Mocked; -const onCaseDataSuccessMock = jest.fn(); +const useKibanaMock = useKibana as jest.MockedFunction; const spacesUiApiMock = { redirectLegacyUrl: jest.fn().mockResolvedValue(undefined), @@ -84,20 +80,7 @@ const alertsHit = [ ]; export const caseProps: CaseComponentProps = { - allCasesNavigation: { - href: 'all-cases-href', - onClick: jest.fn(), - }, - caseDetailsNavigation: { - href: 'case-details-href', - onClick: jest.fn(), - }, caseId: basicCase.id, - configureCasesNavigation: { - href: 'configure-cases-href', - onClick: jest.fn(), - }, - getCaseDetailHrefWithCommentId: jest.fn(), onComponentInitialized: jest.fn(), actionsNavigation: { href: jest.fn(), @@ -115,7 +98,6 @@ export const caseProps: CaseComponentProps = { 'alert-id-2': alertsHit[1], }, ], - userCanCrud: true, caseData: { ...basicCase, comments: [...basicCase.comments, alertComment], @@ -128,7 +110,6 @@ export const caseProps: CaseComponentProps = { }, fetchCase: jest.fn(), updateCase: jest.fn(), - onCaseDataSuccess: onCaseDataSuccessMock, }; export const caseClosedProps: CaseComponentProps = { @@ -373,15 +354,6 @@ describe('CaseView ', () => { await waitFor(() => { expect(updateObject.updateKey).toEqual('title'); expect(updateObject.updateValue).toEqual(newTitle); - expect(updateObject.onSuccess).toBeDefined(); - }); - - updateObject.onSuccess(); // simulate the request has succeed - await waitFor(() => { - expect(onCaseDataSuccessMock).toHaveBeenCalledWith({ - ...caseProps.caseData, - title: newTitle, - }); }); }); @@ -472,7 +444,7 @@ describe('CaseView ', () => { expect(wrapper.find('[data-test-subj="case-view-title"]').exists()).toBeTruthy(); expect(spacesUiApiMock.components.getLegacyUrlConflict).not.toHaveBeenCalled(); expect(spacesUiApiMock.redirectLegacyUrl).toHaveBeenCalledWith( - `cases/${resolveAliasId}`, + `/cases/${resolveAliasId}`, 'case' ); }); @@ -498,7 +470,7 @@ describe('CaseView ', () => { objectNoun: 'case', currentObjectId: defaultGetCase.data.id, otherObjectId: resolveAliasId, - otherObjectPath: `cases/${resolveAliasId}`, + otherObjectPath: `/cases/${resolveAliasId}`, }); }); }); @@ -749,54 +721,41 @@ describe('CaseView ', () => { describe('when a `refreshRef` prop is provided', () => { let refreshRef: CaseViewProps['refreshRef']; - beforeEach(() => { + beforeEach(async () => { (useGetCase as jest.Mock).mockImplementation(() => defaultGetCase); refreshRef = React.createRef(); - mount( - - - - ); + await act(async () => { + mount( + + + + ); + }); }); it('should set it with expected refresh interface', async () => { - expect(refreshRef!.current).toEqual({ - refreshUserActionsAndComments: expect.any(Function), - refreshCase: expect.any(Function), + await waitFor(() => { + expect(refreshRef!.current).toEqual({ + refreshUserActionsAndComments: expect.any(Function), + refreshCase: expect.any(Function), + }); }); }); it('should refresh actions and comments', async () => { await waitFor(() => { refreshRef!.current!.refreshUserActionsAndComments(); - expect(fetchCaseUserActions).toBeCalledWith('1234', 'resilient-2', undefined); + expect(fetchCaseUserActions).toBeCalledWith('basic-case-id', 'resilient-2', undefined); expect(fetchCase).toBeCalledWith(true); }); }); diff --git a/x-pack/plugins/cases/public/components/case_view/index.tsx b/x-pack/plugins/cases/public/components/case_view/index.tsx index 75ac42ecd24ee..a67be6e44298d 100644 --- a/x-pack/plugins/cases/public/components/case_view/index.tsx +++ b/x-pack/plugins/cases/public/components/case_view/index.tsx @@ -37,24 +37,25 @@ import * as i18n from './translations'; import { CasesTimelineIntegration, CasesTimelineIntegrationProvider } from '../timeline_context'; import { useTimelineContext } from '../timeline_context/use_timeline_context'; import { CasesNavigation } from '../links'; -import { OwnerProvider } from '../owner_context'; import { getConnectorById } from '../utils'; import { DoesNotExist } from './does_not_exist'; import { useKibana } from '../../common/lib/kibana'; +import { useCasesContext } from '../cases_context/use_cases_context'; +import { + generateCaseViewPath, + useCaseViewNavigation, + useCaseViewParams, +} from '../../common/navigation'; +import { useCasesTitleBreadcrumbs } from '../use_breadcrumbs'; export interface CaseViewComponentProps { - allCasesNavigation: CasesNavigation; - caseDetailsNavigation: CasesNavigation; caseId: string; - configureCasesNavigation: CasesNavigation; - getCaseDetailHrefWithCommentId: (commentId: string) => string; + subCaseId?: string; onComponentInitialized?: () => void; actionsNavigation?: CasesNavigation; ruleDetailsNavigation?: CasesNavigation; showAlertDetails?: (alertId: string, index: string) => void; - subCaseId?: string; useFetchAlertData: (alertIds: string[]) => [boolean, Record]; - userCanCrud: boolean; /** * A React `Ref` that Exposes data refresh callbacks. * **NOTE**: Do not hold on to the `.current` object, as it could become stale @@ -63,8 +64,7 @@ export interface CaseViewComponentProps { hideSyncAlerts?: boolean; } -export interface CaseViewProps extends CaseViewComponentProps { - onCaseDataSuccess?: (data: Case) => void; +export interface CaseViewProps extends Omit { timelineIntegration?: CasesTimelineIntegration; } @@ -83,19 +83,13 @@ export interface CaseComponentProps extends CaseViewComponentProps { fetchCase: UseGetCase['fetchCase']; caseData: Case; updateCase: (newCase: Case) => void; - onCaseDataSuccess?: (newCase: Case) => void; } export const CaseComponent = React.memo( ({ - allCasesNavigation, caseData, - caseDetailsNavigation, caseId, - configureCasesNavigation, - getCaseDetailHrefWithCommentId, fetchCase, - onCaseDataSuccess, onComponentInitialized, actionsNavigation, ruleDetailsNavigation, @@ -103,10 +97,13 @@ export const CaseComponent = React.memo( subCaseId, updateCase, useFetchAlertData, - userCanCrud, refreshRef, hideSyncAlerts = false, }) => { + const { userCanCrud } = useCasesContext(); + const { getCaseViewUrl } = useCaseViewNavigation(); + useCasesTitleBreadcrumbs(caseData.title); + const [initLoadingData, setInitLoadingData] = useState(true); const init = useRef(true); const timelineUi = useTimelineContext()?.ui; @@ -321,13 +318,8 @@ export const CaseComponent = React.memo( onUpdateField({ key: 'title', value: newTitle, - onSuccess: () => { - if (onCaseDataSuccess) { - onCaseDataSuccess({ ...caseData, title: newTitle }); - } - }, }), - [caseData, onUpdateField, onCaseDataSuccess] + [onUpdateField] ); const changeStatus = useCallback( @@ -347,9 +339,9 @@ export const CaseComponent = React.memo( const emailContent = useMemo( () => ({ subject: i18n.EMAIL_SUBJECT(caseData.title), - body: i18n.EMAIL_BODY(caseDetailsNavigation.href), + body: i18n.EMAIL_BODY(getCaseViewUrl({ detailName: caseId, subCaseId })), }), - [caseDetailsNavigation.href, caseData.title] + [caseData.title, getCaseViewUrl, caseId, subCaseId] ); useEffect(() => { @@ -358,16 +350,6 @@ export const CaseComponent = React.memo( } }, [initLoadingData, isLoadingUserActions]); - const backOptions = useMemo( - () => ({ - href: allCasesNavigation.href, - text: i18n.BACK_TO_ALL, - dataTestSubj: 'backToCases', - onClick: allCasesNavigation.onClick, - }), - [allCasesNavigation] - ); - const onShowAlertDetails = useCallback( (alertId: string, index: string) => { if (showAlertDetails) { @@ -390,7 +372,7 @@ export const CaseComponent = React.memo( return ( <> ( title={caseData.title} > ( {!initLoadingData && ( <> ( ( export const CaseView = React.memo( ({ - allCasesNavigation, - caseDetailsNavigation, - caseId, - configureCasesNavigation, - getCaseDetailHrefWithCommentId, - onCaseDataSuccess, onComponentInitialized, actionsNavigation, ruleDetailsNavigation, showAlertDetails, - subCaseId, timelineIntegration, useFetchAlertData, - userCanCrud, refreshRef, hideSyncAlerts, }: CaseViewProps) => { + const { spaces: spacesApi } = useKibana().services; + const { detailName: caseId, subCaseId } = useCaseViewParams(); + const { basePath } = useCasesContext(); const { data, resolveOutcome, resolveAliasId, isLoading, isError, fetchCase, updateCase } = useGetCase(caseId, subCaseId); - const { spaces: spacesApi, http } = useKibana().services; - - useEffect(() => { - if (onCaseDataSuccess && data) { - onCaseDataSuccess(data); - } - }, [data, onCaseDataSuccess]); useEffect(() => { if (spacesApi && resolveOutcome === 'aliasMatch' && resolveAliasId != null) { - // CAUTION: the path /cases/:detailName is working in both Observability (/app/observability/cases/:detailName) and - // Security Solutions (/app/security/cases/:detailName) plugins. This will need to be changed if this component is loaded - // under any another path, passing a path builder function by props from every parent plugin. - const newPath = http.basePath.prepend( - `cases/${resolveAliasId}${window.location.search}${window.location.hash}` - ); + const newPath = `${basePath}${generateCaseViewPath({ detailName: resolveAliasId })}${ + window.location.search + }${window.location.hash}`; spacesApi.ui.redirectLegacyUrl(newPath, i18n.CASE); } - }, [resolveOutcome, resolveAliasId, spacesApi, http]); + }, [resolveOutcome, resolveAliasId, basePath, spacesApi]); const getLegacyUrlConflictCallout = useCallback(() => { // This function returns a callout component *if* we have encountered a "legacy URL conflict" scenario if (data && spacesApi && resolveOutcome === 'conflict' && resolveAliasId != null) { // We have resolved to one object, but another object has a legacy URL alias associated with this ID/page. We should display a // callout with a warning for the user, and provide a way for them to navigate to the other object. - const otherObjectId = resolveAliasId; // This is always defined if outcome === 'conflict' - // CAUTION: the path /cases/:detailName is working in both Observability (/app/observability/cases/:detailName) and - // Security Solutions (/app/security/cases/:detailName) plugins. This will need to be changed if this component is loaded - // under any another path, passing a path builder function by props from every parent plugin. - const otherObjectPath = http.basePath.prepend( - `cases/${otherObjectId}${window.location.search}${window.location.hash}` - ); + const otherObjectPath = `${basePath}${generateCaseViewPath({ + detailName: resolveAliasId, + })}${window.location.search}${window.location.hash}`; + return spacesApi.ui.components.getLegacyUrlConflict({ objectNoun: i18n.CASE, currentObjectId: data.id, - otherObjectId, + otherObjectId: resolveAliasId, otherObjectPath, }); } return null; - }, [data, resolveAliasId, resolveOutcome, spacesApi, http.basePath]); + }, [data, resolveAliasId, resolveOutcome, basePath, spacesApi]); return isError ? ( - + ) : isLoading ? ( ) : ( data && ( - - {getLegacyUrlConflictCallout()} - - + {getLegacyUrlConflictCallout()} + ) ); diff --git a/x-pack/plugins/cases/public/components/cases_context/index.tsx b/x-pack/plugins/cases/public/components/cases_context/index.tsx new file mode 100644 index 0000000000000..932ce69372110 --- /dev/null +++ b/x-pack/plugins/cases/public/components/cases_context/index.tsx @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState, useEffect } from 'react'; +import { DEFAULT_BASE_PATH } from '../../common/navigation'; +import { useApplication } from './use_application'; + +export interface CasesContextValue { + owner: string[]; + appId: string; + appTitle: string; + userCanCrud: boolean; + basePath: string; +} + +export const CasesContext = React.createContext(undefined); + +export interface CasesContextProps + extends Omit { + basePath?: string; +} + +export interface CasesContextStateValue + extends Omit { + appId?: string; + appTitle?: string; + userCanCrud?: boolean; +} + +export const CasesProvider: React.FC<{ value: CasesContextProps }> = ({ + children, + value: { owner, userCanCrud, basePath = DEFAULT_BASE_PATH }, +}) => { + const { appId, appTitle } = useApplication(); + const [value, setValue] = useState({ + owner, + userCanCrud, + basePath, + }); + + /** + * `userCanCrud` prop may change by the parent plugin. + * `appId` and `appTitle` are dynamically retrieved from kibana context. + * We need to update the state if any of these values change, the rest of props are never updated. + */ + useEffect(() => { + if (appId && appTitle) { + setValue((prev) => ({ + ...prev, + appId, + appTitle, + userCanCrud, + })); + } + }, [appTitle, appId, userCanCrud]); + + return isCasesContextValue(value) ? ( + {children} + ) : null; +}; + +function isCasesContextValue(value: CasesContextStateValue): value is CasesContextValue { + return value.appId != null && value.appTitle != null && value.userCanCrud != null; +} diff --git a/x-pack/plugins/cases/public/components/cases_context/use_application.tsx b/x-pack/plugins/cases/public/components/cases_context/use_application.tsx new file mode 100644 index 0000000000000..86cfded0bc9d0 --- /dev/null +++ b/x-pack/plugins/cases/public/components/cases_context/use_application.tsx @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import useObservable from 'react-use/lib/useObservable'; +import { useKibana } from '../../common/lib/kibana'; + +interface UseApplicationReturn { + appId: string | undefined; + appTitle: string | undefined; +} + +export const useApplication = (): UseApplicationReturn => { + const { currentAppId$, applications$ } = useKibana().services.application; + // retrieve the most recent value from the BehaviorSubject + const appId = useObservable(currentAppId$); + const applications = useObservable(applications$); + + const appTitle = appId ? applications?.get(appId)?.category?.label : undefined; + + return { appId, appTitle }; +}; diff --git a/x-pack/plugins/cases/public/components/owner_context/use_owner_context.ts b/x-pack/plugins/cases/public/components/cases_context/use_cases_context.ts similarity index 50% rename from x-pack/plugins/cases/public/components/owner_context/use_owner_context.ts rename to x-pack/plugins/cases/public/components/cases_context/use_cases_context.ts index a443df1809315..2244145f71111 100644 --- a/x-pack/plugins/cases/public/components/owner_context/use_owner_context.ts +++ b/x-pack/plugins/cases/public/components/cases_context/use_cases_context.ts @@ -6,16 +6,14 @@ */ import { useContext } from 'react'; -import { OwnerContext } from '.'; +import { CasesContext } from '.'; -export const useOwnerContext = () => { - const ownerContext = useContext(OwnerContext); +export const useCasesContext = () => { + const casesContext = useContext(CasesContext); - if (ownerContext.length === 0) { - throw new Error( - 'useOwnerContext must be used within an OwnerProvider and not be an empty array' - ); + if (!casesContext) { + throw new Error('useCasesContext must be used within a CasesProvider and have a defined value'); } - return ownerContext; + return casesContext; }; diff --git a/x-pack/plugins/cases/public/components/configure_cases/button.tsx b/x-pack/plugins/cases/public/components/configure_cases/button.tsx deleted file mode 100644 index 8b3c78ee3aede..0000000000000 --- a/x-pack/plugins/cases/public/components/configure_cases/button.tsx +++ /dev/null @@ -1,60 +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 { EuiToolTip } from '@elastic/eui'; -import React, { memo, useMemo } from 'react'; -import { CasesNavigation, LinkButton } from '../links'; - -// TODO: Potentially move into links component? -export interface ConfigureCaseButtonProps { - configureCasesNavigation: CasesNavigation; - isDisabled: boolean; - label: string; - msgTooltip: JSX.Element; - showToolTip: boolean; - titleTooltip: string; -} - -const ConfigureCaseButtonComponent: React.FC = ({ - configureCasesNavigation: { href, onClick }, - isDisabled, - label, - msgTooltip, - showToolTip, - titleTooltip, -}: ConfigureCaseButtonProps) => { - const configureCaseButton = useMemo( - () => ( - - {label} - - ), - [label, isDisabled, onClick, href] - ); - - return showToolTip ? ( - {msgTooltip}

} - data-test-subj="configure-case-tooltip" - > - {configureCaseButton} -
- ) : ( - <>{configureCaseButton} - ); -}; - -export const ConfigureCaseButton = memo(ConfigureCaseButtonComponent); diff --git a/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx b/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx index 8843bed9a2b43..55983df8f347d 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx @@ -26,7 +26,7 @@ import { useConnectorsResponse, useActionTypesResponse, } from './__mock__'; -import { ConnectorTypes, SECURITY_SOLUTION_OWNER } from '../../../common'; +import { ConnectorTypes } from '../../../common'; import { actionTypeRegistryMock } from '../../../../triggers_actions_ui/public/application/action_type_registry.mock'; jest.mock('../../common/lib/kibana'); @@ -67,7 +67,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => ({ ...useConnectorsResponse, connectors: [] })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -120,7 +120,7 @@ describe('ConfigureCases', () => { })); useConnectorsMock.mockImplementation(() => ({ ...useConnectorsResponse, connectors: [] })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -167,7 +167,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -189,12 +189,10 @@ describe('ConfigureCases', () => { }); test('it disables correctly when the user cannot crud', () => { - const newWrapper = mount( - , - { - wrappingComponent: TestProviders, - } - ); + const newWrapper = mount(, { + wrappingComponent: TestProviders, + wrappingComponentProps: { userCanCrud: false }, + }); expect(newWrapper.find('button[data-test-subj="dropdown-connectors"]').prop('disabled')).toBe( true @@ -254,7 +252,7 @@ describe('ConfigureCases', () => { })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -289,7 +287,7 @@ describe('ConfigureCases', () => { useActionTypesMock.mockImplementation(() => ({ ...useActionTypesResponse, loading: true })); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); expect(wrapper.find(Connectors).prop('isLoading')).toBe(true); @@ -313,7 +311,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -356,7 +354,7 @@ describe('ConfigureCases', () => { ...useConnectorsResponse, })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -400,7 +398,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -444,7 +442,7 @@ describe('ConfigureCases', () => { }, })); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); @@ -491,7 +489,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -540,7 +538,7 @@ describe('ConfigureCases', () => { }); test('it show the add flyout when pressing the add connector button', async () => { - const wrapper = mount(, { + const wrapper = mount(, { wrappingComponent: TestProviders, }); @@ -591,7 +589,7 @@ describe('ConfigureCases', () => { .fn() .mockReturnValue(true); - const wrapper = mount(, { + const wrapper = mount(, { wrappingComponent: TestProviders, }); wrapper diff --git a/x-pack/plugins/cases/public/components/configure_cases/index.tsx b/x-pack/plugins/cases/public/components/configure_cases/index.tsx index cf7962f08db93..8053804c2f779 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/index.tsx +++ b/x-pack/plugins/cases/public/components/configure_cases/index.tsx @@ -22,14 +22,16 @@ import { ClosureType } from '../../containers/configure/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { ActionConnectorTableItem } from '../../../../triggers_actions_ui/public/types'; -import { SectionWrapper } from '../wrappers'; +import { SectionWrapper, ContentWrapper, WhitePageWrapper } from '../wrappers'; import { Connectors } from './connectors'; import { ClosureOptions } from './closure_options'; import { getNoneConnector, normalizeActionConnector, normalizeCaseConnector } from './utils'; import * as i18n from './translations'; -import { Owner } from '../../types'; -import { OwnerProvider } from '../owner_context'; import { getConnectorById } from '../utils'; +import { HeaderPage } from '../header_page'; +import { useCasesContext } from '../cases_context/use_cases_context'; +import { useCasesBreadcrumbs } from '../use_breadcrumbs'; +import { CasesDeepLinkId } from '../../common/navigation'; const FormWrapper = styled.div` ${({ theme }) => css` @@ -49,12 +51,10 @@ const FormWrapper = styled.div` `} `; -export interface ConfigureCasesProps extends Owner { - userCanCrud: boolean; -} - -const ConfigureCasesComponent: React.FC> = ({ userCanCrud }) => { +export const ConfigureCases: React.FC = React.memo(() => { + const { userCanCrud } = useCasesContext(); const { triggersActionsUi } = useKibana().services; + useCasesBreadcrumbs(CasesDeepLinkId.casesConfigure); const [connectorIsValid, setConnectorIsValid] = useState(true); const [addFlyoutVisible, setAddFlyoutVisibility] = useState(false); @@ -185,64 +185,64 @@ const ConfigureCasesComponent: React.FC> = ({ ); return ( - - {!connectorIsValid && ( - - - - {i18n.LINK_APPROPRIATE_LICENSE} - - ), - }} - /> - - - )} - - - - - - - {ConnectorAddFlyout} - {ConnectorEditFlyout} - - ); -}; - -export const ConfigureCases: React.FC = React.memo((props) => { - return ( - - - + <> + + + + + {!connectorIsValid && ( + + + + {i18n.LINK_APPROPRIATE_LICENSE} + + ), + }} + /> + + + )} + + + + + + + {ConnectorAddFlyout} + {ConnectorEditFlyout} + + + + ); }); ConfigureCases.displayName = 'ConfigureCases'; - -// eslint-disable-next-line import/no-default-export -export default ConfigureCases; diff --git a/x-pack/plugins/cases/public/components/configure_cases/translations.ts b/x-pack/plugins/cases/public/components/configure_cases/translations.ts index 26b45a8c3a250..8b682064a0274 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/translations.ts +++ b/x-pack/plugins/cases/public/components/configure_cases/translations.ts @@ -176,3 +176,7 @@ export const DEPRECATED_TOOLTIP_CONTENT = i18n.translate( defaultMessage: 'This connector is deprecated. Update it, or create a new one.', } ); + +export const CONFIGURE_CASES_PAGE_TITLE = i18n.translate('xpack.cases.configureCases.headerTitle', { + defaultMessage: 'Configure cases', +}); diff --git a/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx b/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx index 8fb34e0cdcbf5..a330ae339b338 100644 --- a/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx +++ b/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx @@ -12,13 +12,12 @@ import styled from 'styled-components'; import { EuiCallOut, EuiSpacer } from '@elastic/eui'; import { ActionParamsProps } from '../../../../../triggers_actions_ui/public/types'; -import { CommentType, SECURITY_SOLUTION_OWNER } from '../../../../common'; +import { CommentType } from '../../../../common'; import { CaseActionParams } from './types'; import { ExistingCase } from './existing_case'; import * as i18n from './translations'; -import { OwnerProvider } from '../../owner_context'; const Container = styled.div` ${({ theme }) => ` @@ -96,9 +95,7 @@ const CaseParamsFields: React.FunctionComponent - - - +

{i18n.CASE_CONNECTOR_CALL_OUT_MSG}

diff --git a/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx b/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx index 8f2d9162a5e93..33366e11f556a 100644 --- a/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx +++ b/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx @@ -6,7 +6,6 @@ */ import React, { memo, useMemo, useCallback } from 'react'; -import { CaseType } from '../../../../common'; import { useGetCases, DEFAULT_QUERY_PARAMS, @@ -43,7 +42,6 @@ const ExistingCaseComponent: React.FC = ({ onCaseChanged, sel const { modal, openModal } = useCreateCaseModal({ onCaseCreated, - caseType: CaseType.collection, // FUTURE DEVELOPER // We are making the assumption that this component is only used in rules creation // that's why we want to hide ServiceNow SIR diff --git a/x-pack/plugins/cases/public/components/create/connector.test.tsx b/x-pack/plugins/cases/public/components/create/connector.test.tsx index ea7435c2cba45..b48e8ef82ac0e 100644 --- a/x-pack/plugins/cases/public/components/create/connector.test.tsx +++ b/x-pack/plugins/cases/public/components/create/connector.test.tsx @@ -21,22 +21,10 @@ import { schema, FormProps } from './schema'; import { TestProviders } from '../../common/mock'; import { useCaseConfigure } from '../../containers/configure/use_configure'; import { useCaseConfigureResponse } from '../configure_cases/__mock__'; -import { triggersActionsUiMock } from '../../../../triggers_actions_ui/public/mocks'; import { useKibana } from '../../common/lib/kibana'; import { registerConnectorsToMockActionRegistry } from '../../common/mock/register_connectors'; -const mockTriggersActionsUiService = triggersActionsUiMock.createStart(); - -jest.mock('../../common/lib/kibana', () => ({ - useKibana: () => ({ - services: { - notifications: {}, - http: {}, - triggersActionsUi: mockTriggersActionsUiService, - }, - }), -})); - +jest.mock('../../common/lib/kibana'); jest.mock('../connectors/resilient/use_get_incident_types'); jest.mock('../connectors/resilient/use_get_severity'); jest.mock('../connectors/servicenow/use_get_choices'); @@ -93,7 +81,7 @@ describe('Connector', () => { }); beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); useGetIncidentTypesMock.mockReturnValue(useGetIncidentTypesResponse); useGetSeverityMock.mockReturnValue(useGetSeverityResponse); useGetChoicesMock.mockReturnValue(useGetChoicesResponse); diff --git a/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx new file mode 100644 index 0000000000000..87a409fba9a0f --- /dev/null +++ b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.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 { act, render } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +import { CreateCaseFlyout } from './create_case_flyout'; +import { TestProviders } from '../../../common/mock'; + +jest.mock('../../../common/lib/kibana'); + +const onClose = jest.fn(); +const onSuccess = jest.fn(); +const defaultProps = { + onClose, + onSuccess, + owner: 'securitySolution', +}; + +describe('CreateCaseFlyout', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('renders', async () => { + const { getByTestId } = render( + + + + ); + await act(async () => { + expect(getByTestId('create-case-flyout')).toBeTruthy(); + }); + }); + + it('Closing flyout calls onCloseCaseModal', async () => { + const { getByTestId } = render( + + + + ); + await act(async () => { + userEvent.click(getByTestId('euiFlyoutCloseButton')); + }); + expect(onClose).toBeCalled(); + }); +}); diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.tsx b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.tsx similarity index 55% rename from x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.tsx rename to x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.tsx index c91c50c61fcf8..5723f78649b5c 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.tsx +++ b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.tsx @@ -5,28 +5,25 @@ * 2.0. */ -import React, { memo, useMemo } from 'react'; +import React from 'react'; import styled, { createGlobalStyle } from 'styled-components'; import { EuiFlyout, EuiFlyoutHeader, EuiTitle, EuiFlyoutBody } from '@elastic/eui'; import * as i18n from '../translations'; -import { useKibana } from '../../../../../../../../../src/plugins/kibana_react/public'; -import { Case } from '../../../../../../../cases/common'; -import type { TimelinesStartServices } from '../../../../../types'; +import { Case } from '../../../../common'; +import { CreateCaseForm } from '../form'; -export interface CreateCaseModalProps { +export interface CreateCaseFlyoutProps { afterCaseCreated?: (theCase: Case) => Promise; - onCloseFlyout: () => void; + onClose: () => void; onSuccess: (theCase: Case) => Promise; - useInsertTimeline?: Function; - owner: string; disableAlerts?: boolean; } const StyledFlyout = styled(EuiFlyout)` ${({ theme }) => ` - z-index: ${theme.eui.euiZLevel5}; - `} + z-index: ${theme.eui.euiZModal}; + `} `; const maskOverlayClassName = 'create-case-flyout-mask-overlay'; @@ -49,47 +46,31 @@ const GlobalStyle = createGlobalStyle<{ theme: { eui: { euiZLevel5: number } } } // bottom bar gonna hide the submit button. const StyledEuiFlyoutBody = styled(EuiFlyoutBody)` ${({ theme }) => ` - && .euiFlyoutBody__overflow { - overflow-y: auto; - overflow-x: hidden; - } - - && .euiFlyoutBody__overflowContent { - display: block; - padding: ${theme.eui.paddingSizes.l} ${theme.eui.paddingSizes.l} 70px; - height: auto; - } - `} + && .euiFlyoutBody__overflow { + overflow-y: auto; + overflow-x: hidden; + } + + && .euiFlyoutBody__overflowContent { + display: block; + padding: ${theme.eui.paddingSizes.l} ${theme.eui.paddingSizes.l} 70px; + height: auto; + } + `} `; const FormWrapper = styled.div` width: 100%; `; -const CreateCaseFlyoutComponent: React.FC = ({ - afterCaseCreated, - onCloseFlyout, - onSuccess, - owner, - disableAlerts, -}) => { - const { cases } = useKibana().services; - const createCaseProps = useMemo(() => { - return { - afterCaseCreated, - onCancel: onCloseFlyout, - onSuccess, - withSteps: false, - owner: [owner], - disableAlerts, - }; - }, [afterCaseCreated, onCloseFlyout, onSuccess, owner, disableAlerts]); - return ( +export const CreateCaseFlyout = React.memo( + ({ afterCaseCreated, onClose, onSuccess, disableAlerts }) => ( <> @@ -98,13 +79,19 @@ const CreateCaseFlyoutComponent: React.FC = ({ - {cases.getCreateCase(createCaseProps)} + + + - ); -}; - -export const CreateCaseFlyout = memo(CreateCaseFlyoutComponent); + ) +); CreateCaseFlyout.displayName = 'CreateCaseFlyout'; diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/types.ts b/x-pack/plugins/cases/public/components/create/flyout/index.tsx similarity index 51% rename from x-pack/plugins/observability/public/components/app/cases/callout/types.ts rename to x-pack/plugins/cases/public/components/create/flyout/index.tsx index 84d79ee391b8f..5b8aef47d1544 100644 --- a/x-pack/plugins/observability/public/components/app/cases/callout/types.ts +++ b/x-pack/plugins/cases/public/components/create/flyout/index.tsx @@ -4,10 +4,9 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { CreateCaseFlyout, CreateCaseFlyoutProps } from './create_case_flyout'; -export interface ErrorMessage { - id: string; - title: string; - description: JSX.Element; - errorType?: 'primary' | 'success' | 'warning' | 'danger'; -} +export type { CreateCaseFlyoutProps }; +export { CreateCaseFlyout }; +// eslint-disable-next-line import/no-default-export +export { CreateCaseFlyout as default }; diff --git a/x-pack/plugins/cases/public/components/create/form.test.tsx b/x-pack/plugins/cases/public/components/create/form.test.tsx index c9d087a08ba2c..06b07ebd396a8 100644 --- a/x-pack/plugins/cases/public/components/create/form.test.tsx +++ b/x-pack/plugins/cases/public/components/create/form.test.tsx @@ -14,11 +14,10 @@ import { useGetTags } from '../../containers/use_get_tags'; import { useConnectors } from '../../containers/configure/use_connectors'; import { connectorsMock } from '../../containers/mock'; import { schema, FormProps } from './schema'; -import { CreateCaseForm } from './form'; -import { OwnerProvider } from '../owner_context'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; +import { CreateCaseForm, CreateCaseFormFields, CreateCaseFormProps } from './form'; import { useCaseConfigure } from '../../containers/configure/use_configure'; import { useCaseConfigureResponse } from '../configure_cases/__mock__'; +import { TestProviders } from '../../common/mock'; jest.mock('../../containers/use_get_tags'); jest.mock('../../containers/configure/use_connectors'); @@ -38,6 +37,11 @@ const initialCaseValue: FormProps = { syncAlerts: true, }; +const casesFormProps: CreateCaseFormProps = { + onCancel: jest.fn(), + onSuccess: jest.fn(), +}; + describe('CreateCaseForm', () => { let globalForm: FormHook; const MockHookWrapperComponent: React.FC = ({ children }) => { @@ -50,9 +54,9 @@ describe('CreateCaseForm', () => { globalForm = form; return ( - +
{children}
-
+ ); }; @@ -66,7 +70,7 @@ describe('CreateCaseForm', () => { it('it renders with steps', async () => { const wrapper = mount( - + ); @@ -76,7 +80,7 @@ describe('CreateCaseForm', () => { it('it renders without steps', async () => { const wrapper = mount( - + ); @@ -86,7 +90,7 @@ describe('CreateCaseForm', () => { it('it renders all form fields', async () => { const wrapper = mount( - + ); @@ -97,21 +101,40 @@ describe('CreateCaseForm', () => { expect(wrapper.find(`[data-test-subj="caseConnectors"]`).exists()).toBeTruthy(); }); - it('should render spinner when loading', async () => { - const wrapper = mount( + it('hides the sync alerts toggle', () => { + const { queryByText } = render( - + ); - await act(async () => { - globalForm.setFieldValue('title', 'title'); - globalForm.setFieldValue('description', 'description'); - globalForm.submit(); - // For some weird reason this is needed to pass the test. - // It does not do anything useful - await wrapper.find(`[data-test-subj="caseTitle"]`); - await wrapper.update(); + expect(queryByText('Sync alert')).not.toBeInTheDocument(); + }); + + describe('CreateCaseFormFields', () => { + it('should render spinner when loading', async () => { + const wrapper = mount( + + + + ); + + await act(async () => { + globalForm.setFieldValue('title', 'title'); + globalForm.setFieldValue('description', 'description'); + globalForm.submit(); + // For some weird reason this is needed to pass the test. + // It does not do anything useful + await wrapper.find(`[data-test-subj="caseTitle"]`); + await wrapper.update(); + }); + await waitFor(() => { expect( wrapper.find(`[data-test-subj="create-case-loading-spinner"]`).exists() @@ -119,14 +142,4 @@ describe('CreateCaseForm', () => { }); }); }); - - it('hides the sync alerts toggle', () => { - const { queryByText } = render( - - - - ); - - expect(queryByText('Sync alert')).not.toBeInTheDocument(); - }); }); diff --git a/x-pack/plugins/cases/public/components/create/form.tsx b/x-pack/plugins/cases/public/components/create/form.tsx index d9b9287534601..6105fdbb2aef3 100644 --- a/x-pack/plugins/cases/public/components/create/form.tsx +++ b/x-pack/plugins/cases/public/components/create/form.tsx @@ -6,18 +6,30 @@ */ import React, { useMemo } from 'react'; -import { EuiLoadingSpinner, EuiSteps } from '@elastic/eui'; +import { + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiLoadingSpinner, + EuiSteps, +} from '@elastic/eui'; import styled, { css } from 'styled-components'; import { useFormContext } from '../../common/shared_imports'; import { Title } from './title'; -import { Description } from './description'; +import { Description, fieldName as descriptionFieldName } from './description'; import { Tags } from './tags'; import { Connector } from './connector'; import * as i18n from './translations'; import { SyncAlertsToggle } from './sync_alerts_toggle'; -import { ActionConnector } from '../../../common'; +import { ActionConnector, CaseType } from '../../../common'; +import { Case } from '../../containers/types'; +import { CasesTimelineIntegration, CasesTimelineIntegrationProvider } from '../timeline_context'; +import { InsertTimeline } from '../insert_timeline'; +import { UsePostComment } from '../../containers/use_post_comment'; +import { SubmitCaseButton } from './submit_button'; +import { FormContext } from './form_context'; interface ContainerProps { big?: boolean; @@ -36,22 +48,28 @@ const MySpinner = styled(EuiLoadingSpinner)` z-index: 99; `; -interface Props { - connectors?: ActionConnector[]; - disableAlerts?: boolean; - hideConnectorServiceNowSir?: boolean; - isLoadingConnectors?: boolean; - withSteps?: boolean; +export interface CreateCaseFormFieldsProps { + connectors: ActionConnector[]; + isLoadingConnectors: boolean; + disableAlerts: boolean; + hideConnectorServiceNowSir: boolean; + withSteps: boolean; } +export interface CreateCaseFormProps + extends Pick< + Partial, + 'disableAlerts' | 'hideConnectorServiceNowSir' | 'withSteps' + > { + onCancel: () => void; + onSuccess: (theCase: Case) => Promise; + afterCaseCreated?: (theCase: Case, postComment: UsePostComment['postComment']) => Promise; + caseType?: CaseType; + timelineIntegration?: CasesTimelineIntegration; +} + const empty: ActionConnector[] = []; -export const CreateCaseForm: React.FC = React.memo( - ({ - connectors = empty, - disableAlerts = false, - isLoadingConnectors = false, - hideConnectorServiceNowSir = false, - withSteps = true, - }) => { +export const CreateCaseFormFields: React.FC = React.memo( + ({ connectors, disableAlerts, isLoadingConnectors, hideConnectorServiceNowSir, withSteps }) => { const { isSubmitting } = useFormContext(); const firstStep = useMemo( () => ({ @@ -126,4 +144,61 @@ export const CreateCaseForm: React.FC = React.memo( } ); +CreateCaseFormFields.displayName = 'CreateCaseFormFields'; + +export const CreateCaseForm: React.FC = React.memo( + ({ + disableAlerts = false, + hideConnectorServiceNowSir = false, + withSteps = true, + afterCaseCreated, + caseType, + onCancel, + onSuccess, + timelineIntegration, + }) => ( + + + + + + + + {i18n.CANCEL} + + + + + + + + + + + ) +); + CreateCaseForm.displayName = 'CreateCaseForm'; diff --git a/x-pack/plugins/cases/public/components/create/form_context.test.tsx b/x-pack/plugins/cases/public/components/create/form_context.test.tsx index b55542499fbe4..863ecd92ac4ba 100644 --- a/x-pack/plugins/cases/public/components/create/form_context.test.tsx +++ b/x-pack/plugins/cases/public/components/create/form_context.test.tsx @@ -10,7 +10,7 @@ import { mount, ReactWrapper } from 'enzyme'; import { act, waitFor } from '@testing-library/react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { ConnectorTypes, SECURITY_SOLUTION_OWNER } from '../../../common'; +import { ConnectorTypes } from '../../../common'; import { useKibana } from '../../common/lib/kibana'; import { TestProviders } from '../../common/mock'; import { usePostCase } from '../../containers/use_post_case'; @@ -36,7 +36,7 @@ import { useGetChoicesResponse, } from './mock'; import { FormContext } from './form_context'; -import { CreateCaseForm } from './form'; +import { CreateCaseFormFields, CreateCaseFormFieldsProps } from './form'; import { SubmitCaseButton } from './submit_button'; import { usePostPushToService } from '../../containers/use_post_push_to_service'; @@ -77,10 +77,12 @@ const defaultPostCase = { postCase, }; -const defaultCreateCaseForm = { +const defaultCreateCaseForm: CreateCaseFormFieldsProps = { isLoadingConnectors: false, connectors: [], - owner: SECURITY_SOLUTION_OWNER, + disableAlerts: false, + withSteps: true, + hideConnectorServiceNowSir: false, }; const defaultPostPushToService = { @@ -150,12 +152,14 @@ describe('Create case', () => { const wrapper = mount( - + ); - + await act(async () => { + wrapper.update(); + }); expect(wrapper.find(`[data-test-subj="caseTitle"]`).first().exists()).toBeTruthy(); expect(wrapper.find(`[data-test-subj="caseDescription"]`).first().exists()).toBeTruthy(); expect(wrapper.find(`[data-test-subj="caseTags"]`).first().exists()).toBeTruthy(); @@ -174,7 +178,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -192,7 +196,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -224,7 +228,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -248,7 +252,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -282,7 +286,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -332,7 +336,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -357,7 +361,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -424,7 +428,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -494,7 +498,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -584,7 +588,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -682,7 +686,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -719,7 +723,7 @@ describe('Create case', () => { const wrapper = mount( - + diff --git a/x-pack/plugins/cases/public/components/create/form_context.tsx b/x-pack/plugins/cases/public/components/create/form_context.tsx index 03d8ec56fb0ae..10bfa2e78acc4 100644 --- a/x-pack/plugins/cases/public/components/create/form_context.tsx +++ b/x-pack/plugins/cases/public/components/create/form_context.tsx @@ -16,7 +16,7 @@ import { useConnectors } from '../../containers/configure/use_connectors'; import { Case } from '../../containers/types'; import { CaseType } from '../../../common'; import { UsePostComment, usePostComment } from '../../containers/use_post_comment'; -import { useOwnerContext } from '../owner_context/use_owner_context'; +import { useCasesContext } from '../cases_context/use_cases_context'; import { getConnectorById } from '../utils'; const initialCaseValue: FormProps = { @@ -46,7 +46,7 @@ export const FormContext: React.FC = ({ syncAlertsDefaultValue = true, }) => { const { connectors, loading: isLoadingConnectors } = useConnectors(); - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const { postCase } = usePostCase(); const { postComment } = usePostComment(); const { pushCaseToExternalService } = usePostPushToService(); diff --git a/x-pack/plugins/cases/public/components/create/index.test.tsx b/x-pack/plugins/cases/public/components/create/index.test.tsx index ac405673fb9c9..64935321eabac 100644 --- a/x-pack/plugins/cases/public/components/create/index.test.tsx +++ b/x-pack/plugins/cases/public/components/create/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; -import { act, waitFor } from '@testing-library/react'; +import { act } from '@testing-library/react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; import { TestProviders } from '../../common/mock'; @@ -29,7 +29,6 @@ import { useGetFieldsByIssueTypeResponse, } from './mock'; import { CreateCase } from '.'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; jest.mock('../../containers/api'); jest.mock('../../containers/use_get_tags'); @@ -78,7 +77,7 @@ const defaultProps = { describe('CreateCase case', () => { beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); useConnectorsMock.mockReturnValue(sampleConnectorData); useCaseConfigureMock.mockImplementation(() => useCaseConfigureResponse); useGetIncidentTypesMock.mockReturnValue(useGetIncidentTypesResponse); @@ -94,36 +93,38 @@ describe('CreateCase case', () => { it('it renders', async () => { const wrapper = mount( - + ); - - expect(wrapper.find(`[data-test-subj="create-case-submit"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="create-case-cancel"]`).exists()).toBeTruthy(); + await act(async () => { + expect(wrapper.find(`[data-test-subj="create-case-submit"]`).exists()).toBeTruthy(); + expect(wrapper.find(`[data-test-subj="create-case-cancel"]`).exists()).toBeTruthy(); + }); }); it('should call cancel on cancel click', async () => { const wrapper = mount( - + ); - - wrapper.find(`[data-test-subj="create-case-cancel"]`).first().simulate('click'); + await act(async () => { + wrapper.find(`[data-test-subj="create-case-cancel"]`).first().simulate('click'); + }); expect(defaultProps.onCancel).toHaveBeenCalled(); }); it('should redirect to new case when posting the case', async () => { const wrapper = mount( - + ); - fillForm(wrapper); - wrapper.find(`[data-test-subj="create-case-submit"]`).first().simulate('click'); - await waitFor(() => { - expect(defaultProps.onSuccess).toHaveBeenCalled(); + await act(async () => { + fillForm(wrapper); + wrapper.find(`[data-test-subj="create-case-submit"]`).first().simulate('click'); }); + expect(defaultProps.onSuccess).toHaveBeenCalled(); }); }); diff --git a/x-pack/plugins/cases/public/components/create/index.tsx b/x-pack/plugins/cases/public/components/create/index.tsx index 39f10a89290d8..97a1c1d2e8ff3 100644 --- a/x-pack/plugins/cases/public/components/create/index.tsx +++ b/x-pack/plugins/cases/public/components/create/index.tsx @@ -6,100 +6,49 @@ */ import React from 'react'; -import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; -import styled from 'styled-components'; import { Field, getUseField } from '../../common/shared_imports'; import * as i18n from './translations'; -import { CreateCaseForm } from './form'; -import { FormContext } from './form_context'; -import { SubmitCaseButton } from './submit_button'; -import { Case } from '../../containers/types'; -import { CaseType } from '../../../common'; -import { CasesTimelineIntegration, CasesTimelineIntegrationProvider } from '../timeline_context'; -import { fieldName as descriptionFieldName } from './description'; -import { InsertTimeline } from '../insert_timeline'; -import { UsePostComment } from '../../containers/use_post_comment'; -import { Owner } from '../../types'; -import { OwnerProvider } from '../owner_context'; +import { CreateCaseForm, CreateCaseFormProps } from './form'; +import { HeaderPage } from '../header_page'; +import { useCasesBreadcrumbs } from '../use_breadcrumbs'; +import { CasesDeepLinkId } from '../../common/navigation'; export const CommonUseField = getUseField({ component: Field }); -const Container = styled.div` - ${({ theme }) => ` - margin-top: ${theme.eui.euiSize}; - `} -`; - -export interface CreateCaseProps extends Owner { - afterCaseCreated?: (theCase: Case, postComment: UsePostComment['postComment']) => Promise; - caseType?: CaseType; - disableAlerts?: boolean; - hideConnectorServiceNowSir?: boolean; - onCancel: () => void; - onSuccess: (theCase: Case) => Promise; - timelineIntegration?: CasesTimelineIntegration; - withSteps?: boolean; -} - -const CreateCaseComponent = ({ - afterCaseCreated, - caseType, - hideConnectorServiceNowSir, - disableAlerts, - onCancel, - onSuccess, - timelineIntegration, - withSteps, -}: Omit) => ( - - - - - - - - {i18n.CANCEL} - - - - - - - - - - +export const CreateCase = React.memo( + ({ + afterCaseCreated, + caseType, + hideConnectorServiceNowSir, + disableAlerts, + onCancel, + onSuccess, + timelineIntegration, + withSteps, + }) => { + useCasesBreadcrumbs(CasesDeepLinkId.casesCreate); + + return ( + <> + + + + ); + } ); -export const CreateCase: React.FC = React.memo((props) => ( - - - -)); - CreateCase.displayName = 'CreateCase'; - -// eslint-disable-next-line import/no-default-export -export { CreateCase as default }; diff --git a/x-pack/plugins/cases/public/components/create/tags.test.tsx b/x-pack/plugins/cases/public/components/create/tags.test.tsx index b138a5e651f1a..fbb261b3d0682 100644 --- a/x-pack/plugins/cases/public/components/create/tags.test.tsx +++ b/x-pack/plugins/cases/public/components/create/tags.test.tsx @@ -14,10 +14,11 @@ import { useForm, Form, FormHook } from '../../common/shared_imports'; import { useGetTags } from '../../containers/use_get_tags'; import { Tags } from './tags'; import { schema, FormProps } from './schema'; -import { OwnerProvider } from '../owner_context'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; +import { TestProviders } from '../../common/mock'; +jest.mock('../../common/lib/kibana'); jest.mock('../../containers/use_get_tags'); + const useGetTagsMock = useGetTags as jest.Mock; describe('Tags', () => { @@ -34,14 +35,14 @@ describe('Tags', () => { globalForm = form; return ( - +
{children}
-
+ ); }; beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); useGetTagsMock.mockReturnValue({ tags: ['test'] }); }); diff --git a/x-pack/plugins/cases/public/components/create/translations.ts b/x-pack/plugins/cases/public/components/create/translations.ts index 7e0f7e5a6b9d5..06a4ad02d1fbd 100644 --- a/x-pack/plugins/cases/public/components/create/translations.ts +++ b/x-pack/plugins/cases/public/components/create/translations.ts @@ -9,6 +9,10 @@ import { i18n } from '@kbn/i18n'; export * from '../../common/translations'; +export const CREATE_PAGE_TITLE = i18n.translate('xpack.cases.create.title', { + defaultMessage: 'Create new case', +}); + export const STEP_ONE_TITLE = i18n.translate('xpack.cases.create.stepOneTitle', { defaultMessage: 'Case fields', }); diff --git a/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx b/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx index eec84cdd8d90f..bcc700c543f7e 100644 --- a/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx +++ b/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx @@ -32,10 +32,6 @@ const caseServices = { const defaultProps: EditConnectorProps = { caseData: basicCase, caseServices, - configureCasesNavigation: { - href: 'blah', - onClick: jest.fn(), - }, connectorName: connectorsMock[0].name, connectors: connectorsMock, hasDataToPush: true, diff --git a/x-pack/plugins/cases/public/components/edit_connector/index.tsx b/x-pack/plugins/cases/public/components/edit_connector/index.tsx index 50b2e2f93498a..25cb17cdd8c98 100644 --- a/x-pack/plugins/cases/public/components/edit_connector/index.tsx +++ b/x-pack/plugins/cases/public/components/edit_connector/index.tsx @@ -30,13 +30,11 @@ import { getConnectorFieldsFromUserActions } from './helpers'; import * as i18n from './translations'; import { getConnectorById, getConnectorsFormValidators } from '../utils'; import { usePushToService } from '../use_push_to_service'; -import { CasesNavigation } from '../links'; import { CaseServices } from '../../containers/use_get_case_user_actions'; export interface EditConnectorProps { caseData: Case; caseServices: CaseServices; - configureCasesNavigation: CasesNavigation; connectorName: string; connectors: ActionConnector[]; hasDataToPush: boolean; @@ -116,7 +114,6 @@ export const EditConnector = React.memo( ({ caseData, caseServices, - configureCasesNavigation, connectorName, connectors, hasDataToPush, @@ -250,7 +247,6 @@ export const EditConnector = React.memo( }); const { pushButton, pushCallouts } = usePushToService({ - configureCasesNavigation, connector: { ...caseData.connector, name: isEmpty(connectorName) ? caseData.connector.name : connectorName, diff --git a/x-pack/plugins/cases/public/components/header_page/index.test.tsx b/x-pack/plugins/cases/public/components/header_page/index.test.tsx index 55e5d0907c869..0c0ff060fb2bc 100644 --- a/x-pack/plugins/cases/public/components/header_page/index.test.tsx +++ b/x-pack/plugins/cases/public/components/header_page/index.test.tsx @@ -14,16 +14,7 @@ import { TestProviders } from '../../common/mock'; import { HeaderPage } from './index'; import { useMountAppended } from '../../utils/use_mount_appended'; -jest.mock('react-router-dom', () => { - const original = jest.requireActual('react-router-dom'); - - return { - ...original, - useHistory: () => ({ - useHistory: jest.fn(), - }), - }; -}); +jest.mock('../../common/navigation/hooks'); describe('HeaderPage', () => { const mount = useMountAppended(); @@ -47,10 +38,7 @@ describe('HeaderPage', () => { test('it renders the back link when provided', () => { const wrapper = mount( - + ); diff --git a/x-pack/plugins/cases/public/components/header_page/index.tsx b/x-pack/plugins/cases/public/components/header_page/index.tsx index c1c463321d86d..073e18cd7d728 100644 --- a/x-pack/plugins/cases/public/components/header_page/index.tsx +++ b/x-pack/plugins/cases/public/components/header_page/index.tsx @@ -5,14 +5,17 @@ * 2.0. */ +import React, { useCallback } from 'react'; import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiProgress } from '@elastic/eui'; -import React from 'react'; import styled, { css } from 'styled-components'; +import { useAllCasesNavigation } from '../../common/navigation'; -import { LinkIcon, LinkIconProps } from '../link_icon'; +import { LinkIcon } from '../link_icon'; import { Subtitle, SubtitleProps } from '../subtitle'; import { Title } from './title'; import { BadgeOptions, TitleProp } from './types'; +import * as i18n from './translations'; + interface HeaderProps { border?: boolean; isLoading?: boolean; @@ -57,17 +60,8 @@ const Badge = styled(EuiBadge)` ` as unknown as typeof EuiBadge; Badge.displayName = 'Badge'; -interface BackOptions { - href: LinkIconProps['href']; - onClick?: (ev: MouseEvent) => void; - text: LinkIconProps['children']; - dataTestSubj?: string; -} - export interface HeaderPageProps extends HeaderProps { - backOptions?: BackOptions; - /** A component to be displayed as the back button. Used only if `backOption` is not defined */ - backComponent?: React.ReactNode; + showBackButton?: boolean; badgeOptions?: BadgeOptions; children?: React.ReactNode; subtitle?: SubtitleProps['items']; @@ -77,8 +71,7 @@ export interface HeaderPageProps extends HeaderProps { } const HeaderPageComponent: React.FC = ({ - backOptions, - backComponent, + showBackButton = false, badgeOptions, border, children, @@ -88,39 +81,51 @@ const HeaderPageComponent: React.FC = ({ title, titleNode, ...rest -}) => ( -
- - - {backOptions && ( - - - {backOptions.text} - - - )} +}) => { + const { getAllCasesUrl, navigateToAllCases } = useAllCasesNavigation(); - {!backOptions && backComponent && <>{backComponent}} + const navigateToAllCasesClick = useCallback( + (e) => { + if (e) { + e.preventDefault(); + } + navigateToAllCases(); + }, + [navigateToAllCases] + ); - {titleNode || } + return ( + <Header border={border} {...rest}> + <EuiFlexGroup alignItems="center"> + <FlexItem> + {showBackButton && ( + <LinkBack> + <LinkIcon + dataTestSubj="backToCases" + onClick={navigateToAllCasesClick} + href={getAllCasesUrl()} + iconType="arrowLeft" + > + {i18n.BACK_TO_ALL} + </LinkIcon> + </LinkBack> + )} - {subtitle && <Subtitle data-test-subj="header-page-subtitle" items={subtitle} />} - {subtitle2 && <Subtitle data-test-subj="header-page-subtitle-2" items={subtitle2} />} - {border && isLoading && <EuiProgress size="xs" color="accent" />} - </FlexItem> + {titleNode || <Title title={title} badgeOptions={badgeOptions} />} - {children && ( - <FlexItem data-test-subj="header-page-supplements" grow={false}> - {children} + {subtitle && <Subtitle data-test-subj="header-page-subtitle" items={subtitle} />} + {subtitle2 && <Subtitle data-test-subj="header-page-subtitle-2" items={subtitle2} />} + {border && isLoading && <EuiProgress size="xs" color="accent" />} </FlexItem> - )} - </EuiFlexGroup> - </Header> -); + + {children && ( + <FlexItem data-test-subj="header-page-supplements" grow={false}> + {children} + </FlexItem> + )} + </EuiFlexGroup> + </Header> + ); +}; export const HeaderPage = React.memo(HeaderPageComponent); diff --git a/x-pack/plugins/cases/public/components/configure_cases/button.test.tsx b/x-pack/plugins/cases/public/components/links/index.test.tsx similarity index 53% rename from x-pack/plugins/cases/public/components/configure_cases/button.test.tsx rename to x-pack/plugins/cases/public/components/links/index.test.tsx index a3f95e60dc2ae..1ca81c1d6b9f6 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/button.test.tsx +++ b/x-pack/plugins/cases/public/components/links/index.test.tsx @@ -7,30 +7,25 @@ import React from 'react'; import { ReactWrapper, mount } from 'enzyme'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { EuiText } from '@elastic/eui'; import '../../common/mock/match_media'; -import { ConfigureCaseButton, ConfigureCaseButtonProps } from './button'; +import { + ConfigureCaseButton, + ConfigureCaseButtonProps, + CaseDetailsLink, + CaseDetailsLinkProps, +} from '.'; import { TestProviders } from '../../common/mock'; +import { useCaseViewNavigation } from '../../common/navigation/hooks'; -jest.mock('react-router-dom', () => { - const original = jest.requireActual('react-router-dom'); - - return { - ...original, - useHistory: () => ({ - useHistory: jest.fn(), - }), - }; -}); +jest.mock('../../common/navigation/hooks'); describe('Configuration button', () => { let wrapper: ReactWrapper; const props: ConfigureCaseButtonProps = { - configureCasesNavigation: { - href: 'testHref', - onClick: jest.fn(), - }, isDisabled: false, label: 'My label', msgTooltip: <></>, @@ -50,7 +45,7 @@ describe('Configuration button', () => { test('it pass the correct props to the button', () => { expect(wrapper.find('[data-test-subj="configure-case-button"]').first().props()).toMatchObject({ - href: `testHref`, + href: `/app/security/cases/configure`, iconType: 'controlsHorizontal', isDisabled: false, 'aria-label': 'My label', @@ -111,3 +106,60 @@ describe('Configuration button', () => { jest.clearAllMocks(); }); }); + +describe('CaseDetailsLink', () => { + const useCaseViewNavigationMock = useCaseViewNavigation as jest.Mock; + const getCaseViewUrl = jest.fn().mockReturnValue('/cases/test'); + const navigateToCaseView = jest.fn(); + + const props: CaseDetailsLinkProps = { + detailName: 'test detail name', + }; + + beforeEach(() => { + jest.clearAllMocks(); + useCaseViewNavigationMock.mockReturnValue({ getCaseViewUrl, navigateToCaseView }); + }); + + test('it renders', () => { + render(<CaseDetailsLink {...props} />); + expect(screen.getByText('test detail name')).toBeInTheDocument(); + }); + + test('it renders the children instead of the detail name if provided', () => { + render(<CaseDetailsLink {...props}>{'children'}</CaseDetailsLink>); + expect(screen.queryByText('test detail name')).toBeFalsy(); + expect(screen.getByText('children')).toBeInTheDocument(); + }); + + test('it uses the detailName in the aria-label if the title is not provided', () => { + render(<CaseDetailsLink {...props} />); + expect( + screen.getByLabelText(`click to visit case with title ${props.detailName}`) + ).toBeInTheDocument(); + }); + + test('it uses the title in the aria-label if provided', () => { + render(<CaseDetailsLink {...props} title={'my title'} />); + expect(screen.getByText('test detail name')).toBeInTheDocument(); + expect(screen.getByLabelText(`click to visit case with title my title`)).toBeInTheDocument(); + }); + + test('it calls navigateToCaseViewClick on click', () => { + render(<CaseDetailsLink {...props} subCaseId="sub-case-id" />); + userEvent.click(screen.getByText('test detail name')); + expect(navigateToCaseView).toHaveBeenCalledWith({ + detailName: props.detailName, + subCaseId: 'sub-case-id', + }); + }); + + test('it set the href correctly', () => { + render(<CaseDetailsLink {...props} subCaseId="sub-case-id" />); + expect(getCaseViewUrl).toHaveBeenCalledWith({ + detailName: props.detailName, + subCaseId: 'sub-case-id', + }); + expect(screen.getByRole('link')).toHaveAttribute('href', '/cases/test'); + }); +}); diff --git a/x-pack/plugins/cases/public/components/links/index.tsx b/x-pack/plugins/cases/public/components/links/index.tsx index 63032c6d76a29..45c7db3e896f9 100644 --- a/x-pack/plugins/cases/public/components/links/index.tsx +++ b/x-pack/plugins/cases/public/components/links/index.tsx @@ -10,10 +10,12 @@ import { EuiButtonProps, EuiLink, EuiLinkProps, + EuiToolTip, PropsForAnchor, PropsForButton, } from '@elastic/eui'; -import React, { useCallback } from 'react'; +import React, { useCallback, useMemo } from 'react'; +import { useCaseViewNavigation, useConfigureCasesNavigation } from '../../common/navigation'; import * as i18n from './translations'; export interface CasesNavigation<T = React.MouseEvent | MouseEvent | null, K = null> { @@ -30,36 +32,32 @@ export const LinkAnchor: React.FC<EuiLinkProps> = ({ children, ...props }) => ( <EuiLink {...props}>{children}</EuiLink> ); -export interface CaseDetailsHrefSchema { - detailName: string; - search?: string; - subCaseId?: string; -} - -const CaseDetailsLinkComponent: React.FC<{ +export interface CaseDetailsLinkProps { children?: React.ReactNode; detailName: string; - caseDetailsNavigation: CasesNavigation<CaseDetailsHrefSchema, 'configurable'>; subCaseId?: string; title?: string; -}> = ({ caseDetailsNavigation, children, detailName, subCaseId, title }) => { - const { href: getHref, onClick } = caseDetailsNavigation; - const goToCaseDetails = useCallback( +} + +const CaseDetailsLinkComponent: React.FC<CaseDetailsLinkProps> = ({ + children, + detailName, + subCaseId, + title, +}) => { + const { getCaseViewUrl, navigateToCaseView } = useCaseViewNavigation(); + const navigateToCaseViewClick = useCallback( (ev) => { - if (onClick) { - ev.preventDefault(); - onClick({ detailName, subCaseId }, ev); - } + ev.preventDefault(); + navigateToCaseView({ detailName, subCaseId }); }, - [detailName, onClick, subCaseId] + [navigateToCaseView, detailName, subCaseId] ); - const href = getHref({ detailName, subCaseId }); - return ( <LinkAnchor - onClick={goToCaseDetails} - href={href} + onClick={navigateToCaseViewClick} + href={getCaseViewUrl({ detailName, subCaseId })} data-test-subj="case-details-link" aria-label={i18n.CASE_DETAILS_LINK_ARIA(title ?? detailName)} > @@ -69,3 +67,61 @@ const CaseDetailsLinkComponent: React.FC<{ }; export const CaseDetailsLink = React.memo(CaseDetailsLinkComponent); CaseDetailsLink.displayName = 'CaseDetailsLink'; + +export interface ConfigureCaseButtonProps { + isDisabled: boolean; + label: string; + msgTooltip: JSX.Element; + showToolTip: boolean; + titleTooltip: string; +} + +const ConfigureCaseButtonComponent: React.FC<ConfigureCaseButtonProps> = ({ + isDisabled, + label, + msgTooltip, + showToolTip, + titleTooltip, +}: ConfigureCaseButtonProps) => { + const { getConfigureCasesUrl, navigateToConfigureCases } = useConfigureCasesNavigation(); + + const navigateToConfigureCasesClick = useCallback( + (e) => { + e.preventDefault(); + navigateToConfigureCases(); + }, + [navigateToConfigureCases] + ); + + const configureCaseButton = useMemo( + () => ( + <LinkButton + onClick={navigateToConfigureCasesClick} + href={getConfigureCasesUrl()} + iconType="controlsHorizontal" + isDisabled={isDisabled} + aria-label={label} + data-test-subj="configure-case-button" + > + {label} + </LinkButton> + ), + [label, isDisabled, navigateToConfigureCasesClick, getConfigureCasesUrl] + ); + + return showToolTip ? ( + <EuiToolTip + position="top" + title={titleTooltip} + content={<p>{msgTooltip}</p>} + data-test-subj="configure-case-tooltip" + > + {configureCaseButton} + </EuiToolTip> + ) : ( + <>{configureCaseButton}</> + ); +}; + +export const ConfigureCaseButton = React.memo(ConfigureCaseButtonComponent); +ConfigureCaseButton.displayName = 'ConfigureCaseButton'; diff --git a/x-pack/plugins/cases/public/components/no_privileges/index.tsx b/x-pack/plugins/cases/public/components/no_privileges/index.tsx new file mode 100644 index 0000000000000..58d2aa36df583 --- /dev/null +++ b/x-pack/plugins/cases/public/components/no_privileges/index.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 React from 'react'; + +import { EuiEmptyPrompt, EuiButton } from '@elastic/eui'; +import * as i18n from './translations'; +import { useAllCasesNavigation } from '../../common/navigation'; + +interface NoPrivilegesPageProps { + pageName: string; +} + +export const NoPrivilegesPage = React.memo(({ pageName }: NoPrivilegesPageProps) => { + const { navigateToAllCases } = useAllCasesNavigation(); + + return ( + <EuiEmptyPrompt + iconColor="default" + iconType="addDataApp" + title={<h2>{i18n.NO_PRIVILEGES_TITLE}</h2>} + titleSize="xs" + body={<p>{i18n.NO_PRIVILEGES_MSG(pageName)}</p>} + actions={ + <EuiButton onClick={navigateToAllCases} size="s" color="primary" fill> + {i18n.NO_PRIVILEGES_BUTTON} + </EuiButton> + } + /> + ); +}); + +NoPrivilegesPage.displayName = 'NoPrivilegesPage'; diff --git a/x-pack/plugins/cases/public/components/no_privileges/translations.ts b/x-pack/plugins/cases/public/components/no_privileges/translations.ts new file mode 100644 index 0000000000000..b10b9eb4b6a7c --- /dev/null +++ b/x-pack/plugins/cases/public/components/no_privileges/translations.ts @@ -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 { i18n } from '@kbn/i18n'; + +export const NO_PRIVILEGES_MSG = (pageName: string) => + i18n.translate('xpack.cases.noPrivileges.message', { + values: { pageName }, + defaultMessage: + 'To view {pageName} page, you must update privileges. For more information, contact your Kibana administrator.', + }); + +export const NO_PRIVILEGES_TITLE = i18n.translate('xpack.cases.noPrivileges.title', { + defaultMessage: 'Privileges required', +}); + +export const NO_PRIVILEGES_BUTTON = i18n.translate('xpack.cases.noPrivileges.button', { + defaultMessage: 'Back to Cases', +}); diff --git a/x-pack/plugins/cases/public/components/owner_context/index.tsx b/x-pack/plugins/cases/public/components/owner_context/index.tsx deleted file mode 100644 index 5df7eeadd70d5..0000000000000 --- a/x-pack/plugins/cases/public/components/owner_context/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useState } from 'react'; - -export const OwnerContext = React.createContext<string[]>([]); - -export const OwnerProvider: React.FC<{ - owner: string[]; -}> = ({ children, owner }) => { - const [currentOwner] = useState(owner); - - return <OwnerContext.Provider value={currentOwner}>{children}</OwnerContext.Provider>; -}; diff --git a/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx b/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx index f3094a8b80307..0a1e0447511db 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx @@ -8,33 +8,19 @@ import React from 'react'; import { configure, render } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import RecentCases from '.'; +import RecentCases, { RecentCasesProps } from '.'; import { TestProviders } from '../../common/mock'; import { useGetCases } from '../../containers/use_get_cases'; import { useGetCasesMockState } from '../../containers/mock'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; import { useCurrentUser } from '../../common/lib/kibana/hooks'; jest.mock('../../containers/use_get_cases'); jest.mock('../../common/lib/kibana/hooks'); +jest.mock('../../common/navigation/hooks'); configure({ testIdAttribute: 'data-test-subj' }); -const defaultProps = { - allCasesNavigation: { - href: 'all-cases-href', - onClick: jest.fn(), - }, - caseDetailsNavigation: { - href: () => 'case-details-href', - onClick: jest.fn(), - }, - createCaseNavigation: { - href: 'create-details-href', - onClick: jest.fn(), - }, - hasWritePermissions: true, +const defaultProps: RecentCasesProps = { maxCasesToShow: 10, - owner: [SECURITY_SOLUTION_OWNER], }; const setFilters = jest.fn(); diff --git a/x-pack/plugins/cases/public/components/recent_cases/index.tsx b/x-pack/plugins/cases/public/components/recent_cases/index.tsx index 5c3b49b9a5dbb..0b4e65cf68709 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/index.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/index.tsx @@ -6,36 +6,35 @@ */ import { EuiFlexGroup, EuiFlexItem, EuiHorizontalRule, EuiText, EuiTitle } from '@elastic/eui'; -import React, { useMemo, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import * as i18n from './translations'; -import { CaseDetailsHrefSchema, CasesNavigation, LinkAnchor } from '../links'; +import { LinkAnchor } from '../links'; import { RecentCasesFilters } from './filters'; import { RecentCasesComp } from './recent_cases'; import { FilterMode as RecentCasesFilterMode } from './types'; import { useCurrentUser } from '../../common/lib/kibana'; -import { Owner } from '../../types'; -import { OwnerProvider } from '../owner_context'; +import { useAllCasesNavigation } from '../../common/navigation'; -export interface RecentCasesProps extends Owner { - allCasesNavigation: CasesNavigation; - caseDetailsNavigation: CasesNavigation<CaseDetailsHrefSchema, 'configurable'>; - createCaseNavigation: CasesNavigation; - hasWritePermissions: boolean; +export interface RecentCasesProps { maxCasesToShow: number; } -const RecentCasesComponent = ({ - allCasesNavigation, - caseDetailsNavigation, - createCaseNavigation, - maxCasesToShow, - hasWritePermissions, -}: Omit<RecentCasesProps, 'owner'>) => { +const RecentCases = React.memo(({ maxCasesToShow }: RecentCasesProps) => { const currentUser = useCurrentUser(); + const { getAllCasesUrl, navigateToAllCases } = useAllCasesNavigation(); + const [recentCasesFilterBy, setRecentCasesFilterBy] = useState<RecentCasesFilterMode>('recentlyCreated'); + const navigateToAllCasesClick = useCallback( + (e) => { + e.preventDefault(); + navigateToAllCases(); + }, + [navigateToAllCases] + ); + const recentCasesFilterOptions = useMemo( () => recentCasesFilterBy === 'myRecentlyReported' && currentUser != null @@ -73,16 +72,10 @@ const RecentCasesComponent = ({ <EuiHorizontalRule margin="s" /> </> <EuiText color="subdued" size="s"> - <RecentCasesComp - caseDetailsNavigation={caseDetailsNavigation} - createCaseNavigation={createCaseNavigation} - filterOptions={recentCasesFilterOptions} - maxCasesToShow={maxCasesToShow} - hasWritePermissions={hasWritePermissions} - /> + <RecentCasesComp filterOptions={recentCasesFilterOptions} maxCasesToShow={maxCasesToShow} /> <EuiHorizontalRule margin="s" /> <EuiText size="xs"> - <LinkAnchor onClick={allCasesNavigation.onClick} href={allCasesNavigation.href}> + <LinkAnchor onClick={navigateToAllCasesClick} href={getAllCasesUrl()}> {' '} {i18n.VIEW_ALL_CASES} </LinkAnchor> @@ -90,14 +83,6 @@ const RecentCasesComponent = ({ </EuiText> </> ); -}; - -export const RecentCases: React.FC<RecentCasesProps> = React.memo((props) => { - return ( - <OwnerProvider owner={props.owner}> - <RecentCasesComponent {...props} /> - </OwnerProvider> - ); }); RecentCases.displayName = 'RecentCases'; diff --git a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx index 10fef0bb82df9..1fd4a28ddc1b9 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx @@ -11,24 +11,24 @@ import { mount } from 'enzyme'; import { TestProviders } from '../../../common/mock'; import { NoCases } from '.'; -describe('RecentCases', () => { +jest.mock('../../../common/navigation/hooks'); + +describe('NoCases', () => { it('if no cases, a link to create cases will exist', () => { - const createCaseHref = '/create'; const wrapper = mount( <TestProviders> - <NoCases createCaseHref={createCaseHref} hasWritePermissions /> + <NoCases /> </TestProviders> ); expect(wrapper.find(`[data-test-subj="no-cases-create-case"]`).first().prop('href')).toEqual( - createCaseHref + '/app/security/cases/create' ); }); it('displays a message without a link to create a case when the user does not have write permissions', () => { - const createCaseHref = '/create'; const wrapper = mount( - <TestProviders> - <NoCases createCaseHref={createCaseHref} hasWritePermissions={false} /> + <TestProviders userCanCrud={false}> + <NoCases /> </TestProviders> ); expect(wrapper.find(`[data-test-subj="no-cases-create-case"]`).exists()).toBeFalsy(); diff --git a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx index 2d60cc1b223ad..dce685248c4c2 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx @@ -8,31 +8,29 @@ import React, { useCallback } from 'react'; import * as i18n from '../translations'; -import { useKibana } from '../../../common/lib/kibana'; import { LinkAnchor } from '../../links'; +import { useCasesContext } from '../../cases_context/use_cases_context'; +import { useCreateCaseNavigation } from '../../../common/navigation'; -const NoCasesComponent = ({ - createCaseHref, - hasWritePermissions, -}: { - createCaseHref: string; - hasWritePermissions: boolean; -}) => { - const { navigateToUrl } = useKibana().services.application; - const goToCaseCreation = useCallback( +const NoCasesComponent = () => { + const { userCanCrud } = useCasesContext(); + const { getCreateCaseUrl, navigateToCreateCase } = useCreateCaseNavigation(); + + const navigateToCreateCaseClick = useCallback( (e) => { e.preventDefault(); - navigateToUrl(createCaseHref); + navigateToCreateCase(); }, - [createCaseHref, navigateToUrl] + [navigateToCreateCase] ); - return hasWritePermissions ? ( + + return userCanCrud ? ( <> <span>{i18n.NO_CASES}</span> <LinkAnchor data-test-subj="no-cases-create-case" - onClick={goToCaseCreation} - href={createCaseHref} + onClick={navigateToCreateCaseClick} + href={getCreateCaseUrl()} >{` ${i18n.START_A_NEW_CASE}`}</LinkAnchor> {'!'} </> diff --git a/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx b/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx index 961353206ccfa..794984c08d79c 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx @@ -13,7 +13,7 @@ import styled from 'styled-components'; import { IconWithCount } from './icon_with_count'; import * as i18n from './translations'; import { useGetCases } from '../../containers/use_get_cases'; -import { CaseDetailsHrefSchema, CaseDetailsLink, CasesNavigation } from '../links'; +import { CaseDetailsLink } from '../links'; import { LoadingPlaceholders } from './loading_placeholders'; import { NoCases } from './no_cases'; import { isSubCase } from '../all_cases/helpers'; @@ -29,10 +29,7 @@ const MarkdownContainer = styled.div` export interface RecentCasesProps { filterOptions: Partial<FilterOptions>; - caseDetailsNavigation: CasesNavigation<CaseDetailsHrefSchema, 'configurable'>; - createCaseNavigation: CasesNavigation; maxCasesToShow: number; - hasWritePermissions: boolean; } const usePrevious = (value: Partial<FilterOptions>) => { @@ -43,13 +40,7 @@ const usePrevious = (value: Partial<FilterOptions>) => { return ref.current; }; -export const RecentCasesComp = ({ - caseDetailsNavigation, - createCaseNavigation, - filterOptions, - maxCasesToShow, - hasWritePermissions, -}: RecentCasesProps) => { +export const RecentCasesComp = ({ filterOptions, maxCasesToShow }: RecentCasesProps) => { const previousFilterOptions = usePrevious(filterOptions); const { data, loading, setFilters } = useGetCases({ initialQueryParams: { perPage: maxCasesToShow }, @@ -69,7 +60,7 @@ export const RecentCasesComp = ({ return isLoadingCases ? ( <LoadingPlaceholders lines={2} placeholders={3} /> ) : !isLoadingCases && data.cases.length === 0 ? ( - <NoCases createCaseHref={createCaseNavigation.href} hasWritePermissions={hasWritePermissions} /> + <NoCases /> ) : ( <> {data.cases.map((c, i) => ( @@ -77,7 +68,6 @@ export const RecentCasesComp = ({ <EuiFlexItem grow={false}> <EuiText size="s"> <CaseDetailsLink - caseDetailsNavigation={caseDetailsNavigation} detailName={isSubCase(c) ? c.caseParentId : c.id} title={c.title} subCaseId={isSubCase(c) ? c.id : undefined} diff --git a/x-pack/plugins/cases/public/components/use_breadcrumbs/index.test.tsx b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.test.tsx new file mode 100644 index 0000000000000..04e848e92d63a --- /dev/null +++ b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.test.tsx @@ -0,0 +1,92 @@ +/* + * Copyright 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, { ReactNode } from 'react'; +import { renderHook } from '@testing-library/react-hooks'; +import { TestProviders } from '../../common/mock'; +import { useCasesBreadcrumbs, useCasesTitleBreadcrumbs } from '.'; +import { CasesDeepLinkId } from '../../common/navigation'; + +const mockSetBreadcrumbs = jest.fn(); +const mockSetTitle = jest.fn(); + +jest.mock('../../common/lib/kibana', () => { + const originalModule = jest.requireActual('../../common/lib/kibana'); + return { + ...originalModule, + useNavigation: jest.fn().mockReturnValue({ + getAppUrl: jest.fn((params?: { deepLinkId: string }) => params?.deepLinkId ?? '/test'), + }), + useKibana: () => { + const { services } = originalModule.useKibana(); + return { + services: { + ...services, + chrome: { setBreadcrumbs: mockSetBreadcrumbs, docTitle: { change: mockSetTitle } }, + }, + }; + }, + }; +}); + +const wrapper = ({ children }: { children?: ReactNode }) => ( + <TestProviders>{children}</TestProviders> +); + +describe('useCasesBreadcrumbs', () => { + afterEach(() => { + jest.clearAllMocks(); + }); + + describe('set all_cases breadcrumbs', () => { + it('call setBreadcrumbs with all items', async () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.cases), { wrapper }); + expect(mockSetBreadcrumbs).toHaveBeenCalledWith([ + { href: '/test', onClick: expect.any(Function), text: 'Test' }, + { text: 'Cases' }, + ]); + }); + + it('should sets the cases title', () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.cases), { wrapper }); + expect(mockSetTitle).toHaveBeenCalledWith(['Cases', 'Test']); + }); + }); + + describe('set create_case breadcrumbs', () => { + it('call setBreadcrumbs with all items', () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.casesCreate), { wrapper }); + expect(mockSetBreadcrumbs).toHaveBeenCalledWith([ + { href: '/test', onClick: expect.any(Function), text: 'Test' }, + { href: CasesDeepLinkId.cases, onClick: expect.any(Function), text: 'Cases' }, + { text: 'Create' }, + ]); + }); + + it('should sets the cases title', () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.casesCreate), { wrapper }); + expect(mockSetTitle).toHaveBeenCalledWith(['Create', 'Cases', 'Test']); + }); + }); + + describe('set case_view breadcrumbs', () => { + const title = 'Fake Title'; + it('call setBreadcrumbs with title', () => { + renderHook(() => useCasesTitleBreadcrumbs(title), { wrapper }); + expect(mockSetBreadcrumbs).toHaveBeenCalledWith([ + { href: '/test', onClick: expect.any(Function), text: 'Test' }, + { href: CasesDeepLinkId.cases, onClick: expect.any(Function), text: 'Cases' }, + { text: title }, + ]); + }); + + it('should sets the cases title', () => { + renderHook(() => useCasesTitleBreadcrumbs(title), { wrapper }); + expect(mockSetTitle).toHaveBeenCalledWith([title, 'Cases', 'Test']); + }); + }); +}); diff --git a/x-pack/plugins/cases/public/components/use_breadcrumbs/index.ts b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.ts new file mode 100644 index 0000000000000..7c7625507fe9e --- /dev/null +++ b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.ts @@ -0,0 +1,107 @@ +/* + * Copyright 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 { ChromeBreadcrumb } from 'kibana/public'; +import { useCallback, useEffect } from 'react'; +import { useKibana, useNavigation } from '../../common/lib/kibana'; +import { CasesDeepLinkId, ICasesDeepLinkId } from '../../common/navigation'; +import { useCasesContext } from '../cases_context/use_cases_context'; + +const casesBreadcrumbTitle: Record<ICasesDeepLinkId, string> = { + [CasesDeepLinkId.cases]: i18n.translate('xpack.cases.breadcrumbs.all_cases', { + defaultMessage: 'Cases', + }), + [CasesDeepLinkId.casesCreate]: i18n.translate('xpack.cases.breadcrumbs.create_case', { + defaultMessage: 'Create', + }), + [CasesDeepLinkId.casesConfigure]: i18n.translate('xpack.cases.breadcrumbs.configure_cases', { + defaultMessage: 'Configure', + }), +}; + +function getTitleFromBreadcrumbs(breadcrumbs: ChromeBreadcrumb[]): string[] { + return breadcrumbs.map(({ text }) => text?.toString() ?? '').reverse(); +} + +const useApplyBreadcrumbs = () => { + const { + chrome: { docTitle, setBreadcrumbs }, + application: { navigateToUrl }, + } = useKibana().services; + return useCallback( + (breadcrumbs: ChromeBreadcrumb[]) => { + docTitle.change(getTitleFromBreadcrumbs(breadcrumbs)); + setBreadcrumbs( + breadcrumbs.map((breadcrumb) => { + const { href, onClick } = breadcrumb; + return { + ...breadcrumb, + ...(href && !onClick + ? { + onClick: (event) => { + if (event) { + event.preventDefault(); + } + navigateToUrl(href); + }, + } + : {}), + }; + }) + ); + }, + [docTitle, setBreadcrumbs, navigateToUrl] + ); +}; + +export const useCasesBreadcrumbs = (pageDeepLink: ICasesDeepLinkId) => { + const { appId, appTitle } = useCasesContext(); + const { getAppUrl } = useNavigation(appId); + const applyBreadcrumbs = useApplyBreadcrumbs(); + + useEffect(() => { + applyBreadcrumbs([ + { text: appTitle, href: getAppUrl() }, + { + text: casesBreadcrumbTitle[CasesDeepLinkId.cases], + ...(pageDeepLink !== CasesDeepLinkId.cases + ? { + href: getAppUrl({ deepLinkId: CasesDeepLinkId.cases }), + } + : {}), + }, + ...(pageDeepLink !== CasesDeepLinkId.cases + ? [ + { + text: casesBreadcrumbTitle[pageDeepLink], + }, + ] + : []), + ]); + }, [pageDeepLink, appTitle, getAppUrl, applyBreadcrumbs]); +}; + +export const useCasesTitleBreadcrumbs = (caseTitle: string) => { + const { appId, appTitle } = useCasesContext(); + const { getAppUrl } = useNavigation(appId); + const applyBreadcrumbs = useApplyBreadcrumbs(); + + useEffect(() => { + const casesBreadcrumbs: ChromeBreadcrumb[] = [ + { text: appTitle, href: getAppUrl() }, + { + text: casesBreadcrumbTitle[CasesDeepLinkId.cases], + href: getAppUrl({ deepLinkId: CasesDeepLinkId.cases }), + }, + { + text: caseTitle, + }, + ]; + applyBreadcrumbs(casesBreadcrumbs); + }, [caseTitle, appTitle, getAppUrl, applyBreadcrumbs]); +}; diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx index 4c39b721cac47..7c88d9425bd7e 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx @@ -10,11 +10,15 @@ import { mount } from 'enzyme'; import { CreateCaseModal } from './create_case_modal'; import { TestProviders } from '../../common/mock'; -import { getCreateCaseLazy as getCreateCase } from '../../methods'; import { SECURITY_SOLUTION_OWNER } from '../../../common'; +import { CreateCase } from '../create'; + +jest.mock('../create', () => ({ + CreateCase: jest.fn(), +})); + +const CreateCaseMock = CreateCase as unknown as jest.Mock; -jest.mock('../../methods'); -const getCreateCaseMock = getCreateCase as jest.Mock; const onCloseCaseModal = jest.fn(); const onSuccess = jest.fn(); const defaultProps = { @@ -26,8 +30,8 @@ const defaultProps = { describe('CreateCaseModal', () => { beforeEach(() => { - jest.resetAllMocks(); - getCreateCaseMock.mockReturnValue(<></>); + jest.clearAllMocks(); + CreateCaseMock.mockReturnValue(<></>); }); it('renders', () => { @@ -68,7 +72,7 @@ describe('CreateCaseModal', () => { </TestProviders> ); - expect(getCreateCaseMock.mock.calls[0][0]).toEqual( + expect(CreateCaseMock.mock.calls[0][0]).toEqual( expect.objectContaining({ onSuccess, onCancel: onCloseCaseModal, diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx index 677aabd593adf..e1cefa34f2efe 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx @@ -10,25 +10,20 @@ import { EuiModal, EuiModalBody, EuiModalHeader, EuiModalHeaderTitle } from '@el import { Case } from '../../containers/types'; import * as i18n from '../../common/translations'; -import { CaseType } from '../../../common'; -import { getCreateCaseLazy as getCreateCase } from '../../methods'; +import { CreateCase } from '../create'; export interface CreateCaseModalProps { - caseType?: CaseType; hideConnectorServiceNowSir?: boolean; isModalOpen: boolean; onCloseCaseModal: () => void; onSuccess: (theCase: Case) => Promise<void>; - owner: string; } const CreateModalComponent: React.FC<CreateCaseModalProps> = ({ - caseType = CaseType.individual, hideConnectorServiceNowSir, isModalOpen, onCloseCaseModal, onSuccess, - owner, }) => isModalOpen ? ( <EuiModal onClose={onCloseCaseModal} data-test-subj="create-case-modal"> @@ -36,14 +31,12 @@ const CreateModalComponent: React.FC<CreateCaseModalProps> = ({ <EuiModalHeaderTitle>{i18n.CREATE_TITLE}</EuiModalHeaderTitle> </EuiModalHeader> <EuiModalBody> - {getCreateCase({ - caseType, - hideConnectorServiceNowSir, - onCancel: onCloseCaseModal, - onSuccess, - withSteps: false, - owner: [owner], - })} + <CreateCase + onCancel={onCloseCaseModal} + onSuccess={onSuccess} + withSteps={false} + hideConnectorServiceNowSir={hideConnectorServiceNowSir} + /> </EuiModalBody> </EuiModal> ) : null; diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx index b227dd4b898b2..8225b62d7f4a7 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { renderHook, act } from '@testing-library/react-hooks'; -import { render } from '@testing-library/react'; +import { render, act as reactAct } from '@testing-library/react'; import { useKibana } from '../../common/lib/kibana'; import { useCreateCaseModal, UseCreateCaseModalProps, UseCreateCaseModalReturnedValues } from '.'; @@ -95,8 +95,10 @@ describe('useCreateCaseModal', () => { result.current.openModal(); }); - const modal = result.current.modal; - render(<TestProviders>{modal}</TestProviders>); + await reactAct(async () => { + const modal = result.current.modal; + render(<TestProviders>{modal}</TestProviders>); + }); act(() => { result.current.modal.props.onSuccess({ id: 'case-id' }); diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx index 09f8eb65b12b7..2e9f3559d98d0 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx @@ -6,13 +6,11 @@ */ import React, { useState, useCallback, useMemo } from 'react'; -import { Case, CaseType } from '../../../common'; -import { useOwnerContext } from '../owner_context/use_owner_context'; +import { Case } from '../../../common'; import { CreateCaseModal } from './create_case_modal'; export interface UseCreateCaseModalProps { onCaseCreated: (theCase: Case) => void; - caseType?: CaseType; hideConnectorServiceNowSir?: boolean; } export interface UseCreateCaseModalReturnedValues { @@ -23,11 +21,9 @@ export interface UseCreateCaseModalReturnedValues { } export const useCreateCaseModal = ({ - caseType = CaseType.individual, onCaseCreated, hideConnectorServiceNowSir = false, }: UseCreateCaseModalProps) => { - const owner = useOwnerContext(); const [isModalOpen, setIsModalOpen] = useState<boolean>(false); const closeModal = useCallback(() => setIsModalOpen(false), []); const openModal = useCallback(() => setIsModalOpen(true), []); @@ -43,18 +39,16 @@ export const useCreateCaseModal = ({ () => ({ modal: ( <CreateCaseModal - caseType={caseType} hideConnectorServiceNowSir={hideConnectorServiceNowSir} isModalOpen={isModalOpen} onCloseCaseModal={closeModal} onSuccess={onSuccess} - owner={owner[0]} /> ), isModalOpen, closeModal, openModal, }), - [caseType, closeModal, hideConnectorServiceNowSir, isModalOpen, onSuccess, openModal, owner] + [closeModal, hideConnectorServiceNowSir, isModalOpen, onSuccess, openModal] ); }; diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx index 0db01e74d90a7..fb37a1b99b380 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx @@ -18,10 +18,6 @@ describe('CaseCallOut ', () => { }); const defaultProps: CaseCallOutProps = { - configureCasesNavigation: { - href: 'testHref', - onClick: jest.fn(), - }, hasConnectors: true, messages: [ { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, @@ -83,7 +79,6 @@ describe('CaseCallOut ', () => { const id = createCalloutId(['message-one', 'message-two']); wrapper.find(`[data-test-subj="callout-onclick-${id}"]`).last().simulate('click'); expect(defaultProps.onEditClick).toHaveBeenCalled(); - expect(defaultProps.configureCasesNavigation.onClick).not.toHaveBeenCalled(); }); it('Redirects to configure page when hasConnectors=false', () => { @@ -100,6 +95,5 @@ describe('CaseCallOut ', () => { const id = createCalloutId(['message-one', 'message-two']); wrapper.find(`[data-test-subj="callout-onclick-${id}"]`).last().simulate('click'); expect(defaultProps.onEditClick).not.toHaveBeenCalled(); - expect(defaultProps.configureCasesNavigation.onClick).toHaveBeenCalled(); }); }); diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx index 40c4070c6634d..40c61175153c0 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx @@ -11,12 +11,11 @@ import React, { memo, useCallback, useMemo } from 'react'; import { CallOut } from './callout'; import { ErrorMessage } from './types'; import { createCalloutId } from './helpers'; -import { CasesNavigation } from '../../links'; +import { useConfigureCasesNavigation } from '../../../common/navigation'; export * from './helpers'; export interface CaseCallOutProps { - configureCasesNavigation: CasesNavigation; hasConnectors: boolean; hasLicenseError: boolean; messages?: ErrorMessage[]; @@ -30,23 +29,24 @@ type GroupByTypeMessages = { }; }; const CaseCallOutComponent = ({ - configureCasesNavigation, hasConnectors, hasLicenseError, onEditClick, messages = [], }: CaseCallOutProps) => { + const { navigateToConfigureCases } = useConfigureCasesNavigation(); const handleCallOut = useCallback( (e) => { + e.preventDefault(); // if theres connectors open dropdown editor // if no connectors, redirect to create case page if (hasConnectors) { onEditClick(); } else { - configureCasesNavigation.onClick(e); + navigateToConfigureCases(); } }, - [hasConnectors, onEditClick, configureCasesNavigation] + [hasConnectors, onEditClick, navigateToConfigureCases] ); const groupedByTypeErrorMessages = useMemo( diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx index 93ea8f7e43de2..19c0bf58de7bf 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx @@ -20,20 +20,10 @@ import { connectorsMock } from '../../containers/configure/mock'; import { CLOSED_CASE_PUSH_ERROR_ID } from './callout/types'; import * as i18n from './translations'; -jest.mock('react-router-dom', () => { - const original = jest.requireActual('react-router-dom'); - - return { - ...original, - useHistory: () => ({ - useHistory: jest.fn(), - }), - }; -}); - jest.mock('../../containers/use_get_action_license'); jest.mock('../../containers/use_post_push_to_service'); jest.mock('../../containers/configure/api'); +jest.mock('../../common/navigation/hooks'); describe('usePushToService', () => { const caseId = '12345'; @@ -81,7 +71,7 @@ describe('usePushToService', () => { }; beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); (usePostPushToService as jest.Mock).mockImplementation(() => mockPostPush); (useGetActionLicense as jest.Mock).mockImplementation(() => ({ isLoading: false, diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx index 75bd3307b2582..c1ba6f1fbeb25 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx @@ -21,14 +21,12 @@ import { import * as i18n from './translations'; import { Case, CaseConnector, ActionConnector, CaseStatuses } from '../../../common'; import { CaseServices } from '../../containers/use_get_case_user_actions'; -import { CasesNavigation } from '../links'; import { ErrorMessage } from './callout/types'; export interface UsePushToService { caseId: string; caseServices: CaseServices; caseStatus: string; - configureCasesNavigation: CasesNavigation; connector: CaseConnector; connectors: ActionConnector[]; hasDataToPush: boolean; @@ -47,7 +45,6 @@ export const usePushToService = ({ caseId, caseServices, caseStatus, - configureCasesNavigation, connector, connectors, hasDataToPush, @@ -175,7 +172,6 @@ export const usePushToService = ({ pushCallouts: errorsMsg.length > 0 ? ( <CaseCallOut - configureCasesNavigation={configureCasesNavigation} hasConnectors={connectors.length > 0} hasLicenseError={hasLicenseError} messages={errorsMsg} @@ -184,7 +180,6 @@ export const usePushToService = ({ ) : null, }), [ - configureCasesNavigation, connector.name, connectors.length, errorsMsg, diff --git a/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx b/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx index 2419ac0d048e9..a7b4624835882 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx @@ -190,12 +190,10 @@ const getUpdateActionIcon = (actionField: string): string => { export const getUpdateAction = ({ action, - getCaseDetailHrefWithCommentId, label, handleOutlineComment, }: { action: CaseUserActions; - getCaseDetailHrefWithCommentId: (commentId: string) => string; label: string | JSX.Element; handleOutlineComment: (id: string) => void; }): EuiCommentProps => ({ @@ -213,10 +211,7 @@ export const getUpdateAction = ({ actions: ( <EuiFlexGroup responsive={false}> <EuiFlexItem grow={false}> - <UserActionCopyLink - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - id={action.actionId} - /> + <UserActionCopyLink id={action.actionId} /> </EuiFlexItem> {action.action === 'update' && action.commentId != null && ( <EuiFlexItem grow={false}> @@ -230,7 +225,6 @@ export const getUpdateAction = ({ export const getAlertAttachment = ({ action, alertId, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, index, loadingAlertData, @@ -241,7 +235,6 @@ export const getAlertAttachment = ({ }: { action: CaseUserActions; alertId: string; - getCaseDetailHrefWithCommentId: (commentId: string) => string; getRuleDetailsHref: RuleDetailsNavigation['href']; index: string; loadingAlertData: boolean; @@ -275,10 +268,7 @@ export const getAlertAttachment = ({ actions: ( <EuiFlexGroup responsive={false}> <EuiFlexItem grow={false}> - <UserActionCopyLink - id={action.actionId} - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - /> + <UserActionCopyLink id={action.actionId} /> </EuiFlexItem> <EuiFlexItem grow={false}> <UserActionShowAlert @@ -330,7 +320,6 @@ export const toStringArray = (value: unknown): string[] => { export const getGeneratedAlertsAttachment = ({ action, alertIds, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, onRuleDetailsClick, renderInvestigateInTimelineActionComponent, @@ -339,7 +328,6 @@ export const getGeneratedAlertsAttachment = ({ }: { action: CaseUserActions; alertIds: string[]; - getCaseDetailHrefWithCommentId: (commentId: string) => string; getRuleDetailsHref: RuleDetailsNavigation['href']; onRuleDetailsClick?: RuleDetailsNavigation['onClick']; renderInvestigateInTimelineActionComponent?: (alertIds: string[]) => JSX.Element; @@ -366,10 +354,7 @@ export const getGeneratedAlertsAttachment = ({ actions: ( <EuiFlexGroup responsive={false}> <EuiFlexItem grow={false}> - <UserActionCopyLink - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - id={action.actionId} - /> + <UserActionCopyLink id={action.actionId} /> </EuiFlexItem> {renderInvestigateInTimelineActionComponent ? ( <EuiFlexItem grow={false}> @@ -402,14 +387,12 @@ export const getActionAttachment = ({ comment, userCanCrud, isLoadingIds, - getCaseDetailHrefWithCommentId, actionsNavigation, action, }: { comment: Comment & CommentRequestActionsType; userCanCrud: boolean; isLoadingIds: string[]; - getCaseDetailHrefWithCommentId: (commentId: string) => string; actionsNavigation?: ActionsNavigation; action: CaseUserActions; }): EuiCommentProps => ({ @@ -431,12 +414,7 @@ export const getActionAttachment = ({ 'data-test-subj': 'endpoint-action', timestamp: <UserActionTimestamp createdAt={action.actionAt} />, timelineIcon: <ActionIcon actionType={comment.actions.type} />, - actions: ( - <UserActionCopyLink - id={comment.id} - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - /> - ), + actions: <UserActionCopyLink id={comment.id} />, children: comment.comment.trim().length > 0 && ( <ContentWrapper data-test-subj="user-action-markdown"> <MarkdownRenderer>{comment.comment}</MarkdownRenderer> diff --git a/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx index fc59ec3e614e3..e9cd556706646 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx @@ -33,7 +33,6 @@ const defaultProps = { caseServices: {}, caseUserActions: [], connectors: [], - getCaseDetailHrefWithCommentId: jest.fn(), actionsNavigation: { href: jest.fn(), onClick: jest.fn() }, getRuleDetailsHref: jest.fn(), onRuleDetailsClick: jest.fn(), diff --git a/x-pack/plugins/cases/public/components/user_action_tree/index.tsx b/x-pack/plugins/cases/public/components/user_action_tree/index.tsx index c1ba83e324ed2..6197303a8d7ce 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/index.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/index.tsx @@ -17,7 +17,6 @@ import { ALERT_RULE_NAME, ALERT_RULE_UUID } from '@kbn/rule-data-utils/technical import classNames from 'classnames'; import { get, isEmpty } from 'lodash'; import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; import styled from 'styled-components'; import { isRight } from 'fp-ts/Either'; @@ -58,6 +57,7 @@ import { UserActionUsername } from './user_action_username'; import { UserActionContentToolbar } from './user_action_content_toolbar'; import { getManualAlertIdsWithNoRuleId } from '../case_view/helpers'; import { useLensDraftComment } from '../markdown_editor/plugins/lens/use_lens_draft_comment'; +import { useCaseViewParams } from '../../common/navigation'; export interface UserActionTreeProps { caseServices: CaseServices; @@ -65,7 +65,6 @@ export interface UserActionTreeProps { connectors: ActionConnector[]; data: Case; fetchUserActions: () => void; - getCaseDetailHrefWithCommentId: (commentId: string) => string; getRuleDetailsHref?: RuleDetailsNavigation['href']; actionsNavigation?: ActionsNavigation; isLoadingDescription: boolean; @@ -149,7 +148,6 @@ export const UserActionTree = React.memo( connectors, data: caseData, fetchUserActions, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, actionsNavigation, isLoadingDescription, @@ -163,15 +161,7 @@ export const UserActionTree = React.memo( useFetchAlertData, userCanCrud, }: UserActionTreeProps) => { - const { - detailName: caseId, - commentId, - subCaseId, - } = useParams<{ - detailName: string; - commentId?: string; - subCaseId?: string; - }>(); + const { detailName: caseId, subCaseId, commentId } = useCaseViewParams(); const handlerTimeoutId = useRef(0); const [initLoading, setInitLoading] = useState(true); const [selectedOutlineCommentId, setSelectedOutlineCommentId] = useState(''); @@ -325,7 +315,6 @@ export const UserActionTree = React.memo( actions: ( <UserActionContentToolbar commentMarkdown={caseData.description} - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} id={DESCRIPTION_ID} editLabel={i18n.EDIT_DESCRIPTION} quoteLabel={i18n.QUOTE} @@ -339,7 +328,6 @@ export const UserActionTree = React.memo( [ MarkdownDescription, caseData, - getCaseDetailHrefWithCommentId, handleManageMarkdownEditId, handleManageQuote, isLoadingDescription, @@ -403,7 +391,6 @@ export const UserActionTree = React.memo( ), actions: ( <UserActionContentToolbar - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} id={comment.id} commentMarkdown={comment.comment} editLabel={i18n.EDIT_COMMENT} @@ -456,7 +443,6 @@ export const UserActionTree = React.memo( getAlertAttachment({ action, alertId, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, index: alertIndex, loadingAlertData, @@ -485,7 +471,6 @@ export const UserActionTree = React.memo( getGeneratedAlertsAttachment({ action, alertIds, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, onRuleDetailsClick, renderInvestigateInTimelineActionComponent, @@ -508,7 +493,6 @@ export const UserActionTree = React.memo( comment, userCanCrud, isLoadingIds, - getCaseDetailHrefWithCommentId, actionsNavigation, action, }), @@ -526,7 +510,6 @@ export const UserActionTree = React.memo( getUpdateAction({ action, label, - getCaseDetailHrefWithCommentId, handleOutlineComment, }), ]; @@ -589,7 +572,6 @@ export const UserActionTree = React.memo( getUpdateAction({ action, label, - getCaseDetailHrefWithCommentId, handleOutlineComment, }), ...footers, @@ -612,7 +594,6 @@ export const UserActionTree = React.memo( getUpdateAction({ action, label, - getCaseDetailHrefWithCommentId, handleOutlineComment, }), ]; @@ -630,7 +611,6 @@ export const UserActionTree = React.memo( manageMarkdownEditIds, handleManageMarkdownEditId, handleSaveComment, - getCaseDetailHrefWithCommentId, actionsNavigation, userCanCrud, isLoadingIds, diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx index a049deb264d4c..73a61ed3afd5f 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx @@ -15,7 +15,6 @@ import { CommentType } from '../../../common'; const props = { alertId: 'alert-id-1', - getCaseDetailHrefWithCommentId: jest.fn().mockReturnValue('someCaseDetail-withcomment'), getRuleDetailsHref: jest.fn().mockReturnValue('some-detection-rule-link'), onRuleDetailsClick: jest.fn(), ruleId: 'rule-id-1', diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx index 5820f057259a4..c2edfe2739715 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx @@ -12,20 +12,11 @@ import { UserActionContentToolbarProps, } from './user_action_content_toolbar'; -jest.mock('react-router-dom', () => { - const originalModule = jest.requireActual('react-router-dom'); - - return { - ...originalModule, - useParams: jest.fn().mockReturnValue({ detailName: 'case-1' }), - }; -}); - +jest.mock('../../common/navigation/hooks'); jest.mock('../../common/lib/kibana'); const props: UserActionContentToolbarProps = { commentMarkdown: '', - getCaseDetailHrefWithCommentId: jest.fn().mockReturnValue('case-detail-url-with-comment-id-1'), id: '1', editLabel: 'edit', quoteLabel: 'quote', diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx index 0728eda13fd54..ab030348595d1 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx @@ -14,7 +14,6 @@ import { UserActionPropertyActions } from './user_action_property_actions'; export interface UserActionContentToolbarProps { commentMarkdown: string; id: string; - getCaseDetailHrefWithCommentId: (commentId: string) => string; editLabel: string; quoteLabel: string; isLoading: boolean; @@ -26,7 +25,6 @@ export interface UserActionContentToolbarProps { const UserActionContentToolbarComponent = ({ commentMarkdown, id, - getCaseDetailHrefWithCommentId, editLabel, quoteLabel, isLoading, @@ -36,7 +34,7 @@ const UserActionContentToolbarComponent = ({ }: UserActionContentToolbarProps) => ( <EuiFlexGroup responsive={false} alignItems="center"> <EuiFlexItem grow={false}> - <UserActionCopyLink id={id} getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} /> + <UserActionCopyLink id={id} /> </EuiFlexItem> <EuiFlexItem grow={false}> <UserActionPropertyActions diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx index 91184d49479ba..67d2b837d27e3 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx @@ -9,57 +9,45 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; -import { useParams } from 'react-router-dom'; import copy from 'copy-to-clipboard'; +import { useKibana } from '../../common/lib/kibana'; import { TestProviders } from '../../common/mock'; import { UserActionCopyLink } from './user_action_copy_link'; -jest.mock('react-router-dom', () => { - const originalModule = jest.requireActual('react-router-dom'); - - return { - ...originalModule, - useParams: jest.fn(), - }; -}); +const useKibanaMock = useKibana as jest.Mocked<typeof useKibana>; +jest.mock('../../common/navigation/hooks'); jest.mock('copy-to-clipboard', () => jest.fn()); +jest.mock('../../common/lib/kibana'); const mockGetUrlForApp = jest.fn( (appId: string, options?: { path?: string; absolute?: boolean }) => `${appId}${options?.path ?? ''}` ); -jest.mock('../../common/lib/kibana', () => ({ - useKibana: () => ({ - services: { - application: { - getUrlForApp: mockGetUrlForApp, - }, - }, - }), -})); - const props = { id: 'comment-id', - getCaseDetailHrefWithCommentId: jest.fn().mockReturnValue('random-url'), }; describe('UserActionCopyLink ', () => { let wrapper: ReactWrapper; beforeAll(() => { - (useParams as jest.Mock).mockReturnValue({ detailName: 'case-1' }); wrapper = mount(<UserActionCopyLink {...props} />, { wrappingComponent: TestProviders }); }); + beforeEach(() => { + jest.clearAllMocks(); + useKibanaMock().services.application.getUrlForApp = mockGetUrlForApp; + }); + it('it renders', async () => { expect(wrapper.find(`[data-test-subj="copy-link-${props.id}"]`).first().exists()).toBeTruthy(); }); it('calls copy clipboard correctly', async () => { wrapper.find(`[data-test-subj="copy-link-${props.id}"]`).first().simulate('click'); - expect(copy).toHaveBeenCalledWith('random-url'); + expect(copy).toHaveBeenCalledWith('/app/security/cases/test'); }); }); diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx index 0cc837fcb60b5..54c9b36c53962 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx @@ -10,19 +10,19 @@ import { EuiToolTip, EuiButtonIcon } from '@elastic/eui'; import copy from 'copy-to-clipboard'; import * as i18n from './translations'; +import { useCaseViewNavigation, useCaseViewParams } from '../../common/navigation'; interface UserActionCopyLinkProps { id: string; - getCaseDetailHrefWithCommentId: (commentId: string) => string; } -const UserActionCopyLinkComponent = ({ - id: commentId, - getCaseDetailHrefWithCommentId, -}: UserActionCopyLinkProps) => { +const UserActionCopyLinkComponent = ({ id: commentId }: UserActionCopyLinkProps) => { + const { getCaseViewUrl } = useCaseViewNavigation(); + const { detailName, subCaseId } = useCaseViewParams(); + const handleAnchorLink = useCallback(() => { - copy(getCaseDetailHrefWithCommentId(commentId)); - }, [getCaseDetailHrefWithCommentId, commentId]); + copy(getCaseViewUrl({ detailName, subCaseId, commentId }, true)); + }, [detailName, subCaseId, commentId, getCaseViewUrl]); return ( <EuiToolTip position="top" content={<p>{i18n.COPY_REFERENCE_LINK}</p>}> diff --git a/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx b/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx index d8d552ceb8b7a..1814020de8465 100644 --- a/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx +++ b/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx @@ -50,14 +50,11 @@ describe('useConfigure', () => { }); test('init', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, ReturnUseCaseConfigure>( - () => useCaseConfigure(), - { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - } - ); - await waitForNextUpdate(); + const { result } = renderHook<string, ReturnUseCaseConfigure>(() => useCaseConfigure(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + + await act(async () => expect(result.current).toEqual({ ...initialState, refetchCaseConfigure: result.current.refetchCaseConfigure, @@ -66,8 +63,8 @@ describe('useConfigure', () => { setConnector: result.current.setConnector, setClosureType: result.current.setClosureType, setMappings: result.current.setMappings, - }); - }); + }) + ); }); test('fetch case configuration', async () => { @@ -79,7 +76,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ ...initialState, closureType: caseConfigurationCamelCaseResponseMock.closureType, @@ -114,7 +110,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCaseConfigure(); expect(spyOnGetCaseConfigure).toHaveBeenCalledTimes(2); }); @@ -129,7 +124,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current.mappings).toEqual([]); result.current.setMappings(mappings); expect(result.current.mappings).toEqual(mappings); @@ -145,7 +139,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCaseConfigure(); expect(result.current.loading).toBe(true); @@ -161,7 +154,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.persistCaseConfigure(configuration); expect(result.current.persistLoading).toBeTruthy(); }); @@ -193,7 +185,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(mockErrorToast).not.toHaveBeenCalled(); result.current.persistCaseConfigure(configuration); @@ -222,7 +213,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(mockErrorToast).toHaveBeenCalled(); }); }); @@ -254,7 +244,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(mockErrorToast).not.toHaveBeenCalled(); result.current.persistCaseConfigure(configuration); @@ -281,7 +270,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.persistCaseConfigure(configuration); @@ -305,7 +293,6 @@ describe('useConfigure', () => { } ); - await waitForNextUpdate(); await waitForNextUpdate(); expect(result.current).toEqual({ @@ -344,7 +331,6 @@ describe('useConfigure', () => { } ); - await waitForNextUpdate(); await waitForNextUpdate(); result.current.persistCaseConfigure(configuration); diff --git a/x-pack/plugins/cases/public/containers/configure/use_configure.tsx b/x-pack/plugins/cases/public/containers/configure/use_configure.tsx index d02a22bde408c..afac625c7682e 100644 --- a/x-pack/plugins/cases/public/containers/configure/use_configure.tsx +++ b/x-pack/plugins/cases/public/containers/configure/use_configure.tsx @@ -12,7 +12,7 @@ import * as i18n from './translations'; import { ClosureType, CaseConfigure, CaseConnector, CaseConnectorMapping } from './types'; import { ConnectorTypes } from '../../../common'; import { useToasts } from '../../common/lib/kibana'; -import { useOwnerContext } from '../../components/owner_context/use_owner_context'; +import { useCasesContext } from '../../components/cases_context/use_cases_context'; export type ConnectorConfiguration = { connector: CaseConnector } & { closureType: CaseConfigure['closureType']; @@ -156,7 +156,7 @@ export const initialState: State = { }; export const useCaseConfigure = (): ReturnUseCaseConfigure => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [state, dispatch] = useReducer(configureCasesReducer, initialState); const toasts = useToasts(); const setCurrentConfiguration = useCallback((configuration: ConnectorConfiguration) => { diff --git a/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx b/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx index b3a6932c6971c..97de7a9073269 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx @@ -25,24 +25,23 @@ jest.mock('../common/lib/kibana'); describe('useGetCases', () => { const abortCtrl = new AbortController(); + beforeEach(() => { jest.clearAllMocks(); - jest.restoreAllMocks(); }); it('init', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetCases>(() => useGetCases(), { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - }); + const { result } = renderHook<string, UseGetCases>(() => useGetCases(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); - await waitForNextUpdate(); + await act(async () => { expect(result.current).toEqual({ data: initialData, dispatchUpdateCaseProperty: result.current.dispatchUpdateCaseProperty, filterOptions: DEFAULT_FILTER_OPTIONS, isError: false, - loading: [], + loading: ['cases'], queryParams: DEFAULT_QUERY_PARAMS, refetchCases: result.current.refetchCases, selectedCases: [], @@ -60,7 +59,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetCases).toBeCalledWith({ filterOptions: { ...DEFAULT_FILTER_OPTIONS, owner: [SECURITY_SOLUTION_OWNER] }, queryParams: DEFAULT_QUERY_PARAMS, @@ -75,7 +73,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ data: allCases, dispatchUpdateCaseProperty: result.current.dispatchUpdateCaseProperty, @@ -106,7 +103,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.dispatchUpdateCaseProperty(updateCase); expect(result.current.loading).toEqual(['caseUpdate']); expect(spyOnPatchCase).toBeCalledWith( @@ -125,7 +121,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCases(); expect(spyOnGetCases).toHaveBeenCalledTimes(2); }); @@ -137,7 +132,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCases(); expect(result.current.loading).toEqual(['cases']); @@ -155,7 +149,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ data: initialData, @@ -186,7 +179,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); - await waitForNextUpdate(); await waitForNextUpdate(); result.current.setFilters(newFilters); await waitForNextUpdate(); @@ -214,7 +206,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); - await waitForNextUpdate(); await waitForNextUpdate(); result.current.setQueryParams(newQueryParams); await waitForNextUpdate(); @@ -237,7 +228,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.setSelectedCases(selectedCases); expect(result.current.selectedCases).toEqual(selectedCases); }); diff --git a/x-pack/plugins/cases/public/containers/use_get_cases.tsx b/x-pack/plugins/cases/public/containers/use_get_cases.tsx index b3aa374f5418e..a54a4183f766a 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases.tsx @@ -19,7 +19,7 @@ import { import { useToasts } from '../common/lib/kibana'; import * as i18n from './translations'; import { getCases, patchCase } from './api'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; export interface UseGetCasesState { data: AllCases; @@ -145,7 +145,7 @@ export const useGetCases = ( initialFilterOptions?: Partial<FilterOptions>; } = {} ): UseGetCases => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const { initialQueryParams = empty, initialFilterOptions = empty } = params; const [state, dispatch] = useReducer(dataFetchReducer, { data: initialData, diff --git a/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx b/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx index b9047fdafee61..93da0ecbd14ae 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx @@ -24,14 +24,11 @@ describe('useGetCasesStatus', () => { }); it('init', async () => { + const { result } = renderHook<string, UseGetCasesStatus>(() => useGetCasesStatus(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetCasesStatus>( - () => useGetCasesStatus(), - { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - } - ); - await waitForNextUpdate(); expect(result.current).toEqual({ countClosedCases: null, countOpenCases: null, @@ -53,7 +50,6 @@ describe('useGetCasesStatus', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetCasesStatus).toBeCalledWith(abortCtrl.signal, [SECURITY_SOLUTION_OWNER]); }); }); @@ -67,7 +63,6 @@ describe('useGetCasesStatus', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ countClosedCases: casesStatus.countClosedCases, countOpenCases: casesStatus.countOpenCases, @@ -93,7 +88,6 @@ describe('useGetCasesStatus', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ countClosedCases: 0, diff --git a/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx b/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx index 909bc42345759..5e21c339856fb 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx @@ -7,7 +7,7 @@ import { useCallback, useEffect, useState, useRef } from 'react'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; import { getCasesStatus } from './api'; import * as i18n from './translations'; import { CasesStatus } from './types'; @@ -31,7 +31,7 @@ export interface UseGetCasesStatus extends CasesStatusState { } export const useGetCasesStatus = (): UseGetCasesStatus => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [casesStatusState, setCasesStatusState] = useState<CasesStatusState>(initialData); const toasts = useToasts(); const isCancelledRef = useRef(false); diff --git a/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx b/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx index 692c5237f58bf..21f9352a7cbc0 100644 --- a/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx @@ -24,14 +24,11 @@ describe('useGetReporters', () => { }); it('init', async () => { + const { result } = renderHook<string, UseGetReporters>(() => useGetReporters(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetReporters>( - () => useGetReporters(), - { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - } - ); - await waitForNextUpdate(); expect(result.current).toEqual({ reporters: [], respReporters: [], @@ -49,7 +46,6 @@ describe('useGetReporters', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetReporters).toBeCalledWith(abortCtrl.signal, [SECURITY_SOLUTION_OWNER]); }); }); @@ -63,7 +59,6 @@ describe('useGetReporters', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ reporters, respReporters, @@ -84,7 +79,6 @@ describe('useGetReporters', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.fetchReporters(); expect(spyOnGetReporters).toHaveBeenCalledTimes(2); }); @@ -104,7 +98,6 @@ describe('useGetReporters', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ reporters: [], diff --git a/x-pack/plugins/cases/public/containers/use_get_reporters.tsx b/x-pack/plugins/cases/public/containers/use_get_reporters.tsx index b3c2eff2c8e01..881933419d60b 100644 --- a/x-pack/plugins/cases/public/containers/use_get_reporters.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_reporters.tsx @@ -12,7 +12,7 @@ import { User } from '../../common'; import { getReporters } from './api'; import * as i18n from './translations'; import { useToasts } from '../common/lib/kibana'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; interface ReportersState { reporters: string[]; @@ -33,7 +33,7 @@ export interface UseGetReporters extends ReportersState { } export const useGetReporters = (): UseGetReporters => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [reportersState, setReporterState] = useState<ReportersState>(initialData); const toasts = useToasts(); diff --git a/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx b/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx index 60d368aca0a04..b2bf4737356cc 100644 --- a/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx @@ -24,11 +24,11 @@ describe('useGetTags', () => { }); it('init', async () => { + const { result } = renderHook<string, UseGetTags>(() => useGetTags(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetTags>(() => useGetTags(), { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - }); - await waitForNextUpdate(); expect(result.current).toEqual({ tags: [], isLoading: true, @@ -45,7 +45,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetTags).toBeCalledWith(abortCtrl.signal, [SECURITY_SOLUTION_OWNER]); }); }); @@ -56,7 +55,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ tags, isLoading: false, @@ -73,7 +71,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.fetchTags(); expect(spyOnGetTags).toHaveBeenCalledTimes(2); }); @@ -90,7 +87,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ tags: [], diff --git a/x-pack/plugins/cases/public/containers/use_get_tags.tsx b/x-pack/plugins/cases/public/containers/use_get_tags.tsx index 362e7ebf8fbf3..15f3eafb2f113 100644 --- a/x-pack/plugins/cases/public/containers/use_get_tags.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_tags.tsx @@ -7,7 +7,7 @@ import { useEffect, useReducer, useRef, useCallback } from 'react'; import { useToasts } from '../common/lib/kibana'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; import { getTags } from './api'; import * as i18n from './translations'; @@ -53,7 +53,7 @@ const dataFetchReducer = (state: TagsState, action: Action): TagsState => { const initialData: string[] = []; export const useGetTags = (): UseGetTags => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [state, dispatch] = useReducer(dataFetchReducer, { isLoading: true, isError: false, diff --git a/x-pack/plugins/cases/public/containers/use_update_comment.tsx b/x-pack/plugins/cases/public/containers/use_update_comment.tsx index 3c307d86ac7bc..cc287d4dee863 100644 --- a/x-pack/plugins/cases/public/containers/use_update_comment.tsx +++ b/x-pack/plugins/cases/public/containers/use_update_comment.tsx @@ -7,7 +7,7 @@ import { useReducer, useCallback, useRef, useEffect } from 'react'; import { useToasts } from '../common/lib/kibana'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; import { patchComment } from './api'; import * as i18n from './translations'; import { Case } from './types'; @@ -75,7 +75,7 @@ export const useUpdateComment = (): UseUpdateComment => { const abortCtrlRef = useRef(new AbortController()); // this hook guarantees that there will be at least one value in the owner array, we'll // just use the first entry just in case there are more than one entry - const owner = useOwnerContext()[0]; + const owner = useCasesContext().owner[0]; const dispatchUpdateComment = useCallback( async ({ diff --git a/x-pack/plugins/cases/public/index.tsx b/x-pack/plugins/cases/public/index.tsx index a33bb14cd78c1..79eefba78a488 100644 --- a/x-pack/plugins/cases/public/index.tsx +++ b/x-pack/plugins/cases/public/index.tsx @@ -14,9 +14,17 @@ export function plugin(initializerContext: PluginInitializerContext) { export type { CasesUiPlugin }; export type { CasesUiStart } from './types'; -export type { AllCasesProps } from './components/all_cases'; -export type { AllCasesSelectorModalProps } from './components/all_cases/selector_modal'; -export type { CaseViewProps } from './components/case_view'; -export type { ConfigureCasesProps } from './components/configure_cases'; -export type { CreateCaseProps } from './components/create'; -export type { RecentCasesProps } from './components/recent_cases'; +export type { GetCasesProps } from './methods/get_cases'; +export type { GetCreateCaseFlyoutProps } from './methods/get_create_case_flyout'; +export type { GetAllCasesSelectorModalProps } from './methods/get_all_cases_selector_modal'; +export type { GetRecentCasesProps } from './methods/get_recent_cases'; + +export type { ICasesDeepLinkId } from './common/navigation'; +export { + getCasesDeepLinks, + CasesDeepLinkId, + generateCaseViewPath, + getCreateCasePath, + getCaseViewPath, + getCasesConfigurePath, +} from './common/navigation'; diff --git a/x-pack/plugins/cases/public/methods/get_all_cases.tsx b/x-pack/plugins/cases/public/methods/get_all_cases.tsx deleted file mode 100644 index d3e7a924788f3..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_all_cases.tsx +++ /dev/null @@ -1,17 +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 { EuiLoadingSpinner } from '@elastic/eui'; -import React, { lazy, Suspense } from 'react'; -import { AllCasesProps } from '../components/all_cases'; - -const AllCasesLazy = lazy(() => import('../components/all_cases')); -export const getAllCasesLazy = (props: AllCasesProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <AllCasesLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx b/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx index dbb466129c60b..0710dcd30508b 100644 --- a/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx +++ b/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx @@ -8,14 +8,31 @@ import React, { lazy, Suspense } from 'react'; import { EuiLoadingSpinner } from '@elastic/eui'; import { AllCasesSelectorModalProps } from '../components/all_cases/selector_modal'; -import { OwnerProvider } from '../components/owner_context'; -import { Owner } from '../types'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; -const AllCasesSelectorModalLazy = lazy(() => import('../components/all_cases/selector_modal')); -export const getAllCasesSelectorModalLazy = (props: AllCasesSelectorModalProps & Owner) => ( - <OwnerProvider owner={props.owner}> +export type GetAllCasesSelectorModalProps = AllCasesSelectorModalProps & CasesContextProps; + +const AllCasesSelectorModalLazy: React.FC<AllCasesSelectorModalProps> = lazy( + () => import('../components/all_cases/selector_modal') +); +export const getAllCasesSelectorModalLazy = ({ + owner, + userCanCrud, + alertData, + hiddenStatuses, + onRowClick, + updateCase, + onClose, +}: GetAllCasesSelectorModalProps) => ( + <CasesProvider value={{ owner, userCanCrud }}> <Suspense fallback={<EuiLoadingSpinner />}> - <AllCasesSelectorModalLazy {...props} /> + <AllCasesSelectorModalLazy + alertData={alertData} + hiddenStatuses={hiddenStatuses} + onRowClick={onRowClick} + updateCase={updateCase} + onClose={onClose} + /> </Suspense> - </OwnerProvider> + </CasesProvider> ); diff --git a/x-pack/plugins/cases/public/methods/get_case_view.tsx b/x-pack/plugins/cases/public/methods/get_case_view.tsx deleted file mode 100644 index 00fe2438a1a7d..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_case_view.tsx +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { lazy, Suspense } from 'react'; -import { EuiLoadingSpinner } from '@elastic/eui'; -import { CaseViewProps } from '../components/case_view'; - -const CaseViewLazy = lazy(() => import('../components/case_view')); -export const getCaseViewLazy = (props: CaseViewProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <CaseViewLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_cases.tsx b/x-pack/plugins/cases/public/methods/get_cases.tsx new file mode 100644 index 0000000000000..432c2d9fc5b2b --- /dev/null +++ b/x-pack/plugins/cases/public/methods/get_cases.tsx @@ -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 { EuiLoadingSpinner } from '@elastic/eui'; +import React, { lazy, Suspense } from 'react'; +import type { CasesProps } from '../components/app'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; + +export type GetCasesProps = CasesProps & CasesContextProps; + +const CasesLazy: React.FC<CasesProps> = lazy(() => import('../components/app')); +export const getCasesLazy = ({ + owner, + userCanCrud, + basePath, + disableAlerts, + onComponentInitialized, + actionsNavigation, + ruleDetailsNavigation, + showAlertDetails, + useFetchAlertData, + refreshRef, + hideSyncAlerts, + timelineIntegration, +}: GetCasesProps) => ( + <CasesProvider value={{ owner, userCanCrud, basePath }}> + <Suspense fallback={<EuiLoadingSpinner />}> + <CasesLazy + disableAlerts={disableAlerts} + onComponentInitialized={onComponentInitialized} + actionsNavigation={actionsNavigation} + ruleDetailsNavigation={ruleDetailsNavigation} + showAlertDetails={showAlertDetails} + useFetchAlertData={useFetchAlertData} + refreshRef={refreshRef} + hideSyncAlerts={hideSyncAlerts} + timelineIntegration={timelineIntegration} + /> + </Suspense> + </CasesProvider> +); diff --git a/x-pack/plugins/cases/public/methods/get_configure_cases.tsx b/x-pack/plugins/cases/public/methods/get_configure_cases.tsx deleted file mode 100644 index 96a3dbd55d7de..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_configure_cases.tsx +++ /dev/null @@ -1,17 +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 { EuiLoadingSpinner } from '@elastic/eui'; -import React, { lazy, Suspense } from 'react'; -import { ConfigureCasesProps } from '../components/configure_cases'; - -const ConfigureCasesLazy = lazy(() => import('../components/configure_cases')); -export const getConfigureCasesLazy = (props: ConfigureCasesProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <ConfigureCasesLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_create_case.tsx b/x-pack/plugins/cases/public/methods/get_create_case.tsx deleted file mode 100644 index b030ed669b663..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_create_case.tsx +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { lazy, Suspense } from 'react'; -import { EuiLoadingSpinner } from '@elastic/eui'; -import { CreateCaseProps } from '../components/create'; - -const CreateCaseLazy = lazy(() => import('../components/create')); -export const getCreateCaseLazy = (props: CreateCaseProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <CreateCaseLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_create_case_flyout.tsx b/x-pack/plugins/cases/public/methods/get_create_case_flyout.tsx new file mode 100644 index 0000000000000..2128063ea9084 --- /dev/null +++ b/x-pack/plugins/cases/public/methods/get_create_case_flyout.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { lazy, Suspense } from 'react'; +import { EuiLoadingSpinner } from '@elastic/eui'; +import type { CreateCaseFlyoutProps } from '../components/create/flyout'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; + +export type GetCreateCaseFlyoutProps = CreateCaseFlyoutProps & CasesContextProps; + +const CreateCaseFlyoutLazy: React.FC<CreateCaseFlyoutProps> = lazy( + () => import('../components/create/flyout') +); +export const getCreateCaseFlyoutLazy = ({ + owner, + userCanCrud, + afterCaseCreated, + onClose, + onSuccess, + disableAlerts, +}: GetCreateCaseFlyoutProps) => ( + <CasesProvider value={{ owner, userCanCrud }}> + <Suspense fallback={<EuiLoadingSpinner />}> + <CreateCaseFlyoutLazy + afterCaseCreated={afterCaseCreated} + onClose={onClose} + onSuccess={onSuccess} + disableAlerts={disableAlerts} + /> + </Suspense> + </CasesProvider> +); diff --git a/x-pack/plugins/cases/public/methods/get_recent_cases.tsx b/x-pack/plugins/cases/public/methods/get_recent_cases.tsx index e87db9320ca3d..32ad7932eeeb4 100644 --- a/x-pack/plugins/cases/public/methods/get_recent_cases.tsx +++ b/x-pack/plugins/cases/public/methods/get_recent_cases.tsx @@ -7,11 +7,18 @@ import { EuiLoadingSpinner } from '@elastic/eui'; import React, { lazy, Suspense } from 'react'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; import { RecentCasesProps } from '../components/recent_cases'; -const RecentCasesLazy = lazy(() => import('../components/recent_cases')); -export const getRecentCasesLazy = (props: RecentCasesProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <RecentCasesLazy {...props} /> - </Suspense> +export type GetRecentCasesProps = RecentCasesProps & CasesContextProps; + +const RecentCasesLazy: React.FC<RecentCasesProps> = lazy( + () => import('../components/recent_cases') +); +export const getRecentCasesLazy = ({ owner, userCanCrud, maxCasesToShow }: GetRecentCasesProps) => ( + <CasesProvider value={{ owner, userCanCrud }}> + <Suspense fallback={<EuiLoadingSpinner />}> + <RecentCasesLazy maxCasesToShow={maxCasesToShow} /> + </Suspense> + </CasesProvider> ); diff --git a/x-pack/plugins/cases/public/methods/index.ts b/x-pack/plugins/cases/public/methods/index.ts index 1d91e7c4df6d2..ee62ddaae7ce5 100644 --- a/x-pack/plugins/cases/public/methods/index.ts +++ b/x-pack/plugins/cases/public/methods/index.ts @@ -5,9 +5,7 @@ * 2.0. */ -export * from './get_all_cases'; -export * from './get_create_case'; -export * from './get_case_view'; -export * from './get_configure_cases'; +export * from './get_cases'; export * from './get_recent_cases'; export * from './get_all_cases_selector_modal'; +export * from './get_create_case_flyout'; diff --git a/x-pack/plugins/cases/public/mocks.ts b/x-pack/plugins/cases/public/mocks.ts index c543baa477475..f2c7984f1469e 100644 --- a/x-pack/plugins/cases/public/mocks.ts +++ b/x-pack/plugins/cases/public/mocks.ts @@ -8,11 +8,9 @@ import { CasesUiStart } from './types'; const createStartContract = (): jest.Mocked<CasesUiStart> => ({ - getAllCases: jest.fn(), + getCases: jest.fn(), getAllCasesSelectorModal: jest.fn(), - getCaseView: jest.fn(), - getConfigureCases: jest.fn(), - getCreateCase: jest.fn(), + getCreateCaseFlyout: jest.fn(), getRecentCases: jest.fn(), }); diff --git a/x-pack/plugins/cases/public/plugin.ts b/x-pack/plugins/cases/public/plugin.ts index 2b4fb40545548..b6b9643ea5856 100644 --- a/x-pack/plugins/cases/public/plugin.ts +++ b/x-pack/plugins/cases/public/plugin.ts @@ -10,12 +10,10 @@ import { CasesUiStart, SetupPlugins, StartPlugins } from './types'; import { KibanaServices } from './common/lib/kibana'; import { getCaseConnectorUi } from './components/connectors'; import { - getAllCasesLazy, - getCaseViewLazy, - getConfigureCasesLazy, - getCreateCaseLazy, + getCasesLazy, getRecentCasesLazy, getAllCasesSelectorModalLazy, + getCreateCaseFlyoutLazy, } from './methods'; import { CasesUiConfigType, ENABLE_CASE_CONNECTOR } from '../common'; @@ -39,41 +37,9 @@ export class CasesUiPlugin implements Plugin<void, CasesUiStart, SetupPlugins, S const config = this.initializerContext.config.get<CasesUiConfigType>(); KibanaServices.init({ ...core, ...plugins, kibanaVersion: this.kibanaVersion, config }); return { - /** - * Get the all cases table - * @param props AllCasesProps - * @return {ReactElement<AllCasesProps>} - */ - getAllCases: getAllCasesLazy, - /** - * Get the case view component - * @param props CaseViewProps - * @return {ReactElement<CaseViewProps>} - */ - getCaseView: getCaseViewLazy, - /** - * Get the configure case component - * @param props ConfigureCasesProps - * @return {ReactElement<ConfigureCasesProps>} - */ - getConfigureCases: getConfigureCasesLazy, - /** - * Get the create case form - * @param props CreateCaseProps - * @return {ReactElement<CreateCaseProps>} - */ - getCreateCase: getCreateCaseLazy, - /** - * Get the recent cases component - * @param props RecentCasesProps - * @return {ReactElement<RecentCasesProps>} - */ + getCases: getCasesLazy, getRecentCases: getRecentCasesLazy, - /** - * use Modal hook for all cases selector - * @param props UseAllCasesSelectorModalProps - * @return UseAllCasesSelectorModalReturnedValues - */ + getCreateCaseFlyout: getCreateCaseFlyoutLazy, getAllCasesSelectorModal: getAllCasesSelectorModalLazy, }; } diff --git a/x-pack/plugins/cases/public/types.ts b/x-pack/plugins/cases/public/types.ts index 5b19bcfa8ac46..1e995db3caa31 100644 --- a/x-pack/plugins/cases/public/types.ts +++ b/x-pack/plugins/cases/public/types.ts @@ -19,12 +19,12 @@ import type { EmbeddableStart } from '../../../../src/plugins/embeddable/public' import type { SpacesPluginStart } from '../../spaces/public'; import type { Storage } from '../../../../src/plugins/kibana_utils/public'; -import { AllCasesProps } from './components/all_cases'; -import { CaseViewProps } from './components/case_view'; -import { ConfigureCasesProps } from './components/configure_cases'; -import { CreateCaseProps } from './components/create'; -import { RecentCasesProps } from './components/recent_cases'; -import { AllCasesSelectorModalProps } from './components/all_cases/selector_modal'; +import { + GetCasesProps, + GetAllCasesSelectorModalProps, + GetCreateCaseFlyoutProps, + GetRecentCasesProps, +} from './methods'; export interface SetupPlugins { security: SecurityPluginSetup; @@ -51,47 +51,31 @@ export type StartServices = CoreStart & security: SecurityPluginSetup; }; -export interface Owner { - owner: string[]; -} - export interface CasesUiStart { /** - * Get the all cases table - * @param props AllCasesProps - * @returns A react component that displays all cases + * Get cases + * @param props GetCasesProps + * @return {ReactElement<GetCasesProps>} */ - getAllCases: (props: AllCasesProps) => ReactElement<AllCasesProps>; + getCases: (props: GetCasesProps) => ReactElement<GetCasesProps>; /** - * use Modal hook for all cases selector - * @param props UseAllCasesSelectorModalProps + * Modal to select a case in a list of all owner cases + * @param props GetAllCasesSelectorModalProps * @returns A react component that is a modal for selecting a case */ getAllCasesSelectorModal: ( - props: AllCasesSelectorModalProps - ) => ReactElement<AllCasesSelectorModalProps>; - /** - * Get the case view component - * @param props CaseViewProps - * @returns A react component for viewing a specific case - */ - getCaseView: (props: CaseViewProps) => ReactElement<CaseViewProps>; - /** - * Get the configure case component - * @param props ConfigureCasesProps - * @returns A react component for configuring a specific case - */ - getConfigureCases: (props: ConfigureCasesProps) => ReactElement<ConfigureCasesProps>; + props: GetAllCasesSelectorModalProps + ) => ReactElement<GetAllCasesSelectorModalProps>; /** - * Get the create case form - * @param props CreateCaseProps - * @returns A react component for creating a new case + * Flyout with the form to create a case for the owner + * @param props GetCreateCaseFlyoutProps + * @returns A react component that is a flyout for creating a case */ - getCreateCase: (props: CreateCaseProps) => ReactElement<CreateCaseProps>; + getCreateCaseFlyout: (props: GetCreateCaseFlyoutProps) => ReactElement<GetCreateCaseFlyoutProps>; /** * Get the recent cases component - * @param props RecentCasesProps + * @param props GetRecentCasesProps * @returns A react component for showing recent cases */ - getRecentCases: (props: RecentCasesProps) => ReactElement<RecentCasesProps>; + getRecentCases: (props: GetRecentCasesProps) => ReactElement<GetRecentCasesProps>; } diff --git a/x-pack/plugins/observability/common/index.ts b/x-pack/plugins/observability/common/index.ts index 6b4ea62c16762..fcc3fdd64c36c 100644 --- a/x-pack/plugins/observability/common/index.ts +++ b/x-pack/plugins/observability/common/index.ts @@ -21,3 +21,6 @@ export const observabilityAppId = 'observability-overview'; // Used by feature and "solution" registration export const observabilityFeatureId = 'observability'; + +// Used by Cases to install routes +export const casesPath = '/cases'; diff --git a/x-pack/plugins/observability/public/application/index.tsx b/x-pack/plugins/observability/public/application/index.tsx index 69ee6fa19cf0f..ff1b630862e71 100644 --- a/x-pack/plugins/observability/public/application/index.tsx +++ b/x-pack/plugins/observability/public/application/index.tsx @@ -31,12 +31,12 @@ function App() { <Switch> {Object.keys(routes).map((key) => { const path = key as keyof typeof routes; - const route = routes[path]; + const { handler, exact } = routes[path]; const Wrapper = () => { const params = useRouteParams(path); - return route.handler(params); + return handler(params); }; - return <Route key={path} path={path} exact={true} component={Wrapper} />; + return <Route key={path} path={path} exact={exact} component={Wrapper} />; })} </Switch> </> diff --git a/x-pack/plugins/observability/public/components/app/cases/all_cases/index.tsx b/x-pack/plugins/observability/public/components/app/cases/all_cases/index.tsx deleted file mode 100644 index 4b57475343605..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/all_cases/index.tsx +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { observabilityAppId } from '../../../../../common'; - -import { - getCaseDetailsUrl, - getConfigureCasesUrl, - getCreateCaseUrl, - useFormatUrl, -} from '../../../../pages/cases/links'; -import { useKibana } from '../../../../utils/kibana_react'; -import { CASES_OWNER } from '../constants'; - -export interface AllCasesNavProps { - detailName: string; - search?: string; - subCaseId?: string; -} - -interface AllCasesProps { - userCanCrud: boolean; -} -export const AllCases = React.memo<AllCasesProps>(({ userCanCrud }) => { - const { - cases: casesUi, - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const { formatUrl } = useFormatUrl(); - - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - return casesUi.getAllCases({ - caseDetailsNavigation: { - href: ({ detailName, subCaseId }: AllCasesNavProps) => { - return formatUrl(getCaseDetailsUrl({ id: detailName, subCaseId })); - }, - onClick: async ({ detailName, subCaseId, search }: AllCasesNavProps) => - navigateToUrl(`${casesUrl}${getCaseDetailsUrl({ id: detailName, subCaseId })}`), - }, - configureCasesNavigation: { - href: formatUrl(getConfigureCasesUrl()), - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${getConfigureCasesUrl()}`); - }, - }, - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${getCreateCaseUrl()}`); - }, - }, - disableAlerts: true, - showTitle: true, - userCanCrud, - owner: [CASES_OWNER], - }); -}); - -AllCases.displayName = 'AllCases'; diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx deleted file mode 100644 index 6f48d429071ca..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; - -import { CallOut, CallOutProps } from './callout'; - -describe('Callout', () => { - const defaultProps: CallOutProps = { - id: 'md5-hex', - type: 'primary', - title: 'a tittle', - messages: [ - { - id: 'generic-error', - title: 'message-one', - description: <p>{'error'}</p>, - }, - ], - showCallOut: true, - handleDismissCallout: jest.fn(), - }; - - beforeEach(() => { - jest.clearAllMocks(); - }); - - it('renders the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="caseCallout-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="calloutMessages-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="calloutDismiss-md5-hex"]`).exists()).toBeTruthy(); - }); - - it('hides the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} showCallOut={false} />); - expect(wrapper.find(`[data-test-subj="caseCallout-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('does not show any messages when the list is empty', () => { - const wrapper = mount(<CallOut {...defaultProps} messages={[]} />); - expect(wrapper.find(`[data-test-subj="calloutMessages-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('transform the button color correctly - primary', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--primary')).toBeTruthy(); - }); - - it('transform the button color correctly - success', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'success'} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--success')).toBeTruthy(); - }); - - it('transform the button color correctly - warning', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'warning'} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--warning')).toBeTruthy(); - }); - - it('transform the button color correctly - danger', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'danger'} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--danger')).toBeTruthy(); - }); - - it('dismiss the callout correctly', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="calloutDismiss-md5-hex"]`).exists()).toBeTruthy(); - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).simulate('click'); - wrapper.update(); - - expect(defaultProps.handleDismissCallout).toHaveBeenCalledWith('md5-hex', 'primary'); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx deleted file mode 100644 index 25c9643a22af9..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx +++ /dev/null @@ -1,51 +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 { EuiCallOut, EuiButton, EuiDescriptionList } from '@elastic/eui'; -import { isEmpty } from 'lodash/fp'; -import React, { memo, useCallback } from 'react'; - -import { ErrorMessage } from './types'; -import * as i18n from './translations'; - -export interface CallOutProps { - id: string; - type: NonNullable<ErrorMessage['errorType']>; - title: string; - messages: ErrorMessage[]; - showCallOut: boolean; - handleDismissCallout: (id: string, type: NonNullable<ErrorMessage['errorType']>) => void; -} - -function CallOutComponent({ - id, - type, - title, - messages, - showCallOut, - handleDismissCallout, -}: CallOutProps) { - const handleCallOut = useCallback( - () => handleDismissCallout(id, type), - [handleDismissCallout, id, type] - ); - - return showCallOut && !isEmpty(messages) ? ( - <EuiCallOut title={title} color={type} iconType="gear" data-test-subj={`caseCallout-${id}`}> - <EuiDescriptionList data-test-subj={`calloutMessages-${id}`} listItems={messages} /> - <EuiButton - data-test-subj={`calloutDismiss-${id}`} - color={type === 'success' ? 'success' : type} - onClick={handleCallOut} - > - {i18n.DISMISS_CALLOUT} - </EuiButton> - </EuiCallOut> - ) : null; -} - -export const CallOut = memo(CallOutComponent); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/helpers.test.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/helpers.test.tsx deleted file mode 100644 index b5b92a3374874..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/helpers.test.tsx +++ /dev/null @@ -1,29 +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 md5 from 'md5'; -import { createCalloutId } from './helpers'; - -describe('createCalloutId', () => { - it('creates id correctly with one id', () => { - const digest = md5('one'); - const id = createCalloutId(['one']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids', () => { - const digest = md5('one|two|three'); - const id = createCalloutId(['one', 'two', 'three']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids and delimiter', () => { - const digest = md5('one,two,three'); - const id = createCalloutId(['one', 'two', 'three'], ','); - expect(id).toBe(digest); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/index.test.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/index.test.tsx deleted file mode 100644 index bb0284398f4b3..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/index.test.tsx +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; - -import { EuiThemeProvider } from '../../../../../../../../src/plugins/kibana_react/common'; -import { useMessagesStorage } from '../../../../hooks/use_messages_storage'; -import { createCalloutId } from './helpers'; -import { CaseCallOut, CaseCallOutProps } from '.'; -import { observabilityAppId } from '../../../../../common'; - -jest.mock('../../../../hooks/use_messages_storage'); -const useSecurityLocalStorageMock = useMessagesStorage as jest.Mock; -const securityLocalStorageMock = { - getMessages: jest.fn(() => []), - addMessage: jest.fn(), -}; - -describe('CaseCallOut ', () => { - beforeEach(() => { - jest.clearAllMocks(); - useSecurityLocalStorageMock.mockImplementation(() => securityLocalStorageMock); - }); - - it('renders a callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - { id: 'message-two', title: 'title', description: <p>{'for real'}</p> }, - ], - }; - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one', 'message-two']); - expect(wrapper.find(`[data-test-subj="calloutMessages-${id}"]`).last().exists()).toBeTruthy(); - }); - - it('groups the messages correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - { id: 'message-two', title: 'title two', description: <p>{'for real'}</p> }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const idDanger = createCalloutId(['message-one']); - const idPrimary = createCalloutId(['message-two']); - - expect( - wrapper.find(`[data-test-subj="caseCallout-${idPrimary}"]`).last().exists() - ).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="caseCallout-${idDanger}"]`).last().exists()).toBeTruthy(); - }); - - it('dismisses the callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - - expect(wrapper.find(`[data-test-subj="caseCallout-${id}"]`).last().exists()).toBeTruthy(); - wrapper.find(`[data-test-subj="calloutDismiss-${id}"]`).last().simulate('click'); - expect(wrapper.find(`[data-test-subj="caseCallout-${id}"]`).exists()).toBeFalsy(); - }); - - it('persist the callout of type primary when dismissed', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - expect(securityLocalStorageMock.getMessages).toHaveBeenCalledWith(observabilityAppId); - wrapper.find(`[data-test-subj="calloutDismiss-${id}"]`).last().simulate('click'); - expect(securityLocalStorageMock.addMessage).toHaveBeenCalledWith(observabilityAppId, id); - }); - - it('do not show the callout if is in the localStorage', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const id = createCalloutId(['message-one']); - - useSecurityLocalStorageMock.mockImplementation(() => ({ - ...securityLocalStorageMock, - getMessages: jest.fn(() => [id]), - })); - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - expect(wrapper.find(`[data-test-subj="caseCallout-${id}"]`).last().exists()).toBeFalsy(); - }); - - it('do not persist a callout of type danger', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="calloutDismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type warning', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'warning', - }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="calloutDismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type success', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'success', - }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="calloutDismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/index.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/index.tsx deleted file mode 100644 index 67c442d62262f..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/index.tsx +++ /dev/null @@ -1,104 +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 { EuiSpacer } from '@elastic/eui'; -import React, { memo, useCallback, useState, useMemo } from 'react'; - -import { CallOut } from './callout'; -import { ErrorMessage } from './types'; -import { createCalloutId } from './helpers'; -import { useMessagesStorage } from '../../../../hooks/use_messages_storage'; -import { observabilityAppId } from '../../../../../common'; - -export * from './helpers'; - -export interface CaseCallOutProps { - title: string; - messages?: ErrorMessage[]; -} - -type GroupByTypeMessages = { - [key in NonNullable<ErrorMessage['errorType']>]: { - messagesId: string[]; - messages: ErrorMessage[]; - }; -}; - -interface CalloutVisibility { - [index: string]: boolean; -} - -function CaseCallOutComponent({ title, messages = [] }: CaseCallOutProps) { - const { getMessages, addMessage } = useMessagesStorage(); - - const caseMessages = useMemo(() => getMessages(observabilityAppId), [getMessages]); - const dismissedCallouts = useMemo( - () => - caseMessages.reduce<CalloutVisibility>( - (acc: CalloutVisibility, id) => ({ - ...acc, - [id]: false, - }), - {} - ), - [caseMessages] - ); - - const [calloutVisibility, setCalloutVisibility] = useState(dismissedCallouts); - const handleCallOut = useCallback( - (id, type) => { - setCalloutVisibility((prevState) => ({ ...prevState, [id]: false })); - if (type === 'primary') { - addMessage(observabilityAppId, id); - } - }, - [setCalloutVisibility, addMessage] - ); - - const groupedByTypeErrorMessages = useMemo( - () => - messages.reduce<GroupByTypeMessages>( - (acc: GroupByTypeMessages, currentMessage: ErrorMessage) => { - const type = currentMessage.errorType == null ? 'primary' : currentMessage.errorType; - return { - ...acc, - [type]: { - messagesId: [...(acc[type]?.messagesId ?? []), currentMessage.id], - messages: [...(acc[type]?.messages ?? []), currentMessage], - }, - }; - }, - {} as GroupByTypeMessages - ), - [messages] - ); - - return ( - <> - {(Object.keys(groupedByTypeErrorMessages) as Array<keyof ErrorMessage['errorType']>).map( - (type: NonNullable<ErrorMessage['errorType']>) => { - const id = createCalloutId(groupedByTypeErrorMessages[type].messagesId); - return ( - <React.Fragment key={id}> - <CallOut - id={id} - type={type} - title={title} - messages={groupedByTypeErrorMessages[type].messages} - showCallOut={calloutVisibility[id] ?? true} - handleDismissCallout={handleCallOut} - /> - <EuiSpacer /> - </React.Fragment> - ); - } - )} - </> - ); -} - -export const CaseCallOut = memo(CaseCallOutComponent); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/translations.ts b/x-pack/plugins/observability/public/components/app/cases/callout/translations.ts deleted file mode 100644 index 20bb57daf5841..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/translations.ts +++ /dev/null @@ -1,15 +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 { i18n } from '@kbn/i18n'; - -export const DISMISS_CALLOUT = i18n.translate( - 'xpack.observability.cases.dismissErrorsPushServiceCallOutTitle', - { - defaultMessage: 'Dismiss', - } -); diff --git a/x-pack/plugins/observability/public/components/app/cases/case_view/index.tsx b/x-pack/plugins/observability/public/components/app/cases/case_view/index.tsx deleted file mode 100644 index 87c7aef88eef0..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/case_view/index.tsx +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback, useState, Suspense } from 'react'; -import { - casesBreadcrumbs, - getCaseDetailsUrl, - getCaseDetailsUrlWithCommentId, - getCaseUrl, - getConfigureCasesUrl, - useFormatUrl, -} from '../../../../pages/cases/links'; -import { Case } from '../../../../../../cases/common'; -import { useFetchAlertData, useFetchAlertDetail } from './helpers'; -import { useKibana } from '../../../../utils/kibana_react'; -import { usePluginContext } from '../../../../hooks/use_plugin_context'; -import { useBreadcrumbs } from '../../../../hooks/use_breadcrumbs'; -import { observabilityAppId } from '../../../../../common'; -import { LazyAlertsFlyout } from '../../../..'; - -interface Props { - caseId: string; - subCaseId?: string; - userCanCrud: boolean; -} - -export interface OnUpdateFields { - key: keyof Case; - value: Case[keyof Case]; - onSuccess?: () => void; - onError?: () => void; -} - -export interface CaseProps extends Props { - fetchCase: () => void; - caseData: Case; - updateCase: (newCase: Case) => void; -} - -export const CaseView = React.memo(({ caseId, subCaseId, userCanCrud }: Props) => { - const [caseTitle, setCaseTitle] = useState<string | null>(null); - const { observabilityRuleTypeRegistry } = usePluginContext(); - - const { - cases: casesUi, - application: { getUrlForApp, navigateToUrl, navigateToApp }, - } = useKibana().services; - const allCasesLink = getCaseUrl(); - const { formatUrl } = useFormatUrl(); - const href = formatUrl(allCasesLink); - const [selectedAlertId, setSelectedAlertId] = useState<string>(''); - - useBreadcrumbs([ - { ...casesBreadcrumbs.cases, href }, - ...(caseTitle !== null - ? [ - { - text: caseTitle, - }, - ] - : []), - ]); - - const onCaseDataSuccess = useCallback( - (data: Case) => { - if (caseTitle === null || caseTitle !== data.title) { - setCaseTitle(data.title); - } - }, - [caseTitle] - ); - - const configureCasesLink = getConfigureCasesUrl(); - const allCasesHref = href; - const configureCasesHref = formatUrl(configureCasesLink); - const caseDetailsHref = formatUrl(getCaseDetailsUrl({ id: caseId }), { absolute: true }); - const getCaseDetailHrefWithCommentId = useCallback( - (commentId: string) => - formatUrl(getCaseDetailsUrlWithCommentId({ id: caseId, commentId, subCaseId }), { - absolute: true, - }), - [caseId, formatUrl, subCaseId] - ); - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - - const handleFlyoutClose = useCallback(() => { - setSelectedAlertId(''); - }, []); - - const [alertLoading, alert] = useFetchAlertDetail(selectedAlertId); - - return ( - <> - {alertLoading === false && alert && selectedAlertId !== '' && ( - <Suspense fallback={null}> - <LazyAlertsFlyout - alert={alert} - observabilityRuleTypeRegistry={observabilityRuleTypeRegistry} - onClose={handleFlyoutClose} - /> - </Suspense> - )} - {casesUi.getCaseView({ - allCasesNavigation: { - href: allCasesHref, - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(casesUrl); - }, - }, - caseDetailsNavigation: { - href: caseDetailsHref, - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${getCaseDetailsUrl({ id: caseId })}`); - }, - }, - caseId, - configureCasesNavigation: { - href: configureCasesHref, - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${configureCasesLink}`); - }, - }, - ruleDetailsNavigation: { - href: (ruleId) => { - return getUrlForApp('management', { - path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, - }); - }, - onClick: async (ruleId, ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToApp('management', { - path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, - }); - }, - }, - getCaseDetailHrefWithCommentId, - onCaseDataSuccess, - subCaseId, - useFetchAlertData, - showAlertDetails: (alertId) => { - setSelectedAlertId(alertId); - }, - userCanCrud, - hideSyncAlerts: true, - })} - </> - ); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/create/flyout.test.tsx b/x-pack/plugins/observability/public/components/app/cases/create/flyout.test.tsx deleted file mode 100644 index 977263a9721ea..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/flyout.test.tsx +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; -import { EuiThemeProvider } from '../../../../../../../../src/plugins/kibana_react/common'; - -import { CreateCaseFlyout } from './flyout'; -import { render } from '@testing-library/react'; - -import { useKibana } from '../../../../utils/kibana_react'; -import { CASES_OWNER } from '../constants'; - -jest.mock('../../../../utils/kibana_react'); - -const onCloseFlyout = jest.fn(); -const onSuccess = jest.fn(); -const defaultProps = { - onCloseFlyout, - onSuccess, -}; - -describe('CreateCaseFlyout', () => { - const mockCreateCase = jest.fn(); - - beforeEach(() => { - jest.resetAllMocks(); - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: mockCreateCase, - }, - }, - }); - }); - - it('renders', () => { - const wrapper = mount( - <EuiThemeProvider> - <CreateCaseFlyout {...defaultProps} /> - </EuiThemeProvider> - ); - - expect(wrapper.find(`[data-test-subj='createCaseFlyout']`).exists()).toBeTruthy(); - }); - - it('Closing modal calls onCloseCaseModal', () => { - const wrapper = mount( - <EuiThemeProvider> - <CreateCaseFlyout {...defaultProps} /> - </EuiThemeProvider> - ); - - wrapper.find(`[data-test-subj='euiFlyoutCloseButton']`).first().simulate('click'); - expect(onCloseFlyout).toBeCalled(); - }); - - it('does not show the sync alerts toggle', () => { - render( - <EuiThemeProvider> - <CreateCaseFlyout {...defaultProps} /> - </EuiThemeProvider> - ); - - expect(mockCreateCase).toBeCalledTimes(1); - expect(mockCreateCase).toBeCalledWith({ - onCancel: onCloseFlyout, - onSuccess, - afterCaseCreated: undefined, - withSteps: false, - owner: [CASES_OWNER], - disableAlerts: true, - }); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/create/flyout.tsx b/x-pack/plugins/observability/public/components/app/cases/create/flyout.tsx deleted file mode 100644 index e8147ef7098ad..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/flyout.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { memo } from 'react'; -import styled from 'styled-components'; -import { EuiFlyout, EuiFlyoutHeader, EuiTitle, EuiFlyoutBody } from '@elastic/eui'; - -import * as i18n from '../translations'; -import { Case } from '../../../../../../cases/common'; -import { CASES_OWNER } from '../constants'; -import { useKibana } from '../../../../utils/kibana_react'; - -export interface CreateCaseModalProps { - afterCaseCreated?: (theCase: Case) => Promise<void>; - onCloseFlyout: () => void; - onSuccess: (theCase: Case) => Promise<void>; -} - -const StyledFlyout = styled(EuiFlyout)` - ${({ theme }) => ` - z-index: ${theme.eui.euiZModal}; - `} -`; -// Adding bottom padding because timeline's -// bottom bar gonna hide the submit button. -// might not need for obs, test this when implementing this component -const StyledEuiFlyoutBody = styled(EuiFlyoutBody)` - ${({ theme }) => ` - && .euiFlyoutBody__overflow { - overflow-y: auto; - overflow-x: hidden; - } - - && .euiFlyoutBody__overflowContent { - display: block; - padding: ${theme.eui.paddingSizes.l} ${theme.eui.paddingSizes.l} 70px; - height: auto; - } - `} -`; - -const FormWrapper = styled.div` - width: 100%; -`; - -function CreateCaseFlyoutComponent({ - afterCaseCreated, - onCloseFlyout, - onSuccess, -}: CreateCaseModalProps) { - const { cases } = useKibana().services; - return ( - <StyledFlyout onClose={onCloseFlyout} data-test-subj="createCaseFlyout"> - <EuiFlyoutHeader hasBorder> - <EuiTitle size="m"> - <h2>{i18n.CREATE_TITLE}</h2> - </EuiTitle> - </EuiFlyoutHeader> - <StyledEuiFlyoutBody> - <FormWrapper> - {cases.getCreateCase({ - afterCaseCreated, - onCancel: onCloseFlyout, - onSuccess, - withSteps: false, - owner: [CASES_OWNER], - disableAlerts: true, - })} - </FormWrapper> - </StyledEuiFlyoutBody> - </StyledFlyout> - ); -} -// not yet used -// committing for use with alerting #RAC -export const CreateCaseFlyout = memo(CreateCaseFlyoutComponent); - -CreateCaseFlyout.displayName = 'CreateCaseFlyout'; diff --git a/x-pack/plugins/observability/public/components/app/cases/create/index.test.tsx b/x-pack/plugins/observability/public/components/app/cases/create/index.test.tsx deleted file mode 100644 index 4f68f8f4a00c0..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/index.test.tsx +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; -import { waitFor } from '@testing-library/react'; -import { EuiThemeProvider } from '../../../../../../../../src/plugins/kibana_react/common'; -import { Create } from '.'; -import { useKibana } from '../../../../utils/kibana_react'; -import { basicCase } from '../../../../../../cases/public/containers/mock'; -import { CASES_OWNER } from '../constants'; -import { Case } from '../../../../../../cases/common'; -import { getCaseDetailsUrl } from '../../../../pages/cases/links'; - -jest.mock('../../../../utils/kibana_react'); - -describe('Create case', () => { - const mockCreateCase = jest.fn(); - const mockNavigateToUrl = jest.fn(); - const mockObservabilityUrl = 'https://elastic.co/app/observability'; - beforeEach(() => { - jest.resetAllMocks(); - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: mockCreateCase, - }, - application: { navigateToUrl: mockNavigateToUrl, getUrlForApp: () => mockObservabilityUrl }, - }, - }); - }); - - it('it renders', () => { - mount( - <EuiThemeProvider> - <Create /> - </EuiThemeProvider> - ); - - expect(mockCreateCase).toHaveBeenCalled(); - expect(mockCreateCase.mock.calls[0][0].owner).toEqual([CASES_OWNER]); - }); - - it('should redirect to all cases on cancel click', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onCancel }: { onCancel: () => Promise<void> }) => { - onCancel(); - }, - }, - application: { navigateToUrl: mockNavigateToUrl, getUrlForApp: () => mockObservabilityUrl }, - }, - }); - mount( - <EuiThemeProvider> - <Create /> - </EuiThemeProvider> - ); - - await waitFor(() => - expect(mockNavigateToUrl).toHaveBeenCalledWith(`${mockObservabilityUrl}/cases`) - ); - }); - - it('should redirect to new case when posting the case', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onSuccess }: { onSuccess: (theCase: Case) => Promise<void> }) => { - onSuccess(basicCase); - }, - }, - application: { navigateToUrl: mockNavigateToUrl, getUrlForApp: () => mockObservabilityUrl }, - }, - }); - mount( - <EuiThemeProvider> - <Create /> - </EuiThemeProvider> - ); - - await waitFor(() => - expect(mockNavigateToUrl).toHaveBeenNthCalledWith( - 1, - `${mockObservabilityUrl}/cases${getCaseDetailsUrl({ id: basicCase.id })}` - ) - ); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/create/index.tsx b/x-pack/plugins/observability/public/components/app/cases/create/index.tsx deleted file mode 100644 index 153797df7cd83..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/index.tsx +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback } from 'react'; - -import { useKibana } from '../../../../utils/kibana_react'; -import { getCaseDetailsUrl } from '../../../../pages/cases/links'; -import { CASES_OWNER } from '../constants'; -import { observabilityAppId } from '../../../../../common'; - -export const Create = React.memo(() => { - const { - cases, - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const onSuccess = useCallback( - async ({ id }) => navigateToUrl(`${casesUrl}${getCaseDetailsUrl({ id })}`), - [casesUrl, navigateToUrl] - ); - - const handleSetIsCancel = useCallback( - () => navigateToUrl(`${casesUrl}`), - [casesUrl, navigateToUrl] - ); - - return cases.getCreateCase({ - disableAlerts: true, - onCancel: handleSetIsCancel, - onSuccess, - owner: [CASES_OWNER], - }); -}); - -Create.displayName = 'Create'; diff --git a/x-pack/plugins/observability/public/components/app/cases/translations.ts b/x-pack/plugins/observability/public/components/app/cases/translations.ts deleted file mode 100644 index af016be0182a3..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/translations.ts +++ /dev/null @@ -1,213 +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 { i18n } from '@kbn/i18n'; - -export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( - 'xpack.observability.cases.caseFeatureNoPermissionsTitle', - { - defaultMessage: 'Kibana feature privileges required', - } -); - -export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( - 'xpack.observability.cases.caseFeatureNoPermissionsMessage', - { - defaultMessage: - 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', - } -); -export const BACK_TO_ALL = i18n.translate('xpack.observability.cases.caseView.backLabel', { - defaultMessage: 'Back to cases', -}); - -export const CANCEL = i18n.translate('xpack.observability.cases.caseView.cancel', { - defaultMessage: 'Cancel', -}); - -export const DELETE_CASE = i18n.translate( - 'xpack.observability.cases.confirmDeleteCase.deleteCase', - { - defaultMessage: 'Delete case', - } -); - -export const DELETE_CASES = i18n.translate( - 'xpack.observability.cases.confirmDeleteCase.deleteCases', - { - defaultMessage: 'Delete cases', - } -); - -export const NAME = i18n.translate('xpack.observability.cases.caseView.name', { - defaultMessage: 'Name', -}); - -export const REPORTER = i18n.translate('xpack.observability.cases.caseView.reporterLabel', { - defaultMessage: 'Reporter', -}); - -export const PARTICIPANTS = i18n.translate('xpack.observability.cases.caseView.particpantsLabel', { - defaultMessage: 'Participants', -}); - -export const CREATE_TITLE = i18n.translate('xpack.observability.cases.caseView.create', { - defaultMessage: 'Create new case', -}); - -export const DESCRIPTION = i18n.translate('xpack.observability.cases.caseView.description', { - defaultMessage: 'Description', -}); - -export const DESCRIPTION_REQUIRED = i18n.translate( - 'xpack.observability.cases.createCase.descriptionFieldRequiredError', - { - defaultMessage: 'A description is required.', - } -); - -export const COMMENT_REQUIRED = i18n.translate( - 'xpack.observability.cases.caseView.commentFieldRequiredError', - { - defaultMessage: 'A comment is required.', - } -); - -export const REQUIRED_FIELD = i18n.translate( - 'xpack.observability.cases.caseView.fieldRequiredError', - { - defaultMessage: 'Required field', - } -); - -export const EDIT = i18n.translate('xpack.observability.cases.caseView.edit', { - defaultMessage: 'Edit', -}); - -export const OPTIONAL = i18n.translate('xpack.observability.cases.caseView.optional', { - defaultMessage: 'Optional', -}); - -export const CREATE_CASE = i18n.translate('xpack.observability.cases.caseView.createCase', { - defaultMessage: 'Create case', -}); - -export const CLOSE_CASE = i18n.translate('xpack.observability.cases.caseView.closeCase', { - defaultMessage: 'Close case', -}); - -export const REOPEN_CASE = i18n.translate('xpack.observability.cases.caseView.reopenCase', { - defaultMessage: 'Reopen case', -}); - -export const CASE_NAME = i18n.translate('xpack.observability.cases.caseView.caseName', { - defaultMessage: 'Case name', -}); - -export const TO = i18n.translate('xpack.observability.cases.caseView.to', { - defaultMessage: 'to', -}); - -export const TAGS = i18n.translate('xpack.observability.cases.caseView.tags', { - defaultMessage: 'Tags', -}); - -export const ACTIONS = i18n.translate('xpack.observability.cases.allCases.actions', { - defaultMessage: 'Actions', -}); - -export const NO_TAGS_AVAILABLE = i18n.translate( - 'xpack.observability.cases.allCases.noTagsAvailable', - { - defaultMessage: 'No tags available', - } -); - -export const NO_REPORTERS_AVAILABLE = i18n.translate( - 'xpack.observability.cases.caseView.noReportersAvailable', - { - defaultMessage: 'No reporters available.', - } -); - -export const COMMENTS = i18n.translate('xpack.observability.cases.allCases.comments', { - defaultMessage: 'Comments', -}); - -export const TAGS_HELP = i18n.translate('xpack.observability.cases.createCase.fieldTagsHelpText', { - defaultMessage: - 'Type one or more custom identifying tags for this case. Press enter after each tag to begin a new one.', -}); - -export const NO_TAGS = i18n.translate('xpack.observability.cases.caseView.noTags', { - defaultMessage: 'No tags are currently assigned to this case.', -}); - -export const TITLE_REQUIRED = i18n.translate( - 'xpack.observability.cases.createCase.titleFieldRequiredError', - { - defaultMessage: 'A title is required.', - } -); - -export const CONFIGURE_CASES_PAGE_TITLE = i18n.translate( - 'xpack.observability.cases.configureCases.headerTitle', - { - defaultMessage: 'Configure cases', - } -); - -export const CONFIGURE_CASES_BUTTON = i18n.translate( - 'xpack.observability.cases.configureCasesButton', - { - defaultMessage: 'Edit external connection', - } -); - -export const ADD_COMMENT = i18n.translate('xpack.observability.cases.caseView.comment.addComment', { - defaultMessage: 'Add comment', -}); - -export const ADD_COMMENT_HELP_TEXT = i18n.translate( - 'xpack.observability.cases.caseView.comment.addCommentHelpText', - { - defaultMessage: 'Add a new comment...', - } -); - -export const SAVE = i18n.translate('xpack.observability.cases.caseView.description.save', { - defaultMessage: 'Save', -}); - -export const GO_TO_DOCUMENTATION = i18n.translate( - 'xpack.observability.cases.caseView.goToDocumentationButton', - { - defaultMessage: 'View documentation', - } -); - -export const CONNECTORS = i18n.translate('xpack.observability.cases.caseView.connectors', { - defaultMessage: 'External Incident Management System', -}); - -export const EDIT_CONNECTOR = i18n.translate('xpack.observability.cases.caseView.editConnector', { - defaultMessage: 'Change external incident management system', -}); - -export const READ_ONLY_BADGE_TEXT = i18n.translate( - 'xpack.observability.cases.badge.readOnly.text', - { - defaultMessage: 'Read only', - } -); - -export const READ_ONLY_BADGE_TOOLTIP = i18n.translate( - 'xpack.observability.cases.badge.readOnly.tooltip', - { - defaultMessage: 'Unable to create or edit cases', - } -); diff --git a/x-pack/plugins/observability/public/components/app/cases/wrappers/index.tsx b/x-pack/plugins/observability/public/components/app/cases/wrappers/index.tsx deleted file mode 100644 index 477fb77d98ee8..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/wrappers/index.tsx +++ /dev/null @@ -1,21 +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 styled from 'styled-components'; - -export const WhitePageWrapper = styled.div` - background-color: ${({ theme }) => theme.eui.euiColorEmptyShade}; - border-top: ${({ theme }) => theme.eui.euiBorderThin}; - flex: 1 1 auto; -`; - -export const SectionWrapper = styled.div` - box-sizing: content-box; - margin: 0 auto; - max-width: 1175px; - width: 100%; -`; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx index e4c9e25f6b29f..c825d0af6e47f 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx @@ -74,7 +74,6 @@ describe('AddToCaseAction', function () { expect(core?.cases?.getAllCasesSelectorModal).toHaveBeenCalledTimes(1); expect(core?.cases?.getAllCasesSelectorModal).toHaveBeenCalledWith( expect.objectContaining({ - createCaseNavigation: expect.objectContaining({ href: '/app/observability/cases/create' }), owner: ['observability'], userCanCrud: true, }) diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx index 1d230c765edae..440e2d36e2c83 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx @@ -10,11 +10,14 @@ import { i18n } from '@kbn/i18n'; import React, { useCallback } from 'react'; import { toMountPoint, useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; import { ObservabilityAppServices } from '../../../../application/types'; -import { AllCasesSelectorModalProps } from '../../../../../../cases/public'; +import { + CasesDeepLinkId, + generateCaseViewPath, + GetAllCasesSelectorModalProps, +} from '../../../../../../cases/public'; import { TypedLensByValueInput } from '../../../../../../lens/public'; import { useAddToCase } from '../hooks/use_add_to_case'; -import { Case, SubCase } from '../../../../../../cases/common'; -import { observabilityFeatureId } from '../../../../../common'; +import { observabilityFeatureId, observabilityAppId } from '../../../../../common'; import { parseRelativeDate } from '../components/date_range_picker'; export interface AddToCaseProps { @@ -25,28 +28,34 @@ export interface AddToCaseProps { export function AddToCaseAction({ lensAttributes, timeRange }: AddToCaseProps) { const kServices = useKibana<ObservabilityAppServices>().services; - const { cases, http } = kServices; + const { + cases, + application: { getUrlForApp }, + } = kServices; const getToastText = useCallback( - (theCase) => toMountPoint(<CaseToastText theCase={theCase} basePath={http.basePath.get()} />), - [http.basePath] + (theCase) => + toMountPoint( + <CaseToastText + linkUrl={getUrlForApp(observabilityAppId, { + deepLinkId: CasesDeepLinkId.cases, + path: generateCaseViewPath({ detailName: theCase.id }), + })} + /> + ), + [getUrlForApp] ); const absoluteFromDate = parseRelativeDate(timeRange.from); const absoluteToDate = parseRelativeDate(timeRange.to, { roundUp: true }); - const { createCaseUrl, goToCreateCase, onCaseClicked, isCasesOpen, setIsCasesOpen, isSaving } = - useAddToCase({ - lensAttributes, - getToastText, - timeRange: { from: absoluteFromDate.toISOString(), to: absoluteToDate.toISOString() }, - }); + const { onCaseClicked, isCasesOpen, setIsCasesOpen, isSaving } = useAddToCase({ + lensAttributes, + getToastText, + timeRange: { from: absoluteFromDate.toISOString(), to: absoluteToDate.toISOString() }, + }); - const getAllCasesSelectorModalProps: AllCasesSelectorModalProps = { - createCaseNavigation: { - href: createCaseUrl, - onClick: goToCreateCase, - }, + const getAllCasesSelectorModalProps: GetAllCasesSelectorModalProps = { onRowClick: onCaseClicked, userCanCrud: true, owner: [observabilityFeatureId], @@ -79,11 +88,11 @@ export function AddToCaseAction({ lensAttributes, timeRange }: AddToCaseProps) { ); } -function CaseToastText({ theCase, basePath }: { theCase: Case | SubCase; basePath: string }) { +export function CaseToastText({ linkUrl }: { linkUrl: string }) { return ( <EuiFlexGroup justifyContent="center"> <EuiFlexItem> - <EuiLink href={`${basePath}/app/observability/cases/${theCase.id}`} target="_blank"> + <EuiLink href={linkUrl} target="_blank"> {i18n.translate('xpack.observability.expView.heading.addToCase.notification.viewCase', { defaultMessage: 'View case', })} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx index 272f69ece2fa1..6e94170343a77 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx @@ -10,6 +10,7 @@ import React, { useEffect } from 'react'; import { render } from '../rtl_helpers'; import { EuiButton } from '@elastic/eui'; import { fireEvent } from '@testing-library/dom'; +import { act } from '@testing-library/react'; describe('useAddToCase', function () { function setupTestComponent() { @@ -28,7 +29,7 @@ describe('useAddToCase', function () { return ( <span> - <EuiButton onClick={result.goToCreateCase}>Add new case</EuiButton> + <EuiButton onClick={() => result.onCaseClicked()}>Add new case</EuiButton> <EuiButton onClick={() => result.onCaseClicked({ id: 'test' } as any)}> On case click </EuiButton> @@ -44,21 +45,25 @@ describe('useAddToCase', function () { const { setData, core, findByText } = setupTestComponent(); expect(setData).toHaveBeenLastCalledWith({ - createCaseUrl: '/app/observability/cases/create', - goToCreateCase: expect.any(Function), isCasesOpen: false, isSaving: false, onCaseClicked: expect.any(Function), setIsCasesOpen: expect.any(Function), }); - fireEvent.click(await findByText('Add new case')); + + await act(async () => { + fireEvent.click(await findByText('Add new case')); + }); expect(core.application?.navigateToApp).toHaveBeenCalledTimes(1); expect(core.application?.navigateToApp).toHaveBeenCalledWith('observability', { - path: '/cases/create', + deepLinkId: 'cases_create', + openInNewTab: true, }); - fireEvent.click(await findByText('On case click')); + await act(async () => { + fireEvent.click(await findByText('On case click')); + }); expect(core.http?.post).toHaveBeenCalledTimes(1); expect(core.http?.post).toHaveBeenCalledWith('/api/cases/test/comments', { diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts index d1e15aa916eed..1f6620e632eff 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts @@ -5,8 +5,7 @@ * 2.0. */ -import { useCallback, useMemo, useState } from 'react'; -import { isEmpty } from 'lodash'; +import { useCallback, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { HttpSetup, MountPoint } from 'kibana/public'; import { useKibana } from '../../../../utils/kibana_react'; @@ -14,12 +13,7 @@ import { Case, SubCase } from '../../../../../../cases/common'; import { TypedLensByValueInput } from '../../../../../../lens/public'; import { AddToCaseProps } from '../header/add_to_case_action'; import { observabilityFeatureId } from '../../../../../common'; - -const appendSearch = (search?: string) => - isEmpty(search) ? '' : `${search?.startsWith('?') ? search : `?${search}`}`; - -const getCreateCaseUrl = (search?: string | null) => - `/cases/create${appendSearch(search ?? undefined)}`; +import { CasesDeepLinkId } from '../../../../../../cases/public'; async function addToCase( http: HttpSetup, @@ -53,25 +47,10 @@ export const useAddToCase = ({ const { http, - application: { navigateToApp, getUrlForApp }, + application: { navigateToApp }, notifications: { toasts }, } = useKibana().services; - const createCaseUrl = useMemo( - () => getUrlForApp(observabilityFeatureId) + getCreateCaseUrl(), - [getUrlForApp] - ); - - const goToCreateCase = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(observabilityFeatureId, { - path: getCreateCaseUrl(), - }); - }, - [navigateToApp] - ); - const onCaseClicked = useCallback( (theCase?: Case | SubCase) => { if (theCase && lensAttributes) { @@ -109,7 +88,7 @@ export const useAddToCase = ({ ); } else { navigateToApp(observabilityFeatureId, { - path: getCreateCaseUrl(), + deepLinkId: CasesDeepLinkId.casesCreate, openInNewTab: true, }); } @@ -118,8 +97,6 @@ export const useAddToCase = ({ ); return { - createCaseUrl, - goToCreateCase, onCaseClicked, isSaving, isCasesOpen, diff --git a/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx b/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx index a9567ba430aff..b862924fbcd25 100644 --- a/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx @@ -51,7 +51,7 @@ import type { } from '../../../../timelines/common'; import { getRenderCellValue } from './render_cell_value'; -import { observabilityFeatureId } from '../../../common'; +import { observabilityAppId, observabilityFeatureId } from '../../../common'; import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; import { usePluginContext } from '../../hooks/use_plugin_context'; import { getDefaultCellActions } from './default_cell_actions'; @@ -383,7 +383,7 @@ export function AlertsTableTGrid(props: AlertsTableTGridProps) { const type: TGridType = 'standalone'; const sortDirection: SortDirection = 'desc'; return { - appId: observabilityFeatureId, + appId: observabilityAppId, casesOwner: observabilityFeatureId, casePermissions, type, diff --git a/x-pack/plugins/observability/public/pages/cases/case_details.tsx b/x-pack/plugins/observability/public/pages/cases/case_details.tsx deleted file mode 100644 index 0591fb514013e..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/case_details.tsx +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useEffect } from 'react'; -import { useParams } from 'react-router-dom'; - -import { CaseView } from '../../components/app/cases/case_view'; -import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; -import { useKibana } from '../../utils/kibana_react'; -import { useReadonlyHeader } from '../../hooks/use_readonly_header'; -import { usePluginContext } from '../../hooks/use_plugin_context'; -import { observabilityAppId } from '../../../common'; - -export const CaseDetailsPage = React.memo(() => { - const { - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const { ObservabilityPageTemplate } = usePluginContext(); - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const userPermissions = useGetUserCasesPermissions(); - const { detailName: caseId, subCaseId } = useParams<{ - detailName?: string; - subCaseId?: string; - }>(); - useReadonlyHeader(); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToUrl(casesUrl); - } - }, [casesUrl, navigateToUrl, userPermissions]); - - return caseId != null ? ( - <ObservabilityPageTemplate> - <CaseView - caseId={caseId} - subCaseId={subCaseId} - userCanCrud={userPermissions?.crud ?? false} - /> - </ObservabilityPageTemplate> - ) : null; -}); - -CaseDetailsPage.displayName = 'CaseDetailsPage'; diff --git a/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx b/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx index 41fa2744397c7..243234066b7a1 100644 --- a/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx +++ b/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx @@ -14,11 +14,11 @@ import { } from '../../../../../../src/plugins/kibana_react/public'; import { casesFeatureId } from '../../../common'; import { PluginContext, PluginContextValue } from '../../context/plugin_context'; -import { AllCasesPage } from './all_cases'; +import { CasesPage } from './'; export default { title: 'app/Cases', - component: AllCasesPage, + component: CasesPage, decorators: [ (Story: ComponentType) => { const KibanaReactContext = createKibanaReactContext({ @@ -53,5 +53,5 @@ export default { }; export function EmptyState() { - return <AllCasesPage />; + return <CasesPage />; } diff --git a/x-pack/plugins/observability/public/pages/cases/cases.tsx b/x-pack/plugins/observability/public/pages/cases/cases.tsx new file mode 100644 index 0000000000000..d947f9aa86489 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/cases/cases.tsx @@ -0,0 +1,74 @@ +/* + * Copyright 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, { Suspense, useCallback, useState } from 'react'; + +import { useKibana } from '../../utils/kibana_react'; +import { useFetchAlertData, useFetchAlertDetail } from './helpers'; +import { CASES_OWNER, CASES_PATH } from './constants'; +import { usePluginContext } from '../../hooks/use_plugin_context'; +import { LazyAlertsFlyout } from '../..'; + +interface CasesProps { + userCanCrud: boolean; +} +export const Cases = React.memo<CasesProps>(({ userCanCrud }) => { + const { + cases: casesUi, + application: { getUrlForApp, navigateToApp }, + } = useKibana().services; + const { observabilityRuleTypeRegistry } = usePluginContext(); + const [selectedAlertId, setSelectedAlertId] = useState<string>(''); + + const handleFlyoutClose = useCallback(() => { + setSelectedAlertId(''); + }, []); + + const [alertLoading, alert] = useFetchAlertDetail(selectedAlertId); + + return ( + <> + {alertLoading === false && alert && selectedAlertId !== '' && ( + <Suspense fallback={null}> + <LazyAlertsFlyout + alert={alert} + observabilityRuleTypeRegistry={observabilityRuleTypeRegistry} + onClose={handleFlyoutClose} + /> + </Suspense> + )} + {casesUi.getCases({ + basePath: CASES_PATH, + disableAlerts: true, + userCanCrud, + owner: [CASES_OWNER], + useFetchAlertData, + showAlertDetails: (alertId: string) => { + setSelectedAlertId(alertId); + }, + ruleDetailsNavigation: { + href: (ruleId) => { + return getUrlForApp('management', { + path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, + }); + }, + onClick: async (ruleId, ev) => { + if (ev != null) { + ev.preventDefault(); + } + return navigateToApp('management', { + path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, + }); + }, + }, + hideSyncAlerts: true, + })} + </> + ); +}); + +Cases.displayName = 'Cases'; diff --git a/x-pack/plugins/observability/public/pages/cases/configure_cases.tsx b/x-pack/plugins/observability/public/pages/cases/configure_cases.tsx deleted file mode 100644 index 86b16d332bb46..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/configure_cases.tsx +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback, useEffect } from 'react'; -import styled from 'styled-components'; - -import { EuiButtonEmpty } from '@elastic/eui'; -import * as i18n from '../../components/app/cases/translations'; -import { CASES_OWNER } from '../../components/app/cases/constants'; -import { useKibana } from '../../utils/kibana_react'; -import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; -import { usePluginContext } from '../../hooks/use_plugin_context'; -import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; -import { casesBreadcrumbs, getCaseUrl, useFormatUrl } from './links'; -import { observabilityAppId } from '../../../common'; - -const ButtonEmpty = styled(EuiButtonEmpty)` - display: block; -`; -function ConfigureCasesPageComponent() { - const { - cases, - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const userPermissions = useGetUserCasesPermissions(); - const { ObservabilityPageTemplate } = usePluginContext(); - const onClickGoToCases = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToUrl(casesUrl); - }, - [casesUrl, navigateToUrl] - ); - const { formatUrl } = useFormatUrl(); - const href = formatUrl(getCaseUrl()); - useBreadcrumbs([{ ...casesBreadcrumbs.cases, href }, casesBreadcrumbs.configure]); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToUrl(casesUrl); - } - }, [casesUrl, userPermissions, navigateToUrl]); - - return ( - <ObservabilityPageTemplate - pageHeader={{ - pageTitle: ( - <> - <ButtonEmpty - onClick={onClickGoToCases} - iconType="arrowLeft" - iconSide="left" - flush="left" - > - {i18n.BACK_TO_ALL} - </ButtonEmpty> - {i18n.CONFIGURE_CASES_PAGE_TITLE} - </> - ), - }} - > - {cases.getConfigureCases({ - userCanCrud: userPermissions?.crud ?? false, - owner: [CASES_OWNER], - })} - </ObservabilityPageTemplate> - ); -} - -export const ConfigureCasesPage = React.memo(ConfigureCasesPageComponent); diff --git a/x-pack/plugins/observability/public/components/app/cases/constants.ts b/x-pack/plugins/observability/public/pages/cases/constants.ts similarity index 74% rename from x-pack/plugins/observability/public/components/app/cases/constants.ts rename to x-pack/plugins/observability/public/pages/cases/constants.ts index 7ad0d7ebe14dd..ce1e601690e62 100644 --- a/x-pack/plugins/observability/public/components/app/cases/constants.ts +++ b/x-pack/plugins/observability/public/pages/cases/constants.ts @@ -5,6 +5,7 @@ * 2.0. */ -import { observabilityFeatureId } from '../../../../common'; +import { observabilityFeatureId, casesPath } from '../../../common'; export const CASES_OWNER = observabilityFeatureId; +export const CASES_PATH = casesPath; diff --git a/x-pack/plugins/observability/public/pages/cases/create_case.tsx b/x-pack/plugins/observability/public/pages/cases/create_case.tsx deleted file mode 100644 index 2d69d74edb0e3..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/create_case.tsx +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback, useEffect } from 'react'; -import { EuiButtonEmpty } from '@elastic/eui'; -import styled from 'styled-components'; -import * as i18n from '../../components/app/cases/translations'; -import { Create } from '../../components/app/cases/create'; -import { useKibana } from '../../utils/kibana_react'; -import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; -import { usePluginContext } from '../../hooks/use_plugin_context'; -import { casesBreadcrumbs, getCaseUrl, useFormatUrl } from './links'; -import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; -import { observabilityAppId } from '../../../common'; - -const ButtonEmpty = styled(EuiButtonEmpty)` - display: block; -`; -ButtonEmpty.displayName = 'ButtonEmpty'; -export const CreateCasePage = React.memo(() => { - const userPermissions = useGetUserCasesPermissions(); - const { ObservabilityPageTemplate } = usePluginContext(); - const { - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const goTo = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToUrl(casesUrl); - }, - [casesUrl, navigateToUrl] - ); - - const { formatUrl } = useFormatUrl(); - const href = formatUrl(getCaseUrl()); - useBreadcrumbs([{ ...casesBreadcrumbs.cases, href }, casesBreadcrumbs.create]); - - useEffect(() => { - if (userPermissions != null && !userPermissions.crud) { - navigateToUrl(casesUrl); - } - }, [casesUrl, navigateToUrl, userPermissions]); - - return ( - <ObservabilityPageTemplate - pageHeader={{ - pageTitle: ( - <> - <ButtonEmpty onClick={goTo} iconType="arrowLeft" iconSide="left" flush="left"> - {i18n.BACK_TO_ALL} - </ButtonEmpty> - {i18n.CREATE_TITLE} - </> - ), - }} - > - <Create /> - </ObservabilityPageTemplate> - ); -}); - -CreateCasePage.displayName = 'CreateCasePage'; diff --git a/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx b/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx index 2d8631a94e04c..1fb9403fb5ef3 100644 --- a/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx +++ b/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx @@ -8,7 +8,7 @@ import React, { useMemo } from 'react'; import { EmptyPage } from './empty_page'; -import * as i18n from '../../components/app/cases/translations'; +import * as i18n from './translations'; import { useKibana } from '../../utils/kibana_react'; export const CaseFeatureNoPermissions = React.memo(() => { diff --git a/x-pack/plugins/observability/public/components/app/cases/case_view/helpers.ts b/x-pack/plugins/observability/public/pages/cases/helpers.ts similarity index 84% rename from x-pack/plugins/observability/public/components/app/cases/case_view/helpers.ts rename to x-pack/plugins/observability/public/pages/cases/helpers.ts index 56e5610e1b117..91f45c711d6a6 100644 --- a/x-pack/plugins/observability/public/components/app/cases/case_view/helpers.ts +++ b/x-pack/plugins/observability/public/pages/cases/helpers.ts @@ -7,11 +7,11 @@ import { useEffect, useState } from 'react'; import { isEmpty } from 'lodash'; -import { usePluginContext } from '../../../../hooks/use_plugin_context'; -import { parseAlert } from '../../../../pages/alerts/parse_alert'; -import { TopAlert } from '../../../../pages/alerts/'; -import { useKibana } from '../../../../utils/kibana_react'; -import { Ecs } from '../../../../../../cases/common'; +import { usePluginContext } from '../../hooks/use_plugin_context'; +import { parseAlert } from '../../pages/alerts/parse_alert'; +import { TopAlert } from '../../pages/alerts/'; +import { useKibana } from '../../utils/kibana_react'; +import { Ecs } from '../../../../cases/common'; // no alerts in observability so far // dummy hook for now as hooks cannot be called conditionally diff --git a/x-pack/plugins/observability/public/pages/cases/all_cases.tsx b/x-pack/plugins/observability/public/pages/cases/index.tsx similarity index 78% rename from x-pack/plugins/observability/public/pages/cases/all_cases.tsx rename to x-pack/plugins/observability/public/pages/cases/index.tsx index 76c54a470ff83..c54f0f99d1d73 100644 --- a/x-pack/plugins/observability/public/pages/cases/all_cases.tsx +++ b/x-pack/plugins/observability/public/pages/cases/index.tsx @@ -7,23 +7,18 @@ import React from 'react'; -import { AllCases } from '../../components/app/cases/all_cases'; +import { Cases } from './cases'; import { CaseFeatureNoPermissions } from './feature_no_permissions'; import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; import { usePluginContext } from '../../hooks/use_plugin_context'; -import { useReadonlyHeader } from '../../hooks/use_readonly_header'; -import { casesBreadcrumbs } from './links'; -import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; import { useHasData } from '../../hooks/use_has_data'; import { LoadingObservability } from '../overview/loading_observability'; import { getNoDataConfig } from '../../utils/no_data_config'; -export const AllCasesPage = React.memo(() => { +export const CasesPage = React.memo(() => { const userPermissions = useGetUserCasesPermissions(); const { core, ObservabilityPageTemplate } = usePluginContext(); - useReadonlyHeader(); - useBreadcrumbs([casesBreadcrumbs.cases]); const { hasAnyData, isAllRequestsComplete } = useHasData(); @@ -45,11 +40,11 @@ export const AllCasesPage = React.memo(() => { data-test-subj={noDataConfig ? 'noDataPage' : undefined} noDataConfig={noDataConfig} > - <AllCases userCanCrud={userPermissions?.crud ?? false} /> + <Cases userCanCrud={userPermissions?.crud ?? false} /> </ObservabilityPageTemplate> ) : ( <CaseFeatureNoPermissions /> ); }); -AllCasesPage.displayName = 'AllCasesPage'; +CasesPage.displayName = 'CasesPage'; diff --git a/x-pack/plugins/observability/public/pages/cases/links.ts b/x-pack/plugins/observability/public/pages/cases/links.ts deleted file mode 100644 index 09e0a6835afae..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/links.ts +++ /dev/null @@ -1,79 +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 { i18n } from '@kbn/i18n'; -import { isEmpty } from 'lodash/fp'; -import { useCallback } from 'react'; -import { observabilityAppId } from '../../../common'; -import { useKibana } from '../../utils/kibana_react'; - -export const casesBreadcrumbs = { - cases: { - text: i18n.translate('xpack.observability.breadcrumbs.casesLinkText', { - defaultMessage: 'Cases', - }), - }, - create: { - text: i18n.translate('xpack.observability.breadcrumbs.casesCreateLinkText', { - defaultMessage: 'Create', - }), - }, - configure: { - text: i18n.translate('xpack.observability.breadcrumbs.casesConfigureLinkText', { - defaultMessage: 'Configure', - }), - }, -}; - -export const getCaseDetailsUrl = ({ id, subCaseId }: { id: string; subCaseId?: string }) => { - if (subCaseId) { - return `/${encodeURIComponent(id)}/sub-cases/${encodeURIComponent(subCaseId)}`; - } - return `/${encodeURIComponent(id)}`; -}; -interface FormatUrlOptions { - absolute: boolean; -} - -export type FormatUrl = (path: string, options?: Partial<FormatUrlOptions>) => string; -export const useFormatUrl = () => { - const { getUrlForApp } = useKibana().services.application; - const formatUrl = useCallback<FormatUrl>( - (path: string, { absolute = false } = {}) => { - const pathArr = path.split('?'); - const formattedPath = `/cases/${pathArr[0]}${isEmpty(pathArr[1]) ? '' : `?${pathArr[1]}`}`; - return getUrlForApp(observabilityAppId, { - path: formattedPath, - absolute, - }); - }, - [getUrlForApp] - ); - return { formatUrl }; -}; - -export const getCaseDetailsUrlWithCommentId = ({ - id, - commentId, - subCaseId, -}: { - id: string; - commentId: string; - subCaseId?: string; -}) => { - if (subCaseId) { - return `/${encodeURIComponent(id)}/sub-cases/${encodeURIComponent( - subCaseId - )}/${encodeURIComponent(commentId)}`; - } - return `/${encodeURIComponent(id)}/${encodeURIComponent(commentId)}`; -}; - -export const getCreateCaseUrl = () => `/create`; - -export const getConfigureCasesUrl = () => `/configure`; -export const getCaseUrl = () => `/`; diff --git a/x-pack/plugins/observability/public/pages/cases/translations.ts b/x-pack/plugins/observability/public/pages/cases/translations.ts new file mode 100644 index 0000000000000..24c03f65f4521 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/cases/translations.ts @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( + 'xpack.observability.cases.caseFeatureNoPermissionsTitle', + { + defaultMessage: 'Kibana feature privileges required', + } +); + +export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( + 'xpack.observability.cases.caseFeatureNoPermissionsMessage', + { + defaultMessage: + 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', + } +); + +export const GO_TO_DOCUMENTATION = i18n.translate( + 'xpack.observability.cases.caseView.goToDocumentationButton', + { + defaultMessage: 'View documentation', + } +); diff --git a/x-pack/plugins/observability/public/plugin.ts b/x-pack/plugins/observability/public/plugin.ts index e4caa8ca91944..36a7600a58f25 100644 --- a/x-pack/plugins/observability/public/plugin.ts +++ b/x-pack/plugins/observability/public/plugin.ts @@ -30,13 +30,13 @@ import type { HomePublicPluginSetup, HomePublicPluginStart, } from '../../../../src/plugins/home/public'; -import { CasesUiStart } from '../../cases/public'; +import { CasesDeepLinkId, CasesUiStart, getCasesDeepLinks } from '../../cases/public'; import type { LensPublicStart } from '../../lens/public'; import { TriggersAndActionsUIPublicPluginSetup, TriggersAndActionsUIPublicPluginStart, } from '../../triggers_actions_ui/public'; -import { observabilityAppId, observabilityFeatureId } from '../common'; +import { observabilityAppId, observabilityFeatureId, casesPath } from '../common'; import { createLazyObservabilityPageTemplate } from './components/shared'; import { registerDataHandler } from './data_handler'; import { createObservabilityRuleTypeRegistry } from './rules/create_observability_rule_type_registry'; @@ -90,15 +90,23 @@ export class Plugin path: '/alerts', navLinkStatus: AppNavLinkStatus.hidden, }, - { - id: 'cases', - title: i18n.translate('xpack.observability.casesLinkTitle', { - defaultMessage: 'Cases', - }), - order: 8002, - path: '/cases', - navLinkStatus: AppNavLinkStatus.hidden, - }, + getCasesDeepLinks({ + basePath: casesPath, + extend: { + [CasesDeepLinkId.cases]: { + order: 8002, + navLinkStatus: AppNavLinkStatus.hidden, + }, + [CasesDeepLinkId.casesCreate]: { + navLinkStatus: AppNavLinkStatus.hidden, + searchable: false, + }, + [CasesDeepLinkId.casesConfigure]: { + navLinkStatus: AppNavLinkStatus.hidden, + searchable: false, + }, + }, + }), ]; constructor(private readonly initializerContext: PluginInitializerContext<ConfigSchema>) { diff --git a/x-pack/plugins/observability/public/routes/index.tsx b/x-pack/plugins/observability/public/routes/index.tsx index 1c2513cee9fce..a684feec535fc 100644 --- a/x-pack/plugins/observability/public/routes/index.tsx +++ b/x-pack/plugins/observability/public/routes/index.tsx @@ -7,12 +7,10 @@ import * as t from 'io-ts'; import React from 'react'; +import { casesPath } from '../../common'; import { ExploratoryViewPage } from '../components/shared/exploratory_view'; import { AlertsPage } from '../pages/alerts'; -import { AllCasesPage } from '../pages/cases/all_cases'; -import { CaseDetailsPage } from '../pages/cases/case_details'; -import { ConfigureCasesPage } from '../pages/cases/configure_cases'; -import { CreateCasePage } from '../pages/cases/create_case'; +import { CasesPage } from '../pages/cases'; import { HomePage } from '../pages/home'; import { LandingPage } from '../pages/landing'; import { OverviewPage } from '../pages/overview'; @@ -35,12 +33,14 @@ export const routes = { return <HomePage />; }, params: {}, + exact: true, }, '/landing': { handler: () => { return <LandingPage />; }, params: {}, + exact: true, }, '/overview': { handler: ({ query }: any) => { @@ -54,34 +54,14 @@ export const routes = { refreshInterval: jsonRt.pipe(t.number), }), }, + exact: true, }, - '/cases': { + [casesPath]: { handler: () => { - return <AllCasesPage />; + return <CasesPage />; }, params: {}, - }, - '/cases/create': { - handler: () => { - return <CreateCasePage />; - }, - params: {}, - }, - '/cases/configure': { - handler: () => { - return <ConfigureCasesPage />; - }, - params: {}, - }, - '/cases/:detailName': { - handler: () => { - return <CaseDetailsPage />; - }, - params: { - path: t.partial({ - detailName: t.string, - }), - }, + exact: false, }, '/alerts': { handler: () => { @@ -90,6 +70,7 @@ export const routes = { params: { // Technically gets a '_a' param by using Kibana URL state sync helpers }, + exact: true, }, '/exploratory-view/': { handler: () => { @@ -103,5 +84,6 @@ export const routes = { refreshInterval: jsonRt.pipe(t.number), }), }, + exact: true, }, }; diff --git a/x-pack/plugins/observability/public/update_global_navigation.tsx b/x-pack/plugins/observability/public/update_global_navigation.tsx index 813dee1ea706b..2de282432c158 100644 --- a/x-pack/plugins/observability/public/update_global_navigation.tsx +++ b/x-pack/plugins/observability/public/update_global_navigation.tsx @@ -13,6 +13,7 @@ import { ApplicationStart, AppDeepLink, } from '../../../../src/core/public'; +import { CasesDeepLinkId } from '../../cases/public'; import { casesFeatureId } from '../common'; export function updateGlobalNavigation({ @@ -31,7 +32,7 @@ export function updateGlobalNavigation({ const updatedDeepLinks = deepLinks.map((link) => { switch (link.id) { - case 'cases': + case CasesDeepLinkId.cases: return { ...link, navLinkStatus: diff --git a/x-pack/plugins/security_solution/common/constants.ts b/x-pack/plugins/security_solution/common/constants.ts index 071d01a1bd557..25c6b07fd03af 100644 --- a/x-pack/plugins/security_solution/common/constants.ts +++ b/x-pack/plugins/security_solution/common/constants.ts @@ -83,9 +83,13 @@ export enum SecurityPageName { administration = 'administration', alerts = 'alerts', authentications = 'authentications', - case = 'case', - caseConfigure = 'case-configure', - caseCreate = 'case-create', + /* + * Warning: Computed values are not permitted in an enum with string valued members + * The 3 following Cases page names must match `CasesDeepLinkId` in x-pack/plugins/cases/public/common/navigation.ts + */ + case = 'cases', + caseConfigure = 'cases_configure', + caseCreate = 'cases_create', detections = 'detections', endpoints = 'endpoints', eventFilters = 'event_filters', diff --git a/x-pack/plugins/security_solution/cypress/screens/security_header.ts b/x-pack/plugins/security_solution/cypress/screens/security_header.ts index d4589745f9757..4bfb03e6e5c97 100644 --- a/x-pack/plugins/security_solution/cypress/screens/security_header.ts +++ b/x-pack/plugins/security_solution/cypress/screens/security_header.ts @@ -9,7 +9,7 @@ export const ALERTS = '[data-test-subj="navigation-alerts"]'; export const BREADCRUMBS = '[data-test-subj="breadcrumbs"] a'; -export const CASES = '[data-test-subj="navigation-case"]'; +export const CASES = '[data-test-subj="navigation-cases"]'; export const HOSTS = '[data-test-subj="navigation-hosts"]'; diff --git a/x-pack/plugins/security_solution/public/app/deep_links/index.ts b/x-pack/plugins/security_solution/public/app/deep_links/index.ts index c8b058ef2913d..545210c788e8c 100644 --- a/x-pack/plugins/security_solution/public/app/deep_links/index.ts +++ b/x-pack/plugins/security_solution/public/app/deep_links/index.ts @@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n'; import { get } from 'lodash'; import { LicenseType } from '../../../../licensing/common/types'; +import { getCasesDeepLinks } from '../../../../cases/public'; import { SecurityPageName } from '../types'; import { AppDeepLink, AppNavLinkStatus, Capabilities } from '../../../../../../src/core/public'; import { @@ -22,7 +23,6 @@ import { INVESTIGATE, NETWORK, TIMELINES, - CASE, MANAGE, UEBA, HOST_ISOLATION_EXCEPTIONS, @@ -289,38 +289,23 @@ export const securitySolutionsDeepLinks: SecuritySolutionDeepLink[] = [ }, ], }, - { - id: SecurityPageName.case, - title: CASE, - path: CASES_PATH, - navLinkStatus: AppNavLinkStatus.visible, - features: [FEATURE.casesRead], - keywords: [ - i18n.translate('xpack.securitySolution.search.cases', { - defaultMessage: 'Cases', - }), - ], - order: 9006, - deepLinks: [ - { - id: SecurityPageName.caseCreate, - title: i18n.translate('xpack.securitySolution.search.cases.create', { - defaultMessage: 'Create New Case', - }), - path: `${CASES_PATH}/create`, - features: [FEATURE.casesCrud], + getCasesDeepLinks<SecuritySolutionDeepLink>({ + basePath: CASES_PATH, + extend: { + [SecurityPageName.case]: { + navLinkStatus: AppNavLinkStatus.visible, + order: 9006, + features: [FEATURE.casesRead], }, - { - id: SecurityPageName.caseConfigure, - title: i18n.translate('xpack.securitySolution.search.cases.configure', { - defaultMessage: 'Configure Cases', - }), - path: `${CASES_PATH}/configure`, + [SecurityPageName.caseConfigure]: { features: [FEATURE.casesCrud], isPremium: true, }, - ], - }, + [SecurityPageName.caseCreate]: { + features: [FEATURE.casesCrud], + }, + }, + }), ], }, { @@ -373,12 +358,10 @@ export function getDeepLinks( licenseType?: LicenseType, capabilities?: Capabilities ): AppDeepLink[] { - const hasPremium = isPremiumLicense(licenseType); - const filterDeepLinks = (securityDeepLinks: SecuritySolutionDeepLink[]): AppDeepLink[] => securityDeepLinks.reduce( (deepLinks: AppDeepLink[], { isPremium, features, experimentalKey, ...deepLink }) => { - if (isPremium && !hasPremium) { + if (licenseType && isPremium && !isPremiumLicense(licenseType)) { return deepLinks; } if (experimentalKey && !enableExperimental[experimentalKey]) { diff --git a/x-pack/plugins/security_solution/public/app/home/home_navigations.ts b/x-pack/plugins/security_solution/public/app/home/home_navigations.ts index 38c7ab06a52d0..de76a570312a5 100644 --- a/x-pack/plugins/security_solution/public/app/home/home_navigations.ts +++ b/x-pack/plugins/security_solution/public/app/home/home_navigations.ts @@ -91,7 +91,7 @@ export const navTabs: SecurityNav = { name: i18n.CASE, href: APP_CASES_PATH, disabled: false, - urlKey: 'case', + urlKey: 'cases', }, [SecurityPageName.administration]: { id: SecurityPageName.administration, diff --git a/x-pack/plugins/security_solution/public/cases/components/__mock__/form.ts b/x-pack/plugins/security_solution/public/cases/components/__mock__/form.ts deleted file mode 100644 index 3ba7aa616f1c1..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/__mock__/form.ts +++ /dev/null @@ -1,52 +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 { useForm } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form'; -import { useFormData } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form_data'; - -jest.mock( - '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' -); -jest.mock( - '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form_data' -); - -export const mockFormHook = { - isSubmitted: false, - isSubmitting: false, - isValid: true, - submit: jest.fn(), - subscribe: jest.fn(), - setFieldValue: jest.fn(), - setFieldErrors: jest.fn(), - getFields: jest.fn(), - getFormData: jest.fn(), - getFieldDefaultValue: jest.fn(), - /* Returns a list of all errors in the form */ - getErrors: jest.fn(), - reset: jest.fn(), - __options: {}, - __formData$: {}, - __addField: jest.fn(), - __removeField: jest.fn(), - __validateFields: jest.fn(), - __updateFormDataAt: jest.fn(), - __readFieldConfigFromSchema: jest.fn(), -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const getFormMock = (sampleData: any) => ({ - ...mockFormHook, - submit: () => - Promise.resolve({ - data: sampleData, - isValid: true, - }), - getFormData: () => sampleData, -}); - -export const useFormMock = useForm as jest.Mock; -export const useFormDataMock = useFormData as jest.Mock; diff --git a/x-pack/plugins/security_solution/public/cases/components/all_cases/index.tsx b/x-pack/plugins/security_solution/public/cases/components/all_cases/index.tsx deleted file mode 100644 index 81eeae9866b7f..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/all_cases/index.tsx +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback } from 'react'; - -import { - getCaseDetailsUrl, - getConfigureCasesUrl, - getCreateCaseUrl, - useFormatUrl, -} from '../../../common/components/link_to'; -import { SecurityPageName } from '../../../app/types'; -import { useKibana } from '../../../common/lib/kibana'; -import { APP_ID, APP_UI_ID } from '../../../../common/constants'; - -export interface AllCasesNavProps { - detailName: string; - search?: string; - subCaseId?: string; -} - -interface AllCasesProps { - userCanCrud: boolean; -} -export const AllCases = React.memo<AllCasesProps>(({ userCanCrud }) => { - const { - cases: casesUi, - application: { navigateToApp }, - } = useKibana().services; - const { formatUrl, search: urlSearch } = useFormatUrl(SecurityPageName.case); - - const goToCreateCase = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCreateCaseUrl(urlSearch), - }); - }, - [navigateToApp, urlSearch] - ); - - const goToCaseConfigure = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getConfigureCasesUrl(urlSearch), - }); - }, - [navigateToApp, urlSearch] - ); - - return casesUi.getAllCases({ - caseDetailsNavigation: { - href: ({ detailName, subCaseId }: AllCasesNavProps) => { - return formatUrl(getCaseDetailsUrl({ id: detailName, subCaseId })); - }, - onClick: async ({ detailName, subCaseId, search }: AllCasesNavProps) => { - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: detailName, search, subCaseId }), - }); - }, - }, - configureCasesNavigation: { - href: formatUrl(getConfigureCasesUrl()), - onClick: goToCaseConfigure, - }, - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: goToCreateCase, - }, - userCanCrud, - owner: [APP_ID], - }); -}); - -AllCases.displayName = 'AllCases'; diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx deleted file mode 100644 index 01c581f5401ba..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; - -import { CallOut, CallOutProps } from './callout'; - -describe('Callout', () => { - const defaultProps: CallOutProps = { - id: 'md5-hex', - type: 'primary', - title: 'a tittle', - messages: [ - { - id: 'generic-error', - title: 'message-one', - description: <p>{'error'}</p>, - }, - ], - showCallOut: true, - handleDismissCallout: jest.fn(), - }; - - beforeEach(() => { - jest.clearAllMocks(); - }); - - it('It renders the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="case-callout-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="callout-messages-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="callout-dismiss-md5-hex"]`).exists()).toBeTruthy(); - }); - - it('hides the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} showCallOut={false} />); - expect(wrapper.find(`[data-test-subj="case-callout-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('does not shows any messages when the list is empty', () => { - const wrapper = mount(<CallOut {...defaultProps} messages={[]} />); - expect(wrapper.find(`[data-test-subj="callout-messages-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('transform the button color correctly - primary', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--primary')).toBeTruthy(); - }); - - it('transform the button color correctly - success', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'success'} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--success')).toBeTruthy(); - }); - - it('transform the button color correctly - warning', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'warning'} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--warning')).toBeTruthy(); - }); - - it('transform the button color correctly - danger', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'danger'} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--danger')).toBeTruthy(); - }); - - it('dismiss the callout correctly', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="callout-dismiss-md5-hex"]`).exists()).toBeTruthy(); - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).simulate('click'); - wrapper.update(); - - expect(defaultProps.handleDismissCallout).toHaveBeenCalledWith('md5-hex', 'primary'); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx deleted file mode 100644 index d0493ec7acb9c..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx +++ /dev/null @@ -1,47 +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 { EuiCallOut, EuiButton, EuiDescriptionList } from '@elastic/eui'; -import { isEmpty } from 'lodash/fp'; -import React, { memo, useCallback } from 'react'; - -import { ErrorMessage } from './types'; -import * as i18n from './translations'; - -export interface CallOutProps { - id: string; - type: NonNullable<ErrorMessage['errorType']>; - title: string; - messages: ErrorMessage[]; - showCallOut: boolean; - handleDismissCallout: (id: string, type: NonNullable<ErrorMessage['errorType']>) => void; -} - -const CallOutComponent = ({ - id, - type, - title, - messages, - showCallOut, - handleDismissCallout, -}: CallOutProps) => { - const handleCallOut = useCallback( - () => handleDismissCallout(id, type), - [handleDismissCallout, id, type] - ); - - return showCallOut && !isEmpty(messages) ? ( - <EuiCallOut title={title} color={type} iconType="gear" data-test-subj={`case-callout-${id}`}> - <EuiDescriptionList data-test-subj={`callout-messages-${id}`} listItems={messages} /> - <EuiButton data-test-subj={`callout-dismiss-${id}`} color={type} onClick={handleCallOut}> - {i18n.DISMISS_CALLOUT} - </EuiButton> - </EuiCallOut> - ) : null; -}; - -export const CallOut = memo(CallOutComponent); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.test.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/helpers.test.tsx deleted file mode 100644 index b5b92a3374874..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.test.tsx +++ /dev/null @@ -1,29 +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 md5 from 'md5'; -import { createCalloutId } from './helpers'; - -describe('createCalloutId', () => { - it('creates id correctly with one id', () => { - const digest = md5('one'); - const id = createCalloutId(['one']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids', () => { - const digest = md5('one|two|three'); - const id = createCalloutId(['one', 'two', 'three']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids and delimiter', () => { - const digest = md5('one,two,three'); - const id = createCalloutId(['one', 'two', 'three'], ','); - expect(id).toBe(digest); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/index.test.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/index.test.tsx deleted file mode 100644 index 5d1daf0c2f7bb..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/index.test.tsx +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; - -import { useMessagesStorage } from '../../../common/containers/local_storage/use_messages_storage'; -import { TestProviders } from '../../../common/mock'; -import { createCalloutId } from './helpers'; -import { CaseCallOut, CaseCallOutProps } from '.'; - -jest.mock('../../../common/containers/local_storage/use_messages_storage'); - -const useSecurityLocalStorageMock = useMessagesStorage as jest.Mock; -const securityLocalStorageMock = { - getMessages: jest.fn(() => []), - addMessage: jest.fn(), -}; - -describe('CaseCallOut ', () => { - beforeEach(() => { - jest.clearAllMocks(); - useSecurityLocalStorageMock.mockImplementation(() => securityLocalStorageMock); - }); - - it('renders a callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - { id: 'message-two', title: 'title', description: <p>{'for real'}</p> }, - ], - }; - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one', 'message-two']); - expect(wrapper.find(`[data-test-subj="callout-messages-${id}"]`).last().exists()).toBeTruthy(); - }); - - it('groups the messages correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - { id: 'message-two', title: 'title two', description: <p>{'for real'}</p> }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const idDanger = createCalloutId(['message-one']); - const idPrimary = createCalloutId(['message-two']); - - expect( - wrapper.find(`[data-test-subj="case-callout-${idPrimary}"]`).last().exists() - ).toBeTruthy(); - expect( - wrapper.find(`[data-test-subj="case-callout-${idDanger}"]`).last().exists() - ).toBeTruthy(); - }); - - it('dismisses the callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - - expect(wrapper.find(`[data-test-subj="case-callout-${id}"]`).last().exists()).toBeTruthy(); - wrapper.find(`[data-test-subj="callout-dismiss-${id}"]`).last().simulate('click'); - expect(wrapper.find(`[data-test-subj="case-callout-${id}"]`).exists()).toBeFalsy(); - }); - - it('persist the callout of type primary when dismissed', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - expect(securityLocalStorageMock.getMessages).toHaveBeenCalledWith('case'); - wrapper.find(`[data-test-subj="callout-dismiss-${id}"]`).last().simulate('click'); - expect(securityLocalStorageMock.addMessage).toHaveBeenCalledWith('case', id); - }); - - it('do not show the callout if is in the localStorage', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const id = createCalloutId(['message-one']); - - useSecurityLocalStorageMock.mockImplementation(() => ({ - ...securityLocalStorageMock, - getMessages: jest.fn(() => [id]), - })); - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - expect(wrapper.find(`[data-test-subj="case-callout-${id}"]`).last().exists()).toBeFalsy(); - }); - - it('do not persist a callout of type danger', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="callout-dismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type warning', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'warning', - }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="callout-dismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type success', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'success', - }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="callout-dismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/index.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/index.tsx deleted file mode 100644 index 2852a085cd182..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/index.tsx +++ /dev/null @@ -1,103 +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 { EuiSpacer } from '@elastic/eui'; -import React, { memo, useCallback, useState, useMemo } from 'react'; - -import { useMessagesStorage } from '../../../common/containers/local_storage/use_messages_storage'; -import { CallOut } from './callout'; -import { ErrorMessage } from './types'; -import { createCalloutId } from './helpers'; - -export * from './helpers'; - -export interface CaseCallOutProps { - title: string; - messages?: ErrorMessage[]; -} - -type GroupByTypeMessages = { - [key in NonNullable<ErrorMessage['errorType']>]: { - messagesId: string[]; - messages: ErrorMessage[]; - }; -}; - -interface CalloutVisibility { - [index: string]: boolean; -} - -const CaseCallOutComponent = ({ title, messages = [] }: CaseCallOutProps) => { - const { getMessages, addMessage } = useMessagesStorage(); - - const caseMessages = useMemo(() => getMessages('case'), [getMessages]); - const dismissedCallouts = useMemo( - () => - caseMessages.reduce<CalloutVisibility>( - (acc, id) => ({ - ...acc, - [id]: false, - }), - {} - ), - [caseMessages] - ); - - const [calloutVisibility, setCalloutVisibility] = useState(dismissedCallouts); - const handleCallOut = useCallback( - (id, type) => { - setCalloutVisibility((prevState) => ({ ...prevState, [id]: false })); - if (type === 'primary') { - addMessage('case', id); - } - }, - [setCalloutVisibility, addMessage] - ); - - const groupedByTypeErrorMessages = useMemo( - () => - messages.reduce<GroupByTypeMessages>( - (acc: GroupByTypeMessages, currentMessage: ErrorMessage) => { - const type = currentMessage.errorType == null ? 'primary' : currentMessage.errorType; - return { - ...acc, - [type]: { - messagesId: [...(acc[type]?.messagesId ?? []), currentMessage.id], - messages: [...(acc[type]?.messages ?? []), currentMessage], - }, - }; - }, - {} as GroupByTypeMessages - ), - [messages] - ); - - return ( - <> - {(Object.keys(groupedByTypeErrorMessages) as Array<keyof ErrorMessage['errorType']>).map( - (type: NonNullable<ErrorMessage['errorType']>) => { - const id = createCalloutId(groupedByTypeErrorMessages[type].messagesId); - return ( - <React.Fragment key={id}> - <CallOut - id={id} - type={type} - title={title} - messages={groupedByTypeErrorMessages[type].messages} - showCallOut={calloutVisibility[id] ?? true} - handleDismissCallout={handleCallOut} - /> - <EuiSpacer /> - </React.Fragment> - ); - } - )} - </> - ); -}; - -export const CaseCallOut = memo(CaseCallOutComponent); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/translations.ts b/x-pack/plugins/security_solution/public/cases/components/callout/translations.ts deleted file mode 100644 index 617995cc366b0..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/translations.ts +++ /dev/null @@ -1,15 +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 { i18n } from '@kbn/i18n'; - -export const DISMISS_CALLOUT = i18n.translate( - 'xpack.securitySolution.cases.dismissErrorsPushServiceCallOutTitle', - { - defaultMessage: 'Dismiss', - } -); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/types.ts b/x-pack/plugins/security_solution/public/cases/components/callout/types.ts deleted file mode 100644 index 84d79ee391b8f..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/types.ts +++ /dev/null @@ -1,13 +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. - */ - -export interface ErrorMessage { - id: string; - title: string; - description: JSX.Element; - errorType?: 'primary' | 'success' | 'warning' | 'danger'; -} diff --git a/x-pack/plugins/security_solution/public/cases/components/case_header_page/index.tsx b/x-pack/plugins/security_solution/public/cases/components/case_header_page/index.tsx deleted file mode 100644 index c1eb11ea5182d..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/case_header_page/index.tsx +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; - -import { HeaderPage, HeaderPageProps } from '../../../common/components/header_page'; - -const CaseHeaderPageComponent: React.FC<HeaderPageProps> = (props) => <HeaderPage {...props} />; - -export const CaseHeaderPage = React.memo(CaseHeaderPageComponent); diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx b/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx deleted file mode 100644 index 06fce07399b6e..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback, useRef } from 'react'; -import { useDispatch } from 'react-redux'; -import { - getCaseDetailsUrl, - getCaseDetailsUrlWithCommentId, - getCaseUrl, - getConfigureCasesUrl, - getRuleDetailsUrl, - useFormatUrl, -} from '../../../common/components/link_to'; -import { Case, CaseViewRefreshPropInterface } from '../../../../../cases/common'; -import { TimelineId } from '../../../../common/types/timeline'; -import { SecurityPageName } from '../../../app/types'; -import { useKibana } from '../../../common/lib/kibana'; -import { APP_UI_ID } from '../../../../common/constants'; -import { timelineActions } from '../../../timelines/store/timeline'; -import { useSourcererDataView } from '../../../common/containers/sourcerer'; -import { SourcererScopeName } from '../../../common/store/sourcerer/model'; -import { DetailsPanel } from '../../../timelines/components/side_panel'; -import { InvestigateInTimelineAction } from '../../../detections/components/alerts_table/timeline_actions/investigate_in_timeline_action'; -import { useFetchAlertData } from './helpers'; -import { SEND_ALERT_TO_TIMELINE } from './translations'; -import { useInsertTimeline } from '../use_insert_timeline'; -import * as timelineMarkdownPlugin from '../../../common/components/markdown_editor/plugins/timeline'; -import { CaseDetailsRefreshContext } from '../../../common/components/endpoint/host_isolation/endpoint_host_isolation_cases_context'; -import { getEndpointDetailsPath } from '../../../management/common/routing'; - -interface Props { - caseId: string; - subCaseId?: string; - userCanCrud: boolean; - onCaseDataSuccess: (data: Case) => void; -} - -export interface OnUpdateFields { - key: keyof Case; - value: Case[keyof Case]; - onSuccess?: () => void; - onError?: () => void; -} - -export interface CaseProps extends Props { - fetchCase: () => void; - caseData: Case; - updateCase: (newCase: Case) => void; -} - -const TimelineDetailsPanel = () => { - const { browserFields, docValueFields, runtimeMappings } = useSourcererDataView( - SourcererScopeName.detections - ); - return ( - <DetailsPanel - browserFields={browserFields} - docValueFields={docValueFields} - entityType="events" - isFlyoutView - runtimeMappings={runtimeMappings} - timelineId={TimelineId.casePage} - /> - ); -}; - -const InvestigateInTimelineActionComponent = (alertIds: string[]) => { - return ( - <InvestigateInTimelineAction - ariaLabel={SEND_ALERT_TO_TIMELINE} - alertIds={alertIds} - key="investigate-in-timeline" - ecsRowData={null} - /> - ); -}; - -export const CaseView = React.memo( - ({ caseId, subCaseId, userCanCrud, onCaseDataSuccess }: Props) => { - const { - cases: casesUi, - application: { navigateToApp }, - } = useKibana().services; - const dispatch = useDispatch(); - const { formatUrl, search } = useFormatUrl(SecurityPageName.case); - const { formatUrl: detectionsFormatUrl, search: detectionsUrlSearch } = useFormatUrl( - SecurityPageName.rules - ); - - const allCasesLink = getCaseUrl(search); - const formattedAllCasesLink = formatUrl(allCasesLink); - const configureCasesHref = formatUrl(getConfigureCasesUrl()); - - const caseDetailsLink = formatUrl(getCaseDetailsUrl({ id: caseId }), { absolute: true }); - const getCaseDetailHrefWithCommentId = (commentId: string) => - formatUrl(getCaseDetailsUrlWithCommentId({ id: caseId, commentId, subCaseId }), { - absolute: true, - }); - - const getDetectionsRuleDetailsHref = useCallback( - (ruleId) => detectionsFormatUrl(getRuleDetailsUrl(ruleId ?? '', detectionsUrlSearch)), - [detectionsFormatUrl, detectionsUrlSearch] - ); - - const showAlertDetails = useCallback( - (alertId: string, index: string) => { - dispatch( - timelineActions.toggleDetailPanel({ - panelView: 'eventDetail', - timelineId: TimelineId.casePage, - params: { - eventId: alertId, - indexName: index, - }, - }) - ); - }, - [dispatch] - ); - - const endpointDetailsHref = (endpointId: string) => - formatUrl( - getEndpointDetailsPath({ - name: 'endpointActivityLog', - selected_endpoint: endpointId, - }) - ); - - const onComponentInitialized = useCallback(() => { - dispatch( - timelineActions.createTimeline({ - id: TimelineId.casePage, - columns: [], - dataViewId: '', - indexNames: [], - expandedDetail: {}, - show: false, - }) - ); - }, [dispatch]); - - const refreshRef = useRef<CaseViewRefreshPropInterface>(null); - - return ( - <CaseDetailsRefreshContext.Provider value={refreshRef}> - {casesUi.getCaseView({ - refreshRef, - allCasesNavigation: { - href: formattedAllCasesLink, - onClick: async (e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: allCasesLink, - }); - }, - }, - caseDetailsNavigation: { - href: caseDetailsLink, - onClick: async (e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: caseId }), - }); - }, - }, - caseId, - configureCasesNavigation: { - href: configureCasesHref, - onClick: async (e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getConfigureCasesUrl(search), - }); - }, - }, - getCaseDetailHrefWithCommentId, - onCaseDataSuccess, - onComponentInitialized, - actionsNavigation: { - href: endpointDetailsHref, - onClick: (endpointId: string, e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - path: getEndpointDetailsPath({ - name: 'endpointActivityLog', - selected_endpoint: endpointId, - }), - }); - }, - }, - ruleDetailsNavigation: { - href: getDetectionsRuleDetailsHref, - onClick: async (ruleId: string | null | undefined, e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.rules, - path: getRuleDetailsUrl(ruleId ?? ''), - }); - }, - }, - showAlertDetails, - subCaseId, - timelineIntegration: { - editor_plugins: { - parsingPlugin: timelineMarkdownPlugin.parser, - processingPluginRenderer: timelineMarkdownPlugin.renderer, - uiPlugin: timelineMarkdownPlugin.plugin, - }, - hooks: { - useInsertTimeline, - }, - ui: { - renderInvestigateInTimelineActionComponent: InvestigateInTimelineActionComponent, - renderTimelineDetailsPanel: TimelineDetailsPanel, - }, - }, - useFetchAlertData, - userCanCrud, - })} - </CaseDetailsRefreshContext.Provider> - ); - } -); - -CaseView.displayName = 'CaseView'; diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/translations.ts b/x-pack/plugins/security_solution/public/cases/components/case_view/translations.ts deleted file mode 100644 index d7b66bbac38df..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/translations.ts +++ /dev/null @@ -1,14 +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 { i18n } from '@kbn/i18n'; -export const SEND_ALERT_TO_TIMELINE = i18n.translate( - 'xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip', - { - defaultMessage: 'Investigate in timeline', - } -); diff --git a/x-pack/plugins/security_solution/public/cases/components/create/index.test.tsx b/x-pack/plugins/security_solution/public/cases/components/create/index.test.tsx deleted file mode 100644 index 2ce5f2904cb3b..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/create/index.test.tsx +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; -import { act, waitFor } from '@testing-library/react'; -import { noop } from 'lodash/fp'; - -import { TestProviders } from '../../../common/mock'; -import { useInsertTimeline } from '../use_insert_timeline'; -import { Create } from '.'; -import { useKibana } from '../../../common/lib/kibana'; -import { Case } from '../../../../../cases/public/containers/types'; -import { basicCase } from '../../../../../cases/public/containers/mock'; -import { APP_ID, APP_UI_ID, SecurityPageName } from '../../../../common/constants'; -import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; - -jest.mock('../use_insert_timeline'); -jest.mock('../../../common/lib/kibana'); -jest.mock('../../../common/components/navigation/use_get_url_search'); - -const useInsertTimelineMock = useInsertTimeline as jest.Mock; - -describe('Create case', () => { - const mockCreateCase = jest.fn(); - const mockNavigateToApp = jest.fn(); - const mockRes = 'coolstring'; - beforeEach(() => { - jest.resetAllMocks(); - (useGetUrlSearch as jest.Mock).mockReturnValue(mockRes); - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: mockCreateCase, - }, - application: { navigateToApp: mockNavigateToApp }, - }, - }); - }); - - it('it renders', () => { - mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - expect(mockCreateCase).toHaveBeenCalled(); - expect(mockCreateCase.mock.calls[0][0].owner).toEqual([APP_ID]); - }); - - it('should redirect to all cases on cancel click', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onCancel }: { onCancel: () => Promise<void> }) => { - onCancel(); - }, - }, - application: { navigateToApp: mockNavigateToApp }, - }, - }); - mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - await waitFor(() => - expect(mockNavigateToApp).toHaveBeenCalledWith(APP_UI_ID, { - path: `?${mockRes}`, - deepLinkId: SecurityPageName.case, - }) - ); - }); - - it('should redirect to new case when posting the case', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onSuccess }: { onSuccess: (theCase: Case) => Promise<void> }) => { - onSuccess(basicCase); - }, - }, - application: { navigateToApp: mockNavigateToApp }, - }, - }); - mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - await waitFor(() => - expect(mockNavigateToApp).toHaveBeenNthCalledWith(1, APP_UI_ID, { - path: `/basic-case-id?${mockRes}`, - deepLinkId: SecurityPageName.case, - }) - ); - }); - - it.skip('it should insert a timeline', async () => { - let attachTimeline = noop; - useInsertTimelineMock.mockImplementation((value, onTimelineAttached) => { - attachTimeline = onTimelineAttached; - }); - - const wrapper = mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - act(() => { - attachTimeline('[title](url)'); - }); - - await waitFor(() => { - expect(wrapper.find(`[data-test-subj="caseDescription"] textarea`).text()).toBe( - '[title](url)' - ); - }); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/create/index.tsx b/x-pack/plugins/security_solution/public/cases/components/create/index.tsx deleted file mode 100644 index 6e6a536cd8437..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/create/index.tsx +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback } from 'react'; - -import { getCaseDetailsUrl, getCaseUrl } from '../../../common/components/link_to'; -import { useKibana } from '../../../common/lib/kibana'; -import * as timelineMarkdownPlugin from '../../../common/components/markdown_editor/plugins/timeline'; -import { useInsertTimeline } from '../use_insert_timeline'; -import { APP_ID, APP_UI_ID } from '../../../../common/constants'; -import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; -import { navTabs } from '../../../app/home/home_navigations'; -import { SecurityPageName } from '../../../app/types'; - -export const Create = React.memo(() => { - const { - cases, - application: { navigateToApp }, - } = useKibana().services; - const search = useGetUrlSearch(navTabs.case); - const onSuccess = useCallback( - async ({ id }) => - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id, search }), - }), - [navigateToApp, search] - ); - const handleSetIsCancel = useCallback( - async () => - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }), - [navigateToApp, search] - ); - - return cases.getCreateCase({ - onCancel: handleSetIsCancel, - onSuccess, - timelineIntegration: { - editor_plugins: { - parsingPlugin: timelineMarkdownPlugin.parser, - processingPluginRenderer: timelineMarkdownPlugin.renderer, - uiPlugin: timelineMarkdownPlugin.plugin, - }, - hooks: { - useInsertTimeline, - }, - }, - owner: [APP_ID], - }); -}); - -Create.displayName = 'Create'; diff --git a/x-pack/plugins/security_solution/public/cases/components/wrappers/index.tsx b/x-pack/plugins/security_solution/public/cases/components/wrappers/index.tsx deleted file mode 100644 index 477fb77d98ee8..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/wrappers/index.tsx +++ /dev/null @@ -1,21 +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 styled from 'styled-components'; - -export const WhitePageWrapper = styled.div` - background-color: ${({ theme }) => theme.eui.euiColorEmptyShade}; - border-top: ${({ theme }) => theme.eui.euiBorderThin}; - flex: 1 1 auto; -`; - -export const SectionWrapper = styled.div` - box-sizing: content-box; - margin: 0 auto; - max-width: 1175px; - width: 100%; -`; diff --git a/x-pack/plugins/security_solution/public/cases/pages/case.tsx b/x-pack/plugins/security_solution/public/cases/pages/case.tsx deleted file mode 100644 index ad0176bda6905..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/case.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; - -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUserCasesPermissions } from '../../common/lib/kibana'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { AllCases } from '../components/all_cases'; - -import { CaseFeatureNoPermissions } from './feature_no_permissions'; -import { SecurityPageName } from '../../app/types'; - -export const CasesPage = React.memo(() => { - const userPermissions = useGetUserCasesPermissions(); - - return userPermissions == null || userPermissions?.read ? ( - <> - <SecuritySolutionPageWrapper> - <AllCases userCanCrud={userPermissions?.crud ?? false} /> - </SecuritySolutionPageWrapper> - <SpyRoute pageName={SecurityPageName.case} /> - </> - ) : ( - <CaseFeatureNoPermissions /> - ); -}); - -CasesPage.displayName = 'CasesPage'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/case_details.tsx b/x-pack/plugins/security_solution/public/cases/pages/case_details.tsx deleted file mode 100644 index 6f35209ee1c9f..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/case_details.tsx +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback, useEffect, useState } from 'react'; -import { useParams } from 'react-router-dom'; - -import { SecurityPageName } from '../../app/types'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { getCaseUrl } from '../../common/components/link_to'; -import { navTabs } from '../../app/home/home_navigations'; -import { CaseView } from '../components/case_view'; -import { APP_UI_ID } from '../../../common/constants'; -import { Case } from '../../../../cases/common'; - -export const CaseDetailsPage = React.memo(() => { - const { - application: { navigateToApp }, - } = useKibana().services; - const userPermissions = useGetUserCasesPermissions(); - const { detailName: caseId, subCaseId } = useParams<{ - detailName?: string; - subCaseId?: string; - }>(); - const search = useGetUrlSearch(navTabs.case); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }); - } - }, [userPermissions, navigateToApp, search]); - - const [spyState, setSpyState] = useState<{ caseTitle: string | undefined }>({ - caseTitle: undefined, - }); - - const onCaseDataSuccess = useCallback( - (data: Case) => { - if (spyState.caseTitle === undefined || spyState.caseTitle !== data.title) { - setSpyState({ caseTitle: data.title }); - } - }, - [spyState.caseTitle] - ); - - return caseId != null ? ( - <> - <SecuritySolutionPageWrapper noPadding> - <CaseView - caseId={caseId} - subCaseId={subCaseId} - userCanCrud={userPermissions?.crud ?? false} - onCaseDataSuccess={onCaseDataSuccess} - /> - </SecuritySolutionPageWrapper> - <SpyRoute state={spyState} pageName={SecurityPageName.case} /> - </> - ) : null; -}); - -CaseDetailsPage.displayName = 'CaseDetailsPage'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/configure_cases.tsx b/x-pack/plugins/security_solution/public/cases/pages/configure_cases.tsx deleted file mode 100644 index b5feb3dc698b7..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/configure_cases.tsx +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useEffect, useMemo } from 'react'; -import styled from 'styled-components'; - -import { SecurityPageName } from '../../app/types'; -import { getCaseUrl } from '../../common/components/link_to'; -import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { navTabs } from '../../app/home/home_navigations'; -import { CaseHeaderPage } from '../components/case_header_page'; -import { WhitePageWrapper, SectionWrapper } from '../components/wrappers'; -import * as i18n from './translations'; -import { APP_ID, APP_UI_ID } from '../../../common/constants'; - -const ConfigureCasesPageComponent: React.FC = () => { - const { - application: { navigateToApp }, - cases, - } = useKibana().services; - const userPermissions = useGetUserCasesPermissions(); - const search = useGetUrlSearch(navTabs.case); - - const backOptions = useMemo( - () => ({ - path: getCaseUrl(search), - text: i18n.BACK_TO_ALL, - pageId: SecurityPageName.case, - }), - [search] - ); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }); - } - }, [navigateToApp, userPermissions, search]); - - const HeaderWrapper = styled.div` - padding-top: ${({ theme }) => theme.eui.paddingSizes.l}; - `; - - return ( - <> - <SecuritySolutionPageWrapper noPadding> - <SectionWrapper> - <HeaderWrapper> - <CaseHeaderPage title={i18n.CONFIGURE_CASES_PAGE_TITLE} backOptions={backOptions} /> - </HeaderWrapper> - </SectionWrapper> - <WhitePageWrapper> - {cases.getConfigureCases({ - userCanCrud: userPermissions?.crud ?? false, - owner: [APP_ID], - })} - </WhitePageWrapper> - </SecuritySolutionPageWrapper> - <SpyRoute pageName={SecurityPageName.case} /> - </> - ); -}; - -export const ConfigureCasesPage = React.memo(ConfigureCasesPageComponent); diff --git a/x-pack/plugins/security_solution/public/cases/pages/create_case.tsx b/x-pack/plugins/security_solution/public/cases/pages/create_case.tsx deleted file mode 100644 index 2d7d83cb1b50c..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/create_case.tsx +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useEffect, useMemo } from 'react'; - -import { SecurityPageName } from '../../app/types'; -import { getCaseUrl } from '../../common/components/link_to'; -import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { navTabs } from '../../app/home/home_navigations'; -import { CaseHeaderPage } from '../components/case_header_page'; -import { Create } from '../components/create'; -import * as i18n from './translations'; -import { APP_UI_ID } from '../../../common/constants'; - -export const CreateCasePage = React.memo(() => { - const userPermissions = useGetUserCasesPermissions(); - const search = useGetUrlSearch(navTabs.case); - const { - application: { navigateToApp }, - } = useKibana().services; - - const backOptions = useMemo( - () => ({ - path: getCaseUrl(search), - text: i18n.BACK_TO_ALL, - pageId: SecurityPageName.case, - }), - [search] - ); - - useEffect(() => { - if (userPermissions != null && !userPermissions.crud) { - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }); - } - }, [userPermissions, navigateToApp, search]); - - return ( - <> - <SecuritySolutionPageWrapper> - <CaseHeaderPage backOptions={backOptions} title={i18n.CREATE_TITLE} border /> - <Create /> - </SecuritySolutionPageWrapper> - <SpyRoute pageName={SecurityPageName.case} /> - </> - ); -}); - -CreateCasePage.displayName = 'CreateCasePage'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/feature_no_permissions.tsx b/x-pack/plugins/security_solution/public/cases/pages/feature_no_permissions.tsx deleted file mode 100644 index 9975db3d8b6fb..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/feature_no_permissions.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useMemo } from 'react'; - -import { EmptyPage } from '../../common/components/empty_page'; -import * as i18n from './translations'; -import { useKibana } from '../../common/lib/kibana'; - -export const CaseFeatureNoPermissions = React.memo(() => { - const docLinks = useKibana().services.docLinks; - const actions = useMemo( - () => ({ - feature: { - icon: 'documents', - label: i18n.GO_TO_DOCUMENTATION, - url: `${docLinks.links.siem.gettingStarted}`, - target: '_blank', - }, - }), - [docLinks] - ); - - return ( - <EmptyPage - actions={actions} - message={i18n.CASES_FEATURE_NO_PERMISSIONS_MSG} - data-test-subj="no_feature_permissions" - title={i18n.CASES_FEATURE_NO_PERMISSIONS_TITLE} - /> - ); -}); - -CaseFeatureNoPermissions.displayName = 'CaseFeatureNoPermissions'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/index.test.tsx b/x-pack/plugins/security_solution/public/cases/pages/index.test.tsx deleted file mode 100644 index 0d12d63fdc244..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/index.test.tsx +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; -import { BrowserRouter as Router } from 'react-router-dom'; - -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { TestProviders } from '../../common/mock'; -import { Case } from '.'; - -const useKibanaMock = useKibana as jest.Mocked<typeof useKibana>; -jest.mock('../../common/lib/kibana'); - -const mockedSetBadge = jest.fn(); - -describe('CaseContainerComponent', () => { - beforeEach(() => { - jest.clearAllMocks(); - useKibanaMock().services.chrome.setBadge = mockedSetBadge; - }); - - it('does not display the readonly glasses badge when the user has write permissions', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue({ - crud: true, - read: false, - }); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).not.toBeCalled(); - }); - - it('does not display the readonly glasses badge when the user has neither write nor read permissions', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue({ - crud: false, - read: false, - }); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).not.toBeCalled(); - }); - - it('does not display the readonly glasses badge when the user has null permissions', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue(null); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).not.toBeCalled(); - }); - - it('displays the readonly glasses badge read permissions but not write', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue({ - crud: false, - read: true, - }); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).toBeCalledTimes(1); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/pages/index.tsx b/x-pack/plugins/security_solution/public/cases/pages/index.tsx index 0faff93bb708c..751e8fde530ba 100644 --- a/x-pack/plugins/security_solution/public/cases/pages/index.tsx +++ b/x-pack/plugins/security_solution/public/cases/pages/index.tsx @@ -5,69 +5,165 @@ * 2.0. */ -import React, { useEffect } from 'react'; -import { Route, Switch } from 'react-router-dom'; +import React, { useCallback, useRef } from 'react'; +import { useDispatch } from 'react-redux'; +import { CaseViewRefreshPropInterface } from '../../../../cases/common'; +import { TimelineId } from '../../../common/types/timeline'; + +import { getRuleDetailsUrl, useFormatUrl } from '../../common/components/link_to'; import * as i18n from './translations'; -import { CaseDetailsPage } from './case_details'; -import { CasesPage } from './case'; -import { CreateCasePage } from './create_case'; -import { ConfigureCasesPage } from './configure_cases'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { CASES_PATH } from '../../../common/constants'; +import { useGetUserCasesPermissions, useKibana, useNavigation } from '../../common/lib/kibana'; +import { APP_ID, CASES_PATH, SecurityPageName } from '../../../common/constants'; +import { timelineActions } from '../../timelines/store/timeline'; +import { useSourcererDataView } from '../../common/containers/sourcerer'; +import { SourcererScopeName } from '../../common/store/sourcerer/model'; +import { CaseDetailsRefreshContext } from '../../common/components/endpoint/host_isolation/endpoint_host_isolation_cases_context'; +import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; +import { getEndpointDetailsPath } from '../../management/common/routing'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { useInsertTimeline } from '../components/use_insert_timeline'; +import * as timelineMarkdownPlugin from '../../common/components/markdown_editor/plugins/timeline'; +import { DetailsPanel } from '../../timelines/components/side_panel'; +import { InvestigateInTimelineAction } from '../../detections/components/alerts_table/timeline_actions/investigate_in_timeline_action'; +import { useFetchAlertData } from './use_fetch_alert_data'; -const caseDetailsPagePath = `${CASES_PATH}/:detailName`; -const subCaseDetailsPagePath = `${caseDetailsPagePath}/sub-cases/:subCaseId`; -const caseDetailsPagePathWithCommentId = `${caseDetailsPagePath}/:commentId`; -const subCaseDetailsPagePathWithCommentId = `${subCaseDetailsPagePath}/:commentId`; -const createCasePagePath = `${CASES_PATH}/create`; -const configureCasesPagePath = `${CASES_PATH}/configure`; +const TimelineDetailsPanel = () => { + const { browserFields, docValueFields, runtimeMappings } = useSourcererDataView( + SourcererScopeName.detections + ); + return ( + <DetailsPanel + browserFields={browserFields} + docValueFields={docValueFields} + entityType="events" + isFlyoutView + runtimeMappings={runtimeMappings} + timelineId={TimelineId.casePage} + /> + ); +}; + +const InvestigateInTimelineActionComponent = (alertIds: string[]) => { + return ( + <InvestigateInTimelineAction + ariaLabel={i18n.SEND_ALERT_TO_TIMELINE} + alertIds={alertIds} + key="investigate-in-timeline" + ecsRowData={null} + /> + ); +}; const CaseContainerComponent: React.FC = () => { + const { cases: casesUi } = useKibana().services; + const { getAppUrl, navigateTo } = useNavigation(); const userPermissions = useGetUserCasesPermissions(); - const chrome = useKibana().services.chrome; + const dispatch = useDispatch(); + const { formatUrl: detectionsFormatUrl, search: detectionsUrlSearch } = useFormatUrl( + SecurityPageName.rules + ); + + const getDetectionsRuleDetailsHref = useCallback( + (ruleId) => detectionsFormatUrl(getRuleDetailsUrl(ruleId ?? '', detectionsUrlSearch)), + [detectionsFormatUrl, detectionsUrlSearch] + ); + + const showAlertDetails = useCallback( + (alertId: string, index: string) => { + dispatch( + timelineActions.toggleDetailPanel({ + panelView: 'eventDetail', + timelineId: TimelineId.casePage, + params: { + eventId: alertId, + indexName: index, + }, + }) + ); + }, + [dispatch] + ); + + const endpointDetailsHref = (endpointId: string) => + getAppUrl({ + path: getEndpointDetailsPath({ + name: 'endpointActivityLog', + selected_endpoint: endpointId, + }), + }); - useEffect(() => { - // if the user is read only then display the glasses badge in the global navigation header - if (userPermissions != null && !userPermissions.crud && userPermissions.read) { - chrome.setBadge({ - text: i18n.READ_ONLY_BADGE_TEXT, - tooltip: i18n.READ_ONLY_BADGE_TOOLTIP, - iconType: 'glasses', - }); - } + const onComponentInitialized = useCallback(() => { + dispatch( + timelineActions.createTimeline({ + id: TimelineId.casePage, + columns: [], + dataViewId: '', + indexNames: [], + expandedDetail: {}, + show: false, + }) + ); + }, [dispatch]); - // remove the icon after the component unmounts - return () => { - chrome.setBadge(); - }; - }, [userPermissions, chrome]); + const refreshRef = useRef<CaseViewRefreshPropInterface>(null); return ( - <Switch> - <Route path={createCasePagePath}> - <CreateCasePage /> - </Route> - <Route path={configureCasesPagePath}> - <ConfigureCasesPage /> - </Route> - <Route exact path={subCaseDetailsPagePathWithCommentId}> - <CaseDetailsPage /> - </Route> - <Route exact path={caseDetailsPagePathWithCommentId}> - <CaseDetailsPage /> - </Route> - <Route exact path={subCaseDetailsPagePath}> - <CaseDetailsPage /> - </Route> - <Route path={caseDetailsPagePath}> - <CaseDetailsPage /> - </Route> - <Route strict exact path={CASES_PATH}> - <CasesPage /> - </Route> - </Switch> + <SecuritySolutionPageWrapper noPadding> + <CaseDetailsRefreshContext.Provider value={refreshRef}> + {casesUi.getCases({ + basePath: CASES_PATH, + owner: [APP_ID], + refreshRef, + onComponentInitialized, + actionsNavigation: { + href: endpointDetailsHref, + onClick: (endpointId: string, e) => { + if (e) { + e.preventDefault(); + } + return navigateTo({ + path: getEndpointDetailsPath({ + name: 'endpointActivityLog', + selected_endpoint: endpointId, + }), + }); + }, + }, + ruleDetailsNavigation: { + href: getDetectionsRuleDetailsHref, + onClick: async (ruleId: string | null | undefined, e) => { + if (e) { + e.preventDefault(); + } + return navigateTo({ + deepLinkId: SecurityPageName.rules, + path: getRuleDetailsUrl(ruleId ?? ''), + }); + }, + }, + showAlertDetails, + timelineIntegration: { + editor_plugins: { + parsingPlugin: timelineMarkdownPlugin.parser, + processingPluginRenderer: timelineMarkdownPlugin.renderer, + uiPlugin: timelineMarkdownPlugin.plugin, + }, + hooks: { + useInsertTimeline, + }, + ui: { + renderInvestigateInTimelineActionComponent: InvestigateInTimelineActionComponent, + renderTimelineDetailsPanel: TimelineDetailsPanel, + }, + }, + useFetchAlertData, + userCanCrud: userPermissions?.crud ?? false, + })} + </CaseDetailsRefreshContext.Provider> + <SpyRoute pageName={SecurityPageName.case} /> + </SecuritySolutionPageWrapper> ); }; -export const Case = React.memo(CaseContainerComponent); +export const Cases = React.memo(CaseContainerComponent); diff --git a/x-pack/plugins/security_solution/public/cases/pages/translations.ts b/x-pack/plugins/security_solution/public/cases/pages/translations.ts index 6768401b3f608..b2c03f1611def 100644 --- a/x-pack/plugins/security_solution/public/cases/pages/translations.ts +++ b/x-pack/plugins/security_solution/public/cases/pages/translations.ts @@ -7,174 +7,17 @@ import { i18n } from '@kbn/i18n'; -export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsTitle', +export const SEND_ALERT_TO_TIMELINE = i18n.translate( + 'xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip', { - defaultMessage: 'Kibana feature privileges required', + defaultMessage: 'Investigate in timeline', } ); -export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsMessage', - { - defaultMessage: - 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', - } -); - -export const BACK_TO_ALL = i18n.translate('xpack.securitySolution.cases.caseView.backLabel', { - defaultMessage: 'Back to cases', -}); - -export const CANCEL = i18n.translate('xpack.securitySolution.cases.caseView.cancel', { - defaultMessage: 'Cancel', -}); - -export const DELETE_CASE = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCase', - { - defaultMessage: 'Delete case', - } -); - -export const DELETE_CASES = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCases', - { - defaultMessage: 'Delete cases', - } -); - -export const NAME = i18n.translate('xpack.securitySolution.cases.caseView.name', { - defaultMessage: 'Name', -}); - -export const REPORTER = i18n.translate('xpack.securitySolution.cases.caseView.reporterLabel', { - defaultMessage: 'Reporter', -}); - -export const PARTICIPANTS = i18n.translate( - 'xpack.securitySolution.cases.caseView.particpantsLabel', - { - defaultMessage: 'Participants', - } -); - -export const CREATE_BC_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.breadcrumb', { - defaultMessage: 'Create', -}); - -export const CREATE_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.create', { - defaultMessage: 'Create new case', -}); - -export const DESCRIPTION = i18n.translate('xpack.securitySolution.cases.caseView.description', { - defaultMessage: 'Description', -}); - -export const DESCRIPTION_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.descriptionFieldRequiredError', - { - defaultMessage: 'A description is required.', - } -); - -export const EDIT = i18n.translate('xpack.securitySolution.cases.caseView.edit', { - defaultMessage: 'Edit', -}); - -export const OPTIONAL = i18n.translate('xpack.securitySolution.cases.caseView.optional', { - defaultMessage: 'Optional', -}); - export const PAGE_TITLE = i18n.translate('xpack.securitySolution.cases.pageTitle', { defaultMessage: 'Cases', }); -export const CREATE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.createCase', { - defaultMessage: 'Create case', -}); - -export const CLOSE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.closeCase', { - defaultMessage: 'Close case', -}); - -export const CASE_NAME = i18n.translate('xpack.securitySolution.cases.caseView.caseName', { - defaultMessage: 'Case name', -}); - -export const TO = i18n.translate('xpack.securitySolution.cases.caseView.to', { - defaultMessage: 'to', -}); - -export const TAGS = i18n.translate('xpack.securitySolution.cases.caseView.tags', { - defaultMessage: 'Tags', -}); - -export const ACTIONS = i18n.translate('xpack.securitySolution.cases.allCases.actions', { - defaultMessage: 'Actions', -}); - -export const NO_REPORTERS_AVAILABLE = i18n.translate( - 'xpack.securitySolution.cases.caseView.noReportersAvailable', - { - defaultMessage: 'No reporters available.', - } -); - -export const COMMENTS = i18n.translate('xpack.securitySolution.cases.allCases.comments', { - defaultMessage: 'Comments', -}); - -export const NO_TAGS = i18n.translate('xpack.securitySolution.cases.caseView.noTags', { - defaultMessage: 'No tags are currently assigned to this case.', -}); - -export const TITLE_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.titleFieldRequiredError', - { - defaultMessage: 'A title is required.', - } -); - -export const CONFIGURE_CASES_PAGE_TITLE = i18n.translate( - 'xpack.securitySolution.cases.configureCases.headerTitle', - { - defaultMessage: 'Configure cases', - } -); - -export const SAVE = i18n.translate('xpack.securitySolution.cases.caseView.description.save', { - defaultMessage: 'Save', -}); - -export const GO_TO_DOCUMENTATION = i18n.translate( - 'xpack.securitySolution.cases.caseView.goToDocumentationButton', - { - defaultMessage: 'View documentation', - } -); - -export const CONNECTORS = i18n.translate('xpack.securitySolution.cases.caseView.connectors', { - defaultMessage: 'External Incident Management System', +export const CREATE_BC_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.breadcrumb', { + defaultMessage: 'Create', }); - -export const EDIT_CONNECTOR = i18n.translate( - 'xpack.securitySolution.cases.caseView.editConnector', - { - defaultMessage: 'Change external incident management system', - } -); - -export const READ_ONLY_BADGE_TEXT = i18n.translate( - 'xpack.securitySolution.cases.badge.readOnly.text', - { - defaultMessage: 'Read only', - } -); - -export const READ_ONLY_BADGE_TOOLTIP = i18n.translate( - 'xpack.securitySolution.cases.badge.readOnly.tooltip', - { - defaultMessage: 'Unable to create or edit cases', - } -); diff --git a/x-pack/plugins/security_solution/public/cases/pages/use_fetch_alert_data.ts b/x-pack/plugins/security_solution/public/cases/pages/use_fetch_alert_data.ts new file mode 100644 index 0000000000000..d75e7324c9afe --- /dev/null +++ b/x-pack/plugins/security_solution/public/cases/pages/use_fetch_alert_data.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; +import { useSourcererDataView } from '../../common/containers/sourcerer'; +import { SourcererScopeName } from '../../common/store/sourcerer/model'; +import { useQueryAlerts } from '../../detections/containers/detection_engine/alerts/use_query'; +import { Ecs } from '../../../../cases/common'; +import { buildAlertsQuery, formatAlertToEcsSignal, SignalHit } from '../../common/utils/alerts'; + +export const useFetchAlertData = (alertIds: string[]): [boolean, Record<string, Ecs>] => { + const { selectedPatterns } = useSourcererDataView(SourcererScopeName.detections); + const alertsQuery = useMemo(() => buildAlertsQuery(alertIds), [alertIds]); + + const { loading: isLoadingAlerts, data: alertsData } = useQueryAlerts<SignalHit, unknown>({ + query: alertsQuery, + indexName: selectedPatterns[0], + }); + + const alerts = useMemo( + () => + alertsData?.hits.hits.reduce<Record<string, Ecs>>( + (acc, { _id, _index, _source }) => ({ + ...acc, + [_id]: { + ...formatAlertToEcsSignal(_source), + _id, + _index, + timestamp: _source['@timestamp'], + }, + }), + {} + ) ?? {}, + [alertsData?.hits.hits] + ); + + return [isLoadingAlerts, alerts]; +}; diff --git a/x-pack/plugins/security_solution/public/cases/pages/utils.ts b/x-pack/plugins/security_solution/public/cases/pages/utils.ts deleted file mode 100644 index f791bc677d5c6..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/utils.ts +++ /dev/null @@ -1,59 +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 { isEmpty } from 'lodash/fp'; - -import { ChromeBreadcrumb } from 'src/core/public'; - -import { getCaseDetailsUrl, getCreateCaseUrl } from '../../common/components/link_to'; -import { RouteSpyState } from '../../common/utils/route/types'; -import * as i18n from './translations'; -import { GetUrlForApp } from '../../common/components/navigation/types'; -import { APP_UI_ID } from '../../../common/constants'; -import { SecurityPageName } from '../../app/types'; - -export const getBreadcrumbs = ( - params: RouteSpyState, - search: string[], - getUrlForApp: GetUrlForApp -): ChromeBreadcrumb[] => { - const queryParameters = !isEmpty(search[0]) ? search[0] : ''; - - let breadcrumb = [ - { - text: i18n.PAGE_TITLE, - href: getUrlForApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: queryParameters, - }), - }, - ]; - if (params.pathName === '/create') { - breadcrumb = [ - ...breadcrumb, - { - text: i18n.CREATE_BC_TITLE, - href: getUrlForApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCreateCaseUrl(queryParameters), - }), - }, - ]; - } else if (params.detailName != null) { - breadcrumb = [ - ...breadcrumb, - { - text: params.state?.caseTitle ?? '', - href: getUrlForApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: params.detailName, search: queryParameters }), - }), - }, - ]; - } - return breadcrumb; -}; diff --git a/x-pack/plugins/security_solution/public/cases/routes.tsx b/x-pack/plugins/security_solution/public/cases/routes.tsx index 8ea30e60379ca..19421940e338d 100644 --- a/x-pack/plugins/security_solution/public/cases/routes.tsx +++ b/x-pack/plugins/security_solution/public/cases/routes.tsx @@ -8,13 +8,13 @@ import React from 'react'; import { TrackApplicationView } from '../../../../../src/plugins/usage_collection/public'; -import { SecurityPageName, SecuritySubPluginRoutes } from '../app/types'; +import { SecuritySubPluginRoutes } from '../app/types'; import { CASES_PATH } from '../../common/constants'; -import { Case } from './pages'; +import { Cases } from './pages'; export const CasesRoutes = () => ( - <TrackApplicationView viewId={SecurityPageName.case}> - <Case /> + <TrackApplicationView viewId="case"> + <Cases /> </TrackApplicationView> ); diff --git a/x-pack/plugins/security_solution/public/cases/translations.ts b/x-pack/plugins/security_solution/public/cases/translations.ts deleted file mode 100644 index 1405a8baa1717..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/translations.ts +++ /dev/null @@ -1,173 +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 { i18n } from '@kbn/i18n'; - -export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsTitle', - { - defaultMessage: 'Kibana feature privileges required', - } -); - -export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsMessage', - { - defaultMessage: - 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', - } -); - -export const BACK_TO_ALL = i18n.translate('xpack.securitySolution.cases.caseView.backLabel', { - defaultMessage: 'Back to cases', -}); - -export const CANCEL = i18n.translate('xpack.securitySolution.cases.caseView.cancel', { - defaultMessage: 'Cancel', -}); - -export const DELETE_CASE = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCase', - { - defaultMessage: 'Delete case', - } -); - -export const DELETE_CASES = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCases', - { - defaultMessage: 'Delete cases', - } -); - -export const NAME = i18n.translate('xpack.securitySolution.cases.caseView.name', { - defaultMessage: 'Name', -}); - -export const OPENED_ON = i18n.translate('xpack.securitySolution.cases.caseView.openedOn', { - defaultMessage: 'Opened on', -}); - -export const CLOSED_ON = i18n.translate('xpack.securitySolution.cases.caseView.closedOn', { - defaultMessage: 'Closed on', -}); - -export const REPORTER = i18n.translate('xpack.securitySolution.cases.caseView.reporterLabel', { - defaultMessage: 'Reporter', -}); - -export const PARTICIPANTS = i18n.translate( - 'xpack.securitySolution.cases.caseView.particpantsLabel', - { - defaultMessage: 'Participants', - } -); -export const CREATE_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.create', { - defaultMessage: 'Create new case', -}); - -export const DESCRIPTION = i18n.translate('xpack.securitySolution.cases.caseView.description', { - defaultMessage: 'Description', -}); - -export const DESCRIPTION_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.descriptionFieldRequiredError', - { - defaultMessage: 'A description is required.', - } -); - -export const EDIT = i18n.translate('xpack.securitySolution.cases.caseView.edit', { - defaultMessage: 'Edit', -}); - -export const OPTIONAL = i18n.translate('xpack.securitySolution.cases.caseView.optional', { - defaultMessage: 'Optional', -}); - -export const PAGE_TITLE = i18n.translate('xpack.securitySolution.cases.pageTitle', { - defaultMessage: 'Cases', -}); - -export const CREATE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.createCase', { - defaultMessage: 'Create case', -}); - -export const CLOSE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.closeCase', { - defaultMessage: 'Close case', -}); -export const OPEN_CASE = i18n.translate('xpack.securitySolution.cases.caseView.openCase', { - defaultMessage: 'Open case', -}); - -export const CASE_NAME = i18n.translate('xpack.securitySolution.cases.caseView.caseName', { - defaultMessage: 'Case name', -}); - -export const TO = i18n.translate('xpack.securitySolution.cases.caseView.to', { - defaultMessage: 'to', -}); - -export const TAGS = i18n.translate('xpack.securitySolution.cases.caseView.tags', { - defaultMessage: 'Tags', -}); - -export const ACTIONS = i18n.translate('xpack.securitySolution.cases.allCases.actions', { - defaultMessage: 'Actions', -}); - -export const NO_REPORTERS_AVAILABLE = i18n.translate( - 'xpack.securitySolution.cases.caseView.noReportersAvailable', - { - defaultMessage: 'No reporters available.', - } -); - -export const COMMENTS = i18n.translate('xpack.securitySolution.cases.allCases.comments', { - defaultMessage: 'Comments', -}); -export const NO_TAGS = i18n.translate('xpack.securitySolution.cases.caseView.noTags', { - defaultMessage: 'No tags are currently assigned to this case.', -}); - -export const TITLE_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.titleFieldRequiredError', - { - defaultMessage: 'A title is required.', - } -); - -export const SAVE = i18n.translate('xpack.securitySolution.cases.caseView.description.save', { - defaultMessage: 'Save', -}); - -export const CONNECTORS = i18n.translate('xpack.securitySolution.cases.caseView.connectors', { - defaultMessage: 'External Incident Management System', -}); -export const UNKNOWN = i18n.translate('xpack.securitySolution.cases.caseView.unknown', { - defaultMessage: 'Unknown', -}); -export const OPEN_CASES = i18n.translate('xpack.securitySolution.cases.caseTable.openCases', { - defaultMessage: 'Open cases', -}); -export const ALERT = i18n.translate('xpack.securitySolution.common.alertLabel', { - defaultMessage: 'Alert', -}); - -export const ALERT_ADDED_TO_CASE = i18n.translate( - 'xpack.securitySolution.common.alertAddedToCase', - { - defaultMessage: 'added to case', - } -); - -export const SELECTABLE_MESSAGE_COLLECTIONS = i18n.translate( - 'xpack.securitySolution.common.allCases.table.selectableMessageCollections', - { - defaultMessage: 'Cases with sub-cases cannot be selected', - } -); diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts index de934e00c9117..5639721403cbd 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts @@ -43,12 +43,12 @@ const getMockObject = ( ): RouteSpyState & TabNavigationProps => ({ detailName, navTabs: { - case: { + cases: { disabled: false, href: '/app/security/cases', - id: 'case', + id: 'cases', name: 'Cases', - urlKey: 'case', + urlKey: 'cases', }, hosts: { disabled: false, @@ -377,43 +377,29 @@ describe('Navigation Breadcrumbs', () => { ]); }); - test('should return Cases breadcrumbs when supplied case pathname', () => { + test('should return null breadcrumbs when supplied Cases pathname', () => { const breadcrumbs = getBreadcrumbsForRoute( - getMockObject('case', '/', undefined), + getMockObject('cases', '/', undefined), getUrlForAppMock ); - expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, - { - text: 'Cases', - href: "securitySolutionUI/case?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", - }, - ]); + expect(breadcrumbs).toEqual(null); }); - test('should return Case details breadcrumbs when supplied case details pathname', () => { + + test('should return null breadcrumbs when supplied Cases details pathname', () => { const sampleCase = { id: 'my-case-id', name: 'Case name', }; const breadcrumbs = getBreadcrumbsForRoute( { - ...getMockObject('case', `/${sampleCase.id}`, sampleCase.id), + ...getMockObject('cases', `/${sampleCase.id}`, sampleCase.id), state: { caseTitle: sampleCase.name }, }, getUrlForAppMock ); - expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, - { - text: 'Cases', - href: "securitySolutionUI/case?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", - }, - { - text: sampleCase.name, - href: `securitySolutionUI/case/${sampleCase.id}?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))`, - }, - ]); + expect(breadcrumbs).toEqual(null); }); + test('should return Admin breadcrumbs when supplied endpoints pathname', () => { const breadcrumbs = getBreadcrumbsForRoute( getMockObject('administration', '/endpoints', undefined), diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts index 029dc70c398e3..251e8bc133a23 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts @@ -13,7 +13,6 @@ import { APP_NAME, APP_UI_ID } from '../../../../../common/constants'; import { StartServices } from '../../../../types'; import { getBreadcrumbs as getHostDetailsBreadcrumbs } from '../../../../hosts/pages/details/utils'; import { getBreadcrumbs as getIPDetailsBreadcrumbs } from '../../../../network/pages/details'; -import { getBreadcrumbs as getCaseDetailsBreadcrumbs } from '../../../../cases/pages/utils'; import { getBreadcrumbs as getDetectionRulesBreadcrumbs } from '../../../../detections/pages/detection_engine/rules/utils'; import { getBreadcrumbs as getTimelinesBreadcrumbs } from '../../../../timelines/pages'; import { getBreadcrumbs as getUebaBreadcrumbs } from '../../../../ueba/pages/details/utils'; @@ -174,24 +173,9 @@ export const getBreadcrumbsForRoute = ( } if (isCaseRoutes(spyState) && object.navTabs) { - const tempNav: SearchNavTab = { urlKey: 'case', isDetailPage: false }; - let urlStateKeys = [getOr(tempNav, spyState.pageName, object.navTabs)]; - if (spyState.tabName != null) { - urlStateKeys = [...urlStateKeys, getOr(tempNav, spyState.tabName, object.navTabs)]; - } - - return [ - siemRootBreadcrumb, - ...getCaseDetailsBreadcrumbs( - spyState, - urlStateKeys.reduce( - (acc: string[], item: SearchNavTab) => [...acc, getSearch(item, object)], - [] - ), - getUrlForApp - ), - ]; + return null; // controlled by Cases routes } + if (isTimelinesRoutes(spyState) && object.navTabs) { const tempNav: SearchNavTab = { urlKey: 'timeline', isDetailPage: false }; const urlStateKeys = [getOr(tempNav, spyState.pageName, object.navTabs)]; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/types.ts b/x-pack/plugins/security_solution/public/common/components/navigation/types.ts index 878ff074685e9..76b5034ce3165 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/types.ts @@ -6,7 +6,7 @@ */ import { UrlStateType } from '../url_state/constants'; -import { SecurityPageName } from '../../../app/types'; +import type { SecurityPageName } from '../../../app/types'; import { UrlState } from '../url_state/types'; import { SiemRouteType } from '../../utils/route/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx index 62f2cf56b7a12..5bc4719640e5e 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx @@ -298,15 +298,15 @@ describe('useSecuritySolutionNavigation', () => { ); const caseNavItem = (result.current?.items || [])[3].items?.find( - (item) => item['data-test-subj'] === 'navigation-case' + (item) => item['data-test-subj'] === 'navigation-cases' ); expect(caseNavItem).toMatchInlineSnapshot(` Object { - "data-href": "securitySolutionUI/case?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", - "data-test-subj": "navigation-case", + "data-href": "securitySolutionUI/cases?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", + "data-test-subj": "navigation-cases", "disabled": false, - "href": "securitySolutionUI/case?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", - "id": "case", + "href": "securitySolutionUI/cases?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", + "id": "cases", "isSelected": false, "name": "Cases", "onClick": [Function], @@ -326,7 +326,7 @@ describe('useSecuritySolutionNavigation', () => { ); const caseNavItem = (result.current?.items || [])[3].items?.find( - (item) => item['data-test-subj'] === 'navigation-case' + (item) => item['data-test-subj'] === 'navigation-cases' ); expect(caseNavItem).toBeFalsy(); }); diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx index 961090a01ba19..d012945a23e27 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx +++ b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx @@ -90,7 +90,7 @@ function usePrimaryNavigationItemsToDisplay(navTabs: Record<string, NavTab>) { { ...securityNavGroup.investigate, items: hasCasesReadPermissions - ? [navTabs.timelines, navTabs.case] + ? [navTabs.timelines, navTabs.cases] : [navTabs.timelines], }, { @@ -107,7 +107,7 @@ function usePrimaryNavigationItemsToDisplay(navTabs: Record<string, NavTab>) { ? [ { ...securityNavGroup.investigate, - items: [navTabs.case], + items: [navTabs.cases], }, ] : [], diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts b/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts index edf09a52006fd..3aca02dc420bf 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts @@ -28,7 +28,7 @@ export enum CONSTANTS { export type UrlStateType = | 'administration' | 'alerts' - | 'case' + | 'cases' | 'exceptions' | 'host' | 'network' diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts index 4537b7be01f54..559dff64eec4b 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts @@ -107,7 +107,7 @@ export const getUrlType = (pageName: string): UrlStateType => { } else if (pageName === SecurityPageName.timelines) { return 'timeline'; } else if (pageName === SecurityPageName.case) { - return 'case'; + return 'cases'; } else if (pageName === SecurityPageName.administration) { return 'administration'; } diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/utils/alerts.test.tsx similarity index 88% rename from x-pack/plugins/security_solution/public/cases/components/case_view/helpers.test.tsx rename to x-pack/plugins/security_solution/public/common/utils/alerts.test.tsx index 5eb0a03fc5db7..72f9ac9e7b6f3 100644 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/utils/alerts.test.tsx @@ -5,9 +5,9 @@ * 2.0. */ -import { buildAlertsQuery } from './helpers'; +import { buildAlertsQuery } from './alerts'; -describe('Case view helpers', () => { +describe('Alerts helpers', () => { describe('buildAlertsQuery', () => { it('it builds the alerts query', () => { expect(buildAlertsQuery(['alert-id-1', 'alert-id-2'])).toEqual({ diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.ts b/x-pack/plugins/security_solution/public/common/utils/alerts.ts similarity index 65% rename from x-pack/plugins/security_solution/public/cases/components/case_view/helpers.ts rename to x-pack/plugins/security_solution/public/common/utils/alerts.ts index bfaa5fb7652d4..cdbabdcbb560e 100644 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/utils/alerts.ts @@ -6,11 +6,7 @@ */ import { isObject, get, isString, isNumber } from 'lodash'; -import { useMemo } from 'react'; -import { useSourcererDataView } from '../../../common/containers/sourcerer'; -import { SourcererScopeName } from '../../../common/store/sourcerer/model'; -import { useQueryAlerts } from '../../../detections/containers/detection_engine/alerts/use_query'; -import { Ecs } from '../../../../../cases/common'; +import { Ecs } from '../../../../cases/common'; // TODO we need to allow -> docValueFields: [{ field: "@timestamp" }], export const buildAlertsQuery = (alertIds: string[]) => { @@ -85,7 +81,7 @@ interface Signal { }; } -interface SignalHit { +export interface SignalHit { _id: string; _index: string; _source: { @@ -101,31 +97,3 @@ export interface Alert { signal: Signal; [key: string]: unknown; } -export const useFetchAlertData = (alertIds: string[]): [boolean, Record<string, Ecs>] => { - const { selectedPatterns } = useSourcererDataView(SourcererScopeName.detections); - const alertsQuery = useMemo(() => buildAlertsQuery(alertIds), [alertIds]); - - const { loading: isLoadingAlerts, data: alertsData } = useQueryAlerts<SignalHit, unknown>({ - query: alertsQuery, - indexName: selectedPatterns[0], - }); - - const alerts = useMemo( - () => - alertsData?.hits.hits.reduce<Record<string, Ecs>>( - (acc, { _id, _index, _source }) => ({ - ...acc, - [_id]: { - ...formatAlertToEcsSignal(_source), - _id, - _index, - timestamp: _source['@timestamp'], - }, - }), - {} - ) ?? {}, - [alertsData?.hits.hits] - ); - - return [isLoadingAlerts, alerts]; -}; diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts index 64b5d6ea9431a..c459fab89a25e 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts @@ -8,14 +8,11 @@ import { useEffect, useState } from 'react'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { isEmpty } from 'lodash'; -import { - buildAlertsQuery, - formatAlertToEcsSignal, -} from '../../../../cases/components/case_view/helpers'; import { Ecs } from '../../../../../common/ecs'; import { DETECTION_ENGINE_QUERY_SIGNALS_URL } from '../../../../../common/constants'; import { KibanaServices } from '../../../../common/lib/kibana'; +import { buildAlertsQuery, formatAlertToEcsSignal } from '../../../../common/utils/alerts'; export const useFetchEcsAlertsData = ({ alertIds, diff --git a/x-pack/plugins/security_solution/public/helpers.tsx b/x-pack/plugins/security_solution/public/helpers.tsx index 170d7175aa5f3..d330da94e779c 100644 --- a/x-pack/plugins/security_solution/public/helpers.tsx +++ b/x-pack/plugins/security_solution/public/helpers.tsx @@ -109,6 +109,7 @@ export const manageOldSiemRoutes = async (coreStart: CoreStart) => { }); break; case SecurityPageName.case: + case 'case': application.navigateToApp(APP_UI_ID, { deepLinkId: SecurityPageName.case, replace: true, diff --git a/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx b/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx index e2d7d8264e9f9..03de4deabfe4a 100644 --- a/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx @@ -7,58 +7,17 @@ import React from 'react'; -import { - getCaseDetailsUrl, - getCaseUrl, - getCreateCaseUrl, -} from '../../../common/components/link_to/redirect_to_case'; -import { useFormatUrl } from '../../../common/components/link_to'; import { useGetUserCasesPermissions, useKibana } from '../../../common/lib/kibana'; -import { APP_ID, APP_UI_ID } from '../../../../common/constants'; -import { SecurityPageName } from '../../../app/types'; -import { AllCasesNavProps } from '../../../cases/components/all_cases'; +import { APP_ID } from '../../../../common/constants'; const MAX_CASES_TO_SHOW = 3; const RecentCasesComponent = () => { - const { formatUrl } = useFormatUrl(SecurityPageName.case); - const { - cases: casesUi, - application: { navigateToApp }, - } = useKibana().services; + const { cases: casesUi } = useKibana().services; - const hasWritePermissions = useGetUserCasesPermissions()?.crud ?? false; + const userCanCrud = useGetUserCasesPermissions()?.crud ?? false; return casesUi.getRecentCases({ - allCasesNavigation: { - href: formatUrl(getCaseUrl()), - onClick: async (e) => { - e?.preventDefault(); - return navigateToApp(APP_UI_ID, { deepLinkId: SecurityPageName.case }); - }, - }, - caseDetailsNavigation: { - href: ({ detailName, subCaseId }: AllCasesNavProps) => { - return formatUrl(getCaseDetailsUrl({ id: detailName, subCaseId })); - }, - onClick: async ({ detailName, subCaseId, search }, e) => { - e?.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: detailName, search, subCaseId }), - }); - }, - }, - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: async (e) => { - e?.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCreateCaseUrl(), - }); - }, - }, - hasWritePermissions, + userCanCrud, maxCasesToShow: MAX_CASES_TO_SHOW, owner: [APP_ID], }); diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx index ff8746f4729d7..2724221c52905 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx @@ -17,11 +17,7 @@ import { setInsertTimeline, showTimeline } from '../../../store/timeline/actions import { useDeepEqualSelector } from '../../../../common/hooks/use_selector'; import { useGetUserCasesPermissions, useKibana } from '../../../../common/lib/kibana'; import { TimelineStatus, TimelineId, TimelineType } from '../../../../../common/types/timeline'; -import { - getCreateCaseUrl, - getCaseDetailsUrl, - useFormatUrl, -} from '../../../../common/components/link_to'; +import { getCreateCaseUrl, getCaseDetailsUrl } from '../../../../common/components/link_to'; import { SecurityPageName } from '../../../../app/types'; import { timelineDefaults } from '../../../../timelines/store/timeline/defaults'; import * as i18n from '../../timeline/properties/translations'; @@ -71,15 +67,7 @@ const AddToCaseButtonComponent: React.FC<Props> = ({ timelineId }) => { [dispatch, graphEventId, navigateToApp, savedObjectId, timelineId, timelineTitle] ); - const { formatUrl } = useFormatUrl(SecurityPageName.case); const userPermissions = useGetUserCasesPermissions(); - const goToCreateCase = useCallback( - (ev) => { - ev.preventDefault(); - onRowClick(); - }, - [onRowClick] - ); const handleButtonClick = useCallback(() => { setPopover((currentIsOpen) => !currentIsOpen); @@ -174,10 +162,6 @@ const AddToCaseButtonComponent: React.FC<Props> = ({ timelineId }) => { </EuiPopover> {isCaseModalOpen && cases.getAllCasesSelectorModal({ - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: goToCreateCase, - }, onRowClick, userCanCrud: userPermissions?.crud ?? false, owner: [APP_ID], diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx index e4d97abc0433a..c2179abbb61df 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx @@ -32,7 +32,7 @@ import { TimelineStatus, TimelineTabs } from '../../../../../common/types/timeli import { appSelectors } from '../../../../common/store/app'; import { AddNote } from '../../notes/add_note'; import { CREATED_BY, NOTES } from '../../notes/translations'; -import { PARTICIPANTS } from '../../../../cases/translations'; +import { PARTICIPANTS } from '../translations'; import { NotePreviews } from '../../open_timeline/note_previews'; import { TimelineResultNote } from '../../open_timeline/types'; import { getTimelineNoteSelector } from './selectors'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts index 5673f86256a4c..0095fdace4723 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts @@ -53,3 +53,7 @@ export const TIMELINE_TEMPLATE = i18n.translate( defaultMessage: 'Timeline template', } ); + +export const PARTICIPANTS = i18n.translate('xpack.securitySolution.timeline.participantsTitle', { + defaultMessage: 'Participants', +}); diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx index ad588b491d06a..621f23c186488 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx @@ -7,7 +7,11 @@ import React from 'react'; import { mount } from 'enzyme'; -import { TestProviders, mockGetAllCasesSelectorModal } from '../../../../mock'; +import { + TestProviders, + mockGetAllCasesSelectorModal, + mockGetCreateCaseFlyout, +} from '../../../../mock'; import { AddToCaseAction } from './add_to_case_action'; import { SECURITY_SOLUTION_OWNER } from '../../../../../../cases/common'; import { AddToCaseActionButton } from './add_to_case_action_button'; @@ -68,7 +72,7 @@ describe('AddToCaseAction', () => { expect(wrapper.find(`[data-test-subj="add-existing-case-menu-item"]`).exists()).toBeTruthy(); }); - it('it opens the create case modal', () => { + it('it opens the create case flyout', () => { const wrapper = mount( <TestProviders> <AddToCaseActionButton {...props} /> @@ -78,7 +82,7 @@ describe('AddToCaseAction', () => { wrapper.find(`[data-test-subj="attach-alert-to-case-button"]`).first().simulate('click'); wrapper.find(`[data-test-subj="add-new-case-item"]`).first().simulate('click'); - expect(wrapper.find('[data-test-subj="create-case-flyout"]').exists()).toBeTruthy(); + expect(mockGetCreateCaseFlyout).toHaveBeenCalled(); }); it('it opens the all cases modal', () => { @@ -92,7 +96,7 @@ describe('AddToCaseAction', () => { wrapper.find(`[data-test-subj="attach-alert-to-case-button"]`).first().simulate('click'); wrapper.find(`[data-test-subj="add-existing-case-menu-item"]`).first().simulate('click'); - expect(wrapper.find('[data-test-subj="all-cases-modal"]')).toBeTruthy(); + expect(mockGetAllCasesSelectorModal).toHaveBeenCalled(); }); it('it set rule information as null when missing', () => { diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx index c8517a26f6295..05b18da3293bd 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx @@ -12,12 +12,9 @@ import { TimelineItem } from '../../../../../common/'; import { useAddToCase, normalizedEventFields } from '../../../../hooks/use_add_to_case'; import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; import { TimelinesStartServices } from '../../../../types'; -import { CreateCaseFlyout } from './create/flyout'; import { tGridActions } from '../../../../'; -import * as i18n from './translations'; export interface AddToCaseActionProps { - ariaLabel?: string; event?: TimelineItem; useInsertTimeline?: Function; casePermissions: { @@ -31,7 +28,6 @@ export interface AddToCaseActionProps { } const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ - ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, casePermissions, @@ -46,15 +42,13 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ const { cases } = useKibana<TimelinesStartServices>().services; const { onCaseClicked, - goToCreateCase, onCaseSuccess, attachAlertToCase, - createCaseUrl, isAllCaseModalOpen, isCreateCaseFlyoutOpen, - } = useAddToCase({ event, useInsertTimeline, casePermissions, appId, owner, onClose }); + } = useAddToCase({ event, casePermissions, appId, owner, onClose }); - const getAllCasesSelectorModalProps = useMemo(() => { + const allCasesSelectorModalProps = useMemo(() => { const { ruleId, ruleName } = normalizedEventFields(event); return { alertData: { @@ -66,10 +60,6 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ }, owner, }, - createCaseNavigation: { - href: createCaseUrl, - onClick: goToCreateCase, - }, hooks: { useInsertTimeline, }, @@ -85,8 +75,6 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ casePermissions?.crud, onCaseSuccess, onCaseClicked, - createCaseUrl, - goToCreateCase, eventId, eventIndex, dispatch, @@ -99,19 +87,30 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ dispatch(tGridActions.setOpenAddToNewCase({ id: eventId, isOpen: false })); }, [dispatch, eventId]); + const createCaseFlyoutProps = useMemo(() => { + return { + afterCaseCreated: attachAlertToCase, + onClose: closeCaseFlyoutOpen, + onSuccess: onCaseSuccess, + useInsertTimeline, + owner: [owner], + disableAlerts, + userCanCrud: casePermissions?.crud ?? false, + }; + }, [ + attachAlertToCase, + closeCaseFlyoutOpen, + onCaseSuccess, + useInsertTimeline, + owner, + disableAlerts, + casePermissions, + ]); + return ( <> - {isCreateCaseFlyoutOpen && ( - <CreateCaseFlyout - afterCaseCreated={attachAlertToCase} - onCloseFlyout={closeCaseFlyoutOpen} - onSuccess={onCaseSuccess} - useInsertTimeline={useInsertTimeline} - owner={owner} - disableAlerts={disableAlerts} - /> - )} - {isAllCaseModalOpen && cases.getAllCasesSelectorModal(getAllCasesSelectorModalProps)} + {isCreateCaseFlyoutOpen && cases.getCreateCaseFlyout(createCaseFlyoutProps)} + {isAllCaseModalOpen && cases.getAllCasesSelectorModal(allCasesSelectorModalProps)} </> ); }; diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx index 460f22d55061a..9757bd94b1746 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx @@ -20,7 +20,6 @@ import { ActionIconItem } from '../../action_icon_item'; import * as i18n from './translations'; const AddToCaseActionButtonComponent: React.FC<AddToCaseActionProps> = ({ - ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, casePermissions, @@ -71,16 +70,16 @@ const AddToCaseActionButtonComponent: React.FC<AddToCaseActionProps> = ({ () => ( <EuiToolTip data-test-subj="attach-alert-to-case-tooltip" content={tooltipContext}> <EuiButtonIcon - aria-label={ariaLabel} data-test-subj="attach-alert-to-case-button" size="s" iconType="folderClosed" onClick={openPopover} isDisabled={isDisabled} + aria-label={tooltipContext} /> </EuiToolTip> ), - [ariaLabel, isDisabled, openPopover, tooltipContext] + [isDisabled, openPopover, tooltipContext] ); return ( diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx index a1fdfe1e8dfa7..a9238c95ee916 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx @@ -12,7 +12,11 @@ import { useAddToCase } from '../../../../hooks/use_add_to_case'; import { AddToCaseActionProps } from './add_to_case_action'; import * as i18n from './translations'; -const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ +interface AddToCaseActionButtonProps extends AddToCaseActionProps { + ariaLabel?: string; +} + +const AddToCaseActionButtonComponent: React.FC<AddToCaseActionButtonProps> = ({ ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, @@ -47,7 +51,7 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ ); }; -export const AddToExistingCaseButton = memo(AddToCaseActionComponent); +export const AddToExistingCaseButton = memo(AddToCaseActionButtonComponent); // eslint-disable-next-line import/no-default-export export default AddToExistingCaseButton; diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx index 5c4be89f56d88..c2e2302355f5f 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx @@ -12,7 +12,11 @@ import { useAddToCase } from '../../../../hooks/use_add_to_case'; import { AddToCaseActionProps } from './add_to_case_action'; import * as i18n from './translations'; -const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ +export interface AddToNewCaseButtonProps extends AddToCaseActionProps { + ariaLabel?: string; +} + +const AddToNewCaseButtonComponent: React.FC<AddToNewCaseButtonProps> = ({ ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, @@ -48,7 +52,7 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ ); }; -export const AddToNewCaseButton = memo(AddToCaseActionComponent); +export const AddToNewCaseButton = memo(AddToNewCaseButtonComponent); // eslint-disable-next-line import/no-default-export export default AddToNewCaseButton; diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.test.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.test.tsx deleted file mode 100644 index f1176f612725a..0000000000000 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.test.tsx +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; - -import { CreateCaseFlyout } from './flyout'; -import { TestProviders } from '../../../../../mock'; - -const onCloseFlyout = jest.fn(); -const onSuccess = jest.fn(); -const defaultProps = { - onCloseFlyout, - onSuccess, - owner: 'securitySolution', -}; - -describe('CreateCaseFlyout', () => { - beforeEach(() => { - jest.resetAllMocks(); - }); - - it('renders', () => { - const wrapper = mount( - <TestProviders> - <CreateCaseFlyout {...defaultProps} /> - </TestProviders> - ); - - expect(wrapper.find(`[data-test-subj='create-case-flyout']`).exists()).toBeTruthy(); - }); - - it('Closing modal calls onCloseCaseModal', () => { - const wrapper = mount( - <TestProviders> - <CreateCaseFlyout {...defaultProps} /> - </TestProviders> - ); - - wrapper.find(`[data-test-subj='euiFlyoutCloseButton']`).first().simulate('click'); - expect(onCloseFlyout).toBeCalled(); - }); -}); diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts b/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts index 314bcdb4d4f9d..df0dfb9048ace 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts @@ -73,7 +73,3 @@ export const UNSUPPORTED_EVENTS_MSG = i18n.translate( defaultMessage: 'This event cannot be attached to a case', } ); - -export const CREATE_TITLE = i18n.translate('xpack.timelines.cases.caseView.create', { - defaultMessage: 'Create new case', -}); diff --git a/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts b/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts index c20e6e8370b50..730243c4f1219 100644 --- a/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts +++ b/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts @@ -6,7 +6,6 @@ */ import { get, isEmpty } from 'lodash/fp'; import { useState, useCallback, useMemo, SyntheticEvent } from 'react'; -import { useLocation } from 'react-router-dom'; import { useDispatch } from 'react-redux'; import { ALERT_RULE_NAME, ALERT_RULE_UUID } from '@kbn/rule-data-utils/technical_field_names'; import { useKibana } from '../../../../../src/plugins/kibana_react/public'; @@ -17,21 +16,18 @@ import { tGridActions } from '../store/t_grid'; import { useDeepEqualSelector } from './use_selector'; import { createUpdateSuccessToaster } from '../components/actions/timeline/cases/helpers'; import { AddToCaseActionProps } from '../components/actions'; +import { CasesDeepLinkId, generateCaseViewPath } from '../../../cases/public'; interface UseAddToCase { addNewCaseClick: () => void; addExistingCaseClick: () => void; onCaseClicked: (theCase?: Case | SubCase) => void; - goToCreateCase: ( - arg: MouseEvent | React.MouseEvent<Element, MouseEvent> | null - ) => void | Promise<void>; onCaseSuccess: (theCase: Case) => Promise<void>; attachAlertToCase: ( theCase: Case, postComment?: ((arg: PostCommentArg) => Promise<void>) | undefined, updateCase?: ((newCase: Case) => void) | undefined ) => Promise<void>; - createCaseUrl: string; isAllCaseModalOpen: boolean; isDisabled: boolean; userCanCrud: boolean; @@ -42,27 +38,6 @@ interface UseAddToCase { isCreateCaseFlyoutOpen: boolean; } -const appendSearch = (search?: string) => - isEmpty(search) ? '' : `${search?.startsWith('?') ? search : `?${search}`}`; - -const getCreateCaseUrl = (search?: string | null) => `/create${appendSearch(search ?? undefined)}`; - -const getCaseDetailsUrl = ({ - id, - search, - subCaseId, -}: { - id: string; - search?: string | null; - subCaseId?: string; -}) => { - if (subCaseId) { - return `/${encodeURIComponent(id)}/sub-cases/${encodeURIComponent(subCaseId)}${appendSearch( - search ?? undefined - )}`; - } - return `/${encodeURIComponent(id)}${appendSearch(search ?? undefined)}`; -}; interface PostCommentArg { caseId: string; data: { @@ -78,7 +53,6 @@ interface PostCommentArg { export const useAddToCase = ({ event, - useInsertTimeline, casePermissions, appId, owner, @@ -111,42 +85,36 @@ export const useAddToCase = ({ } }, [timelineById]); const { - application: { navigateToApp, getUrlForApp, navigateToUrl }, + application: { navigateToApp }, notifications: { toasts }, } = useKibana<TimelinesStartServices>().services; const [isPopoverOpen, setIsPopoverOpen] = useState(false); const openPopover = useCallback(() => setIsPopoverOpen(true), []); const closePopover = useCallback(() => setIsPopoverOpen(false), []); - const isAlert = useMemo(() => { + + const isEventSupported = useMemo(() => { if (event !== undefined) { - const data = [...event.data]; - return data.some(({ field }) => field === 'kibana.alert.rule.uuid'); + if (event.data.some(({ field }) => field === 'kibana.alert.rule.uuid')) { + return true; + } + return !isEmpty(event.ecs.signal?.rule?.id ?? event.ecs.kibana?.alert?.rule?.uuid); } else { return false; } }, [event]); - const isSecurityAlert = useMemo(() => { - return !isEmpty(event?.ecs.signal?.rule?.id ?? event?.ecs.kibana?.alert?.rule?.uuid); - }, [event]); - const isEventSupported = isSecurityAlert || isAlert; + const userCanCrud = casePermissions?.crud ?? false; const isDisabled = !userCanCrud || !isEventSupported; const onViewCaseClick = useCallback( (id) => { - const caseDetailsUrl = getCaseDetailsUrl({ id }); - const appUrl = getUrlForApp(appId); - const fullCaseUrl = `${appUrl}/cases/${caseDetailsUrl}`; - navigateToUrl(fullCaseUrl); + navigateToApp(appId, { + deepLinkId: CasesDeepLinkId.cases, + path: generateCaseViewPath({ detailName: id }), + }); }, - [navigateToUrl, appId, getUrlForApp] - ); - const currentSearch = useLocation().search; - const urlSearch = useMemo(() => currentSearch, [currentSearch]); - const createCaseUrl = useMemo( - () => getUrlForApp('cases') + getCreateCaseUrl(urlSearch), - [getUrlForApp, urlSearch] + [navigateToApp, appId] ); const attachAlertToCase = useCallback( @@ -184,17 +152,6 @@ export const useAddToCase = ({ [onViewCaseClick, toasts, dispatch, eventId] ); - const goToCreateCase = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(appId, { - deepLinkId: appId === 'securitySolutionUI' ? 'case' : 'cases', - path: getCreateCaseUrl(urlSearch), - }); - }, - [navigateToApp, urlSearch, appId] - ); - const onCaseClicked = useCallback( (theCase?: Case | SubCase) => { /** @@ -228,10 +185,8 @@ export const useAddToCase = ({ addNewCaseClick, addExistingCaseClick, onCaseClicked, - goToCreateCase, onCaseSuccess, attachAlertToCase, - createCaseUrl, isAllCaseModalOpen, isDisabled, userCanCrud, diff --git a/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts b/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts index 294ad088cebdc..1121ca2a6e11f 100644 --- a/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts +++ b/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts @@ -13,6 +13,7 @@ import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/p import { EuiTheme } from '../../../../../src/plugins/kibana_react/common'; import { CoreStart } from '../../../../../src/core/public'; +export const mockGetCreateCaseFlyout = jest.fn(); export const mockGetAllCasesSelectorModal = jest.fn(); export const mockNavigateToApp = jest.fn(); @@ -26,6 +27,7 @@ export const createStartServicesMock = (): CoreStart => { getConfigureCases: jest.fn(), getCreateCase: jest.fn(), getRecentCases: jest.fn(), + getCreateCaseFlyout: mockGetCreateCaseFlyout, getAllCasesSelectorModal: mockGetAllCasesSelectorModal, }, application: { diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index daecf9ad68536..a590563921e8f 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -19320,53 +19320,12 @@ "xpack.observability.alertsTitle": "アラート", "xpack.observability.apply.label": "適用", "xpack.observability.breadcrumbs.alertsLinkText": "アラート", - "xpack.observability.breadcrumbs.casesConfigureLinkText": "構成", - "xpack.observability.breadcrumbs.casesCreateLinkText": "作成", - "xpack.observability.breadcrumbs.casesLinkText": "ケース", "xpack.observability.breadcrumbs.landingLinkText": "はじめて使う", "xpack.observability.breadcrumbs.observabilityLinkText": "オブザーバビリティ", "xpack.observability.breadcrumbs.overviewLinkText": "概要", - "xpack.observability.cases.allCases.actions": "アクション", - "xpack.observability.cases.allCases.comments": "コメント", - "xpack.observability.cases.allCases.noTagsAvailable": "利用可能なタグがありません", - "xpack.observability.cases.badge.readOnly.text": "読み取り専用", - "xpack.observability.cases.badge.readOnly.tooltip": "ケースを作成または編集できません", "xpack.observability.cases.caseFeatureNoPermissionsMessage": "ケースを表示するには、Kibana スペースでケース機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", "xpack.observability.cases.caseFeatureNoPermissionsTitle": "Kibana機能権限が必要です", - "xpack.observability.cases.caseView.backLabel": "ケースに戻る", - "xpack.observability.cases.caseView.cancel": "キャンセル", - "xpack.observability.cases.caseView.caseName": "ケース名", - "xpack.observability.cases.caseView.closeCase": "ケースを閉じる", - "xpack.observability.cases.caseView.comment.addComment": "コメントを追加", - "xpack.observability.cases.caseView.comment.addCommentHelpText": "新しいコメントを追加...", - "xpack.observability.cases.caseView.commentFieldRequiredError": "コメントが必要です。", - "xpack.observability.cases.caseView.connectors": "外部インシデント管理システム", - "xpack.observability.cases.caseView.create": "新規ケースを作成", - "xpack.observability.cases.caseView.createCase": "ケースを作成", - "xpack.observability.cases.caseView.description": "説明", - "xpack.observability.cases.caseView.description.save": "保存", - "xpack.observability.cases.caseView.edit": "編集", - "xpack.observability.cases.caseView.editConnector": "外部インシデント管理システムを変更", - "xpack.observability.cases.caseView.fieldRequiredError": "必須フィールド", "xpack.observability.cases.caseView.goToDocumentationButton": "ドキュメンテーションを表示", - "xpack.observability.cases.caseView.name": "名前", - "xpack.observability.cases.caseView.noReportersAvailable": "利用可能なレポートがありません。", - "xpack.observability.cases.caseView.noTags": "現在、このケースにタグは割り当てられていません。", - "xpack.observability.cases.caseView.optional": "オプション", - "xpack.observability.cases.caseView.particpantsLabel": "参加者", - "xpack.observability.cases.caseView.reopenCase": "ケースを再開", - "xpack.observability.cases.caseView.reporterLabel": "報告者", - "xpack.observability.cases.caseView.tags": "タグ", - "xpack.observability.cases.caseView.to": "に", - "xpack.observability.cases.configureCases.headerTitle": "ケースを構成", - "xpack.observability.cases.configureCasesButton": "外部接続を編集", - "xpack.observability.cases.confirmDeleteCase.deleteCase": "ケースを削除", - "xpack.observability.cases.confirmDeleteCase.deleteCases": "ケースを削除", - "xpack.observability.cases.createCase.descriptionFieldRequiredError": "説明が必要です。", - "xpack.observability.cases.createCase.fieldTagsHelpText": "このケースの1つ以上のカスタム識別タグを入力します。新しいタグを開始するには、各タグの後でEnterを押します。", - "xpack.observability.cases.createCase.titleFieldRequiredError": "タイトルが必要です。", - "xpack.observability.cases.dismissErrorsPushServiceCallOutTitle": "閉じる", - "xpack.observability.casesLinkTitle": "ケース", "xpack.observability.emptySection.apps.alert.description": "503 エラーが累積していますか?サービスは応答していますか?CPUとRAMの使用量が跳ね上がっていますか?このような警告を、事後にではなく、発生と同時に把握しましょう。", "xpack.observability.emptySection.apps.alert.link": "ルールを作成", "xpack.observability.emptySection.apps.alert.title": "アラートが見つかりません。", @@ -21390,46 +21349,9 @@ "xpack.securitySolution.beatFields.errorSearchDescription": "Beatフィールドの取得でエラーが発生しました", "xpack.securitySolution.beatFields.failSearchDescription": "Beat フィールドで検索を実行できませんでした", "xpack.securitySolution.callouts.dismissButton": "閉じる", - "xpack.securitySolution.cases.allCases.actions": "アクション", - "xpack.securitySolution.cases.allCases.comments": "コメント", - "xpack.securitySolution.cases.badge.readOnly.text": "読み取り専用", - "xpack.securitySolution.cases.badge.readOnly.tooltip": "ケースを作成または編集できません", - "xpack.securitySolution.cases.caseFeatureNoPermissionsMessage": "ケースを表示するには、Kibana スペースでケース機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", - "xpack.securitySolution.cases.caseFeatureNoPermissionsTitle": "Kibana機能権限が必要です", "xpack.securitySolution.cases.caseTable.caseDetailsLinkAria": "クリックすると、タイトル{detailName}のケースを表示します", - "xpack.securitySolution.cases.caseTable.openCases": "ケースを開く", - "xpack.securitySolution.cases.caseView.backLabel": "ケースに戻る", "xpack.securitySolution.cases.caseView.breadcrumb": "作成", - "xpack.securitySolution.cases.caseView.cancel": "キャンセル", - "xpack.securitySolution.cases.caseView.caseName": "ケース名", - "xpack.securitySolution.cases.caseView.closeCase": "ケースを閉じる", - "xpack.securitySolution.cases.caseView.closedOn": "終了日", - "xpack.securitySolution.cases.caseView.connectors": "外部インシデント管理システム", - "xpack.securitySolution.cases.caseView.create": "新規ケースを作成", - "xpack.securitySolution.cases.caseView.createCase": "ケースを作成", - "xpack.securitySolution.cases.caseView.description": "説明", - "xpack.securitySolution.cases.caseView.description.save": "保存", - "xpack.securitySolution.cases.caseView.edit": "編集", - "xpack.securitySolution.cases.caseView.editConnector": "外部インシデント管理システムを変更", - "xpack.securitySolution.cases.caseView.goToDocumentationButton": "ドキュメンテーションを表示", - "xpack.securitySolution.cases.caseView.name": "名前", - "xpack.securitySolution.cases.caseView.noReportersAvailable": "利用可能なレポートがありません。", - "xpack.securitySolution.cases.caseView.noTags": "現在、このケースにタグは割り当てられていません。", - "xpack.securitySolution.cases.caseView.openCase": "ケースを開く", - "xpack.securitySolution.cases.caseView.openedOn": "開始日", - "xpack.securitySolution.cases.caseView.optional": "オプション", - "xpack.securitySolution.cases.caseView.particpantsLabel": "参加者", - "xpack.securitySolution.cases.caseView.reporterLabel": "報告者", "xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip": "タイムラインで調査", - "xpack.securitySolution.cases.caseView.tags": "タグ", - "xpack.securitySolution.cases.caseView.to": "に", - "xpack.securitySolution.cases.caseView.unknown": "不明", - "xpack.securitySolution.cases.configureCases.headerTitle": "ケースを構成", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCase": "ケースを削除", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCases": "ケースを削除", - "xpack.securitySolution.cases.createCase.descriptionFieldRequiredError": "説明が必要です。", - "xpack.securitySolution.cases.createCase.titleFieldRequiredError": "タイトルが必要です。", - "xpack.securitySolution.cases.dismissErrorsPushServiceCallOutTitle": "閉じる", "xpack.securitySolution.cases.pageTitle": "ケース", "xpack.securitySolution.certificate.fingerprint.clientCertLabel": "クライアント証明書", "xpack.securitySolution.certificate.fingerprint.serverCertLabel": "サーバー証明書", @@ -21441,9 +21363,6 @@ "xpack.securitySolution.clipboard.copy": "コピー", "xpack.securitySolution.clipboard.copy.to.the.clipboard": "クリップボードにコピー", "xpack.securitySolution.clipboard.to.the.clipboard": "クリップボードに", - "xpack.securitySolution.common.alertAddedToCase": "ケースに追加しました", - "xpack.securitySolution.common.alertLabel": "アラート", - "xpack.securitySolution.common.allCases.table.selectableMessageCollections": "ケースとサブケースを選択することはできません", "xpack.securitySolution.components.embeddables.embeddedMap.clientLayerLabel": "クライアントポイント", "xpack.securitySolution.components.embeddables.embeddedMap.destinationLayerLabel": "デスティネーションポイント", "xpack.securitySolution.components.embeddables.embeddedMap.embeddableHeaderHelp": "マップ構成ヘルプ", @@ -23756,9 +23675,6 @@ "xpack.securitySolution.search.administration.hostIsolationExceptions": "ホスト分離例外", "xpack.securitySolution.search.administration.trustedApps": "信頼できるアプリケーション", "xpack.securitySolution.search.alerts": "アラート", - "xpack.securitySolution.search.cases": "ケース", - "xpack.securitySolution.search.cases.configure": "ケースを構成", - "xpack.securitySolution.search.cases.create": "新規ケースを作成", "xpack.securitySolution.search.detect": "検知", "xpack.securitySolution.search.exceptions": "例外", "xpack.securitySolution.search.explore": "探索", @@ -25248,7 +25164,6 @@ "xpack.timelines.alerts.summaryView.options.summaryView.description": "各アラートのイベントフローのレンダリングを表示", "xpack.timelines.beatFields.errorSearchDescription": "Beatフィールドの取得でエラーが発生しました", "xpack.timelines.beatFields.failSearchDescription": "Beat フィールドで検索を実行できませんでした", - "xpack.timelines.cases.caseView.create": "新規ケースを作成", "xpack.timelines.cases.timeline.actions.addCase": "ケースに追加", "xpack.timelines.cases.timeline.actions.addExistingCase": "既存のケースに追加", "xpack.timelines.cases.timeline.actions.addNewCase": "新しいケースに追加", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 5e57556b22c92..6b4a1d49cf9a9 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -19603,53 +19603,12 @@ "xpack.observability.alertsTitle": "告警", "xpack.observability.apply.label": "应用", "xpack.observability.breadcrumbs.alertsLinkText": "告警", - "xpack.observability.breadcrumbs.casesConfigureLinkText": "配置", - "xpack.observability.breadcrumbs.casesCreateLinkText": "创建", - "xpack.observability.breadcrumbs.casesLinkText": "案例", "xpack.observability.breadcrumbs.landingLinkText": "入门", "xpack.observability.breadcrumbs.observabilityLinkText": "可观测性", "xpack.observability.breadcrumbs.overviewLinkText": "概览", - "xpack.observability.cases.allCases.actions": "操作", - "xpack.observability.cases.allCases.comments": "注释", - "xpack.observability.cases.allCases.noTagsAvailable": "没有可用标签", - "xpack.observability.cases.badge.readOnly.text": "只读", - "xpack.observability.cases.badge.readOnly.tooltip": "无法创建或编辑案例", "xpack.observability.cases.caseFeatureNoPermissionsMessage": "要查看案例,必须对 Kibana 工作区中的案例功能有权限。有关详细信息,请联系您的 Kibana 管理员。", "xpack.observability.cases.caseFeatureNoPermissionsTitle": "需要 Kibana 功能权限", - "xpack.observability.cases.caseView.backLabel": "返回到案例", - "xpack.observability.cases.caseView.cancel": "取消", - "xpack.observability.cases.caseView.caseName": "案例名称", - "xpack.observability.cases.caseView.closeCase": "关闭案例", - "xpack.observability.cases.caseView.comment.addComment": "添加注释", - "xpack.observability.cases.caseView.comment.addCommentHelpText": "添加新注释......", - "xpack.observability.cases.caseView.commentFieldRequiredError": "注释必填。", - "xpack.observability.cases.caseView.connectors": "外部事件管理系统", - "xpack.observability.cases.caseView.create": "创建新案例", - "xpack.observability.cases.caseView.createCase": "创建案例", - "xpack.observability.cases.caseView.description": "描述", - "xpack.observability.cases.caseView.description.save": "保存", - "xpack.observability.cases.caseView.edit": "编辑", - "xpack.observability.cases.caseView.editConnector": "更改外部事件管理系统", - "xpack.observability.cases.caseView.fieldRequiredError": "必填字段", "xpack.observability.cases.caseView.goToDocumentationButton": "查看文档", - "xpack.observability.cases.caseView.name": "名称", - "xpack.observability.cases.caseView.noReportersAvailable": "没有报告者。", - "xpack.observability.cases.caseView.noTags": "当前没有为此案例分配标签。", - "xpack.observability.cases.caseView.optional": "可选", - "xpack.observability.cases.caseView.particpantsLabel": "参与者", - "xpack.observability.cases.caseView.reopenCase": "重新打开案例", - "xpack.observability.cases.caseView.reporterLabel": "报告者", - "xpack.observability.cases.caseView.tags": "标签", - "xpack.observability.cases.caseView.to": "到", - "xpack.observability.cases.configureCases.headerTitle": "配置案例", - "xpack.observability.cases.configureCasesButton": "编辑外部连接", - "xpack.observability.cases.confirmDeleteCase.deleteCase": "删除案例", - "xpack.observability.cases.confirmDeleteCase.deleteCases": "删除案例", - "xpack.observability.cases.createCase.descriptionFieldRequiredError": "描述必填。", - "xpack.observability.cases.createCase.fieldTagsHelpText": "为此案例键入一个或多个定制识别标签。在每个标签后按 Enter 键可开始新的标签。", - "xpack.observability.cases.createCase.titleFieldRequiredError": "标题必填。", - "xpack.observability.cases.dismissErrorsPushServiceCallOutTitle": "关闭", - "xpack.observability.casesLinkTitle": "案例", "xpack.observability.emptySection.apps.alert.description": "503 错误是否越来越多?服务是否响应?CPU 和 RAM 利用率是否激增?实时查看警告,而不是事后再进行剖析。", "xpack.observability.emptySection.apps.alert.link": "创建规则", "xpack.observability.emptySection.apps.alert.title": "未找到告警。", @@ -21714,46 +21673,9 @@ "xpack.securitySolution.beatFields.errorSearchDescription": "获取 Beat 字段时发生错误", "xpack.securitySolution.beatFields.failSearchDescription": "无法对 Beat 字段执行搜索", "xpack.securitySolution.callouts.dismissButton": "关闭", - "xpack.securitySolution.cases.allCases.actions": "操作", - "xpack.securitySolution.cases.allCases.comments": "注释", - "xpack.securitySolution.cases.badge.readOnly.text": "只读", - "xpack.securitySolution.cases.badge.readOnly.tooltip": "无法创建或编辑案例", - "xpack.securitySolution.cases.caseFeatureNoPermissionsMessage": "要查看案例,必须对 Kibana 工作区中的案例功能有权限。有关详细信息,请联系您的 Kibana 管理员。", - "xpack.securitySolution.cases.caseFeatureNoPermissionsTitle": "需要 Kibana 功能权限", "xpack.securitySolution.cases.caseTable.caseDetailsLinkAria": "单击以访问标题为 {detailName} 的案例", - "xpack.securitySolution.cases.caseTable.openCases": "未结案例", - "xpack.securitySolution.cases.caseView.backLabel": "返回到案例", "xpack.securitySolution.cases.caseView.breadcrumb": "创建", - "xpack.securitySolution.cases.caseView.cancel": "取消", - "xpack.securitySolution.cases.caseView.caseName": "案例名称", - "xpack.securitySolution.cases.caseView.closeCase": "关闭案例", - "xpack.securitySolution.cases.caseView.closedOn": "关闭日期", - "xpack.securitySolution.cases.caseView.connectors": "外部事件管理系统", - "xpack.securitySolution.cases.caseView.create": "创建新案例", - "xpack.securitySolution.cases.caseView.createCase": "创建案例", - "xpack.securitySolution.cases.caseView.description": "描述", - "xpack.securitySolution.cases.caseView.description.save": "保存", - "xpack.securitySolution.cases.caseView.edit": "编辑", - "xpack.securitySolution.cases.caseView.editConnector": "更改外部事件管理系统", - "xpack.securitySolution.cases.caseView.goToDocumentationButton": "查看文档", - "xpack.securitySolution.cases.caseView.name": "名称", - "xpack.securitySolution.cases.caseView.noReportersAvailable": "没有报告者。", - "xpack.securitySolution.cases.caseView.noTags": "当前没有为此案例分配标签。", - "xpack.securitySolution.cases.caseView.openCase": "创建案例", - "xpack.securitySolution.cases.caseView.openedOn": "打开时间", - "xpack.securitySolution.cases.caseView.optional": "可选", - "xpack.securitySolution.cases.caseView.particpantsLabel": "参与者", - "xpack.securitySolution.cases.caseView.reporterLabel": "报告者", "xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip": "在时间线中调查", - "xpack.securitySolution.cases.caseView.tags": "标签", - "xpack.securitySolution.cases.caseView.to": "到", - "xpack.securitySolution.cases.caseView.unknown": "未知", - "xpack.securitySolution.cases.configureCases.headerTitle": "配置案例", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCase": "删除案例", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCases": "删除案例", - "xpack.securitySolution.cases.createCase.descriptionFieldRequiredError": "描述必填。", - "xpack.securitySolution.cases.createCase.titleFieldRequiredError": "标题必填。", - "xpack.securitySolution.cases.dismissErrorsPushServiceCallOutTitle": "关闭", "xpack.securitySolution.cases.pageTitle": "案例", "xpack.securitySolution.certificate.fingerprint.clientCertLabel": "客户端证书", "xpack.securitySolution.certificate.fingerprint.serverCertLabel": "服务器证书", @@ -21765,9 +21687,6 @@ "xpack.securitySolution.clipboard.copy": "复制", "xpack.securitySolution.clipboard.copy.to.the.clipboard": "复制到剪贴板", "xpack.securitySolution.clipboard.to.the.clipboard": "至剪贴板", - "xpack.securitySolution.common.alertAddedToCase": "已添加到案例", - "xpack.securitySolution.common.alertLabel": "告警", - "xpack.securitySolution.common.allCases.table.selectableMessageCollections": "无法选择具有子案例的案例", "xpack.securitySolution.components.embeddables.embeddedMap.clientLayerLabel": "客户端点", "xpack.securitySolution.components.embeddables.embeddedMap.destinationLayerLabel": "目标点", "xpack.securitySolution.components.embeddables.embeddedMap.embeddableHeaderHelp": "地图配置帮助", @@ -24153,9 +24072,6 @@ "xpack.securitySolution.search.administration.hostIsolationExceptions": "主机隔离例外", "xpack.securitySolution.search.administration.trustedApps": "受信任的应用程序", "xpack.securitySolution.search.alerts": "告警", - "xpack.securitySolution.search.cases": "案例", - "xpack.securitySolution.search.cases.configure": "配置案例", - "xpack.securitySolution.search.cases.create": "创建新案例", "xpack.securitySolution.search.detect": "检测", "xpack.securitySolution.search.exceptions": "例外", "xpack.securitySolution.search.explore": "浏览", @@ -25679,7 +25595,6 @@ "xpack.timelines.alerts.summaryView.options.summaryView.description": "查看每个告警的事件渲染", "xpack.timelines.beatFields.errorSearchDescription": "获取 Beat 字段时发生错误", "xpack.timelines.beatFields.failSearchDescription": "无法对 Beat 字段执行搜索", - "xpack.timelines.cases.caseView.create": "创建新案例", "xpack.timelines.cases.timeline.actions.addCase": "添加到案例", "xpack.timelines.cases.timeline.actions.addExistingCase": "添加到现有案例", "xpack.timelines.cases.timeline.actions.addNewCase": "添加到新案例", From e00de95f80b7de8e841aca8e565c99eeee139665 Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet <pierre.gayvallet@elastic.co> Date: Fri, 19 Nov 2021 20:09:58 +0100 Subject: [PATCH 086/114] Add loader for kibana overview while checking for user data view (#118881) * add loader on overview page * use KibanaThemeProvider for kibanaOverview * change add data label to integrations * adapt tests * update snapshots, remove i18n keys * review comments Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../kibana_overview/public/application.tsx | 31 +- .../__snapshots__/overview.test.tsx.snap | 2043 +++++++++-------- .../overview/overview.test.mocks.ts | 42 + .../components/overview/overview.test.tsx | 104 +- .../public/components/overview/overview.tsx | 13 + .../overview_page_actions.test.tsx.snap | 4 +- .../overview_page_actions.tsx | 4 +- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 9 files changed, 1205 insertions(+), 1038 deletions(-) create mode 100644 src/plugins/kibana_overview/public/components/overview/overview.test.mocks.ts diff --git a/src/plugins/kibana_overview/public/application.tsx b/src/plugins/kibana_overview/public/application.tsx index d42c6dcd51da0..1611b9a8abf1f 100644 --- a/src/plugins/kibana_overview/public/application.tsx +++ b/src/plugins/kibana_overview/public/application.tsx @@ -10,7 +10,10 @@ import React from 'react'; import ReactDOM from 'react-dom'; import { i18n } from '@kbn/i18n'; import { I18nProvider } from '@kbn/i18n/react'; -import { KibanaContextProvider } from '../../../../src/plugins/kibana_react/public'; +import { + KibanaContextProvider, + KibanaThemeProvider, +} from '../../../../src/plugins/kibana_react/public'; import { NewsfeedApiEndpoint } from '../../../../src/plugins/newsfeed/public'; import { AppMountParameters, CoreStart } from '../../../../src/core/public'; import { AppPluginStartDependencies } from './types'; @@ -19,7 +22,7 @@ import { KibanaOverviewApp } from './components/app'; export const renderApp = ( core: CoreStart, deps: AppPluginStartDependencies, - { appBasePath, element }: AppMountParameters + { appBasePath, element, theme$ }: AppMountParameters ) => { const { notifications, http } = core; const { newsfeed, home, navigation } = deps; @@ -37,17 +40,19 @@ export const renderApp = ( ReactDOM.render( <I18nProvider> - <KibanaContextProvider services={{ ...core, ...deps }}> - <KibanaOverviewApp - basename={appBasePath} - notifications={notifications} - http={http} - navigation={navigation} - newsfeed$={newsfeed$} - solutions={solutions} - features={features} - /> - </KibanaContextProvider> + <KibanaThemeProvider theme$={theme$}> + <KibanaContextProvider services={{ ...core, ...deps }}> + <KibanaOverviewApp + basename={appBasePath} + notifications={notifications} + http={http} + navigation={navigation} + newsfeed$={newsfeed$} + solutions={solutions} + features={features} + /> + </KibanaContextProvider> + </KibanaThemeProvider> </I18nProvider>, element ); diff --git a/src/plugins/kibana_overview/public/components/overview/__snapshots__/overview.test.tsx.snap b/src/plugins/kibana_overview/public/components/overview/__snapshots__/overview.test.tsx.snap index babcab15a4974..1a52bf05b9238 100644 --- a/src/plugins/kibana_overview/public/components/overview/__snapshots__/overview.test.tsx.snap +++ b/src/plugins/kibana_overview/public/components/overview/__snapshots__/overview.test.tsx.snap @@ -1,1027 +1,1100 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Overview render 1`] = ` -<mockConstructor - pageHeader={ +exports[`Overview during loading 1`] = ` +<Overview + features={ + Array [ + Object { + "category": "data", + "description": "Description of dashboard", + "icon": "dashboardApp", + "id": "dashboard", + "path": "dashboard_landing_page", + "showOnHomePage": false, + "title": "Dashboard", + }, + Object { + "category": "data", + "description": "Description of discover", + "icon": "discoverApp", + "id": "discover", + "path": "discover_landing_page", + "showOnHomePage": false, + "title": "Discover", + }, + Object { + "category": "data", + "description": "Description of canvas", + "icon": "canvasApp", + "id": "canvas", + "path": "canvas_landing_page", + "showOnHomePage": false, + "title": "Canvas", + }, + ] + } + intl={ + Object { + "defaultFormats": Object {}, + "defaultLocale": "en", + "formatDate": [Function], + "formatHTMLMessage": [Function], + "formatMessage": [Function], + "formatNumber": [Function], + "formatPlural": [Function], + "formatRelative": [Function], + "formatTime": [Function], + "formats": Object { + "date": Object { + "full": Object { + "day": "numeric", + "month": "long", + "weekday": "long", + "year": "numeric", + }, + "long": Object { + "day": "numeric", + "month": "long", + "year": "numeric", + }, + "medium": Object { + "day": "numeric", + "month": "short", + "year": "numeric", + }, + "short": Object { + "day": "numeric", + "month": "numeric", + "year": "2-digit", + }, + }, + "number": Object { + "currency": Object { + "style": "currency", + }, + "percent": Object { + "style": "percent", + }, + }, + "relative": Object { + "days": Object { + "units": "day", + }, + "hours": Object { + "units": "hour", + }, + "minutes": Object { + "units": "minute", + }, + "months": Object { + "units": "month", + }, + "seconds": Object { + "units": "second", + }, + "years": Object { + "units": "year", + }, + }, + "time": Object { + "full": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "long": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "medium": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + }, + "short": Object { + "hour": "numeric", + "minute": "numeric", + }, + }, + }, + "formatters": Object { + "getDateTimeFormat": [Function], + "getMessageFormat": [Function], + "getNumberFormat": [Function], + "getPluralFormat": [Function], + "getRelativeFormat": [Function], + }, + "locale": "en", + "messages": Object {}, + "now": [Function], + "onError": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": null, + } + } + newsFetchResult={ Object { - "iconType": "logoKibana", - "pageTitle": <FormattedMessage - defaultMessage="Analytics" - id="kibanaOverview.header.title" - values={Object {}} - />, - "rightSideItems": Array [], + "error": null, + "feedItems": Array [ + Object { + "badge": null, + "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "8e18fcedbc", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", + "publishOn": "2020-08-31T10:23:47.000Z", + "title": "The Go client for Elasticsearch: Introduction", + }, + Object { + "badge": null, + "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "fb3e3d42ef", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", + "publishOn": "2020-08-14T10:23:47.000Z", + "title": "Alerting and anomaly detection for uptime and reliability", + }, + Object { + "badge": null, + "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "b2fc7d47d5", + "linkText": "Learn more on the blog", + "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", + "publishOn": "2020-08-01T10:23:47.000Z", + "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", + }, + ], + "hasNew": true, + "kibanaVersion": "8.0.0", } } - template="empty" + solutions={ + Array [ + Object { + "description": "Description of Kibana", + "icon": "logoKibana", + "id": "kibana", + "order": 1, + "path": "kibana_landing_page", + "title": "Analytics", + }, + Object { + "description": "Description of solution two", + "icon": "empty", + "id": "solution-2", + "order": 2, + "path": "path-to-solution-two", + "title": "Solution two", + }, + Object { + "description": "Description of solution three", + "icon": "empty", + "id": "solution-3", + "order": 3, + "path": "path-to-solution-three", + "title": "Solution three", + }, + Object { + "description": "Description of solution four", + "icon": "empty", + "id": "solution-4", + "order": 4, + "path": "path-to-solution-four", + "title": "Solution four", + }, + ] + } > - <section - aria-labelledby="kbnOverviewApps__title" - className="kbnOverviewApps" - > - <EuiScreenReaderOnly> - <h2 - id="kbnOverviewApps__title" - > - <FormattedMessage - defaultMessage="Explore these apps" - id="kibanaOverview.apps.title" - values={Object {}} - /> - </h2> - </EuiScreenReaderOnly> - <EuiFlexGroup - className="kbnOverviewApps__group kbnOverviewApps__group--primary" - justifyContent="center" - /> - <EuiSpacer - size="l" - /> - </section> - <EuiHorizontalRule - aria-hidden="true" - margin="xl" - /> <EuiFlexGroup - alignItems="flexStart" - className="kbnOverviewSupplements kbnOverviewSupplements--hasNews" + alignItems="center" + justifyContent="center" > - <EuiFlexItem - grow={1} - > - <NewsFeed - newsFetchResult={ - Object { - "error": null, - "feedItems": Array [ - Object { - "badge": null, - "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "8e18fcedbc", - "linkText": "Read more on the blog", - "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", - "publishOn": "2020-08-31T10:23:47.000Z", - "title": "The Go client for Elasticsearch: Introduction", - }, - Object { - "badge": null, - "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "fb3e3d42ef", - "linkText": "Read more on the blog", - "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", - "publishOn": "2020-08-14T10:23:47.000Z", - "title": "Alerting and anomaly detection for uptime and reliability", - }, - Object { - "badge": null, - "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "b2fc7d47d5", - "linkText": "Learn more on the blog", - "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", - "publishOn": "2020-08-01T10:23:47.000Z", - "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", - }, - ], - "hasNew": true, - "kibanaVersion": "8.0.0", - } - } - /> - </EuiFlexItem> - <EuiFlexItem - grow={3} + <div + className="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--alignItemsCenter euiFlexGroup--justifyContentCenter euiFlexGroup--directionRow euiFlexGroup--responsive" > - <section - aria-labelledby="kbnOverviewMore__title" - className="kbnOverviewMore" + <EuiFlexItem + grow={false} > - <EuiTitle - size="s" + <div + className="euiFlexItem euiFlexItem--flexGrowZero" > - <h2 - id="kbnOverviewMore__title" + <EuiLoadingSpinner + size="xl" > - <FormattedMessage - defaultMessage="Do more with Elastic" - id="kibanaOverview.more.title" - values={Object {}} + <span + className="euiLoadingSpinner euiLoadingSpinner--xLarge" /> - </h2> - </EuiTitle> - <EuiSpacer - size="m" - /> - <EuiFlexGroup - className="kbnOverviewMore__content" - > - <EuiFlexItem - className="kbnOverviewMore__item" - key="kibana" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution kibana" - description="Description of Kibana" - href="kibana_landing_page" - icon={ - <mockConstructor - iconType="logoKibana" - name="Analytics" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_kibana.svg" - onClick={[Function]} - title="Analytics" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - <EuiFlexItem - className="kbnOverviewMore__item" - key="solution-2" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution solution-2" - description="Description of solution two" - href="path-to-solution-two" - icon={ - <mockConstructor - iconType="empty" - name="Solution two" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_solution_2.svg" - onClick={[Function]} - title="Solution two" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - <EuiFlexItem - className="kbnOverviewMore__item" - key="solution-3" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution solution-3" - description="Description of solution three" - href="path-to-solution-three" - icon={ - <mockConstructor - iconType="empty" - name="Solution three" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_solution_3.svg" - onClick={[Function]} - title="Solution three" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - <EuiFlexItem - className="kbnOverviewMore__item" - key="solution-4" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution solution-4" - description="Description of solution four" - href="path-to-solution-four" - icon={ - <mockConstructor - iconType="empty" - name="Solution four" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_solution_4.svg" - onClick={[Function]} - title="Solution four" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - </EuiFlexGroup> - </section> - </EuiFlexItem> + </EuiLoadingSpinner> + </div> + </EuiFlexItem> + </div> </EuiFlexGroup> - <EuiHorizontalRule - aria-hidden="true" - margin="xl" - /> +</Overview> +`; + +exports[`Overview render 1`] = ` +<Overview + features={ + Array [ + Object { + "category": "data", + "description": "Description of dashboard", + "icon": "dashboardApp", + "id": "dashboard", + "path": "dashboard_landing_page", + "showOnHomePage": false, + "title": "Dashboard", + }, + Object { + "category": "data", + "description": "Description of discover", + "icon": "discoverApp", + "id": "discover", + "path": "discover_landing_page", + "showOnHomePage": false, + "title": "Discover", + }, + Object { + "category": "data", + "description": "Description of canvas", + "icon": "canvasApp", + "id": "canvas", + "path": "canvas_landing_page", + "showOnHomePage": false, + "title": "Canvas", + }, + ] + } + intl={ + Object { + "defaultFormats": Object {}, + "defaultLocale": "en", + "formatDate": [Function], + "formatHTMLMessage": [Function], + "formatMessage": [Function], + "formatNumber": [Function], + "formatPlural": [Function], + "formatRelative": [Function], + "formatTime": [Function], + "formats": Object { + "date": Object { + "full": Object { + "day": "numeric", + "month": "long", + "weekday": "long", + "year": "numeric", + }, + "long": Object { + "day": "numeric", + "month": "long", + "year": "numeric", + }, + "medium": Object { + "day": "numeric", + "month": "short", + "year": "numeric", + }, + "short": Object { + "day": "numeric", + "month": "numeric", + "year": "2-digit", + }, + }, + "number": Object { + "currency": Object { + "style": "currency", + }, + "percent": Object { + "style": "percent", + }, + }, + "relative": Object { + "days": Object { + "units": "day", + }, + "hours": Object { + "units": "hour", + }, + "minutes": Object { + "units": "minute", + }, + "months": Object { + "units": "month", + }, + "seconds": Object { + "units": "second", + }, + "years": Object { + "units": "year", + }, + }, + "time": Object { + "full": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "long": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "medium": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + }, + "short": Object { + "hour": "numeric", + "minute": "numeric", + }, + }, + }, + "formatters": Object { + "getDateTimeFormat": [Function], + "getMessageFormat": [Function], + "getNumberFormat": [Function], + "getPluralFormat": [Function], + "getRelativeFormat": [Function], + }, + "locale": "en", + "messages": Object {}, + "now": [Function], + "onError": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": null, + } + } + newsFetchResult={ + Object { + "error": null, + "feedItems": Array [ + Object { + "badge": null, + "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "8e18fcedbc", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", + "publishOn": "2020-08-31T10:23:47.000Z", + "title": "The Go client for Elasticsearch: Introduction", + }, + Object { + "badge": null, + "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "fb3e3d42ef", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", + "publishOn": "2020-08-14T10:23:47.000Z", + "title": "Alerting and anomaly detection for uptime and reliability", + }, + Object { + "badge": null, + "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "b2fc7d47d5", + "linkText": "Learn more on the blog", + "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", + "publishOn": "2020-08-01T10:23:47.000Z", + "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", + }, + ], + "hasNew": true, + "kibanaVersion": "8.0.0", + } + } + solutions={ + Array [ + Object { + "description": "Description of Kibana", + "icon": "logoKibana", + "id": "kibana", + "order": 1, + "path": "kibana_landing_page", + "title": "Analytics", + }, + Object { + "description": "Description of solution two", + "icon": "empty", + "id": "solution-2", + "order": 2, + "path": "path-to-solution-two", + "title": "Solution two", + }, + Object { + "description": "Description of solution three", + "icon": "empty", + "id": "solution-3", + "order": 3, + "path": "path-to-solution-three", + "title": "Solution three", + }, + Object { + "description": "Description of solution four", + "icon": "empty", + "id": "solution-4", + "order": 4, + "path": "path-to-solution-four", + "title": "Solution four", + }, + ] + } +> <mockConstructor - addBasePath={ - [MockFunction] { - "calls": Array [ - Array [ - "/app/integrations/browse", - ], - Array [ - "kibana_landing_page", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_kibana.svg", - ], - Array [ - "path-to-solution-two", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_2.svg", - ], - Array [ - "path-to-solution-three", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_3.svg", - ], - Array [ - "path-to-solution-four", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_4.svg", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - Object { - "type": "return", - "value": "kibana_landing_page", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_kibana.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-two", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_2.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-three", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_3.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-four", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_4.svg", - }, - ], + pageHeader={ + Object { + "iconType": "logoKibana", + "pageTitle": <FormattedMessage + defaultMessage="Analytics" + id="kibanaOverview.header.title" + values={Object {}} + />, + "rightSideItems": Array [], } } - onChangeDefaultRoute={[Function]} - onSetDefaultRoute={[Function]} - path="/app/kibana_overview" + template="empty" /> -</mockConstructor> +</Overview> `; -exports[`Overview without features 1`] = ` -<mockConstructor - pageHeader={ +exports[`Overview when there is no user data view 1`] = ` +<Overview + features={ + Array [ + Object { + "category": "data", + "description": "Description of dashboard", + "icon": "dashboardApp", + "id": "dashboard", + "path": "dashboard_landing_page", + "showOnHomePage": false, + "title": "Dashboard", + }, + Object { + "category": "data", + "description": "Description of discover", + "icon": "discoverApp", + "id": "discover", + "path": "discover_landing_page", + "showOnHomePage": false, + "title": "Discover", + }, + Object { + "category": "data", + "description": "Description of canvas", + "icon": "canvasApp", + "id": "canvas", + "path": "canvas_landing_page", + "showOnHomePage": false, + "title": "Canvas", + }, + ] + } + intl={ Object { - "iconType": "logoKibana", - "pageTitle": <FormattedMessage - defaultMessage="Analytics" - id="kibanaOverview.header.title" - values={Object {}} - />, - "rightSideItems": Array [], + "defaultFormats": Object {}, + "defaultLocale": "en", + "formatDate": [Function], + "formatHTMLMessage": [Function], + "formatMessage": [Function], + "formatNumber": [Function], + "formatPlural": [Function], + "formatRelative": [Function], + "formatTime": [Function], + "formats": Object { + "date": Object { + "full": Object { + "day": "numeric", + "month": "long", + "weekday": "long", + "year": "numeric", + }, + "long": Object { + "day": "numeric", + "month": "long", + "year": "numeric", + }, + "medium": Object { + "day": "numeric", + "month": "short", + "year": "numeric", + }, + "short": Object { + "day": "numeric", + "month": "numeric", + "year": "2-digit", + }, + }, + "number": Object { + "currency": Object { + "style": "currency", + }, + "percent": Object { + "style": "percent", + }, + }, + "relative": Object { + "days": Object { + "units": "day", + }, + "hours": Object { + "units": "hour", + }, + "minutes": Object { + "units": "minute", + }, + "months": Object { + "units": "month", + }, + "seconds": Object { + "units": "second", + }, + "years": Object { + "units": "year", + }, + }, + "time": Object { + "full": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "long": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "medium": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + }, + "short": Object { + "hour": "numeric", + "minute": "numeric", + }, + }, + }, + "formatters": Object { + "getDateTimeFormat": [Function], + "getMessageFormat": [Function], + "getNumberFormat": [Function], + "getPluralFormat": [Function], + "getRelativeFormat": [Function], + }, + "locale": "en", + "messages": Object {}, + "now": [Function], + "onError": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": null, } } - template="empty" + newsFetchResult={ + Object { + "error": null, + "feedItems": Array [ + Object { + "badge": null, + "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "8e18fcedbc", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", + "publishOn": "2020-08-31T10:23:47.000Z", + "title": "The Go client for Elasticsearch: Introduction", + }, + Object { + "badge": null, + "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "fb3e3d42ef", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", + "publishOn": "2020-08-14T10:23:47.000Z", + "title": "Alerting and anomaly detection for uptime and reliability", + }, + Object { + "badge": null, + "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "b2fc7d47d5", + "linkText": "Learn more on the blog", + "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", + "publishOn": "2020-08-01T10:23:47.000Z", + "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", + }, + ], + "hasNew": true, + "kibanaVersion": "8.0.0", + } + } + solutions={ + Array [ + Object { + "description": "Description of Kibana", + "icon": "logoKibana", + "id": "kibana", + "order": 1, + "path": "kibana_landing_page", + "title": "Analytics", + }, + Object { + "description": "Description of solution two", + "icon": "empty", + "id": "solution-2", + "order": 2, + "path": "path-to-solution-two", + "title": "Solution two", + }, + Object { + "description": "Description of solution three", + "icon": "empty", + "id": "solution-3", + "order": 3, + "path": "path-to-solution-three", + "title": "Solution three", + }, + Object { + "description": "Description of solution four", + "icon": "empty", + "id": "solution-4", + "order": 4, + "path": "path-to-solution-four", + "title": "Solution four", + }, + ] + } > - <section - aria-labelledby="kbnOverviewApps__title" - className="kbnOverviewApps" - > - <EuiScreenReaderOnly> - <h2 - id="kbnOverviewApps__title" - > - <FormattedMessage - defaultMessage="Explore these apps" - id="kibanaOverview.apps.title" + <mockConstructor + noDataConfig={ + Object { + "actions": Object { + "elasticAgent": Object { + "description": "Use Elastic Agent or Beats to collect data and build out Analytics solutions.", + "title": "Add integrations", + }, + }, + "docsLink": "kibana_docs_url", + "logo": "logoKibana", + "pageTitle": "Welcome to Analytics!", + "solution": "Analytics", + } + } + pageHeader={ + Object { + "iconType": "logoKibana", + "pageTitle": <FormattedMessage + defaultMessage="Analytics" + id="kibanaOverview.header.title" values={Object {}} - /> - </h2> - </EuiScreenReaderOnly> - <EuiFlexGroup - className="kbnOverviewApps__group kbnOverviewApps__group--primary" - justifyContent="center" - /> - <EuiSpacer - size="l" - /> - </section> - <EuiHorizontalRule - aria-hidden="true" - margin="xl" - /> - <EuiFlexGroup - alignItems="flexStart" - className="kbnOverviewSupplements kbnOverviewSupplements--hasNews" - > - <EuiFlexItem - grow={1} - > - <NewsFeed - newsFetchResult={ - Object { - "error": null, - "feedItems": Array [ - Object { - "badge": null, - "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "8e18fcedbc", - "linkText": "Read more on the blog", - "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", - "publishOn": "2020-08-31T10:23:47.000Z", - "title": "The Go client for Elasticsearch: Introduction", - }, - Object { - "badge": null, - "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "fb3e3d42ef", - "linkText": "Read more on the blog", - "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", - "publishOn": "2020-08-14T10:23:47.000Z", - "title": "Alerting and anomaly detection for uptime and reliability", - }, - Object { - "badge": null, - "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "b2fc7d47d5", - "linkText": "Learn more on the blog", - "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", - "publishOn": "2020-08-01T10:23:47.000Z", - "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", - }, - ], - "hasNew": true, - "kibanaVersion": "8.0.0", - } - } - /> - </EuiFlexItem> - <EuiFlexItem - grow={3} - > - <section - aria-labelledby="kbnOverviewMore__title" - className="kbnOverviewMore" - > - <EuiTitle - size="s" - > - <h2 - id="kbnOverviewMore__title" - > - <FormattedMessage - defaultMessage="Do more with Elastic" - id="kibanaOverview.more.title" - values={Object {}} - /> - </h2> - </EuiTitle> - <EuiSpacer - size="m" - /> - <EuiFlexGroup - className="kbnOverviewMore__content" - > - <EuiFlexItem - className="kbnOverviewMore__item" - key="kibana" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution kibana" - description="Description of Kibana" - href="kibana_landing_page" - icon={ - <mockConstructor - iconType="logoKibana" - name="Analytics" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_kibana.svg" - onClick={[Function]} - title="Analytics" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - <EuiFlexItem - className="kbnOverviewMore__item" - key="solution-2" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution solution-2" - description="Description of solution two" - href="path-to-solution-two" - icon={ - <mockConstructor - iconType="empty" - name="Solution two" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_solution_2.svg" - onClick={[Function]} - title="Solution two" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - <EuiFlexItem - className="kbnOverviewMore__item" - key="solution-3" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution solution-3" - description="Description of solution three" - href="path-to-solution-three" - icon={ - <mockConstructor - iconType="empty" - name="Solution three" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_solution_3.svg" - onClick={[Function]} - title="Solution three" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - <EuiFlexItem - className="kbnOverviewMore__item" - key="solution-4" - > - <mockConstructor> - <EuiCard - className="kbnOverviewSolution solution-4" - description="Description of solution four" - href="path-to-solution-four" - icon={ - <mockConstructor - iconType="empty" - name="Solution four" - size="xl" - /> - } - image="/plugins/kibanaReact/assets/solutions_solution_4.svg" - onClick={[Function]} - title="Solution four" - titleElement="h3" - titleSize="xs" - /> - </mockConstructor> - </EuiFlexItem> - </EuiFlexGroup> - </section> - </EuiFlexItem> - </EuiFlexGroup> - <EuiHorizontalRule - aria-hidden="true" - margin="xl" + />, + "rightSideItems": Array [], + } + } + template="empty" /> +</Overview> +`; + +exports[`Overview without features 1`] = ` +<Overview + features={Array []} + intl={ + Object { + "defaultFormats": Object {}, + "defaultLocale": "en", + "formatDate": [Function], + "formatHTMLMessage": [Function], + "formatMessage": [Function], + "formatNumber": [Function], + "formatPlural": [Function], + "formatRelative": [Function], + "formatTime": [Function], + "formats": Object { + "date": Object { + "full": Object { + "day": "numeric", + "month": "long", + "weekday": "long", + "year": "numeric", + }, + "long": Object { + "day": "numeric", + "month": "long", + "year": "numeric", + }, + "medium": Object { + "day": "numeric", + "month": "short", + "year": "numeric", + }, + "short": Object { + "day": "numeric", + "month": "numeric", + "year": "2-digit", + }, + }, + "number": Object { + "currency": Object { + "style": "currency", + }, + "percent": Object { + "style": "percent", + }, + }, + "relative": Object { + "days": Object { + "units": "day", + }, + "hours": Object { + "units": "hour", + }, + "minutes": Object { + "units": "minute", + }, + "months": Object { + "units": "month", + }, + "seconds": Object { + "units": "second", + }, + "years": Object { + "units": "year", + }, + }, + "time": Object { + "full": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "long": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "medium": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + }, + "short": Object { + "hour": "numeric", + "minute": "numeric", + }, + }, + }, + "formatters": Object { + "getDateTimeFormat": [Function], + "getMessageFormat": [Function], + "getNumberFormat": [Function], + "getPluralFormat": [Function], + "getRelativeFormat": [Function], + }, + "locale": "en", + "messages": Object {}, + "now": [Function], + "onError": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": null, + } + } + newsFetchResult={ + Object { + "error": null, + "feedItems": Array [ + Object { + "badge": null, + "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "8e18fcedbc", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", + "publishOn": "2020-08-31T10:23:47.000Z", + "title": "The Go client for Elasticsearch: Introduction", + }, + Object { + "badge": null, + "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "fb3e3d42ef", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", + "publishOn": "2020-08-14T10:23:47.000Z", + "title": "Alerting and anomaly detection for uptime and reliability", + }, + Object { + "badge": null, + "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "b2fc7d47d5", + "linkText": "Learn more on the blog", + "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", + "publishOn": "2020-08-01T10:23:47.000Z", + "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", + }, + ], + "hasNew": true, + "kibanaVersion": "8.0.0", + } + } + solutions={ + Array [ + Object { + "description": "Description of Kibana", + "icon": "logoKibana", + "id": "kibana", + "order": 1, + "path": "kibana_landing_page", + "title": "Analytics", + }, + Object { + "description": "Description of solution two", + "icon": "empty", + "id": "solution-2", + "order": 2, + "path": "path-to-solution-two", + "title": "Solution two", + }, + Object { + "description": "Description of solution three", + "icon": "empty", + "id": "solution-3", + "order": 3, + "path": "path-to-solution-three", + "title": "Solution three", + }, + Object { + "description": "Description of solution four", + "icon": "empty", + "id": "solution-4", + "order": 4, + "path": "path-to-solution-four", + "title": "Solution four", + }, + ] + } +> <mockConstructor - addBasePath={ - [MockFunction] { - "calls": Array [ - Array [ - "/app/integrations/browse", - ], - Array [ - "kibana_landing_page", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_kibana.svg", - ], - Array [ - "path-to-solution-two", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_2.svg", - ], - Array [ - "path-to-solution-three", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_3.svg", - ], - Array [ - "path-to-solution-four", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_4.svg", - ], - Array [ - "/app/integrations/browse", - ], - Array [ - "/app/integrations/browse", - ], - Array [ - "kibana_landing_page", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_kibana.svg", - ], - Array [ - "path-to-solution-two", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_2.svg", - ], - Array [ - "path-to-solution-three", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_3.svg", - ], - Array [ - "path-to-solution-four", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_4.svg", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - Object { - "type": "return", - "value": "kibana_landing_page", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_kibana.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-two", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_2.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-three", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_3.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-four", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_4.svg", - }, - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - Object { - "type": "return", - "value": "kibana_landing_page", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_kibana.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-two", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_2.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-three", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_3.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-four", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_4.svg", - }, - ], + pageHeader={ + Object { + "iconType": "logoKibana", + "pageTitle": <FormattedMessage + defaultMessage="Analytics" + id="kibanaOverview.header.title" + values={Object {}} + />, + "rightSideItems": Array [], } } - onChangeDefaultRoute={[Function]} - onSetDefaultRoute={[Function]} - path="/app/kibana_overview" + template="empty" /> -</mockConstructor> +</Overview> `; exports[`Overview without solutions 1`] = ` -<mockConstructor - pageHeader={ +<Overview + features={ + Array [ + Object { + "category": "data", + "description": "Description of dashboard", + "icon": "dashboardApp", + "id": "dashboard", + "path": "dashboard_landing_page", + "showOnHomePage": false, + "title": "Dashboard", + }, + Object { + "category": "data", + "description": "Description of discover", + "icon": "discoverApp", + "id": "discover", + "path": "discover_landing_page", + "showOnHomePage": false, + "title": "Discover", + }, + Object { + "category": "data", + "description": "Description of canvas", + "icon": "canvasApp", + "id": "canvas", + "path": "canvas_landing_page", + "showOnHomePage": false, + "title": "Canvas", + }, + ] + } + intl={ Object { - "iconType": "logoKibana", - "pageTitle": <FormattedMessage - defaultMessage="Analytics" - id="kibanaOverview.header.title" - values={Object {}} - />, - "rightSideItems": Array [], + "defaultFormats": Object {}, + "defaultLocale": "en", + "formatDate": [Function], + "formatHTMLMessage": [Function], + "formatMessage": [Function], + "formatNumber": [Function], + "formatPlural": [Function], + "formatRelative": [Function], + "formatTime": [Function], + "formats": Object { + "date": Object { + "full": Object { + "day": "numeric", + "month": "long", + "weekday": "long", + "year": "numeric", + }, + "long": Object { + "day": "numeric", + "month": "long", + "year": "numeric", + }, + "medium": Object { + "day": "numeric", + "month": "short", + "year": "numeric", + }, + "short": Object { + "day": "numeric", + "month": "numeric", + "year": "2-digit", + }, + }, + "number": Object { + "currency": Object { + "style": "currency", + }, + "percent": Object { + "style": "percent", + }, + }, + "relative": Object { + "days": Object { + "units": "day", + }, + "hours": Object { + "units": "hour", + }, + "minutes": Object { + "units": "minute", + }, + "months": Object { + "units": "month", + }, + "seconds": Object { + "units": "second", + }, + "years": Object { + "units": "year", + }, + }, + "time": Object { + "full": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "long": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + "timeZoneName": "short", + }, + "medium": Object { + "hour": "numeric", + "minute": "numeric", + "second": "numeric", + }, + "short": Object { + "hour": "numeric", + "minute": "numeric", + }, + }, + }, + "formatters": Object { + "getDateTimeFormat": [Function], + "getMessageFormat": [Function], + "getNumberFormat": [Function], + "getPluralFormat": [Function], + "getRelativeFormat": [Function], + }, + "locale": "en", + "messages": Object {}, + "now": [Function], + "onError": [Function], + "textComponent": Symbol(react.fragment), + "timeZone": null, } } - template="empty" + newsFetchResult={ + Object { + "error": null, + "feedItems": Array [ + Object { + "badge": null, + "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "8e18fcedbc", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", + "publishOn": "2020-08-31T10:23:47.000Z", + "title": "The Go client for Elasticsearch: Introduction", + }, + Object { + "badge": null, + "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "fb3e3d42ef", + "linkText": "Read more on the blog", + "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", + "publishOn": "2020-08-14T10:23:47.000Z", + "title": "Alerting and anomaly detection for uptime and reliability", + }, + Object { + "badge": null, + "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", + "expireOn": "2050-12-31T11:59:59.000Z", + "hash": "b2fc7d47d5", + "linkText": "Learn more on the blog", + "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", + "publishOn": "2020-08-01T10:23:47.000Z", + "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", + }, + ], + "hasNew": true, + "kibanaVersion": "8.0.0", + } + } + solutions={Array []} > - <section - aria-labelledby="kbnOverviewApps__title" - className="kbnOverviewApps" - > - <EuiScreenReaderOnly> - <h2 - id="kbnOverviewApps__title" - > - <FormattedMessage - defaultMessage="Explore these apps" - id="kibanaOverview.apps.title" - values={Object {}} - /> - </h2> - </EuiScreenReaderOnly> - <EuiFlexGroup - className="kbnOverviewApps__group kbnOverviewApps__group--primary" - justifyContent="center" - /> - <EuiSpacer - size="l" - /> - </section> - <EuiHorizontalRule - aria-hidden="true" - margin="xl" - /> - <EuiFlexGroup - alignItems="flexStart" - className="kbnOverviewSupplements kbnOverviewSupplements--hasNews" - > - <EuiFlexItem - grow={1} - > - <NewsFeed - newsFetchResult={ - Object { - "error": null, - "feedItems": Array [ - Object { - "badge": null, - "description": "The official Go client now includes features like request retries and node discovery. Learn more about its architecture and package and repository layout.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "8e18fcedbc", - "linkText": "Read more on the blog", - "linkUrl": "https://www.elastic.co/blog/the-go-client-for-elasticsearch-introduction?blade=kibanafeed", - "publishOn": "2020-08-31T10:23:47.000Z", - "title": "The Go client for Elasticsearch: Introduction", - }, - Object { - "badge": null, - "description": "Learn how to use Elastic Uptime to configure alerting and anomaly detection for sites, services, and APIs.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "fb3e3d42ef", - "linkText": "Read more on the blog", - "linkUrl": "https://www.elastic.co/blog/alerting-and-anomaly-detection-for-uptime-and-reliability?blade=kibanafeed", - "publishOn": "2020-08-14T10:23:47.000Z", - "title": "Alerting and anomaly detection for uptime and reliability", - }, - Object { - "badge": null, - "description": "Managing data using hot-warm architecture and ILM is a cost-effective way of retaining data — and a great way to easily keep your cloud costs down.", - "expireOn": "2050-12-31T11:59:59.000Z", - "hash": "b2fc7d47d5", - "linkText": "Learn more on the blog", - "linkUrl": "https://www.elastic.co/blog/optimizing-costs-elastic-cloud-hot-warm-index-lifecycle-management?blade=kibanafeed", - "publishOn": "2020-08-01T10:23:47.000Z", - "title": "Optimizing costs in Elastic Cloud: Hot-warm + index lifecycle management", - }, - ], - "hasNew": true, - "kibanaVersion": "8.0.0", - } - } - /> - </EuiFlexItem> - <EuiFlexItem - grow={3} - > - <EuiFlexGroup - className="kbnOverviewData kbnOverviewData--expanded" - > - <EuiFlexItem> - <AddData - addBasePath={ - [MockFunction] { - "calls": Array [ - Array [ - "/app/integrations/browse", - ], - Array [ - "kibana_landing_page", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_kibana.svg", - ], - Array [ - "path-to-solution-two", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_2.svg", - ], - Array [ - "path-to-solution-three", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_3.svg", - ], - Array [ - "path-to-solution-four", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_4.svg", - ], - Array [ - "/app/integrations/browse", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - Object { - "type": "return", - "value": "kibana_landing_page", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_kibana.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-two", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_2.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-three", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_3.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-four", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_4.svg", - }, - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - ], - } - } - features={Array []} - /> - </EuiFlexItem> - <EuiFlexItem> - <ManageData - addBasePath={ - [MockFunction] { - "calls": Array [ - Array [ - "/app/integrations/browse", - ], - Array [ - "kibana_landing_page", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_kibana.svg", - ], - Array [ - "path-to-solution-two", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_2.svg", - ], - Array [ - "path-to-solution-three", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_3.svg", - ], - Array [ - "path-to-solution-four", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_4.svg", - ], - Array [ - "/app/integrations/browse", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - Object { - "type": "return", - "value": "kibana_landing_page", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_kibana.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-two", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_2.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-three", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_3.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-four", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_4.svg", - }, - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - ], - } - } - features={Array []} - /> - </EuiFlexItem> - </EuiFlexGroup> - </EuiFlexItem> - </EuiFlexGroup> - <EuiHorizontalRule - aria-hidden="true" - margin="xl" - /> <mockConstructor - addBasePath={ - [MockFunction] { - "calls": Array [ - Array [ - "/app/integrations/browse", - ], - Array [ - "kibana_landing_page", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_kibana.svg", - ], - Array [ - "path-to-solution-two", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_2.svg", - ], - Array [ - "path-to-solution-three", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_3.svg", - ], - Array [ - "path-to-solution-four", - ], - Array [ - "/plugins/kibanaReact/assets/solutions_solution_4.svg", - ], - Array [ - "/app/integrations/browse", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - Object { - "type": "return", - "value": "kibana_landing_page", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_kibana.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-two", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_2.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-three", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_3.svg", - }, - Object { - "type": "return", - "value": "path-to-solution-four", - }, - Object { - "type": "return", - "value": "/plugins/kibanaReact/assets/solutions_solution_4.svg", - }, - Object { - "type": "return", - "value": "/app/integrations/browse", - }, - ], + pageHeader={ + Object { + "iconType": "logoKibana", + "pageTitle": <FormattedMessage + defaultMessage="Analytics" + id="kibanaOverview.header.title" + values={Object {}} + />, + "rightSideItems": Array [], } } - onChangeDefaultRoute={[Function]} - onSetDefaultRoute={[Function]} - path="/app/kibana_overview" + template="empty" /> -</mockConstructor> +</Overview> `; diff --git a/src/plugins/kibana_overview/public/components/overview/overview.test.mocks.ts b/src/plugins/kibana_overview/public/components/overview/overview.test.mocks.ts new file mode 100644 index 0000000000000..02ccf511770f3 --- /dev/null +++ b/src/plugins/kibana_overview/public/components/overview/overview.test.mocks.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; + +export const hasUserDataViewMock = jest.fn(); + +jest.doMock('../../../../../../src/plugins/kibana_react/public', () => ({ + useKibana: jest.fn().mockReturnValue({ + services: { + http: { basePath: { prepend: jest.fn((path: string) => (path ? path : 'path')) } }, + data: { + indexPatterns: { + hasUserDataView: hasUserDataViewMock, + }, + }, + share: { url: { locators: { get: () => ({ useUrl: () => '' }) } } }, + uiSettings: { get: jest.fn() }, + docLinks: { + links: { + kibana: 'kibana_docs_url', + }, + }, + }, + }), + RedirectAppLinks: jest.fn((element: JSX.Element) => element), + overviewPageActions: jest.fn().mockReturnValue([]), + OverviewPageFooter: jest.fn().mockReturnValue(React.createElement(React.Fragment)), + KibanaPageTemplate: jest.fn().mockReturnValue(React.createElement(React.Fragment)), + KibanaPageTemplateSolutionNavAvatar: jest + .fn() + .mockReturnValue(React.createElement(React.Fragment)), +})); + +jest.doMock('../../lib/ui_metric', () => ({ + trackUiMetric: jest.fn(), +})); diff --git a/src/plugins/kibana_overview/public/components/overview/overview.test.tsx b/src/plugins/kibana_overview/public/components/overview/overview.test.tsx index ca9b404ed9810..b4804fe56f470 100644 --- a/src/plugins/kibana_overview/public/components/overview/overview.test.tsx +++ b/src/plugins/kibana_overview/public/components/overview/overview.test.tsx @@ -6,39 +6,16 @@ * Side Public License, v 1. */ +import { hasUserDataViewMock } from './overview.test.mocks'; +import { setTimeout as setTimeoutP } from 'timers/promises'; import moment from 'moment'; import React from 'react'; +import { act } from 'react-dom/test-utils'; +import { ReactWrapper } from 'enzyme'; import { Overview } from './overview'; -import { shallowWithIntl } from '@kbn/test/jest'; +import { mountWithIntl } from '@kbn/test/jest'; import { FeatureCatalogueCategory } from 'src/plugins/home/public'; -jest.mock('../../../../../../src/plugins/kibana_react/public', () => ({ - useKibana: jest.fn().mockReturnValue({ - services: { - http: { basePath: { prepend: jest.fn((path: string) => (path ? path : 'path')) } }, - data: { indexPatterns: {} }, - share: { url: { locators: { get: () => ({ useUrl: () => '' }) } } }, - uiSettings: { get: jest.fn() }, - docLinks: { - links: { - kibana: 'kibana_docs_url', - }, - }, - }, - }), - RedirectAppLinks: jest.fn((element: JSX.Element) => element), - overviewPageActions: jest.fn().mockReturnValue([]), - OverviewPageFooter: jest.fn().mockReturnValue(<></>), - KibanaPageTemplate: jest.fn().mockReturnValue(<></>), - KibanaPageTemplateSolutionNavAvatar: jest.fn().mockReturnValue(<></>), -})); - -jest.mock('../../lib/ui_metric', () => ({ - trackUiMetric: jest.fn(), -})); - -afterAll(() => jest.clearAllMocks()); - const mockNewsFetchResult = { error: null, feedItems: [ @@ -148,27 +125,86 @@ const mockFeatures = [ }, ]; +const flushPromises = async () => await setTimeoutP(10); + +const updateComponent = async (component: ReactWrapper) => { + await act(async () => { + await flushPromises(); + component.update(); + }); +}; + describe('Overview', () => { - test('render', () => { - const component = shallowWithIntl( + beforeEach(() => { + hasUserDataViewMock.mockClear(); + hasUserDataViewMock.mockResolvedValue(true); + }); + + afterAll(() => jest.clearAllMocks()); + + test('render', async () => { + const component = mountWithIntl( <Overview newsFetchResult={mockNewsFetchResult} solutions={mockSolutions} features={mockFeatures} /> ); + + await updateComponent(component); + expect(component).toMatchSnapshot(); }); - test('without solutions', () => { - const component = shallowWithIntl( + + test('without solutions', async () => { + const component = mountWithIntl( <Overview newsFetchResult={mockNewsFetchResult} solutions={[]} features={mockFeatures} /> ); + + await updateComponent(component); + expect(component).toMatchSnapshot(); }); - test('without features', () => { - const component = shallowWithIntl( + + test('without features', async () => { + const component = mountWithIntl( <Overview newsFetchResult={mockNewsFetchResult} solutions={mockSolutions} features={[]} /> ); + + await updateComponent(component); + + expect(component).toMatchSnapshot(); + }); + + test('when there is no user data view', async () => { + hasUserDataViewMock.mockResolvedValue(false); + + const component = mountWithIntl( + <Overview + newsFetchResult={mockNewsFetchResult} + solutions={mockSolutions} + features={mockFeatures} + /> + ); + + await updateComponent(component); + + expect(component).toMatchSnapshot(); + }); + + test('during loading', async () => { + hasUserDataViewMock.mockImplementation(() => new Promise(() => {})); + + const component = mountWithIntl( + <Overview + newsFetchResult={mockNewsFetchResult} + solutions={mockSolutions} + features={mockFeatures} + /> + ); + + await updateComponent(component); + expect(component).toMatchSnapshot(); }); }); diff --git a/src/plugins/kibana_overview/public/components/overview/overview.tsx b/src/plugins/kibana_overview/public/components/overview/overview.tsx index 5108150f7ff8d..9bb685caecb7b 100644 --- a/src/plugins/kibana_overview/public/components/overview/overview.tsx +++ b/src/plugins/kibana_overview/public/components/overview/overview.tsx @@ -16,6 +16,7 @@ import { EuiScreenReaderOnly, EuiSpacer, EuiTitle, + EuiLoadingSpinner, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { CoreStart } from 'kibana/public'; @@ -53,6 +54,7 @@ interface Props { export const Overview: FC<Props> = ({ newsFetchResult, solutions, features }) => { const [isNewKibanaInstance, setNewKibanaInstance] = useState(false); + const [isLoading, setIsLoading] = useState(true); const { services: { http, docLinks, data, share, uiSettings, application }, } = useKibana<CoreStart & AppPluginStartDependencies>(); @@ -112,6 +114,7 @@ export const Overview: FC<Props> = ({ newsFetchResult, solutions, features }) => const hasUserIndexPattern = await indexPatternService.hasUserDataView().catch(() => true); setNewKibanaInstance(!hasUserIndexPattern); + setIsLoading(false); }; fetchIsNewKibanaInstance(); @@ -145,6 +148,16 @@ export const Overview: FC<Props> = ({ newsFetchResult, solutions, features }) => const mainApps = ['dashboard', 'discover']; const remainingApps = kibanaApps.map(({ id }) => id).filter((id) => !mainApps.includes(id)); + if (isLoading) { + return ( + <EuiFlexGroup justifyContent="center" alignItems="center"> + <EuiFlexItem grow={false}> + <EuiLoadingSpinner size="xl" /> + </EuiFlexItem> + </EuiFlexGroup> + ); + } + return ( <KibanaPageTemplate pageHeader={{ diff --git a/src/plugins/kibana_react/public/overview_page/overview_page_actions/__snapshots__/overview_page_actions.test.tsx.snap b/src/plugins/kibana_react/public/overview_page/overview_page_actions/__snapshots__/overview_page_actions.test.tsx.snap index 7492f9e1b620f..241dbb7b3303e 100644 --- a/src/plugins/kibana_react/public/overview_page/overview_page_actions/__snapshots__/overview_page_actions.test.tsx.snap +++ b/src/plugins/kibana_react/public/overview_page/overview_page_actions/__snapshots__/overview_page_actions.test.tsx.snap @@ -21,7 +21,7 @@ Array [ href="" iconType="plusInCircle" > - Add data + Add integrations </EuiButtonEmpty> </mockConstructor>, ] @@ -50,7 +50,7 @@ Array [ href="" iconType="plusInCircle" > - Add data + Add integrations </EuiButtonEmpty> </mockConstructor>, ] diff --git a/src/plugins/kibana_react/public/overview_page/overview_page_actions/overview_page_actions.tsx b/src/plugins/kibana_react/public/overview_page/overview_page_actions/overview_page_actions.tsx index 19a3a0e9a760c..5d61cc3e96bd0 100644 --- a/src/plugins/kibana_react/public/overview_page/overview_page_actions/overview_page_actions.tsx +++ b/src/plugins/kibana_react/public/overview_page/overview_page_actions/overview_page_actions.tsx @@ -43,8 +43,8 @@ export const overviewPageActions = ({ href={addDataHref} iconType="plusInCircle" > - {i18n.translate('kibana-react.kbnOverviewPageHeader.addDataButtonLabel', { - defaultMessage: 'Add data', + {i18n.translate('kibana-react.kbnOverviewPageHeader.addIntegrationsButtonLabel', { + defaultMessage: 'Add integrations', })} </EuiButtonEmpty> </RedirectAppLinks> diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a590563921e8f..5645ebfebf34e 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -3459,7 +3459,6 @@ "kibana-react.exitFullScreenButton.exitFullScreenModeButtonAriaLabel": "全画面モードを終了", "kibana-react.exitFullScreenButton.exitFullScreenModeButtonText": "全画面を終了", "kibana-react.exitFullScreenButton.fullScreenModeDescription": "ESC キーで全画面モードを終了します。", - "kibana-react.kbnOverviewPageHeader.addDataButtonLabel": "データの追加", "kibana-react.kbnOverviewPageHeader.devToolsButtonLabel": "開発ツール", "kibana-react.kbnOverviewPageHeader.stackManagementButtonLabel": "管理", "kibana-react.kibanaCodeEditor.ariaLabel": "コードエディター", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 6b4a1d49cf9a9..97d68b36baaa2 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -3484,7 +3484,6 @@ "kibana-react.exitFullScreenButton.exitFullScreenModeButtonAriaLabel": "退出全屏模式", "kibana-react.exitFullScreenButton.exitFullScreenModeButtonText": "退出全屏", "kibana-react.exitFullScreenButton.fullScreenModeDescription": "在全屏模式下,按 ESC 键可退出。", - "kibana-react.kbnOverviewPageHeader.addDataButtonLabel": "添加数据", "kibana-react.kbnOverviewPageHeader.devToolsButtonLabel": "开发工具", "kibana-react.kbnOverviewPageHeader.stackManagementButtonLabel": "管理", "kibana-react.kibanaCodeEditor.ariaLabel": "代码编辑器", From 2c4e795e1807b0a6a681d20da49829b2512400cd Mon Sep 17 00:00:00 2001 From: Spencer <email@spalger.com> Date: Fri, 19 Nov 2021 11:11:22 -0800 Subject: [PATCH 087/114] [eslint] prevent using constructor property params in initializers (#119130) --- .../elastic-eslint-config-kibana/.eslintrc.js | 1 + packages/kbn-cli-dev-mode/src/log.ts | 20 ++-- packages/kbn-eslint-plugin-eslint/index.js | 1 + .../rules/no_async_promise_body.js | 4 - ...nstructor_args_in_property_initializers.js | 103 ++++++++++++++++++ ...ctor_args_in_property_initializers.test.js | 100 +++++++++++++++++ .../src/worker/bundle_refs_plugin.ts | 6 +- .../lib/lifecycle_event.ts | 24 ++-- .../lib/lifecycle_phase.ts | 18 +-- src/core/public/chrome/chrome_service.test.ts | 6 +- .../injected_metadata_service.ts | 10 +- src/core/server/plugins/plugins_service.ts | 6 +- src/core/server/preboot/preboot_service.ts | 7 +- src/dev/prs/github_api.ts | 22 ++-- src/dev/prs/pr.ts | 6 +- .../dashboard_container_factory.tsx | 12 +- src/plugins/home/server/plugin.ts | 7 +- .../control_group_container_factory.ts | 11 +- .../ui_actions/public/actions/action.ts | 6 +- .../public/actions/action_internal.ts | 26 +++-- src/plugins/ui_actions/public/index.ts | 2 +- test/functional/services/common/browser.ts | 8 +- .../web_element_wrapper.ts | 6 +- x-pack/plugins/security/public/plugin.tsx | 9 +- .../server/authentication/authenticator.ts | 8 +- .../server/authorization/actions/actions.ts | 36 +++--- x-pack/plugins/security/server/plugin.ts | 34 +++--- .../session_management/session_index.ts | 6 +- .../spaces/secure_spaces_client_wrapper.ts | 6 +- .../state/drilldown_manager_state.ts | 8 +- .../public/dynamic_actions/action_factory.ts | 50 ++++++--- 31 files changed, 430 insertions(+), 139 deletions(-) create mode 100644 packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.js create mode 100644 packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.test.js diff --git a/packages/elastic-eslint-config-kibana/.eslintrc.js b/packages/elastic-eslint-config-kibana/.eslintrc.js index 99377540d38f7..bc7b7aeed0499 100644 --- a/packages/elastic-eslint-config-kibana/.eslintrc.js +++ b/packages/elastic-eslint-config-kibana/.eslintrc.js @@ -104,5 +104,6 @@ module.exports = { '@kbn/eslint/no_async_promise_body': 'error', '@kbn/eslint/no_async_foreach': 'error', '@kbn/eslint/no_trailing_import_slash': 'error', + '@kbn/eslint/no_constructor_args_in_property_initializers': 'error', }, }; diff --git a/packages/kbn-cli-dev-mode/src/log.ts b/packages/kbn-cli-dev-mode/src/log.ts index 2cbd02b94a844..dc38639f29e6e 100644 --- a/packages/kbn-cli-dev-mode/src/log.ts +++ b/packages/kbn-cli-dev-mode/src/log.ts @@ -20,16 +20,18 @@ export interface Log { } export class CliLog implements Log { - public toolingLog = new ToolingLog({ - level: this.silent ? 'silent' : 'info', - writeTo: { - write: (msg) => { - this.write(msg); + public toolingLog: ToolingLog; + + constructor(private readonly silent: boolean) { + this.toolingLog = new ToolingLog({ + level: this.silent ? 'silent' : 'info', + writeTo: { + write: (msg) => { + this.write(msg); + }, }, - }, - }); - - constructor(private readonly silent: boolean) {} + }); + } good(label: string, ...args: any[]) { if (this.silent) { diff --git a/packages/kbn-eslint-plugin-eslint/index.js b/packages/kbn-eslint-plugin-eslint/index.js index 22d9c752d4745..68ffe96792821 100644 --- a/packages/kbn-eslint-plugin-eslint/index.js +++ b/packages/kbn-eslint-plugin-eslint/index.js @@ -16,5 +16,6 @@ module.exports = { no_async_promise_body: require('./rules/no_async_promise_body'), no_async_foreach: require('./rules/no_async_foreach'), no_trailing_import_slash: require('./rules/no_trailing_import_slash'), + no_constructor_args_in_property_initializers: require('./rules/no_constructor_args_in_property_initializers'), }, }; diff --git a/packages/kbn-eslint-plugin-eslint/rules/no_async_promise_body.js b/packages/kbn-eslint-plugin-eslint/rules/no_async_promise_body.js index 317758fd3629a..fef6cf76612a0 100644 --- a/packages/kbn-eslint-plugin-eslint/rules/no_async_promise_body.js +++ b/packages/kbn-eslint-plugin-eslint/rules/no_async_promise_body.js @@ -14,14 +14,10 @@ const esTypes = tsEstree.AST_NODE_TYPES; const babelTypes = require('@babel/types'); /** @typedef {import("eslint").Rule.RuleModule} Rule */ -/** @typedef {import("@typescript-eslint/parser").ParserServices} ParserServices */ /** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.Expression} Expression */ /** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.ArrowFunctionExpression} ArrowFunctionExpression */ /** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.FunctionExpression} FunctionExpression */ -/** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.TryStatement} TryStatement */ /** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.NewExpression} NewExpression */ -/** @typedef {import("typescript").ExportDeclaration} ExportDeclaration */ -/** @typedef {import("eslint").Rule.RuleFixer} Fixer */ const ERROR_MSG = 'Passing an async function to the Promise constructor leads to a hidden promise being created and prevents handling rejections'; diff --git a/packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.js b/packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.js new file mode 100644 index 0000000000000..e3666d1cd5fa8 --- /dev/null +++ b/packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.js @@ -0,0 +1,103 @@ +/* + * Copyright 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. + */ + +const tsEstree = require('@typescript-eslint/typescript-estree'); +const traverse = require('eslint-traverse'); +const esTypes = tsEstree.AST_NODE_TYPES; + +/** @typedef {import("eslint").Rule.RuleModule} Rule */ +/** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.Node} Node */ +/** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.ClassBody} ClassBody */ +/** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.Parameter} Parameter */ +/** @typedef {import("@typescript-eslint/typescript-estree").TSESTree.TSParameterProperty} TSParameterProperty */ + +/** + * @param {Parameter} param + * @returns {param is TSParameterProperty} + */ +function isTsParameterProperty(param) { + return param.type === esTypes.TSParameterProperty; +} + +/** + * @param {string} arg + */ +const errorMsg = (arg) => + `The constructor argument "${arg}" can't be used in a class property intializer, define the property in the constructor instead`; + +/** @type {Rule} */ +module.exports = { + meta: { + schema: [], + }, + create: (context) => ({ + ClassBody(_) { + const node = /** @type {ClassBody} */ (_); + + const constructor = node.body.find( + (n) => n.type === esTypes.MethodDefinition && n.kind === 'constructor' + ); + + if (!constructor || constructor.type !== esTypes.MethodDefinition) { + return; + } + + const constructorArgProps = constructor.value.params + .filter(isTsParameterProperty) + .map((p) => { + if (p.parameter.type === esTypes.Identifier) { + return p.parameter.name; + } + + if ( + p.parameter.type === esTypes.AssignmentPattern && + p.parameter.left.type === esTypes.Identifier + ) { + return p.parameter.left.name; + } + }); + + if (!constructorArgProps.length) { + return; + } + + for (const prop of node.body) { + if (prop.type !== esTypes.PropertyDefinition) { + continue; + } + + const visitor = (path) => { + /** @type {Node} node */ + const node = path.node; + + if ( + node.type === esTypes.FunctionExpression || + node.type === esTypes.ArrowFunctionExpression + ) { + return traverse.STOP; + } + + if ( + node.type === esTypes.MemberExpression && + node.object.type === esTypes.ThisExpression && + node.property.type === esTypes.Identifier && + node.property.name && + constructorArgProps.includes(node.property.name) + ) { + context.report({ + message: errorMsg(node.property.name), + loc: node.property.loc, + }); + } + }; + + traverse(context, prop, visitor); + } + }, + }), +}; diff --git a/packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.test.js b/packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.test.js new file mode 100644 index 0000000000000..af1d15982007d --- /dev/null +++ b/packages/kbn-eslint-plugin-eslint/rules/no_constructor_args_in_property_initializers.test.js @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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. + */ + +const { RuleTester } = require('eslint'); +const rule = require('./no_constructor_args_in_property_initializers'); +const dedent = require('dedent'); + +const ruleTester = new RuleTester({ + parser: require.resolve('@typescript-eslint/parser'), + parserOptions: { + sourceType: 'module', + ecmaVersion: 2018, + ecmaFeatures: { + jsx: true, + }, + }, +}); + +ruleTester.run('@kbn/eslint/no_constructor_args_in_property_initializers', rule, { + valid: [ + { + code: dedent` + class Foo { + bar = 'baz' + } + `, + }, + { + code: dedent` + class Foo { + bar = 'baz' + constructor(private readonly foo: Box) {} + } + `, + }, + { + code: dedent` + class Foo { + bar = 'baz' + constructor(private readonly foo: () => void) {} + + get = () => { + return this.foo() + } + } + `, + }, + ], + + invalid: [ + // no catch + { + code: dedent` + class Foo { + bar = this.foo.split().reverse() + constructor(private readonly foo: string) {} + } + `, + errors: [ + { + line: 2, + message: `The constructor argument "foo" can't be used in a class property intializer, define the property in the constructor instead`, + }, + ], + }, + { + code: dedent` + class Foo { + bar = this.foo() + constructor(private readonly foo: () => void) {} + } + `, + errors: [ + { + line: 2, + message: `The constructor argument "foo" can't be used in a class property intializer, define the property in the constructor instead`, + }, + ], + }, + { + code: dedent` + class Foo { + bar = this.foo() + constructor(private readonly foo: (() => void) = defaultValue) {} + } + `, + errors: [ + { + line: 2, + message: `The constructor argument "foo" can't be used in a class property intializer, define the property in the constructor instead`, + }, + ], + }, + ], +}); diff --git a/packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts b/packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts index 18b219336a92d..6c768a0174b51 100644 --- a/packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts +++ b/packages/kbn-optimizer/src/worker/bundle_refs_plugin.ts @@ -43,10 +43,12 @@ type ModuleFactory = (data: RequestData, callback: Callback<BundleRefModule>) => export class BundleRefsPlugin { private readonly resolvedRefEntryCache = new Map<BundleRef, Promise<string>>(); private readonly resolvedRequestCache = new Map<string, Promise<string | undefined>>(); - private readonly ignorePrefix = Path.resolve(this.bundle.contextDir) + Path.sep; + private readonly ignorePrefix: string; private allowedBundleIds = new Set<string>(); - constructor(private readonly bundle: Bundle, private readonly bundleRefs: BundleRefs) {} + constructor(private readonly bundle: Bundle, private readonly bundleRefs: BundleRefs) { + this.ignorePrefix = Path.resolve(this.bundle.contextDir) + Path.sep; + } /** * Called by webpack when the plugin is passed in the webpack config diff --git a/packages/kbn-test/src/functional_test_runner/lib/lifecycle_event.ts b/packages/kbn-test/src/functional_test_runner/lib/lifecycle_event.ts index 6f4164d3e44f6..135111394648d 100644 --- a/packages/kbn-test/src/functional_test_runner/lib/lifecycle_event.ts +++ b/packages/kbn-test/src/functional_test_runner/lib/lifecycle_event.ts @@ -15,21 +15,27 @@ export type GetArgsType<T extends LifecycleEvent<any>> = T extends LifecycleEven export class LifecycleEvent<Args extends readonly any[]> { private readonly handlers: Array<(...args: Args) => Promise<void> | void> = []; - private readonly beforeSubj = this.options.singular - ? new Rx.BehaviorSubject(undefined) - : new Rx.Subject<void>(); - public readonly before$ = this.beforeSubj.asObservable(); + private readonly beforeSubj: Rx.Subject<void>; + public readonly before$: Rx.Observable<void>; - private readonly afterSubj = this.options.singular - ? new Rx.BehaviorSubject(undefined) - : new Rx.Subject<void>(); - public readonly after$ = this.afterSubj.asObservable(); + private readonly afterSubj: Rx.Subject<void>; + public readonly after$: Rx.Observable<void>; constructor( private readonly options: { singular?: boolean; } = {} - ) {} + ) { + this.beforeSubj = this.options.singular + ? new Rx.BehaviorSubject<void>(undefined) + : new Rx.Subject<void>(); + this.before$ = this.beforeSubj.asObservable(); + + this.afterSubj = this.options.singular + ? new Rx.BehaviorSubject<void>(undefined) + : new Rx.Subject<void>(); + this.after$ = this.afterSubj.asObservable(); + } public add(fn: (...args: Args) => Promise<void> | void) { this.handlers.push(fn); diff --git a/packages/kbn-test/src/functional_test_runner/lib/lifecycle_phase.ts b/packages/kbn-test/src/functional_test_runner/lib/lifecycle_phase.ts index a0367de846968..09e7c6f3b8d15 100644 --- a/packages/kbn-test/src/functional_test_runner/lib/lifecycle_phase.ts +++ b/packages/kbn-test/src/functional_test_runner/lib/lifecycle_phase.ts @@ -19,19 +19,23 @@ export class LifecyclePhase<Args extends readonly any[]> { public triggered = false; - private readonly beforeSubj = new Rx.Subject<void>(); - public readonly before$ = this.beforeSubj.asObservable(); + private readonly beforeSubj: Rx.Subject<void>; + public readonly before$: Rx.Observable<void>; - private readonly afterSubj = this.options.singular - ? new Rx.ReplaySubject<void>(1) - : new Rx.Subject<void>(); - public readonly after$ = this.afterSubj.asObservable(); + private readonly afterSubj: Rx.Subject<void>; + public readonly after$: Rx.Observable<void>; constructor( private readonly options: { singular?: boolean; } = {} - ) {} + ) { + this.beforeSubj = new Rx.Subject<void>(); + this.before$ = this.beforeSubj.asObservable(); + + this.afterSubj = this.options.singular ? new Rx.ReplaySubject<void>(1) : new Rx.Subject<void>(); + this.after$ = this.afterSubj.asObservable(); + } public add(fn: (...args: Args) => Promise<void> | void) { this.handlers.push(fn); diff --git a/src/core/public/chrome/chrome_service.test.ts b/src/core/public/chrome/chrome_service.test.ts index b3815c02674e1..505f3fc7a23d2 100644 --- a/src/core/public/chrome/chrome_service.test.ts +++ b/src/core/public/chrome/chrome_service.test.ts @@ -21,10 +21,12 @@ import { ChromeService } from './chrome_service'; import { getAppInfo } from '../application/utils'; class FakeApp implements App { - public title = `${this.id} App`; + public title: string; public mount = () => () => {}; - constructor(public id: string, public chromeless?: boolean) {} + constructor(public id: string, public chromeless?: boolean) { + this.title = `${this.id} App`; + } } const store = new Map(); diff --git a/src/core/public/injected_metadata/injected_metadata_service.ts b/src/core/public/injected_metadata/injected_metadata_service.ts index bfda6d3f334ee..7229cc903d317 100644 --- a/src/core/public/injected_metadata/injected_metadata_service.ts +++ b/src/core/public/injected_metadata/injected_metadata_service.ts @@ -74,11 +74,13 @@ export interface InjectedMetadataParams { * @internal */ export class InjectedMetadataService { - private state = deepFreeze( - this.params.injectedMetadata - ) as InjectedMetadataParams['injectedMetadata']; + private state: InjectedMetadataParams['injectedMetadata']; - constructor(private readonly params: InjectedMetadataParams) {} + constructor(private readonly params: InjectedMetadataParams) { + this.state = deepFreeze( + this.params.injectedMetadata + ) as InjectedMetadataParams['injectedMetadata']; + } public start(): InjectedMetadataStart { return this.setup(); diff --git a/src/core/server/plugins/plugins_service.ts b/src/core/server/plugins/plugins_service.ts index 9def7554ccd09..989cfed077856 100644 --- a/src/core/server/plugins/plugins_service.ts +++ b/src/core/server/plugins/plugins_service.ts @@ -89,10 +89,10 @@ export interface PluginsServiceDiscoverDeps { /** @internal */ export class PluginsService implements CoreService<PluginsServiceSetup, PluginsServiceStart> { private readonly log: Logger; - private readonly prebootPluginsSystem = new PluginsSystem(this.coreContext, PluginType.preboot); + private readonly prebootPluginsSystem: PluginsSystem<PluginType.preboot>; private arePrebootPluginsStopped = false; private readonly prebootUiPluginInternalInfo = new Map<PluginName, InternalPluginInfo>(); - private readonly standardPluginsSystem = new PluginsSystem(this.coreContext, PluginType.standard); + private readonly standardPluginsSystem: PluginsSystem<PluginType.standard>; private readonly standardUiPluginInternalInfo = new Map<PluginName, InternalPluginInfo>(); private readonly configService: IConfigService; private readonly config$: Observable<PluginsConfig>; @@ -105,6 +105,8 @@ export class PluginsService implements CoreService<PluginsServiceSetup, PluginsS this.config$ = coreContext.configService .atPath<PluginsConfigType>('plugins') .pipe(map((rawConfig) => new PluginsConfig(rawConfig, coreContext.env))); + this.prebootPluginsSystem = new PluginsSystem(this.coreContext, PluginType.preboot); + this.standardPluginsSystem = new PluginsSystem(this.coreContext, PluginType.standard); } public async discover({ environment }: PluginsServiceDiscoverDeps): Promise<DiscoveredPlugins> { diff --git a/src/core/server/preboot/preboot_service.ts b/src/core/server/preboot/preboot_service.ts index 4313541ef91d3..5795f4845493d 100644 --- a/src/core/server/preboot/preboot_service.ts +++ b/src/core/server/preboot/preboot_service.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import { Logger } from '@kbn/logging'; import { CoreContext } from '../core_context'; import { InternalPrebootServicePreboot } from './types'; @@ -14,9 +15,11 @@ export class PrebootService { private readonly promiseList: Array<Promise<{ shouldReloadConfig: boolean } | undefined>> = []; private waitUntilCanSetupPromise?: Promise<{ shouldReloadConfig: boolean }>; private isSetupOnHold = false; - private readonly log = this.core.logger.get('preboot'); + private readonly log: Logger; - constructor(private readonly core: CoreContext) {} + constructor(private readonly core: CoreContext) { + this.log = this.core.logger.get('preboot'); + } public preboot(): InternalPrebootServicePreboot { return { diff --git a/src/dev/prs/github_api.ts b/src/dev/prs/github_api.ts index 2bf20439c7803..8ffbe68efb502 100644 --- a/src/dev/prs/github_api.ts +++ b/src/dev/prs/github_api.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import axios, { AxiosError, AxiosResponse } from 'axios'; +import axios, { AxiosError, AxiosResponse, AxiosInstance } from 'axios'; import { createFailError } from '@kbn/dev-utils'; @@ -23,16 +23,18 @@ const isRateLimitError = (error: any) => `${error.response.headers['X-RateLimit-Remaining']}` === '0'; export class GithubApi { - private api = axios.create({ - baseURL: 'https://api.github.com/', - headers: { - Accept: 'application/vnd.github.v3+json', - 'User-Agent': 'kibana/update_prs_cli', - ...(this.accessToken ? { Authorization: `token ${this.accessToken} ` } : {}), - }, - }); + private api: AxiosInstance; - constructor(private accessToken?: string) {} + constructor(private accessToken?: string) { + this.api = axios.create({ + baseURL: 'https://api.github.com/', + headers: { + Accept: 'application/vnd.github.v3+json', + 'User-Agent': 'kibana/update_prs_cli', + ...(this.accessToken ? { Authorization: `token ${this.accessToken} ` } : {}), + }, + }); + } async getPrInfo(prNumber: number) { try { diff --git a/src/dev/prs/pr.ts b/src/dev/prs/pr.ts index 918ee6d3254c3..0a66e66371d74 100644 --- a/src/dev/prs/pr.ts +++ b/src/dev/prs/pr.ts @@ -21,12 +21,14 @@ export class Pr { return parseInt(input, 10); } - public readonly remoteRef = `pull/${this.number}/head`; + public readonly remoteRef: string; constructor( public readonly number: number, public readonly targetRef: string, public readonly owner: string, public readonly sourceBranch: string - ) {} + ) { + this.remoteRef = `pull/${this.number}/head`; + } } diff --git a/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx b/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx index 1cb8d4ae269ef..f7cf329d0ae35 100644 --- a/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx +++ b/src/plugins/dashboard/public/application/embeddable/dashboard_container_factory.tsx @@ -43,10 +43,16 @@ export class DashboardContainerFactoryDefinition public readonly isContainerType = true; public readonly type = DASHBOARD_CONTAINER_TYPE; + public inject: EmbeddablePersistableStateService['inject']; + public extract: EmbeddablePersistableStateService['extract']; + constructor( private readonly getStartServices: () => Promise<DashboardContainerServices>, private readonly persistableStateService: EmbeddablePersistableStateService - ) {} + ) { + this.inject = createInject(this.persistableStateService); + this.extract = createExtract(this.persistableStateService); + } public isEditable = async () => { // Currently unused for dashboards @@ -91,8 +97,4 @@ export class DashboardContainerFactoryDefinition return new DashboardContainerEmbeddable(initialInput, services, parent, controlGroup); }; - - public inject = createInject(this.persistableStateService); - - public extract = createExtract(this.persistableStateService); } diff --git a/src/plugins/home/server/plugin.ts b/src/plugins/home/server/plugin.ts index 98f7611655e55..6f082dd561e93 100644 --- a/src/plugins/home/server/plugin.ts +++ b/src/plugins/home/server/plugin.ts @@ -27,11 +27,14 @@ export interface HomeServerPluginSetupDependencies { } export class HomeServerPlugin implements Plugin<HomeServerPluginSetup, HomeServerPluginStart> { - constructor(private readonly initContext: PluginInitializerContext) {} private readonly tutorialsRegistry = new TutorialsRegistry(); - private readonly sampleDataRegistry = new SampleDataRegistry(this.initContext); + private readonly sampleDataRegistry: SampleDataRegistry; private customIntegrations?: CustomIntegrationsPluginSetup; + constructor(private readonly initContext: PluginInitializerContext) { + this.sampleDataRegistry = new SampleDataRegistry(this.initContext); + } + public setup(core: CoreSetup, plugins: HomeServerPluginSetupDependencies): HomeServerPluginSetup { this.customIntegrations = plugins.customIntegrations; diff --git a/src/plugins/presentation_util/public/components/controls/control_group/embeddable/control_group_container_factory.ts b/src/plugins/presentation_util/public/components/controls/control_group/embeddable/control_group_container_factory.ts index c5b2972bf0d97..33d0d079d26f8 100644 --- a/src/plugins/presentation_util/public/components/controls/control_group/embeddable/control_group_container_factory.ts +++ b/src/plugins/presentation_util/public/components/controls/control_group/embeddable/control_group_container_factory.ts @@ -27,7 +27,13 @@ export class ControlGroupContainerFactory implements EmbeddableFactoryDefinition public readonly isContainerType = true; public readonly type = CONTROL_GROUP_TYPE; - constructor(private persistableStateService: EmbeddablePersistableStateService) {} + public inject: EmbeddablePersistableStateService['inject']; + public extract: EmbeddablePersistableStateService['extract']; + + constructor(private persistableStateService: EmbeddablePersistableStateService) { + this.inject = createControlGroupInject(this.persistableStateService); + this.extract = createControlGroupExtract(this.persistableStateService); + } public isEditable = async () => false; @@ -50,7 +56,4 @@ export class ControlGroupContainerFactory implements EmbeddableFactoryDefinition const { ControlGroupContainer } = await import('./control_group_container'); return new ControlGroupContainer(initialInput, parent); }; - - public inject = createControlGroupInject(this.persistableStateService); - public extract = createControlGroupExtract(this.persistableStateService); } diff --git a/src/plugins/ui_actions/public/actions/action.ts b/src/plugins/ui_actions/public/actions/action.ts index 369e4888ddc73..2cca606ca9701 100644 --- a/src/plugins/ui_actions/public/actions/action.ts +++ b/src/plugins/ui_actions/public/actions/action.ts @@ -35,6 +35,10 @@ export type ActionDefinitionContext<Context extends object = object> = | Context | ActionExecutionContext<Context>; +export interface ActionMenuItemProps<Context extends object> { + context: ActionExecutionContext<Context>; +} + export interface Action<Context extends object = object> extends Partial<Presentable<ActionExecutionContext<Context>>> { /** @@ -68,7 +72,7 @@ export interface Action<Context extends object = object> * `UiComponent` to render when displaying this action as a context menu item. * If not provided, `getDisplayName` will be used instead. */ - MenuItem?: UiComponent<{ context: ActionExecutionContext<Context> }>; + MenuItem?: UiComponent<ActionMenuItemProps<Context>>; /** * Returns a promise that resolves to true if this action is compatible given the context, diff --git a/src/plugins/ui_actions/public/actions/action_internal.ts b/src/plugins/ui_actions/public/actions/action_internal.ts index 9abddf3929833..9f5639b329cb4 100644 --- a/src/plugins/ui_actions/public/actions/action_internal.ts +++ b/src/plugins/ui_actions/public/actions/action_internal.ts @@ -8,7 +8,8 @@ // @ts-ignore import React from 'react'; -import { Action, ActionContext as Context, ActionDefinition } from './action'; +import type { UiComponent } from 'src/plugins/kibana_utils/public'; +import { Action, ActionContext as Context, ActionDefinition, ActionMenuItemProps } from './action'; import { Presentable, PresentableGrouping } from '../util/presentable'; import { uiToReactComponent } from '../../../kibana_react/public'; @@ -18,14 +19,21 @@ import { uiToReactComponent } from '../../../kibana_react/public'; export class ActionInternal<A extends ActionDefinition = ActionDefinition> implements Action<Context<A>>, Presentable<Context<A>> { - constructor(public readonly definition: A) {} - - public readonly id: string = this.definition.id; - public readonly type: string = this.definition.type || ''; - public readonly order: number = this.definition.order || 0; - public readonly MenuItem? = this.definition.MenuItem; - public readonly ReactMenuItem? = this.MenuItem ? uiToReactComponent(this.MenuItem) : undefined; - public readonly grouping?: PresentableGrouping<Context<A>> = this.definition.grouping; + public readonly id: string; + public readonly type: string; + public readonly order: number; + public readonly MenuItem?: UiComponent<ActionMenuItemProps<Context<A>>>; + public readonly ReactMenuItem?: React.FC<ActionMenuItemProps<Context<A>>>; + public readonly grouping?: PresentableGrouping<Context<A>>; + + constructor(public readonly definition: A) { + this.id = this.definition.id; + this.type = this.definition.type || ''; + this.order = this.definition.order || 0; + this.MenuItem = this.definition.MenuItem; + this.ReactMenuItem = this.MenuItem ? uiToReactComponent(this.MenuItem) : undefined; + this.grouping = this.definition.grouping; + } public execute(context: Context<A>) { return this.definition.execute(context); diff --git a/src/plugins/ui_actions/public/index.ts b/src/plugins/ui_actions/public/index.ts index 8a6b7ed931490..a93b5e3f958a9 100644 --- a/src/plugins/ui_actions/public/index.ts +++ b/src/plugins/ui_actions/public/index.ts @@ -38,4 +38,4 @@ export { ACTION_VISUALIZE_GEO_FIELD, ACTION_VISUALIZE_LENS_FIELD, } from './types'; -export type { ActionExecutionContext, ActionExecutionMeta } from './actions'; +export type { ActionExecutionContext, ActionExecutionMeta, ActionMenuItemProps } from './actions'; diff --git a/test/functional/services/common/browser.ts b/test/functional/services/common/browser.ts index 7581c17a58ebf..9773091d67523 100644 --- a/test/functional/services/common/browser.ts +++ b/test/functional/services/common/browser.ts @@ -25,9 +25,8 @@ class BrowserService extends FtrService { * Keyboard events */ public readonly keys = Key; - public readonly isFirefox: boolean = this.browserType === Browsers.Firefox; - public readonly isChromium: boolean = - this.browserType === Browsers.Chrome || this.browserType === Browsers.ChromiumEdge; + public readonly isFirefox: boolean; + public readonly isChromium: boolean; private readonly log = this.ctx.getService('log'); @@ -37,6 +36,9 @@ class BrowserService extends FtrService { private readonly driver: WebDriver ) { super(ctx); + this.isFirefox = this.browserType === Browsers.Firefox; + this.isChromium = + this.browserType === Browsers.Chrome || this.browserType === Browsers.ChromiumEdge; } /** diff --git a/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts b/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts index d4fe5080bdfef..332256307237d 100644 --- a/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts +++ b/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts @@ -35,7 +35,7 @@ const RETRY_CLICK_RETRY_ON_ERRORS = [ export class WebElementWrapper { private By = By; private Keys = Key; - public isChromium: boolean = [Browsers.Chrome, Browsers.ChromiumEdge].includes(this.browserType); + public isChromium: boolean; public static create( webElement: WebElement | WebElementWrapper, @@ -69,7 +69,9 @@ export class WebElementWrapper { private fixedHeaderHeight: number, private logger: ToolingLog, private browserType: Browsers - ) {} + ) { + this.isChromium = [Browsers.Chrome, Browsers.ChromiumEdge].includes(this.browserType); + } private async _findWithCustomTimeout( findFunction: () => Promise<Array<WebElement | WebElementWrapper>>, diff --git a/x-pack/plugins/security/public/plugin.tsx b/x-pack/plugins/security/public/plugin.tsx index 043cf0765ff31..c2860ec059b8d 100644 --- a/x-pack/plugins/security/public/plugin.tsx +++ b/x-pack/plugins/security/public/plugin.tsx @@ -55,17 +55,20 @@ export class SecurityPlugin PluginStartDependencies > { - private readonly config = this.initializerContext.config.get<ConfigType>(); + private readonly config: ConfigType; private sessionTimeout!: SessionTimeout; private readonly authenticationService = new AuthenticationService(); private readonly navControlService = new SecurityNavControlService(); private readonly securityLicenseService = new SecurityLicenseService(); private readonly managementService = new ManagementService(); - private readonly securityCheckupService = new SecurityCheckupService(this.config, localStorage); + private readonly securityCheckupService: SecurityCheckupService; private readonly anonymousAccessService = new AnonymousAccessService(); private authc!: AuthenticationServiceSetup; - constructor(private readonly initializerContext: PluginInitializerContext) {} + constructor(private readonly initializerContext: PluginInitializerContext) { + this.config = this.initializerContext.config.get<ConfigType>(); + this.securityCheckupService = new SecurityCheckupService(this.config, localStorage); + } public setup( core: CoreSetup<PluginStartDependencies>, diff --git a/x-pack/plugins/security/server/authentication/authenticator.ts b/x-pack/plugins/security/server/authentication/authenticator.ts index ec804668c6078..164cc1b027b37 100644 --- a/x-pack/plugins/security/server/authentication/authenticator.ts +++ b/x-pack/plugins/security/server/authentication/authenticator.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { Logger } from '@kbn/logging'; import type { PublicMethodsOf } from '@kbn/utility-types'; import type { IBasePath, IClusterClient, LoggerFactory } from 'src/core/server'; @@ -196,18 +197,21 @@ export class Authenticator { /** * Session instance. */ - private readonly session = this.options.session; + private readonly session: AuthenticatorOptions['session']; /** * Internal authenticator logger. */ - private readonly logger = this.options.loggers.get('authenticator'); + private readonly logger: Logger; /** * Instantiates Authenticator and bootstrap configured providers. * @param options Authenticator options. */ constructor(private readonly options: Readonly<AuthenticatorOptions>) { + this.session = this.options.session; + this.logger = this.options.loggers.get('authenticator'); + const providerCommonOptions = { client: this.options.clusterClient, basePath: this.options.basePath, diff --git a/x-pack/plugins/security/server/authorization/actions/actions.ts b/x-pack/plugins/security/server/authorization/actions/actions.ts index 0234c3bc82042..e523c866a58b8 100644 --- a/x-pack/plugins/security/server/authorization/actions/actions.ts +++ b/x-pack/plugins/security/server/authorization/actions/actions.ts @@ -18,27 +18,29 @@ import { UIActions } from './ui'; * by the various `checkPrivilegesWithRequest` derivatives. */ export class Actions { - public readonly api = new ApiActions(this.versionNumber); - - public readonly app = new AppActions(this.versionNumber); - - public readonly cases = new CasesActions(this.versionNumber); - - public readonly login = 'login:'; - - public readonly savedObject = new SavedObjectActions(this.versionNumber); - - public readonly alerting = new AlertingActions(this.versionNumber); - - public readonly space = new SpaceActions(this.versionNumber); - - public readonly ui = new UIActions(this.versionNumber); - - public readonly version = `version:${this.versionNumber}`; + public readonly api: ApiActions; + public readonly app: AppActions; + public readonly cases: CasesActions; + public readonly login: string; + public readonly savedObject: SavedObjectActions; + public readonly alerting: AlertingActions; + public readonly space: SpaceActions; + public readonly ui: UIActions; + public readonly version: string; constructor(private readonly versionNumber: string) { if (versionNumber === '') { throw new Error(`version can't be an empty string`); } + + this.api = new ApiActions(this.versionNumber); + this.app = new AppActions(this.versionNumber); + this.cases = new CasesActions(this.versionNumber); + this.login = 'login:'; + this.savedObject = new SavedObjectActions(this.versionNumber); + this.alerting = new AlertingActions(this.versionNumber); + this.space = new SpaceActions(this.versionNumber); + this.ui = new UIActions(this.versionNumber); + this.version = `version:${this.versionNumber}`; } } diff --git a/x-pack/plugins/security/server/plugin.ts b/x-pack/plugins/security/server/plugin.ts index 80082e9b7dbce..e8f7aa2aacfdd 100644 --- a/x-pack/plugins/security/server/plugin.ts +++ b/x-pack/plugins/security/server/plugin.ts @@ -153,9 +153,7 @@ export class SecurityPlugin return this.kibanaIndexName; }; - private readonly authenticationService = new AuthenticationService( - this.initializerContext.logger.get('authentication') - ); + private readonly authenticationService: AuthenticationService; private authenticationStart?: InternalAuthenticationServiceStart; private readonly getAuthentication = () => { if (!this.authenticationStart) { @@ -173,19 +171,12 @@ export class SecurityPlugin return this.featureUsageServiceStart; }; - private readonly auditService = new AuditService(this.initializerContext.logger.get('audit')); + private readonly auditService: AuditService; private readonly securityLicenseService = new SecurityLicenseService(); private readonly authorizationService = new AuthorizationService(); - private readonly elasticsearchService = new ElasticsearchService( - this.initializerContext.logger.get('elasticsearch') - ); - private readonly sessionManagementService = new SessionManagementService( - this.initializerContext.logger.get('session') - ); - private readonly anonymousAccessService = new AnonymousAccessService( - this.initializerContext.logger.get('anonymous-access'), - this.getConfig - ); + private readonly elasticsearchService: ElasticsearchService; + private readonly sessionManagementService: SessionManagementService; + private readonly anonymousAccessService: AnonymousAccessService; private anonymousAccessStart?: AnonymousAccessServiceStart; private readonly getAnonymousAccess = () => { if (!this.anonymousAccessStart) { @@ -196,6 +187,21 @@ export class SecurityPlugin constructor(private readonly initializerContext: PluginInitializerContext) { this.logger = this.initializerContext.logger.get(); + + this.authenticationService = new AuthenticationService( + this.initializerContext.logger.get('authentication') + ); + this.auditService = new AuditService(this.initializerContext.logger.get('audit')); + this.elasticsearchService = new ElasticsearchService( + this.initializerContext.logger.get('elasticsearch') + ); + this.sessionManagementService = new SessionManagementService( + this.initializerContext.logger.get('session') + ); + this.anonymousAccessService = new AnonymousAccessService( + this.initializerContext.logger.get('anonymous-access'), + this.getConfig + ); } public setup( diff --git a/x-pack/plugins/security/server/session_management/session_index.ts b/x-pack/plugins/security/server/session_management/session_index.ts index fd993f0fb843a..58ee0d6956511 100644 --- a/x-pack/plugins/security/server/session_management/session_index.ts +++ b/x-pack/plugins/security/server/session_management/session_index.ts @@ -132,7 +132,7 @@ export class SessionIndex { /** * Name of the index to store session information in. */ - private readonly indexName = `${this.options.kibanaIndexName}_security_session_${SESSION_INDEX_TEMPLATE_VERSION}`; + private readonly indexName: string; /** * Promise that tracks session index initialization process. We'll need to get rid of this as soon @@ -142,7 +142,9 @@ export class SessionIndex { */ private indexInitialization?: Promise<void>; - constructor(private readonly options: Readonly<SessionIndexOptions>) {} + constructor(private readonly options: Readonly<SessionIndexOptions>) { + this.indexName = `${this.options.kibanaIndexName}_security_session_${SESSION_INDEX_TEMPLATE_VERSION}`; + } /** * Retrieves session value with the specified ID from the index. If session value isn't found diff --git a/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts b/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts index e433e9c366df5..9d20a6ea40b24 100644 --- a/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts +++ b/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts @@ -44,7 +44,7 @@ const PURPOSE_PRIVILEGE_MAP: Record< export const LEGACY_URL_ALIAS_TYPE = 'legacy-url-alias'; export class SecureSpacesClientWrapper implements ISpacesClient { - private readonly useRbac = this.authorization.mode.useRbacForRequest(this.request); + private readonly useRbac: boolean; constructor( private readonly spacesClient: ISpacesClient, @@ -52,7 +52,9 @@ export class SecureSpacesClientWrapper implements ISpacesClient { private readonly authorization: AuthorizationServiceSetup, private readonly auditLogger: AuditLogger, private readonly errors: SavedObjectsClientContract['errors'] - ) {} + ) { + this.useRbac = this.authorization.mode.useRbacForRequest(this.request); + } public async getAll({ purpose = 'any', diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts index e363d154dc141..15997355a2ae2 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts @@ -107,9 +107,7 @@ export class DrilldownManagerState { triggerIncompatible: !this.deps.triggers.find((t) => t === firstTrigger), }; }; - public readonly events$ = new BehaviorSubject<DrilldownTableItem[]>( - this.deps.dynamicActionManager.state.get().events.map(this.mapEventToDrilldownItem) - ); + public readonly events$: BehaviorSubject<DrilldownTableItem[]>; /** * State for each drilldown type used for new drilldown creation, so when user @@ -136,6 +134,10 @@ export class DrilldownManagerState { (factory) => !factory.isCompatibleLicense ); + this.events$ = new BehaviorSubject<DrilldownTableItem[]>( + this.deps.dynamicActionManager.state.get().events.map(this.mapEventToDrilldownItem) + ); + deps.dynamicActionManager.state.state$ .pipe(map((state) => state.events.map(this.mapEventToDrilldownItem))) .subscribe(this.events$); diff --git a/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts b/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts index 888d28a17547f..4115e3febe2bd 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts +++ b/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts @@ -5,8 +5,13 @@ * 2.0. */ +import type { UiComponent, CollectConfigProps } from 'src/plugins/kibana_utils/public'; +import type { MigrateFunctionsObject } from 'src/plugins/kibana_utils/common'; import { uiToReactComponent } from '../../../../../src/plugins/kibana_react/public'; -import type { UiActionsPresentable as Presentable } from '../../../../../src/plugins/ui_actions/public'; +import type { + UiActionsPresentable as Presentable, + ActionMenuItemProps, +} from '../../../../../src/plugins/ui_actions/public'; import type { ActionFactoryDefinition } from './action_factory_definition'; import type { Configurable } from '../../../../../src/plugins/kibana_utils/public'; import type { @@ -15,7 +20,7 @@ import type { SerializedAction, SerializedEvent, } from './types'; -import type { ILicense, LicensingPluginStart } from '../../../licensing/public'; +import type { ILicense, LicensingPluginStart, LicenseType } from '../../../licensing/public'; import type { UiActionsActionDefinition as ActionDefinition } from '../../../../../src/plugins/ui_actions/public'; import type { SavedObjectReference } from '../../../../../src/core/types'; import type { PersistableState } from '../../../../../src/plugins/kibana_utils/common'; @@ -34,6 +39,20 @@ export class ActionFactory< Configurable<Config, FactoryContext>, PersistableState<SerializedEvent> { + public readonly id: string; + public readonly isBeta: boolean; + public readonly minimalLicense?: LicenseType; + public readonly licenseFeatureName?: string; + public readonly order: number; + public readonly MenuItem?: UiComponent<ActionMenuItemProps<FactoryContext>>; + public readonly ReactMenuItem?: React.FC<ActionMenuItemProps<FactoryContext>>; + + public readonly CollectConfig: UiComponent<CollectConfigProps<Config, FactoryContext>>; + public readonly ReactCollectConfig: React.FC<CollectConfigProps<Config, FactoryContext>>; + public readonly createConfig: (context: FactoryContext) => Config; + public readonly isConfigValid: (config: Config, context: FactoryContext) => boolean; + public readonly migrations: MigrateFunctionsObject; + constructor( protected readonly def: ActionFactoryDefinition<Config, ExecutionContext, FactoryContext>, protected readonly deps: ActionFactoryDeps @@ -43,21 +62,20 @@ export class ActionFactory< `ActionFactory [actionFactory.id = ${def.id}] "licenseFeatureName" is required, if "minimalLicense" is provided` ); } - } - public readonly id = this.def.id; - public readonly isBeta = this.def.isBeta ?? false; - public readonly minimalLicense = this.def.minimalLicense; - public readonly licenseFeatureName = this.def.licenseFeatureName; - public readonly order = this.def.order || 0; - public readonly MenuItem? = this.def.MenuItem; - public readonly ReactMenuItem? = this.MenuItem ? uiToReactComponent(this.MenuItem) : undefined; - - public readonly CollectConfig = this.def.CollectConfig; - public readonly ReactCollectConfig = uiToReactComponent(this.CollectConfig); - public readonly createConfig = this.def.createConfig; - public readonly isConfigValid = this.def.isConfigValid; - public readonly migrations = this.def.migrations || {}; + this.id = this.def.id; + this.isBeta = this.def.isBeta ?? false; + this.minimalLicense = this.def.minimalLicense; + this.licenseFeatureName = this.def.licenseFeatureName; + this.order = this.def.order || 0; + this.MenuItem = this.def.MenuItem; + this.ReactMenuItem = this.MenuItem ? uiToReactComponent(this.MenuItem) : undefined; + this.CollectConfig = this.def.CollectConfig; + this.ReactCollectConfig = uiToReactComponent(this.CollectConfig); + this.createConfig = this.def.createConfig; + this.isConfigValid = this.def.isConfigValid; + this.migrations = this.def.migrations || {}; + } public getIconType(context: FactoryContext): string | undefined { if (!this.def.getIconType) return undefined; From 998a0db2cfcafaf7b96e9a8808924f1e2bc599d4 Mon Sep 17 00:00:00 2001 From: Joe Reuter <johannes.reuter@elastic.co> Date: Fri, 19 Nov 2021 20:25:27 +0100 Subject: [PATCH 088/114] move management app to stack management team (#119172) --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bd5aa47c79034..61348b03c2a37 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,7 +24,6 @@ /x-pack/plugins/lens/ @elastic/kibana-vis-editors /src/plugins/advanced_settings/ @elastic/kibana-vis-editors /src/plugins/charts/ @elastic/kibana-vis-editors -/src/plugins/management/ @elastic/kibana-vis-editors /src/plugins/kibana_legacy/ @elastic/kibana-vis-editors /src/plugins/vis_default_editor/ @elastic/kibana-vis-editors /src/plugins/vis_types/metric/ @elastic/kibana-vis-editors @@ -363,6 +362,7 @@ /src/plugins/dev_tools/ @elastic/kibana-stack-management /src/plugins/console/ @elastic/kibana-stack-management /src/plugins/es_ui_shared/ @elastic/kibana-stack-management +/src/plugins/management/ @elastic/kibana-stack-management /x-pack/plugins/cross_cluster_replication/ @elastic/kibana-stack-management /x-pack/plugins/index_lifecycle_management/ @elastic/kibana-stack-management /x-pack/plugins/grokdebugger/ @elastic/kibana-stack-management From a1e441401db5c24b3061c389594272405eddafed Mon Sep 17 00:00:00 2001 From: Esteban Beltran <academo@users.noreply.github.com> Date: Fri, 19 Nov 2021 14:39:56 -0500 Subject: [PATCH 089/114] kibana es add --use-cached cli flag (#119149) --- packages/kbn-es/src/artifact.js | 14 +++++++++++++- packages/kbn-es/src/cli_commands/snapshot.js | 4 +++- packages/kbn-es/src/install/snapshot.js | 5 ++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/kbn-es/src/artifact.js b/packages/kbn-es/src/artifact.js index 353dd1c4907c5..0fa2c7a1727d0 100644 --- a/packages/kbn-es/src/artifact.js +++ b/packages/kbn-es/src/artifact.js @@ -194,11 +194,23 @@ exports.Artifact = class Artifact { * @param {string} dest * @return {Promise<void>} */ - async download(dest) { + async download(dest, { useCached = false }) { await retry(this._log, async () => { const cacheMeta = cache.readMeta(dest); const tmpPath = `${dest}.tmp`; + if (useCached) { + if (cacheMeta.exists) { + this._log.info( + 'use-cached passed, forcing to use existing snapshot', + chalk.bold(cacheMeta.ts) + ); + return; + } else { + this._log.info('use-cached passed but no cached snapshot found. Continuing to download'); + } + } + const artifactResp = await this._download(tmpPath, cacheMeta.etag, cacheMeta.ts); if (artifactResp.cached) { return; diff --git a/packages/kbn-es/src/cli_commands/snapshot.js b/packages/kbn-es/src/cli_commands/snapshot.js index e64dcb7c77318..b89f1f8214813 100644 --- a/packages/kbn-es/src/cli_commands/snapshot.js +++ b/packages/kbn-es/src/cli_commands/snapshot.js @@ -29,6 +29,7 @@ exports.help = (defaults = {}) => { -E Additional key=value settings to pass to Elasticsearch --download-only Download the snapshot but don't actually start it --ssl Sets up SSL on Elasticsearch + --use-cached Skips cache verification and use cached ES snapshot. Example: @@ -51,11 +52,12 @@ exports.run = async (defaults = {}) => { installPath: 'install-path', dataArchive: 'data-archive', esArgs: 'E', + useCached: 'use-cached', }, string: ['version'], - boolean: ['download-only'], + boolean: ['download-only', 'use-cached'], default: defaults, }); diff --git a/packages/kbn-es/src/install/snapshot.js b/packages/kbn-es/src/install/snapshot.js index 81a0a9fa0dba5..cf1ce50f7e413 100644 --- a/packages/kbn-es/src/install/snapshot.js +++ b/packages/kbn-es/src/install/snapshot.js @@ -29,6 +29,7 @@ exports.downloadSnapshot = async function installSnapshot({ basePath = BASE_PATH, installPath = path.resolve(basePath, version), log = defaultLog, + useCached = false, }) { log.info('version: %s', chalk.bold(version)); log.info('install path: %s', chalk.bold(installPath)); @@ -36,7 +37,7 @@ exports.downloadSnapshot = async function installSnapshot({ const artifact = await Artifact.getSnapshot(license, version, log); const dest = path.resolve(basePath, 'cache', artifact.getFilename()); - await artifact.download(dest); + await artifact.download(dest, { useCached }); return { downloadPath: dest, @@ -62,6 +63,7 @@ exports.installSnapshot = async function installSnapshot({ installPath = path.resolve(basePath, version), log = defaultLog, esArgs, + useCached = false, }) { const { downloadPath } = await exports.downloadSnapshot({ license, @@ -69,6 +71,7 @@ exports.installSnapshot = async function installSnapshot({ basePath, installPath, log, + useCached, }); return await installArchive(downloadPath, { From cd36c0ce5216cc37d4b242c659f4277348c797f1 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet <nicolas.chaulet@elastic.co> Date: Fri, 19 Nov 2021 14:40:22 -0500 Subject: [PATCH 090/114] [Fleet] Add callout for unhealthy Fleet servers (#119096) --- .../sections/agents/agent_list_page/index.tsx | 43 ++++++- .../fleet_server_on_prem_instructions.tsx | 3 + .../fleet_server_requirement_page.tsx | 7 +- .../fleet_server_cloud_unhealthy_callout.tsx | 67 ++++++++++ .../fleet_server_on_prem_required_callout.tsx | 42 ++++++ ...fleet_server_on_prem_unhealthy_callout.tsx | 58 +++++++++ .../fleet_server_callouts/index.stories.tsx | 74 +++++++++++ .../fleet_server_callouts/index.tsx | 10 ++ .../sections/agents/components/index.tsx | 1 + .../hooks/use_fleet_server_unhealthy.test.tsx | 121 ++++++++++++++++++ .../hooks/use_fleet_server_unhealthy.tsx | 70 ++++++++++ .../fleet/public/hooks/use_fleet_status.tsx | 1 + .../hooks/use_request/package_policy.ts | 8 ++ .../public/mock/create_test_renderer.tsx | 35 +++++ 14 files changed, 534 insertions(+), 6 deletions(-) create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_cloud_unhealthy_callout.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_required_callout.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_unhealthy_callout.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.stories.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.test.tsx create mode 100644 x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.tsx diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx index 9ba63475aaaad..2e984a58bb429 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx @@ -48,7 +48,10 @@ import { AgentHealth, AgentUnenrollAgentModal, AgentUpgradeAgentModal, + FleetServerCloudUnhealthyCallout, + FleetServerOnPremUnhealthyCallout, } from '../components'; +import { useFleetServerUnhealthy } from '../hooks/use_fleet_server_unhealthy'; import { AgentTableHeader } from './components/table_header'; import type { SelectionMode } from './components/bulk_actions'; @@ -145,7 +148,7 @@ function safeMetadata(val: any) { } export const AgentListPage: React.FunctionComponent<{}> = () => { - const { notifications } = useStartServices(); + const { notifications, cloud } = useStartServices(); useBreadcrumbs('agent_list'); const { getHref } = useLink(); const defaultKuery: string = (useUrlParams().urlParams.kuery as string) || ''; @@ -193,7 +196,12 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { }, [setSearch, setDraftKuery, setSelectedAgentPolicies, setSelectedStatus, setShowUpgradeable]); // Agent enrollment flyout state - const [isEnrollmentFlyoutOpen, setIsEnrollmentFlyoutOpen] = useState<boolean>(false); + const [enrollmentFlyout, setEnrollmentFlyoutState] = useState<{ + isOpen: boolean; + selectedPolicyId?: string; + }>({ + isOpen: false, + }); // Agent actions states const [agentToReassign, setAgentToReassign] = useState<Agent | undefined>(undefined); @@ -369,6 +377,15 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { ); }, [agentToUnenroll, agentPoliciesIndexedById]); + // Fleet server unhealthy status + const { isUnhealthy: isFleetServerUnhealthy } = useFleetServerUnhealthy(); + const onClickAddFleetServer = useCallback(() => { + const defaultPolicy = agentPolicies.find((policy) => policy.is_default_fleet_server); + if (defaultPolicy) { + setEnrollmentFlyoutState({ isOpen: true, selectedPolicyId: defaultPolicy.id }); + } + }, [agentPolicies]); + const columns = [ { field: 'local_metadata.host.hostname', @@ -491,7 +508,11 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { } actions={ hasWriteCapabilites ? ( - <EuiButton fill iconType="plusInCircle" onClick={() => setIsEnrollmentFlyoutOpen(true)}> + <EuiButton + fill + iconType="plusInCircle" + onClick={() => setEnrollmentFlyoutState({ isOpen: true })} + > <FormattedMessage id="xpack.fleet.agentList.addButton" defaultMessage="Add agent" /> </EuiButton> ) : null @@ -501,11 +522,12 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { return ( <> - {isEnrollmentFlyoutOpen ? ( + {enrollmentFlyout.isOpen ? ( <EuiPortal> <AgentEnrollmentFlyout agentPolicies={agentPolicies} - onClose={() => setIsEnrollmentFlyoutOpen(false)} + agentPolicy={agentPolicies.find((p) => p.id === enrollmentFlyout.selectedPolicyId)} + onClose={() => setEnrollmentFlyoutState({ isOpen: false })} /> </EuiPortal> ) : null} @@ -549,6 +571,17 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { </EuiPortal> )} + {isFleetServerUnhealthy && ( + <> + {cloud?.deploymentUrl ? ( + <FleetServerCloudUnhealthyCallout deploymentUrl={cloud.deploymentUrl} /> + ) : ( + <FleetServerOnPremUnhealthyCallout onClickAddFleetServer={onClickAddFleetServer} /> + )} + <EuiSpacer size="l" /> + </> + )} + {/* Search and filter bar */} <SearchAndFilterBar agentPolicies={agentPolicies} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx index d45d0b7139c31..0b4461e26851e 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx @@ -46,6 +46,7 @@ import { import type { PLATFORM_TYPE } from '../../../../hooks'; import type { PackagePolicy } from '../../../../types'; import { FLEET_SERVER_PACKAGE } from '../../../../constants'; +import { FleetServerOnPremRequiredCallout } from '../../components'; import { getInstallCommandForPlatform } from './install_command_utils'; @@ -720,6 +721,8 @@ export const OnPremInstructions: React.FC = () => { return ( <> + <FleetServerOnPremRequiredCallout /> + <EuiSpacer size="xl" /> <EuiText> <h2> <FormattedMessage diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx index 28332961f37a2..b317801d46a85 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx @@ -29,7 +29,12 @@ export const FleetServerRequirementPage = () => { return ( <> - <ContentWrapper gutterSize="l" justifyContent="center" alignItems="center" direction="column"> + <ContentWrapper + gutterSize="none" + justifyContent="center" + alignItems="center" + direction="column" + > <FlexItemWithMinWidth grow={false}> {deploymentUrl ? ( <CloudInstructions deploymentUrl={deploymentUrl} /> diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_cloud_unhealthy_callout.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_cloud_unhealthy_callout.tsx new file mode 100644 index 0000000000000..a2128b52db999 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_cloud_unhealthy_callout.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 from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiCallOut, EuiLink, EuiButton, EuiSpacer } from '@elastic/eui'; + +import { useStartServices } from '../../../../hooks'; + +export interface FleetServerCloudUnhealthyCalloutProps { + deploymentUrl: string; +} + +export const FleetServerCloudUnhealthyCallout: React.FunctionComponent<FleetServerCloudUnhealthyCalloutProps> = + ({ deploymentUrl }) => { + const { docLinks } = useStartServices(); + return ( + <EuiCallOut + iconType="alert" + color="warning" + title={ + <FormattedMessage + id="xpack.fleet.fleetServerCloudUnhealthyCallout.calloutTitle" + defaultMessage="Fleet Server is not Healthy" + /> + } + > + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.calloutDescription" + defaultMessage="A healthy Fleet server is required to enroll agents with Fleet. Enable Fleet Server in you {cloudDeploymentLink}. For more information see the {guideLink}." + values={{ + cloudDeploymentLink: ( + <EuiLink href={deploymentUrl} target="_blank" external> + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.cloudDeploymentLink" + defaultMessage="cloud deployment" + /> + </EuiLink> + ), + guideLink: ( + <EuiLink + href={docLinks.links.fleet.fleetServerAddFleetServer} + target="_blank" + external + > + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.guideLink" + defaultMessage="Fleet and Elastic Agent Guide" + /> + </EuiLink> + ), + }} + /> + <EuiSpacer size="m" /> + <EuiButton href={deploymentUrl} target="_blank" color="warning" fill> + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.editDeploymentButtonLabel" + defaultMessage="Edit deployment" + /> + </EuiButton> + </EuiCallOut> + ); + }; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_required_callout.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_required_callout.tsx new file mode 100644 index 0000000000000..74703a32a500c --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_required_callout.tsx @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiCallOut, EuiLink } from '@elastic/eui'; + +import { useStartServices } from '../../../../hooks'; + +export const FleetServerOnPremRequiredCallout = () => { + const { docLinks } = useStartServices(); + return ( + <EuiCallOut + iconType="alert" + title={ + <FormattedMessage + id="xpack.fleet.fleetServerOnPremRequiredCallout.calloutTitle" + defaultMessage="A Fleet Server is required before enrolling agents with Fleet." + /> + } + > + <FormattedMessage + id="xpack.fleet.fleetServerOnPremRequiredCallout.calloutDescription" + defaultMessage="Follow the instructions below to set up a Fleet Server. For more information, see the {guideLink}." + values={{ + guideLink: ( + <EuiLink href={docLinks.links.fleet.fleetServerAddFleetServer} target="_blank" external> + <FormattedMessage + id="xpack.fleet.fleetServerOnPremRequiredCallout.guideLink" + defaultMessage="Fleet and Elastic Agent Guide" + /> + </EuiLink> + ), + }} + /> + </EuiCallOut> + ); +}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_unhealthy_callout.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_unhealthy_callout.tsx new file mode 100644 index 0000000000000..aedd682831db5 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_unhealthy_callout.tsx @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiCallOut, EuiLink, EuiButton, EuiSpacer } from '@elastic/eui'; + +import { useStartServices } from '../../../../hooks'; + +export interface FleetServerOnPremUnhealthyCalloutProps { + onClickAddFleetServer: () => void; +} +export const FleetServerOnPremUnhealthyCallout: React.FunctionComponent<FleetServerOnPremUnhealthyCalloutProps> = + ({ onClickAddFleetServer }) => { + const { docLinks } = useStartServices(); + return ( + <EuiCallOut + iconType="alert" + color="warning" + title={ + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.calloutTitle" + defaultMessage="Fleet Server is not Healthy" + /> + } + > + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.calloutDescription" + defaultMessage="A healthy Fleet server is required before you can enroll agents with Fleet. For more information see the {guideLink}." + values={{ + guideLink: ( + <EuiLink + href={docLinks.links.fleet.fleetServerAddFleetServer} + target="_blank" + external + > + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.guideLink" + defaultMessage="Fleet and Elastic Agent Guide" + /> + </EuiLink> + ), + }} + /> + <EuiSpacer size="m" /> + <EuiButton onClick={onClickAddFleetServer} color="warning" fill> + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.addFleetServerButtonLabel" + defaultMessage="Add Fleet Server" + /> + </EuiButton> + </EuiCallOut> + ); + }; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.stories.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.stories.tsx new file mode 100644 index 0000000000000..d16026851a2d8 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.stories.tsx @@ -0,0 +1,74 @@ +/* + * Copyright 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 { EuiSpacer } from '@elastic/eui'; + +import { FleetServerOnPremUnhealthyCallout as FleetServerOnPremUnhealthyCalloutComponent } from './fleet_server_on_prem_unhealthy_callout'; +import { FleetServerCloudUnhealthyCallout as FleetServerCloudUnhealthyCalloutComponent } from './fleet_server_cloud_unhealthy_callout'; +import { FleetServerOnPremRequiredCallout as FleetServerOnPremRequiredCalloutComponent } from './fleet_server_on_prem_required_callout'; + +interface Args { + width: number; +} + +export const FleetServerCallouts = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerCloudUnhealthyCalloutComponent deploymentUrl="https://linktoclouddeployment/deployment123" /> + <EuiSpacer size="m" /> + <FleetServerOnPremUnhealthyCalloutComponent onClickAddFleetServer={() => {}} /> + <EuiSpacer size="m" /> + <FleetServerOnPremRequiredCalloutComponent /> + </div> + ); +}; + +FleetServerCallouts.args = { + width: 900, +} as Args; + +export const FleetServerCloudUnhealthyCallout = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerCloudUnhealthyCalloutComponent deploymentUrl="https://linktoclouddeployment/deployment123" /> + </div> + ); +}; + +FleetServerCloudUnhealthyCallout.args = { + width: 900, +} as Args; + +export const FleetServerOnPremUnhealthyCallout = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerOnPremUnhealthyCalloutComponent onClickAddFleetServer={() => {}} /> + </div> + ); +}; + +FleetServerOnPremUnhealthyCallout.args = { + width: 900, +} as Args; + +export const FleetServerOnPremRequiredCallout = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerOnPremRequiredCalloutComponent /> + </div> + ); +}; + +FleetServerOnPremRequiredCallout.args = { + width: 900, +} as Args; + +export default { + component: FleetServerCallouts, + title: 'Sections/Fleet/Agents/FleetServerCallouts', +}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.tsx new file mode 100644 index 0000000000000..1346153d0b34d --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.tsx @@ -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. + */ + +export * from './fleet_server_cloud_unhealthy_callout'; +export * from './fleet_server_on_prem_unhealthy_callout'; +export * from './fleet_server_on_prem_required_callout'; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx index 966a777941373..27fcc06045314 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx @@ -10,3 +10,4 @@ export * from './agent_reassign_policy_modal'; export * from './agent_health'; export * from './agent_unenroll_modal'; export * from './agent_upgrade_modal'; +export * from './fleet_server_callouts'; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.test.tsx new file mode 100644 index 0000000000000..87a269672ed9c --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.test.tsx @@ -0,0 +1,121 @@ +/* + * Copyright 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 { createFleetTestRendererMock } from '../../../../../mock'; +import type { MockedFleetStartServices } from '../../../../../mock'; + +import { useFleetServerUnhealthy } from './use_fleet_server_unhealthy'; + +function defaultHttpClientGetImplementation(path: any) { + if (typeof path !== 'string') { + throw new Error('Invalid request'); + } + const err = new Error(`API [GET ${path}] is not MOCKED!`); + // eslint-disable-next-line no-console + console.log(err); + throw err; +} + +const mockApiCallsWithHealthyFleetServer = (http: MockedFleetStartServices['http']) => { + http.get.mockImplementation(async (path) => { + if (typeof path !== 'string') { + throw new Error('Invalid request'); + } + if (path === '/api/fleet/package_policies') { + return { + data: { + items: [ + { + policy_id: 'policy1', + }, + ], + }, + }; + } + + if (path === '/api/fleet/agent-status') { + return { + data: { + results: { online: 1, updating: 0, offline: 0 }, + }, + }; + } + return defaultHttpClientGetImplementation(path); + }); +}; + +const mockApiCallsWithoutHealthyFleetServer = (http: MockedFleetStartServices['http']) => { + http.get.mockImplementation(async (path) => { + if (typeof path !== 'string') { + throw new Error('Invalid request'); + } + if (path === '/api/fleet/package_policies') { + return { + data: { + items: [ + { + policy_id: 'policy1', + }, + ], + }, + }; + } + + if (path === '/api/fleet/agent-status') { + return { + data: { + results: { online: 0, updating: 0, offline: 1 }, + }, + }; + } + return defaultHttpClientGetImplementation(path); + }); +}; + +const mockApiCallsWithError = (http: MockedFleetStartServices['http']) => { + http.get.mockImplementation(async (path) => { + const error = new Error('Invalid request'); + // @ts-ignore + error.body = 'Invalid request, ...'; + throw error; + }); +}; + +describe('useFleetServerUnhealthy', () => { + it('should return isUnHealthy:false with an online fleet slerver', async () => { + const testRenderer = createFleetTestRendererMock(); + mockApiCallsWithHealthyFleetServer(testRenderer.startServices.http); + const { result, waitForNextUpdate } = testRenderer.renderHook(() => useFleetServerUnhealthy()); + expect(result.current.isLoading).toBeTruthy(); + + await waitForNextUpdate(); + expect(result.current.isLoading).toBeFalsy(); + expect(result.current.isUnhealthy).toBeFalsy(); + }); + it('should return isUnHealthy:true with only one offline fleet slerver', async () => { + const testRenderer = createFleetTestRendererMock(); + mockApiCallsWithoutHealthyFleetServer(testRenderer.startServices.http); + const { result, waitForNextUpdate } = testRenderer.renderHook(() => useFleetServerUnhealthy()); + expect(result.current.isLoading).toBeTruthy(); + + await waitForNextUpdate(); + expect(result.current.isLoading).toBeFalsy(); + expect(result.current.isUnhealthy).toBeTruthy(); + }); + + it('should call notifications service if an error happen while fetching status', async () => { + const testRenderer = createFleetTestRendererMock(); + mockApiCallsWithError(testRenderer.startServices.http); + const { result, waitForNextUpdate } = testRenderer.renderHook(() => useFleetServerUnhealthy()); + expect(result.current.isLoading).toBeTruthy(); + + await waitForNextUpdate(); + expect(result.current.isLoading).toBeFalsy(); + expect(result.current.isUnhealthy).toBeFalsy(); + expect(testRenderer.startServices.notifications.toasts.addError).toBeCalled(); + }); +}); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.tsx new file mode 100644 index 0000000000000..d97051c7bd969 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.tsx @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { useEffect, useCallback, useState } from 'react'; + +import { FLEET_SERVER_PACKAGE, PACKAGE_POLICY_SAVED_OBJECT_TYPE } from '../../../constants'; +import { sendGetAgentStatus, sendGetPackagePolicies, useStartServices } from '../../../hooks'; + +export function useFleetServerUnhealthy() { + const { notifications } = useStartServices(); + const [isLoading, setIsLoading] = useState(true); + const [isUnhealthy, setIsUnhealthy] = useState(false); + const fetchData = useCallback(async () => { + try { + const packagePoliciesRes = await sendGetPackagePolicies({ + page: 1, + perPage: 10000, + kuery: `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name:${FLEET_SERVER_PACKAGE}`, + }); + + if (packagePoliciesRes.error) { + throw packagePoliciesRes.error; + } + + const agentPolicyIds = [ + ...new Set(packagePoliciesRes.data?.items.map((p) => p.policy_id) ?? []), + ]; + + if (agentPolicyIds.length > 0) { + const agentStatusesRes = await sendGetAgentStatus({ + kuery: agentPolicyIds.map((policyId) => `policy_id:"${policyId}"`).join(' or '), + }); + + if (agentStatusesRes.error) { + throw agentStatusesRes.error; + } + + if ( + agentStatusesRes.data?.results.online === 0 && + agentStatusesRes.data?.results.updating === 0 + ) { + setIsUnhealthy(true); + } + } + + setIsLoading(false); + } catch (err) { + notifications.toasts.addError(err, { + title: i18n.translate('xpack.fleet.fleetServerUnhealthy.requestError', { + defaultMessage: 'An error happened while fetching fleet server status', + }), + }); + setIsLoading(false); + } + }, [notifications.toasts]); + + useEffect(() => { + fetchData(); + }, [fetchData]); + + return { + isLoading, + isUnhealthy, + }; +} diff --git a/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx b/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx index c8965f8be0156..b1665f0ac2e76 100644 --- a/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx +++ b/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx @@ -54,6 +54,7 @@ export const FleetStatusProvider: React.FC = ({ children }) => { }, [setState] ); + useEffect(() => { sendGetStatus(); }, [sendGetStatus]); diff --git a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts index 6223c1a397104..0d2e1179108f2 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts @@ -59,6 +59,14 @@ export function useGetPackagePolicies(query: GetPackagePoliciesRequest['query']) }); } +export const sendGetPackagePolicies = (query: GetPackagePoliciesRequest['query']) => { + return sendRequest<GetPackagePoliciesResponse>({ + method: 'get', + path: packagePolicyRouteService.getListPath(), + query, + }); +}; + export const useGetOnePackagePolicy = (packagePolicyId: string) => { return useRequest<GetOnePackagePolicyResponse>({ path: packagePolicyRouteService.getInfoPath(packagePolicyId), diff --git a/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx b/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx index a0a9ef405540a..ad07e020eadd9 100644 --- a/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx +++ b/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx @@ -10,7 +10,10 @@ import { createMemoryHistory } from 'history'; import React, { memo } from 'react'; import type { RenderOptions, RenderResult } from '@testing-library/react'; import { render as reactRender, act } from '@testing-library/react'; +import { renderHook } from '@testing-library/react-hooks'; +import type { RenderHookResult } from '@testing-library/react-hooks'; +import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; import { ScopedHistory } from '../../../../../src/core/public'; import { FleetAppContext } from '../applications/fleet/app'; import { IntegrationsAppContext } from '../applications/integrations/app'; @@ -40,7 +43,11 @@ export interface TestRenderer { startInterface: MockedFleetStart; kibanaVersion: string; AppWrapper: React.FC<any>; + HookWrapper: React.FC<any>; render: UiRender; + renderHook: <TProps, TResult>( + callback: (props: TProps) => TResult + ) => RenderHookResult<TProps, TResult>; setHeaderActionMenu: Function; } @@ -49,6 +56,15 @@ export const createFleetTestRendererMock = (): TestRenderer => { const extensions: UIExtensionsStorage = {}; const startServices = createStartServices(basePath); const history = createMemoryHistory({ initialEntries: [basePath] }); + + const HookWrapper = memo(({ children }) => { + return ( + <startServices.i18n.Context> + <KibanaContextProvider services={{ ...startServices }}>{children}</KibanaContextProvider> + </startServices.i18n.Context> + ); + }); + const testRendererMocks: TestRenderer = { history, mountHistory: new ScopedHistory(history, basePath), @@ -72,6 +88,12 @@ export const createFleetTestRendererMock = (): TestRenderer => { </FleetAppContext> ); }), + HookWrapper, + renderHook: (callback) => { + return renderHook(callback, { + wrapper: testRendererMocks.HookWrapper, + }); + }, render: (ui, options) => { let renderResponse: RenderResult; act(() => { @@ -91,6 +113,13 @@ export const createIntegrationsTestRendererMock = (): TestRenderer => { const basePath = '/mock'; const extensions: UIExtensionsStorage = {}; const startServices = createStartServices(basePath); + const HookWrapper = memo(({ children }) => { + return ( + <startServices.i18n.Context> + <KibanaContextProvider services={{ ...startServices }}>{children}</KibanaContextProvider> + </startServices.i18n.Context> + ); + }); const testRendererMocks: TestRenderer = { history: createMemoryHistory(), mountHistory: new ScopedHistory(createMemoryHistory({ initialEntries: [basePath] }), basePath), @@ -115,6 +144,7 @@ export const createIntegrationsTestRendererMock = (): TestRenderer => { </IntegrationsAppContext> ); }), + HookWrapper, render: (ui, options) => { let renderResponse: RenderResult; act(() => { @@ -125,6 +155,11 @@ export const createIntegrationsTestRendererMock = (): TestRenderer => { }); return renderResponse!; }, + renderHook: (callback) => { + return renderHook(callback, { + wrapper: testRendererMocks.HookWrapper, + }); + }, }; return testRendererMocks; From 1fbe20b7468e28ab4624d4d278dff3eb93d1b38c Mon Sep 17 00:00:00 2001 From: Joe Portner <5295965+jportner@users.noreply.github.com> Date: Fri, 19 Nov 2021 15:17:07 -0500 Subject: [PATCH 091/114] Remove duplicate Spaces functional test (#119206) --- .../apps/spaces/spaces_selection.ts | 30 ------------------- 1 file changed, 30 deletions(-) diff --git a/x-pack/test/functional/apps/spaces/spaces_selection.ts b/x-pack/test/functional/apps/spaces/spaces_selection.ts index 4a61421775163..dad2dee0d3c9c 100644 --- a/x-pack/test/functional/apps/spaces/spaces_selection.ts +++ b/x-pack/test/functional/apps/spaces/spaces_selection.ts @@ -63,36 +63,6 @@ export default function spaceSelectorFunctionalTests({ }); }); - describe('Space Selector', () => { - before(async () => { - await PageObjects.security.forceLogout(); - }); - - afterEach(async () => { - await PageObjects.security.forceLogout(); - }); - - it('allows user to navigate to different spaces', async () => { - const spaceId = 'another-space'; - - await PageObjects.security.login(undefined, undefined, { - expectSpaceSelector: true, - }); - - await PageObjects.spaceSelector.clickSpaceCard(spaceId); - - await PageObjects.spaceSelector.expectHomePage(spaceId); - - await PageObjects.spaceSelector.openSpacesNav(); - - // change spaces - - await PageObjects.spaceSelector.clickSpaceAvatar('default'); - - await PageObjects.spaceSelector.expectHomePage('default'); - }); - }); - // FLAKY: https://github.com/elastic/kibana/issues/118356 // FLAKY: https://github.com/elastic/kibana/issues/118474 describe.skip('Search spaces in popover', () => { From 4b75e942099cf05915ffeed56e900b91d15407bd Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet <nicolas.chaulet@elastic.co> Date: Fri, 19 Nov 2021 16:42:28 -0500 Subject: [PATCH 092/114] [Fleet] Fix formatNonFatal error typings and avoid type error (#119203) --- .../fleet/server/services/managed_package_policies.ts | 2 +- x-pack/plugins/fleet/server/services/setup.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/managed_package_policies.ts b/x-pack/plugins/fleet/server/services/managed_package_policies.ts index e78bc096b8711..c702cfe96d986 100644 --- a/x-pack/plugins/fleet/server/services/managed_package_policies.ts +++ b/x-pack/plugins/fleet/server/services/managed_package_policies.ts @@ -74,7 +74,7 @@ export const upgradeManagedPackagePolicies = async ( if (dryRunResults.hasErrors) { const errors = dryRunResults.diff ? dryRunResults.diff?.[1].errors - : dryRunResults.body?.message; + : [dryRunResults.body?.message]; appContextService .getLogger() diff --git a/x-pack/plugins/fleet/server/services/setup.ts b/x-pack/plugins/fleet/server/services/setup.ts index 1c84073552e57..d39a5f4473199 100644 --- a/x-pack/plugins/fleet/server/services/setup.ts +++ b/x-pack/plugins/fleet/server/services/setup.ts @@ -220,8 +220,15 @@ export function formatNonFatalErrors( name: e.error.name, message: e.error.message, }; - } else { + } else if ('errors' in e) { return e.errors.map((upgradePackagePolicyError: any) => { + if (typeof upgradePackagePolicyError === 'string') { + return { + name: 'SetupNonFatalError', + message: upgradePackagePolicyError, + }; + } + return { name: upgradePackagePolicyError.key, message: upgradePackagePolicyError.message, From ea1502b56f3f26e4390b0627e13f7fb7ea16d849 Mon Sep 17 00:00:00 2001 From: Brian Seeders <brian.seeders@elastic.co> Date: Fri, 19 Nov 2021 14:59:20 -0500 Subject: [PATCH 093/114] Skip flaky test (#118023) --- .../apm_api_integration/tests/correlations/latency.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts b/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts index 70a4071bfbb04..b99f9eb5897a9 100644 --- a/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts +++ b/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts @@ -105,7 +105,8 @@ export default function ApiTest({ getService }: FtrProviderContext) { { config: 'trial', archives: ['8.0.0'] }, () => { // putting this into a single `it` because the responses depend on each other - it('runs queries and returns results', async () => { + // flaky: https://github.com/elastic/kibana/issues/118023 + it.skip('runs queries and returns results', async () => { const overallDistributionResponse = await apmApiClient.readUser({ endpoint: 'POST /internal/apm/latency/overall_distribution', params: { From 8e8b62352bff074e7e38a013628975f85e8d1533 Mon Sep 17 00:00:00 2001 From: Brian Seeders <brian.seeders@elastic.co> Date: Fri, 19 Nov 2021 16:55:48 -0500 Subject: [PATCH 094/114] [CI] Increase heap for jest integration tests (#119237) --- .buildkite/scripts/steps/test/jest_integration.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.buildkite/scripts/steps/test/jest_integration.sh b/.buildkite/scripts/steps/test/jest_integration.sh index 458651df2df2a..d07da0584d46d 100755 --- a/.buildkite/scripts/steps/test/jest_integration.sh +++ b/.buildkite/scripts/steps/test/jest_integration.sh @@ -10,4 +10,4 @@ is_test_execution_step echo '--- Jest Integration Tests' checks-reporter-with-killswitch "Jest Integration Tests" \ - node --max-old-space-size=5120 scripts/jest_integration --ci + node --max-old-space-size=6144 scripts/jest_integration --ci From 9fa409fc0e96215a8380450042faf6a671dd125f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loix?= <sabee77@gmail.com> Date: Sat, 20 Nov 2021 15:18:59 +0000 Subject: [PATCH 095/114] =?UTF-8?q?[main]=C2=A0[UA]=20ES=20deprecation=20l?= =?UTF-8?q?ogs=20in=20its=20own=20page=20(#118659)=20(#119134)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../public/doc_links/doc_links_service.ts | 1 + .../components/with_privileges.tsx | 2 +- .../translations/translations/ja-JP.json | 8 +- .../translations/translations/zh-CN.json | 4 +- .../app/cluster_upgrade.test.tsx | 9 +- .../es_deprecation_logs.helpers.ts | 80 ++++++++ .../es_deprecation_logs.test.tsx} | 116 ++++------- .../overview/overview.helpers.ts | 33 --- .../public/application/app.tsx | 9 +- .../es_deprecation_logs.tsx | 74 +++++++ .../_deprecation_logging_toggle.scss | 0 .../deprecation_logging_toggle.tsx | 0 .../deprecation_logging_toggle/index.ts | 0 .../deprecations_count_checkpoint.tsx | 14 +- .../deprecations_count_checkpoint/index.ts | 0 .../external_links.test.ts | 0 .../fix_deprecation_logs}/external_links.tsx | 0 .../fix_deprecation_logs.tsx} | 57 ++---- .../fix_deprecation_logs/index.ts | 8 + .../use_deprecation_logging.ts | 0 .../index.ts | 2 +- .../public/application/components/index.ts | 1 + .../fix_issues_step/fix_issues_step.tsx | 53 ++++- .../components/overview/overview.tsx | 22 +- .../public/application/lib/breadcrumbs.ts | 16 +- .../public/application/lib/ui_metric.ts | 1 + .../accessibility/apps/upgrade_assistant.ts | 188 ++++++++---------- .../es_deprecation_logs_page.ts | 45 +++++ .../apps/upgrade_assistant/index.ts | 1 + .../apps/upgrade_assistant/overview_page.ts | 31 --- .../page_objects/upgrade_assistant_page.ts | 15 ++ 31 files changed, 459 insertions(+), 331 deletions(-) create mode 100644 x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.helpers.ts rename x-pack/plugins/upgrade_assistant/__jest__/client_integration/{overview/fix_logs_step/fix_logs_step.test.tsx => es_deprecation_logs/es_deprecation_logs.test.tsx} (80%) create mode 100644 x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/es_deprecation_logs.tsx rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/deprecation_logging_toggle/_deprecation_logging_toggle.scss (100%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/deprecation_logging_toggle/deprecation_logging_toggle.tsx (100%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/deprecation_logging_toggle/index.ts (100%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx (89%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/deprecations_count_checkpoint/index.ts (100%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/external_links.test.ts (100%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/external_links.tsx (100%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step/fix_logs_step.tsx => es_deprecation_logs/fix_deprecation_logs/fix_deprecation_logs.tsx} (80%) create mode 100644 x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/index.ts rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs/fix_deprecation_logs}/use_deprecation_logging.ts (100%) rename x-pack/plugins/upgrade_assistant/public/application/components/{overview/fix_logs_step => es_deprecation_logs}/index.ts (81%) create mode 100644 x-pack/test/functional/apps/upgrade_assistant/es_deprecation_logs_page.ts diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index 6b6ceeddee68e..f97ec152aa5d7 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -225,6 +225,7 @@ export class DocLinksService { mappingTermVector: `${ELASTICSEARCH_DOCS}term-vector.html`, mappingTypesRemoval: `${ELASTICSEARCH_DOCS}removal-of-types.html`, migrateIndexAllocationFilters: `${ELASTICSEARCH_DOCS}migrate-index-allocation-filters.html`, + migrationApiDeprecation: `${ELASTICSEARCH_DOCS}migration-api-deprecation.html`, nodeRoles: `${ELASTICSEARCH_DOCS}modules-node.html#node-roles`, releaseHighlights: `${ELASTICSEARCH_DOCS}release-highlights.html`, remoteClusters: `${ELASTICSEARCH_DOCS}remote-clusters.html`, diff --git a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/with_privileges.tsx b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/with_privileges.tsx index 6485bd7f45e55..16dffdb5d267d 100644 --- a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/with_privileges.tsx +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/with_privileges.tsx @@ -22,7 +22,7 @@ interface Props { isLoading: boolean; hasPrivileges: boolean; privilegesMissing: MissingPrivileges; - }) => JSX.Element; + }) => JSX.Element | null; } type Privilege = [string, string]; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 5645ebfebf34e..bf8bb82faf706 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -17555,7 +17555,7 @@ "xpack.ml.ruleEditor.scopeSection.noPermissionToViewFilterListsTitle": "フィルターリストを表示するパーミッションがありません", "xpack.ml.ruleEditor.scopeSection.scopeTitle": "範囲", "xpack.ml.ruleEditor.selectRuleAction.createRuleLinkText": "ルールを作成", - "xpack.ml.ruleEditor.selectRuleAction.orText": "OR ", + "xpack.ml.ruleEditor.selectRuleAction.orText": "OR ", "xpack.ml.ruleEditor.typicalAppliesTypeText": "通常", "xpack.ml.sampleDataLinkLabel": "ML ジョブ", "xpack.ml.settings.anomalyDetection.anomalyDetectionTitle": "異常検知", @@ -23489,9 +23489,9 @@ "xpack.securitySolution.open.timeline.showingLabel": "表示中:", "xpack.securitySolution.open.timeline.singleTemplateLabel": "テンプレート", "xpack.securitySolution.open.timeline.singleTimelineLabel": "タイムライン", - "xpack.securitySolution.open.timeline.successfullyDeletedTimelinesTitle": "{totalTimelines, plural, =0 {すべてのタイムライン} other {{totalTimelines} 個のタイムライン}}の削除が正常に完了しました", + "xpack.securitySolution.open.timeline.successfullyDeletedTimelinesTitle": "{totalTimelines, plural, =0 {すべてのタイムライン} other {{totalTimelines} 個のタイムライン}}の削除が正常に完了しました", "xpack.securitySolution.open.timeline.successfullyDeletedTimelineTemplatesTitle": "{totalTimelineTemplates, plural, =0 {すべてのタイムライン} other {{totalTimelineTemplates}個のタイムラインテンプレート}}が正常に削除されました", - "xpack.securitySolution.open.timeline.successfullyExportedTimelinesTitle": "{totalTimelines, plural, =0 {すべてのタイムライン} other {{totalTimelines} 個のタイムライン}}のエクスポートが正常に完了しました", + "xpack.securitySolution.open.timeline.successfullyExportedTimelinesTitle": "{totalTimelines, plural, =0 {すべてのタイムライン} other {{totalTimelines} 個のタイムライン}}のエクスポートが正常に完了しました", "xpack.securitySolution.open.timeline.successfullyExportedTimelineTemplatesTitle": "{totalTimelineTemplates, plural, =0 {すべてのタイムライン} other {{totalTimelineTemplates} タイムラインテンプレート}}が正常にエクスポートされました", "xpack.securitySolution.open.timeline.timelineNameTableHeader": "タイムライン名", "xpack.securitySolution.open.timeline.timelineTemplateNameTableHeader": "テンプレート名", @@ -26568,9 +26568,7 @@ "xpack.upgradeAssistant.overview.deprecationLogs.updateErrorMessage": "ログ状態を更新できませんでした。", "xpack.upgradeAssistant.overview.deprecationsCountCheckpointTitle": "廃止予定の問題を解決して変更を検証", "xpack.upgradeAssistant.overview.documentationLinkText": "ドキュメント", - "xpack.upgradeAssistant.overview.fixIssuesStepDescription": "Elastic 8.xとの互換になるように、ElasticsearchおよびKibanaデプロイを更新します。アップグレード前に、重大な問題を解決する必要があります。警告の問題は独自の裁量で無視できます。", "xpack.upgradeAssistant.overview.fixIssuesStepTitle": "廃止予定設定を確認し、問題を解決", - "xpack.upgradeAssistant.overview.identifyStepTitle": "廃止予定APIの使用を特定し、アプリケーションを更新", "xpack.upgradeAssistant.overview.loadingLogsLabel": "廃止予定ログ収集状態を読み込んでいます...", "xpack.upgradeAssistant.overview.observe.discoveryDescription": "廃止予定ログを検索およびフィルターし、必要な変更のタイプを把握します。", "xpack.upgradeAssistant.overview.observe.observabilityDescription": "使用中のAPIのうち廃止予定のAPIと、更新が必要なアプリケーションを特定できます。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 97d68b36baaa2..024a10fbc3a8c 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -17820,7 +17820,7 @@ "xpack.ml.ruleEditor.scopeSection.noPermissionToViewFilterListsTitle": "您无权查看筛选列表", "xpack.ml.ruleEditor.scopeSection.scopeTitle": "范围", "xpack.ml.ruleEditor.selectRuleAction.createRuleLinkText": "创建规则", - "xpack.ml.ruleEditor.selectRuleAction.orText": "或 ", + "xpack.ml.ruleEditor.selectRuleAction.orText": "或 ", "xpack.ml.ruleEditor.typicalAppliesTypeText": "典型", "xpack.ml.sampleDataLinkLabel": "ML 作业", "xpack.ml.settings.anomalyDetection.anomalyDetectionTitle": "异常检测", @@ -27026,9 +27026,7 @@ "xpack.upgradeAssistant.overview.deprecationLogs.updateErrorMessage": "无法更新日志记录状态。", "xpack.upgradeAssistant.overview.deprecationsCountCheckpointTitle": "解决弃用问题并验证您的更改", "xpack.upgradeAssistant.overview.documentationLinkText": "文档", - "xpack.upgradeAssistant.overview.fixIssuesStepDescription": "更新您的 Elasticsearch 和 Kibana 部署以兼容 Elastic 8.x。在升级之前必须解决紧急问题。您可以酌情忽略警告问题。", "xpack.upgradeAssistant.overview.fixIssuesStepTitle": "复查已弃用设置并解决问题", - "xpack.upgradeAssistant.overview.identifyStepTitle": "识别已弃用 API 的使用并更新您的应用程序", "xpack.upgradeAssistant.overview.loadingLogsLabel": "正在加载弃用日志收集状态……", "xpack.upgradeAssistant.overview.observe.discoveryDescription": "搜索并筛选弃用日志以了解需要进行的更改类型。", "xpack.upgradeAssistant.overview.observe.observabilityDescription": "深入了解正在使用哪些已弃用 API 以及需要更新哪些应用程序。", diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx index 043c649b39bc2..7276d005844c2 100644 --- a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx @@ -36,9 +36,14 @@ describe('Cluster upgrade', () => { }); }); + // The way we detect if we are currently upgrading or if the upgrade has been completed is if + // we ever get back a 426 error in *any* API response that UA makes. For that reason we can + // just mock one of the APIs that are being called from the overview page to return an error + // in order to trigger these interstitial states. In this case we're going to mock the + // `es deprecations` response. describe('when cluster is in the process of a rolling upgrade', () => { beforeEach(async () => { - httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(undefined, { + httpRequestsMockHelpers.setLoadEsDeprecationsResponse(undefined, { statusCode: 426, message: '', attributes: { @@ -62,7 +67,7 @@ describe('Cluster upgrade', () => { describe('when cluster has been upgraded', () => { beforeEach(async () => { - httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(undefined, { + httpRequestsMockHelpers.setLoadEsDeprecationsResponse(undefined, { statusCode: 426, message: '', attributes: { diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.helpers.ts b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.helpers.ts new file mode 100644 index 0000000000000..11784d0269505 --- /dev/null +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.helpers.ts @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { act } from 'react-dom/test-utils'; +import { registerTestBed, TestBed, AsyncTestBedConfig } from '@kbn/test/jest'; +import { EsDeprecationLogs } from '../../../public/application/components/es_deprecation_logs'; +import { WithAppDependencies } from '../helpers'; + +const testBedConfig: AsyncTestBedConfig = { + memoryRouter: { + initialEntries: ['/es_deprecation_logs'], + componentRoutePath: '/es_deprecation_logs', + }, + doMountAsync: true, +}; + +export type EsDeprecationLogsTestBed = TestBed & { + actions: ReturnType<typeof createActions>; +}; + +const createActions = (testBed: TestBed) => { + /** + * User Actions + */ + + const clickDeprecationToggle = async () => { + const { find, component } = testBed; + + await act(async () => { + find('deprecationLoggingToggle').simulate('click'); + }); + + component.update(); + }; + + const clickRetryButton = async () => { + const { find, component } = testBed; + + await act(async () => { + find('retryButton').simulate('click'); + }); + + component.update(); + }; + + const clickResetButton = async () => { + const { find, component } = testBed; + + await act(async () => { + find('resetLastStoredDate').simulate('click'); + }); + + component.update(); + }; + + return { + clickDeprecationToggle, + clickRetryButton, + clickResetButton, + }; +}; + +export const setupESDeprecationLogsPage = async ( + overrides?: Record<string, unknown> +): Promise<EsDeprecationLogsTestBed> => { + const initTestBed = registerTestBed( + WithAppDependencies(EsDeprecationLogs, overrides), + testBedConfig + ); + const testBed = await initTestBed(); + + return { + ...testBed, + actions: createActions(testBed), + }; +}; diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/fix_logs_step/fix_logs_step.test.tsx b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.test.tsx similarity index 80% rename from x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/fix_logs_step/fix_logs_step.test.tsx rename to x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.test.tsx index 8b68f5ee449a8..8d97fc3897367 100644 --- a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/fix_logs_step/fix_logs_step.test.tsx +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.test.tsx @@ -6,13 +6,24 @@ */ import { act } from 'react-dom/test-utils'; +import { + EsDeprecationLogsTestBed, + setupESDeprecationLogsPage, +} from './es_deprecation_logs.helpers'; +import { setupEnvironment, advanceTime } from '../helpers'; +import { DeprecationLoggingStatus } from '../../../common/types'; +import { + DEPRECATION_LOGS_INDEX, + DEPRECATION_LOGS_SOURCE_ID, + DEPRECATION_LOGS_COUNT_POLL_INTERVAL_MS, +} from '../../../common/constants'; // Once the logs team register the kibana locators in their app, we should be able // to remove this mock and follow a similar approach to how discover link is tested. // See: https://github.com/elastic/kibana/issues/104855 const MOCKED_TIME = '2021-09-05T10:49:01.805Z'; -jest.mock('../../../../public/application/lib/logs_checkpoint', () => { - const originalModule = jest.requireActual('../../../../public/application/lib/logs_checkpoint'); +jest.mock('../../../public/application/lib/logs_checkpoint', () => { + const originalModule = jest.requireActual('../../../public/application/lib/logs_checkpoint'); return { __esModule: true, @@ -21,83 +32,30 @@ jest.mock('../../../../public/application/lib/logs_checkpoint', () => { }; }); -import { DeprecationLoggingStatus } from '../../../../common/types'; -import { OverviewTestBed, setupOverviewPage } from '../overview.helpers'; -import { setupEnvironment, advanceTime } from '../../helpers'; -import { - DEPRECATION_LOGS_INDEX, - DEPRECATION_LOGS_SOURCE_ID, - DEPRECATION_LOGS_COUNT_POLL_INTERVAL_MS, -} from '../../../../common/constants'; - const getLoggingResponse = (toggle: boolean): DeprecationLoggingStatus => ({ isDeprecationLogIndexingEnabled: toggle, isDeprecationLoggingEnabled: toggle, }); -describe('Overview - Fix deprecation logs step', () => { - let testBed: OverviewTestBed; +describe('ES deprecation logs', () => { + let testBed: EsDeprecationLogsTestBed; const { server, httpRequestsMockHelpers } = setupEnvironment(); beforeEach(async () => { httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(getLoggingResponse(true)); - testBed = await setupOverviewPage(); - - const { component } = testBed; - component.update(); + testBed = await setupESDeprecationLogsPage(); + testBed.component.update(); }); afterAll(() => { server.restore(); }); - describe('Step status', () => { - test(`It's complete when there are no deprecation logs since last checkpoint`, async () => { - httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse({ count: 0 }); - - await act(async () => { - testBed = await setupOverviewPage(); - }); - - const { exists, component } = testBed; - - component.update(); - - expect(exists(`fixLogsStep-complete`)).toBe(true); - }); - - test(`It's incomplete when there are deprecation logs since last checkpoint`, async () => { - httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse({ count: 5 }); - - await act(async () => { - testBed = await setupOverviewPage(); - }); - - const { exists, component } = testBed; - - component.update(); - - expect(exists(`fixLogsStep-incomplete`)).toBe(true); - }); - - test(`It's incomplete when log collection is disabled `, async () => { - httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse({ count: 0 }); - - await act(async () => { - testBed = await setupOverviewPage(); - }); - - const { actions, exists, component } = testBed; - - component.update(); - - expect(exists(`fixLogsStep-complete`)).toBe(true); - - httpRequestsMockHelpers.setUpdateDeprecationLoggingResponse(getLoggingResponse(false)); - - await actions.clickDeprecationToggle(); + describe('Documentation link', () => { + test('Has a link for migration info api docs in page header', () => { + const { exists } = testBed; - expect(exists(`fixLogsStep-incomplete`)).toBe(true); + expect(exists('documentationLink')).toBe(true); }); }); @@ -123,7 +81,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component } = testBed; @@ -159,7 +117,7 @@ describe('Overview - Fix deprecation logs step', () => { httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(undefined, error); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { component, exists } = testBed; @@ -176,7 +134,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component } = testBed; @@ -196,7 +154,7 @@ describe('Overview - Fix deprecation logs step', () => { test('Has a link to see logs in observability app', async () => { await act(async () => { - testBed = await setupOverviewPage({ + testBed = await setupESDeprecationLogsPage({ http: { basePath: { prepend: (url: string) => url, @@ -228,7 +186,7 @@ describe('Overview - Fix deprecation logs step', () => { test('Has a link to see logs in discover app', async () => { await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component, find } = testBed; @@ -257,7 +215,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { find, exists, component } = testBed; @@ -274,7 +232,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { find, exists, component } = testBed; @@ -295,7 +253,7 @@ describe('Overview - Fix deprecation logs step', () => { httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse(undefined, error); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, actions, component } = testBed; @@ -319,7 +277,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, actions, component } = testBed; @@ -351,7 +309,7 @@ describe('Overview - Fix deprecation logs step', () => { const addDanger = jest.fn(); await act(async () => { - testBed = await setupOverviewPage({ + testBed = await setupESDeprecationLogsPage({ services: { core: { notifications: { @@ -389,17 +347,17 @@ describe('Overview - Fix deprecation logs step', () => { count: 0, }); - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); afterEach(() => { jest.useRealTimers(); }); - test('renders step as incomplete when a success state is followed by an error state', async () => { + test('success state is followed by an error state', async () => { const { exists } = testBed; - expect(exists('fixLogsStep-complete')).toBe(true); + expect(exists('resetLastStoredDate')).toBe(true); // second request will error const error = { @@ -413,7 +371,7 @@ describe('Overview - Fix deprecation logs step', () => { await advanceTime(DEPRECATION_LOGS_COUNT_POLL_INTERVAL_MS); testBed.component.update(); - expect(exists('fixLogsStep-incomplete')).toBe(true); + expect(exists('errorCallout')).toBe(true); }); }); }); @@ -425,7 +383,7 @@ describe('Overview - Fix deprecation logs step', () => { test('It shows copy with compatibility api header advice', async () => { await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component } = testBed; @@ -449,7 +407,7 @@ describe('Overview - Fix deprecation logs step', () => { test(`doesn't show analyze and resolve logs if it doesn't have the right privileges`, async () => { await act(async () => { - testBed = await setupOverviewPage({ + testBed = await setupESDeprecationLogsPage({ privileges: { hasAllPrivileges: false, missingPrivileges: { diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts index d8bd6a9ff5d83..34abaed727bd3 100644 --- a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts @@ -27,36 +27,6 @@ const createActions = (testBed: TestBed) => { * User Actions */ - const clickDeprecationToggle = async () => { - const { find, component } = testBed; - - await act(async () => { - find('deprecationLoggingToggle').simulate('click'); - }); - - component.update(); - }; - - const clickRetryButton = async () => { - const { find, component } = testBed; - - await act(async () => { - find('retryButton').simulate('click'); - }); - - component.update(); - }; - - const clickResetButton = async () => { - const { find, component } = testBed; - - await act(async () => { - find('resetLastStoredDate').simulate('click'); - }); - - component.update(); - }; - const clickViewSystemIndicesState = async () => { const { find, component } = testBed; @@ -78,9 +48,6 @@ const createActions = (testBed: TestBed) => { }; return { - clickDeprecationToggle, - clickRetryButton, - clickResetButton, clickViewSystemIndicesState, clickRetrySystemIndicesButton, }; diff --git a/x-pack/plugins/upgrade_assistant/public/application/app.tsx b/x-pack/plugins/upgrade_assistant/public/application/app.tsx index 9ac90e5d81f48..70350b6d56eca 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/app.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/app.tsx @@ -17,7 +17,13 @@ import { ClusterUpgradeState } from '../../common/types'; import { APP_WRAPPER_CLASS, GlobalFlyout, AuthorizationProvider } from '../shared_imports'; import { AppDependencies } from '../types'; import { AppContextProvider, useAppContext } from './app_context'; -import { EsDeprecations, ComingSoonPrompt, KibanaDeprecations, Overview } from './components'; +import { + EsDeprecations, + EsDeprecationLogs, + ComingSoonPrompt, + KibanaDeprecations, + Overview, +} from './components'; const { GlobalFlyoutProvider } = GlobalFlyout; @@ -112,6 +118,7 @@ const AppHandlingClusterUpgradeState: React.FunctionComponent = () => { <Switch> <Route exact path="/overview" component={Overview} /> <Route exact path="/es_deprecations" component={EsDeprecations} /> + <Route exact path="/es_deprecation_logs" component={EsDeprecationLogs} /> <Route exact path="/kibana_deprecations" component={KibanaDeprecations} /> <Redirect from="/" to="/overview" /> </Switch> diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/es_deprecation_logs.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/es_deprecation_logs.tsx new file mode 100644 index 0000000000000..f778566758294 --- /dev/null +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/es_deprecation_logs.tsx @@ -0,0 +1,74 @@ +/* + * Copyright 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, { FunctionComponent, useEffect } from 'react'; + +import { + EuiPageHeader, + EuiButtonEmpty, + EuiSpacer, + EuiPageBody, + EuiPageContentBody, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { METRIC_TYPE } from '@kbn/analytics'; +import { FormattedMessage } from '@kbn/i18n/react'; + +import { useAppContext } from '../../app_context'; +import { uiMetricService, UIM_ES_DEPRECATION_LOGS_PAGE_LOAD } from '../../lib/ui_metric'; +import { FixDeprecationLogs } from './fix_deprecation_logs'; + +export const EsDeprecationLogs: FunctionComponent = () => { + const { + services: { + breadcrumbs, + core: { docLinks }, + }, + } = useAppContext(); + + useEffect(() => { + uiMetricService.trackUiMetric(METRIC_TYPE.LOADED, UIM_ES_DEPRECATION_LOGS_PAGE_LOAD); + }, []); + + useEffect(() => { + breadcrumbs.setBreadcrumbs('esDeprecationLogs'); + }, [breadcrumbs]); + + return ( + <EuiPageBody restrictWidth={true} data-test-subj="esDeprecationLogs"> + <EuiPageContentBody color="transparent" paddingSize="none"> + <EuiPageHeader + bottomBorder + pageTitle={i18n.translate('xpack.upgradeAssistant.esDeprecationLogs.pageTitle', { + defaultMessage: 'Elasticsearch deprecation logs', + })} + description={i18n.translate('xpack.upgradeAssistant.esDeprecationLogs.pageDescription', { + defaultMessage: + 'Review the deprecation logs to determine if your applications are using any deprecated APIs. Update your applications to prevent errors or changes in behavior after you upgrade.', + })} + rightSideItems={[ + <EuiButtonEmpty + href={docLinks.links.elasticsearch.migrationApiDeprecation} + target="_blank" + iconType="help" + data-test-subj="documentationLink" + > + <FormattedMessage + id="xpack.upgradeAssistant.esDeprecationLogs.documentationLinkText" + defaultMessage="Documentation" + /> + </EuiButtonEmpty>, + ]} + /> + + <EuiSpacer size="l" /> + + <FixDeprecationLogs /> + </EuiPageContentBody> + </EuiPageBody> + ); +}; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/_deprecation_logging_toggle.scss b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/_deprecation_logging_toggle.scss similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/_deprecation_logging_toggle.scss rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/_deprecation_logging_toggle.scss diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/deprecation_logging_toggle.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/deprecation_logging_toggle.tsx similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/deprecation_logging_toggle.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/deprecation_logging_toggle.tsx diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/index.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/index.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/index.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx similarity index 89% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx index 6ce1fec32d66c..c958eb68c86ec 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FunctionComponent, useEffect, useState } from 'react'; +import React, { FunctionComponent, useState } from 'react'; import moment from 'moment-timezone'; import { FormattedDate, FormattedTime, FormattedMessage } from '@kbn/i18n/react'; import { METRIC_TYPE } from '@kbn/analytics'; @@ -54,13 +54,11 @@ const i18nTexts = { interface Props { checkpoint: string; setCheckpoint: (value: string) => void; - setHasNoDeprecationLogs: (hasNoLogs: boolean) => void; } export const DeprecationsCountCheckpoint: FunctionComponent<Props> = ({ checkpoint, setCheckpoint, - setHasNoDeprecationLogs, }) => { const [isDeletingCache, setIsDeletingCache] = useState(false); const { @@ -96,16 +94,6 @@ export const DeprecationsCountCheckpoint: FunctionComponent<Props> = ({ setCheckpoint(now); }; - useEffect(() => { - // Loading shouldn't invalidate the previous state. - if (!isLoading) { - // An error should invalidate the previous state. - setHasNoDeprecationLogs(!error && !hasLogs); - } - // Depending upon setHasNoDeprecationLogs would create an infinite loop. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [error, isLoading, hasLogs]); - if (isInitialRequest && isLoading) { return <EuiLoadingContent lines={6} />; } diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/index.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/index.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/index.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.test.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.test.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.test.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.test.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/fix_logs_step.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/fix_deprecation_logs.tsx similarity index 80% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/fix_logs_step.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/fix_deprecation_logs.tsx index a3e81f6edcd3a..ff1cfc172905f 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/fix_logs_step.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/fix_deprecation_logs.tsx @@ -9,7 +9,6 @@ import React, { FunctionComponent, useState, useEffect } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { EuiText, EuiSpacer, EuiLink, EuiCallOut, EuiCode } from '@elastic/eui'; -import type { EuiStepProps } from '@elastic/eui/src/components/steps/step'; import { useAppContext } from '../../../app_context'; import { ExternalLinks } from './external_links'; @@ -17,14 +16,10 @@ import { DeprecationsCountCheckpoint } from './deprecations_count_checkpoint'; import { useDeprecationLogging } from './use_deprecation_logging'; import { DeprecationLoggingToggle } from './deprecation_logging_toggle'; import { loadLogsCheckpoint, saveLogsCheckpoint } from '../../../lib/logs_checkpoint'; -import type { OverviewStepProps } from '../../types'; import { DEPRECATION_LOGS_INDEX } from '../../../../../common/constants'; import { WithPrivileges, MissingPrivileges } from '../../../../shared_imports'; const i18nTexts = { - identifyStepTitle: i18n.translate('xpack.upgradeAssistant.overview.identifyStepTitle', { - defaultMessage: 'Identify deprecated API use and update your applications', - }), analyzeTitle: i18n.translate('xpack.upgradeAssistant.overview.analyzeTitle', { defaultMessage: 'Analyze deprecation logs', }), @@ -93,16 +88,11 @@ const i18nTexts = { }; interface Props { - setIsComplete: OverviewStepProps['setIsComplete']; hasPrivileges: boolean; privilegesMissing: MissingPrivileges; } -const FixLogsStep: FunctionComponent<Props> = ({ - setIsComplete, - hasPrivileges, - privilegesMissing, -}) => { +const FixDeprecationLogsUI: FunctionComponent<Props> = ({ hasPrivileges, privilegesMissing }) => { const { services: { core: { docLinks }, @@ -126,15 +116,6 @@ const FixLogsStep: FunctionComponent<Props> = ({ saveLogsCheckpoint(checkpoint); }, [checkpoint]); - useEffect(() => { - if (!isDeprecationLogIndexingEnabled) { - setIsComplete(false); - } - - // Depending upon setIsComplete would create an infinite loop. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [isDeprecationLogIndexingEnabled]); - return ( <> <DeprecationLoggingToggle @@ -189,11 +170,7 @@ const FixLogsStep: FunctionComponent<Props> = ({ <h4>{i18nTexts.deprecationsCountCheckpointTitle}</h4> </EuiText> <EuiSpacer size="m" /> - <DeprecationsCountCheckpoint - checkpoint={checkpoint} - setCheckpoint={setCheckpoint} - setHasNoDeprecationLogs={setIsComplete} - /> + <DeprecationsCountCheckpoint checkpoint={checkpoint} setCheckpoint={setCheckpoint} /> <EuiSpacer size="xl" /> <EuiText data-test-subj="apiCompatibilityNoteTitle"> @@ -213,23 +190,15 @@ const FixLogsStep: FunctionComponent<Props> = ({ ); }; -export const getFixLogsStep = ({ isComplete, setIsComplete }: OverviewStepProps): EuiStepProps => { - const status = isComplete ? 'complete' : 'incomplete'; - - return { - status, - title: i18nTexts.identifyStepTitle, - 'data-test-subj': `fixLogsStep-${status}`, - children: ( - <WithPrivileges privileges={`index.${DEPRECATION_LOGS_INDEX}`}> - {({ hasPrivileges, privilegesMissing, isLoading }) => ( - <FixLogsStep - setIsComplete={setIsComplete} - hasPrivileges={!isLoading && hasPrivileges} - privilegesMissing={privilegesMissing} - /> - )} - </WithPrivileges> - ), - }; +export const FixDeprecationLogs = () => { + return ( + <WithPrivileges privileges={`index.${DEPRECATION_LOGS_INDEX}`}> + {({ hasPrivileges, privilegesMissing, isLoading }) => ( + <FixDeprecationLogsUI + hasPrivileges={!isLoading && hasPrivileges} + privilegesMissing={privilegesMissing} + /> + )} + </WithPrivileges> + ); }; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/index.ts new file mode 100644 index 0000000000000..c0af5524e3a14 --- /dev/null +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { FixDeprecationLogs } from './fix_deprecation_logs'; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/use_deprecation_logging.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/use_deprecation_logging.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/use_deprecation_logging.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/use_deprecation_logging.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/index.ts similarity index 81% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/index.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/index.ts index 8a9a9faa6d098..336aa14642f7d 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/index.ts +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/index.ts @@ -5,4 +5,4 @@ * 2.0. */ -export { getFixLogsStep } from './fix_logs_step'; +export { EsDeprecationLogs } from './es_deprecation_logs'; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/index.ts index 8924fa2d355a1..b84af8695ddb1 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/index.ts +++ b/x-pack/plugins/upgrade_assistant/public/application/components/index.ts @@ -7,5 +7,6 @@ export { KibanaDeprecations } from './kibana_deprecations'; export { EsDeprecations } from './es_deprecations'; +export { EsDeprecationLogs } from './es_deprecation_logs'; export { ComingSoonPrompt } from './coming_soon_prompt'; export { Overview } from './overview'; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx index 61d25404b2aee..410eb695240f9 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx @@ -7,11 +7,13 @@ import React, { FunctionComponent, useState, useEffect } from 'react'; -import { EuiText, EuiFlexItem, EuiFlexGroup, EuiSpacer } from '@elastic/eui'; +import { EuiText, EuiFlexItem, EuiFlexGroup, EuiSpacer, EuiLink } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import type { EuiStepProps } from '@elastic/eui/src/components/steps/step'; +import { DEPRECATION_LOGS_INDEX } from '../../../../../common/constants'; +import { WithPrivileges } from '../../../../shared_imports'; import type { OverviewStepProps } from '../../types'; import { EsDeprecationIssuesPanel, KibanaDeprecationIssuesPanel } from './components'; @@ -49,10 +51,48 @@ const FixIssuesStep: FunctionComponent<Props> = ({ setIsComplete }) => { ); }; +interface CustomProps { + navigateToEsDeprecationLogs: () => void; +} + +const AccessDeprecationLogsMessage = ({ navigateToEsDeprecationLogs }: CustomProps) => { + return ( + <WithPrivileges privileges={`index.${DEPRECATION_LOGS_INDEX}`}> + {({ hasPrivileges, isLoading }) => { + if (isLoading || !hasPrivileges) { + // Don't show the message with the link to access deprecation logs + // to users who can't access the UI anyways. + return null; + } + + return ( + <FormattedMessage + id="xpack.upgradeAssistant.overview.accessEsDeprecationLogsLabel" + defaultMessage="If you have application code that calls Elasticsearch APIs, review the {esDeprecationLogsLink} to make sure you are not using deprecated APIs." + values={{ + esDeprecationLogsLink: ( + <EuiLink + onClick={navigateToEsDeprecationLogs} + data-test-subj="viewElasticsearchDeprecationLogs" + > + {i18n.translate('xpack.upgradeAssistant.overview.esDeprecationLogsLink', { + defaultMessage: 'Elasticsearch deprecation logs', + })} + </EuiLink> + ), + }} + /> + ); + }} + </WithPrivileges> + ); +}; + export const getFixIssuesStep = ({ isComplete, setIsComplete, -}: OverviewStepProps): EuiStepProps => { + navigateToEsDeprecationLogs, +}: OverviewStepProps & CustomProps): EuiStepProps => { const status = isComplete ? 'complete' : 'incomplete'; return { @@ -65,7 +105,14 @@ export const getFixIssuesStep = ({ <p> <FormattedMessage id="xpack.upgradeAssistant.overview.fixIssuesStepDescription" - defaultMessage="Update your Elasticsearch and Kibana deployments to be compatible with Elastic 8.x. Critical issues must be resolved before you upgrade. Warning issues can be ignored at your discretion." + defaultMessage="You must resolve any critical Elasticsearch and Kibana configuration issues before upgrading to Elastic 8.x. Ignoring warnings might result in differences in behavior after you upgrade. {accessDeprecationLogsMessage}" + values={{ + accessDeprecationLogsMessage: ( + <AccessDeprecationLogsMessage + navigateToEsDeprecationLogs={navigateToEsDeprecationLogs} + /> + ), + }} /> </p> </EuiText> diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx index 1e7961f8ea782..900c89671315d 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FunctionComponent, useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { EuiSteps, @@ -15,23 +15,23 @@ import { EuiSpacer, EuiLink, EuiPageBody, - EuiPageContent, + EuiPageContentBody, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { METRIC_TYPE } from '@kbn/analytics'; import { FormattedMessage } from '@kbn/i18n/react'; +import { withRouter, RouteComponentProps } from 'react-router-dom'; import { useAppContext } from '../../app_context'; import { uiMetricService, UIM_OVERVIEW_PAGE_LOAD } from '../../lib/ui_metric'; import { getBackupStep } from './backup_step'; import { getFixIssuesStep } from './fix_issues_step'; -import { getFixLogsStep } from './fix_logs_step'; import { getUpgradeStep } from './upgrade_step'; import { getMigrateSystemIndicesStep } from './migrate_system_indices'; -type OverviewStep = 'backup' | 'migrate_system_indices' | 'fix_issues' | 'fix_logs'; +type OverviewStep = 'backup' | 'migrate_system_indices' | 'fix_issues'; -export const Overview: FunctionComponent = () => { +export const Overview = withRouter(({ history }: RouteComponentProps) => { const { services: { breadcrumbs, @@ -52,7 +52,6 @@ export const Overview: FunctionComponent = () => { backup: false, migrate_system_indices: false, fix_issues: false, - fix_logs: false, }); const isStepComplete = (step: OverviewStep) => completedStepsMap[step]; @@ -65,7 +64,7 @@ export const Overview: FunctionComponent = () => { return ( <EuiPageBody restrictWidth={true} data-test-subj="overview"> - <EuiPageContent horizontalPosition="center" color="transparent" paddingSize="none"> + <EuiPageContentBody color="transparent" paddingSize="none"> <EuiPageHeader bottomBorder pageTitle={i18n.translate('xpack.upgradeAssistant.overview.pageTitle', { @@ -114,15 +113,12 @@ export const Overview: FunctionComponent = () => { getFixIssuesStep({ isComplete: isStepComplete('fix_issues'), setIsComplete: setCompletedStep.bind(null, 'fix_issues'), - }), - getFixLogsStep({ - isComplete: isStepComplete('fix_logs'), - setIsComplete: setCompletedStep.bind(null, 'fix_logs'), + navigateToEsDeprecationLogs: () => history.push('/es_deprecation_logs'), }), getUpgradeStep(), ]} /> - </EuiPageContent> + </EuiPageContentBody> </EuiPageBody> ); -}; +}); diff --git a/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts b/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts index 3e30ffd06db15..dd1cc01355696 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts +++ b/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts @@ -18,6 +18,9 @@ const i18nTexts = { esDeprecations: i18n.translate('xpack.upgradeAssistant.breadcrumb.esDeprecationsLabel', { defaultMessage: 'Elasticsearch deprecation issues', }), + esDeprecationLogs: i18n.translate('xpack.upgradeAssistant.breadcrumb.esDeprecationLogsLabel', { + defaultMessage: 'Elasticsearch deprecation logs', + }), kibanaDeprecations: i18n.translate( 'xpack.upgradeAssistant.breadcrumb.kibanaDeprecationsLabel', { @@ -48,6 +51,15 @@ export class BreadcrumbService { text: i18nTexts.breadcrumbs.esDeprecations, }, ], + esDeprecationLogs: [ + { + text: i18nTexts.breadcrumbs.overview, + href: '/', + }, + { + text: i18nTexts.breadcrumbs.esDeprecationLogs, + }, + ], kibanaDeprecations: [ { text: i18nTexts.breadcrumbs.overview, @@ -65,7 +77,9 @@ export class BreadcrumbService { this.setBreadcrumbsHandler = setBreadcrumbsHandler; } - public setBreadcrumbs(type: 'overview' | 'esDeprecations' | 'kibanaDeprecations'): void { + public setBreadcrumbs( + type: 'overview' | 'esDeprecations' | 'esDeprecationLogs' | 'kibanaDeprecations' + ): void { if (!this.setBreadcrumbsHandler) { throw new Error('Breadcrumb service has not been initialized'); } diff --git a/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts b/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts index 394f046a8bafe..1ac34ae53194d 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts +++ b/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts @@ -12,6 +12,7 @@ export const UIM_APP_NAME = 'upgrade_assistant'; export const UIM_ES_DEPRECATIONS_PAGE_LOAD = 'es_deprecations_page_load'; export const UIM_KIBANA_DEPRECATIONS_PAGE_LOAD = 'kibana_deprecations_page_load'; export const UIM_OVERVIEW_PAGE_LOAD = 'overview_page_load'; +export const UIM_ES_DEPRECATION_LOGS_PAGE_LOAD = 'es_deprecation_logs_page_load'; export const UIM_REINDEX_OPEN_FLYOUT_CLICK = 'reindex_open_flyout_click'; export const UIM_REINDEX_CLOSE_FLYOUT_CLICK = 'reindex_close_flyout_click'; export const UIM_REINDEX_START_CLICK = 'reindex_start_click'; diff --git a/x-pack/test/accessibility/apps/upgrade_assistant.ts b/x-pack/test/accessibility/apps/upgrade_assistant.ts index 2c0e81a6fb831..829d0a2c42373 100644 --- a/x-pack/test/accessibility/apps/upgrade_assistant.ts +++ b/x-pack/test/accessibility/apps/upgrade_assistant.ts @@ -5,10 +5,10 @@ * 2.0. */ -import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { IndicesCreateRequest } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { FtrProviderContext } from '../ftr_provider_context'; -const translogSettingsIndexDeprecation: estypes.IndicesCreateRequest = { +const translogSettingsIndexDeprecation: IndicesCreateRequest = { index: 'deprecated_settings', body: { settings: { @@ -19,7 +19,7 @@ const translogSettingsIndexDeprecation: estypes.IndicesCreateRequest = { }, }; -const multiFieldsIndexDeprecation: estypes.IndicesCreateRequest = { +const multiFieldsIndexDeprecation: IndicesCreateRequest = { index: 'nested_multi_fields', body: { mappings: { @@ -55,6 +55,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe.skip('Upgrade Assistant', () => { before(async () => { await PageObjects.upgradeAssistant.navigateToPage(); + try { // Create two indices that will trigger deprecation warnings to test the ES deprecations page await es.indices.create(multiFieldsIndexDeprecation); @@ -76,128 +77,113 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { } }); - describe('Upgrade Assistant - Overview', () => { - before(async () => { + describe('Overview page', () => { + beforeEach(async () => { await PageObjects.upgradeAssistant.navigateToPage(); - - try { - // Create two indices that will trigger deprecation warnings to test the ES deprecations page - await es.indices.create(multiFieldsIndexDeprecation); - await es.indices.create(translogSettingsIndexDeprecation); - } catch (e) { - log.debug('[Setup error] Error creating indices'); - throw e; - } + await retry.waitFor('Upgrade Assistant overview page to be visible', async () => { + return testSubjects.exists('overview'); + }); }); - after(async () => { - try { - await es.indices.delete({ - index: [multiFieldsIndexDeprecation.index, translogSettingsIndexDeprecation.index], - }); - } catch (e) { - log.debug('[Cleanup error] Error deleting indices'); - throw e; - } + it('has no accessibility issues', async () => { + await a11y.testAppSnapshot(); }); + }); - describe('Overview page', () => { - beforeEach(async () => { - await PageObjects.upgradeAssistant.navigateToPage(); - await retry.waitFor('Upgrade Assistant overview page to be visible', async () => { - return testSubjects.exists('overview'); - }); - }); - - it('with logs collection disabled', async () => { - await a11y.testAppSnapshot(); - }); + describe('ES deprecations logs page', () => { + beforeEach(async () => { + await PageObjects.upgradeAssistant.navigateToEsDeprecationLogs(); + }); - it('with logs collection enabled', async () => { - await PageObjects.upgradeAssistant.clickDeprecationLoggingToggle(); + it('with logs collection disabled', async () => { + await a11y.testAppSnapshot(); + }); - await retry.waitFor('UA external links title to be present', async () => { - return testSubjects.isDisplayed('externalLinksTitle'); - }); + it('with logs collection enabled', async () => { + await PageObjects.upgradeAssistant.clickDeprecationLoggingToggle(); - await a11y.testAppSnapshot(); + await retry.waitFor('UA external links title to be present', async () => { + return testSubjects.isDisplayed('externalLinksTitle'); }); - }); - describe('Elasticsearch deprecations page', () => { - beforeEach(async () => { - await PageObjects.common.navigateToUrl( - 'management', - 'stack/upgrade_assistant/es_deprecations', - { - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - shouldUseHashForSubUrl: false, - } - ); - - await retry.waitFor('Elasticsearch deprecations table to be visible', async () => { - return testSubjects.exists('esDeprecationsTable'); - }); - }); + await a11y.testAppSnapshot(); + }); + }); - it('Deprecations table', async () => { - await a11y.testAppSnapshot(); + describe('Elasticsearch deprecations page', () => { + beforeEach(async () => { + await PageObjects.common.navigateToUrl( + 'management', + 'stack/upgrade_assistant/es_deprecations', + { + ensureCurrentUrl: false, + shouldLoginIfPrompted: false, + shouldUseHashForSubUrl: false, + } + ); + + await retry.waitFor('Elasticsearch deprecations table to be visible', async () => { + return testSubjects.exists('esDeprecationsTable'); }); + }); - it('Index settings deprecation flyout', async () => { - await PageObjects.upgradeAssistant.clickEsDeprecation( - 'indexSettings' // An index setting deprecation was added in the before() hook so should be guaranteed - ); - await retry.waitFor('ES index settings deprecation flyout to be visible', async () => { - return testSubjects.exists('indexSettingsDetails'); - }); - await a11y.testAppSnapshot(); - }); + it('Deprecations table', async () => { + await a11y.testAppSnapshot(); + }); - it('Default deprecation flyout', async () => { - await PageObjects.upgradeAssistant.clickEsDeprecation( - 'default' // A default deprecation was added in the before() hook so should be guaranteed - ); - await retry.waitFor('ES default deprecation flyout to be visible', async () => { - return testSubjects.exists('defaultDeprecationDetails'); - }); - await a11y.testAppSnapshot(); + // Failing: See https://github.com/elastic/kibana/issues/115859 + it.skip('Index settings deprecation flyout', async () => { + await PageObjects.upgradeAssistant.clickEsDeprecation( + 'indexSettings' // An index setting deprecation was added in the before() hook so should be guaranteed + ); + await retry.waitFor('ES index settings deprecation flyout to be visible', async () => { + return testSubjects.exists('indexSettingsDetails'); }); + await a11y.testAppSnapshot(); }); - describe('Kibana deprecations page', () => { - beforeEach(async () => { - await PageObjects.common.navigateToUrl( - 'management', - 'stack/upgrade_assistant/kibana_deprecations', - { - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - shouldUseHashForSubUrl: false, - } - ); - - await retry.waitFor('Kibana deprecations to be visible', async () => { - return testSubjects.exists('kibanaDeprecations'); - }); + it('Default deprecation flyout', async () => { + await PageObjects.upgradeAssistant.clickEsDeprecation( + 'default' // A default deprecation was added in the before() hook so should be guaranteed + ); + await retry.waitFor('ES default deprecation flyout to be visible', async () => { + return testSubjects.exists('defaultDeprecationDetails'); }); + await a11y.testAppSnapshot(); + }); + }); - it('Deprecations table', async () => { - await a11y.testAppSnapshot(); + describe('Kibana deprecations page', () => { + beforeEach(async () => { + await PageObjects.common.navigateToUrl( + 'management', + 'stack/upgrade_assistant/kibana_deprecations', + { + ensureCurrentUrl: false, + shouldLoginIfPrompted: false, + shouldUseHashForSubUrl: false, + } + ); + + await retry.waitFor('Kibana deprecations to be visible', async () => { + return testSubjects.exists('kibanaDeprecations'); }); + }); - it('Deprecation details flyout', async () => { - await PageObjects.upgradeAssistant.clickKibanaDeprecation( - 'xpack.securitySolution has a deprecated setting' // This deprecation was added to the test runner config so should be guaranteed - ); + it('Deprecations table', async () => { + await a11y.testAppSnapshot(); + }); - await retry.waitFor('Kibana deprecation details flyout to be visible', async () => { - return testSubjects.exists('kibanaDeprecationDetails'); - }); + it('Deprecation details flyout', async () => { + await PageObjects.upgradeAssistant.clickKibanaDeprecation( + 'xpack.securitySolution has a deprecated setting' // This deprecation was added to the test runner config so should be guaranteed + ); - await a11y.testAppSnapshot(); + await retry.waitFor('Kibana deprecation details flyout to be visible', async () => { + return testSubjects.exists('kibanaDeprecationDetails'); }); + + await a11y.testAppSnapshot(); }); }); }); diff --git a/x-pack/test/functional/apps/upgrade_assistant/es_deprecation_logs_page.ts b/x-pack/test/functional/apps/upgrade_assistant/es_deprecation_logs_page.ts new file mode 100644 index 0000000000000..c6b9b2921cfad --- /dev/null +++ b/x-pack/test/functional/apps/upgrade_assistant/es_deprecation_logs_page.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 { FtrProviderContext } from '../../ftr_provider_context'; + +export default function upgradeAssistantESDeprecationLogsPageFunctionalTests({ + getService, + getPageObjects, +}: FtrProviderContext) { + const PageObjects = getPageObjects(['upgradeAssistant', 'common']); + const security = getService('security'); + const testSubjects = getService('testSubjects'); + const es = getService('es'); + + describe.skip('ES deprecation logs page', function () { + this.tags('skipFirefox'); + + before(async () => { + await security.testUser.setRoles(['superuser']); + // Access to system indices will be deprecated and should generate a deprecation log + await es.indices.get({ index: '.kibana' }); + }); + + after(async () => { + await security.testUser.restoreDefaults(); + }); + + beforeEach(async () => { + await PageObjects.upgradeAssistant.navigateToEsDeprecationLogs(); + }); + + it('Shows warnings callout if there are deprecations', async () => { + testSubjects.exists('hasWarningsCallout'); + }); + + it('Shows no warnings callout if there are no deprecations', async () => { + await PageObjects.upgradeAssistant.clickResetLastCheckpointButton(); + testSubjects.exists('noWarningsCallout'); + }); + }); +} diff --git a/x-pack/test/functional/apps/upgrade_assistant/index.ts b/x-pack/test/functional/apps/upgrade_assistant/index.ts index d99d1cd033327..d1ab46463e930 100644 --- a/x-pack/test/functional/apps/upgrade_assistant/index.ts +++ b/x-pack/test/functional/apps/upgrade_assistant/index.ts @@ -14,5 +14,6 @@ export default function upgradeCheckup({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./feature_controls')); loadTestFile(require.resolve('./deprecation_pages')); loadTestFile(require.resolve('./overview_page')); + loadTestFile(require.resolve('./es_deprecation_logs_page')); }); } diff --git a/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts b/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts index 0b8d15695689a..a2ec7493cc3f0 100644 --- a/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts +++ b/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts @@ -15,7 +15,6 @@ export default function upgradeAssistantOverviewPageFunctionalTests({ const retry = getService('retry'); const security = getService('security'); const testSubjects = getService('testSubjects'); - const es = getService('es'); describe.skip('Overview Page', function () { this.tags('skipFirefox'); @@ -41,37 +40,7 @@ export default function upgradeAssistantOverviewPageFunctionalTests({ it('Should render all steps', async () => { testSubjects.exists('backupStep-incomplete'); testSubjects.exists('fixIssuesStep-incomplete'); - testSubjects.exists('fixLogsStep-incomplete'); testSubjects.exists('upgradeStep'); }); - - describe('fixLogsStep', () => { - before(async () => { - await PageObjects.upgradeAssistant.navigateToPage(); - // Access to system indices will be deprecated and should generate a deprecation log - await es.indices.get({ index: '.kibana' }); - // Only click deprecation logging toggle if its not already enabled - if (!(await testSubjects.isDisplayed('externalLinksTitle'))) { - await PageObjects.upgradeAssistant.clickDeprecationLoggingToggle(); - } - - await retry.waitFor('UA external links title to be present', async () => { - return testSubjects.isDisplayed('externalLinksTitle'); - }); - }); - - beforeEach(async () => { - await PageObjects.upgradeAssistant.navigateToPage(); - }); - - it('Shows warnings callout if there are deprecations', async () => { - testSubjects.exists('hasWarningsCallout'); - }); - - it('Shows no warnings callout if there are no deprecations', async () => { - await PageObjects.upgradeAssistant.clickResetLastCheckpointButton(); - testSubjects.exists('noWarningsCallout'); - }); - }); }); } diff --git a/x-pack/test/functional/page_objects/upgrade_assistant_page.ts b/x-pack/test/functional/page_objects/upgrade_assistant_page.ts index 54d7f3d452123..f795a5fd441cd 100644 --- a/x-pack/test/functional/page_objects/upgrade_assistant_page.ts +++ b/x-pack/test/functional/page_objects/upgrade_assistant_page.ts @@ -29,6 +29,21 @@ export class UpgradeAssistantPageObject extends FtrService { }); } + async navigateToEsDeprecationLogs() { + return await this.retry.try(async () => { + await this.common.navigateToApp('settings'); + await this.testSubjects.click('upgrade_assistant'); + await this.testSubjects.click('viewElasticsearchDeprecationLogs'); + await this.retry.waitFor( + 'url to contain /upgrade_assistant/es_deprecation_logs', + async () => { + const url = await this.browser.getCurrentUrl(); + return url.includes('/es_deprecation_logs'); + } + ); + }); + } + async clickEsDeprecationsPanel() { return await this.retry.try(async () => { await this.testSubjects.click('esStatsPanel'); From d0b58bb2b0807e08276776d0baf5af21a06683a4 Mon Sep 17 00:00:00 2001 From: Mikhail Shustov <mikhail.shustov@elastic.co> Date: Sun, 21 Nov 2021 12:27:53 +0100 Subject: [PATCH 096/114] update APM agents with renovate bot (#119166) * declare deps on APM agents via ranges * update APM agents to the latest versions --- package.json | 2 +- renovate.json | 8 ++++++++ yarn.lock | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 84bd703dba4ef..d56fe68b2e074 100644 --- a/package.json +++ b/package.json @@ -220,7 +220,7 @@ "deep-freeze-strict": "^1.1.1", "deepmerge": "^4.2.2", "del": "^5.1.0", - "elastic-apm-node": "3.24.0", + "elastic-apm-node": "^3.24.0", "execa": "^4.0.2", "exit-hook": "^2.2.0", "expiry-js": "0.1.7", diff --git a/renovate.json b/renovate.json index 82005e82299b1..362fd9381b617 100644 --- a/renovate.json +++ b/renovate.json @@ -54,6 +54,14 @@ "labels": ["release_note:skip", "Team:Operations", "Team:Core", "backport:skip"], "enabled": true }, + { + "groupName": "APM", + "matchPackageNames": ["elastic-apm-node", "@elastic/apm-rum", "@elastic/apm-rum-react"], + "reviewers": ["team:kibana-core"], + "matchBaseBranches": ["main"], + "labels": ["release_note:skip", "Team:Core", "backport:skip"], + "enabled": true + }, { "groupName": "babel", "matchPackageNames": ["@types/babel__core"], diff --git a/yarn.lock b/yarn.lock index 9ae9d163a0463..d1e1de94393a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12596,7 +12596,7 @@ elastic-apm-http-client@^10.3.0: readable-stream "^3.4.0" stream-chopper "^3.0.1" -elastic-apm-node@3.24.0: +elastic-apm-node@^3.24.0: version "3.24.0" resolved "https://registry.yarnpkg.com/elastic-apm-node/-/elastic-apm-node-3.24.0.tgz#d7acb3352f928a23c28ebabab2bd30098562814e" integrity sha512-Fmj/W2chWQa2zb1FfMYK2ypLB4TcnKNX+1klaJFbytRYDLgeSfo0EC7egvI3a+bLPZSRL5053PXOp7slVTPO6Q== From c1a5ceeb64b3b3f3ffe45f76c867e85f0fdc7fc9 Mon Sep 17 00:00:00 2001 From: Kyle Pollich <kyle.pollich@elastic.co> Date: Sun, 21 Nov 2021 13:18:07 -0500 Subject: [PATCH 097/114] [Fleet] Update logic for "Keep policies up to date" defaults in 8.0 (#119126) * Auto-upgrade policies for all managed packages by default * Fixing unused import in test * Add migration to installation list * Update naming + disable input for APM + Synthetics * Remove unused import + add message for disabled policy update settingg * Fix failing tests Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- x-pack/plugins/fleet/common/constants/epm.ts | 9 ++++ .../common/constants/preconfiguration.ts | 15 +++++++ .../plugins/fleet/common/types/models/epm.ts | 2 +- .../keep_policies_up_to_date_switch.tsx | 18 ++++++-- .../epm/screens/detail/settings/settings.tsx | 14 +++--- .../plugins/fleet/public/constants/index.ts | 2 + .../fleet/server/saved_objects/index.ts | 3 +- .../saved_objects/migrations/to_v8_0_0.ts | 21 ++++++++- .../server/services/epm/packages/install.ts | 13 +++--- .../services/managed_package_policies.test.ts | 45 ------------------- .../epm/__snapshots__/install_by_upload.snap | 1 - .../apis/epm/install_remove_assets.ts | 1 - .../apis/epm/update_assets.ts | 1 - 13 files changed, 77 insertions(+), 68 deletions(-) diff --git a/x-pack/plugins/fleet/common/constants/epm.ts b/x-pack/plugins/fleet/common/constants/epm.ts index 734d578687bcd..5137e422e0975 100644 --- a/x-pack/plugins/fleet/common/constants/epm.ts +++ b/x-pack/plugins/fleet/common/constants/epm.ts @@ -32,6 +32,13 @@ export const STANDALONE_RUN_INSTRUCTIONS = './elastic-agent install'; removable, but it doesn't install by default. Following the table, it needs to be in `unremovablePackages` and in `autoUpdatePackages`, but not in `defaultPackages`. + + +We also define "auto upgrade policies" packages below. These are packages that are considered "stack-aligned" +and require policies to be auto-upgraded in order to properly function. Commonly, packages that ship custom policy +editor UI's in the Kibana codebase will be included in this set of packages to avoid backwards-compatibility concerns +in their custom policy editor implementations. + */ export const unremovablePackages = [ @@ -49,6 +56,8 @@ export const autoUpdatePackages = [ FLEET_SYNTHETICS_PACKAGE, ]; +export const autoUpgradePoliciesPackages = [FLEET_APM_PACKAGE, FLEET_SYNTHETICS_PACKAGE]; + export const agentAssetTypes = { Input: 'input', } as const; diff --git a/x-pack/plugins/fleet/common/constants/preconfiguration.ts b/x-pack/plugins/fleet/common/constants/preconfiguration.ts index 2ec67393df76b..3e7377477c93e 100644 --- a/x-pack/plugins/fleet/common/constants/preconfiguration.ts +++ b/x-pack/plugins/fleet/common/constants/preconfiguration.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { uniqBy } from 'lodash'; + import type { PreconfiguredAgentPolicy } from '../types'; import { @@ -13,6 +15,7 @@ import { FLEET_SERVER_PACKAGE, autoUpdatePackages, monitoringTypes, + autoUpgradePoliciesPackages, } from './epm'; export const PRECONFIGURATION_DELETION_RECORD_SAVED_OBJECT_TYPE = @@ -72,6 +75,18 @@ export const AUTO_UPDATE_PACKAGES = autoUpdatePackages.map((name) => ({ version: PRECONFIGURATION_LATEST_KEYWORD, })); +// These packages default to `keep_policies_up_to_date: true` and don't allow users to opt out +export const AUTO_UPGRADE_POLICIES_PACKAGES = autoUpgradePoliciesPackages.map((name) => ({ + name, + version: PRECONFIGURATION_LATEST_KEYWORD, +})); + +// Controls whether the `Keep Policies up to date` setting is exposed to the user +export const KEEP_POLICIES_UP_TO_DATE_PACKAGES = uniqBy( + [...AUTO_UPGRADE_POLICIES_PACKAGES, ...DEFAULT_PACKAGES, ...AUTO_UPDATE_PACKAGES], + ({ name }) => name +); + export interface PreconfigurationError { package?: { name: string; version: string }; agentPolicy?: { name: string }; diff --git a/x-pack/plugins/fleet/common/types/models/epm.ts b/x-pack/plugins/fleet/common/types/models/epm.ts index 078281fec9806..f7b446cc53c7d 100644 --- a/x-pack/plugins/fleet/common/types/models/epm.ts +++ b/x-pack/plugins/fleet/common/types/models/epm.ts @@ -402,7 +402,7 @@ export interface Installation extends SavedObjectAttributes { install_version: string; install_started_at: string; install_source: InstallSource; - keep_policies_up_to_date: boolean; + keep_policies_up_to_date?: boolean; } export interface PackageUsageStats { diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx index 751282cc42288..364b24ab48912 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx @@ -12,11 +12,13 @@ import { EuiSwitch, EuiSpacer, EuiText, EuiFlexGroup, EuiFlexItem, EuiIcon } fro interface Props { checked: boolean; + disabled?: boolean; onChange: () => void; } export const KeepPoliciesUpToDateSwitch: React.FunctionComponent<Props> = ({ checked, + disabled = false, onChange, }) => ( <> @@ -27,6 +29,7 @@ export const KeepPoliciesUpToDateSwitch: React.FunctionComponent<Props> = ({ )} checked={checked} onChange={onChange} + disabled={disabled} /> <EuiSpacer size="s" /> <EuiText color="subdued" size="xs"> @@ -35,10 +38,17 @@ export const KeepPoliciesUpToDateSwitch: React.FunctionComponent<Props> = ({ <EuiIcon type="iInCircle" /> </EuiFlexItem> <EuiFlexItem grow={false}> - <FormattedMessage - id="xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDescription" - defaultMessage="When enabled, Fleet will attempt to upgrade and deploy integration policies automatically" - /> + {disabled ? ( + <FormattedMessage + id="xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDisabledDescription" + defaultMessage="This integration requires Fleet to automatically upgrade its integration policies" + /> + ) : ( + <FormattedMessage + id="xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDescription" + defaultMessage="When enabled, Fleet will attempt to upgrade and deploy integration policies automatically" + /> + )} </EuiFlexItem> </EuiFlexGroup> </EuiText> diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx index 5fa274c0feb98..31a01ffd7bdc8 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx @@ -9,7 +9,6 @@ import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n/react'; import semverLt from 'semver/functions/lt'; -import { uniq } from 'lodash'; import { EuiCallOut, @@ -35,8 +34,8 @@ import { } from '../../../../../hooks'; import { PACKAGE_POLICY_SAVED_OBJECT_TYPE, - AUTO_UPDATE_PACKAGES, - DEFAULT_PACKAGES, + KEEP_POLICIES_UP_TO_DATE_PACKAGES, + AUTO_UPGRADE_POLICIES_PACKAGES, } from '../../../../../constants'; import { KeepPoliciesUpToDateSwitch } from '../components'; @@ -107,11 +106,11 @@ export const SettingsPage: React.FC<Props> = memo(({ packageInfo }: Props) => { const { notifications } = useStartServices(); const shouldShowKeepPoliciesUpToDateSwitch = useMemo(() => { - const packages = [...DEFAULT_PACKAGES, ...AUTO_UPDATE_PACKAGES]; - - const packageNames = uniq(packages.map((pkg) => pkg.name)); + return KEEP_POLICIES_UP_TO_DATE_PACKAGES.some((pkg) => pkg.name === name); + }, [name]); - return packageNames.includes(name); + const isShowKeepPoliciesUpToDateSwitchDisabled = useMemo(() => { + return AUTO_UPGRADE_POLICIES_PACKAGES.some((pkg) => pkg.name === name); }, [name]); const [keepPoliciesUpToDateSwitchValue, setKeepPoliciesUpToDateSwitchValue] = useState<boolean>( @@ -274,6 +273,7 @@ export const SettingsPage: React.FC<Props> = memo(({ packageInfo }: Props) => { <KeepPoliciesUpToDateSwitch checked={keepPoliciesUpToDateSwitchValue} onChange={handleKeepPoliciesUpToDateSwitchChange} + disabled={isShowKeepPoliciesUpToDateSwitchDisabled} /> <EuiSpacer size="l" /> </> diff --git a/x-pack/plugins/fleet/public/constants/index.ts b/x-pack/plugins/fleet/public/constants/index.ts index 38b7875c93b3b..139f9d3d1f1c4 100644 --- a/x-pack/plugins/fleet/public/constants/index.ts +++ b/x-pack/plugins/fleet/public/constants/index.ts @@ -21,6 +21,8 @@ export { // Preconfiguration AUTO_UPDATE_PACKAGES, DEFAULT_PACKAGES, + KEEP_POLICIES_UP_TO_DATE_PACKAGES, + AUTO_UPGRADE_POLICIES_PACKAGES, } from '../../common/constants'; export * from './page_paths'; diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts index 3b459c938b5f0..26adf7b9fcbc7 100644 --- a/x-pack/plugins/fleet/server/saved_objects/index.ts +++ b/x-pack/plugins/fleet/server/saved_objects/index.ts @@ -35,7 +35,7 @@ import { import { migratePackagePolicyToV7140, migrateInstallationToV7140 } from './migrations/to_v7_14_0'; import { migratePackagePolicyToV7150 } from './migrations/to_v7_15_0'; import { migrateInstallationToV7160, migratePackagePolicyToV7160 } from './migrations/to_v7_16_0'; -import { migrateOutputToV800 } from './migrations/to_v8_0_0'; +import { migrateInstallationToV800, migrateOutputToV800 } from './migrations/to_v8_0_0'; /* * Saved object types and mappings @@ -255,6 +255,7 @@ const getSavedObjectTypes = ( '7.14.0': migrateInstallationToV7140, '7.14.1': migrateInstallationToV7140, '7.16.0': migrateInstallationToV7160, + '8.0.0': migrateInstallationToV800, }, }, [ASSETS_SAVED_OBJECT_TYPE]: { diff --git a/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts b/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts index 77797b3d27ba5..61db35fd9faf5 100644 --- a/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts +++ b/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts @@ -7,8 +7,8 @@ import type { SavedObjectMigrationFn } from 'kibana/server'; -import type { Output } from '../../../common'; -import {} from '../../../common'; +import type { Installation, Output } from '../../../common'; +import { AUTO_UPGRADE_POLICIES_PACKAGES } from '../../../common'; export const migrateOutputToV800: SavedObjectMigrationFn<Output, Output> = ( outputDoc, @@ -20,3 +20,20 @@ export const migrateOutputToV800: SavedObjectMigrationFn<Output, Output> = ( return outputDoc; }; + +export const migrateInstallationToV800: SavedObjectMigrationFn<Installation, Installation> = ( + installationDoc, + migrationContext +) => { + const updatedInstallationDoc = installationDoc; + + const shouldKeepPoliciesUpToDate = AUTO_UPGRADE_POLICIES_PACKAGES.some( + (pkg) => pkg.name === updatedInstallationDoc.attributes.name + ); + + if (shouldKeepPoliciesUpToDate) { + updatedInstallationDoc.attributes.keep_policies_up_to_date = true; + } + + return updatedInstallationDoc; +}; diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install.ts b/x-pack/plugins/fleet/server/services/epm/packages/install.ts index 5b86c944feb39..db26dc3a20a80 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install.ts @@ -18,7 +18,7 @@ import type { InstallablePackage, InstallSource, } from '../../../../common'; -import { DEFAULT_PACKAGES } from '../../../../common'; +import { AUTO_UPGRADE_POLICIES_PACKAGES } from '../../../../common'; import { IngestManagerError, PackageOperationNotSupportedError, @@ -534,11 +534,14 @@ export async function createInstallation(options: { const removable = !isUnremovablePackage(pkgName); const toSaveESIndexPatterns = generateESIndexPatterns(packageInfo.data_streams); - // For default packages, default the `keep_policies_up_to_date` setting to true. For all other - // package, default it to false. - const defaultKeepPoliciesUpToDate = DEFAULT_PACKAGES.some( + // For "stack-aligned" packages, default the `keep_policies_up_to_date` setting to true. For all other + // packages, default it to undefined. Use undefined rather than false to allow us to differentiate + // between "unset" and "user explicitly disabled". + const defaultKeepPoliciesUpToDate = AUTO_UPGRADE_POLICIES_PACKAGES.some( ({ name }) => name === packageInfo.name - ); + ) + ? true + : undefined; const created = await savedObjectsClient.create<Installation>( PACKAGES_SAVED_OBJECT_TYPE, diff --git a/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts b/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts index b27248a3cb933..7ccfeb4fe7641 100644 --- a/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts +++ b/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts @@ -8,7 +8,6 @@ import { elasticsearchServiceMock, savedObjectsClientMock } from 'src/core/server/mocks'; import type { Installation, PackageInfo } from '../../common'; -import { AUTO_UPDATE_PACKAGES } from '../../common'; import { shouldUpgradePolicies, upgradeManagedPackagePolicies } from './managed_package_policies'; import { packagePolicyService } from './package_policy'; @@ -227,50 +226,6 @@ describe('upgradeManagedPackagePolicies', () => { }); describe('shouldUpgradePolicies', () => { - describe('package is marked as AUTO_UPDATE', () => { - describe('keep_policies_up_to_date is true', () => { - it('returns false', () => { - const packageInfo = { - version: '1.0.0', - keepPoliciesUpToDate: true, - name: AUTO_UPDATE_PACKAGES[0].name, - }; - - const installedPackage = { - version: '1.0.0', - }; - - const result = shouldUpgradePolicies( - packageInfo as PackageInfo, - installedPackage as Installation - ); - - expect(result).toBe(false); - }); - }); - - describe('keep_policies_up_to_date is false', () => { - it('returns false', () => { - const packageInfo = { - version: '1.0.0', - keepPoliciesUpToDate: false, - name: AUTO_UPDATE_PACKAGES[0].name, - }; - - const installedPackage = { - version: '1.0.0', - }; - - const result = shouldUpgradePolicies( - packageInfo as PackageInfo, - installedPackage as Installation - ); - - expect(result).toBe(false); - }); - }); - }); - describe('package policy is up-to-date', () => { describe('keep_policies_up_to_date is true', () => { it('returns false', () => { diff --git a/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap b/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap index 04d189b5d59b2..5eb4ae1808d7b 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap +++ b/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap @@ -446,7 +446,6 @@ Object { "type": "search", }, ], - "keep_policies_up_to_date": false, "name": "apache", "package_assets": Array [ Object { diff --git a/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts b/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts index f3f036107fc22..0915af7e25f0c 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts @@ -673,7 +673,6 @@ const expectAssetsInstalled = ({ install_status: 'installed', install_started_at: res.attributes.install_started_at, install_source: 'registry', - keep_policies_up_to_date: false, }); }); }; diff --git a/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts b/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts index d55f6aad53aa2..357345777e52e 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts @@ -462,7 +462,6 @@ export default function (providerContext: FtrProviderContext) { install_status: 'installed', install_started_at: res.attributes.install_started_at, install_source: 'registry', - keep_policies_up_to_date: false, }); }); }); From 25fa46d17bd204632c52f9454cfcfd1cd0928d27 Mon Sep 17 00:00:00 2001 From: Julia Bardi <90178898+juliaElastic@users.noreply.github.com> Date: Mon, 22 Nov 2021 11:06:59 +0100 Subject: [PATCH 098/114] hiding log callout for managed (#119186) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../agent_details_page/components/agent_logs/agent_logs.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx index 783a960aff120..045c9c28c378c 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx @@ -277,9 +277,9 @@ export const AgentLogsUI: React.FunctionComponent<AgentLogsProps> = memo( return ( <WrapperFlexGroup direction="column" gutterSize="m"> - {agentPolicy && !agentPolicy.monitoring_enabled?.includes('logs') && ( - <AgentPolicyLogsNotEnabledCallout agentPolicy={agentPolicy} /> - )} + {agentPolicy && + !agentPolicy.monitoring_enabled?.includes('logs') && + !agentPolicy.is_managed && <AgentPolicyLogsNotEnabledCallout agentPolicy={agentPolicy} />} <EuiFlexItem grow={false}> <EuiFlexGroup gutterSize="m"> <EuiFlexItem> From 17fcc359a4c3aa1a03e04c93e10add21f768fbe6 Mon Sep 17 00:00:00 2001 From: Dima Arnautov <dmitrii.arnautov@elastic.co> Date: Mon, 22 Nov 2021 11:19:43 +0100 Subject: [PATCH 099/114] [ML] Model management fixes and usability enhancements (#118240) * [ML] update expanded rows on refresh * [ML] truncateText for start and state columns * remove deployment stats endpoints, replace with the trained models stats * update layout for pipelines * add edit icon * rename deployment actions * add panels for pipelines tab * change deployment stats layout * remove redundant fields from node details * render roles with badges * format nodes attrs * hide empty stats tab * enable trained models tests * add canViewMlNodes capability, hide Nodes tab for the viewer * remove unused translation * support force stop * import default ml capabilities in the security_solutions plugin * update translation string id * Revert "support force stop" This reverts commit 1b1a3b22 * fix translation string ids * remove mock id * rename test subject * remove getTrainedModelDeploymentStats leftovers * update tags for nodes_overview endpoint * update api integration tests * fix paddings * add info icons for ingest stats * update api integration tests for capabilities with spaces * expand first 3 pipelines by default * fix typo in the filename * add help_icon component * fix test assertion --- x-pack/plugins/ml/common/index.ts | 1 + .../plugins/ml/common/types/capabilities.ts | 2 + .../plugins/ml/common/types/trained_models.ts | 14 +- .../components/help_icon/help_icon.tsx | 23 + .../components/help_icon/index.tsx | 8 + .../services/ml_api_service/trained_models.ts | 16 - .../models_management/expanded_row.tsx | 307 ++------ .../models_management/models_list.tsx | 56 +- .../pipelines/expanded_row.tsx | 177 +++++ .../models_management/pipelines/index.ts | 8 + .../models_management/pipelines/pipelines.tsx | 119 ++++ .../trained_models/navigation_bar.tsx | 25 +- .../nodes_overview/allocated_models.tsx | 43 +- .../nodes_overview/expanded_row.tsx | 13 +- .../nodes_overview/nodes_list.tsx | 16 +- .../application/trained_models/page.tsx | 5 - .../capabilities/check_capabilities.test.ts | 4 +- .../ml/server/lib/ml_client/ml_client.ts | 5 - .../plugins/ml/server/lib/ml_client/types.ts | 1 - .../__mocks__/mock_deployment_response.json | 674 +++++++++--------- .../model_provider.test.ts | 21 +- .../data_frame_analytics/models_provider.ts | 25 +- x-pack/plugins/ml/server/routes/apidoc.json | 1 - .../ml/server/routes/trained_models.ts | 38 +- .../machine_learning/empty_ml_capabilities.ts | 35 +- .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - .../apis/ml/system/capabilities.ts | 4 +- .../apis/ml/system/space_capabilities.ts | 8 +- .../apps/ml/model_management/model_list.ts | 3 +- 30 files changed, 882 insertions(+), 774 deletions(-) create mode 100644 x-pack/plugins/ml/public/application/components/help_icon/help_icon.tsx create mode 100644 x-pack/plugins/ml/public/application/components/help_icon/index.tsx create mode 100644 x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx create mode 100644 x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts create mode 100644 x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx diff --git a/x-pack/plugins/ml/common/index.ts b/x-pack/plugins/ml/common/index.ts index ad9927a533a60..ea8ad43d6bb3b 100644 --- a/x-pack/plugins/ml/common/index.ts +++ b/x-pack/plugins/ml/common/index.ts @@ -14,3 +14,4 @@ export { composeValidators, patternValidator } from './util/validators'; export { isRuntimeMappings, isRuntimeField } from './util/runtime_field_utils'; export { extractErrorMessage } from './util/errors'; export type { RuntimeMappings } from './types/fields'; +export { getDefaultCapabilities as getDefaultMlCapabilities } from './types/capabilities'; diff --git a/x-pack/plugins/ml/common/types/capabilities.ts b/x-pack/plugins/ml/common/types/capabilities.ts index ed0f3595cb94c..36377aaa1ed3f 100644 --- a/x-pack/plugins/ml/common/types/capabilities.ts +++ b/x-pack/plugins/ml/common/types/capabilities.ts @@ -63,6 +63,8 @@ export const adminMlCapabilities = { // Alerts canCreateMlAlerts: false, canUseMlAlerts: false, + // Model management + canViewMlNodes: false, }; export type UserMlCapabilities = typeof userMlCapabilities; diff --git a/x-pack/plugins/ml/common/types/trained_models.ts b/x-pack/plugins/ml/common/types/trained_models.ts index 89b8a50846cb3..0670849f07f26 100644 --- a/x-pack/plugins/ml/common/types/trained_models.ts +++ b/x-pack/plugins/ml/common/types/trained_models.ts @@ -151,6 +151,8 @@ export interface TrainedModelDeploymentStatsResponse { routing_state: { routing_state: string }; average_inference_time_ms: number; last_access: number; + number_of_pending_requests: number; + start_time: number; }>; } @@ -161,11 +163,18 @@ export interface AllocatedModel { state: string; allocation_count: number; }; - model_id: string; + /** + * Not required for rendering in the Model stats + */ + model_id?: string; state: string; model_threads: number; model_size_bytes: number; node: { + /** + * Not required for rendering in the Nodes overview + */ + name?: string; average_inference_time_ms: number; inference_count: number; routing_state: { @@ -173,13 +182,14 @@ export interface AllocatedModel { reason?: string; }; last_access?: number; + number_of_pending_requests: number; + start_time: number; }; } export interface NodeDeploymentStatsResponse { id: string; name: string; - transport_address: string; attributes: Record<string, string>; roles: string[]; allocated_models: AllocatedModel[]; diff --git a/x-pack/plugins/ml/public/application/components/help_icon/help_icon.tsx b/x-pack/plugins/ml/public/application/components/help_icon/help_icon.tsx new file mode 100644 index 0000000000000..5ab4fd4de5dd3 --- /dev/null +++ b/x-pack/plugins/ml/public/application/components/help_icon/help_icon.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, { FC, ReactNode } from 'react'; +import { EuiIcon, EuiToolTip } from '@elastic/eui'; + +export const HelpIcon: FC<{ content: ReactNode | string }> = ({ content }) => { + return ( + <EuiToolTip position="top" content={content}> + <EuiIcon + tabIndex={0} + type="questionInCircle" + color={'subdued'} + className="eui-alignTop" + size="s" + /> + </EuiToolTip> + ); +}; diff --git a/x-pack/plugins/ml/public/application/components/help_icon/index.tsx b/x-pack/plugins/ml/public/application/components/help_icon/index.tsx new file mode 100644 index 0000000000000..712f457da47c8 --- /dev/null +++ b/x-pack/plugins/ml/public/application/components/help_icon/index.tsx @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { HelpIcon } from './help_icon'; diff --git a/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts b/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts index c483b0a23c2d0..822c5059982e7 100644 --- a/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts +++ b/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts @@ -15,7 +15,6 @@ import { ModelPipelines, TrainedModelStat, NodesOverviewResponse, - TrainedModelDeploymentStatsResponse, } from '../../../../common/types/trained_models'; export interface InferenceQueryParams { @@ -122,21 +121,6 @@ export function trainedModelsApiProvider(httpService: HttpService) { }); }, - getTrainedModelDeploymentStats(modelId?: string | string[]) { - let model = modelId ?? '*'; - if (Array.isArray(modelId)) { - model = modelId.join(','); - } - - return httpService.http<{ - count: number; - deployment_stats: TrainedModelDeploymentStatsResponse[]; - }>({ - path: `${apiBasePath}/trained_models/${model}/deployment/_stats`, - method: 'GET', - }); - }, - getTrainedModelsNodesOverview() { return httpService.http<NodesOverviewResponse>({ path: `${apiBasePath}/trained_models/nodes_overview`, diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx index 6dd7db1dbb7b6..469973a378c83 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx @@ -5,53 +5,50 @@ * 2.0. */ -import React, { FC, Fragment, useEffect, useState } from 'react'; -import { omit } from 'lodash'; +import React, { FC, useEffect, useState } from 'react'; +import { omit, pick } from 'lodash'; import { EuiBadge, - EuiButtonEmpty, EuiCodeBlock, EuiDescriptionList, EuiFlexGrid, - EuiFlexGroup, EuiFlexItem, - EuiHorizontalRule, - EuiListGroup, EuiNotificationBadge, EuiPanel, EuiSpacer, EuiTabbedContent, - EuiText, - EuiTextColor, EuiTitle, } from '@elastic/eui'; -import { EuiDescriptionListProps } from '@elastic/eui/src/components/description_list/description_list'; +import type { EuiDescriptionListProps } from '@elastic/eui/src/components/description_list/description_list'; import { FormattedMessage } from '@kbn/i18n/react'; -import type { EuiListGroupItemProps } from '@elastic/eui/src/components/list_group/list_group_item'; -import { ModelItemFull } from './models_list'; -import { useMlKibana, useMlLocator } from '../../contexts/kibana'; +import type { ModelItemFull } from './models_list'; import { timeFormatter } from '../../../../common/util/date_utils'; import { isDefined } from '../../../../common/types/guards'; import { isPopulatedObject } from '../../../../common'; -import { ML_PAGES } from '../../../../common/constants/locator'; +import { ModelPipelines } from './pipelines'; +import { AllocatedModels } from '../nodes_overview/allocated_models'; +import type { AllocatedModel } from '../../../../common/types/trained_models'; interface ExpandedRowProps { item: ModelItemFull; } +const badgeFormatter = (items: string[]) => { + if (items.length === 0) return; + return ( + <div> + {items.map((item) => ( + <EuiBadge key={item} color="hollow"> + {item} + </EuiBadge> + ))} + </div> + ); +}; + const formatterDictionary: Record<string, (value: any) => JSX.Element | string | undefined> = { - tags: (tags: string[]) => { - if (tags.length === 0) return; - return ( - <div> - {tags.map((tag) => ( - <EuiBadge key={tag} color="hollow"> - {tag} - </EuiBadge> - ))} - </div> - ); - }, + tags: badgeFormatter, + roles: badgeFormatter, create_time: timeFormatter, timestamp: timeFormatter, }; @@ -89,11 +86,7 @@ export function formatToListItems( } export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { - const mlLocator = useMlLocator(); - - const [deploymentStatsItems, setDeploymentStats] = useState<EuiDescriptionListProps['listItems']>( - [] - ); + const [modelItems, setModelItems] = useState<AllocatedModel[]>([]); const { inference_config: inferenceConfig, @@ -125,41 +118,32 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { license_level, }; - const { - services: { share }, - } = useMlKibana(); - useEffect( - function updateDeploymentState() { + function updateModelItems() { (async function () { - const { nodes, ...deploymentStats } = stats.deployment_stats ?? {}; - - if (!isPopulatedObject(deploymentStats)) return; + const deploymentStats = stats.deployment_stats; - const result = formatToListItems(deploymentStats)!; + if (!deploymentStats) return; - const items: EuiListGroupItemProps[] = await Promise.all( - nodes!.map(async (v) => { - const nodeObject = Object.values(v.node)[0]; - const href = await mlLocator!.getUrl({ - page: ML_PAGES.TRAINED_MODELS_NODES, - pageState: { - nodeId: nodeObject.name, - }, - }); - return { - label: nodeObject.name, - href, - }; - }) - ); - - result.push({ - title: 'nodes', - description: <EuiListGroup size={'s'} gutterSize={'s'} listItems={items} />, + const items: AllocatedModel[] = deploymentStats.nodes.map((n) => { + const nodeName = Object.values(n.node)[0].name; + return { + ...deploymentStats, + node: { + ...pick(n, [ + 'average_inference_time_ms', + 'inference_count', + 'routing_state', + 'last_access', + 'number_of_pending_requests', + 'start_time', + ]), + name: nodeName, + } as AllocatedModel['node'], + }; }); - setDeploymentStats(result); + setModelItems(items); })(); }, [stats.deployment_stats] @@ -176,7 +160,7 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> + <EuiSpacer size={'s'} /> <EuiFlexGrid columns={2} gutterSize={'m'}> <EuiFlexItem> <EuiPanel> @@ -232,7 +216,7 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> + <EuiSpacer size={'s'} /> <EuiFlexGrid columns={2} gutterSize={'m'}> <EuiFlexItem> <EuiPanel> @@ -280,7 +264,7 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { }, ] : []), - ...(isPopulatedObject(omit(stats, 'pipeline_count')) + ...(isPopulatedObject(omit(stats, ['pipeline_count', 'ingest'])) ? [ { id: 'stats', @@ -292,57 +276,33 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> - {!!deploymentStatsItems?.length ? ( - <> - <EuiPanel> - <EuiTitle size={'xs'}> - <h5> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.deploymentStatsTitle" - defaultMessage="Deployment stats" - /> - </h5> - </EuiTitle> - <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={deploymentStatsItems} - /> - </EuiPanel> - <EuiSpacer size={'m'} /> - </> - ) : null} - <EuiFlexGrid columns={2}> - {stats.inference_stats && ( - <EuiFlexItem> + <EuiSpacer size={'s'} /> + + <EuiFlexGrid columns={2} gutterSize={'m'}> + {!!modelItems?.length ? ( + <EuiFlexItem grow={2}> <EuiPanel> <EuiTitle size={'xs'}> <h5> <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.inferenceStatsTitle" - defaultMessage="Inference stats" + id="xpack.ml.trainedModels.modelsList.expandedRow.deploymentStatsTitle" + defaultMessage="Deployment stats" /> </h5> </EuiTitle> <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={formatToListItems(stats.inference_stats)} - /> + <AllocatedModels models={modelItems} hideColumns={['model_id']} /> </EuiPanel> </EuiFlexItem> - )} - {stats.ingest?.total && ( + ) : null} + {stats.inference_stats ? ( <EuiFlexItem> - <EuiPanel style={{ maxHeight: '400px', overflow: 'auto' }}> + <EuiPanel> <EuiTitle size={'xs'}> <h5> <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.ingestStatsTitle" - defaultMessage="Ingest stats" + id="xpack.ml.trainedModels.modelsList.expandedRow.inferenceStatsTitle" + defaultMessage="Inference stats" /> </h5> </EuiTitle> @@ -350,99 +310,18 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { <EuiDescriptionList compressed={true} type="column" - listItems={formatToListItems(stats.ingest.total)} + listItems={formatToListItems(stats.inference_stats)} /> - - {stats.ingest?.pipelines && ( - <> - <EuiSpacer size={'m'} /> - <EuiTitle size={'xs'}> - <h5> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.byPipelineTitle" - defaultMessage="By pipeline" - /> - </h5> - </EuiTitle> - <EuiSpacer size={'s'} /> - {Object.entries(stats.ingest.pipelines).map( - ([pipelineName, { processors, ...pipelineStats }], i) => { - return ( - <Fragment key={pipelineName}> - <EuiFlexGroup> - <EuiFlexItem grow={false}> - <EuiTitle size={'xs'}> - <EuiTextColor color="subdued"> - <h5> - {i + 1}. {pipelineName} - </h5> - </EuiTextColor> - </EuiTitle> - </EuiFlexItem> - <EuiFlexItem> - <EuiHorizontalRule size={'full'} margin={'s'} /> - </EuiFlexItem> - </EuiFlexGroup> - <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={formatToListItems(pipelineStats)} - /> - <EuiSpacer size={'m'} /> - <EuiTitle size={'xxs'}> - <h6> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.byProcessorTitle" - defaultMessage="By processor" - /> - </h6> - </EuiTitle> - <EuiSpacer size={'s'} /> - <> - {processors.map((processor) => { - const name = Object.keys(processor)[0]; - const { stats: processorStats } = processor[name]; - return ( - <Fragment key={name}> - <EuiFlexGroup> - <EuiFlexItem grow={false}> - <EuiTitle size={'xxs'}> - <EuiTextColor color="subdued"> - <h6>{name}</h6> - </EuiTextColor> - </EuiTitle> - </EuiFlexItem> - <EuiFlexItem> - <EuiHorizontalRule size={'full'} margin={'s'} /> - </EuiFlexItem> - </EuiFlexGroup> - <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={formatToListItems(processorStats)} - /> - </Fragment> - ); - })} - </> - </Fragment> - ); - } - )} - </> - )} </EuiPanel> </EuiFlexItem> - )} + ) : null} </EuiFlexGrid> </> ), }, ] : []), - ...(pipelines && Object.keys(pipelines).length > 0 + ...((pipelines && Object.keys(pipelines).length > 0) || stats.ingest ? [ { id: 'pipelines', @@ -457,66 +336,8 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> - <EuiFlexGrid columns={2} gutterSize={'m'}> - {Object.entries(pipelines).map( - ([pipelineName, { processors, description: pipelineDescription }]) => { - return ( - <EuiFlexItem key={pipelineName}> - <EuiPanel> - <EuiFlexGroup alignItems="center" justifyContent="spaceBetween"> - <EuiFlexItem grow={false}> - <EuiTitle size={'xs'}> - <h5>{pipelineName}</h5> - </EuiTitle> - </EuiFlexItem> - <EuiFlexItem grow={false}> - <EuiButtonEmpty - onClick={() => { - const locator = share.url.locators.get( - 'INGEST_PIPELINES_APP_LOCATOR' - ); - if (!locator) return; - locator.navigate({ - page: 'pipeline_edit', - pipelineId: pipelineName, - absolute: true, - }); - }} - > - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.editPipelineLabel" - defaultMessage="Edit" - /> - </EuiButtonEmpty> - </EuiFlexItem> - </EuiFlexGroup> - - {pipelineDescription && <EuiText>{pipelineDescription}</EuiText>} - <EuiSpacer size={'m'} /> - <EuiTitle size={'xxs'}> - <h6> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.processorsTitle" - defaultMessage="Processors" - /> - </h6> - </EuiTitle> - <EuiCodeBlock - language="json" - fontSize="m" - paddingSize="m" - overflowHeight={300} - isCopyable - > - {JSON.stringify(processors, null, 2)} - </EuiCodeBlock> - </EuiPanel> - </EuiFlexItem> - ); - } - )} - </EuiFlexGrid> + <EuiSpacer size={'s'} /> + <ModelPipelines pipelines={pipelines!} ingestStats={stats.ingest} /> </> ), }, diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx index 9c3cc1f93a9cd..ce0e47df292de 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx @@ -6,7 +6,6 @@ */ import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; -import { omit } from 'lodash'; import { EuiBadge, EuiButton, @@ -153,9 +152,7 @@ export const ModelsList: FC = () => { } // Need to fetch state for 3rd party models to enable/disable actions - await fetchAndPopulateDeploymentStats( - newItems.filter((v) => v.model_type.includes('pytorch')) - ); + await fetchModelsStats(newItems.filter((v) => v.model_type.includes('pytorch'))); setItems(newItems); @@ -237,39 +234,6 @@ export const ModelsList: FC = () => { } }, []); - /** - * Updates model items with deployment stats; - * - * We have to fetch all deployment stats on each update, - * because for stopped models the API returns 404 response. - */ - const fetchAndPopulateDeploymentStats = useCallback(async (modelItems: ModelItem[]) => { - try { - const { deployment_stats: deploymentStats } = - await trainedModelsApiService.getTrainedModelDeploymentStats('*'); - - for (const deploymentStat of deploymentStats) { - const deployedModel = modelItems.find( - (model) => model.model_id === deploymentStat.model_id - ); - - if (deployedModel) { - deployedModel.stats = { - ...(deployedModel.stats ?? {}), - deployment_stats: omit(deploymentStat, 'model_id'), - }; - } - } - } catch (error) { - displayErrorToast( - error, - i18n.translate('xpack.ml.trainedModels.modelsList.fetchDeploymentStatsErrorMessage', { - defaultMessage: 'Fetch deployment stats failed', - }) - ); - } - }, []); - /** * Unique inference types from models */ @@ -398,11 +362,11 @@ export const ModelsList: FC = () => { }, }, { - name: i18n.translate('xpack.ml.inference.modelsList.startModelAllocationActionLabel', { - defaultMessage: 'Start allocation', + name: i18n.translate('xpack.ml.inference.modelsList.startModelDeploymentActionLabel', { + defaultMessage: 'Start deployment', }), - description: i18n.translate('xpack.ml.inference.modelsList.startModelAllocationActionLabel', { - defaultMessage: 'Start allocation', + description: i18n.translate('xpack.ml.inference.modelsList.startModelDeploymentActionLabel', { + defaultMessage: 'Start deployment', }), icon: 'play', type: 'icon', @@ -442,11 +406,11 @@ export const ModelsList: FC = () => { }, }, { - name: i18n.translate('xpack.ml.inference.modelsList.stopModelAllocationActionLabel', { - defaultMessage: 'Stop allocation', + name: i18n.translate('xpack.ml.inference.modelsList.stopModelDeploymentActionLabel', { + defaultMessage: 'Stop deployment', }), - description: i18n.translate('xpack.ml.inference.modelsList.stopModelAllocationActionLabel', { - defaultMessage: 'Stop allocation', + description: i18n.translate('xpack.ml.inference.modelsList.stopModelDeploymentActionLabel', { + defaultMessage: 'Stop deployment', }), icon: 'stop', type: 'icon', @@ -567,6 +531,7 @@ export const ModelsList: FC = () => { defaultMessage: 'Type', }), sortable: true, + truncateText: true, align: 'left', render: (types: string[]) => ( <EuiFlexGroup gutterSize={'xs'} wrap> @@ -587,6 +552,7 @@ export const ModelsList: FC = () => { }), sortable: (item) => item.stats?.deployment_stats?.state, align: 'left', + truncateText: true, render: (model: ModelItem) => { const state = model.stats?.deployment_stats?.state; return state ? <EuiBadge color="hollow">{state}</EuiBadge> : null; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx new file mode 100644 index 0000000000000..7430d50219d3e --- /dev/null +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx @@ -0,0 +1,177 @@ +/* + * Copyright 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, { FC } from 'react'; +import { EuiBadge, EuiInMemoryTable, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; + +import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; +import { i18n } from '@kbn/i18n'; +import { useFieldFormatter } from '../../../contexts/kibana/use_field_formatter'; +import { FIELD_FORMAT_IDS } from '../../../../../../../../src/plugins/field_formats/common'; +import { IngestStatsResponse } from './pipelines'; +import { HelpIcon } from '../../../components/help_icon'; + +interface ProcessorsStatsProps { + stats: Exclude<IngestStatsResponse, undefined>['pipelines'][string]['processors']; +} + +type ProcessorStatsItem = ProcessorsStatsProps['stats'][number][string] & { id: string }; + +export const ProcessorsStats: FC<ProcessorsStatsProps> = ({ stats }) => { + const durationFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DURATION); + + const items: ProcessorStatsItem[] = stats.map((v, i) => { + const key = Object.keys(v)[0]; + return { + ...v[key], + id: `${key}_${i}`, + }; + }); + + const columns: Array<EuiBasicTableColumn<ProcessorStatsItem>> = [ + { + field: 'type', + name: i18n.translate( + 'xpack.ml.trainedModels.modelsList.pipelines.processorStats.typeHeader', + { + defaultMessage: 'Processor type', + } + ), + width: '100px', + sortable: true, + truncateText: false, + render: (type: string) => { + return <EuiBadge color="hollow">{type}</EuiBadge>; + }, + 'data-test-subj': 'mlProcessorStatsType', + }, + { + field: 'stats.count', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.countHeader" + defaultMessage="Count" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.countDescription" + defaultMessage="Total number of documents ingested during the lifetime of this node" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + truncateText: true, + 'data-test-subj': 'mlProcessorStatsCount', + }, + { + field: 'stats.time_in_millis', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.timePerDocHeader" + defaultMessage="Time per doc" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.timePerDocDescription" + defaultMessage="Total time spent preprocessing ingest documents during the lifetime of this node" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + truncateText: false, + 'data-test-subj': 'mlProcessorStatsTimePerDoc', + render: (v: number) => { + return durationFormatter(v); + }, + }, + { + field: 'stats.current', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.currentHeader" + defaultMessage="Current" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.currentDescription" + defaultMessage="Total number of documents currently being ingested" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + truncateText: false, + 'data-test-subj': 'mlProcessorStatsCurrent', + }, + { + field: 'stats.failed', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.failedHeader" + defaultMessage="Failed" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.failedDescription" + defaultMessage="Total number of failed ingest operations during the lifetime of this node" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + 'data-test-subj': 'mlProcessorStatsFailed', + }, + ]; + + return ( + <EuiInMemoryTable<ProcessorStatsItem> + allowNeutralSort={false} + columns={columns} + hasActions={false} + isExpandable={false} + isSelectable={false} + items={items} + itemId={'id'} + rowProps={(item) => ({ + 'data-test-subj': `mlProcessorStatsTableRow row-${item.id}`, + })} + onTableChange={() => {}} + data-test-subj={'mlProcessorStatsTable'} + /> + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts new file mode 100644 index 0000000000000..791561b958164 --- /dev/null +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { ModelPipelines } from './pipelines'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx new file mode 100644 index 0000000000000..9b2af52eb03c8 --- /dev/null +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx @@ -0,0 +1,119 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC } from 'react'; +import { + EuiButtonEmpty, + EuiCodeBlock, + EuiFlexGrid, + EuiFlexItem, + EuiTitle, + EuiPanel, + EuiAccordion, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { useMlKibana } from '../../../contexts/kibana'; +import { ModelItem } from '../models_list'; +import { ProcessorsStats } from './expanded_row'; + +export type IngestStatsResponse = Exclude<ModelItem['stats'], undefined>['ingest']; + +interface ModelPipelinesProps { + pipelines: Exclude<ModelItem['pipelines'], null | undefined>; + ingestStats: IngestStatsResponse; +} + +export const ModelPipelines: FC<ModelPipelinesProps> = ({ pipelines, ingestStats }) => { + const { + services: { share }, + } = useMlKibana(); + + return ( + <> + {Object.entries(pipelines).map(([pipelineName, pipelineDefinition], i) => { + // Expand first 3 pipelines by default + const initialIsOpen = i <= 2; + return ( + <> + <EuiAccordion + key={pipelineName} + id={pipelineName} + buttonContent={ + <EuiTitle size="xs"> + <h5>{pipelineName}</h5> + </EuiTitle> + } + extraAction={ + <EuiButtonEmpty + onClick={() => { + const locator = share.url.locators.get('INGEST_PIPELINES_APP_LOCATOR'); + if (!locator) return; + locator.navigate({ + page: 'pipeline_edit', + pipelineId: pipelineName, + absolute: true, + }); + }} + iconType={'documentEdit'} + iconSide="left" + > + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.expandedRow.editPipelineLabel" + defaultMessage="Edit" + /> + </EuiButtonEmpty> + } + paddingSize="l" + initialIsOpen={initialIsOpen} + > + <EuiFlexGrid columns={2}> + {ingestStats?.pipelines ? ( + <EuiFlexItem> + <EuiPanel> + <EuiTitle size={'xxs'}> + <h6> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.expandedRow.ingestStatsTitle" + defaultMessage="Ingest stats" + /> + </h6> + </EuiTitle> + + <ProcessorsStats stats={ingestStats!.pipelines[pipelineName].processors} /> + </EuiPanel> + </EuiFlexItem> + ) : null} + + <EuiFlexItem> + <EuiPanel> + <EuiTitle size={'xxs'}> + <h6> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.expandedRow.processorsTitle" + defaultMessage="Definition" + /> + </h6> + </EuiTitle> + <EuiCodeBlock + language="json" + fontSize="m" + paddingSize="m" + overflowHeight={300} + isCopyable + > + {JSON.stringify(pipelineDefinition, null, 2)} + </EuiCodeBlock> + </EuiPanel> + </EuiFlexItem> + </EuiFlexGrid> + </EuiAccordion> + </> + ); + })} + </> + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx b/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx index da8605f075c2f..ec91499bdb722 100644 --- a/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx @@ -9,6 +9,7 @@ import React, { FC, useCallback, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiTab, EuiTabs } from '@elastic/eui'; import { useNavigateToPath } from '../contexts/kibana'; +import { checkPermission } from '../capabilities/check_capabilities'; interface Tab { id: string; @@ -21,6 +22,8 @@ export const TrainedModelsNavigationBar: FC<{ }> = ({ selectedTabId }) => { const navigateToPath = useNavigateToPath(); + const canViewMlNodes = checkPermission('canViewMlNodes'); + const tabs = useMemo(() => { const navTabs = [ { @@ -31,17 +34,21 @@ export const TrainedModelsNavigationBar: FC<{ path: '/trained_models', testSubj: 'mlTrainedModelsTab', }, - { - id: 'nodes', - name: i18n.translate('xpack.ml.trainedModels.nodesTabLabel', { - defaultMessage: 'Nodes', - }), - path: '/trained_models/nodes', - testSubj: 'mlNodesOverviewTab', - }, + ...(canViewMlNodes + ? [ + { + id: 'nodes', + name: i18n.translate('xpack.ml.trainedModels.nodesTabLabel', { + defaultMessage: 'Nodes', + }), + path: '/trained_models/nodes', + testSubj: 'mlNodesOverviewTab', + }, + ] + : []), ]; return navTabs; - }, []); + }, [canViewMlNodes]); const onTabClick = useCallback( async (tab: Tab) => { diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx index 2aad8183b7998..f26be61fce6f7 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx @@ -17,15 +17,31 @@ import { FIELD_FORMAT_IDS } from '../../../../../../../src/plugins/field_formats interface AllocatedModelsProps { models: NodeDeploymentStatsResponse['allocated_models']; + hideColumns?: string[]; } -export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { +export const AllocatedModels: FC<AllocatedModelsProps> = ({ + models, + hideColumns = ['node_name'], +}) => { const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); const dateFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DATE); const durationFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DURATION); const columns: Array<EuiBasicTableColumn<AllocatedModel>> = [ { + id: 'node_name', + field: 'node.name', + name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.nodeNameHeader', { + defaultMessage: 'Node name', + }), + width: '200px', + sortable: true, + truncateText: false, + 'data-test-subj': 'mlAllocatedModelsTableNodeName', + }, + { + id: 'model_id', field: 'model_id', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelNameHeader', { defaultMessage: 'Name', @@ -84,6 +100,16 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { return v.node.inference_count; }, }, + { + name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelStartTimeHeader', { + defaultMessage: 'Start time', + }), + width: '200px', + 'data-test-subj': 'mlAllocatedModelsTableStartedTime', + render: (v: AllocatedModel) => { + return dateFormatter(v.node.start_time); + }, + }, { name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelLastAccessHeader', { defaultMessage: 'Last access', @@ -94,6 +120,19 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { return dateFormatter(v.node.last_access); }, }, + { + name: i18n.translate( + 'xpack.ml.trainedModels.nodesList.modelsList.modelNumberOfPendingRequestsHeader', + { + defaultMessage: 'Pending requests', + } + ), + width: '100px', + 'data-test-subj': 'mlAllocatedModelsTableNumberOfPendingRequests', + render: (v: AllocatedModel) => { + return v.node.number_of_pending_requests; + }, + }, { name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelRoutingStateHeader', { defaultMessage: 'Routing state', @@ -110,7 +149,7 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { ); }, }, - ]; + ].filter((v) => !hideColumns.includes(v.id!)); return ( <EuiInMemoryTable<AllocatedModel> diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx index 508a5689e1c9b..ba5cdd9093210 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx @@ -15,15 +15,19 @@ import { EuiTitle, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { NodeItemWithStats } from './nodes_list'; +import { NodeItem } from './nodes_list'; import { formatToListItems } from '../models_management/expanded_row'; import { AllocatedModels } from './allocated_models'; +import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; +import { FIELD_FORMAT_IDS } from '../../../../../../../src/plugins/field_formats/common'; interface ExpandedRowProps { - item: NodeItemWithStats; + item: NodeItem; } export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { + const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); + const { allocated_models: allocatedModels, attributes, @@ -31,6 +35,11 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ...details } = item; + // Process node attributes + attributes['ml.machine_memory'] = bytesFormatter(attributes['ml.machine_memory']); + attributes['ml.max_jvm_size'] = bytesFormatter(attributes['ml.max_jvm_size']); + delete attributes['xpack.installed']; + return ( <> <EuiSpacer size={'m'} /> diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx index b1cc18e698c9d..87211fedaea43 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx @@ -36,10 +36,6 @@ import { useRefresh } from '../../routing/use_refresh'; export type NodeItem = NodeDeploymentStatsResponse; -export interface NodeItemWithStats extends NodeItem { - stats: any; -} - export const getDefaultNodesListState = (): ListingPageUrlState => ({ pageIndex: 0, pageSize: 10, @@ -70,6 +66,14 @@ export const NodesList: FC = () => { try { const nodesResponse = await trainedModelsApiService.getTrainedModelsNodesOverview(); setItems(nodesResponse.nodes); + + // Update expanded rows. + nodesResponse.nodes.forEach((node) => { + if (itemIdToExpandedRowMap[node.id]) { + itemIdToExpandedRowMap[node.id] = <ExpandedRow item={node} />; + } + }); + setIsLoading(false); refreshAnalyticsList$.next(REFRESH_ANALYTICS_LIST_STATE.IDLE); } catch (e) { @@ -80,14 +84,14 @@ export const NodesList: FC = () => { }) ); } - }, []); + }, [itemIdToExpandedRowMap]); const toggleDetails = (item: NodeItem) => { const itemIdToExpandedRowMapValues = { ...itemIdToExpandedRowMap }; if (itemIdToExpandedRowMapValues[item.id]) { delete itemIdToExpandedRowMapValues[item.id]; } else { - itemIdToExpandedRowMapValues[item.id] = <ExpandedRow item={item as NodeItemWithStats} />; + itemIdToExpandedRowMapValues[item.id] = <ExpandedRow item={item} />; } setItemIdToExpandedRowMap(itemIdToExpandedRowMapValues); }; diff --git a/x-pack/plugins/ml/public/application/trained_models/page.tsx b/x-pack/plugins/ml/public/application/trained_models/page.tsx index 54849f3e651df..afbebf58937b3 100644 --- a/x-pack/plugins/ml/public/application/trained_models/page.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/page.tsx @@ -28,14 +28,9 @@ import { ModelsList } from './models_management'; import { TrainedModelsNavigationBar } from './navigation_bar'; import { RefreshAnalyticsListButton } from '../data_frame_analytics/pages/analytics_management/components/refresh_analytics_list_button'; import { DatePickerWrapper } from '../components/navigation_menu/date_picker_wrapper'; -import { useRefreshAnalyticsList } from '../data_frame_analytics/common'; -import { useRefreshInterval } from '../data_frame_analytics/pages/analytics_management/components/analytics_list/use_refresh_interval'; import { NodesList } from './nodes_overview'; export const Page: FC = () => { - useRefreshInterval(() => {}); - - useRefreshAnalyticsList({ isLoading: () => {} }); const location = useLocation(); const selectedTabId = useMemo(() => location.pathname.split('/').pop(), [location]); diff --git a/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts b/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts index 920e1f703422d..c72b4d5cb5dd7 100644 --- a/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts +++ b/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts @@ -51,7 +51,7 @@ describe('check_capabilities', () => { ); const { capabilities } = await getCapabilities(); const count = Object.keys(capabilities).length; - expect(count).toBe(31); + expect(count).toBe(32); }); }); @@ -101,6 +101,7 @@ describe('check_capabilities', () => { expect(capabilities.canCreateDataFrameAnalytics).toBe(false); expect(capabilities.canStartStopDataFrameAnalytics).toBe(false); expect(capabilities.canCreateMlAlerts).toBe(false); + expect(capabilities.canViewMlNodes).toBe(false); }); test('full capabilities', async () => { @@ -146,6 +147,7 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(true); expect(capabilities.canCreateDataFrameAnalytics).toBe(true); expect(capabilities.canStartStopDataFrameAnalytics).toBe(true); + expect(capabilities.canViewMlNodes).toBe(true); }); test('upgrade in progress with full capabilities', async () => { diff --git a/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts b/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts index 6169d9ee9db47..c2b98ab1b0c29 100644 --- a/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts +++ b/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts @@ -380,11 +380,6 @@ export function getMlClient( async getTrainedModelsStats(...p: Parameters<MlClient['getTrainedModelsStats']>) { return mlClient.getTrainedModelsStats(...p); }, - async getTrainedModelDeploymentStats( - ...p: Parameters<MlClient['getTrainedModelDeploymentStats']> - ) { - return mlClient.getTrainedModelDeploymentStats(...p); - }, async startTrainedModelDeployment(...p: Parameters<MlClient['startTrainedModelDeployment']>) { return mlClient.startTrainedModelDeployment(...p); }, diff --git a/x-pack/plugins/ml/server/lib/ml_client/types.ts b/x-pack/plugins/ml/server/lib/ml_client/types.ts index d8c65c4f56814..b4778f4e6d5b1 100644 --- a/x-pack/plugins/ml/server/lib/ml_client/types.ts +++ b/x-pack/plugins/ml/server/lib/ml_client/types.ts @@ -48,7 +48,6 @@ export type MlClientParams = | Parameters<MlClient['getRecords']> | Parameters<MlClient['getTrainedModels']> | Parameters<MlClient['getTrainedModelsStats']> - | Parameters<MlClient['getTrainedModelDeploymentStats']> | Parameters<MlClient['startTrainedModelDeployment']> | Parameters<MlClient['stopTrainedModelDeployment']> | Parameters<MlClient['info']> diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json b/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json index 0742c249b67b0..5d80fa26b4c34 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json @@ -1,357 +1,355 @@ -{ - "count" : 4, - "deployment_stats" : [ - { - "model_id" : "distilbert-base-uncased-finetuned-sst-2-english", - "model_size_bytes" : 267386880, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" - }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 +[ + { + "model_id": "distilbert-base-uncased-finetuned-sst-2-english", + "model_size_bytes": 267386880, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - }, - { - "model_id" : "elastic__distilbert-base-cased-finetuned-conll03-english", - "model_size_bytes" : 260947500, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + }, + { + "model_id": "elastic__distilbert-base-cased-finetuned-conll03-english", + "model_size_bytes": 260947500, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] + } + }, + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - }, - { - "model_id" : "sentence-transformers__msmarco-minilm-l-12-v3", - "model_size_bytes" : 133378867, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + }, + { + "model_id": "sentence-transformers__msmarco-minilm-l-12-v3", + "model_size_bytes": 133378867, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] + } + }, + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - }, - { - "model_id" : "typeform__mobilebert-uncased-mnli", - "model_size_bytes" : 100139008, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } + }, + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + }, + { + "model_id": "typeform__mobilebert-uncased-mnli", + "model_size_bytes": 100139008, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - } - ] -} + }, + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } + }, + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + } +] + diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts index 4f5e1ee9b230c..c0d70aa471992 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts @@ -104,8 +104,16 @@ describe('Model service', () => { }, } as unknown as jest.Mocked<IScopedClusterClient>; const mlClient = { - getTrainedModelDeploymentStats: jest.fn(() => { - return Promise.resolve({ body: mockResponse }); + getTrainedModelsStats: jest.fn(() => { + return Promise.resolve({ + body: { + trained_model_stats: mockResponse.map((v) => { + return { + deployment_stats: v, + }; + }), + }, + }); }), } as unknown as jest.Mocked<MlClient>; const memoryOverviewService = { @@ -214,9 +222,7 @@ describe('Model service', () => { 'ml.max_jvm_size': '1073741824', 'xpack.installed': 'true', }, - host: '10.10.10.2', id: '3qIoLFnbSi-DwVrYioUCdw', - ip: '10.10.10.2:9353', memory_overview: { anomaly_detection: { total: 0, @@ -251,7 +257,6 @@ describe('Model service', () => { }, }, roles: ['data', 'ingest', 'master', 'ml', 'transform'], - transport_address: '10.10.10.2:9353', }, { name: 'node2', @@ -334,9 +339,7 @@ describe('Model service', () => { 'ml.max_jvm_size': '1073741824', 'xpack.installed': 'true', }, - host: '10.10.10.2', id: 'DpCy7SOBQla3pu0Dq-tnYw', - ip: '10.10.10.2:9352', memory_overview: { anomaly_detection: { total: 0, @@ -371,7 +374,6 @@ describe('Model service', () => { }, }, roles: ['data', 'master', 'ml', 'transform'], - transport_address: '10.10.10.2:9352', }, { allocated_models: [ @@ -457,9 +459,7 @@ describe('Model service', () => { 'ml.max_jvm_size': '1073741824', 'xpack.installed': 'true', }, - host: '10.10.10.2', id: 'pt7s6lKHQJaP4QHKtU-Q0Q', - ip: '10.10.10.2:9351', memory_overview: { anomaly_detection: { total: 0, @@ -495,7 +495,6 @@ describe('Model service', () => { }, name: 'node1', roles: ['data', 'master', 'ml'], - transport_address: '10.10.10.2:9351', }, ], }); diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts index 2f40081f1458d..104e320e7fab1 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts @@ -19,18 +19,11 @@ import { NATIVE_EXECUTABLE_CODE_OVERHEAD, } from '../memory_overview/memory_overview_service'; import { TrainedModelDeploymentStatsResponse } from '../../../common/types/trained_models'; +import { isDefined } from '../../../common/types/guards'; export type ModelService = ReturnType<typeof modelsProvider>; -const NODE_FIELDS = [ - 'attributes', - 'name', - 'roles', - 'ip', - 'host', - 'transport_address', - 'version', -] as const; +const NODE_FIELDS = ['attributes', 'name', 'roles', 'version'] as const; export type RequiredNodeFields = Pick<NodesInfoNodeInfo, typeof NODE_FIELDS[number]>; @@ -87,8 +80,11 @@ export function modelsProvider( throw new Error('Memory overview service is not provided'); } - const { body: deploymentStats } = await mlClient.getTrainedModelDeploymentStats({ - model_id: '*', + const { + body: { trained_model_stats: trainedModelStats }, + } = await mlClient.getTrainedModelsStats({ + model_id: '_all', + size: 10000, }); const { @@ -105,7 +101,12 @@ export function modelsProvider( const nodeFields = pick(node, NODE_FIELDS) as RequiredNodeFields; const allocatedModels = ( - deploymentStats.deployment_stats as TrainedModelDeploymentStatsResponse[] + trainedModelStats + .map((v) => { + // @ts-ignore new prop + return v.deployment_stats; + }) + .filter(isDefined) as TrainedModelDeploymentStatsResponse[] ) .filter((v) => v.nodes.some((n) => Object.keys(n.node)[0] === nodeId)) .map(({ nodes, ...rest }) => { diff --git a/x-pack/plugins/ml/server/routes/apidoc.json b/x-pack/plugins/ml/server/routes/apidoc.json index b7bd92c913891..e1a839b21f7b0 100644 --- a/x-pack/plugins/ml/server/routes/apidoc.json +++ b/x-pack/plugins/ml/server/routes/apidoc.json @@ -160,7 +160,6 @@ "TrainedModels", "GetTrainedModel", "GetTrainedModelStats", - "GetTrainedModelDeploymentStats", "GetTrainedModelsNodesOverview", "GetTrainedModelPipelines", "StartTrainedModelDeployment", diff --git a/x-pack/plugins/ml/server/routes/trained_models.ts b/x-pack/plugins/ml/server/routes/trained_models.ts index 1837f9e88edf3..e7696861153ff 100644 --- a/x-pack/plugins/ml/server/routes/trained_models.ts +++ b/x-pack/plugins/ml/server/routes/trained_models.ts @@ -198,7 +198,11 @@ export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) path: '/api/ml/trained_models/nodes_overview', validate: {}, options: { - tags: ['access:ml:canGetDataFrameAnalytics'], + tags: [ + 'access:ml:canViewMlNodes', + 'access:ml:canGetDataFrameAnalytics', + 'access:ml:canGetJobs', + ], }, }, routeGuard.fullLicenseAPIGuard(async ({ client, mlClient, request, response }) => { @@ -281,36 +285,4 @@ export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) } }) ); - - /** - * @apiGroup TrainedModels - * - * @api {get} /api/ml/trained_models/:modelId/deployment/_stats Get trained model deployment stats - * @apiName GetTrainedModelDeploymentStats - * @apiDescription Gets trained model deployment stats. - */ - router.get( - { - path: '/api/ml/trained_models/{modelId}/deployment/_stats', - validate: { - params: modelIdSchema, - }, - options: { - tags: ['access:ml:canGetDataFrameAnalytics'], - }, - }, - routeGuard.fullLicenseAPIGuard(async ({ mlClient, request, response }) => { - try { - const { modelId } = request.params; - const { body } = await mlClient.getTrainedModelDeploymentStats({ - model_id: modelId, - }); - return response.ok({ - body, - }); - } catch (e) { - return response.customError(wrapError(e)); - } - }) - ); } diff --git a/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts b/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts index 772c16fc9cb99..79a0084f91923 100644 --- a/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts +++ b/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts @@ -6,41 +6,10 @@ */ import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; +import { getDefaultMlCapabilities } from '../../../ml/common'; export const emptyMlCapabilities: MlCapabilitiesResponse = { - capabilities: { - canAccessML: false, - canGetAnnotations: false, - canCreateAnnotation: false, - canDeleteAnnotation: false, - canGetJobs: false, - canCreateJob: false, - canDeleteJob: false, - canOpenJob: false, - canCloseJob: false, - canResetJob: false, - canForecastJob: false, - canGetDatafeeds: false, - canStartStopDatafeed: false, - canUpdateJob: false, - canUpdateDatafeed: false, - canPreviewDatafeed: false, - canGetCalendars: false, - canCreateCalendar: false, - canDeleteCalendar: false, - canGetFilters: false, - canCreateFilter: false, - canDeleteFilter: false, - canFindFileStructure: false, - canCreateDatafeed: false, - canDeleteDatafeed: false, - canGetDataFrameAnalytics: false, - canDeleteDataFrameAnalytics: false, - canCreateDataFrameAnalytics: false, - canStartStopDataFrameAnalytics: false, - canCreateMlAlerts: false, - canUseMlAlerts: false, - }, + capabilities: getDefaultMlCapabilities(), isPlatinumOrTrialLicense: false, mlFeatureEnabledInSpace: false, upgradeInProgress: false, diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index bf8bb82faf706..a27ec93d02c98 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -17806,8 +17806,6 @@ "xpack.ml.trainedModels.modelsList.deleteModelsButtonLabel": "削除", "xpack.ml.trainedModels.modelsList.disableSelectableMessage": "モデルにはパイプラインが関連付けられています", "xpack.ml.trainedModels.modelsList.expandedRow.analyticsConfigTitle": "分析構成", - "xpack.ml.trainedModels.modelsList.expandedRow.byPipelineTitle": "パイプライン別", - "xpack.ml.trainedModels.modelsList.expandedRow.byProcessorTitle": "プロセッサー別", "xpack.ml.trainedModels.modelsList.expandedRow.configTabLabel": "構成", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTabLabel": "詳細", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTitle": "詳細", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 024a10fbc3a8c..e63a873cac3e4 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -18081,8 +18081,6 @@ "xpack.ml.trainedModels.modelsList.deleteModelsButtonLabel": "删除", "xpack.ml.trainedModels.modelsList.disableSelectableMessage": "模型有关联的管道", "xpack.ml.trainedModels.modelsList.expandedRow.analyticsConfigTitle": "分析配置", - "xpack.ml.trainedModels.modelsList.expandedRow.byPipelineTitle": "按管道", - "xpack.ml.trainedModels.modelsList.expandedRow.byProcessorTitle": "按处理器", "xpack.ml.trainedModels.modelsList.expandedRow.configTabLabel": "配置", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTabLabel": "详情", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTitle": "详情", diff --git a/x-pack/test/api_integration/apis/ml/system/capabilities.ts b/x-pack/test/api_integration/apis/ml/system/capabilities.ts index 4eb040d031c2e..d0df53dfee343 100644 --- a/x-pack/test/api_integration/apis/ml/system/capabilities.ts +++ b/x-pack/test/api_integration/apis/ml/system/capabilities.ts @@ -45,7 +45,7 @@ export default ({ getService }: FtrProviderContext) => { it('should have the right number of capabilities', async () => { const { capabilities } = await runRequest(USER.ML_POWERUSER); - expect(Object.keys(capabilities).length).to.eql(31); + expect(Object.keys(capabilities).length).to.eql(32); }); it('should get viewer capabilities', async () => { @@ -83,6 +83,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: false, }); }); @@ -121,6 +122,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: true, }); }); }); diff --git a/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts b/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts index 6d6a00e882689..b51b87457caa2 100644 --- a/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts +++ b/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts @@ -71,11 +71,11 @@ export default ({ getService }: FtrProviderContext) => { it('should have the right number of capabilities - space with ML', async () => { const { capabilities } = await runRequest(USER.ML_POWERUSER, idSpaceWithMl); - expect(Object.keys(capabilities).length).to.eql(31); + expect(Object.keys(capabilities).length).to.eql(32); }); it('should have the right number of capabilities - space without ML', async () => { const { capabilities } = await runRequest(USER.ML_POWERUSER, idSpaceNoMl); - expect(Object.keys(capabilities).length).to.eql(31); + expect(Object.keys(capabilities).length).to.eql(32); }); it('should get viewer capabilities - space with ML', async () => { @@ -112,6 +112,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: false, }); }); @@ -149,6 +150,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: false, canCreateAnnotation: false, canDeleteAnnotation: false, + canViewMlNodes: false, }); }); @@ -186,6 +188,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: true, }); }); @@ -223,6 +226,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: false, canCreateAnnotation: false, canDeleteAnnotation: false, + canViewMlNodes: false, }); }); }); diff --git a/x-pack/test/functional/apps/ml/model_management/model_list.ts b/x-pack/test/functional/apps/ml/model_management/model_list.ts index aac1ad5b1e50b..955639dbe60a4 100644 --- a/x-pack/test/functional/apps/ml/model_management/model_list.ts +++ b/x-pack/test/functional/apps/ml/model_management/model_list.ts @@ -10,8 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { const ml = getService('ml'); - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/118251 - describe.skip('trained models', function () { + describe('trained models', function () { before(async () => { await ml.trainedModels.createTestTrainedModels('classification', 15, true); await ml.trainedModels.createTestTrainedModels('regression', 15); From e9932dc98e635a8543deaf642f803f3a89f72888 Mon Sep 17 00:00:00 2001 From: Dmitry Tomashevich <39378793+Dmitriynj@users.noreply.github.com> Date: Mon, 22 Nov 2021 14:57:37 +0300 Subject: [PATCH 100/114] [Discover] Fix search on page load test (#119087) * [Discover] log failure * [Discover] add one more log * [Discover] suggest fix * [Discover] leave only one describe block * [Discover] remove logs * [Discover] simplify comment * [Discover] add description of the fix Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- test/functional/apps/discover/_search_on_page_load.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/functional/apps/discover/_search_on_page_load.ts b/test/functional/apps/discover/_search_on_page_load.ts index 2a66e03c3cbb8..277d2e72d729f 100644 --- a/test/functional/apps/discover/_search_on_page_load.ts +++ b/test/functional/apps/discover/_search_on_page_load.ts @@ -76,6 +76,11 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await testSubjects.exists('refreshDataButton')).to.be(true); await retry.waitFor('number of fetches to be 0', waitForFetches(0)); + /** + * We should wait for debounce timeout expired 100 ms, + * otherwise click event will be skipped. See getFetch$ implementation. + */ + await PageObjects.common.sleep(100); await testSubjects.click('refreshDataButton'); await retry.waitFor('number of fetches to be 1', waitForFetches(1)); From 3cc0875f635c8713df9eddae268ad10f116105b3 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Mon, 22 Nov 2021 13:22:36 +0000 Subject: [PATCH 101/114] skip flaky suite (#116533) --- x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js b/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js index d7c4e5dd12f52..80c8c13b16ddf 100644 --- a/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js +++ b/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js @@ -17,7 +17,8 @@ export default function ({ getService, getPageObjects }) { // FF issue: https://github.com/elastic/kibana/issues/35551 this.tags(['skipFirefox']); - describe('with offline node', () => { + // FLAKY: https://github.com/elastic/kibana/issues/116533 + describe.skip('with offline node', () => { const { setup, tearDown } = getLifecycleMethods(getService, getPageObjects); before(async () => { From bc1163cb0c4594646390afb562f8cbd2b3cfcc83 Mon Sep 17 00:00:00 2001 From: Tiago Costa <tiago.costa@elastic.co> Date: Mon, 22 Nov 2021 13:29:40 +0000 Subject: [PATCH 102/114] skip flaky suite (#116725) --- test/api_integration/apis/stats/stats.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/api_integration/apis/stats/stats.js b/test/api_integration/apis/stats/stats.js index 61936a73da38d..c15fa782ea3ae 100644 --- a/test/api_integration/apis/stats/stats.js +++ b/test/api_integration/apis/stats/stats.js @@ -58,7 +58,8 @@ export default function ({ getService }) { ); }); - describe('basic', () => { + // FLAKY: https://github.com/elastic/kibana/issues/116725 + describe.skip('basic', () => { it('should return the stats without cluster_uuid with no query string params', () => { return supertest .get('/api/stats') From 43f7fc0a8e5e835ad04eb307bad3b14c795ee638 Mon Sep 17 00:00:00 2001 From: Alexey Antonov <alexwizp@gmail.com> Date: Mon, 22 Nov 2021 16:35:10 +0300 Subject: [PATCH 103/114] [Lens] Mosaic / mekko vis type (#117668) * [Lens] Mosaic / mekko vis type Closes: #104223 * some updates * fix color palette logic * fix suggestions * fix JEST * fix some parts * update labels * Fix JEST * add showExperimentalBadge * add sorting * fix toolbar options * fix Marco suggestion Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../common/expressions/pie_chart/pie_chart.ts | 2 +- .../common/expressions/pie_chart/types.ts | 6 +- .../lens/public/assets/chart_mosaic.tsx | 31 +++ .../config_panel/layer_panel.test.tsx | 34 ++- .../editor_frame/config_panel/layer_panel.tsx | 30 ++- .../public/pie_visualization/constants.ts | 63 +++++- .../pie_visualization/render_function.tsx | 61 ++++- .../pie_visualization/render_helpers.test.ts | 121 +++++++++- .../pie_visualization/render_helpers.ts | 66 +++++- .../pie_visualization/suggestions.test.ts | 208 +++++++++++++++++- .../public/pie_visualization/suggestions.ts | 75 ++++++- .../lens/public/pie_visualization/toolbar.tsx | 84 ++----- .../pie_visualization/visualization.tsx | 142 ++++++------ x-pack/plugins/lens/public/types.ts | 1 + .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 16 files changed, 753 insertions(+), 173 deletions(-) create mode 100644 x-pack/plugins/lens/public/assets/chart_mosaic.tsx diff --git a/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts b/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts index ed0391a16af25..053b46e480c7b 100644 --- a/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts +++ b/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts @@ -49,7 +49,7 @@ export const pie: ExpressionFunctionDefinition< }, shape: { types: ['string'], - options: ['pie', 'donut', 'treemap'], + options: ['pie', 'donut', 'treemap', 'mosaic'], help: '', }, hideLabels: { diff --git a/x-pack/plugins/lens/common/expressions/pie_chart/types.ts b/x-pack/plugins/lens/common/expressions/pie_chart/types.ts index 8712675740f1c..00fc7abaa043b 100644 --- a/x-pack/plugins/lens/common/expressions/pie_chart/types.ts +++ b/x-pack/plugins/lens/common/expressions/pie_chart/types.ts @@ -8,6 +8,8 @@ import type { PaletteOutput } from '../../../../../../src/plugins/charts/common'; import type { LensMultiTable, LayerType } from '../../types'; +export type PieChartTypes = 'donut' | 'pie' | 'treemap' | 'mosaic'; + export interface SharedPieLayerState { groups: string[]; metric?: string; @@ -27,7 +29,7 @@ export type PieLayerState = SharedPieLayerState & { }; export interface PieVisualizationState { - shape: 'donut' | 'pie' | 'treemap'; + shape: PieChartTypes; layers: PieLayerState[]; palette?: PaletteOutput; } @@ -35,7 +37,7 @@ export interface PieVisualizationState { export type PieExpressionArgs = SharedPieLayerState & { title?: string; description?: string; - shape: 'pie' | 'donut' | 'treemap'; + shape: PieChartTypes; hideLabels: boolean; palette: PaletteOutput; }; diff --git a/x-pack/plugins/lens/public/assets/chart_mosaic.tsx b/x-pack/plugins/lens/public/assets/chart_mosaic.tsx new file mode 100644 index 0000000000000..c385f0df1a008 --- /dev/null +++ b/x-pack/plugins/lens/public/assets/chart_mosaic.tsx @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import type { EuiIconProps } from '@elastic/eui'; + +export const LensIconChartMosaic = ({ title, titleId, ...props }: Omit<EuiIconProps, 'type'>) => ( + <svg + viewBox="0 0 30 22" + width={30} + height={22} + fill="none" + xmlns="http://www.w3.org/2000/svg" + aria-labelledby={titleId} + {...props} + > + {title ? <title id={titleId} /> : null} + <path + className="lensChartIcon__subdued" + d="M2 0a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V1a1 1 0 00-1-1H2zM2 14a1 1 0 00-1 1v6a1 1 0 001 1h6a1 1 0 001-1v-6a1 1 0 00-1-1H2zM11 13a1 1 0 011-1h6a1 1 0 011 1v8a1 1 0 01-1 1h-6a1 1 0 01-1-1v-8zM12 0a1 1 0 100 2h6a1 1 0 100-2h-6zM21 15a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1h-6a1 1 0 01-1-1v-6zM22 0a1 1 0 00-1 1v4a1 1 0 001 1h6a1 1 0 001-1V1a1 1 0 00-1-1h-6z" + /> + <path + className="lensChartIcon__accent" + d="M11 5a1 1 0 011-1h6a1 1 0 011 1v4a1 1 0 01-1 1h-6a1 1 0 01-1-1V5zM1 7a1 1 0 011-1h6a1 1 0 011 1v4a1 1 0 01-1 1H2a1 1 0 01-1-1V7zM22 8a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V9a1 1 0 00-1-1h-6z" + /> + </svg> +); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx index 92633d5e7305b..a6be4acfbbcf1 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx @@ -225,7 +225,39 @@ describe('LayerPanel', () => { const group = instance .find(EuiFormRow) - .findWhere((e) => e.prop('error') === 'Required dimension'); + .findWhere((e) => e.prop('error') === 'Requires field'); + + expect(group).toHaveLength(1); + }); + + it('should render the required warning when only one group is configured (with requiredMinDimensionCount)', async () => { + mockVisualization.getConfiguration.mockReturnValue({ + groups: [ + { + groupLabel: 'A', + groupId: 'a', + accessors: [{ columnId: 'x' }], + filterOperations: () => true, + supportsMoreColumns: false, + dataTestSubj: 'lnsGroup', + }, + { + groupLabel: 'B', + groupId: 'b', + accessors: [{ columnId: 'y' }], + filterOperations: () => true, + supportsMoreColumns: true, + dataTestSubj: 'lnsGroup', + requiredMinDimensionCount: 2, + }, + ], + }); + + const { instance } = await mountWithProvider(<LayerPanel {...getDefaultProps()} />); + + const group = instance + .find(EuiFormRow) + .findWhere((e) => e.prop('error') === 'Requires 2 fields'); expect(group).toHaveLength(1); }); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx index 6af3d88b17d41..84c7722ca1b88 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx @@ -385,7 +385,27 @@ export function LayerPanel( </header> {groups.map((group, groupIndex) => { - const isMissing = !isEmptyLayer && group.required && group.accessors.length === 0; + let isMissing = false; + + if (!isEmptyLayer) { + if (group.requiredMinDimensionCount) { + isMissing = group.accessors.length < group.requiredMinDimensionCount; + } else if (group.required) { + isMissing = group.accessors.length === 0; + } + } + + const isMissingError = group.requiredMinDimensionCount + ? i18n.translate('xpack.lens.editorFrame.requiresTwoOrMoreFieldsWarningLabel', { + defaultMessage: 'Requires {requiredMinDimensionCount} fields', + values: { + requiredMinDimensionCount: group.requiredMinDimensionCount, + }, + }) + : i18n.translate('xpack.lens.editorFrame.requiresFieldWarningLabel', { + defaultMessage: 'Requires field', + }); + const isOptional = !group.required; return ( <EuiFormRow @@ -423,13 +443,7 @@ export function LayerPanel( labelType="legend" key={group.groupId} isInvalid={isMissing} - error={ - isMissing - ? i18n.translate('xpack.lens.editorFrame.requiredDimensionWarningLabel', { - defaultMessage: 'Required dimension', - }) - : [] - } + error={isMissing ? isMissingError : []} > <> {group.accessors.length ? ( diff --git a/x-pack/plugins/lens/public/pie_visualization/constants.ts b/x-pack/plugins/lens/public/pie_visualization/constants.ts index 9a2f39e7d34a5..be0afc65aed3b 100644 --- a/x-pack/plugins/lens/public/pie_visualization/constants.ts +++ b/x-pack/plugins/lens/public/pie_visualization/constants.ts @@ -6,41 +6,100 @@ */ import { i18n } from '@kbn/i18n'; +import { PartitionLayout } from '@elastic/charts'; import { LensIconChartDonut } from '../assets/chart_donut'; import { LensIconChartPie } from '../assets/chart_pie'; import { LensIconChartTreemap } from '../assets/chart_treemap'; +import { LensIconChartMosaic } from '../assets/chart_mosaic'; + +import type { SharedPieLayerState } from '../../common/expressions'; + +interface CategoryOption { + value: SharedPieLayerState['categoryDisplay']; + inputDisplay: string; +} const groupLabel = i18n.translate('xpack.lens.pie.groupLabel', { defaultMessage: 'Proportion', }); +const categoryOptions: CategoryOption[] = [ + { + value: 'default', + inputDisplay: i18n.translate('xpack.lens.pieChart.showCategoriesLabel', { + defaultMessage: 'Inside or outside', + }), + }, + { + value: 'inside', + inputDisplay: i18n.translate('xpack.lens.pieChart.fitInsideOnlyLabel', { + defaultMessage: 'Inside only', + }), + }, + { + value: 'hide', + inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { + defaultMessage: 'Hide labels', + }), + }, +]; + +const categoryOptionsTreemap: CategoryOption[] = [ + { + value: 'default', + inputDisplay: i18n.translate('xpack.lens.pieChart.showTreemapCategoriesLabel', { + defaultMessage: 'Show labels', + }), + }, + { + value: 'hide', + inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { + defaultMessage: 'Hide labels', + }), + }, +]; + export const CHART_NAMES = { donut: { icon: LensIconChartDonut, label: i18n.translate('xpack.lens.pie.donutLabel', { defaultMessage: 'Donut', }), + partitionType: PartitionLayout.sunburst, groupLabel, + categoryOptions, }, pie: { icon: LensIconChartPie, label: i18n.translate('xpack.lens.pie.pielabel', { defaultMessage: 'Pie', }), - + partitionType: PartitionLayout.sunburst, groupLabel, + categoryOptions, }, treemap: { icon: LensIconChartTreemap, label: i18n.translate('xpack.lens.pie.treemaplabel', { defaultMessage: 'Treemap', }), - + partitionType: PartitionLayout.treemap, + groupLabel, + categoryOptions: categoryOptionsTreemap, + }, + mosaic: { + icon: LensIconChartMosaic, + label: i18n.translate('xpack.lens.pie.mosaiclabel', { + defaultMessage: 'Mosaic', + }), + partitionType: PartitionLayout.mosaic, groupLabel, + categoryOptions: [] as CategoryOption[], }, }; export const MAX_PIE_BUCKETS = 3; export const MAX_TREEMAP_BUCKETS = 2; +export const MAX_MOSAIC_BUCKETS = 2; export const DEFAULT_PERCENT_DECIMALS = 2; diff --git a/x-pack/plugins/lens/public/pie_visualization/render_function.tsx b/x-pack/plugins/lens/public/pie_visualization/render_function.tsx index 05b9ca9c34168..2bf9827bb976e 100644 --- a/x-pack/plugins/lens/public/pie_visualization/render_function.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/render_function.tsx @@ -16,7 +16,6 @@ import { Partition, PartitionConfig, PartitionLayer, - PartitionLayout, PartitionFillLabel, RecursivePartial, Position, @@ -29,7 +28,13 @@ import { VisualizationContainer } from '../visualization_container'; import { CHART_NAMES, DEFAULT_PERCENT_DECIMALS } from './constants'; import type { FormatFactory } from '../../common'; import type { PieExpressionProps } from '../../common/expressions'; -import { getSliceValue, getFilterContext } from './render_helpers'; +import { + getSliceValue, + getFilterContext, + isTreemapOrMosaicShape, + byDataColorPaletteMap, + extractUniqTermsMap, +} from './render_helpers'; import { EmptyPlaceholder } from '../shared_components'; import './visualization.scss'; import { @@ -110,6 +115,22 @@ export function PieComponent( }) ).length; + const shouldUseByDataPalette = !syncColors && ['mosaic'].includes(shape) && bucketColumns[1]?.id; + let byDataPalette: ReturnType<typeof byDataColorPaletteMap>; + if (shouldUseByDataPalette) { + byDataPalette = byDataColorPaletteMap( + firstTable, + bucketColumns[1].id, + paletteService.get(palette.name), + palette + ); + } + + let sortingMap: Record<string, number>; + if (shape === 'mosaic') { + sortingMap = extractUniqTermsMap(firstTable, bucketColumns[0].id); + } + const layers: PartitionLayer[] = bucketColumns.map((col, layerIndex) => { return { groupByRollup: (d: Datum) => d[col.id] ?? EMPTY_SLICE, @@ -124,13 +145,29 @@ export function PieComponent( return String(d); }, fillLabel, + sortPredicate: + shape === 'mosaic' + ? ([name1, node1], [, node2]) => { + // Sorting for first group + if (bucketColumns.length === 1 || (node1.children.length && name1 in sortingMap)) { + return sortingMap[name1]; + } + // Sorting for second group + return node2.value - node1.value; + } + : undefined, shape: { fillColor: (d) => { const seriesLayers: SeriesLayer[] = []; + // Mind the difference here: the contrast computation for the text ignores the alpha/opacity + // therefore change it for dask mode + const defaultColor = isDarkMode ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)'; + // Color is determined by round-robin on the index of the innermost slice // This has to be done recursively until we get to the slice index let tempParent: typeof d | typeof d['parent'] = d; + while (tempParent.parent && tempParent.depth > 0) { seriesLayers.unshift({ name: String(tempParent.parent.children[tempParent.sortIndex][0]), @@ -140,12 +177,14 @@ export function PieComponent( tempParent = tempParent.parent; } - if (shape === 'treemap') { + if (byDataPalette && seriesLayers[1]) { + return byDataPalette.getColor(seriesLayers[1].name) || defaultColor; + } + + if (isTreemapOrMosaicShape(shape)) { // Only highlight the innermost color of the treemap, as it accurately represents area if (layerIndex < bucketColumns.length - 1) { - // Mind the difference here: the contrast computation for the text ignores the alpha/opacity - // therefore change it for dask mode - return isDarkMode ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)'; + return defaultColor; } // only use the top level series layer for coloring if (seriesLayers.length > 1) { @@ -164,14 +203,14 @@ export function PieComponent( palette.params ); - return outputColor || 'rgba(0,0,0,0)'; + return outputColor || defaultColor; }, }, }; }); const config: RecursivePartial<PartitionConfig> = { - partitionLayout: shape === 'treemap' ? PartitionLayout.treemap : PartitionLayout.sunburst, + partitionLayout: CHART_NAMES[shape].partitionType, fontFamily: chartTheme.barSeriesStyle?.displayValue?.fontFamily, outerSizeRatio: 1, specialFirstInnermostSector: true, @@ -191,7 +230,7 @@ export function PieComponent( sectorLineWidth: 1.5, circlePadding: 4, }; - if (shape === 'treemap') { + if (isTreemapOrMosaicShape(shape)) { if (hideLabels || categoryDisplay === 'hide') { config.fillLabel = { textColor: 'rgba(0,0,0,0)' }; } @@ -279,7 +318,9 @@ export function PieComponent( showLegend={ !hideLabels && (legendDisplay === 'show' || - (legendDisplay === 'default' && bucketColumns.length > 1 && shape !== 'treemap')) + (legendDisplay === 'default' && + bucketColumns.length > 1 && + !isTreemapOrMosaicShape(shape))) } legendPosition={legendPosition || Position.Right} legendMaxDepth={nestedLegend ? undefined : 1 /* Color is based only on first layer */} diff --git a/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts b/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts index 7c55c0fa61931..dd27632b36e44 100644 --- a/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts +++ b/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts @@ -5,8 +5,16 @@ * 2.0. */ -import { Datatable } from 'src/plugins/expressions/public'; -import { getSliceValue, getFilterContext } from './render_helpers'; +import type { Datatable } from 'src/plugins/expressions/public'; +import type { PaletteDefinition, PaletteOutput } from 'src/plugins/charts/public'; + +import { + getSliceValue, + getFilterContext, + byDataColorPaletteMap, + extractUniqTermsMap, +} from './render_helpers'; +import { chartPluginMock } from '../../../../../src/plugins/charts/public/mocks'; describe('render helpers', () => { describe('#getSliceValue', () => { @@ -200,4 +208,113 @@ describe('render helpers', () => { }); }); }); + + describe('#extractUniqTermsMap', () => { + it('should extract map', () => { + const table: Datatable = { + type: 'datatable', + columns: [ + { id: 'a', name: 'A', meta: { type: 'string' } }, + { id: 'b', name: 'B', meta: { type: 'string' } }, + { id: 'c', name: 'C', meta: { type: 'number' } }, + ], + rows: [ + { a: 'Hi', b: 'Two', c: 2 }, + { a: 'Test', b: 'Two', c: 5 }, + { a: 'Foo', b: 'Three', c: 6 }, + ], + }; + expect(extractUniqTermsMap(table, 'a')).toMatchInlineSnapshot(` + Object { + "Foo": 2, + "Hi": 0, + "Test": 1, + } + `); + expect(extractUniqTermsMap(table, 'b')).toMatchInlineSnapshot(` + Object { + "Three": 1, + "Two": 0, + } + `); + }); + }); + + describe('#byDataColorPaletteMap', () => { + let datatable: Datatable; + let paletteDefinition: PaletteDefinition; + let palette: PaletteOutput; + const columnId = 'foo'; + + beforeEach(() => { + datatable = { + rows: [ + { + [columnId]: '1', + }, + { + [columnId]: '2', + }, + ], + } as unknown as Datatable; + paletteDefinition = chartPluginMock.createPaletteRegistry().get('default'); + palette = { type: 'palette' } as PaletteOutput; + }); + + it('should create byDataColorPaletteMap', () => { + expect(byDataColorPaletteMap(datatable, columnId, paletteDefinition, palette)) + .toMatchInlineSnapshot(` + Object { + "getColor": [Function], + } + `); + }); + + it('should get color', () => { + const colorPaletteMap = byDataColorPaletteMap( + datatable, + columnId, + paletteDefinition, + palette + ); + + expect(colorPaletteMap.getColor('1')).toBe('black'); + }); + + it('should return undefined in case if values not in datatable', () => { + const colorPaletteMap = byDataColorPaletteMap( + datatable, + columnId, + paletteDefinition, + palette + ); + + expect(colorPaletteMap.getColor('wrong')).toBeUndefined(); + }); + + it('should increase rankAtDepth for each new value', () => { + const colorPaletteMap = byDataColorPaletteMap( + datatable, + columnId, + paletteDefinition, + palette + ); + colorPaletteMap.getColor('1'); + colorPaletteMap.getColor('2'); + + expect(paletteDefinition.getCategoricalColor).toHaveBeenNthCalledWith( + 1, + [{ name: '1', rankAtDepth: 0, totalSeriesAtDepth: 2 }], + { behindText: false }, + undefined + ); + + expect(paletteDefinition.getCategoricalColor).toHaveBeenNthCalledWith( + 2, + [{ name: '2', rankAtDepth: 1, totalSeriesAtDepth: 2 }], + { behindText: false }, + undefined + ); + }); + }); }); diff --git a/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts b/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts index d2858efa90153..bdffacde65639 100644 --- a/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts +++ b/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts @@ -5,9 +5,11 @@ * 2.0. */ -import { Datum, LayerValue } from '@elastic/charts'; -import { Datatable, DatatableColumn } from 'src/plugins/expressions/public'; -import { LensFilterEvent } from '../types'; +import type { Datum, LayerValue } from '@elastic/charts'; +import type { Datatable, DatatableColumn } from 'src/plugins/expressions/public'; +import type { LensFilterEvent } from '../types'; +import type { PieChartTypes } from '../../common/expressions/pie_chart/types'; +import type { PaletteDefinition, PaletteOutput } from '../../../../../src/plugins/charts/public'; export function getSliceValue(d: Datum, metricColumn: DatatableColumn) { const value = d[metricColumn.id]; @@ -35,3 +37,61 @@ export function getFilterContext( })), }; } + +export const isPartitionShape = (shape: PieChartTypes | string) => + ['donut', 'pie', 'treemap', 'mosaic'].includes(shape); + +export const isTreemapOrMosaicShape = (shape: PieChartTypes | string) => + ['treemap', 'mosaic'].includes(shape); + +export const extractUniqTermsMap = (dataTable: Datatable, columnId: string) => + [...new Set(dataTable.rows.map((item) => item[columnId]))].reduce( + (acc, item, index) => ({ + ...acc, + [item]: index, + }), + {} + ); + +export const byDataColorPaletteMap = ( + dataTable: Datatable, + columnId: string, + paletteDefinition: PaletteDefinition, + { params }: PaletteOutput +) => { + const colorMap = new Map<string, string | undefined>( + dataTable.rows.map((item) => [String(item[columnId]), undefined]) + ); + let rankAtDepth = 0; + + return { + getColor: (item: unknown) => { + const key = String(item); + + if (colorMap.has(key)) { + let color = colorMap.get(key); + + if (color) { + return color; + } + color = + paletteDefinition.getCategoricalColor( + [ + { + name: key, + totalSeriesAtDepth: colorMap.size, + rankAtDepth: rankAtDepth++, + }, + ], + { + behindText: false, + }, + params + ) || undefined; + + colorMap.set(key, color); + return color; + } + }, + }; +}; diff --git a/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts b/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts index 5a57371eb6459..656d00960766e 100644 --- a/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts +++ b/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts @@ -6,9 +6,9 @@ */ import { PaletteOutput } from 'src/plugins/charts/public'; -import { DataType, SuggestionRequest } from '../types'; import { suggestions } from './suggestions'; -import { PieVisualizationState } from '../../common/expressions'; +import type { DataType, SuggestionRequest } from '../types'; +import type { PieLayerState, PieVisualizationState } from '../../common/expressions'; import { layerTypes } from '../../common'; describe('suggestions', () => { @@ -144,6 +144,38 @@ describe('suggestions', () => { ).toHaveLength(0); }); + it('should not reject histogram operations in case of switching between partition charts', () => { + expect( + suggestions({ + table: { + layerId: 'first', + isMultiRow: true, + columns: [ + { + columnId: 'b', + operation: { + label: 'Durations', + dataType: 'number' as DataType, + isBucketed: true, + scale: 'interval', + }, + }, + { + columnId: 'c', + operation: { label: 'Count', dataType: 'number' as DataType, isBucketed: false }, + }, + ], + changeType: 'initial', + }, + state: { + shape: 'mosaic', + layers: [{} as PieLayerState], + }, + keptLayerIds: ['first'], + }).length + ).toBeGreaterThan(0); + }); + it('should reject when there are too many buckets', () => { expect( suggestions({ @@ -272,7 +304,7 @@ describe('suggestions', () => { state: undefined, keptLayerIds: ['first'], }); - expect(currentSuggestions).toHaveLength(3); + expect(currentSuggestions).toHaveLength(4); expect(currentSuggestions.every((s) => s.hide)).toEqual(true); }); @@ -292,7 +324,7 @@ describe('suggestions', () => { state: undefined, keptLayerIds: ['first'], }); - expect(currentSuggestions).toHaveLength(3); + expect(currentSuggestions).toHaveLength(4); expect(currentSuggestions.every((s) => s.hide)).toEqual(true); }); @@ -721,4 +753,172 @@ describe('suggestions', () => { ); }); }); + + describe('mosaic', () => { + it('should reject when currently active and unchanged data', () => { + expect( + suggestions({ + table: { + layerId: 'first', + isMultiRow: true, + columns: [], + changeType: 'unchanged', + }, + state: { + shape: 'mosaic', + layers: [ + { + layerId: 'first', + layerType: layerTypes.DATA, + groups: [], + metric: 'a', + + numberDisplay: 'hidden', + categoryDisplay: 'default', + legendDisplay: 'default', + }, + ], + }, + keptLayerIds: ['first'], + }) + ).toHaveLength(0); + }); + + it('mosaic type should be added only in case of 2 groups', () => { + expect( + suggestions({ + table: { + layerId: 'first', + isMultiRow: true, + columns: [ + { + columnId: 'a', + operation: { label: 'Top 5', dataType: 'string' as DataType, isBucketed: true }, + }, + { + columnId: 'b', + operation: { label: 'Top 6', dataType: 'string' as DataType, isBucketed: true }, + }, + { + columnId: 'c', + operation: { label: 'Count', dataType: 'number' as DataType, isBucketed: false }, + }, + ], + changeType: 'unchanged', + }, + state: { + shape: 'treemap', + layers: [ + { + layerId: 'first', + layerType: layerTypes.DATA, + groups: ['a', 'b'], + metric: 'c', + + numberDisplay: 'hidden', + categoryDisplay: 'inside', + legendDisplay: 'show', + percentDecimals: 0, + legendMaxLines: 1, + truncateLegend: true, + nestedLegend: true, + }, + ], + }, + keptLayerIds: ['first'], + }).filter(({ hide, state }) => !hide && state.shape === 'mosaic') + ).toMatchInlineSnapshot(` + Array [ + Object { + "hide": false, + "previewIcon": "bullseye", + "score": 0.6, + "state": Object { + "layers": Array [ + Object { + "categoryDisplay": "default", + "groups": Array [ + "a", + "b", + ], + "layerId": "first", + "layerType": "data", + "legendDisplay": "show", + "legendMaxLines": 1, + "metric": "c", + "nestedLegend": true, + "numberDisplay": "hidden", + "percentDecimals": 0, + "truncateLegend": true, + }, + ], + "palette": undefined, + "shape": "mosaic", + }, + "title": "As Mosaic", + }, + ] + `); + }); + + it('mosaic type should be added only in case of 2 groups (negative test)', () => { + const meta: Parameters<typeof suggestions>[0] = { + table: { + layerId: 'first', + isMultiRow: true, + columns: [ + { + columnId: 'a', + operation: { label: 'Top 5', dataType: 'string' as DataType, isBucketed: true }, + }, + { + columnId: 'c', + operation: { label: 'Count', dataType: 'number' as DataType, isBucketed: false }, + }, + ], + changeType: 'unchanged', + }, + state: { + shape: 'pie', + layers: [ + { + layerId: 'first', + layerType: layerTypes.DATA, + groups: ['a', 'b'], + metric: 'c', + + numberDisplay: 'hidden', + categoryDisplay: 'inside', + legendDisplay: 'show', + percentDecimals: 0, + legendMaxLines: 1, + truncateLegend: true, + nestedLegend: true, + }, + ], + }, + keptLayerIds: ['first'], + }; + + // test with 1 group + expect( + suggestions(meta).filter(({ hide, state }) => !hide && state.shape === 'mosaic') + ).toMatchInlineSnapshot(`Array []`); + + meta.table.columns.push({ + columnId: 'b', + operation: { label: 'Top 6', dataType: 'string' as DataType, isBucketed: true }, + }); + + meta.table.columns.push({ + columnId: 'c', + operation: { label: 'Top 7', dataType: 'string' as DataType, isBucketed: true }, + }); + + // test with 3 groups + expect( + suggestions(meta).filter(({ hide, state }) => !hide && state.shape === 'mosaic') + ).toMatchInlineSnapshot(`Array []`); + }); + }); }); diff --git a/x-pack/plugins/lens/public/pie_visualization/suggestions.ts b/x-pack/plugins/lens/public/pie_visualization/suggestions.ts index 9078e18588a2f..30cd63752f420 100644 --- a/x-pack/plugins/lens/public/pie_visualization/suggestions.ts +++ b/x-pack/plugins/lens/public/pie_visualization/suggestions.ts @@ -7,17 +7,26 @@ import { partition } from 'lodash'; import { i18n } from '@kbn/i18n'; -import type { SuggestionRequest, VisualizationSuggestion } from '../types'; +import type { SuggestionRequest, TableSuggestionColumn, VisualizationSuggestion } from '../types'; import { layerTypes } from '../../common'; import type { PieVisualizationState } from '../../common/expressions'; -import { CHART_NAMES, MAX_PIE_BUCKETS, MAX_TREEMAP_BUCKETS } from './constants'; +import { CHART_NAMES, MAX_MOSAIC_BUCKETS, MAX_PIE_BUCKETS, MAX_TREEMAP_BUCKETS } from './constants'; +import { isPartitionShape, isTreemapOrMosaicShape } from './render_helpers'; + +function hasIntervalScale(columns: TableSuggestionColumn[]) { + return columns.some((col) => col.operation.scale === 'interval'); +} + +function shouldReject({ table, keptLayerIds, state }: SuggestionRequest<PieVisualizationState>) { + // Histograms are not good for pi. But we should not reject them on switching between partition charts. + const shouldRejectIntervals = + state?.shape && isPartitionShape(state.shape) ? false : hasIntervalScale(table.columns); -function shouldReject({ table, keptLayerIds }: SuggestionRequest<PieVisualizationState>) { return ( keptLayerIds.length > 1 || (keptLayerIds.length && table.layerId !== keptLayerIds[0]) || table.changeType === 'reorder' || - table.columns.some((col) => col.operation.scale === 'interval') // Histograms are not good for pie + shouldRejectIntervals ); } @@ -52,7 +61,7 @@ export function suggestions({ const results: Array<VisualizationSuggestion<PieVisualizationState>> = []; - if (groups.length <= MAX_PIE_BUCKETS && subVisualizationId !== 'treemap') { + if (groups.length <= MAX_PIE_BUCKETS && !isTreemapOrMosaicShape(subVisualizationId!)) { let newShape: PieVisualizationState['shape'] = (subVisualizationId as PieVisualizationState['shape']) || 'donut'; if (groups.length !== 1 && !subVisualizationId) { @@ -65,7 +74,7 @@ export function suggestions({ values: { chartName: CHART_NAMES[newShape].label }, description: 'chartName is already translated', }), - score: state && state.shape !== 'treemap' ? 0.6 : 0.4, + score: state && !isTreemapOrMosaicShape(state.shape) ? 0.6 : 0.4, state: { shape: newShape, palette: mainPalette || state?.palette, @@ -92,7 +101,10 @@ export function suggestions({ }, previewIcon: 'bullseye', // dont show suggestions for same type - hide: table.changeType === 'reduced' || (state && state.shape !== 'treemap'), + hide: + table.changeType === 'reduced' || + hasIntervalScale(groups) || + (state && !isTreemapOrMosaicShape(state.shape)), }; results.push(baseSuggestion); @@ -153,7 +165,54 @@ export function suggestions({ }, previewIcon: 'bullseye', // hide treemap suggestions from bottom bar, but keep them for chart switcher - hide: table.changeType === 'reduced' || !state || (state && state.shape === 'treemap'), + hide: + table.changeType === 'reduced' || + !state || + hasIntervalScale(groups) || + (state && state.shape === 'treemap'), + }); + } + + if ( + groups.length <= MAX_MOSAIC_BUCKETS && + (!subVisualizationId || subVisualizationId === 'mosaic') + ) { + results.push({ + title: i18n.translate('xpack.lens.pie.mosaicSuggestionLabel', { + defaultMessage: 'As Mosaic', + }), + score: state?.shape === 'mosaic' ? 0.7 : 0.5, + state: { + shape: 'mosaic', + palette: mainPalette || state?.palette, + layers: [ + state?.layers[0] + ? { + ...state.layers[0], + layerId: table.layerId, + groups: groups.map((col) => col.columnId), + metric: metricColumnId, + categoryDisplay: 'default', + layerType: layerTypes.DATA, + } + : { + layerId: table.layerId, + groups: groups.map((col) => col.columnId), + metric: metricColumnId, + numberDisplay: 'percent', + categoryDisplay: 'default', + legendDisplay: 'default', + nestedLegend: false, + layerType: layerTypes.DATA, + }, + ], + }, + previewIcon: 'bullseye', + hide: + groups.length !== 2 || + table.changeType === 'reduced' || + hasIntervalScale(groups) || + (state && state.shape === 'mosaic'), }); } diff --git a/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx b/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx index 685a8392dcfd3..23003a4ec3404 100644 --- a/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx @@ -17,7 +17,7 @@ import { } from '@elastic/eui'; import type { Position } from '@elastic/charts'; import type { PaletteRegistry } from 'src/plugins/charts/public'; -import { DEFAULT_PERCENT_DECIMALS } from './constants'; +import { DEFAULT_PERCENT_DECIMALS, CHART_NAMES } from './constants'; import type { PieVisualizationState, SharedPieLayerState } from '../../common/expressions'; import { VisualizationDimensionEditorProps, VisualizationToolbarProps } from '../types'; import { ToolbarPopover, LegendSettingsPopover, useDebouncedValue } from '../shared_components'; @@ -47,48 +47,6 @@ const numberOptions: Array<{ }, ]; -const categoryOptions: Array<{ - value: SharedPieLayerState['categoryDisplay']; - inputDisplay: string; -}> = [ - { - value: 'default', - inputDisplay: i18n.translate('xpack.lens.pieChart.showCategoriesLabel', { - defaultMessage: 'Inside or outside', - }), - }, - { - value: 'inside', - inputDisplay: i18n.translate('xpack.lens.pieChart.fitInsideOnlyLabel', { - defaultMessage: 'Inside only', - }), - }, - { - value: 'hide', - inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { - defaultMessage: 'Hide labels', - }), - }, -]; - -const categoryOptionsTreemap: Array<{ - value: SharedPieLayerState['categoryDisplay']; - inputDisplay: string; -}> = [ - { - value: 'default', - inputDisplay: i18n.translate('xpack.lens.pieChart.showTreemapCategoriesLabel', { - defaultMessage: 'Show labels', - }), - }, - { - value: 'hide', - inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { - defaultMessage: 'Hide labels', - }), - }, -]; - const legendOptions: Array<{ value: SharedPieLayerState['legendDisplay']; label: string; @@ -133,25 +91,27 @@ export function PieToolbar(props: VisualizationToolbarProps<PieVisualizationStat groupPosition="left" buttonDataTestSubj="lnsLabelsButton" > - <EuiFormRow - label={i18n.translate('xpack.lens.pieChart.labelPositionLabel', { - defaultMessage: 'Position', - })} - fullWidth - display="columnCompressed" - > - <EuiSuperSelect - compressed - valueOfSelected={layer.categoryDisplay} - options={state.shape === 'treemap' ? categoryOptionsTreemap : categoryOptions} - onChange={(option) => { - setState({ - ...state, - layers: [{ ...layer, categoryDisplay: option }], - }); - }} - /> - </EuiFormRow> + {state.shape && CHART_NAMES[state.shape].categoryOptions.length ? ( + <EuiFormRow + label={i18n.translate('xpack.lens.pieChart.labelPositionLabel', { + defaultMessage: 'Position', + })} + fullWidth + display="columnCompressed" + > + <EuiSuperSelect + compressed + valueOfSelected={layer.categoryDisplay} + options={CHART_NAMES[state.shape].categoryOptions} + onChange={(option) => { + setState({ + ...state, + layers: [{ ...layer, categoryDisplay: option }], + }); + }} + /> + </EuiFormRow> + ) : null} <EuiFormRow label={i18n.translate('xpack.lens.pieChart.numberLabels', { defaultMessage: 'Values', diff --git a/x-pack/plugins/lens/public/pie_visualization/visualization.tsx b/x-pack/plugins/lens/public/pie_visualization/visualization.tsx index ea89ef0bfb854..f72a6e5bef11e 100644 --- a/x-pack/plugins/lens/public/pie_visualization/visualization.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/visualization.tsx @@ -10,7 +10,12 @@ import { render } from 'react-dom'; import { i18n } from '@kbn/i18n'; import { FormattedMessage, I18nProvider } from '@kbn/i18n/react'; import type { PaletteRegistry } from 'src/plugins/charts/public'; -import type { Visualization, OperationMetadata, AccessorConfig } from '../types'; +import type { + Visualization, + OperationMetadata, + AccessorConfig, + VisualizationDimensionGroupConfig, +} from '../types'; import { toExpression, toPreviewExpression } from './to_expression'; import type { PieLayerState, PieVisualizationState } from '../../common/expressions'; import { layerTypes } from '../../common'; @@ -35,6 +40,24 @@ const bucketedOperations = (op: OperationMetadata) => op.isBucketed; const numberMetricOperations = (op: OperationMetadata) => !op.isBucketed && op.dataType === 'number'; +const applyPaletteToColumnConfig = ( + columns: AccessorConfig[], + { shape, palette }: PieVisualizationState, + paletteService: PaletteRegistry +) => { + const colorPickerIndex = shape === 'mosaic' ? columns.length - 1 : 0; + + if (colorPickerIndex >= 0) { + columns[colorPickerIndex] = { + columnId: columns[colorPickerIndex].columnId, + triggerIcon: 'colorBy', + palette: paletteService + .get(palette?.name || 'default') + .getCategoricalColors(10, palette?.params), + }; + } +}; + export const getPieVisualization = ({ paletteService, }: { @@ -61,6 +84,13 @@ export const getPieVisualization = ({ label: CHART_NAMES.treemap.label, groupLabel: CHART_NAMES.treemap.groupLabel, }, + { + id: 'mosaic', + icon: CHART_NAMES.mosaic.icon, + label: CHART_NAMES.mosaic.label, + showExperimentalBadge: true, + groupLabel: CHART_NAMES.mosaic.groupLabel, + }, ], getVisualizationTypeId(state) { @@ -79,13 +109,7 @@ export const getPieVisualization = ({ }, getDescription(state) { - if (state.shape === 'treemap') { - return CHART_NAMES.treemap; - } - if (state.shape === 'donut') { - return CHART_NAMES.donut; - } - return CHART_NAMES.pie; + return CHART_NAMES[state.shape] ?? CHART_NAMES.pie; }, switchVisualizationType: (visualizationTypeId, state) => ({ @@ -122,76 +146,58 @@ export const getPieVisualization = ({ const sortedColumns: AccessorConfig[] = Array.from( new Set(originalOrder.concat(layer.groups)) ).map((accessor) => ({ columnId: accessor })); - if (sortedColumns.length > 0) { - sortedColumns[0] = { - columnId: sortedColumns[0].columnId, - triggerIcon: 'colorBy', - palette: paletteService - .get(state.palette?.name || 'default') - .getCategoricalColors(10, state.palette?.params), - }; + + if (sortedColumns.length) { + applyPaletteToColumnConfig(sortedColumns, state, paletteService); } - if (state.shape === 'treemap') { - return { - groups: [ - { - groupId: 'groups', + const getSliceByGroup = (): VisualizationDimensionGroupConfig => { + const baseProps = { + required: true, + groupId: 'groups', + accessors: sortedColumns, + enableDimensionEditor: true, + filterOperations: bucketedOperations, + }; + + switch (state.shape) { + case 'mosaic': + case 'treemap': + return { + ...baseProps, groupLabel: i18n.translate('xpack.lens.pie.treemapGroupLabel', { defaultMessage: 'Group by', }), - layerId, - accessors: sortedColumns, supportsMoreColumns: sortedColumns.length < MAX_TREEMAP_BUCKETS, - filterOperations: bucketedOperations, - required: true, dataTestSubj: 'lnsPie_groupByDimensionPanel', - enableDimensionEditor: true, - }, - { - groupId: 'metric', - groupLabel: i18n.translate('xpack.lens.pie.groupsizeLabel', { - defaultMessage: 'Size by', + requiredMinDimensionCount: state.shape === 'mosaic' ? 2 : undefined, + }; + default: + return { + ...baseProps, + groupLabel: i18n.translate('xpack.lens.pie.sliceGroupLabel', { + defaultMessage: 'Slice by', }), - layerId, - accessors: layer.metric ? [{ columnId: layer.metric }] : [], - supportsMoreColumns: !layer.metric, - filterOperations: numberMetricOperations, - required: true, - dataTestSubj: 'lnsPie_sizeByDimensionPanel', - }, - ], - }; - } + supportsMoreColumns: sortedColumns.length < MAX_PIE_BUCKETS, + dataTestSubj: 'lnsPie_sliceByDimensionPanel', + }; + } + }; + + const getMetricGroup = (): VisualizationDimensionGroupConfig => ({ + groupId: 'metric', + groupLabel: i18n.translate('xpack.lens.pie.groupsizeLabel', { + defaultMessage: 'Size by', + }), + accessors: layer.metric ? [{ columnId: layer.metric }] : [], + supportsMoreColumns: !layer.metric, + filterOperations: numberMetricOperations, + required: true, + dataTestSubj: 'lnsPie_sizeByDimensionPanel', + }); return { - groups: [ - { - groupId: 'groups', - groupLabel: i18n.translate('xpack.lens.pie.sliceGroupLabel', { - defaultMessage: 'Slice by', - }), - layerId, - accessors: sortedColumns, - supportsMoreColumns: sortedColumns.length < MAX_PIE_BUCKETS, - filterOperations: bucketedOperations, - required: true, - dataTestSubj: 'lnsPie_sliceByDimensionPanel', - enableDimensionEditor: true, - }, - { - groupId: 'metric', - groupLabel: i18n.translate('xpack.lens.pie.groupsizeLabel', { - defaultMessage: 'Size by', - }), - layerId, - accessors: layer.metric ? [{ columnId: layer.metric }] : [], - supportsMoreColumns: !layer.metric, - filterOperations: numberMetricOperations, - required: true, - dataTestSubj: 'lnsPie_sizeByDimensionPanel', - }, - ], + groups: [getSliceByGroup(), getMetricGroup()], }; }, diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index a9a9539064659..ab6f1d8d55082 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -470,6 +470,7 @@ export type VisualizationDimensionGroupConfig = SharedDimensionProps & { supportsMoreColumns: boolean; /** If required, a warning will appear if accessors are empty */ required?: boolean; + requiredMinDimensionCount?: number; dataTestSubj?: string; /** diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a27ec93d02c98..a681581edbf82 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -14116,7 +14116,6 @@ "xpack.lens.editorFrame.noColorIndicatorLabel": "このディメンションには個別の色がありません", "xpack.lens.editorFrame.paletteColorIndicatorLabel": "このディメンションはパレットを使用しています", "xpack.lens.editorFrame.previewErrorLabel": "レンダリングのプレビューに失敗しました", - "xpack.lens.editorFrame.requiredDimensionWarningLabel": "必要な次元", "xpack.lens.editorFrame.suggestionPanelTitle": "提案", "xpack.lens.editorFrame.workspaceLabel": "ワークスペース", "xpack.lens.embeddable.failure": "ビジュアライゼーションを表示できませんでした", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index e63a873cac3e4..ab953dcdb49a2 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -14304,7 +14304,6 @@ "xpack.lens.editorFrame.noColorIndicatorLabel": "此维度没有单独的颜色", "xpack.lens.editorFrame.paletteColorIndicatorLabel": "此维度正在使用调色板", "xpack.lens.editorFrame.previewErrorLabel": "预览呈现失败", - "xpack.lens.editorFrame.requiredDimensionWarningLabel": "所需尺寸", "xpack.lens.editorFrame.suggestionPanelTitle": "建议", "xpack.lens.editorFrame.workspaceLabel": "工作区", "xpack.lens.embeddable.failure": "无法显示可视化", From 38e0cb94a4dccaad1f5a62ed8eed10a7485f648e Mon Sep 17 00:00:00 2001 From: Oliver Gupte <ogupte@users.noreply.github.com> Date: Mon, 22 Nov 2021 08:45:53 -0500 Subject: [PATCH 104/114] [APM] Fixes navigation bugs in APM tutorial/onboarding (#119249) --- .../components/tutorial/instruction_set.js | 5 +- .../services/tutorials/lib/tutorial_schema.ts | 1 + .../tutorial_fleet_instructions/index.tsx | 30 +++- .../plugins/apm/server/routes/fleet/route.ts | 13 +- .../apm/server/tutorial/envs/elastic_cloud.ts | 17 ++- .../apm/server/tutorial/envs/on_prem.ts | 124 +--------------- .../on_prem_apm_server_instruction_set.ts | 136 ++++++++++++++++++ x-pack/plugins/apm/server/tutorial/index.ts | 6 +- 8 files changed, 197 insertions(+), 135 deletions(-) create mode 100644 x-pack/plugins/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts diff --git a/src/plugins/home/public/application/components/tutorial/instruction_set.js b/src/plugins/home/public/application/components/tutorial/instruction_set.js index 822c60cdc31ba..e434f2483fd19 100644 --- a/src/plugins/home/public/application/components/tutorial/instruction_set.js +++ b/src/plugins/home/public/application/components/tutorial/instruction_set.js @@ -37,6 +37,7 @@ class InstructionSetUi extends React.Component { return { id: variant.id, name: getDisplayText(variant.id), + initialSelected: variant.initialSelected, }; }); @@ -45,7 +46,8 @@ class InstructionSetUi extends React.Component { }; if (this.tabs.length > 0) { - this.state.selectedTabId = this.tabs[0].id; + this.state.selectedTabId = + this.tabs.find(({ initialSelected }) => initialSelected)?.id ?? this.tabs[0].id; } } @@ -298,6 +300,7 @@ const instructionShape = PropTypes.shape({ const instructionVariantShape = PropTypes.shape({ id: PropTypes.string.isRequired, instructions: PropTypes.arrayOf(instructionShape).isRequired, + initialSelected: PropTypes.bool, }); const statusCheckConfigShape = PropTypes.shape({ diff --git a/src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts b/src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts index 114afa644c0c2..f05c0af01cb1e 100644 --- a/src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts +++ b/src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts @@ -63,6 +63,7 @@ export type Instruction = TypeOf<typeof instructionSchema>; const instructionVariantSchema = schema.object({ id: schema.string(), instructions: schema.arrayOf(instructionSchema), + initialSelected: schema.maybe(schema.boolean()), }); export type InstructionVariant = TypeOf<typeof instructionVariantSchema>; diff --git a/x-pack/plugins/apm/public/tutorial/tutorial_fleet_instructions/index.tsx b/x-pack/plugins/apm/public/tutorial/tutorial_fleet_instructions/index.tsx index a922a10d6d6fc..69f3c4bbbc407 100644 --- a/x-pack/plugins/apm/public/tutorial/tutorial_fleet_instructions/index.tsx +++ b/x-pack/plugins/apm/public/tutorial/tutorial_fleet_instructions/index.tsx @@ -34,7 +34,7 @@ const CentralizedContainer = styled.div` align-items: center; `; -type APIResponseType = APIReturnType<'GET /internal/apm/fleet/has_data'>; +type APIResponseType = APIReturnType<'GET /internal/apm/fleet/migration_check'>; function TutorialFleetInstructions({ http, basePath, isDarkTheme }: Props) { const [data, setData] = useState<APIResponseType | undefined>(); @@ -44,7 +44,7 @@ function TutorialFleetInstructions({ http, basePath, isDarkTheme }: Props) { async function fetchData() { setIsLoading(true); try { - const response = await http.get('/internal/apm/fleet/has_data'); + const response = await http.get('/internal/apm/fleet/migration_check'); setData(response as APIResponseType); } catch (e) { setIsLoading(false); @@ -55,6 +55,22 @@ function TutorialFleetInstructions({ http, basePath, isDarkTheme }: Props) { fetchData(); }, [http]); + const hasApmIntegrations = !!data?.has_apm_integrations; + const cloudApmMigrationEnabled = !!data?.cloud_apm_migration_enabled; + const hasCloudAgentPolicy = !!data?.has_cloud_agent_policy; + const cloudApmPackagePolicy = data?.cloud_apm_package_policy; + const hasCloudApmPackagePolicy = !!cloudApmPackagePolicy; + const hasRequiredRole = !!data?.has_required_role; + const shouldLinkToMigration = + cloudApmMigrationEnabled && + hasCloudAgentPolicy && + !hasCloudApmPackagePolicy && + hasRequiredRole; + + const apmIntegrationHref = shouldLinkToMigration + ? `${basePath}/app/apm/settings/schema` + : `${basePath}/app/integrations/detail/apm-${SUPPORTED_APM_PACKAGE_VERSION}/overview`; + if (isLoading) { return ( <CentralizedContainer> @@ -64,9 +80,13 @@ function TutorialFleetInstructions({ http, basePath, isDarkTheme }: Props) { } // When APM integration is enable in Fleet - if (data?.hasData) { + if (hasApmIntegrations) { return ( - <EuiButton iconType="gear" fill href={`${basePath}/app/fleet#/policies`}> + <EuiButton + iconType="gear" + fill + href={`${basePath}/app/integrations/detail/apm-${SUPPORTED_APM_PACKAGE_VERSION}/policies`} + > {i18n.translate( 'xpack.apm.tutorial.apmServer.fleet.manageApmIntegration.button', { @@ -99,7 +119,7 @@ function TutorialFleetInstructions({ http, basePath, isDarkTheme }: Props) { <EuiButton iconType="analyzeEvent" color="success" - href={`${basePath}/app/integrations#/detail/apm-${SUPPORTED_APM_PACKAGE_VERSION}/overview`} + href={apmIntegrationHref} > {i18n.translate( 'xpack.apm.tutorial.apmServer.fleet.apmIntegration.button', diff --git a/x-pack/plugins/apm/server/routes/fleet/route.ts b/x-pack/plugins/apm/server/routes/fleet/route.ts index e9e7f2254bcfe..b64d1764c8465 100644 --- a/x-pack/plugins/apm/server/routes/fleet/route.ts +++ b/x-pack/plugins/apm/server/routes/fleet/route.ts @@ -128,14 +128,16 @@ const getMigrationCheckRoute = createApmServerRoute({ endpoint: 'GET /internal/apm/fleet/migration_check', options: { tags: ['access:apm'] }, handler: async (resources) => { - const { plugins, context, config, request } = resources; + const { core, plugins, context, config, request } = resources; const cloudApmMigrationEnabled = config.agent.migrations.enabled; if (!plugins.fleet || !plugins.security) { throw Boom.internal(FLEET_SECURITY_REQUIRED_MESSAGE); } const savedObjectsClient = context.core.savedObjects.client; - const fleetPluginStart = await plugins.fleet.start(); - const securityPluginStart = await plugins.security.start(); + const [fleetPluginStart, securityPluginStart] = await Promise.all([ + plugins.fleet.start(), + plugins.security.start(), + ]); const hasRequiredRole = isSuperuser({ securityPluginStart, request }); const cloudAgentPolicy = hasRequiredRole ? await getCloudAgentPolicy({ @@ -144,12 +146,17 @@ const getMigrationCheckRoute = createApmServerRoute({ }) : undefined; const apmPackagePolicy = getApmPackagePolicy(cloudAgentPolicy); + const packagePolicies = await getApmPackgePolicies({ + core, + fleetPluginStart, + }); return { has_cloud_agent_policy: !!cloudAgentPolicy, has_cloud_apm_package_policy: !!apmPackagePolicy, cloud_apm_migration_enabled: cloudApmMigrationEnabled, has_required_role: hasRequiredRole, cloud_apm_package_policy: apmPackagePolicy, + has_apm_integrations: packagePolicies.total > 0, }; }, }); diff --git a/x-pack/plugins/apm/server/tutorial/envs/elastic_cloud.ts b/x-pack/plugins/apm/server/tutorial/envs/elastic_cloud.ts index c62e42f222194..654c0e675a053 100644 --- a/x-pack/plugins/apm/server/tutorial/envs/elastic_cloud.ts +++ b/x-pack/plugins/apm/server/tutorial/envs/elastic_cloud.ts @@ -25,10 +25,18 @@ import { createPhpAgentInstructions, } from '../../../common/tutorial/instructions/apm_agent_instructions'; import { CloudSetup } from '../../../../cloud/server'; +import { APMConfig } from '../..'; +import { getOnPremApmServerInstructionSet } from './on_prem_apm_server_instruction_set'; -export function createElasticCloudInstructions( - cloudSetup?: CloudSetup -): TutorialSchema['elasticCloud'] { +export function createElasticCloudInstructions({ + cloudSetup, + apmConfig, + isFleetPluginEnabled, +}: { + cloudSetup?: CloudSetup; + apmConfig: APMConfig; + isFleetPluginEnabled: boolean; +}): TutorialSchema['elasticCloud'] { const apmServerUrl = cloudSetup?.apm.url; const instructionSets = []; @@ -36,6 +44,9 @@ export function createElasticCloudInstructions( instructionSets.push(getApmServerInstructionSet(cloudSetup)); } + instructionSets.push( + getOnPremApmServerInstructionSet({ apmConfig, isFleetPluginEnabled }) + ); instructionSets.push(getApmAgentInstructionSet(cloudSetup)); return { diff --git a/x-pack/plugins/apm/server/tutorial/envs/on_prem.ts b/x-pack/plugins/apm/server/tutorial/envs/on_prem.ts index 8051ef2a72b6a..18e30fe07808a 100644 --- a/x-pack/plugins/apm/server/tutorial/envs/on_prem.ts +++ b/x-pack/plugins/apm/server/tutorial/envs/on_prem.ts @@ -23,15 +23,7 @@ import { createRackAgentInstructions, createRailsAgentInstructions, } from '../../../common/tutorial/instructions/apm_agent_instructions'; -import { - createDownloadServerDeb, - createDownloadServerOsx, - createDownloadServerRpm, - createEditConfig, - createStartServerUnix, - createStartServerUnixSysv, - createWindowsServerInstructions, -} from '../../../common/tutorial/instructions/apm_server_instructions'; +import { getOnPremApmServerInstructionSet } from './on_prem_apm_server_instruction_set'; export function onPremInstructions({ apmConfig, @@ -40,121 +32,9 @@ export function onPremInstructions({ apmConfig: APMConfig; isFleetPluginEnabled: boolean; }): InstructionsSchema { - const EDIT_CONFIG = createEditConfig(); - const START_SERVER_UNIX = createStartServerUnix(); - const START_SERVER_UNIX_SYSV = createStartServerUnixSysv(); - return { instructionSets: [ - { - title: i18n.translate('xpack.apm.tutorial.apmServer.title', { - defaultMessage: 'APM Server', - }), - callOut: { - title: i18n.translate('xpack.apm.tutorial.apmServer.callOut.title', { - defaultMessage: 'Important: Updating to 7.0 or higher', - }), - message: i18n.translate( - 'xpack.apm.tutorial.apmServer.callOut.message', - { - defaultMessage: `Please make sure your APM Server is updated to 7.0 or higher. \ - You can also migrate your 6.x data with the migration assistant found in Kibana's management section.`, - } - ), - iconType: 'alert', - }, - instructionVariants: [ - { - id: INSTRUCTION_VARIANT.DEB, - instructions: [ - createDownloadServerDeb(), - EDIT_CONFIG, - START_SERVER_UNIX_SYSV, - ], - }, - { - id: INSTRUCTION_VARIANT.RPM, - instructions: [ - createDownloadServerRpm(), - EDIT_CONFIG, - START_SERVER_UNIX_SYSV, - ], - }, - { - id: INSTRUCTION_VARIANT.OSX, - instructions: [ - createDownloadServerOsx(), - EDIT_CONFIG, - START_SERVER_UNIX, - ], - }, - { - id: INSTRUCTION_VARIANT.WINDOWS, - instructions: createWindowsServerInstructions(), - }, - // hides fleet section when plugin is disabled - ...(isFleetPluginEnabled - ? [ - { - id: INSTRUCTION_VARIANT.FLEET, - instructions: [ - { - title: i18n.translate('xpack.apm.tutorial.fleet.title', { - defaultMessage: 'Fleet', - }), - customComponentName: 'TutorialFleetInstructions', - }, - ], - }, - ] - : []), - ], - statusCheck: { - title: i18n.translate( - 'xpack.apm.tutorial.apmServer.statusCheck.title', - { - defaultMessage: 'APM Server status', - } - ), - text: i18n.translate( - 'xpack.apm.tutorial.apmServer.statusCheck.text', - { - defaultMessage: - 'Make sure APM Server is running before you start implementing the APM agents.', - } - ), - btnLabel: i18n.translate( - 'xpack.apm.tutorial.apmServer.statusCheck.btnLabel', - { - defaultMessage: 'Check APM Server status', - } - ), - success: i18n.translate( - 'xpack.apm.tutorial.apmServer.statusCheck.successMessage', - { - defaultMessage: 'You have correctly setup APM Server', - } - ), - error: i18n.translate( - 'xpack.apm.tutorial.apmServer.statusCheck.errorMessage', - { - defaultMessage: - 'No APM Server detected. Please make sure it is running and you have updated to 7.0 or higher.', - } - ), - esHitsCheck: { - index: apmConfig.indices.onboarding, - query: { - bool: { - filter: [ - { term: { 'processor.event': 'onboarding' } }, - { range: { 'observer.version_major': { gte: 7 } } }, - ], - }, - }, - }, - }, - }, + getOnPremApmServerInstructionSet({ apmConfig, isFleetPluginEnabled }), { title: i18n.translate('xpack.apm.tutorial.apmAgents.title', { defaultMessage: 'APM Agents', diff --git a/x-pack/plugins/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts b/x-pack/plugins/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts new file mode 100644 index 0000000000000..b9c491082f787 --- /dev/null +++ b/x-pack/plugins/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts @@ -0,0 +1,136 @@ +/* + * Copyright 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 { APMConfig } from '../..'; +import { + InstructionsSchema, + INSTRUCTION_VARIANT, +} from '../../../../../../src/plugins/home/server'; +import { + createDownloadServerDeb, + createDownloadServerOsx, + createDownloadServerRpm, + createEditConfig, + createStartServerUnix, + createStartServerUnixSysv, + createWindowsServerInstructions, +} from '../../../common/tutorial/instructions/apm_server_instructions'; + +const EDIT_CONFIG = createEditConfig(); +const START_SERVER_UNIX = createStartServerUnix(); +const START_SERVER_UNIX_SYSV = createStartServerUnixSysv(); + +export function getOnPremApmServerInstructionSet({ + apmConfig, + isFleetPluginEnabled, +}: { + apmConfig: APMConfig; + isFleetPluginEnabled: boolean; +}): InstructionsSchema['instructionSets'][0] { + return { + title: i18n.translate('xpack.apm.tutorial.apmServer.title', { + defaultMessage: 'APM Server', + }), + callOut: { + title: i18n.translate('xpack.apm.tutorial.apmServer.callOut.title', { + defaultMessage: 'Important: Updating to 7.0 or higher', + }), + message: i18n.translate('xpack.apm.tutorial.apmServer.callOut.message', { + defaultMessage: `Please make sure your APM Server is updated to 7.0 or higher. \ + You can also migrate your 6.x data with the migration assistant found in Kibana's management section.`, + }), + iconType: 'alert', + }, + instructionVariants: [ + { + id: INSTRUCTION_VARIANT.DEB, + instructions: [ + createDownloadServerDeb(), + EDIT_CONFIG, + START_SERVER_UNIX_SYSV, + ], + }, + { + id: INSTRUCTION_VARIANT.RPM, + instructions: [ + createDownloadServerRpm(), + EDIT_CONFIG, + START_SERVER_UNIX_SYSV, + ], + }, + { + id: INSTRUCTION_VARIANT.OSX, + instructions: [ + createDownloadServerOsx(), + EDIT_CONFIG, + START_SERVER_UNIX, + ], + }, + { + id: INSTRUCTION_VARIANT.WINDOWS, + instructions: createWindowsServerInstructions(), + }, + // hides fleet section when plugin is disabled + ...(isFleetPluginEnabled + ? [ + { + id: INSTRUCTION_VARIANT.FLEET, + instructions: [ + { + title: i18n.translate('xpack.apm.tutorial.fleet.title', { + defaultMessage: 'Fleet', + }), + customComponentName: 'TutorialFleetInstructions', + }, + ], + initialSelected: true, + }, + ] + : []), + ], + statusCheck: { + title: i18n.translate('xpack.apm.tutorial.apmServer.statusCheck.title', { + defaultMessage: 'APM Server status', + }), + text: i18n.translate('xpack.apm.tutorial.apmServer.statusCheck.text', { + defaultMessage: + 'Make sure APM Server is running before you start implementing the APM agents.', + }), + btnLabel: i18n.translate( + 'xpack.apm.tutorial.apmServer.statusCheck.btnLabel', + { + defaultMessage: 'Check APM Server status', + } + ), + success: i18n.translate( + 'xpack.apm.tutorial.apmServer.statusCheck.successMessage', + { + defaultMessage: 'You have correctly setup APM Server', + } + ), + error: i18n.translate( + 'xpack.apm.tutorial.apmServer.statusCheck.errorMessage', + { + defaultMessage: + 'No APM Server detected. Please make sure it is running and you have updated to 7.0 or higher.', + } + ), + esHitsCheck: { + index: apmConfig.indices.onboarding, + query: { + bool: { + filter: [ + { term: { 'processor.event': 'onboarding' } }, + { range: { 'observer.version_major': { gte: 7 } } }, + ], + }, + }, + }, + }, + }; +} diff --git a/x-pack/plugins/apm/server/tutorial/index.ts b/x-pack/plugins/apm/server/tutorial/index.ts index 5d3ff8636df4d..c9fc7eb6467d4 100644 --- a/x-pack/plugins/apm/server/tutorial/index.ts +++ b/x-pack/plugins/apm/server/tutorial/index.ts @@ -107,7 +107,11 @@ It allows you to monitor the performance of thousands of applications in real ti artifacts, customStatusCheckName: 'apm_fleet_server_status_check', onPrem: onPremInstructions({ apmConfig, isFleetPluginEnabled }), - elasticCloud: createElasticCloudInstructions(cloud), + elasticCloud: createElasticCloudInstructions({ + apmConfig, + isFleetPluginEnabled, + cloudSetup: cloud, + }), previewImagePath: '/plugins/apm/assets/apm.png', savedObjects, savedObjectsInstallMsg: i18n.translate( From 562384f6929f8fd52bb51f5ba5436bbddd2a2383 Mon Sep 17 00:00:00 2001 From: Andrew Tate <andrew.tate@elastic.co> Date: Mon, 22 Nov 2021 08:06:14 -0600 Subject: [PATCH 105/114] [Vega] timelion & vega apply dataview from first filter (#119209) --- .../public/helpers/timelion_request_handler.ts | 13 +++++++++++-- .../vega/public/vega_request_handler.ts | 17 ++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/plugins/vis_types/timelion/public/helpers/timelion_request_handler.ts b/src/plugins/vis_types/timelion/public/helpers/timelion_request_handler.ts index e9a076b4dc832..69a818b4ae16e 100644 --- a/src/plugins/vis_types/timelion/public/helpers/timelion_request_handler.ts +++ b/src/plugins/vis_types/timelion/public/helpers/timelion_request_handler.ts @@ -8,11 +8,12 @@ import { i18n } from '@kbn/i18n'; import type { KibanaExecutionContext } from 'kibana/public'; +import { DataView } from 'src/plugins/data/common'; import { KibanaContext, TimeRange, Filter, esQuery, Query } from '../../../../data/public'; import { TimelionVisDependencies } from '../plugin'; import { getTimezone } from './get_timezone'; import { TimelionVisParams } from '../timelion_vis_fn'; -import { getDataSearch } from '../helpers/plugin_services'; +import { getDataSearch, getIndexPatterns } from '../helpers/plugin_services'; import { VisSeries } from '../../common/vis_data'; interface Stats { @@ -81,6 +82,14 @@ export function getTimelionRequestHandler({ ); } + let dataView: DataView | undefined; + const firstFilterIndex = filters[0]?.meta.index; + if (firstFilterIndex) { + dataView = await getIndexPatterns() + .get(firstFilterIndex) + .catch(() => undefined); + } + const esQueryConfigs = esQuery.getEsQueryConfig(uiSettings); // parse the time range client side to make sure it behaves like other charts @@ -100,7 +109,7 @@ export function getTimelionRequestHandler({ sheet: [expression], extended: { es: { - filter: esQuery.buildEsQuery(undefined, query, filters, esQueryConfigs), + filter: esQuery.buildEsQuery(dataView, query, filters, esQueryConfigs), }, }, time: { diff --git a/src/plugins/vis_types/vega/public/vega_request_handler.ts b/src/plugins/vis_types/vega/public/vega_request_handler.ts index 2ae7169c2f732..78552ea2a170a 100644 --- a/src/plugins/vis_types/vega/public/vega_request_handler.ts +++ b/src/plugins/vis_types/vega/public/vega_request_handler.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ import type { KibanaExecutionContext } from 'src/core/public'; +import { DataView } from 'src/plugins/data/common'; import { Filter, esQuery, TimeRange, Query } from '../../../data/public'; import { SearchAPI } from './data_model/search_api'; @@ -18,7 +19,7 @@ import { VegaInspectorAdapters } from './vega_inspector'; interface VegaRequestHandlerParams { query: Query; - filters: Filter; + filters: Filter[]; timeRange: TimeRange; visParams: VisParams; searchSessionId?: string; @@ -46,14 +47,14 @@ export function createVegaRequestHandler( searchSessionId, executionContext, }: VegaRequestHandlerParams) { - if (!searchAPI) { - const { search, indexPatterns } = getData(); + const { dataViews, search } = getData(); + if (!searchAPI) { searchAPI = new SearchAPI( { uiSettings, search, - indexPatterns, + indexPatterns: dataViews, injectedMetadata: getInjectedMetadata(), }, context.abortSignal, @@ -65,8 +66,14 @@ export function createVegaRequestHandler( timeCache.setTimeRange(timeRange); + let dataView: DataView; + const firstFilterIndex = filters[0]?.meta.index; + if (firstFilterIndex) { + dataView = await dataViews.get(firstFilterIndex).catch(() => undefined); + } + const esQueryConfigs = esQuery.getEsQueryConfig(uiSettings); - const filtersDsl = esQuery.buildEsQuery(undefined, query, filters, esQueryConfigs); + const filtersDsl = esQuery.buildEsQuery(dataView, query, filters, esQueryConfigs); const { VegaParser } = await import('./data_model/vega_parser'); const vp = new VegaParser(visParams.spec, searchAPI, timeCache, filtersDsl, getServiceSettings); From c5805708e336cd3d27e29168290e7e82609b65ba Mon Sep 17 00:00:00 2001 From: Shahzad <shahzad.muhammad@elastic.co> Date: Mon, 22 Nov 2021 15:41:51 +0100 Subject: [PATCH 106/114] [Exploratory view] Remove experimental bage (#119275) --- .../components/app/RumDashboard/ActionMenu/index.tsx | 2 +- .../apm_service_template/analyze_data_button.tsx | 2 +- .../shared/exploratory_view/header/header.tsx | 12 ++---------- x-pack/plugins/translations/translations/ja-JP.json | 1 - x-pack/plugins/translations/translations/zh-CN.json | 1 - .../components/common/header/action_menu_content.tsx | 2 +- 6 files changed, 5 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/ActionMenu/index.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/ActionMenu/index.tsx index 2a1badd0ae1d8..6e18eb61f355c 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/ActionMenu/index.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/ActionMenu/index.tsx @@ -26,7 +26,7 @@ const ANALYZE_MESSAGE = i18n.translate( 'xpack.apm.analyzeDataButtonLabel.message', { defaultMessage: - 'EXPERIMENTAL - Explore Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.', + 'Explore Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.', } ); diff --git a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/analyze_data_button.tsx b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/analyze_data_button.tsx index 5fa37050e71a6..ec54fa1f228ce 100644 --- a/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/analyze_data_button.tsx +++ b/x-pack/plugins/apm/public/components/routing/templates/apm_service_template/analyze_data_button.tsx @@ -79,7 +79,7 @@ export function AnalyzeDataButton() { position="top" content={i18n.translate('xpack.apm.analyzeDataButton.tooltip', { defaultMessage: - 'EXPERIMENTAL - Explore Data allows you to select and filter result data in any dimension, and look for the cause or impact of performance problems', + 'Explore Data allows you to select and filter result data in any dimension, and look for the cause or impact of performance problems', })} > <EuiButtonEmpty href={href} iconType="visBarVerticalStacked"> diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx index 22245f111293c..8ef3f228a5854 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiBetaBadge, EuiButton, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; import { TypedLensByValueInput } from '../../../../../../lens/public'; import { useSeriesStorage } from '../hooks/use_series_storage'; import { ExpViewActionMenu } from '../components/action_menu'; @@ -34,15 +34,7 @@ export function ExploratoryViewHeader({ lensAttributes, chartTimeRange }: Props) <h2> {i18n.translate('xpack.observability.expView.heading.label', { defaultMessage: 'Explore data', - })}{' '} - <EuiBetaBadge - style={{ - verticalAlign: `middle`, - }} - label={i18n.translate('xpack.observability.expView.heading.experimental', { - defaultMessage: 'Experimental', - })} - /> + })} </h2> </EuiText> </EuiFlexItem> diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index a681581edbf82..e9ecfea653249 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -19417,7 +19417,6 @@ "xpack.observability.expView.heading.addToCase.notification": "ビジュアライゼーションが正常にケースに追加されました:{caseTitle}", "xpack.observability.expView.heading.addToCase.notification.error": "選択したケースにビジュアライゼーションを追加できませんでした。", "xpack.observability.expView.heading.addToCase.notification.viewCase": "ケースの表示", - "xpack.observability.expView.heading.experimental": "実験的", "xpack.observability.expView.heading.label": "データの探索", "xpack.observability.expView.heading.openInLens": "Lensで開く", "xpack.observability.expView.heading.saveLensVisualization": "保存", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index ab953dcdb49a2..8d55a8f7aeb3f 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -19700,7 +19700,6 @@ "xpack.observability.expView.heading.addToCase.notification": "已成功将可视化添加到案例:{caseTitle}", "xpack.observability.expView.heading.addToCase.notification.error": "未能将可视化添加到所选案例。", "xpack.observability.expView.heading.addToCase.notification.viewCase": "查看案例", - "xpack.observability.expView.heading.experimental": "实验性", "xpack.observability.expView.heading.label": "浏览数据", "xpack.observability.expView.heading.openInLens": "在 Lens 中打开", "xpack.observability.expView.heading.saveLensVisualization": "保存", diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx index 7b510432f773b..290706a50cda9 100644 --- a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx +++ b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx @@ -31,7 +31,7 @@ const ANALYZE_DATA = i18n.translate('xpack.uptime.analyzeDataButtonLabel', { const ANALYZE_MESSAGE = i18n.translate('xpack.uptime.analyzeDataButtonLabel.message', { defaultMessage: - 'EXPERIMENTAL - Explore Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.', + 'Explore Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.', }); export function ActionMenuContent(): React.ReactElement { From a561c9f42240cbd25171949a9dd32b7c3784bb77 Mon Sep 17 00:00:00 2001 From: "Lucas F. da Costa" <lucas@lucasfcosta.com> Date: Mon, 22 Nov 2021 14:56:53 +0000 Subject: [PATCH 107/114] [Uptime] Allow users to save uptime settings with _inspect on [Fixes #116368] (#119142) This commit allows users to save uptime settings when they've got the advanced setting to inspect ES queries turned on. Previously, it was not possible to save these settings because the UI would not strip out the unnecessary `_inspect` field from the response and thus would send it as part of the configurations to change, which would then get refused because of this unexpected field. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../common/runtime_types/dynamic_settings.ts | 2 +- .../public/state/api/dynamic_settings.test.ts | 46 +++++++++++++++++++ .../server/rest_api/dynamic_settings.ts | 4 +- .../apis/uptime/rest/dynamic_settings.ts | 1 + 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 x-pack/plugins/uptime/public/state/api/dynamic_settings.test.ts diff --git a/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts b/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts index cc3ca4a7060c5..d7d20361bea96 100644 --- a/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts +++ b/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts @@ -7,7 +7,7 @@ import * as t from 'io-ts'; -export const DynamicSettingsType = t.type({ +export const DynamicSettingsType = t.strict({ heartbeatIndices: t.string, certAgeThreshold: t.number, certExpirationThreshold: t.number, diff --git a/x-pack/plugins/uptime/public/state/api/dynamic_settings.test.ts b/x-pack/plugins/uptime/public/state/api/dynamic_settings.test.ts new file mode 100644 index 0000000000000..46a10144edb08 --- /dev/null +++ b/x-pack/plugins/uptime/public/state/api/dynamic_settings.test.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 { omit } from 'lodash'; +import { apiService } from './utils'; +import { getDynamicSettings } from './dynamic_settings'; +import { HttpSetup } from 'src/core/public'; +import { DynamicSettings } from '../../../common/runtime_types/dynamic_settings'; + +describe('Dynamic Settings API', () => { + let fetchMock: jest.SpyInstance<Partial<unknown>>; + const defaultResponse: DynamicSettings & { _inspect: never[] } = { + heartbeatIndices: 'heartbeat-8*', + certAgeThreshold: 1, + certExpirationThreshold: 1337, + defaultConnectors: [], + _inspect: [], + }; + + beforeEach(() => { + apiService.http = { + get: jest.fn(), + fetch: jest.fn(), + } as unknown as HttpSetup; + + apiService.addInspectorRequest = jest.fn(); + + fetchMock = jest.spyOn(apiService.http, 'fetch'); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it('omits the _inspect prop on the response as decoding', async () => { + fetchMock.mockReturnValue(new Promise((r) => r(defaultResponse))); + + const resp = await getDynamicSettings(); + + expect(resp).toEqual(omit(defaultResponse, ['_inspect'])); + }); +}); diff --git a/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts b/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts index 5d9947e23cf44..9068a8f6da52f 100644 --- a/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts +++ b/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts @@ -18,7 +18,7 @@ import { } from '../../common/translations'; import { API_URLS } from '../../common/constants'; -export const createGetDynamicSettingsRoute: UMRestApiRouteFactory = (libs: UMServerLibs) => ({ +export const createGetDynamicSettingsRoute: UMRestApiRouteFactory = (_libs: UMServerLibs) => ({ method: 'GET', path: API_URLS.DYNAMIC_SETTINGS, validate: false, @@ -46,7 +46,7 @@ export const validateCertsValues = ( } }; -export const createPostDynamicSettingsRoute: UMRestApiRouteFactory = (libs: UMServerLibs) => ({ +export const createPostDynamicSettingsRoute: UMRestApiRouteFactory = (_libs: UMServerLibs) => ({ method: 'POST', path: API_URLS.DYNAMIC_SETTINGS, validate: { diff --git a/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts b/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts index 84e01ecef63d6..bccde2e6d9cb8 100644 --- a/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts +++ b/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts @@ -16,6 +16,7 @@ import { DYNAMIC_SETTINGS_DEFAULTS, API_URLS, } from '../../../../../plugins/uptime/common/constants'; + export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); From f1d1cb5505ebc7478ccb26e1a4d7e2e973a7fe15 Mon Sep 17 00:00:00 2001 From: Dominique Clarke <doclarke71@gmail.com> Date: Mon, 22 Nov 2021 09:59:47 -0500 Subject: [PATCH 108/114] Revert "[Uptime] redirect Uptime tutorials to the Elastic Synthetics Integration (#115229) (#115470)" (#118986) This reverts commit c4da271859cda10e67e73b346bf6e2d289195f8a. --- .../shared/add_data_buttons/synthetics_add_data.tsx | 4 ++-- .../observability/public/pages/overview/empty_section.ts | 2 +- x-pack/plugins/uptime/public/apps/use_no_data_config.ts | 4 ++-- .../components/common/header/action_menu_content.test.tsx | 6 ++---- .../public/components/common/header/action_menu_content.tsx | 6 ++---- x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx | 2 +- 6 files changed, 10 insertions(+), 14 deletions(-) diff --git a/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx b/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx index d852d6fdb9a31..af91624769e6b 100644 --- a/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx +++ b/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx @@ -16,9 +16,9 @@ export function SyntheticsAddData() { return ( <EuiHeaderLink aria-label={i18n.translate('xpack.observability.page_header.addUptimeDataLink.label', { - defaultMessage: 'Navigate to the Elastic Synthetics integration to add Uptime data', + defaultMessage: 'Navigate to a tutorial about adding Uptime data', })} - href={kibana.services?.application?.getUrlForApp('/integrations/detail/synthetics/overview')} + href={kibana.services?.application?.getUrlForApp('/home#/tutorial/uptimeMonitors')} color="primary" iconType="indexOpen" > diff --git a/x-pack/plugins/observability/public/pages/overview/empty_section.ts b/x-pack/plugins/observability/public/pages/overview/empty_section.ts index f249a820a60a4..2747b2ecdebc9 100644 --- a/x-pack/plugins/observability/public/pages/overview/empty_section.ts +++ b/x-pack/plugins/observability/public/pages/overview/empty_section.ts @@ -69,7 +69,7 @@ export const getEmptySections = ({ core }: { core: CoreStart }): ISection[] => { linkTitle: i18n.translate('xpack.observability.emptySection.apps.uptime.link', { defaultMessage: 'Install Heartbeat', }), - href: core.http.basePath.prepend('/app/integrations/detail/synthetics/overview'), + href: core.http.basePath.prepend('/app/home#/tutorial/uptimeMonitors'), }, { id: 'ux', diff --git a/x-pack/plugins/uptime/public/apps/use_no_data_config.ts b/x-pack/plugins/uptime/public/apps/use_no_data_config.ts index 6e73a6d5e8268..dc00a25e3a111 100644 --- a/x-pack/plugins/uptime/public/apps/use_no_data_config.ts +++ b/x-pack/plugins/uptime/public/apps/use_no_data_config.ts @@ -31,13 +31,13 @@ export function useNoDataConfig(): KibanaPageTemplateProps['noDataConfig'] { actions: { beats: { title: i18n.translate('xpack.uptime.noDataConfig.beatsCard.title', { - defaultMessage: 'Add monitors with the Elastic Synthetics integration', + defaultMessage: 'Add monitors with Heartbeat', }), description: i18n.translate('xpack.uptime.noDataConfig.beatsCard.description', { defaultMessage: 'Proactively monitor the availability of your sites and services. Receive alerts and resolve issues faster to optimize your users experience.', }), - href: basePath + `/app/integrations/detail/synthetics/overview`, + href: basePath + `/app/home#/tutorial/uptimeMonitors`, }, }, docsLink: docLinks!.links.observability.guide, diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx index 47dc2084a788f..89aaec5f133c2 100644 --- a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx @@ -45,13 +45,11 @@ describe('ActionMenuContent', () => { it('renders Add Data link', () => { const { getByLabelText, getByText } = render(<ActionMenuContent />); - const addDataAnchor = getByLabelText( - 'Navigate to the Elastic Synthetics integration to add Uptime data' - ); + const addDataAnchor = getByLabelText('Navigate to a tutorial about adding Uptime data'); // this href value is mocked, so it doesn't correspond to the real link // that Kibana core services will provide - expect(addDataAnchor.getAttribute('href')).toBe('/integrations/detail/synthetics/overview'); + expect(addDataAnchor.getAttribute('href')).toBe('/home#/tutorial/uptimeMonitors'); expect(getByText('Add data')); }); }); diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx index 290706a50cda9..f9f4015c6c8aa 100644 --- a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx +++ b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx @@ -99,11 +99,9 @@ export function ActionMenuContent(): React.ReactElement { <EuiHeaderLink aria-label={i18n.translate('xpack.uptime.page_header.addDataLink.label', { - defaultMessage: 'Navigate to the Elastic Synthetics integration to add Uptime data', + defaultMessage: 'Navigate to a tutorial about adding Uptime data', })} - href={kibana.services?.application?.getUrlForApp( - '/integrations/detail/synthetics/overview' - )} + href={kibana.services?.application?.getUrlForApp('/home#/tutorial/uptimeMonitors')} color="primary" iconType="indexOpen" > diff --git a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx index 60ccec84c3bb1..ac129bdb327d9 100644 --- a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx +++ b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx @@ -83,7 +83,7 @@ const createMockStore = () => { const mockAppUrls: Record<string, string> = { uptime: '/app/uptime', observability: '/app/observability', - '/integrations/detail/synthetics/overview': '/integrations/detail/synthetics/overview', + '/home#/tutorial/uptimeMonitors': '/home#/tutorial/uptimeMonitors', }; /* default mock core */ From 60ae6f9f0530faea539049272a30b0015704f4e4 Mon Sep 17 00:00:00 2001 From: Ashokaditya <1849116+ashokaditya@users.noreply.github.com> Date: Mon, 22 Nov 2021 16:02:04 +0100 Subject: [PATCH 109/114] [Security Solution][Endpoint] Remove hapi/boom requests (#117654) * remove unused code fixes elastic/security-team/issues/1988 * remove redundant literal * custom error instead of Boom fixes elastic/security-team/issues/1988 * remove legacy boom check review comments * commit using ashokaditya@elastic.co * move custom error to a common folder review suggestion * use the logger to log the error review changes * fix lint * more generic custom error that allows for custom statusCodes * remove hapi/boom from transformError review suggestions * Revert "remove hapi/boom from transformError" This reverts commit 90e4b504456f4733c2f01fb9fefd561805f68322. * review changes Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../endpoint/routes/metadata/handlers.ts | 138 ++---------------- .../routes/rules/create_rules_bulk_route.ts | 2 +- .../lib/detection_engine/routes/utils.test.ts | 15 +- .../lib/detection_engine/routes/utils.ts | 8 +- .../routes/timelines/get_timelines/index.ts | 7 +- .../server/utils/custom_http_request_error.ts | 14 ++ 6 files changed, 44 insertions(+), 140 deletions(-) create mode 100644 x-pack/plugins/security_solution/server/utils/custom_http_request_error.ts diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts index 8b0e5abad228b..cb5e055206585 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts @@ -5,8 +5,6 @@ * 2.0. */ -import Boom from '@hapi/boom'; - import { TypeOf } from '@kbn/config-schema'; import { IKibanaResponse, @@ -25,12 +23,8 @@ import { } from '../../../../common/endpoint/types'; import type { SecuritySolutionRequestHandlerContext } from '../../../types'; -import { - getESQueryHostMetadataByID, - getPagingProperties, - kibanaRequestToMetadataListESQuery, -} from './query_builders'; -import { Agent, PackagePolicy } from '../../../../../fleet/common/types/models'; +import { getPagingProperties, kibanaRequestToMetadataListESQuery } from './query_builders'; +import { PackagePolicy } from '../../../../../fleet/common/types/models'; import { AgentNotFoundError } from '../../../../../fleet/server'; import { EndpointAppContext, HostListQueryResult } from '../../types'; import { @@ -42,13 +36,11 @@ import { findAllUnenrolledAgentIds } from './support/unenroll'; import { getAllEndpointPackagePolicies } from './support/endpoint_package_policies'; import { findAgentIdsByStatus } from './support/agent_status'; import { EndpointAppContextService } from '../../endpoint_app_context_services'; -import { catchAndWrapError, fleetAgentStatusToEndpointHostStatus } from '../../utils'; -import { - queryResponseToHostListResult, - queryResponseToHostResult, -} from './support/query_strategies'; +import { fleetAgentStatusToEndpointHostStatus } from '../../utils'; +import { queryResponseToHostListResult } from './support/query_strategies'; import { EndpointError, NotFoundError } from '../../errors'; import { EndpointHostUnEnrolledError } from '../../services/metadata'; +import { CustomHttpRequestError } from '../../../utils/custom_http_request_error'; export interface MetadataRequestContext { esClient?: IScopedClusterClient; @@ -67,6 +59,15 @@ const errorHandler = <E extends Error>( res: KibanaResponseFactory, error: E ): IKibanaResponse => { + logger.error(error); + + if (error instanceof CustomHttpRequestError) { + return res.customError({ + statusCode: error.statusCode, + body: error, + }); + } + if (error instanceof NotFoundError) { return res.notFound({ body: error }); } @@ -75,16 +76,6 @@ const errorHandler = <E extends Error>( return res.badRequest({ body: error }); } - // legacy check for Boom errors. for the errors around non-standard error properties - // @ts-expect-error TS2339 - const boomStatusCode = error.isBoom && error?.output?.statusCode; - if (boomStatusCode) { - return res.customError({ - statusCode: boomStatusCode, - body: error, - }); - } - // Kibana CORE will take care of `500` errors when the handler `throw`'s, including logging the error throw error; }; @@ -269,107 +260,6 @@ export const getMetadataRequestHandler = function ( }; }; -export async function getHostMetaData( - metadataRequestContext: MetadataRequestContext, - id: string -): Promise<HostMetadata | undefined> { - if ( - !metadataRequestContext.esClient && - !metadataRequestContext.requestHandlerContext?.core.elasticsearch.client - ) { - throw Boom.badRequest('esClient not found'); - } - - if ( - !metadataRequestContext.savedObjectsClient && - !metadataRequestContext.requestHandlerContext?.core.savedObjects - ) { - throw Boom.badRequest('savedObjectsClient not found'); - } - - const esClient = (metadataRequestContext?.esClient ?? - metadataRequestContext.requestHandlerContext?.core.elasticsearch - .client) as IScopedClusterClient; - - const query = getESQueryHostMetadataByID(id); - - const response = await esClient.asCurrentUser - .search<HostMetadata>(query) - .catch(catchAndWrapError); - - const hostResult = queryResponseToHostResult(response.body); - - const hostMetadata = hostResult.result; - if (!hostMetadata) { - return undefined; - } - - return hostMetadata; -} - -export async function getHostData( - metadataRequestContext: MetadataRequestContext, - id: string -): Promise<HostInfo | undefined> { - if (!metadataRequestContext.savedObjectsClient) { - throw Boom.badRequest('savedObjectsClient not found'); - } - - if ( - !metadataRequestContext.esClient && - !metadataRequestContext.requestHandlerContext?.core.elasticsearch.client - ) { - throw Boom.badRequest('esClient not found'); - } - - const hostMetadata = await getHostMetaData(metadataRequestContext, id); - - if (!hostMetadata) { - return undefined; - } - - const agent = await findAgent(metadataRequestContext, hostMetadata); - - if (agent && !agent.active) { - throw Boom.badRequest('the requested endpoint is unenrolled'); - } - - const metadata = await enrichHostMetadata(hostMetadata, metadataRequestContext); - - return metadata; -} - -async function findAgent( - metadataRequestContext: MetadataRequestContext, - hostMetadata: HostMetadata -): Promise<Agent | undefined> { - try { - if ( - !metadataRequestContext.esClient && - !metadataRequestContext.requestHandlerContext?.core.elasticsearch.client - ) { - throw new Error('esClient not found'); - } - - const esClient = (metadataRequestContext?.esClient ?? - metadataRequestContext.requestHandlerContext?.core.elasticsearch - .client) as IScopedClusterClient; - - return await metadataRequestContext.endpointAppContextService - ?.getAgentService() - ?.getAgent(esClient.asCurrentUser, hostMetadata.elastic.agent.id); - } catch (e) { - if (e instanceof AgentNotFoundError) { - metadataRequestContext.logger.warn( - `agent with id ${hostMetadata.elastic.agent.id} not found` - ); - return undefined; - } else { - throw e; - } - } -} - export async function mapToHostResultList( // eslint-disable-next-line @typescript-eslint/no-explicit-any queryParams: Record<string, any>, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts index b6e7858854efa..1db9cca2ca2d8 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts @@ -125,7 +125,7 @@ export const createRulesBulkRoute = ( } catch (err) { return transformBulkError( internalRule.params.ruleId, - err as Error & { statusCode?: number | undefined } + err as Error & { statusCode?: number } ); } }) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts index 66ad07b9d1029..5fe15c2839066 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts @@ -5,8 +5,6 @@ * 2.0. */ -import Boom from '@hapi/boom'; - import { SavedObjectsFindResponse } from 'kibana/server'; import { rulesClientMock } from '../../../../../alerting/server/mocks'; @@ -26,6 +24,7 @@ import { getAlertMock } from './__mocks__/request_responses'; import { AlertExecutionStatusErrorReasons } from '../../../../../alerting/common'; import { getQueryRuleParams } from '../schemas/rule_schemas.mock'; import { RuleExecutionStatus } from '../../../../common/detection_engine/schemas/common/schemas'; +import { CustomHttpRequestError } from '../../../utils/custom_http_request_error'; let rulesClient: ReturnType<typeof rulesClientMock.create>; @@ -34,17 +33,17 @@ describe.each([ ['RAC', true], ])('utils - %s', (_, isRuleRegistryEnabled) => { describe('transformBulkError', () => { - test('returns transformed object if it is a boom object', () => { - const boom = new Boom.Boom('some boom message', { statusCode: 400 }); - const transformed = transformBulkError('rule-1', boom); + test('returns transformed object if it is a custom error object', () => { + const customError = new CustomHttpRequestError('some custom error message', 400); + const transformed = transformBulkError('rule-1', customError); const expected: BulkError = { rule_id: 'rule-1', - error: { message: 'some boom message', status_code: 400 }, + error: { message: 'some custom error message', status_code: 400 }, }; expect(transformed).toEqual(expected); }); - test('returns a normal error if it is some non boom object that has a statusCode', () => { + test('returns a normal error if it is some non custom error that has a statusCode', () => { const error: Error & { statusCode?: number } = { statusCode: 403, name: 'some name', @@ -71,7 +70,7 @@ describe.each([ expect(transformed).toEqual(expected); }); - test('it detects a BadRequestError and returns a Boom status of 400', () => { + test('it detects a BadRequestError and returns an error status of 400', () => { const error: BadRequestError = new BadRequestError('I have a type error'); const transformed = transformBulkError('rule-1', error); const expected: BulkError = { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts index a15dc4f176232..127c52496a5c5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts @@ -5,7 +5,6 @@ * 2.0. */ -import Boom from '@hapi/boom'; import { has, snakeCase } from 'lodash/fp'; import { BadRequestError } from '@kbn/securitysolution-es-utils'; import { SanitizedAlert } from '../../../../../alerting/common'; @@ -19,6 +18,7 @@ import { RulesClient } from '../../../../../alerting/server'; import { RuleStatusResponse, IRuleStatusSOAttributes } from '../rules/types'; import { RuleParams } from '../schemas/rule_schemas'; +import { CustomHttpRequestError } from '../../../utils/custom_http_request_error'; export interface OutputError { message: string; @@ -104,10 +104,10 @@ export const transformBulkError = ( ruleId: string, err: Error & { statusCode?: number } ): BulkError => { - if (Boom.isBoom(err)) { + if (err instanceof CustomHttpRequestError) { return createBulkErrorObject({ ruleId, - statusCode: err.output.statusCode, + statusCode: err.statusCode ?? 400, message: err.message, }); } else if (err instanceof BadRequestError) { @@ -254,7 +254,7 @@ export const getFailingRules = async ( }; }, {}); } catch (exc) { - if (Boom.isBoom(exc)) { + if (exc instanceof CustomHttpRequestError) { throw exc; } throw new Error(`Failed to get executionStatus with RulesClient: ${(exc as Error).message}`); diff --git a/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts b/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts index 4599916092611..37ab77646b65c 100644 --- a/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts +++ b/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts @@ -4,7 +4,6 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import Boom from '@hapi/boom'; import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; @@ -19,13 +18,14 @@ import { SetupPlugins } from '../../../../../plugin'; import { buildSiemResponse } from '../../../../detection_engine/routes/utils'; +import { CustomHttpRequestError } from '../../../../../utils/custom_http_request_error'; import { buildFrameworkRequest, escapeHatch, throwErrors } from '../../../utils/common'; import { getAllTimeline } from '../../../saved_object/timelines'; import { getTimelinesQuerySchema } from '../../../schemas/timelines'; export const getTimelinesRoute = ( router: SecuritySolutionPluginRouter, - config: ConfigType, + _config: ConfigType, security: SetupPlugins['security'] ) => { router.get( @@ -39,11 +39,12 @@ export const getTimelinesRoute = ( }, }, async (context, request, response) => { + const customHttpRequestError = (message: string) => new CustomHttpRequestError(message, 400); try { const frameworkRequest = await buildFrameworkRequest(context, security, request); const queryParams = pipe( getTimelinesQuerySchema.decode(request.query), - fold(throwErrors(Boom.badRequest), identity) + fold(throwErrors(customHttpRequestError), identity) ); const onlyUserFavorite = queryParams?.only_user_favorite === 'true' ? true : false; const pageSize = queryParams?.page_size ? parseInt(queryParams.page_size, 10) : null; diff --git a/x-pack/plugins/security_solution/server/utils/custom_http_request_error.ts b/x-pack/plugins/security_solution/server/utils/custom_http_request_error.ts new file mode 100644 index 0000000000000..e4edaeb3e3dcf --- /dev/null +++ b/x-pack/plugins/security_solution/server/utils/custom_http_request_error.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export class CustomHttpRequestError extends Error { + constructor(message: string, public readonly statusCode: number = 500) { + super(message); + // For debugging - capture name of subclasses + this.name = this.constructor.name; + this.message = message; + } +} From 5e63db9724f65ad5fd5d5a55c1ea914cbcfd5329 Mon Sep 17 00:00:00 2001 From: Paul Tavares <56442535+paul-tavares@users.noreply.github.com> Date: Mon, 22 Nov 2021 10:02:56 -0500 Subject: [PATCH 110/114] [Security Solution][Endpoint] add a few delays to one of the FTR Policy tests that integrates with Fleet (#119304) --- .../apps/endpoint/policy_details.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts index 88462a2872fe4..61773aaf825fa 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts @@ -540,12 +540,16 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { // Fleet has its own form inputs, like description. When those are updated, the changes // are also dispatched to the embedded endpoint Policy form. Update to the Endpoint Policy // form after that should preserve the changes done on the Fleet form + // NOTE: A few delays were added below due to sporadic failures of this test case (see #100236) + const sleep = (ms = 100) => new Promise((resolve) => setTimeout(resolve, ms)); // Wait for the endpoint form to load and then update the policy description await testSubjects.existOrFail('endpointIntegrationPolicyForm'); + await sleep(); // Allow forms to sync await pageObjects.ingestManagerCreatePackagePolicy.setPackagePolicyDescription( 'protect everything' ); + await sleep(); // Allow forms to sync const winDnsEventingCheckbox = await testSubjects.find('policyWindowsEvent_dns'); await pageObjects.ingestManagerCreatePackagePolicy.scrollToCenterOfWindow( From 124a3d9db7c5b48e979f8e039a3d9be612ae19cb Mon Sep 17 00:00:00 2001 From: Matthew Kime <matt@mattki.me> Date: Mon, 22 Nov 2021 09:12:33 -0600 Subject: [PATCH 111/114] IndexPatternFieldEditor => DataViewFieldEditor (#119261) * rename indexPatternFieldEditor --- .github/CODEOWNERS | 2 +- .i18nrc.json | 3 +- docs/developer/plugin-list.asciidoc | 8 +-- .../data_view_field_editor_example/README.md | 7 +++ .../kibana.json | 6 +-- .../public/app.tsx | 24 ++++----- .../public/index.ts | 0 .../public/plugin.tsx | 4 +- .../tsconfig.json | 2 +- examples/field_formats_example/kibana.json | 2 +- .../3_creating_custom_format_editor.tsx | 2 +- .../field_formats_example/public/plugin.tsx | 12 ++--- examples/field_formats_example/tsconfig.json | 2 +- .../README.md | 7 --- packages/kbn-optimizer/limits.yml | 2 +- .../README.md | 30 +++++------ .../field_editor.helpers.ts | 0 .../client_integration/field_editor.test.tsx | 0 .../field_editor_flyout_content.helpers.ts | 0 .../field_editor_flyout_content.test.ts | 0 .../field_editor_flyout_preview.helpers.ts | 0 .../field_editor_flyout_preview.test.ts | 0 .../helpers/common_actions.ts | 0 .../helpers/http_requests.ts | 0 .../client_integration/helpers/index.ts | 0 .../client_integration/helpers/jest.mocks.tsx | 0 .../client_integration/helpers/mocks.ts | 0 .../helpers/setup_environment.tsx | 2 +- .../common/constants.ts | 0 .../jest.config.js | 6 +-- .../data_view_field_editor/kibana.json | 14 +++++ .../public/assets/icons/LICENSE.txt | 0 .../public/assets/icons/cv.png | Bin .../public/assets/icons/de.png | Bin .../public/assets/icons/go.png | Bin .../public/assets/icons/ne.png | Bin .../public/assets/icons/ni.png | Bin .../public/assets/icons/stop.png | Bin .../public/assets/icons/us.png | Bin .../confirm_modals/delete_field_modal.tsx | 0 .../public/components/confirm_modals/index.ts | 0 .../confirm_modals/modified_field_modal.tsx | 0 .../save_field_type_or_name_changed_modal.tsx | 0 .../components/delete_field_provider.tsx | 10 ++-- .../advanced_parameters_section.tsx | 0 .../components/field_editor/constants.ts | 0 .../components/field_editor/field_editor.tsx | 0 .../form_fields/custom_label_field.tsx | 0 .../field_editor/form_fields/format_field.tsx | 4 +- .../field_editor/form_fields/index.ts | 0 .../form_fields/popularity_field.tsx | 0 .../field_editor/form_fields/script_field.tsx | 0 .../field_editor/form_fields/type_field.tsx | 0 .../components/field_editor/form_row.tsx | 0 .../components/field_editor/form_schema.ts | 0 .../public/components/field_editor/index.ts | 0 .../public/components/field_editor/lib.ts | 0 .../field_editor/shadowing_field_warning.tsx | 0 .../components/field_editor_context.tsx | 10 ++-- .../field_editor_flyout_content.tsx | 4 +- .../field_editor_flyout_content_container.tsx | 49 ++++++++---------- .../public/components/field_editor_loader.tsx | 0 .../__snapshots__/format_editor.test.tsx.snap | 0 .../bytes/__snapshots__/bytes.test.tsx.snap | 0 .../editors/bytes/bytes.test.tsx | 0 .../editors/bytes/bytes.ts | 0 .../editors/bytes/constants.ts | 0 .../editors/bytes/index.ts | 0 .../color/__snapshots__/color.test.tsx.snap | 0 .../editors/color/color.test.tsx | 0 .../editors/color/color.tsx | 0 .../editors/color/constants.ts | 0 .../editors/color/index.ts | 0 .../date/__snapshots__/date.test.tsx.snap | 0 .../editors/date/constants.ts | 0 .../editors/date/date.test.tsx | 0 .../field_format_editor/editors/date/date.tsx | 0 .../field_format_editor/editors/date/index.ts | 0 .../__snapshots__/date_nanos.test.tsx.snap | 0 .../editors/date_nanos/constants.ts | 0 .../editors/date_nanos/date_nanos.test.tsx | 0 .../editors/date_nanos/date_nanos.tsx | 0 .../editors/date_nanos/index.ts | 0 .../__snapshots__/default.test.tsx.snap | 0 .../editors/default/constants.ts | 0 .../editors/default/default.test.tsx | 0 .../editors/default/default.tsx | 0 .../editors/default/index.ts | 0 .../__snapshots__/duration.test.tsx.snap | 0 .../editors/duration/constants.ts | 0 .../editors/duration/duration.test.tsx | 0 .../editors/duration/duration.tsx | 0 .../editors/duration/index.tsx | 0 .../__snapshots__/histogram.test.tsx.snap | 0 .../editors/histogram/constants.ts | 0 .../editors/histogram/histogram.test.tsx | 0 .../editors/histogram/histogram.tsx | 0 .../editors/histogram/index.ts | 0 .../field_format_editor/editors/index.ts | 0 .../number/__snapshots__/number.test.tsx.snap | 0 .../editors/number/constants.ts | 0 .../editors/number/index.ts | 0 .../editors/number/number.test.tsx | 0 .../editors/number/number.tsx | 0 .../__snapshots__/percent.test.tsx.snap | 0 .../editors/percent/constants.ts | 0 .../editors/percent/index.ts | 0 .../editors/percent/percent.test.tsx | 0 .../editors/percent/percent.tsx | 0 .../__snapshots__/static_lookup.test.tsx.snap | 0 .../editors/static_lookup/constants.ts | 0 .../editors/static_lookup/index.ts | 0 .../static_lookup/static_lookup.test.tsx | 0 .../editors/static_lookup/static_lookup.tsx | 0 .../string/__snapshots__/string.test.tsx.snap | 0 .../editors/string/constants.ts | 0 .../editors/string/index.ts | 0 .../editors/string/string.test.tsx | 0 .../editors/string/string.tsx | 0 .../__snapshots__/truncate.test.tsx.snap | 0 .../editors/truncate/constants.ts | 0 .../editors/truncate/index.ts | 0 .../editors/truncate/sample.ts | 0 .../editors/truncate/truncate.test.tsx | 0 .../editors/truncate/truncate.tsx | 0 .../field_format_editor/editors/types.ts | 0 .../url/__snapshots__/url.test.tsx.snap | 0 .../editors/url/constants.ts | 0 .../field_format_editor/editors/url/index.ts | 0 .../editors/url/url.test.tsx | 0 .../field_format_editor/editors/url/url.tsx | 0 .../field_format_editor.tsx | 0 .../format_editor.test.tsx | 0 .../field_format_editor/format_editor.tsx | 0 .../components/field_format_editor/index.ts | 0 .../__snapshots__/samples.test.tsx.snap | 0 .../field_format_editor/samples/index.ts | 0 .../field_format_editor/samples/samples.scss | 0 .../samples/samples.test.tsx | 0 .../field_format_editor/samples/samples.tsx | 0 .../components/field_format_editor/types.ts | 0 .../components/flyout_panels/flyout_panel.tsx | 0 .../flyout_panels/flyout_panels.scss | 0 .../flyout_panels/flyout_panels.tsx | 0 .../flyout_panels/flyout_panels_content.tsx | 0 .../flyout_panels/flyout_panels_footer.tsx | 0 .../flyout_panels/flyout_panels_header.tsx | 0 .../public/components/flyout_panels/index.ts | 0 .../public/components/index.ts | 0 .../preview/documents_nav_preview.tsx | 0 .../preview/field_list/field_list.scss | 0 .../preview/field_list/field_list.tsx | 4 +- .../preview/field_list/field_list_item.tsx | 0 .../components/preview/field_preview.scss | 0 .../components/preview/field_preview.tsx | 0 .../preview/field_preview_context.tsx | 10 ++-- .../preview/field_preview_empty_prompt.tsx | 0 .../preview/field_preview_error.tsx | 0 .../preview/field_preview_header.tsx | 4 +- .../preview/image_preview_modal.tsx | 0 .../public/components/preview/index.ts | 0 .../preview/is_updating_indicator.tsx | 0 .../public/components/preview/types.ts | 0 .../public/constants.ts | 0 .../public/index.ts | 0 .../public/lib/api.ts | 0 .../public/lib/documentation.ts | 0 .../public/lib/index.ts | 0 .../public/lib/remove_fields.ts | 12 ++--- .../public/lib/runtime_field_validation.ts | 0 .../public/lib/serialization.ts | 9 ++-- .../public/mocks.ts | 0 .../public/open_delete_modal.tsx | 16 +++--- .../public/open_editor.tsx | 26 +++++----- .../public/plugin.test.tsx | 30 +++++------ .../public/plugin.ts | 8 +-- .../field_format_editors.ts | 0 .../service/field_format_editors/index.ts | 0 .../public/service/format_editor_service.ts | 0 .../public/service/index.ts | 0 .../public/shared_imports.ts | 4 +- .../public/types.ts | 4 ++ .../server/index.ts | 0 .../server/plugin.ts | 0 .../server/routes/field_preview.ts | 0 .../server/routes/index.ts | 0 .../server/shared_imports.ts | 0 .../server/types.ts | 0 .../tsconfig.json | 1 + src/plugins/data_views/public/index.ts | 2 +- src/plugins/discover/kibana.json | 2 +- .../components/sidebar/discover_sidebar.tsx | 2 +- .../sidebar/discover_sidebar_responsive.tsx | 2 +- src/plugins/discover/public/build_services.ts | 4 +- src/plugins/discover/public/plugin.tsx | 4 +- src/plugins/discover/tsconfig.json | 2 +- .../index_pattern_field_editor/kibana.json | 14 ----- .../index_pattern_management/kibana.json | 2 +- .../edit_index_pattern/tabs/tabs.tsx | 12 ++--- .../field_format_editor.tsx | 2 +- .../mount_management_section.tsx | 6 +-- .../index_pattern_management/public/mocks.ts | 8 +-- .../index_pattern_management/public/plugin.ts | 4 +- .../index_pattern_management/public/types.ts | 4 +- .../index_pattern_management/tsconfig.json | 2 +- .../constants.ts | 0 .../field_preview.ts | 2 +- .../index.ts | 0 test/api_integration/apis/index.ts | 2 +- x-pack/plugins/data_visualizer/kibana.json | 2 +- .../field_data_row/action_menu/actions.ts | 10 ++-- .../index_pattern_management.tsx | 11 ++-- .../index_data_visualizer.tsx | 4 +- .../plugins/data_visualizer/public/plugin.ts | 4 +- x-pack/plugins/lens/kibana.json | 2 +- .../datapanel.test.tsx | 4 +- .../indexpattern_datasource/datapanel.tsx | 6 +-- .../public/indexpattern_datasource/index.ts | 8 +-- .../indexpattern.test.ts | 4 +- .../indexpattern_datasource/indexpattern.tsx | 8 +-- x-pack/plugins/lens/public/plugin.ts | 4 +- x-pack/plugins/lens/tsconfig.json | 2 +- x-pack/plugins/security_solution/kibana.json | 2 +- .../create_field_button/index.test.tsx | 4 +- .../components/create_field_button/index.tsx | 10 ++-- .../plugins/security_solution/public/types.ts | 4 +- .../plugins/security_solution/tsconfig.json | 1 + 227 files changed, 252 insertions(+), 254 deletions(-) create mode 100644 examples/data_view_field_editor_example/README.md rename examples/{index_pattern_field_editor_example => data_view_field_editor_example}/kibana.json (55%) rename examples/{index_pattern_field_editor_example => data_view_field_editor_example}/public/app.tsx (83%) rename examples/{index_pattern_field_editor_example => data_view_field_editor_example}/public/index.ts (100%) rename examples/{index_pattern_field_editor_example => data_view_field_editor_example}/public/plugin.tsx (95%) rename examples/{index_pattern_field_editor_example => data_view_field_editor_example}/tsconfig.json (85%) delete mode 100644 examples/index_pattern_field_editor_example/README.md rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/README.md (67%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/field_editor.helpers.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/field_editor.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/field_editor_flyout_content.helpers.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/field_editor_flyout_content.test.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/field_editor_flyout_preview.helpers.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/field_editor_flyout_preview.test.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/helpers/common_actions.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/helpers/http_requests.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/helpers/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/helpers/jest.mocks.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/helpers/mocks.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/__jest__/client_integration/helpers/setup_environment.tsx (99%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/common/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/jest.config.js (74%) create mode 100644 src/plugins/data_view_field_editor/kibana.json rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/LICENSE.txt (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/cv.png (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/de.png (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/go.png (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/ne.png (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/ni.png (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/stop.png (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/assets/icons/us.png (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/confirm_modals/delete_field_modal.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/confirm_modals/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/confirm_modals/modified_field_modal.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/confirm_modals/save_field_type_or_name_changed_modal.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/delete_field_provider.tsx (87%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/advanced_parameters_section.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/field_editor.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_fields/custom_label_field.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_fields/format_field.tsx (94%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_fields/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_fields/popularity_field.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_fields/script_field.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_fields/type_field.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_row.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/form_schema.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/lib.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor/shadowing_field_warning.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor_context.tsx (94%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor_flyout_content.tsx (98%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor_flyout_content_container.tsx (83%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_editor_loader.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/__snapshots__/format_editor.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/bytes/__snapshots__/bytes.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/bytes/bytes.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/bytes/bytes.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/bytes/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/bytes/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/color/__snapshots__/color.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/color/color.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/color/color.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/color/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/color/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date/__snapshots__/date.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date/date.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date/date.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date_nanos/__snapshots__/date_nanos.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date_nanos/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date_nanos/date_nanos.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date_nanos/date_nanos.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/date_nanos/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/default/__snapshots__/default.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/default/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/default/default.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/default/default.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/default/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/duration/__snapshots__/duration.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/duration/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/duration/duration.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/duration/duration.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/duration/index.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/histogram/__snapshots__/histogram.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/histogram/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/histogram/histogram.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/histogram/histogram.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/histogram/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/number/__snapshots__/number.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/number/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/number/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/number/number.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/number/number.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/percent/__snapshots__/percent.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/percent/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/percent/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/percent/percent.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/percent/percent.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/static_lookup/__snapshots__/static_lookup.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/static_lookup/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/static_lookup/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/static_lookup/static_lookup.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/static_lookup/static_lookup.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/string/__snapshots__/string.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/string/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/string/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/string/string.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/string/string.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/truncate/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/truncate/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/truncate/sample.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/truncate/truncate.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/truncate/truncate.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/types.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/url/__snapshots__/url.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/url/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/url/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/url/url.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/editors/url/url.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/field_format_editor.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/format_editor.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/format_editor.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/samples/__snapshots__/samples.test.tsx.snap (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/samples/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/samples/samples.scss (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/samples/samples.test.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/samples/samples.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/field_format_editor/types.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/flyout_panels/flyout_panel.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/flyout_panels/flyout_panels.scss (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/flyout_panels/flyout_panels.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/flyout_panels/flyout_panels_content.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/flyout_panels/flyout_panels_footer.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/flyout_panels/flyout_panels_header.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/flyout_panels/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/documents_nav_preview.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_list/field_list.scss (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_list/field_list.tsx (99%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_list/field_list_item.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_preview.scss (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_preview.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_preview_context.tsx (99%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_preview_empty_prompt.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_preview_error.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/field_preview_header.tsx (92%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/image_preview_modal.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/is_updating_indicator.tsx (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/components/preview/types.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/constants.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/lib/api.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/lib/documentation.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/lib/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/lib/remove_fields.ts (76%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/lib/runtime_field_validation.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/lib/serialization.ts (83%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/mocks.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/open_delete_modal.tsx (86%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/open_editor.tsx (89%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/plugin.test.tsx (88%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/plugin.ts (91%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/service/field_format_editors/field_format_editors.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/service/field_format_editors/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/service/format_editor_service.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/service/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/shared_imports.ts (89%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/public/types.ts (94%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/server/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/server/plugin.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/server/routes/field_preview.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/server/routes/index.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/server/shared_imports.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/server/types.ts (100%) rename src/plugins/{index_pattern_field_editor => data_view_field_editor}/tsconfig.json (92%) delete mode 100644 src/plugins/index_pattern_field_editor/kibana.json rename test/api_integration/apis/{index_pattern_field_editor => data_view_field_editor}/constants.ts (100%) rename test/api_integration/apis/{index_pattern_field_editor => data_view_field_editor}/field_preview.ts (98%) rename test/api_integration/apis/{index_pattern_field_editor => data_view_field_editor}/index.ts (100%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 61348b03c2a37..51c0162a5ee9c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -76,7 +76,7 @@ /src/plugins/navigation/ @elastic/kibana-app-services /src/plugins/share/ @elastic/kibana-app-services /src/plugins/ui_actions/ @elastic/kibana-app-services -/src/plugins/index_pattern_field_editor @elastic/kibana-app-services +/src/plugins/data_view_field_editor @elastic/kibana-app-services /src/plugins/screenshot_mode @elastic/kibana-app-services /src/plugins/bfetch/ @elastic/kibana-app-services /src/plugins/index_pattern_management/ @elastic/kibana-app-services diff --git a/.i18nrc.json b/.i18nrc.json index 63e4cf6d2fbb9..afe5c7e7627f3 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -19,7 +19,6 @@ "home": "src/plugins/home", "flot": "packages/kbn-ui-shared-deps-src/src/flot_charts", "charts": "src/plugins/charts", - "customIntegrations": "src/plugins/custom_integrations", "esUi": "src/plugins/es_ui_shared", "devTools": "src/plugins/dev_tools", "expressions": "src/plugins/expressions", @@ -43,7 +42,7 @@ "esQuery": "packages/kbn-es-query/src", "presentationUtil": "src/plugins/presentation_util", "indexPatternEditor": "src/plugins/index_pattern_editor", - "indexPatternFieldEditor": "src/plugins/index_pattern_field_editor", + "indexPatternFieldEditor": "src/plugins/data_view_field_editor", "indexPatternManagement": "src/plugins/index_pattern_management", "interactiveSetup": "src/plugins/interactive_setup", "advancedSettings": "src/plugins/advanced_settings", diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index bd516454fa420..40ad65d43b5de 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -53,6 +53,10 @@ as uiSettings within the code. |The data plugin provides common data access services, such as search and query, for solutions and application developers. +|{kib-repo}blob/{branch}/src/plugins/data_view_field_editor/README.md[dataViewFieldEditor] +|The reusable field editor across Kibana! + + |{kib-repo}blob/{branch}/src/plugins/data_views/README.mdx[dataViews] |The data views API provides a consistent method of structuring and formatting documents and field lists across the various Kibana apps. Its typically used in conjunction with @@ -141,10 +145,6 @@ for use in their own application. |Create index patterns from within Kibana apps. -|{kib-repo}blob/{branch}/src/plugins/index_pattern_field_editor/README.md[indexPatternFieldEditor] -|The reusable field editor across Kibana! - - |{kib-repo}blob/{branch}/src/plugins/index_pattern_management[indexPatternManagement] |WARNING: Missing README. diff --git a/examples/data_view_field_editor_example/README.md b/examples/data_view_field_editor_example/README.md new file mode 100644 index 0000000000000..a82d7cc54e5a7 --- /dev/null +++ b/examples/data_view_field_editor_example/README.md @@ -0,0 +1,7 @@ +## Data view field editor example + +This example data view field editor app shows how to: + - Edit data view fields via flyout + - Delete data view runtime fields with modal confirm prompt + +To run this example, use the command `yarn start --run-examples`. diff --git a/examples/index_pattern_field_editor_example/kibana.json b/examples/data_view_field_editor_example/kibana.json similarity index 55% rename from examples/index_pattern_field_editor_example/kibana.json rename to examples/data_view_field_editor_example/kibana.json index 680f75e8ee4fa..8d079d10fbc72 100644 --- a/examples/index_pattern_field_editor_example/kibana.json +++ b/examples/data_view_field_editor_example/kibana.json @@ -1,15 +1,15 @@ { - "id": "indexPatternFieldEditorExample", + "id": "dataViewFieldEditorExample", "kibanaVersion": "kibana", "version": "0.0.1", "server": false, "ui": true, - "requiredPlugins": ["data", "indexPatternFieldEditor", "developerExamples"], + "requiredPlugins": ["data", "dataViewFieldEditor", "developerExamples"], "optionalPlugins": [], "requiredBundles": [], "owner": { "name": "App Services", "githubTeam": "kibana-app-services" }, - "description": "Index pattern field editor example app" + "description": "Data view field editor example app" } diff --git a/examples/index_pattern_field_editor_example/public/app.tsx b/examples/data_view_field_editor_example/public/app.tsx similarity index 83% rename from examples/index_pattern_field_editor_example/public/app.tsx rename to examples/data_view_field_editor_example/public/app.tsx index bd725759380aa..ac7e3b60482e0 100644 --- a/examples/index_pattern_field_editor_example/public/app.tsx +++ b/examples/data_view_field_editor_example/public/app.tsx @@ -25,14 +25,14 @@ import { IndexPattern, IndexPatternField, } from '../../../src/plugins/data/public'; -import { IndexPatternFieldEditorStart } from '../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../src/plugins/data_view_field_editor/public'; interface Props { indexPattern?: IndexPattern; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; } -const IndexPatternFieldEditorExample = ({ indexPattern, indexPatternFieldEditor }: Props) => { +const IndexPatternFieldEditorExample = ({ indexPattern, dataViewFieldEditor }: Props) => { const [fields, setFields] = useState<IndexPatternField[]>( indexPattern?.getNonScriptedFields() || [] ); @@ -52,8 +52,8 @@ const IndexPatternFieldEditorExample = ({ indexPattern, indexPatternFieldEditor type: 'icon', 'data-test-subj': 'editField', onClick: (fld: IndexPatternField) => - indexPatternFieldEditor.openEditor({ - ctx: { indexPattern: indexPattern! }, + dataViewFieldEditor.openEditor({ + ctx: { dataView: indexPattern! }, fieldName: fld.name, onSave: refreshFields, }), @@ -66,10 +66,10 @@ const IndexPatternFieldEditorExample = ({ indexPattern, indexPatternFieldEditor 'data-test-subj': 'deleteField', available: (fld) => !!fld.runtimeField, onClick: (fld: IndexPatternField) => - indexPatternFieldEditor.openDeleteModal({ + dataViewFieldEditor.openDeleteModal({ fieldName: fld.name, ctx: { - indexPattern: indexPattern!, + dataView: indexPattern!, }, onDelete: refreshFields, }), @@ -84,8 +84,8 @@ const IndexPatternFieldEditorExample = ({ indexPattern, indexPatternFieldEditor <div> <EuiButton onClick={() => - indexPatternFieldEditor.openEditor({ - ctx: { indexPattern: indexPattern! }, + dataViewFieldEditor.openEditor({ + ctx: { dataView: indexPattern! }, onSave: refreshFields, }) } @@ -125,18 +125,18 @@ const IndexPatternFieldEditorExample = ({ indexPattern, indexPatternFieldEditor interface RenderAppDependencies { data: DataPublicPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; } export const renderApp = async ( - { data, indexPatternFieldEditor }: RenderAppDependencies, + { data, dataViewFieldEditor }: RenderAppDependencies, { element }: AppMountParameters ) => { const indexPattern = (await data.indexPatterns.getDefault()) || undefined; ReactDOM.render( <IndexPatternFieldEditorExample indexPattern={indexPattern} - indexPatternFieldEditor={indexPatternFieldEditor} + dataViewFieldEditor={dataViewFieldEditor} />, element ); diff --git a/examples/index_pattern_field_editor_example/public/index.ts b/examples/data_view_field_editor_example/public/index.ts similarity index 100% rename from examples/index_pattern_field_editor_example/public/index.ts rename to examples/data_view_field_editor_example/public/index.ts diff --git a/examples/index_pattern_field_editor_example/public/plugin.tsx b/examples/data_view_field_editor_example/public/plugin.tsx similarity index 95% rename from examples/index_pattern_field_editor_example/public/plugin.tsx rename to examples/data_view_field_editor_example/public/plugin.tsx index ffd93c8a0735f..92d18030e19b8 100644 --- a/examples/index_pattern_field_editor_example/public/plugin.tsx +++ b/examples/data_view_field_editor_example/public/plugin.tsx @@ -9,11 +9,11 @@ import { Plugin, CoreSetup, AppMountParameters, AppNavLinkStatus } from '../../../src/core/public'; import { DeveloperExamplesSetup } from '../../developer_examples/public'; import { DataPublicPluginStart } from '../../../src/plugins/data/public'; -import { IndexPatternFieldEditorStart } from '../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../src/plugins/data_view_field_editor/public'; interface StartDeps { data: DataPublicPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; } interface SetupDeps { diff --git a/examples/index_pattern_field_editor_example/tsconfig.json b/examples/data_view_field_editor_example/tsconfig.json similarity index 85% rename from examples/index_pattern_field_editor_example/tsconfig.json rename to examples/data_view_field_editor_example/tsconfig.json index f11ca18fc1a82..62172718cc842 100644 --- a/examples/index_pattern_field_editor_example/tsconfig.json +++ b/examples/data_view_field_editor_example/tsconfig.json @@ -14,7 +14,7 @@ { "path": "../../src/core/tsconfig.json" }, { "path": "../../src/plugins/kibana_react/tsconfig.json" }, { "path": "../../src/plugins/data/tsconfig.json" }, - { "path": "../../src/plugins/index_pattern_field_editor/tsconfig.json" }, + { "path": "../../src/plugins/data_view_field_editor/tsconfig.json" }, { "path": "../developer_examples/tsconfig.json" }, ] } diff --git a/examples/field_formats_example/kibana.json b/examples/field_formats_example/kibana.json index a33375e661197..e8219c132dfa3 100644 --- a/examples/field_formats_example/kibana.json +++ b/examples/field_formats_example/kibana.json @@ -8,5 +8,5 @@ "githubTeam": "kibana-app-services" }, "description": "A plugin that demonstrates field formats usage", - "requiredPlugins": ["developerExamples", "fieldFormats", "indexPatternFieldEditor", "data"] + "requiredPlugins": ["developerExamples", "fieldFormats", "dataViewFieldEditor", "data"] } diff --git a/examples/field_formats_example/public/examples/3_creating_custom_format_editor.tsx b/examples/field_formats_example/public/examples/3_creating_custom_format_editor.tsx index dc2135c94985c..e3b2a7a876500 100644 --- a/examples/field_formats_example/public/examples/3_creating_custom_format_editor.tsx +++ b/examples/field_formats_example/public/examples/3_creating_custom_format_editor.tsx @@ -12,7 +12,7 @@ import { FieldFormatEditor, FieldFormatEditorFactory, IndexPatternFieldEditorSetup, -} from '../../../../src/plugins/index_pattern_field_editor/public'; +} from '../../../../src/plugins/data_view_field_editor/public'; import { ExampleCurrencyFormat } from './2_creating_custom_formatter'; // 1. Create an editor component diff --git a/examples/field_formats_example/public/plugin.tsx b/examples/field_formats_example/public/plugin.tsx index 5019fc6da1be2..b12304c4ce080 100755 --- a/examples/field_formats_example/public/plugin.tsx +++ b/examples/field_formats_example/public/plugin.tsx @@ -22,7 +22,7 @@ import { registerExampleFormat } from './examples/2_creating_custom_formatter'; import { IndexPatternFieldEditorStart, IndexPatternFieldEditorSetup, -} from '../../../src/plugins/index_pattern_field_editor/public'; +} from '../../../src/plugins/data_view_field_editor/public'; import { DataPublicPluginStart } from '../../../src/plugins/data/public'; import { registerExampleFormatEditor } from './examples/3_creating_custom_format_editor'; import img from './formats.png'; @@ -30,19 +30,19 @@ import img from './formats.png'; interface SetupDeps { developerExamples: DeveloperExamplesSetup; fieldFormats: FieldFormatsSetup; - indexPatternFieldEditor: IndexPatternFieldEditorSetup; + dataViewFieldEditor: IndexPatternFieldEditorSetup; } interface StartDeps { fieldFormats: FieldFormatsStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; data: DataPublicPluginStart; } export class FieldFormatsExamplePlugin implements Plugin<void, void, SetupDeps, StartDeps> { public setup(core: CoreSetup<StartDeps>, deps: SetupDeps) { registerExampleFormat(deps.fieldFormats); - registerExampleFormatEditor(deps.indexPatternFieldEditor); + registerExampleFormatEditor(deps.dataViewFieldEditor); // just for demonstration purposes: // opens a field editor using default index pattern and first number field @@ -65,9 +65,9 @@ export class FieldFormatsExamplePlugin implements Plugin<void, void, SetupDeps, return; } - plugins.indexPatternFieldEditor.openEditor({ + plugins.dataViewFieldEditor.openEditor({ ctx: { - indexPattern, + dataView: indexPattern, }, fieldName: numberField.name, }); diff --git a/examples/field_formats_example/tsconfig.json b/examples/field_formats_example/tsconfig.json index a0b609c95bae1..66b059df68943 100644 --- a/examples/field_formats_example/tsconfig.json +++ b/examples/field_formats_example/tsconfig.json @@ -18,6 +18,6 @@ { "path": "../developer_examples/tsconfig.json" }, { "path": "../../src/plugins/field_formats/tsconfig.json" }, { "path": "../../src/plugins/data/tsconfig.json" }, - { "path": "../../src/plugins/index_pattern_field_editor/tsconfig.json" } + { "path": "../../src/plugins/data_view_field_editor/tsconfig.json" } ] } diff --git a/examples/index_pattern_field_editor_example/README.md b/examples/index_pattern_field_editor_example/README.md deleted file mode 100644 index 35ae814fc10e2..0000000000000 --- a/examples/index_pattern_field_editor_example/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## index pattern field editor example - -This example index pattern field editor app shows how to: - - Edit index pattern fields via flyout - - Delete index pattern runtime fields with modal confirm prompt - -To run this example, use the command `yarn start --run-examples`. \ No newline at end of file diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index b39968f4889f5..6930875cb5c17 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -113,6 +113,6 @@ pageLoadAssetSize: uiActionsEnhanced: 38494 urlDrilldown: 30063 indexPatternEditor: 19123 - indexPatternFieldEditor: 34448 + dataViewFieldEditor: 20000 indexPatternManagement: 19165 reporting: 57003 diff --git a/src/plugins/index_pattern_field_editor/README.md b/src/plugins/data_view_field_editor/README.md similarity index 67% rename from src/plugins/index_pattern_field_editor/README.md rename to src/plugins/data_view_field_editor/README.md index f6ef06cd77b36..3e4c6fb8b77ab 100644 --- a/src/plugins/index_pattern_field_editor/README.md +++ b/src/plugins/data_view_field_editor/README.md @@ -1,25 +1,25 @@ -# Index pattern field editor +# Data view field editor The reusable field editor across Kibana! This editor can be used to -* create or edit a runtime field inside an index pattern. +* create or edit a runtime field inside a data view. * edit concrete (mapped) fields. In this case certain functionalities will be disabled like the possibility to change the field _type_ or to set the field _value_. ## How to use -You first need to add in your kibana.json the "`indexPatternFieldEditor`" plugin as a required dependency of your plugin. +You first need to add in your kibana.json the "`dataViewFieldEditor`" plugin as a required dependency of your plugin. -You will then receive in the start contract of the indexPatternFieldEditor plugin the following API: +You will then receive in the start contract of the dataViewFieldEditor plugin the following API: -### `userPermissions.editIndexPattern(): boolean` +### `userPermissions.editDataView(): boolean` -Convenience method that uses the `core.application.capabilities` api to determine whether the user can edit the index pattern. +Convenience method that uses the `core.application.capabilities` api to determine whether the user can edit the data view. ### `openEditor(options: OpenFieldEditorOptions): CloseEditor` -Use this method to open the index pattern field editor to either create (runtime) or edit (concrete | runtime) a field. +Use this method to open the data view field editor to either create (runtime) or edit (concrete | runtime) a field. #### `options` @@ -27,9 +27,9 @@ Use this method to open the index pattern field editor to either create (runtime This is the only required option. You need to provide the context in which the editor is being consumed. This object has the following properties: -- `indexPattern: IndexPattern`: the index pattern you want to create/edit the field into. +- `dataView: DataView`: the data view you want to create/edit the field into. -`onSave(field: IndexPatternField): void` (optional) +`onSave(field: DataViewField): void` (optional) You can provide an optional `onSave` handler to be notified when the field has being created/updated. This handler is called after the field has been persisted to the saved object. @@ -39,7 +39,7 @@ You can optionally pass the name of a field to edit. Leave empty to create a new ### `openDeleteModal(options: OpenFieldDeleteModalOptions): CloseEditor` -Use this method to open a confirmation modal to delete runtime fields from an index pattern. +Use this method to open a confirmation modal to delete runtime fields from a data view. #### `options` @@ -47,7 +47,7 @@ Use this method to open a confirmation modal to delete runtime fields from an in You need to provide the context in which the deletion modal is being consumed. This object has the following properties: -- `indexPattern: IndexPattern`: the index pattern you want to delete fields from. +- `dataView: DataView`: the index pattern you want to delete fields from. `onDelete(fieldNames: string[]): void` (optional) @@ -63,14 +63,14 @@ This children func React component provides a handler to delete one or multiple #### Props -* `indexPattern: IndexPattern`: the current index pattern. (**required**) +* `dataView: DataView`: the current dataView. (**required**) ```js -const { DeleteRuntimeFieldProvider } = indexPatternFieldEditor; +const { DeleteRuntimeFieldProvider } = dataViewFieldEditor; // Single field -<DeleteRuntimeFieldProvider indexPattern={indexPattern}> +<DeleteRuntimeFieldProvider dataView={dataView}> {(deleteField) => ( <EuiButton fill color="danger" onClick={() => deleteField('myField')}> Delete @@ -79,7 +79,7 @@ const { DeleteRuntimeFieldProvider } = indexPatternFieldEditor; </DeleteRuntimeFieldProvider> // Multiple fields -<DeleteRuntimeFieldProvider indexPattern={indexPattern}> +<DeleteRuntimeFieldProvider dataView={dataView}> {(deleteFields) => ( <EuiButton fill color="danger" onClick={() => deleteFields(['field1', 'field2', 'field3'])}> Delete diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor.helpers.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/field_editor.helpers.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor.helpers.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/field_editor.helpers.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor.test.tsx b/src/plugins/data_view_field_editor/__jest__/client_integration/field_editor.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor.test.tsx rename to src/plugins/data_view_field_editor/__jest__/client_integration/field_editor.test.tsx diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_content.helpers.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_content.helpers.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_content.helpers.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_content.helpers.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_content.test.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_content.test.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_content.test.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_content.test.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_preview.helpers.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_preview.helpers.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_preview.helpers.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_preview.helpers.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_preview.test.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_preview.test.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/field_editor_flyout_preview.test.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/field_editor_flyout_preview.test.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/common_actions.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/helpers/common_actions.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/common_actions.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/helpers/common_actions.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/http_requests.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/helpers/http_requests.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/http_requests.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/helpers/http_requests.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/index.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/helpers/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/index.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/helpers/index.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/jest.mocks.tsx b/src/plugins/data_view_field_editor/__jest__/client_integration/helpers/jest.mocks.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/jest.mocks.tsx rename to src/plugins/data_view_field_editor/__jest__/client_integration/helpers/jest.mocks.tsx diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/mocks.ts b/src/plugins/data_view_field_editor/__jest__/client_integration/helpers/mocks.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/mocks.ts rename to src/plugins/data_view_field_editor/__jest__/client_integration/helpers/mocks.ts diff --git a/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/setup_environment.tsx b/src/plugins/data_view_field_editor/__jest__/client_integration/helpers/setup_environment.tsx similarity index 99% rename from src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/setup_environment.tsx rename to src/plugins/data_view_field_editor/__jest__/client_integration/helpers/setup_environment.tsx index b11915855aa23..577aac09a744e 100644 --- a/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/setup_environment.tsx +++ b/src/plugins/data_view_field_editor/__jest__/client_integration/helpers/setup_environment.tsx @@ -103,7 +103,7 @@ export const WithFieldEditorDependencies = }); const dependencies: Context = { - indexPattern: { + dataView: { title: indexPatternNameForTest, fields: { getAll: spyIndexPatternGetAllFields }, } as any, diff --git a/src/plugins/index_pattern_field_editor/common/constants.ts b/src/plugins/data_view_field_editor/common/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/common/constants.ts rename to src/plugins/data_view_field_editor/common/constants.ts diff --git a/src/plugins/index_pattern_field_editor/jest.config.js b/src/plugins/data_view_field_editor/jest.config.js similarity index 74% rename from src/plugins/index_pattern_field_editor/jest.config.js rename to src/plugins/data_view_field_editor/jest.config.js index e1f8f57038e26..7a9329f655276 100644 --- a/src/plugins/index_pattern_field_editor/jest.config.js +++ b/src/plugins/data_view_field_editor/jest.config.js @@ -9,10 +9,10 @@ module.exports = { preset: '@kbn/test', rootDir: '../../..', - roots: ['<rootDir>/src/plugins/index_pattern_field_editor'], - coverageDirectory: '<rootDir>/target/kibana-coverage/jest/src/plugins/index_pattern_field_editor', + roots: ['<rootDir>/src/plugins/data_view_field_editor'], + coverageDirectory: '<rootDir>/target/kibana-coverage/jest/src/plugins/data_view_field_editor', coverageReporters: ['text', 'html'], collectCoverageFrom: [ - '<rootDir>/src/plugins/index_pattern_field_editor/{common,public,server}/**/*.{ts,tsx}', + '<rootDir>/src/plugins/data_view_field_editor/{common,public,server}/**/*.{ts,tsx}', ], }; diff --git a/src/plugins/data_view_field_editor/kibana.json b/src/plugins/data_view_field_editor/kibana.json new file mode 100644 index 0000000000000..813dbc8ad5fd3 --- /dev/null +++ b/src/plugins/data_view_field_editor/kibana.json @@ -0,0 +1,14 @@ +{ + "id": "dataViewFieldEditor", + "version": "kibana", + "server": true, + "ui": true, + "requiredPlugins": ["data", "fieldFormats", "dataViews"], + "optionalPlugins": ["usageCollection"], + "requiredBundles": ["kibanaReact", "esUiShared"], + "owner": { + "name": "App Services", + "githubTeam": "kibana-app-services" + }, + "description": "Reusable data view field editor across Kibana" +} diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/LICENSE.txt b/src/plugins/data_view_field_editor/public/assets/icons/LICENSE.txt similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/LICENSE.txt rename to src/plugins/data_view_field_editor/public/assets/icons/LICENSE.txt diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/cv.png b/src/plugins/data_view_field_editor/public/assets/icons/cv.png similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/cv.png rename to src/plugins/data_view_field_editor/public/assets/icons/cv.png diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/de.png b/src/plugins/data_view_field_editor/public/assets/icons/de.png similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/de.png rename to src/plugins/data_view_field_editor/public/assets/icons/de.png diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/go.png b/src/plugins/data_view_field_editor/public/assets/icons/go.png similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/go.png rename to src/plugins/data_view_field_editor/public/assets/icons/go.png diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/ne.png b/src/plugins/data_view_field_editor/public/assets/icons/ne.png similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/ne.png rename to src/plugins/data_view_field_editor/public/assets/icons/ne.png diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/ni.png b/src/plugins/data_view_field_editor/public/assets/icons/ni.png similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/ni.png rename to src/plugins/data_view_field_editor/public/assets/icons/ni.png diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/stop.png b/src/plugins/data_view_field_editor/public/assets/icons/stop.png similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/stop.png rename to src/plugins/data_view_field_editor/public/assets/icons/stop.png diff --git a/src/plugins/index_pattern_field_editor/public/assets/icons/us.png b/src/plugins/data_view_field_editor/public/assets/icons/us.png similarity index 100% rename from src/plugins/index_pattern_field_editor/public/assets/icons/us.png rename to src/plugins/data_view_field_editor/public/assets/icons/us.png diff --git a/src/plugins/index_pattern_field_editor/public/components/confirm_modals/delete_field_modal.tsx b/src/plugins/data_view_field_editor/public/components/confirm_modals/delete_field_modal.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/confirm_modals/delete_field_modal.tsx rename to src/plugins/data_view_field_editor/public/components/confirm_modals/delete_field_modal.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/confirm_modals/index.ts b/src/plugins/data_view_field_editor/public/components/confirm_modals/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/confirm_modals/index.ts rename to src/plugins/data_view_field_editor/public/components/confirm_modals/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/confirm_modals/modified_field_modal.tsx b/src/plugins/data_view_field_editor/public/components/confirm_modals/modified_field_modal.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/confirm_modals/modified_field_modal.tsx rename to src/plugins/data_view_field_editor/public/components/confirm_modals/modified_field_modal.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/confirm_modals/save_field_type_or_name_changed_modal.tsx b/src/plugins/data_view_field_editor/public/components/confirm_modals/save_field_type_or_name_changed_modal.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/confirm_modals/save_field_type_or_name_changed_modal.tsx rename to src/plugins/data_view_field_editor/public/components/confirm_modals/save_field_type_or_name_changed_modal.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx b/src/plugins/data_view_field_editor/public/components/delete_field_provider.tsx similarity index 87% rename from src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx rename to src/plugins/data_view_field_editor/public/components/delete_field_provider.tsx index 4ec766fe1c851..9a960674e061e 100644 --- a/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx +++ b/src/plugins/data_view_field_editor/public/components/delete_field_provider.tsx @@ -8,21 +8,21 @@ import React, { useCallback, useRef, useEffect } from 'react'; -import { IndexPattern } from '../shared_imports'; +import { DataView } from '../shared_imports'; import { OpenFieldDeleteModalOptions } from '../open_delete_modal'; import { CloseEditor } from '../types'; type DeleteFieldFunc = (fieldName: string | string[]) => void; export interface Props { children: (deleteFieldHandler: DeleteFieldFunc) => React.ReactNode; - indexPattern: IndexPattern; + dataView: DataView; onDelete?: (fieldNames: string[]) => void; } export const getDeleteFieldProvider = ( modalOpener: (options: OpenFieldDeleteModalOptions) => CloseEditor ): React.FunctionComponent<Props> => { - return React.memo(({ indexPattern, children, onDelete }: Props) => { + return React.memo(({ dataView, children, onDelete }: Props) => { const closeModal = useRef<CloseEditor | null>(null); const deleteFields = useCallback( async (fieldName: string | string[]) => { @@ -31,13 +31,13 @@ export const getDeleteFieldProvider = ( } closeModal.current = modalOpener({ ctx: { - indexPattern, + dataView, }, fieldName, onDelete, }); }, - [onDelete, indexPattern] + [onDelete, dataView] ); useEffect(() => { diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/advanced_parameters_section.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/advanced_parameters_section.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/advanced_parameters_section.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/advanced_parameters_section.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/constants.ts b/src/plugins/data_view_field_editor/public/components/field_editor/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_editor/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/field_editor.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/field_editor.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/field_editor.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/field_editor.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/custom_label_field.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/form_fields/custom_label_field.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/custom_label_field.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/form_fields/custom_label_field.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/format_field.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/form_fields/format_field.tsx similarity index 94% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/format_field.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/form_fields/format_field.tsx index 2ff4a48477def..c584a59eda8d1 100644 --- a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/format_field.tsx +++ b/src/plugins/data_view_field_editor/public/components/field_editor/form_fields/format_field.tsx @@ -15,7 +15,7 @@ import type { FieldFormInternal } from '../field_editor'; import type { FieldFormatConfig } from '../../../types'; export const FormatField = () => { - const { indexPattern, uiSettings, fieldFormats, fieldFormatEditors } = useFieldEditorContext(); + const { dataView, uiSettings, fieldFormats, fieldFormatEditors } = useFieldEditorContext(); const isMounted = useRef(false); const [{ type }] = useFormData<FieldFormInternal>({ watch: ['name', 'type'] }); const { getFields, isSubmitted } = useFormContext(); @@ -62,7 +62,7 @@ export const FormatField = () => { <FormatSelectEditor esTypes={typeValue || (['keyword'] as ES_FIELD_TYPES[])} - indexPattern={indexPattern} + indexPattern={dataView} fieldFormatEditors={fieldFormatEditors} fieldFormats={fieldFormats} uiSettings={uiSettings} diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/index.ts b/src/plugins/data_view_field_editor/public/components/field_editor/form_fields/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/index.ts rename to src/plugins/data_view_field_editor/public/components/field_editor/form_fields/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/popularity_field.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/form_fields/popularity_field.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/popularity_field.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/form_fields/popularity_field.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/script_field.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/form_fields/script_field.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/script_field.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/form_fields/script_field.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/type_field.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/form_fields/type_field.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_fields/type_field.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/form_fields/type_field.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_row.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/form_row.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_row.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/form_row.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/form_schema.ts b/src/plugins/data_view_field_editor/public/components/field_editor/form_schema.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/form_schema.ts rename to src/plugins/data_view_field_editor/public/components/field_editor/form_schema.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/index.ts b/src/plugins/data_view_field_editor/public/components/field_editor/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/index.ts rename to src/plugins/data_view_field_editor/public/components/field_editor/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/lib.ts b/src/plugins/data_view_field_editor/public/components/field_editor/lib.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/lib.ts rename to src/plugins/data_view_field_editor/public/components/field_editor/lib.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor/shadowing_field_warning.tsx b/src/plugins/data_view_field_editor/public/components/field_editor/shadowing_field_warning.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor/shadowing_field_warning.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor/shadowing_field_warning.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx b/src/plugins/data_view_field_editor/public/components/field_editor_context.tsx similarity index 94% rename from src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor_context.tsx index 74bf2657ba3de..e6e48c477ebc9 100644 --- a/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx +++ b/src/plugins/data_view_field_editor/public/components/field_editor_context.tsx @@ -8,12 +8,12 @@ import React, { createContext, useContext, FunctionComponent, useMemo } from 'react'; import { NotificationsStart, CoreStart } from 'src/core/public'; -import type { IndexPattern, DataPublicPluginStart } from '../shared_imports'; +import type { DataView, DataPublicPluginStart } from '../shared_imports'; import { ApiService } from '../lib/api'; import type { InternalFieldType, PluginStart } from '../types'; export interface Context { - indexPattern: IndexPattern; + dataView: DataView; fieldTypeToProcess: InternalFieldType; uiSettings: CoreStart['uiSettings']; links: { @@ -45,7 +45,7 @@ const fieldEditorContext = createContext<Context | undefined>(undefined); export const FieldEditorProvider: FunctionComponent<Context> = ({ services, - indexPattern, + dataView, links, uiSettings, fieldTypeToProcess, @@ -57,7 +57,7 @@ export const FieldEditorProvider: FunctionComponent<Context> = ({ }) => { const ctx = useMemo<Context>( () => ({ - indexPattern, + dataView, fieldTypeToProcess, links, uiSettings, @@ -68,7 +68,7 @@ export const FieldEditorProvider: FunctionComponent<Context> = ({ existingConcreteFields, }), [ - indexPattern, + dataView, fieldTypeToProcess, services, links, diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content.tsx b/src/plugins/data_view_field_editor/public/components/field_editor_flyout_content.tsx similarity index 98% rename from src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor_flyout_content.tsx index d1dbb50ebf2e4..66308dbfb752a 100644 --- a/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content.tsx +++ b/src/plugins/data_view_field_editor/public/components/field_editor_flyout_content.tsx @@ -67,7 +67,7 @@ const FieldEditorFlyoutContentComponent = ({ }: Props) => { const isMounted = useRef(false); const isEditingExistingField = !!field; - const { indexPattern } = useFieldEditorContext(); + const { dataView } = useFieldEditorContext(); const { panel: { isVisible: isPanelVisible }, } = useFieldPreviewContext(); @@ -218,7 +218,7 @@ const FieldEditorFlyoutContentComponent = ({ id="indexPatternFieldEditor.editor.flyoutEditFieldSubtitle" defaultMessage="Data view: {patternName}" values={{ - patternName: <i>{indexPattern.title}</i>, + patternName: <i>{dataView.title}</i>, }} /> </p> diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx b/src/plugins/data_view_field_editor/public/components/field_editor_flyout_content_container.tsx similarity index 83% rename from src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor_flyout_content_container.tsx index 1738c55ba1f55..5b431424c1b44 100644 --- a/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx +++ b/src/plugins/data_view_field_editor/public/components/field_editor_flyout_content_container.tsx @@ -12,11 +12,12 @@ import { i18n } from '@kbn/i18n'; import { METRIC_TYPE } from '@kbn/analytics'; import { - IndexPatternField, - IndexPattern, + DataViewField, + DataView, DataPublicPluginStart, RuntimeType, UsageCollectionStart, + DataViewsPublicPluginStart, } from '../shared_imports'; import type { Field, PluginStart, InternalFieldType } from '../types'; import { pluginName } from '../constants'; @@ -30,20 +31,20 @@ import { FieldPreviewProvider } from './preview'; export interface Props { /** Handler for the "save" footer button */ - onSave: (field: IndexPatternField) => void; + onSave: (field: DataViewField) => void; /** Handler for the "cancel" footer button */ onCancel: () => void; onMounted?: FieldEditorFlyoutContentProps['onMounted']; /** The docLinks start service from core */ docLinks: DocLinksStart; /** The index pattern where the field will be added */ - indexPattern: IndexPattern; + dataView: DataView; /** The Kibana field type of the field to create or edit (default: "runtime") */ fieldTypeToProcess: InternalFieldType; /** Optional field to edit */ - field?: IndexPatternField; + field?: DataViewField; /** Services */ - indexPatternService: DataPublicPluginStart['indexPatterns']; + dataViews: DataViewsPublicPluginStart; notifications: NotificationsStart; search: DataPublicPluginStart['search']; usageCollection: UsageCollectionStart; @@ -68,8 +69,8 @@ export const FieldEditorFlyoutContentContainer = ({ onMounted, docLinks, fieldTypeToProcess, - indexPattern, - indexPatternService, + dataView, + dataViews, search, notifications, usageCollection, @@ -78,10 +79,10 @@ export const FieldEditorFlyoutContentContainer = ({ fieldFormats, uiSettings, }: Props) => { - const fieldToEdit = deserializeField(indexPattern, field); + const fieldToEdit = deserializeField(dataView, field); const [isSaving, setIsSaving] = useState(false); - const { fields } = indexPattern; + const { fields } = dataView; const namesNotAllowed = useMemo(() => fields.map((fld) => fld.name), [fields]); @@ -125,10 +126,10 @@ export const FieldEditorFlyoutContentContainer = ({ } catch {} // rename an existing runtime field if (field?.name && field.name !== updatedField.name) { - indexPattern.removeRuntimeField(field.name); + dataView.removeRuntimeField(field.name); } - indexPattern.addRuntimeField(updatedField.name, { + dataView.addRuntimeField(updatedField.name, { type: updatedField.type as RuntimeType, script, }); @@ -139,24 +140,24 @@ export const FieldEditorFlyoutContentContainer = ({ } catch {} } - const editedField = indexPattern.getFieldByName(updatedField.name); + const editedField = dataView.getFieldByName(updatedField.name); try { if (!editedField) { throw new Error( - `Unable to find field named '${updatedField.name}' on index pattern '${indexPattern.title}'` + `Unable to find field named '${updatedField.name}' on index pattern '${dataView.title}'` ); } - indexPattern.setFieldCustomLabel(updatedField.name, updatedField.customLabel); + dataView.setFieldCustomLabel(updatedField.name, updatedField.customLabel); editedField.count = updatedField.popularity || 0; if (updatedField.format) { - indexPattern.setFieldFormat(updatedField.name, updatedField.format); + dataView.setFieldFormat(updatedField.name, updatedField.format); } else { - indexPattern.deleteFieldFormat(updatedField.name); + dataView.deleteFieldFormat(updatedField.name); } - await indexPatternService.updateSavedObject(indexPattern).then(() => { + await dataViews.updateSavedObject(dataView).then(() => { const message = i18n.translate('indexPatternFieldEditor.deleteField.savedHeader', { defaultMessage: "Saved '{fieldName}'", values: { fieldName: updatedField.name }, @@ -173,20 +174,12 @@ export const FieldEditorFlyoutContentContainer = ({ setIsSaving(false); } }, - [ - onSave, - indexPattern, - indexPatternService, - notifications, - fieldTypeToProcess, - field?.name, - usageCollection, - ] + [onSave, dataView, dataViews, notifications, fieldTypeToProcess, field?.name, usageCollection] ); return ( <FieldEditorProvider - indexPattern={indexPattern} + dataView={dataView} uiSettings={uiSettings} links={getLinks(docLinks)} fieldTypeToProcess={fieldTypeToProcess} diff --git a/src/plugins/index_pattern_field_editor/public/components/field_editor_loader.tsx b/src/plugins/data_view_field_editor/public/components/field_editor_loader.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_editor_loader.tsx rename to src/plugins/data_view_field_editor/public/components/field_editor_loader.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/__snapshots__/format_editor.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/__snapshots__/format_editor.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/__snapshots__/format_editor.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/__snapshots__/format_editor.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/__snapshots__/bytes.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/__snapshots__/bytes.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/__snapshots__/bytes.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/__snapshots__/bytes.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/bytes.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/bytes.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/bytes.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/bytes.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/bytes.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/bytes.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/bytes.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/bytes.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/bytes/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/bytes/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/__snapshots__/color.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/__snapshots__/color.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/__snapshots__/color.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/__snapshots__/color.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/color.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/color.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/color.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/color.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/color.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/color.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/color.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/color.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/color/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/color/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/__snapshots__/date.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/__snapshots__/date.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/__snapshots__/date.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/__snapshots__/date.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/date.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/date.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/date.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/date.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/date.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/date.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/date.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/date.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/__snapshots__/date_nanos.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/__snapshots__/date_nanos.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/__snapshots__/date_nanos.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/__snapshots__/date_nanos.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/date_nanos.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/date_nanos/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/date_nanos/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/__snapshots__/default.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/__snapshots__/default.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/__snapshots__/default.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/__snapshots__/default.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/default.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/default.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/default.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/default.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/default.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/default.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/default.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/default.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/default/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/default/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/__snapshots__/duration.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/__snapshots__/duration.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/__snapshots__/duration.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/__snapshots__/duration.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/duration.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/duration.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/duration.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/duration.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/duration.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/duration.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/duration.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/duration.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/index.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/index.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/duration/index.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/duration/index.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/__snapshots__/histogram.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/__snapshots__/histogram.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/__snapshots__/histogram.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/__snapshots__/histogram.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/histogram.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/histogram.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/histogram.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/histogram.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/histogram.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/histogram.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/histogram.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/histogram.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/histogram/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/histogram/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/__snapshots__/number.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/__snapshots__/number.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/__snapshots__/number.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/__snapshots__/number.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/number.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/number.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/number.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/number.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/number.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/number.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/number/number.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/number/number.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/__snapshots__/percent.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/__snapshots__/percent.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/__snapshots__/percent.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/__snapshots__/percent.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/percent.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/percent.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/percent.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/percent.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/percent.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/percent.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/percent/percent.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/percent/percent.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/__snapshots__/static_lookup.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/__snapshots__/static_lookup.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/__snapshots__/static_lookup.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/__snapshots__/static_lookup.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/static_lookup/static_lookup.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/__snapshots__/string.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/__snapshots__/string.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/__snapshots__/string.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/__snapshots__/string.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/string.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/string.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/string.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/string.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/string.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/string.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/string/string.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/string/string.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/__snapshots__/truncate.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/sample.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/sample.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/sample.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/sample.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/truncate.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/truncate.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/truncate.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/truncate.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/truncate.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/truncate.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/truncate/truncate.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/truncate/truncate.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/types.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/types.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/types.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/types.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/__snapshots__/url.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/__snapshots__/url.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/__snapshots__/url.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/__snapshots__/url.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/constants.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/constants.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/url.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/url.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/url.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/url.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/url.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/url.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/editors/url/url.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/editors/url/url.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/field_format_editor.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/field_format_editor.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/format_editor.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/format_editor.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/format_editor.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/format_editor.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/format_editor.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/format_editor.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/format_editor.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/format_editor.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/__snapshots__/samples.test.tsx.snap b/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/__snapshots__/samples.test.tsx.snap similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/__snapshots__/samples.test.tsx.snap rename to src/plugins/data_view_field_editor/public/components/field_format_editor/samples/__snapshots__/samples.test.tsx.snap diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/index.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/index.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/samples/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/samples.scss b/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.scss similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/samples.scss rename to src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.scss diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/samples.test.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.test.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/samples.test.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.test.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/samples.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/samples/samples.tsx rename to src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/field_format_editor/types.ts b/src/plugins/data_view_field_editor/public/components/field_format_editor/types.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/field_format_editor/types.ts rename to src/plugins/data_view_field_editor/public/components/field_format_editor/types.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panel.tsx b/src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panel.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panel.tsx rename to src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panel.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels.scss b/src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels.scss similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels.scss rename to src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels.scss diff --git a/src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels.tsx b/src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels.tsx rename to src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels_content.tsx b/src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels_content.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels_content.tsx rename to src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels_content.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels_footer.tsx b/src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels_footer.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels_footer.tsx rename to src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels_footer.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels_header.tsx b/src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels_header.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/flyout_panels/flyout_panels_header.tsx rename to src/plugins/data_view_field_editor/public/components/flyout_panels/flyout_panels_header.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/flyout_panels/index.ts b/src/plugins/data_view_field_editor/public/components/flyout_panels/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/flyout_panels/index.ts rename to src/plugins/data_view_field_editor/public/components/flyout_panels/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/index.ts b/src/plugins/data_view_field_editor/public/components/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/index.ts rename to src/plugins/data_view_field_editor/public/components/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/documents_nav_preview.tsx b/src/plugins/data_view_field_editor/public/components/preview/documents_nav_preview.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/documents_nav_preview.tsx rename to src/plugins/data_view_field_editor/public/components/preview/documents_nav_preview.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_list/field_list.scss b/src/plugins/data_view_field_editor/public/components/preview/field_list/field_list.scss similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_list/field_list.scss rename to src/plugins/data_view_field_editor/public/components/preview/field_list/field_list.scss diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_list/field_list.tsx b/src/plugins/data_view_field_editor/public/components/preview/field_list/field_list.tsx similarity index 99% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_list/field_list.tsx rename to src/plugins/data_view_field_editor/public/components/preview/field_list/field_list.tsx index 7c7ed35ae165d..f0e606ad1e70b 100644 --- a/src/plugins/index_pattern_field_editor/public/components/preview/field_list/field_list.tsx +++ b/src/plugins/data_view_field_editor/public/components/preview/field_list/field_list.tsx @@ -47,7 +47,7 @@ function fuzzyMatch(searchValue: string, text: string) { } export const PreviewFieldList: React.FC<Props> = ({ height, clearSearch, searchValue = '' }) => { - const { indexPattern } = useFieldEditorContext(); + const { dataView } = useFieldEditorContext(); const { currentDocument: { value: currentDocument }, pinnedFields: { value: pinnedFields, set: setPinnedFields }, @@ -57,7 +57,7 @@ export const PreviewFieldList: React.FC<Props> = ({ height, clearSearch, searchV const { fields: { getAll: getAllFields }, - } = indexPattern; + } = dataView; const indexPatternFields = useMemo(() => { return getAllFields(); diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_list/field_list_item.tsx b/src/plugins/data_view_field_editor/public/components/preview/field_list/field_list_item.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_list/field_list_item.tsx rename to src/plugins/data_view_field_editor/public/components/preview/field_list/field_list_item.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview.scss b/src/plugins/data_view_field_editor/public/components/preview/field_preview.scss similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_preview.scss rename to src/plugins/data_view_field_editor/public/components/preview/field_preview.scss diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview.tsx b/src/plugins/data_view_field_editor/public/components/preview/field_preview.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_preview.tsx rename to src/plugins/data_view_field_editor/public/components/preview/field_preview.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview_context.tsx b/src/plugins/data_view_field_editor/public/components/preview/field_preview_context.tsx similarity index 99% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_preview_context.tsx rename to src/plugins/data_view_field_editor/public/components/preview/field_preview_context.tsx index 74f77f91e2f13..f560cee59372f 100644 --- a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview_context.tsx +++ b/src/plugins/data_view_field_editor/public/components/preview/field_preview_context.tsx @@ -63,7 +63,7 @@ export const FieldPreviewProvider: FunctionComponent = ({ children }) => { }); const { - indexPattern, + dataView, fieldTypeToProcess, services: { search, @@ -188,7 +188,7 @@ export const FieldPreviewProvider: FunctionComponent = ({ children }) => { const [response, searchError] = await search .search({ params: { - index: indexPattern.title, + index: dataView.title, body: { size: limit, }, @@ -225,7 +225,7 @@ export const FieldPreviewProvider: FunctionComponent = ({ children }) => { }); } }, - [indexPattern, search] + [dataView, search] ); const loadDocument = useCallback( @@ -240,7 +240,7 @@ export const FieldPreviewProvider: FunctionComponent = ({ children }) => { const [response, searchError] = await search .search({ params: { - index: indexPattern.title, + index: dataView.title, body: { size: 1, query: { @@ -299,7 +299,7 @@ export const FieldPreviewProvider: FunctionComponent = ({ children }) => { setIsLoadingPreview(false); } }, - [indexPattern, search] + [dataView, search] ); const updatePreview = useCallback(async () => { diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview_empty_prompt.tsx b/src/plugins/data_view_field_editor/public/components/preview/field_preview_empty_prompt.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_preview_empty_prompt.tsx rename to src/plugins/data_view_field_editor/public/components/preview/field_preview_empty_prompt.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview_error.tsx b/src/plugins/data_view_field_editor/public/components/preview/field_preview_error.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_preview_error.tsx rename to src/plugins/data_view_field_editor/public/components/preview/field_preview_error.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview_header.tsx b/src/plugins/data_view_field_editor/public/components/preview/field_preview_header.tsx similarity index 92% rename from src/plugins/index_pattern_field_editor/public/components/preview/field_preview_header.tsx rename to src/plugins/data_view_field_editor/public/components/preview/field_preview_header.tsx index 28b75a43b7d11..6d327a7e0cdd8 100644 --- a/src/plugins/index_pattern_field_editor/public/components/preview/field_preview_header.tsx +++ b/src/plugins/data_view_field_editor/public/components/preview/field_preview_header.tsx @@ -24,7 +24,7 @@ const i18nTexts = { }; export const FieldPreviewHeader = () => { - const { indexPattern } = useFieldEditorContext(); + const { dataView } = useFieldEditorContext(); const { from, currentDocument: { isLoading: isFetchingDocument }, @@ -49,7 +49,7 @@ export const FieldPreviewHeader = () => { {i18n.translate('indexPatternFieldEditor.fieldPreview.subTitle', { defaultMessage: 'From: {from}', values: { - from: from.value === 'cluster' ? indexPattern.title : i18nTexts.customData, + from: from.value === 'cluster' ? dataView.title : i18nTexts.customData, }, })} </EuiTextColor> diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/image_preview_modal.tsx b/src/plugins/data_view_field_editor/public/components/preview/image_preview_modal.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/image_preview_modal.tsx rename to src/plugins/data_view_field_editor/public/components/preview/image_preview_modal.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/index.ts b/src/plugins/data_view_field_editor/public/components/preview/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/index.ts rename to src/plugins/data_view_field_editor/public/components/preview/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/is_updating_indicator.tsx b/src/plugins/data_view_field_editor/public/components/preview/is_updating_indicator.tsx similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/is_updating_indicator.tsx rename to src/plugins/data_view_field_editor/public/components/preview/is_updating_indicator.tsx diff --git a/src/plugins/index_pattern_field_editor/public/components/preview/types.ts b/src/plugins/data_view_field_editor/public/components/preview/types.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/components/preview/types.ts rename to src/plugins/data_view_field_editor/public/components/preview/types.ts diff --git a/src/plugins/index_pattern_field_editor/public/constants.ts b/src/plugins/data_view_field_editor/public/constants.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/constants.ts rename to src/plugins/data_view_field_editor/public/constants.ts diff --git a/src/plugins/index_pattern_field_editor/public/index.ts b/src/plugins/data_view_field_editor/public/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/index.ts rename to src/plugins/data_view_field_editor/public/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/lib/api.ts b/src/plugins/data_view_field_editor/public/lib/api.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/lib/api.ts rename to src/plugins/data_view_field_editor/public/lib/api.ts diff --git a/src/plugins/index_pattern_field_editor/public/lib/documentation.ts b/src/plugins/data_view_field_editor/public/lib/documentation.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/lib/documentation.ts rename to src/plugins/data_view_field_editor/public/lib/documentation.ts diff --git a/src/plugins/index_pattern_field_editor/public/lib/index.ts b/src/plugins/data_view_field_editor/public/lib/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/lib/index.ts rename to src/plugins/data_view_field_editor/public/lib/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts b/src/plugins/data_view_field_editor/public/lib/remove_fields.ts similarity index 76% rename from src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts rename to src/plugins/data_view_field_editor/public/lib/remove_fields.ts index bc9457424099f..abae8de69dcb6 100644 --- a/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts +++ b/src/plugins/data_view_field_editor/public/lib/remove_fields.ts @@ -9,21 +9,21 @@ import { i18n } from '@kbn/i18n'; import { METRIC_TYPE } from '@kbn/analytics'; import { NotificationsStart } from 'src/core/public'; -import { IndexPattern, UsageCollectionStart } from '../shared_imports'; +import { DataView, UsageCollectionStart } from '../shared_imports'; import { pluginName } from '../constants'; -import { DataPublicPluginStart } from '../../../data/public'; +import { DataViewsPublicPluginStart } from '../../../data_views/public'; export async function removeFields( fieldNames: string[], - indexPattern: IndexPattern, + dataView: DataView, services: { - indexPatternService: DataPublicPluginStart['indexPatterns']; + dataViews: DataViewsPublicPluginStart; usageCollection: UsageCollectionStart; notifications: NotificationsStart; } ) { fieldNames.forEach((fieldName) => { - indexPattern.removeRuntimeField(fieldName); + dataView.removeRuntimeField(fieldName); }); try { @@ -32,7 +32,7 @@ export async function removeFields( } catch {} try { - await services.indexPatternService.updateSavedObject(indexPattern); + await services.dataViews.updateSavedObject(dataView); } catch (e) { const title = i18n.translate('indexPatternFieldEditor.save.deleteErrorTitle', { defaultMessage: 'Failed to save field removal', diff --git a/src/plugins/index_pattern_field_editor/public/lib/runtime_field_validation.ts b/src/plugins/data_view_field_editor/public/lib/runtime_field_validation.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/lib/runtime_field_validation.ts rename to src/plugins/data_view_field_editor/public/lib/runtime_field_validation.ts diff --git a/src/plugins/index_pattern_field_editor/public/lib/serialization.ts b/src/plugins/data_view_field_editor/public/lib/serialization.ts similarity index 83% rename from src/plugins/index_pattern_field_editor/public/lib/serialization.ts rename to src/plugins/data_view_field_editor/public/lib/serialization.ts index 0f042cdac114f..833fe331203c2 100644 --- a/src/plugins/index_pattern_field_editor/public/lib/serialization.ts +++ b/src/plugins/data_view_field_editor/public/lib/serialization.ts @@ -6,13 +6,10 @@ * Side Public License, v 1. */ import { monaco } from '@kbn/monaco'; -import { IndexPatternField, IndexPattern } from '../shared_imports'; +import { DataViewField, DataView } from '../shared_imports'; import type { Field, RuntimeFieldPainlessError } from '../types'; -export const deserializeField = ( - indexPattern: IndexPattern, - field?: IndexPatternField -): Field | undefined => { +export const deserializeField = (dataView: DataView, field?: DataViewField): Field | undefined => { if (field === undefined) { return undefined; } @@ -23,7 +20,7 @@ export const deserializeField = ( script: field.runtimeField ? field.runtimeField.script : undefined, customLabel: field.customLabel, popularity: field.count, - format: indexPattern.getFormatterForFieldNoDefault(field.name)?.toJSON(), + format: dataView.getFormatterForFieldNoDefault(field.name)?.toJSON(), }; }; diff --git a/src/plugins/index_pattern_field_editor/public/mocks.ts b/src/plugins/data_view_field_editor/public/mocks.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/mocks.ts rename to src/plugins/data_view_field_editor/public/mocks.ts diff --git a/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx b/src/plugins/data_view_field_editor/public/open_delete_modal.tsx similarity index 86% rename from src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx rename to src/plugins/data_view_field_editor/public/open_delete_modal.tsx index 19ed7010ca3e7..84e3885ddb605 100644 --- a/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx +++ b/src/plugins/data_view_field_editor/public/open_delete_modal.tsx @@ -11,8 +11,8 @@ import { CoreStart, OverlayRef } from 'src/core/public'; import { toMountPoint, - DataPublicPluginStart, - IndexPattern, + DataViewsPublicPluginStart, + DataView, UsageCollectionStart, } from './shared_imports'; @@ -23,7 +23,7 @@ import { removeFields } from './lib/remove_fields'; export interface OpenFieldDeleteModalOptions { ctx: { - indexPattern: IndexPattern; + dataView: DataView; }; onDelete?: (fieldNames: string[]) => void; fieldName: string | string[]; @@ -31,12 +31,12 @@ export interface OpenFieldDeleteModalOptions { interface Dependencies { core: CoreStart; - indexPatternService: DataPublicPluginStart['indexPatterns']; + dataViews: DataViewsPublicPluginStart; usageCollection: UsageCollectionStart; } export const getFieldDeleteModalOpener = - ({ core, indexPatternService, usageCollection }: Dependencies) => + ({ core, dataViews, usageCollection }: Dependencies) => (options: OpenFieldDeleteModalOptions): CloseEditor => { const { overlays, notifications } = core; @@ -45,7 +45,7 @@ export const getFieldDeleteModalOpener = const openDeleteModal = ({ onDelete, fieldName, - ctx: { indexPattern }, + ctx: { dataView }, }: OpenFieldDeleteModalOptions): CloseEditor => { const fieldsToDelete = Array.isArray(fieldName) ? fieldName : [fieldName]; const closeModal = () => { @@ -58,8 +58,8 @@ export const getFieldDeleteModalOpener = const onConfirmDelete = async () => { closeModal(); - await removeFields(fieldsToDelete, indexPattern, { - indexPatternService, + await removeFields(fieldsToDelete, dataView, { + dataViews, usageCollection, notifications, }); diff --git a/src/plugins/index_pattern_field_editor/public/open_editor.tsx b/src/plugins/data_view_field_editor/public/open_editor.tsx similarity index 89% rename from src/plugins/index_pattern_field_editor/public/open_editor.tsx rename to src/plugins/data_view_field_editor/public/open_editor.tsx index 0109b8d95db52..277d7f5c549ae 100644 --- a/src/plugins/index_pattern_field_editor/public/open_editor.tsx +++ b/src/plugins/data_view_field_editor/public/open_editor.tsx @@ -13,10 +13,12 @@ import { i18n } from '@kbn/i18n'; import { createKibanaReactContext, toMountPoint, - IndexPatternField, + DataViewField, DataPublicPluginStart, - IndexPattern, + DataView, UsageCollectionStart, + DataViewsPublicPluginStart, + FieldFormatsStart, } from './shared_imports'; import type { PluginStart, InternalFieldType, CloseEditor } from './types'; @@ -26,9 +28,9 @@ import { FieldEditorLoader } from './components/field_editor_loader'; export interface OpenFieldEditorOptions { ctx: { - indexPattern: IndexPattern; + dataView: DataView; }; - onSave?: (field: IndexPatternField) => void; + onSave?: (field: DataViewField) => void; fieldName?: string; } @@ -36,9 +38,9 @@ interface Dependencies { core: CoreStart; /** The search service from the data plugin */ search: DataPublicPluginStart['search']; - indexPatternService: DataPublicPluginStart['indexPatterns']; + dataViews: DataViewsPublicPluginStart; apiService: ApiService; - fieldFormats: DataPublicPluginStart['fieldFormats']; + fieldFormats: FieldFormatsStart; fieldFormatEditors: PluginStart['fieldFormatEditors']; usageCollection: UsageCollectionStart; } @@ -46,7 +48,7 @@ interface Dependencies { export const getFieldEditorOpener = ({ core, - indexPatternService, + dataViews, fieldFormats, fieldFormatEditors, search, @@ -73,7 +75,7 @@ export const getFieldEditorOpener = const openEditor = ({ onSave, fieldName, - ctx: { indexPattern }, + ctx: { dataView }, }: OpenFieldEditorOptions): CloseEditor => { const closeEditor = () => { if (overlayRef) { @@ -82,7 +84,7 @@ export const getFieldEditorOpener = } }; - const onSaveField = (updatedField: IndexPatternField) => { + const onSaveField = (updatedField: DataViewField) => { closeEditor(); if (onSave) { @@ -90,7 +92,7 @@ export const getFieldEditorOpener = } }; - const field = fieldName ? indexPattern.getFieldByName(fieldName) : undefined; + const field = fieldName ? dataView.getFieldByName(fieldName) : undefined; if (fieldName && !field) { const err = i18n.translate('indexPatternFieldEditor.noSuchFieldName', { @@ -116,9 +118,9 @@ export const getFieldEditorOpener = docLinks={docLinks} field={field} fieldTypeToProcess={fieldTypeToProcess} - indexPattern={indexPattern} + dataView={dataView} search={search} - indexPatternService={indexPatternService} + dataViews={dataViews} notifications={notifications} usageCollection={usageCollection} apiService={apiService} diff --git a/src/plugins/index_pattern_field_editor/public/plugin.test.tsx b/src/plugins/data_view_field_editor/public/plugin.test.tsx similarity index 88% rename from src/plugins/index_pattern_field_editor/public/plugin.test.tsx rename to src/plugins/data_view_field_editor/public/plugin.test.tsx index de7a88b4c6d2a..4f609965171b5 100644 --- a/src/plugins/index_pattern_field_editor/public/plugin.test.tsx +++ b/src/plugins/data_view_field_editor/public/plugin.test.tsx @@ -25,15 +25,17 @@ import { usageCollectionPluginMock } from '../../usage_collection/public/mocks'; import { FieldEditorLoader } from './components/field_editor_loader'; import { IndexPatternFieldEditorPlugin } from './plugin'; import { DeleteFieldModal } from './components/confirm_modals/delete_field_modal'; -import { IndexPattern } from './shared_imports'; +import { DataView } from './shared_imports'; const noop = () => {}; -describe('IndexPatternFieldEditorPlugin', () => { +describe('DataViewFieldEditorPlugin', () => { const coreStart: CoreStart = coreMock.createStart(); const pluginStart = { data: dataPluginMock.createStartContract(), usageCollection: usageCollectionPluginMock.createSetupContract(), + dataViews: dataPluginMock.createStartContract().dataViews, + fieldFormats: dataPluginMock.createStartContract().fieldFormats, }; let plugin: IndexPatternFieldEditorPlugin; @@ -60,7 +62,7 @@ describe('IndexPatternFieldEditorPlugin', () => { }; const { openEditor } = await plugin.start(coreStartMocked, pluginStart); - openEditor({ onSave: onSaveSpy, ctx: { indexPattern: {} as any } }); + openEditor({ onSave: onSaveSpy, ctx: { dataView: {} as any } }); expect(openFlyout).toHaveBeenCalled(); @@ -79,7 +81,7 @@ describe('IndexPatternFieldEditorPlugin', () => { test('should return a handler to close the flyout', async () => { const { openEditor } = await plugin.start(coreStart, pluginStart); - const closeEditorHandler = openEditor({ onSave: noop, ctx: { indexPattern: {} as any } }); + const closeEditorHandler = openEditor({ onSave: noop, ctx: { dataView: {} as any } }); expect(typeof closeEditorHandler).toBe('function'); }); @@ -102,21 +104,19 @@ describe('IndexPatternFieldEditorPlugin', () => { }; const pluginStartMocked = { ...pluginStart, - data: { - ...pluginStart.data, - indexPatterns: { - ...pluginStart.data.indexPatterns, - updateSavedObject: jest.fn(), - }, + data: pluginStart.data, + dataViews: { + ...pluginStart.data.indexPatterns, + updateSavedObject: jest.fn(), }, }; const { openDeleteModal } = await plugin.start(coreStartMocked, pluginStartMocked); - const indexPatternMock = { removeRuntimeField: removeFieldSpy } as unknown as IndexPattern; + const indexPatternMock = { removeRuntimeField: removeFieldSpy } as unknown as DataView; openDeleteModal({ onDelete: onDeleteSpy, - ctx: { indexPattern: indexPatternMock }, + ctx: { dataView: indexPatternMock }, fieldName: ['a', 'b', 'c'], }); @@ -135,7 +135,7 @@ describe('IndexPatternFieldEditorPlugin', () => { expect(removeFieldSpy).toHaveBeenCalledWith('a'); expect(removeFieldSpy).toHaveBeenCalledWith('b'); expect(removeFieldSpy).toHaveBeenCalledWith('c'); - expect(pluginStartMocked.data.indexPatterns.updateSavedObject).toHaveBeenLastCalledWith( + expect(pluginStartMocked.dataViews.updateSavedObject).toHaveBeenLastCalledWith( indexPatternMock ); }); @@ -143,7 +143,7 @@ describe('IndexPatternFieldEditorPlugin', () => { test('should return a handler to close the modal', async () => { const { openDeleteModal } = await plugin.start(coreStart, pluginStart); - const closeModal = openDeleteModal({ fieldName: ['a'], ctx: { indexPattern: {} as any } }); + const closeModal = openDeleteModal({ fieldName: ['a'], ctx: { dataView: {} as any } }); expect(typeof closeModal).toBe('function'); }); @@ -152,7 +152,7 @@ describe('IndexPatternFieldEditorPlugin', () => { const TestComponent = ({ callback }: { callback: (...args: any[]) => void }) => { return ( - <DeleteRuntimeFieldProvider indexPattern={{} as any}> + <DeleteRuntimeFieldProvider dataView={{} as any}> {(...args) => { // Forward arguments passed down to children to our spy callback callback(args); diff --git a/src/plugins/index_pattern_field_editor/public/plugin.ts b/src/plugins/data_view_field_editor/public/plugin.ts similarity index 91% rename from src/plugins/index_pattern_field_editor/public/plugin.ts rename to src/plugins/data_view_field_editor/public/plugin.ts index c6d4aab1a95bf..c0f09cdace9ba 100644 --- a/src/plugins/index_pattern_field_editor/public/plugin.ts +++ b/src/plugins/data_view_field_editor/public/plugin.ts @@ -34,19 +34,19 @@ export class IndexPatternFieldEditorPlugin application: { capabilities }, http, } = core; - const { data, usageCollection } = plugins; + const { data, usageCollection, dataViews, fieldFormats } = plugins; const openDeleteModal = getFieldDeleteModalOpener({ core, - indexPatternService: data.indexPatterns, + dataViews, usageCollection, }); return { fieldFormatEditors, openEditor: getFieldEditorOpener({ core, - indexPatternService: data.indexPatterns, + dataViews, apiService: initApi(http), - fieldFormats: data.fieldFormats, + fieldFormats, fieldFormatEditors, search: data.search, usageCollection, diff --git a/src/plugins/index_pattern_field_editor/public/service/field_format_editors/field_format_editors.ts b/src/plugins/data_view_field_editor/public/service/field_format_editors/field_format_editors.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/service/field_format_editors/field_format_editors.ts rename to src/plugins/data_view_field_editor/public/service/field_format_editors/field_format_editors.ts diff --git a/src/plugins/index_pattern_field_editor/public/service/field_format_editors/index.ts b/src/plugins/data_view_field_editor/public/service/field_format_editors/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/service/field_format_editors/index.ts rename to src/plugins/data_view_field_editor/public/service/field_format_editors/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/service/format_editor_service.ts b/src/plugins/data_view_field_editor/public/service/format_editor_service.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/service/format_editor_service.ts rename to src/plugins/data_view_field_editor/public/service/format_editor_service.ts diff --git a/src/plugins/index_pattern_field_editor/public/service/index.ts b/src/plugins/data_view_field_editor/public/service/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/public/service/index.ts rename to src/plugins/data_view_field_editor/public/service/index.ts diff --git a/src/plugins/index_pattern_field_editor/public/shared_imports.ts b/src/plugins/data_view_field_editor/public/shared_imports.ts similarity index 89% rename from src/plugins/index_pattern_field_editor/public/shared_imports.ts rename to src/plugins/data_view_field_editor/public/shared_imports.ts index 5b377bdd1d2b5..c8332a2afe76d 100644 --- a/src/plugins/index_pattern_field_editor/public/shared_imports.ts +++ b/src/plugins/data_view_field_editor/public/shared_imports.ts @@ -7,7 +7,9 @@ */ export type { DataPublicPluginStart } from '../../data/public'; -export { IndexPattern, IndexPatternField } from '../../data/public'; + +export type { DataViewsPublicPluginStart, DataView, DataViewField } from '../../data_views/public'; +export type { FieldFormatsStart } from '../../field_formats/public'; export type { UsageCollectionStart } from '../../usage_collection/public'; diff --git a/src/plugins/index_pattern_field_editor/public/types.ts b/src/plugins/data_view_field_editor/public/types.ts similarity index 94% rename from src/plugins/index_pattern_field_editor/public/types.ts rename to src/plugins/data_view_field_editor/public/types.ts index 9d62a5568584c..25f97e6737bf2 100644 --- a/src/plugins/index_pattern_field_editor/public/types.ts +++ b/src/plugins/data_view_field_editor/public/types.ts @@ -10,9 +10,11 @@ import { FunctionComponent } from 'react'; import { DataPublicPluginStart, + DataViewsPublicPluginStart, RuntimeField, RuntimeType, UsageCollectionStart, + FieldFormatsStart, } from './shared_imports'; import { OpenFieldEditorOptions } from './open_editor'; import { OpenFieldDeleteModalOptions } from './open_delete_modal'; @@ -39,6 +41,8 @@ export interface SetupPlugins {} export interface StartPlugins { data: DataPublicPluginStart; usageCollection: UsageCollectionStart; + dataViews: DataViewsPublicPluginStart; + fieldFormats: FieldFormatsStart; } export type InternalFieldType = 'concrete' | 'runtime'; diff --git a/src/plugins/index_pattern_field_editor/server/index.ts b/src/plugins/data_view_field_editor/server/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/server/index.ts rename to src/plugins/data_view_field_editor/server/index.ts diff --git a/src/plugins/index_pattern_field_editor/server/plugin.ts b/src/plugins/data_view_field_editor/server/plugin.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/server/plugin.ts rename to src/plugins/data_view_field_editor/server/plugin.ts diff --git a/src/plugins/index_pattern_field_editor/server/routes/field_preview.ts b/src/plugins/data_view_field_editor/server/routes/field_preview.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/server/routes/field_preview.ts rename to src/plugins/data_view_field_editor/server/routes/field_preview.ts diff --git a/src/plugins/index_pattern_field_editor/server/routes/index.ts b/src/plugins/data_view_field_editor/server/routes/index.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/server/routes/index.ts rename to src/plugins/data_view_field_editor/server/routes/index.ts diff --git a/src/plugins/index_pattern_field_editor/server/shared_imports.ts b/src/plugins/data_view_field_editor/server/shared_imports.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/server/shared_imports.ts rename to src/plugins/data_view_field_editor/server/shared_imports.ts diff --git a/src/plugins/index_pattern_field_editor/server/types.ts b/src/plugins/data_view_field_editor/server/types.ts similarity index 100% rename from src/plugins/index_pattern_field_editor/server/types.ts rename to src/plugins/data_view_field_editor/server/types.ts diff --git a/src/plugins/index_pattern_field_editor/tsconfig.json b/src/plugins/data_view_field_editor/tsconfig.json similarity index 92% rename from src/plugins/index_pattern_field_editor/tsconfig.json rename to src/plugins/data_view_field_editor/tsconfig.json index 11a16ace1f2f5..2d1f603a1183d 100644 --- a/src/plugins/index_pattern_field_editor/tsconfig.json +++ b/src/plugins/data_view_field_editor/tsconfig.json @@ -16,6 +16,7 @@ "references": [ { "path": "../../core/tsconfig.json" }, { "path": "../data/tsconfig.json" }, + { "path": "../data_views/tsconfig.json" }, { "path": "../kibana_react/tsconfig.json" }, { "path": "../kibana_utils/tsconfig.json" }, { "path": "../es_ui_shared/tsconfig.json" }, diff --git a/src/plugins/data_views/public/index.ts b/src/plugins/data_views/public/index.ts index 650d2132212f8..8e42e4c8b6b0f 100644 --- a/src/plugins/data_views/public/index.ts +++ b/src/plugins/data_views/public/index.ts @@ -16,7 +16,7 @@ export { export { onRedirectNoIndexPattern } from './data_views'; export type { IIndexPatternFieldList, TypeMeta } from '../common'; -export { IndexPatternField } from '../common'; +export { IndexPatternField, DataViewField } from '../common'; export type { IndexPatternsContract, DataViewsContract } from './data_views'; export { diff --git a/src/plugins/discover/kibana.json b/src/plugins/discover/kibana.json index 92871ca6d5e17..d0ff54290256e 100644 --- a/src/plugins/discover/kibana.json +++ b/src/plugins/discover/kibana.json @@ -13,7 +13,7 @@ "navigation", "uiActions", "savedObjects", - "indexPatternFieldEditor" + "dataViewFieldEditor" ], "optionalPlugins": ["home", "share", "usageCollection", "spaces"], "requiredBundles": ["kibanaUtils", "home", "kibanaReact", "dataViews"], diff --git a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx index fcc4d32151018..7bfdf69dc712d 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx @@ -247,7 +247,7 @@ export function DiscoverSidebarComponent({ ? async (fieldName: string) => { const ref = indexPatternFieldEditor.openDeleteModal({ ctx: { - indexPattern: selectedIndexPattern, + dataView: selectedIndexPattern, }, fieldName, onDelete: async () => { diff --git a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx index 1df3044b81bf8..9d4b325389008 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx @@ -192,7 +192,7 @@ export function DiscoverSidebarResponsive(props: DiscoverSidebarResponsiveProps) } const ref = indexPatternFieldEditor.openEditor({ ctx: { - indexPattern: selectedIndexPattern, + dataView: selectedIndexPattern, }, fieldName, onSave: async () => { diff --git a/src/plugins/discover/public/build_services.ts b/src/plugins/discover/public/build_services.ts index 6003411e647c5..b86212251cb74 100644 --- a/src/plugins/discover/public/build_services.ts +++ b/src/plugins/discover/public/build_services.ts @@ -34,7 +34,7 @@ import { DiscoverStartPlugins } from './plugin'; import { getHistory } from './kibana_services'; import { UrlForwardingStart } from '../../url_forwarding/public'; import { NavigationPublicPluginStart } from '../../navigation/public'; -import { IndexPatternFieldEditorStart } from '../../index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../data_view_field_editor/public'; import { FieldFormatsStart } from '../../field_formats/public'; import { EmbeddableStart } from '../../embeddable/public'; @@ -101,7 +101,7 @@ export function buildServices( uiSettings: core.uiSettings, storage, trackUiMetric: usageCollection?.reportUiCounter.bind(usageCollection, 'discover'), - indexPatternFieldEditor: plugins.indexPatternFieldEditor, + indexPatternFieldEditor: plugins.dataViewFieldEditor, http: core.http, spaces: plugins.spaces, }; diff --git a/src/plugins/discover/public/plugin.tsx b/src/plugins/discover/public/plugin.tsx index ec95a82a5088e..cb1ac2fad4f61 100644 --- a/src/plugins/discover/public/plugin.tsx +++ b/src/plugins/discover/public/plugin.tsx @@ -56,7 +56,7 @@ import { DiscoverAppLocatorDefinition, DiscoverAppLocator } from './locator'; import { SearchEmbeddableFactory } from './embeddable'; import { UsageCollectionSetup } from '../../usage_collection/public'; import { replaceUrlHashQuery } from '../../kibana_utils/public/'; -import { IndexPatternFieldEditorStart } from '../../../plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../plugins/data_view_field_editor/public'; import { DeferredSpinner } from './components'; import { ViewSavedSearchAction } from './embeddable/view_saved_search_action'; import type { SpacesPluginStart } from '../../../../x-pack/plugins/spaces/public'; @@ -184,7 +184,7 @@ export interface DiscoverStartPlugins { inspector: InspectorPublicPluginStart; savedObjects: SavedObjectsStart; usageCollection?: UsageCollectionSetup; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; spaces?: SpacesPluginStart; } diff --git a/src/plugins/discover/tsconfig.json b/src/plugins/discover/tsconfig.json index 86534268c578a..961d265ab7ff9 100644 --- a/src/plugins/discover/tsconfig.json +++ b/src/plugins/discover/tsconfig.json @@ -22,7 +22,7 @@ { "path": "../usage_collection/tsconfig.json" }, { "path": "../kibana_utils/tsconfig.json" }, { "path": "../kibana_react/tsconfig.json" }, - { "path": "../index_pattern_field_editor/tsconfig.json"}, + { "path": "../data_view_field_editor/tsconfig.json"}, { "path": "../field_formats/tsconfig.json" }, { "path": "../data_views/tsconfig.json" }, { "path": "../../../x-pack/plugins/spaces/tsconfig.json" } diff --git a/src/plugins/index_pattern_field_editor/kibana.json b/src/plugins/index_pattern_field_editor/kibana.json deleted file mode 100644 index df09fd56136c3..0000000000000 --- a/src/plugins/index_pattern_field_editor/kibana.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "indexPatternFieldEditor", - "version": "kibana", - "server": true, - "ui": true, - "requiredPlugins": ["data"], - "optionalPlugins": ["usageCollection"], - "requiredBundles": ["kibanaReact", "esUiShared", "fieldFormats"], - "owner": { - "name": "App Services", - "githubTeam": "kibana-app-services" - }, - "description": "Reusable index pattern field editor across Kibana" -} diff --git a/src/plugins/index_pattern_management/kibana.json b/src/plugins/index_pattern_management/kibana.json index 3ba56eda3620e..81477e7c1be79 100644 --- a/src/plugins/index_pattern_management/kibana.json +++ b/src/plugins/index_pattern_management/kibana.json @@ -3,7 +3,7 @@ "version": "kibana", "server": true, "ui": true, - "requiredPlugins": ["management", "data", "urlForwarding", "indexPatternFieldEditor", "indexPatternEditor"], + "requiredPlugins": ["management", "data", "urlForwarding", "dataViewFieldEditor", "indexPatternEditor"], "requiredBundles": ["kibanaReact", "kibanaUtils"], "owner": { "name": "App Services", diff --git a/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/tabs.tsx b/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/tabs.tsx index 821f1d533e201..14075cecba705 100644 --- a/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/tabs.tsx +++ b/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/tabs.tsx @@ -80,7 +80,7 @@ export function Tabs({ location, refreshFields, }: TabsProps) { - const { application, uiSettings, docLinks, indexPatternFieldEditor } = + const { application, uiSettings, docLinks, dataViewFieldEditor } = useKibana<IndexPatternManagmentContext>().services; const [fieldFilter, setFieldFilter] = useState<string>(''); const [indexedFieldTypeFilter, setIndexedFieldTypeFilter] = useState<string>(''); @@ -91,7 +91,7 @@ export function Tabs({ getCurrentTab: () => TAB_INDEXED_FIELDS, }); const closeEditorHandler = useRef<() => void | undefined>(); - const { DeleteRuntimeFieldProvider } = indexPatternFieldEditor; + const { DeleteRuntimeFieldProvider } = dataViewFieldEditor; const refreshFilters = useCallback(() => { const tempIndexedFieldTypes: string[] = []; @@ -122,15 +122,15 @@ export function Tabs({ const openFieldEditor = useCallback( (fieldName?: string) => { - closeEditorHandler.current = indexPatternFieldEditor.openEditor({ + closeEditorHandler.current = dataViewFieldEditor.openEditor({ ctx: { - indexPattern, + dataView: indexPattern, }, onSave: refreshFields, fieldName, }); }, - [indexPatternFieldEditor, indexPattern, refreshFields] + [dataViewFieldEditor, indexPattern, refreshFields] ); useEffect(() => { @@ -217,7 +217,7 @@ export function Tabs({ <EuiSpacer size="m" /> {getFilterSection(type)} <EuiSpacer size="m" /> - <DeleteRuntimeFieldProvider indexPattern={indexPattern} onDelete={refreshFields}> + <DeleteRuntimeFieldProvider dataView={indexPattern} onDelete={refreshFields}> {(deleteField) => ( <IndexedFieldsTable fields={fields} diff --git a/src/plugins/index_pattern_management/public/components/field_editor/components/field_format_editor/field_format_editor.tsx b/src/plugins/index_pattern_management/public/components/field_editor/components/field_format_editor/field_format_editor.tsx index 3689ae70639c8..3cddad8dc3e76 100644 --- a/src/plugins/index_pattern_management/public/components/field_editor/components/field_format_editor/field_format_editor.tsx +++ b/src/plugins/index_pattern_management/public/components/field_editor/components/field_format_editor/field_format_editor.tsx @@ -12,7 +12,7 @@ import { EuiDelayRender, EuiLoadingContent } from '@elastic/eui'; import type { FieldFormatEditorFactory, FieldFormatEditor as InnerFieldFormatEditor, -} from 'src/plugins/index_pattern_field_editor/public'; +} from 'src/plugins/data_view_field_editor/public'; import type { FieldFormat } from 'src/plugins/field_formats/common'; export interface FieldFormatEditorProps { diff --git a/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx b/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx index 12080fed933f3..8e2dee14ba8f1 100644 --- a/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx +++ b/src/plugins/index_pattern_management/public/management_app/mount_management_section.tsx @@ -40,7 +40,7 @@ export async function mountManagementSection( ) { const [ { chrome, application, uiSettings, notifications, overlays, http, docLinks }, - { data, indexPatternFieldEditor, indexPatternEditor }, + { data, dataViewFieldEditor, indexPatternEditor }, indexPatternManagementStart, ] = await getStartServices(); const canSave = Boolean(application.capabilities.indexPatterns.save); @@ -58,10 +58,10 @@ export async function mountManagementSection( http, docLinks, data, - indexPatternFieldEditor, + dataViewFieldEditor, indexPatternManagementStart: indexPatternManagementStart as IndexPatternManagementStart, setBreadcrumbs: params.setBreadcrumbs, - fieldFormatEditors: indexPatternFieldEditor.fieldFormatEditors, + fieldFormatEditors: dataViewFieldEditor.fieldFormatEditors, IndexPatternEditor: indexPatternEditor.IndexPatternEditorComponent, }; diff --git a/src/plugins/index_pattern_management/public/mocks.ts b/src/plugins/index_pattern_management/public/mocks.ts index ec71c5fa3264e..df5cb9c73ffed 100644 --- a/src/plugins/index_pattern_management/public/mocks.ts +++ b/src/plugins/index_pattern_management/public/mocks.ts @@ -11,7 +11,7 @@ import { coreMock } from '../../../core/public/mocks'; import { managementPluginMock } from '../../management/public/mocks'; import { urlForwardingPluginMock } from '../../url_forwarding/public/mocks'; import { dataPluginMock } from '../../data/public/mocks'; -import { indexPatternFieldEditorPluginMock } from '../../index_pattern_field_editor/public/mocks'; +import { indexPatternFieldEditorPluginMock } from '../../data_view_field_editor/public/mocks'; import { indexPatternEditorPluginMock } from '../../index_pattern_editor/public/mocks'; import { IndexPatternManagementSetup, @@ -56,7 +56,7 @@ const createIndexPatternManagmentContext = (): { const { chrome, application, uiSettings, notifications, overlays } = coreMock.createStart(); const { http } = coreMock.createSetup(); const data = dataPluginMock.createStartContract(); - const indexPatternFieldEditor = indexPatternFieldEditorPluginMock.createStartContract(); + const dataViewFieldEditor = indexPatternFieldEditorPluginMock.createStartContract(); return { chrome, @@ -67,10 +67,10 @@ const createIndexPatternManagmentContext = (): { http, docLinks, data, - indexPatternFieldEditor, + dataViewFieldEditor, indexPatternManagementStart: createStartContract(), setBreadcrumbs: () => {}, - fieldFormatEditors: indexPatternFieldEditor.fieldFormatEditors, + fieldFormatEditors: dataViewFieldEditor.fieldFormatEditors, IndexPatternEditor: indexPatternEditorPluginMock.createStartContract().IndexPatternEditorComponent, }; diff --git a/src/plugins/index_pattern_management/public/plugin.ts b/src/plugins/index_pattern_management/public/plugin.ts index 47290bfdedb8d..66c93e23cc310 100644 --- a/src/plugins/index_pattern_management/public/plugin.ts +++ b/src/plugins/index_pattern_management/public/plugin.ts @@ -12,7 +12,7 @@ import { DataPublicPluginStart } from 'src/plugins/data/public'; import { UrlForwardingSetup } from '../../url_forwarding/public'; import { ManagementSetup } from '../../management/public'; -import { IndexPatternFieldEditorStart } from '../../index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../data_view_field_editor/public'; import { IndexPatternEditorStart } from '../../index_pattern_editor/public'; export interface IndexPatternManagementSetupDependencies { @@ -22,7 +22,7 @@ export interface IndexPatternManagementSetupDependencies { export interface IndexPatternManagementStartDependencies { data: DataPublicPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; indexPatternEditor: IndexPatternEditorStart; } diff --git a/src/plugins/index_pattern_management/public/types.ts b/src/plugins/index_pattern_management/public/types.ts index 7f21f1b82a059..d6e5b90476ebe 100644 --- a/src/plugins/index_pattern_management/public/types.ts +++ b/src/plugins/index_pattern_management/public/types.ts @@ -19,7 +19,7 @@ import { DataPublicPluginStart } from 'src/plugins/data/public'; import { ManagementAppMountParams } from '../../management/public'; import { IndexPatternManagementStart } from './index'; import { KibanaReactContextValue } from '../../kibana_react/public'; -import { IndexPatternFieldEditorStart } from '../../index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../data_view_field_editor/public'; import { IndexPatternEditorStart } from '../../index_pattern_editor/public'; export interface IndexPatternManagmentContext { @@ -31,7 +31,7 @@ export interface IndexPatternManagmentContext { http: HttpSetup; docLinks: DocLinksStart; data: DataPublicPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; indexPatternManagementStart: IndexPatternManagementStart; setBreadcrumbs: ManagementAppMountParams['setBreadcrumbs']; fieldFormatEditors: IndexPatternFieldEditorStart['fieldFormatEditors']; diff --git a/src/plugins/index_pattern_management/tsconfig.json b/src/plugins/index_pattern_management/tsconfig.json index 2a719e98bea31..61de67c0d1132 100644 --- a/src/plugins/index_pattern_management/tsconfig.json +++ b/src/plugins/index_pattern_management/tsconfig.json @@ -18,7 +18,7 @@ { "path": "../kibana_react/tsconfig.json" }, { "path": "../kibana_utils/tsconfig.json" }, { "path": "../es_ui_shared/tsconfig.json" }, - { "path": "../index_pattern_field_editor/tsconfig.json" }, + { "path": "../data_view_field_editor/tsconfig.json" }, { "path": "../index_pattern_editor/tsconfig.json" }, ] } diff --git a/test/api_integration/apis/index_pattern_field_editor/constants.ts b/test/api_integration/apis/data_view_field_editor/constants.ts similarity index 100% rename from test/api_integration/apis/index_pattern_field_editor/constants.ts rename to test/api_integration/apis/data_view_field_editor/constants.ts diff --git a/test/api_integration/apis/index_pattern_field_editor/field_preview.ts b/test/api_integration/apis/data_view_field_editor/field_preview.ts similarity index 98% rename from test/api_integration/apis/index_pattern_field_editor/field_preview.ts rename to test/api_integration/apis/data_view_field_editor/field_preview.ts index c687f3094b6fd..4fea3229462d9 100644 --- a/test/api_integration/apis/index_pattern_field_editor/field_preview.ts +++ b/test/api_integration/apis/data_view_field_editor/field_preview.ts @@ -8,7 +8,7 @@ import expect from '@kbn/expect'; -import { getErrorCodeFromErrorReason } from '../../../../src/plugins/index_pattern_field_editor/public/lib/runtime_field_validation'; +import { getErrorCodeFromErrorReason } from '../../../../src/plugins/data_view_field_editor/public/lib/runtime_field_validation'; import { FtrProviderContext } from '../../ftr_provider_context'; import { API_BASE_PATH } from './constants'; diff --git a/test/api_integration/apis/index_pattern_field_editor/index.ts b/test/api_integration/apis/data_view_field_editor/index.ts similarity index 100% rename from test/api_integration/apis/index_pattern_field_editor/index.ts rename to test/api_integration/apis/data_view_field_editor/index.ts diff --git a/test/api_integration/apis/index.ts b/test/api_integration/apis/index.ts index bdbb9c0a1fae7..f7801f4d42e71 100644 --- a/test/api_integration/apis/index.ts +++ b/test/api_integration/apis/index.ts @@ -15,7 +15,7 @@ export default function ({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./custom_integration')); loadTestFile(require.resolve('./general')); loadTestFile(require.resolve('./home')); - loadTestFile(require.resolve('./index_pattern_field_editor')); + loadTestFile(require.resolve('./data_view_field_editor')); loadTestFile(require.resolve('./index_patterns')); loadTestFile(require.resolve('./kql_telemetry')); loadTestFile(require.resolve('./saved_objects_management')); diff --git a/x-pack/plugins/data_visualizer/kibana.json b/x-pack/plugins/data_visualizer/kibana.json index 81fc0a2fdfe02..8a4695cf08524 100644 --- a/x-pack/plugins/data_visualizer/kibana.json +++ b/x-pack/plugins/data_visualizer/kibana.json @@ -17,7 +17,7 @@ "maps", "home", "lens", - "indexPatternFieldEditor", + "dataViewFieldEditor", "customIntegrations" ], "requiredBundles": [ diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts index 4c8949ca22224..8476e53b9143f 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts @@ -63,7 +63,7 @@ export function getActions( } // Allow to edit data view field - if (services.indexPatternFieldEditor?.userPermissions.editIndexPattern()) { + if (services.dataViewFieldEditor?.userPermissions.editIndexPattern()) { actions.push({ name: i18n.translate('xpack.dataVisualizer.index.dataGrid.editDataViewFieldTitle', { defaultMessage: 'Edit data view field', @@ -77,8 +77,8 @@ export function getActions( type: 'icon', icon: 'indexEdit', onClick: (item: FieldVisConfig) => { - actionFlyoutRef.current = services.indexPatternFieldEditor?.openEditor({ - ctx: { indexPattern }, + actionFlyoutRef.current = services.dataViewFieldEditor?.openEditor({ + ctx: { dataView: indexPattern }, fieldName: item.fieldName, onSave: refreshPage, }); @@ -101,8 +101,8 @@ export function getActions( return item.deletable === true; }, onClick: (item: FieldVisConfig) => { - actionFlyoutRef.current = services.indexPatternFieldEditor?.openDeleteModal({ - ctx: { indexPattern }, + actionFlyoutRef.current = services.dataViewFieldEditor?.openDeleteModal({ + ctx: { dataView: indexPattern }, fieldName: item.fieldName!, onDelete: refreshPage, }); diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx index ade16e61050bc..eb3c5d278e94a 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx @@ -27,12 +27,11 @@ export function DataVisualizerIndexPatternManagement( props: DataVisualizerIndexPatternManagementProps ) { const { - services: { indexPatternFieldEditor, application }, + services: { dataViewFieldEditor, application }, } = useDataVisualizerKibana(); const { useNewFieldsApi, currentIndexPattern } = props; - const indexPatternFieldEditPermission = - indexPatternFieldEditor?.userPermissions.editIndexPattern(); + const indexPatternFieldEditPermission = dataViewFieldEditor?.userPermissions.editIndexPattern(); const canEditIndexPatternField = !!indexPatternFieldEditPermission && useNewFieldsApi; const [isAddIndexPatternFieldPopoverOpen, setIsAddIndexPatternFieldPopoverOpen] = useState(false); @@ -46,14 +45,14 @@ export function DataVisualizerIndexPatternManagement( }; }, []); - if (indexPatternFieldEditor === undefined || !currentIndexPattern || !canEditIndexPatternField) { + if (dataViewFieldEditor === undefined || !currentIndexPattern || !canEditIndexPatternField) { return null; } const addField = () => { - closeFieldEditor.current = indexPatternFieldEditor.openEditor({ + closeFieldEditor.current = dataViewFieldEditor.openEditor({ ctx: { - indexPattern: currentIndexPattern, + dataView: currentIndexPattern, }, onSave: () => { const refresh: Refresh = { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx index 83e013703c1fc..0970938f8099f 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx @@ -178,7 +178,7 @@ export const DataVisualizerUrlStateContextProvider: FC<DataVisualizerUrlStateCon export const IndexDataVisualizer: FC<{ additionalLinks: ResultLink[] }> = ({ additionalLinks }) => { const coreStart = getCoreStart(); - const { data, maps, embeddable, share, security, fileUpload, lens, indexPatternFieldEditor } = + const { data, maps, embeddable, share, security, fileUpload, lens, dataViewFieldEditor } = getPluginsStart(); const services = { data, @@ -188,7 +188,7 @@ export const IndexDataVisualizer: FC<{ additionalLinks: ResultLink[] }> = ({ add security, fileUpload, lens, - indexPatternFieldEditor, + dataViewFieldEditor, ...coreStart, }; diff --git a/x-pack/plugins/data_visualizer/public/plugin.ts b/x-pack/plugins/data_visualizer/public/plugin.ts index dd1d2acccf8cd..e1c6acf5c65a8 100644 --- a/x-pack/plugins/data_visualizer/public/plugin.ts +++ b/x-pack/plugins/data_visualizer/public/plugin.ts @@ -17,7 +17,7 @@ import type { FileUploadPluginStart } from '../../file_upload/public'; import type { MapsStartApi } from '../../maps/public'; import type { SecurityPluginSetup } from '../../security/public'; import type { LensPublicStart } from '../../lens/public'; -import type { IndexPatternFieldEditorStart } from '../../../../src/plugins/index_pattern_field_editor/public'; +import type { IndexPatternFieldEditorStart } from '../../../../src/plugins/data_view_field_editor/public'; import { getFileDataVisualizerComponent, getIndexDataVisualizerComponent } from './api'; import { getMaxBytesFormatted } from './application/common/util/get_max_bytes'; import { registerHomeAddData, registerHomeFeatureCatalogue } from './register_home'; @@ -36,7 +36,7 @@ export interface DataVisualizerStartDependencies { security?: SecurityPluginSetup; share: SharePluginStart; lens?: LensPublicStart; - indexPatternFieldEditor?: IndexPatternFieldEditorStart; + dataViewFieldEditor?: IndexPatternFieldEditorStart; fieldFormats: FieldFormatsStart; } diff --git a/x-pack/plugins/lens/kibana.json b/x-pack/plugins/lens/kibana.json index f82f3366448da..2df7c5b5eddd3 100644 --- a/x-pack/plugins/lens/kibana.json +++ b/x-pack/plugins/lens/kibana.json @@ -18,7 +18,7 @@ "embeddable", "share", "presentationUtil", - "indexPatternFieldEditor" + "dataViewFieldEditor" ], "optionalPlugins": [ "usageCollection", diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx index 6fe61d3e3c29a..27d03a1e3edc8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx @@ -23,7 +23,7 @@ import { EuiProgress, EuiLoadingSpinner } from '@elastic/eui'; import { documentField } from './document_field'; import { chartPluginMock } from '../../../../../src/plugins/charts/public/mocks'; import { fieldFormatsServiceMock } from '../../../../../src/plugins/field_formats/public/mocks'; -import { indexPatternFieldEditorPluginMock } from '../../../../../src/plugins/index_pattern_field_editor/public/mocks'; +import { indexPatternFieldEditorPluginMock } from '../../../../../src/plugins/data_view_field_editor/public/mocks'; import { getFieldByNameFactory } from './pure_helpers'; import { uiActionsPluginMock } from '../../../../../src/plugins/ui_actions/public/mocks'; import { TermsIndexPatternColumn } from './operations'; @@ -876,7 +876,7 @@ describe('IndexPattern Data Panel', () => { expect(props.indexPatternFieldEditor.openEditor).toHaveBeenCalledWith( expect.objectContaining({ ctx: expect.objectContaining({ - indexPattern: mockIndexPattern, + dataView: mockIndexPattern, }), }) ); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx index f48e704846133..1b2e9df82b6df 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx @@ -42,7 +42,7 @@ import { loadIndexPatterns, syncExistingFields } from './loader'; import { fieldExists } from './pure_helpers'; import { Loader } from '../loader'; import { esQuery } from '../../../../../src/plugins/data/public'; -import { IndexPatternFieldEditorStart } from '../../../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../../../src/plugins/data_view_field_editor/public'; import { VISUALIZE_GEO_FIELD_TRIGGER } from '../../../../../src/plugins/ui_actions/public'; export type Props = Omit<DatasourceDataPanelProps<IndexPatternPrivateState>, 'core'> & { @@ -522,7 +522,7 @@ export const InnerIndexPatternDataPanel = function InnerIndexPatternDataPanel({ const indexPatternInstance = await data.indexPatterns.get(currentIndexPattern.id); closeFieldEditor.current = indexPatternFieldEditor.openEditor({ ctx: { - indexPattern: indexPatternInstance, + dataView: indexPatternInstance, }, fieldName, onSave: async () => { @@ -543,7 +543,7 @@ export const InnerIndexPatternDataPanel = function InnerIndexPatternDataPanel({ const indexPatternInstance = await data.indexPatterns.get(currentIndexPattern.id); closeFieldEditor.current = indexPatternFieldEditor.openDeleteModal({ ctx: { - indexPattern: indexPatternInstance, + dataView: indexPatternInstance, }, fieldName, onDelete: async () => { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/index.ts b/x-pack/plugins/lens/public/indexpattern_datasource/index.ts index 5ec90d84f6c4d..386cd7a58ae01 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/index.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/index.ts @@ -9,7 +9,7 @@ import type { CoreSetup } from 'kibana/public'; import { createStartServicesGetter, Storage } from '../../../../../src/plugins/kibana_utils/public'; import type { ExpressionsSetup } from '../../../../../src/plugins/expressions/public'; import type { ChartsPluginSetup } from '../../../../../src/plugins/charts/public'; -import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/index_pattern_field_editor/public'; +import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/data_view_field_editor/public'; import type { DataPublicPluginSetup, DataPublicPluginStart, @@ -32,7 +32,7 @@ export interface IndexPatternDatasourceSetupPlugins { export interface IndexPatternDatasourceStartPlugins { data: DataPublicPluginStart; fieldFormats: FieldFormatsStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; uiActions: UiActionsStart; } @@ -60,7 +60,7 @@ export class IndexPatternDatasource { fieldFormatsSetup.register([suffixFormatter]); } - const [coreStart, { indexPatternFieldEditor, uiActions, data, fieldFormats }] = + const [coreStart, { dataViewFieldEditor, uiActions, data, fieldFormats }] = await core.getStartServices(); return getIndexPatternDatasource({ @@ -69,7 +69,7 @@ export class IndexPatternDatasource { storage: new Storage(localStorage), data, charts, - indexPatternFieldEditor, + dataViewFieldEditor, uiActions, }); }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts index e6b9eccbc7da1..da5e39c907d07 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts @@ -26,7 +26,7 @@ import { FormulaIndexPatternColumn, } from './operations'; import { createMockedFullReference } from './operations/mocks'; -import { indexPatternFieldEditorPluginMock } from 'src/plugins/index_pattern_field_editor/public/mocks'; +import { indexPatternFieldEditorPluginMock } from 'src/plugins/data_view_field_editor/public/mocks'; import { uiActionsPluginMock } from '../../../../../src/plugins/ui_actions/public/mocks'; import { fieldFormatsServiceMock } from '../../../../../src/plugins/field_formats/public/mocks'; import { TinymathAST } from 'packages/kbn-tinymath'; @@ -185,7 +185,7 @@ describe('IndexPattern Data Source', () => { data: dataPluginMock.createStartContract(), fieldFormats: fieldFormatsServiceMock.createStartContract(), charts: chartPluginMock.createSetupContract(), - indexPatternFieldEditor: indexPatternFieldEditorPluginMock.createStartContract(), + dataViewFieldEditor: indexPatternFieldEditorPluginMock.createStartContract(), uiActions: uiActionsPluginMock.createStartContract(), }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx index fc9e2c7ed44a8..8924684621995 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx @@ -12,7 +12,7 @@ import type { CoreStart, SavedObjectReference } from 'kibana/public'; import { i18n } from '@kbn/i18n'; import type { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import type { FieldFormatsStart } from 'src/plugins/field_formats/public'; -import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/index_pattern_field_editor/public'; +import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/data_view_field_editor/public'; import type { DatasourceDimensionEditorProps, DatasourceDimensionTriggerProps, @@ -88,7 +88,7 @@ export function getIndexPatternDatasource({ data, fieldFormats, charts, - indexPatternFieldEditor, + dataViewFieldEditor, uiActions, }: { core: CoreStart; @@ -96,7 +96,7 @@ export function getIndexPatternDatasource({ data: DataPublicPluginStart; fieldFormats: FieldFormatsStart; charts: ChartsPluginSetup; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; uiActions: UiActionsStart; }) { const uiSettings = core.uiSettings; @@ -230,7 +230,7 @@ export function getIndexPatternDatasource({ data={data} fieldFormats={fieldFormats} charts={charts} - indexPatternFieldEditor={indexPatternFieldEditor} + indexPatternFieldEditor={dataViewFieldEditor} {...props} core={core} uiActions={uiActions} diff --git a/x-pack/plugins/lens/public/plugin.ts b/x-pack/plugins/lens/public/plugin.ts index fb0a922c7e9a2..5724e98f9bba9 100644 --- a/x-pack/plugins/lens/public/plugin.ts +++ b/x-pack/plugins/lens/public/plugin.ts @@ -35,7 +35,7 @@ import type { ChartsPluginSetup, ChartsPluginStart } from '../../../../src/plugi import type { PresentationUtilPluginStart } from '../../../../src/plugins/presentation_util/public'; import { EmbeddableStateTransfer } from '../../../../src/plugins/embeddable/public'; import type { EditorFrameService as EditorFrameServiceType } from './editor_frame_service'; -import { IndexPatternFieldEditorStart } from '../../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../../src/plugins/data_view_field_editor/public'; import type { IndexPatternDatasource as IndexPatternDatasourceType, IndexPatternDatasourceSetupPlugins, @@ -109,7 +109,7 @@ export interface LensPluginStartDependencies { charts: ChartsPluginStart; savedObjectsTagging?: SavedObjectTaggingPluginStart; presentationUtil: PresentationUtilPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; inspector: InspectorStartContract; spaces: SpacesPluginStart; usageCollection?: UsageCollectionStart; diff --git a/x-pack/plugins/lens/tsconfig.json b/x-pack/plugins/lens/tsconfig.json index 16287ae596df3..25b7789d1e096 100644 --- a/x-pack/plugins/lens/tsconfig.json +++ b/x-pack/plugins/lens/tsconfig.json @@ -21,7 +21,7 @@ { "path": "../global_search/tsconfig.json"}, { "path": "../saved_objects_tagging/tsconfig.json"}, { "path": "../../../src/plugins/data/tsconfig.json"}, - { "path": "../../../src/plugins/index_pattern_field_editor/tsconfig.json"}, + { "path": "../../../src/plugins/data_view_field_editor/tsconfig.json"}, { "path": "../../../src/plugins/charts/tsconfig.json"}, { "path": "../../../src/plugins/expressions/tsconfig.json"}, { "path": "../../../src/plugins/navigation/tsconfig.json" }, diff --git a/x-pack/plugins/security_solution/kibana.json b/x-pack/plugins/security_solution/kibana.json index c2dfc7c923303..9f22f229b33c1 100644 --- a/x-pack/plugins/security_solution/kibana.json +++ b/x-pack/plugins/security_solution/kibana.json @@ -39,7 +39,7 @@ "lists", "home", "telemetry", - "indexPatternFieldEditor" + "dataViewFieldEditor" ], "server": true, "ui": true, diff --git a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx index d373710c29444..1708509b31864 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx @@ -11,7 +11,7 @@ import { CreateFieldButton } from './index'; import { indexPatternFieldEditorPluginMock, Start, -} from '../../../../../../../src/plugins/index_pattern_field_editor/public/mocks'; +} from '../../../../../../../src/plugins/data_view_field_editor/public/mocks'; import { TestProviders } from '../../../common/mock'; import { useKibana } from '../../../common/lib/kibana'; @@ -28,7 +28,7 @@ const runAllPromises = () => new Promise(setImmediate); describe('CreateFieldButton', () => { beforeEach(() => { mockIndexPatternFieldEditor = indexPatternFieldEditorPluginMock.createStartContract(); - useKibanaMock().services.indexPatternFieldEditor = mockIndexPatternFieldEditor; + useKibanaMock().services.dataViewFieldEditor = mockIndexPatternFieldEditor; useKibanaMock().services.data.dataViews.get = () => new Promise(() => undefined); }); diff --git a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx index 8c6b8a01ea1f6..088c37d36c167 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx @@ -39,7 +39,7 @@ export const CreateFieldButton = React.memo<CreateFieldButtonProps>( const { indexFieldsSearch } = useDataView(); const { - indexPatternFieldEditor, + dataViewFieldEditor, data: { dataViews }, } = useKibana().services; @@ -51,8 +51,8 @@ export const CreateFieldButton = React.memo<CreateFieldButtonProps>( const onClick = useCallback(() => { if (dataView) { - indexPatternFieldEditor?.openEditor({ - ctx: { indexPattern: dataView }, + dataViewFieldEditor?.openEditor({ + ctx: { dataView }, onSave: (field: DataViewField) => { // Fetch the updated list of fields indexFieldsSearch(selectedDataViewId); @@ -74,7 +74,7 @@ export const CreateFieldButton = React.memo<CreateFieldButtonProps>( } onClickParam(); }, [ - indexPatternFieldEditor, + dataViewFieldEditor, dataView, onClickParam, indexFieldsSearch, @@ -83,7 +83,7 @@ export const CreateFieldButton = React.memo<CreateFieldButtonProps>( timelineId, ]); - if (!indexPatternFieldEditor?.userPermissions.editIndexPattern()) { + if (!dataViewFieldEditor?.userPermissions.editIndexPattern()) { return null; } diff --git a/x-pack/plugins/security_solution/public/types.ts b/x-pack/plugins/security_solution/public/types.ts index 475aa71a4b564..cfca95fddc507 100644 --- a/x-pack/plugins/security_solution/public/types.ts +++ b/x-pack/plugins/security_solution/public/types.ts @@ -41,7 +41,7 @@ import { Management } from './management'; import { Ueba } from './ueba'; import { LicensingPluginStart, LicensingPluginSetup } from '../../licensing/public'; import { DashboardStart } from '../../../../src/plugins/dashboard/public'; -import { IndexPatternFieldEditorStart } from '../../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../../src/plugins/data_view_field_editor/public'; export interface SetupPlugins { home?: HomePublicPluginSetup; @@ -68,7 +68,7 @@ export interface StartPlugins { uiActions: UiActionsStart; ml?: MlPluginStart; spaces?: SpacesPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; } export type StartServices = CoreStart & diff --git a/x-pack/plugins/security_solution/tsconfig.json b/x-pack/plugins/security_solution/tsconfig.json index 8f4d602e26461..d518eaf7f8243 100644 --- a/x-pack/plugins/security_solution/tsconfig.json +++ b/x-pack/plugins/security_solution/tsconfig.json @@ -27,6 +27,7 @@ { "path": "../../../src/plugins/usage_collection/tsconfig.json" }, { "path": "../../../src/plugins/telemetry/tsconfig.json" }, { "path": "../../../src/plugins/telemetry_management_section/tsconfig.json" }, + { "path": "../../../src/plugins/data_view_field_editor/tsconfig.json" }, { "path": "../actions/tsconfig.json" }, { "path": "../alerting/tsconfig.json" }, { "path": "../cases/tsconfig.json" }, From 3f83f7ae4a6a375c2acc05e41db37b47f266d0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20S=C3=A1nchez?= <davidsansol92@gmail.com> Date: Mon, 22 Nov 2021 16:23:50 +0100 Subject: [PATCH 112/114] [Security Solution] [Endpoint] Splits event filters flyout content in sections (#119022) * Splits event filters flyout content in sections. Also adds unit test * Update section descriptions Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../view/components/form/index.test.tsx | 8 ++ .../view/components/form/index.tsx | 106 +++++++++++++++--- 2 files changed, 97 insertions(+), 17 deletions(-) diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx index f8dd9ac632cd0..0850ed700f62d 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx @@ -76,6 +76,14 @@ describe('Event filter form', () => { expect(component.getByTestId('exceptionsBuilderWrapper')).not.toBeNull(); }); + it('should display sections', async () => { + component = await renderWithData(); + + expect(component.queryByText('Details')).not.toBeNull(); + expect(component.queryByText('Conditions')).not.toBeNull(); + expect(component.queryByText('Comments')).not.toBeNull(); + }); + it('should display name error only when on blur and empty name', async () => { component = await renderWithData(); expect(component.queryByText(NAME_ERROR)).toBeNull(); diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx index ced0abcea0258..095eb8d22df91 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx @@ -16,7 +16,9 @@ import { EuiSuperSelect, EuiSuperSelectOption, EuiText, + EuiHorizontalRule, } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; import type { ExceptionListItemSchema } from '@kbn/securitysolution-io-ts-list-types'; import { EVENT_FILTERS_OPERATORS } from '@kbn/securitysolution-list-utils'; @@ -205,25 +207,95 @@ export const EventFiltersForm: React.FC<EventFiltersFormProps> = memo( [exception, handleOnChangeComment, newComment] ); + const detailsSection = useMemo( + () => ( + <> + <EuiText size="xs"> + <h3> + <FormattedMessage + id="xpack.securitySolution.eventFilters.detailsSectionTitle" + defaultMessage="Details" + /> + </h3> + </EuiText> + <EuiSpacer size="xs" /> + <EuiText size="s"> + <p>{ABOUT_EVENT_FILTERS}</p> + </EuiText> + <EuiSpacer size="m" /> + {nameInputMemo} + </> + ), + [nameInputMemo] + ); + + const criteriaSection = useMemo( + () => ( + <> + <EuiText size="xs"> + <h3> + <FormattedMessage + id="xpack.securitySolution.eventFilters.criteriaSectionTitle" + defaultMessage="Conditions" + /> + </h3> + </EuiText> + <EuiSpacer size="xs" /> + <EuiText size="s"> + <p> + <FormattedMessage + id="xpack.securitySolution.eventFilters.criteriaSectionDescription" + defaultMessage="Select an operating system and add conditions." + /> + </p> + </EuiText> + <EuiSpacer size="m" /> + {allowSelectOs ? ( + <> + {osInputMemo} + <EuiSpacer /> + </> + ) : null} + {exceptionBuilderComponentMemo} + </> + ), + [allowSelectOs, exceptionBuilderComponentMemo, osInputMemo] + ); + + const commentsSection = useMemo( + () => ( + <> + <EuiText size="xs"> + <h3> + <FormattedMessage + id="xpack.securitySolution.eventFilters.commentsSectionTitle" + defaultMessage="Comments" + /> + </h3> + </EuiText> + <EuiSpacer size="xs" /> + <EuiText size="s"> + <p> + <FormattedMessage + id="xpack.securitySolution.eventFilters.commentsSectionDescription" + defaultMessage="Add a comment to your event filter." + /> + </p> + </EuiText> + <EuiSpacer size="m" /> + {commentsInputMemo} + </> + ), + [commentsInputMemo] + ); + return !isIndexPatternLoading && exception ? ( <EuiForm component="div"> - {!exception || !exception.item_id ? ( - <EuiText color="subdued" size="xs"> - {ABOUT_EVENT_FILTERS} - <EuiSpacer size="m" /> - </EuiText> - ) : null} - {nameInputMemo} - <EuiSpacer size="m" /> - {allowSelectOs ? ( - <> - {osInputMemo} - <EuiSpacer /> - </> - ) : null} - {exceptionBuilderComponentMemo} - <EuiSpacer size="xl" /> - {commentsInputMemo} + {detailsSection} + <EuiHorizontalRule /> + {criteriaSection} + <EuiHorizontalRule /> + {commentsSection} </EuiForm> ) : ( <Loader size="xl" /> From 75461746d10930e27eaf392fdf02d6d0f546e2e9 Mon Sep 17 00:00:00 2001 From: Jason Stoltzfus <jastoltz24@gmail.com> Date: Mon, 22 Nov 2021 10:53:54 -0500 Subject: [PATCH 113/114] [Enterprise Search] Error on version mismatches (#119101) --- .../common/__mocks__/initial_app_data.ts | 2 + .../common/is_version_mismatch/index.test.ts | 26 +++++++++ .../common/is_version_mismatch/index.ts | 15 +++++ .../enterprise_search/common/types/index.ts | 2 + .../applications/app_search/index.test.tsx | 7 +++ .../public/applications/app_search/index.tsx | 31 +++++++--- .../enterprise_search/index.test.tsx | 17 ++++++ .../applications/enterprise_search/index.tsx | 33 +++++++++-- .../shared/version_mismatch/index.ts | 9 +++ .../version_mismatch_error.test.tsx | 23 ++++++++ .../version_mismatch_error.tsx | 57 +++++++++++++++++++ .../version_mismatch_page.test.tsx | 26 +++++++++ .../version_mismatch_page.tsx | 23 ++++++++ .../workplace_search/index.test.tsx | 10 ++++ .../applications/workplace_search/index.tsx | 26 ++++++--- .../lib/enterprise_search_config_api.test.ts | 4 +- .../lib/enterprise_search_config_api.ts | 5 +- 17 files changed, 292 insertions(+), 24 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/common/is_version_mismatch/index.test.ts create mode 100644 x-pack/plugins/enterprise_search/common/is_version_mismatch/index.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/index.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.tsx diff --git a/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts b/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts index aa3020a9577f9..dd6dd58d02f70 100644 --- a/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts +++ b/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts @@ -6,6 +6,8 @@ */ export const DEFAULT_INITIAL_APP_DATA = { + kibanaVersion: '7.16.0', + enterpriseSearchVersion: '7.16.0', readOnlyMode: false, searchOAuth: { clientId: 'someUID', diff --git a/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.test.ts b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.test.ts new file mode 100644 index 0000000000000..4cd7ceef0b758 --- /dev/null +++ b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.test.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 { isVersionMismatch } from './index'; + +describe('isVersionMismatch', () => { + it('no mismatch if major and minor are the same', () => { + expect(isVersionMismatch('8.0.0', '8.0.1')).toBe(false); + }); + + it('mismatch if kibana minor is different than enterprise search minor', () => { + expect(isVersionMismatch('8.0.0', '8.1.0')).toBe(true); + }); + + it('mismatch if major is different', () => { + expect(isVersionMismatch('7.0.0', '8.0.0')).toBe(true); + }); + + it('no mismatch if versions are not available to analyze', () => { + expect(isVersionMismatch()).toBe(false); + }); +}); diff --git a/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.ts b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.ts new file mode 100644 index 0000000000000..4147b17feefa5 --- /dev/null +++ b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const isVersionMismatch = (enterpriseSearchVersion?: string, kibanaVersion?: string) => { + // Don't consider it a mismatch unless we know for certain it is + if (!enterpriseSearchVersion || !kibanaVersion) return false; + const [enterpriseSearchMajor, enterpriseSearchMinor] = enterpriseSearchVersion.split('.'); + const [kibanaMajor, kibanaMinor] = kibanaVersion.split('.'); + if (enterpriseSearchMajor !== kibanaMajor || enterpriseSearchMinor !== kibanaMinor) return true; + return false; +}; diff --git a/x-pack/plugins/enterprise_search/common/types/index.ts b/x-pack/plugins/enterprise_search/common/types/index.ts index 8addf17f97476..57fe3f3807783 100644 --- a/x-pack/plugins/enterprise_search/common/types/index.ts +++ b/x-pack/plugins/enterprise_search/common/types/index.ts @@ -15,6 +15,8 @@ import { } from './workplace_search'; export interface InitialAppData { + enterpriseSearchVersion?: string; + kibanaVersion?: string; readOnlyMode?: boolean; searchOAuth?: SearchOAuth; configuredLimits?: ConfiguredLimits; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx index 6647b4032e4bc..2f415840a6c4a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx @@ -16,6 +16,7 @@ import { Redirect } from 'react-router-dom'; import { shallow, ShallowWrapper } from 'enzyme'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { rerender } from '../test_helpers'; jest.mock('./app_logic', () => ({ AppLogic: jest.fn() })); @@ -41,6 +42,12 @@ describe('AppSearch', () => { expect(wrapper.find(SetupGuide)).toHaveLength(1); }); + it('renders VersionMismatchPage when there are mismatching versions', () => { + const wrapper = shallow(<AppSearch enterpriseSearchVersion="7.15.0" kibanaVersion="7.16.0" />); + + expect(wrapper.find(VersionMismatchPage)).toHaveLength(1); + }); + it('renders AppSearchUnconfigured when config.host is not set', () => { setMockValues({ config: { host: '' } }); const wrapper = shallow(<AppSearch />); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx index 11f706bff028f..027a4dbee5ef6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx @@ -10,9 +10,11 @@ import { Route, Redirect, Switch } from 'react-router-dom'; import { useValues } from 'kea'; +import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; import { HttpLogic } from '../shared/http'; import { KibanaLogic } from '../shared/kibana'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { AppLogic } from './app_logic'; import { Credentials } from './components/credentials'; @@ -43,21 +45,32 @@ import { export const AppSearch: React.FC<InitialAppData> = (props) => { const { config } = useValues(KibanaLogic); const { errorConnecting } = useValues(HttpLogic); + const { enterpriseSearchVersion, kibanaVersion } = props; + const incompatibleVersions = isVersionMismatch(enterpriseSearchVersion, kibanaVersion); + + const showView = () => { + if (!config.host) { + return <AppSearchUnconfigured />; + } else if (incompatibleVersions) { + return ( + <VersionMismatchPage + enterpriseSearchVersion={enterpriseSearchVersion} + kibanaVersion={kibanaVersion} + /> + ); + } else if (errorConnecting) { + return <ErrorConnecting />; + } + + return <AppSearchConfigured {...(props as Required<InitialAppData>)} />; + }; return ( <Switch> <Route exact path={SETUP_GUIDE_PATH}> <SetupGuide /> </Route> - <Route> - {!config.host ? ( - <AppSearchUnconfigured /> - ) : errorConnecting ? ( - <ErrorConnecting /> - ) : ( - <AppSearchConfigured {...(props as Required<InitialAppData>)} /> - )} - </Route> + <Route>{showView()}</Route> </Switch> ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx index fbb3e58f198a7..7b5c748b013e5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx @@ -11,6 +11,7 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { rerender } from '../test_helpers'; import { ErrorConnecting } from './components/error_connecting'; @@ -38,6 +39,7 @@ describe('EnterpriseSearch', () => { }); const wrapper = shallow(<EnterpriseSearch />); + expect(wrapper.find(VersionMismatchPage)).toHaveLength(0); expect(wrapper.find(ErrorConnecting)).toHaveLength(1); expect(wrapper.find(ProductSelector)).toHaveLength(0); @@ -47,7 +49,22 @@ describe('EnterpriseSearch', () => { }); rerender(wrapper); + expect(wrapper.find(VersionMismatchPage)).toHaveLength(0); expect(wrapper.find(ErrorConnecting)).toHaveLength(0); expect(wrapper.find(ProductSelector)).toHaveLength(1); }); + + it('renders the version error message if versions mismatch and the host is configured', () => { + setMockValues({ + errorConnecting: false, + config: { host: 'localhost' }, + }); + const wrapper = shallow( + <EnterpriseSearch enterpriseSearchVersion="7.15.0" kibanaVersion="7.16.0" /> + ); + + expect(wrapper.find(VersionMismatchPage)).toHaveLength(1); + expect(wrapper.find(ErrorConnecting)).toHaveLength(0); + expect(wrapper.find(ProductSelector)).toHaveLength(0); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx index 17387ae482325..81aa587e3a133 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx @@ -10,33 +10,54 @@ import { Route, Switch } from 'react-router-dom'; import { useValues } from 'kea'; +import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; import { HttpLogic } from '../shared/http'; import { KibanaLogic } from '../shared/kibana'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { ErrorConnecting } from './components/error_connecting'; import { ProductSelector } from './components/product_selector'; import { SetupGuide } from './components/setup_guide'; import { ROOT_PATH, SETUP_GUIDE_PATH } from './routes'; -export const EnterpriseSearch: React.FC<InitialAppData> = ({ access = {}, workplaceSearch }) => { +export const EnterpriseSearch: React.FC<InitialAppData> = ({ + access = {}, + workplaceSearch, + enterpriseSearchVersion, + kibanaVersion, +}) => { const { errorConnecting } = useValues(HttpLogic); const { config } = useValues(KibanaLogic); const showErrorConnecting = !!(config.host && errorConnecting); + const incompatibleVersions = !!( + config.host && isVersionMismatch(enterpriseSearchVersion, kibanaVersion) + ); const isWorkplaceSearchAdmin = !!workplaceSearch?.account?.isAdmin; + const showView = () => { + if (incompatibleVersions) { + return ( + <VersionMismatchPage + enterpriseSearchVersion={enterpriseSearchVersion} + kibanaVersion={kibanaVersion} + /> + ); + } else if (showErrorConnecting) { + return <ErrorConnecting />; + } + + return <ProductSelector isWorkplaceSearchAdmin={isWorkplaceSearchAdmin} access={access} />; + }; + return ( <Switch> <Route exact path={SETUP_GUIDE_PATH}> <SetupGuide /> </Route> <Route exact path={ROOT_PATH}> - {showErrorConnecting ? ( - <ErrorConnecting /> - ) : ( - <ProductSelector isWorkplaceSearchAdmin={isWorkplaceSearchAdmin} access={access} /> - )} + {showView()} </Route> </Switch> ); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/index.ts b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/index.ts new file mode 100644 index 0000000000000..90d007d1d9411 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/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 { VersionMismatchPage } from './version_mismatch_page'; +export { VersionMismatchError } from './version_mismatch_error'; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.test.tsx new file mode 100644 index 0000000000000..f6d5ef4aa4212 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.test.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 { mount } from 'enzyme'; + +import { VersionMismatchError } from './version_mismatch_error'; + +describe('VersionMismatchError', () => { + it('renders', () => { + const wrapper = mount( + <VersionMismatchError kibanaVersion="8.1.0" enterpriseSearchVersion="8.0.0" /> + ); + + expect(wrapper.find('EuiEmptyPrompt').text()).toContain('Enterprise Search version: 8.0.0'); + expect(wrapper.find('EuiEmptyPrompt').text()).toContain('Kibana version: 8.1.0'); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.tsx new file mode 100644 index 0000000000000..f2f913902f97f --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.tsx @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { EuiEmptyPrompt, EuiSpacer } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +interface Props { + enterpriseSearchVersion?: string; + kibanaVersion?: string; +} + +export const VersionMismatchError: React.FC<Props> = ({ + enterpriseSearchVersion, + kibanaVersion, +}) => { + return ( + <EuiEmptyPrompt + iconType="alert" + iconColor="danger" + title={ + <h2> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.title', { + defaultMessage: 'Incompatible version error', + })} + </h2> + } + titleSize="l" + body={ + <> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.body', { + defaultMessage: + 'Your Kibana and Enterprise Search versions do not match. To access Enterprise Search, use the same major and minor version for each service.', + })} + <EuiSpacer /> + <div> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.enterpriseSearchVersionText', { + defaultMessage: 'Enterprise Search version: {enterpriseSearchVersion}', + values: { enterpriseSearchVersion }, + })} + </div> + <div> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.kibanaVersionText', { + defaultMessage: 'Kibana version: {kibanaVersion}', + values: { kibanaVersion }, + })} + </div> + </> + } + /> + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.test.tsx new file mode 100644 index 0000000000000..d86a1187bd4b9 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.test.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { VersionMismatchError } from './version_mismatch_error'; +import { VersionMismatchPage } from './version_mismatch_page'; + +describe('VersionMismatchPage', () => { + it('renders', () => { + const wrapper = shallow( + <VersionMismatchPage kibanaVersion="8.1.0" enterpriseSearchVersion="8.0.0" /> + ); + expect(wrapper.find(VersionMismatchError).exists()).toBe(true); + expect(wrapper.find(VersionMismatchError).props()).toEqual({ + kibanaVersion: '8.1.0', + enterpriseSearchVersion: '8.0.0', + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.tsx new file mode 100644 index 0000000000000..f60ccf2d19e50 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.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 { KibanaPageTemplate } from '../../../../../../../src/plugins/kibana_react/public'; + +import { VersionMismatchError } from './version_mismatch_error'; + +interface Props { + enterpriseSearchVersion?: string; + kibanaVersion?: string; +} + +export const VersionMismatchPage: React.FC<Props> = (props) => ( + <KibanaPageTemplate isEmptyState> + <VersionMismatchError {...props} /> + </KibanaPageTemplate> +); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx index 3ddccde6abd33..7274ee8855705 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx @@ -15,6 +15,8 @@ import { Redirect } from 'react-router-dom'; import { shallow } from 'enzyme'; +import { VersionMismatchPage } from '../shared/version_mismatch'; + import { WorkplaceSearchHeaderActions } from './components/layout'; import { SourceAdded } from './views/content_sources/components/source_added'; import { ErrorState } from './views/error_state'; @@ -24,6 +26,14 @@ import { SetupGuide } from './views/setup_guide'; import { WorkplaceSearch, WorkplaceSearchUnconfigured, WorkplaceSearchConfigured } from './'; describe('WorkplaceSearch', () => { + it('renders VersionMismatchPage when there are mismatching versions', () => { + const wrapper = shallow( + <WorkplaceSearch enterpriseSearchVersion="7.15.0" kibanaVersion="7.16.0" /> + ); + + expect(wrapper.find(VersionMismatchPage)).toHaveLength(1); + }); + it('renders WorkplaceSearchUnconfigured when config.host is not set', () => { setMockValues({ config: { host: '' } }); const wrapper = shallow(<WorkplaceSearch />); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx index 1ed77ea0fb1fd..2b24e09f96315 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx @@ -10,9 +10,11 @@ import { Route, Redirect, Switch, useRouteMatch } from 'react-router-dom'; import { useActions, useValues } from 'kea'; +import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; import { HttpLogic } from '../shared/http'; import { KibanaLogic } from '../shared/kibana'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { AppLogic } from './app_logic'; import { WorkplaceSearchHeaderActions } from './components/layout'; @@ -47,13 +49,23 @@ import { SetupGuide } from './views/setup_guide'; export const WorkplaceSearch: React.FC<InitialAppData> = (props) => { const { config } = useValues(KibanaLogic); const { errorConnecting } = useValues(HttpLogic); - return !config.host ? ( - <WorkplaceSearchUnconfigured /> - ) : errorConnecting ? ( - <ErrorState /> - ) : ( - <WorkplaceSearchConfigured {...props} /> - ); + const { enterpriseSearchVersion, kibanaVersion } = props; + const incompatibleVersions = isVersionMismatch(enterpriseSearchVersion, kibanaVersion); + + if (!config.host) { + return <WorkplaceSearchUnconfigured />; + } else if (incompatibleVersions) { + return ( + <VersionMismatchPage + enterpriseSearchVersion={enterpriseSearchVersion} + kibanaVersion={kibanaVersion} + /> + ); + } else if (errorConnecting) { + return <ErrorState />; + } + + return <WorkplaceSearchConfigured {...props} />; }; export const WorkplaceSearchConfigured: React.FC<InitialAppData> = (props) => { diff --git a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts index ba600de298976..f6e3280a8abb2 100644 --- a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts @@ -41,7 +41,7 @@ describe('callEnterpriseSearchConfigAPI', () => { const mockResponse = { version: { - number: '1.0.0', + number: '7.16.0', }, settings: { external_url: 'http://some.vanity.url/', @@ -120,6 +120,7 @@ describe('callEnterpriseSearchConfigAPI', () => { expect(await callEnterpriseSearchConfigAPI(mockDependencies)).toEqual({ ...DEFAULT_INITIAL_APP_DATA, + kibanaVersion: '1.0.0', access: { hasAppSearchAccess: true, hasWorkplaceSearchAccess: false, @@ -132,6 +133,7 @@ describe('callEnterpriseSearchConfigAPI', () => { (fetch as unknown as jest.Mock).mockReturnValueOnce(Promise.resolve(new Response('{}'))); expect(await callEnterpriseSearchConfigAPI(mockDependencies)).toEqual({ + kibanaVersion: '1.0.0', access: { hasAppSearchAccess: false, hasWorkplaceSearchAccess: false, diff --git a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts index d652d56c28efe..a427beb6769c9 100644 --- a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts +++ b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts @@ -12,6 +12,7 @@ import { kibanaPackageJson } from '@kbn/utils'; import { KibanaRequest, Logger } from 'src/core/server'; +import { isVersionMismatch } from '../../common/is_version_mismatch'; import { stripTrailingSlash } from '../../common/strip_slashes'; import { InitialAppData } from '../../common/types'; import { ConfigType } from '../index'; @@ -68,6 +69,8 @@ export const callEnterpriseSearchConfigAPI = async ({ warnMismatchedVersions(data?.version?.number, log); return { + enterpriseSearchVersion: data?.version?.number, + kibanaVersion: kibanaPackageJson.version, access: { hasAppSearchAccess: !!data?.current_user?.access?.app_search, hasWorkplaceSearchAccess: !!data?.current_user?.access?.workplace_search, @@ -147,7 +150,7 @@ export const callEnterpriseSearchConfigAPI = async ({ export const warnMismatchedVersions = (enterpriseSearchVersion: string, log: Logger) => { const kibanaVersion = kibanaPackageJson.version; - if (enterpriseSearchVersion !== kibanaVersion) { + if (isVersionMismatch(enterpriseSearchVersion, kibanaVersion)) { log.warn( `Your Kibana instance (v${kibanaVersion}) is not the same version as your Enterprise Search instance (v${enterpriseSearchVersion}), which may cause unexpected behavior. Use matching versions for the best experience.` ); From abd6e8ec0cba2e6b57db0bb3055d9389787d7c19 Mon Sep 17 00:00:00 2001 From: "Christiane (Tina) Heiligers" <christiane.heiligers@elastic.co> Date: Mon, 22 Nov 2021 09:05:54 -0700 Subject: [PATCH 114/114] Adds KibanaThemeProvider to Home app (#119254) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../home/public/application/application.tsx | 18 +++++++++++++----- src/plugins/home/public/plugin.ts | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/plugins/home/public/application/application.tsx b/src/plugins/home/public/application/application.tsx index 18f3089c14d11..b5a340fafacc0 100644 --- a/src/plugins/home/public/application/application.tsx +++ b/src/plugins/home/public/application/application.tsx @@ -9,8 +9,13 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; import { i18n } from '@kbn/i18n'; -import { ScopedHistory, CoreStart } from 'kibana/public'; -import { KibanaContextProvider, RedirectAppLinks } from '../../../kibana_react/public'; +import { ScopedHistory, CoreStart, CoreTheme } from 'kibana/public'; +import { Observable } from 'rxjs'; +import { + KibanaContextProvider, + KibanaThemeProvider, + RedirectAppLinks, +} from '../../../kibana_react/public'; // @ts-ignore import { HomeApp } from './components/home_app'; import { getServices } from './kibana_services'; @@ -19,6 +24,7 @@ import './index.scss'; export const renderApp = async ( element: HTMLElement, + theme$: Observable<CoreTheme>, coreStart: CoreStart, history: ScopedHistory ) => { @@ -45,9 +51,11 @@ export const renderApp = async ( render( <RedirectAppLinks application={coreStart.application}> - <KibanaContextProvider services={{ ...coreStart }}> - <HomeApp directories={directories} solutions={solutions} /> - </KibanaContextProvider> + <KibanaThemeProvider theme$={theme$}> + <KibanaContextProvider services={{ ...coreStart }}> + <HomeApp directories={directories} solutions={solutions} /> + </KibanaContextProvider> + </KibanaThemeProvider> </RedirectAppLinks>, element ); diff --git a/src/plugins/home/public/plugin.ts b/src/plugins/home/public/plugin.ts index 7d0af7415640e..ac680c78f31eb 100644 --- a/src/plugins/home/public/plugin.ts +++ b/src/plugins/home/public/plugin.ts @@ -105,7 +105,7 @@ export class HomePublicPlugin i18n.translate('home.pageTitle', { defaultMessage: 'Home' }) ); const { renderApp } = await import('./application'); - return await renderApp(params.element, coreStart, params.history); + return await renderApp(params.element, params.theme$, coreStart, params.history); }, }); urlForwarding.forwardApp('home', 'home');