From a62d69d7ec69e6d3b19b5a8a6845634aa2e500df Mon Sep 17 00:00:00 2001 From: Peter Pisljar Date: Wed, 31 Mar 2021 13:32:42 +0200 Subject: [PATCH 001/106] enabling esdsl function in expressions on server side (#95304) --- .../es_raw_response.test.ts.snap | 0 .../expressions/es_raw_response.test.ts | 0 .../search/expressions/es_raw_response.ts | 0 .../data/common/search/expressions/esdsl.ts | 194 ++++++++++++++++ .../data/common/search/expressions/index.ts | 2 + src/plugins/data/public/public.api.md | 3 +- .../public/search/expressions/esdsl.test.ts | 61 +++-- .../data/public/search/expressions/esdsl.ts | 209 +++--------------- .../data/public/search/expressions/index.ts | 2 +- .../data/public/search/search_service.ts | 9 +- .../data/server/search/expressions/esdsl.ts | 46 ++++ .../data/server/search/expressions/index.ts | 1 + .../data/server/search/search_service.ts | 5 +- 13 files changed, 327 insertions(+), 205 deletions(-) rename src/plugins/data/{public => common}/search/expressions/__snapshots__/es_raw_response.test.ts.snap (100%) rename src/plugins/data/{public => common}/search/expressions/es_raw_response.test.ts (100%) rename src/plugins/data/{public => common}/search/expressions/es_raw_response.ts (100%) create mode 100644 src/plugins/data/common/search/expressions/esdsl.ts create mode 100644 src/plugins/data/server/search/expressions/esdsl.ts diff --git a/src/plugins/data/public/search/expressions/__snapshots__/es_raw_response.test.ts.snap b/src/plugins/data/common/search/expressions/__snapshots__/es_raw_response.test.ts.snap similarity index 100% rename from src/plugins/data/public/search/expressions/__snapshots__/es_raw_response.test.ts.snap rename to src/plugins/data/common/search/expressions/__snapshots__/es_raw_response.test.ts.snap diff --git a/src/plugins/data/public/search/expressions/es_raw_response.test.ts b/src/plugins/data/common/search/expressions/es_raw_response.test.ts similarity index 100% rename from src/plugins/data/public/search/expressions/es_raw_response.test.ts rename to src/plugins/data/common/search/expressions/es_raw_response.test.ts diff --git a/src/plugins/data/public/search/expressions/es_raw_response.ts b/src/plugins/data/common/search/expressions/es_raw_response.ts similarity index 100% rename from src/plugins/data/public/search/expressions/es_raw_response.ts rename to src/plugins/data/common/search/expressions/es_raw_response.ts diff --git a/src/plugins/data/common/search/expressions/esdsl.ts b/src/plugins/data/common/search/expressions/esdsl.ts new file mode 100644 index 0000000000000..dee1b19eb3360 --- /dev/null +++ b/src/plugins/data/common/search/expressions/esdsl.ts @@ -0,0 +1,194 @@ +/* + * Copyright 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'; +import { ExpressionFunctionDefinition } from 'src/plugins/expressions/common'; + +import { EsRawResponse } from './es_raw_response'; +import { RequestStatistics, RequestAdapter } from '../../../../inspector/common'; +import { ISearchGeneric, KibanaContext } from '..'; +import { buildEsQuery, getEsQueryConfig } from '../../es_query/es_query'; +import { UiSettingsCommon } from '../../index_patterns'; + +const name = 'esdsl'; + +type Input = KibanaContext | null; +type Output = Promise; + +interface Arguments { + dsl: string; + index: string; + size: number; +} + +export type EsdslExpressionFunctionDefinition = ExpressionFunctionDefinition< + typeof name, + Input, + Arguments, + Output +>; + +/** @internal */ +export interface EsdslStartDependencies { + search: ISearchGeneric; + uiSettingsClient: UiSettingsCommon; +} + +export const getEsdslFn = ({ + getStartDependencies, +}: { + getStartDependencies: (getKibanaRequest: any) => Promise; +}) => { + const esdsl: EsdslExpressionFunctionDefinition = { + name, + type: 'es_raw_response', + inputTypes: ['kibana_context', 'null'], + help: i18n.translate('data.search.esdsl.help', { + defaultMessage: 'Run Elasticsearch request', + }), + args: { + dsl: { + types: ['string'], + aliases: ['_', 'q', 'query'], + help: i18n.translate('data.search.esdsl.q.help', { + defaultMessage: 'Query DSL', + }), + required: true, + }, + index: { + types: ['string'], + help: i18n.translate('data.search.esdsl.index.help', { + defaultMessage: 'ElasticSearch index to query', + }), + required: true, + }, + size: { + types: ['number'], + help: i18n.translate('data.search.esdsl.size.help', { + defaultMessage: 'ElasticSearch searchAPI size parameter', + }), + default: 10, + }, + }, + async fn(input, args, { inspectorAdapters, abortSignal, getKibanaRequest }) { + const { search, uiSettingsClient } = await getStartDependencies(getKibanaRequest); + + const dsl = JSON.parse(args.dsl); + + if (input) { + const esQueryConfigs = getEsQueryConfig(uiSettingsClient as any); + const query = buildEsQuery( + undefined, // args.index, + input.query || [], + input.filters || [], + esQueryConfigs + ); + + if (dsl.query) { + query.bool.must.push(dsl.query); + } + + dsl.query = query; + } + + if (!inspectorAdapters.requests) { + inspectorAdapters.requests = new RequestAdapter(); + } + + const request = inspectorAdapters.requests.start( + i18n.translate('data.search.dataRequest.title', { + defaultMessage: 'Data', + }), + { + description: i18n.translate('data.search.es_search.dataRequest.description', { + defaultMessage: + 'This request queries Elasticsearch to fetch the data for the visualization.', + }), + } + ); + + request.stats({ + indexPattern: { + label: i18n.translate('data.search.es_search.indexPatternLabel', { + defaultMessage: 'Index pattern', + }), + value: args.index, + description: i18n.translate('data.search.es_search.indexPatternDescription', { + defaultMessage: 'The index pattern that connected to the Elasticsearch indices.', + }), + }, + }); + + try { + const { rawResponse } = await search( + { + params: { + index: args.index, + size: args.size, + body: dsl, + }, + }, + { abortSignal } + ).toPromise(); + + const stats: RequestStatistics = {}; + + if (rawResponse?.took) { + stats.queryTime = { + label: i18n.translate('data.search.es_search.queryTimeLabel', { + defaultMessage: 'Query time', + }), + value: i18n.translate('data.search.es_search.queryTimeValue', { + defaultMessage: '{queryTime}ms', + values: { queryTime: rawResponse.took }, + }), + description: i18n.translate('data.search.es_search.queryTimeDescription', { + defaultMessage: + 'The time it took to process the query. ' + + 'Does not include the time to send the request or parse it in the browser.', + }), + }; + } + + if (rawResponse?.hits) { + stats.hitsTotal = { + label: i18n.translate('data.search.es_search.hitsTotalLabel', { + defaultMessage: 'Hits (total)', + }), + value: `${rawResponse.hits.total}`, + description: i18n.translate('data.search.es_search.hitsTotalDescription', { + defaultMessage: 'The number of documents that match the query.', + }), + }; + + stats.hits = { + label: i18n.translate('data.search.es_search.hitsLabel', { + defaultMessage: 'Hits', + }), + value: `${rawResponse.hits.hits.length}`, + description: i18n.translate('data.search.es_search.hitsDescription', { + defaultMessage: 'The number of documents returned by the query.', + }), + }; + } + + request.stats(stats).ok({ json: rawResponse }); + request.json(dsl); + + return { + type: 'es_raw_response', + body: rawResponse, + }; + } catch (e) { + request.error({ json: e }); + throw e; + } + }, + }; + return esdsl; +}; diff --git a/src/plugins/data/common/search/expressions/index.ts b/src/plugins/data/common/search/expressions/index.ts index b80cbad778a11..6df6dacddeb2d 100644 --- a/src/plugins/data/common/search/expressions/index.ts +++ b/src/plugins/data/common/search/expressions/index.ts @@ -23,3 +23,5 @@ export * from './range_filter'; export * from './kibana_filter'; export * from './filters_to_ast'; export * from './timerange'; +export * from './es_raw_response'; +export * from './esdsl'; diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index cb6d98ed34e10..be57435aa29d4 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -40,7 +40,6 @@ import { EventEmitter } from 'events'; import { ExecutionContext } from 'src/plugins/expressions/common'; import { ExpressionAstExpression } from 'src/plugins/expressions/common'; import { ExpressionFunctionDefinition } from 'src/plugins/expressions/common'; -import { ExpressionFunctionDefinition as ExpressionFunctionDefinition_2 } from 'src/plugins/expressions/public'; import { ExpressionsSetup } from 'src/plugins/expressions/public'; import { ExpressionValueBoxed } from 'src/plugins/expressions/common'; import { FormatFactory as FormatFactory_2 } from 'src/plugins/data/common/field_formats/utils'; @@ -727,7 +726,7 @@ export type EsaggsExpressionFunctionDefinition = ExpressionFunctionDefinition<'e // Warning: (ae-missing-release-tag) "EsdslExpressionFunctionDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type EsdslExpressionFunctionDefinition = ExpressionFunctionDefinition_2; +export type EsdslExpressionFunctionDefinition = ExpressionFunctionDefinition; // Warning: (ae-missing-release-tag) "esFilters" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/src/plugins/data/public/search/expressions/esdsl.test.ts b/src/plugins/data/public/search/expressions/esdsl.test.ts index edaaa0cae2b7a..197957442cf30 100644 --- a/src/plugins/data/public/search/expressions/esdsl.test.ts +++ b/src/plugins/data/public/search/expressions/esdsl.test.ts @@ -6,7 +6,12 @@ * Side Public License, v 1. */ -import { esdsl } from './esdsl'; +import { getEsdsl } from './esdsl'; +import { MockedKeys } from '@kbn/utility-types/target/jest'; +import { EsdslExpressionFunctionDefinition } from '../../../common/search/expressions'; +import { StartServicesAccessor } from 'kibana/public'; +import { DataPublicPluginStart, DataStartDependencies } from '../../types'; +import { of } from 'rxjs'; jest.mock('@kbn/i18n', () => { return { @@ -16,26 +21,38 @@ jest.mock('@kbn/i18n', () => { }; }); -jest.mock('../../services', () => ({ - getUiSettings: () => ({ - get: () => true, - }), - getSearchService: () => ({ - search: jest.fn((params: any) => { - return { - toPromise: async () => { - return { rawResponse: params }; +describe('esdsl', () => { + let getStartServices: StartServicesAccessor; + let startDependencies: MockedKeys< + StartServicesAccessor + >; + let esdsl: EsdslExpressionFunctionDefinition; + + beforeEach(() => { + jest.clearAllMocks(); + startDependencies = [ + { + uiSettings: { + get: jest.fn().mockReturnValue(true), }, - }; - }), - }), -})); + }, + {}, + { + search: { + search: jest.fn((params: any) => of({ rawResponse: params })), + }, + }, + ]; + getStartServices = jest + .fn() + .mockResolvedValue(new Promise((resolve) => resolve(startDependencies))); + esdsl = getEsdsl({ getStartServices }); + }); -describe('esdsl', () => { describe('correctly handles input', () => { test('throws on invalid json input', async () => { const fn = async function () { - await esdsl().fn(null, { dsl: 'invalid json', index: 'test', size: 0 }, { + await esdsl.fn(null, { dsl: 'invalid json', index: 'test', size: 0 }, { inspectorAdapters: {}, } as any); }; @@ -50,7 +67,7 @@ describe('esdsl', () => { }); test('adds filters', async () => { - const result = await esdsl().fn( + const result = await esdsl.fn( { type: 'kibana_context', filters: [ @@ -68,7 +85,7 @@ describe('esdsl', () => { }); test('adds filters to query with filters', async () => { - const result = await esdsl().fn( + const result = await esdsl.fn( { type: 'kibana_context', filters: [ @@ -90,7 +107,7 @@ describe('esdsl', () => { }); test('adds query', async () => { - const result = await esdsl().fn( + const result = await esdsl.fn( { type: 'kibana_context', query: { language: 'lucene', query: '*' }, @@ -103,7 +120,7 @@ describe('esdsl', () => { }); test('adds query to a query with filters', async () => { - const result = await esdsl().fn( + const result = await esdsl.fn( { type: 'kibana_context', query: { language: 'lucene', query: '*' }, @@ -120,7 +137,7 @@ describe('esdsl', () => { }); test('ignores timerange', async () => { - const result = await esdsl().fn( + const result = await esdsl.fn( { type: 'kibana_context', timeRange: { from: 'now-15m', to: 'now' }, @@ -134,7 +151,7 @@ describe('esdsl', () => { }); test('correctly handles filter, query and timerange on context', async () => { - const result = await esdsl().fn( + const result = await esdsl.fn( { type: 'kibana_context', query: { language: 'lucene', query: '*' }, diff --git a/src/plugins/data/public/search/expressions/esdsl.ts b/src/plugins/data/public/search/expressions/esdsl.ts index 290f488ef29b5..1dda44ee8993e 100644 --- a/src/plugins/data/public/search/expressions/esdsl.ts +++ b/src/plugins/data/public/search/expressions/esdsl.ts @@ -6,182 +6,37 @@ * Side Public License, v 1. */ -import { i18n } from '@kbn/i18n'; -import { ExpressionFunctionDefinition } from 'src/plugins/expressions/public'; - -import { getSearchService, getUiSettings } from '../../services'; -import { EsRawResponse } from './es_raw_response'; -import { RequestStatistics, RequestAdapter } from '../../../../inspector/common'; -import { IEsSearchResponse, KibanaContext } from '../../../common/search'; -import { buildEsQuery, getEsQueryConfig } from '../../../common/es_query/es_query'; -import { DataPublicPluginStart } from '../../types'; - -const name = 'esdsl'; - -type Input = KibanaContext | null; -type Output = Promise; - -interface Arguments { - dsl: string; - index: string; - size: number; -} - -export type EsdslExpressionFunctionDefinition = ExpressionFunctionDefinition< - typeof name, - Input, - Arguments, - Output ->; - -export const esdsl = (): EsdslExpressionFunctionDefinition => ({ - name, - type: 'es_raw_response', - inputTypes: ['kibana_context', 'null'], - help: i18n.translate('data.search.esdsl.help', { - defaultMessage: 'Run Elasticsearch request', - }), - args: { - dsl: { - types: ['string'], - aliases: ['_', 'q', 'query'], - help: i18n.translate('data.search.esdsl.q.help', { - defaultMessage: 'Query DSL', - }), - required: true, - }, - index: { - types: ['string'], - help: i18n.translate('data.search.esdsl.index.help', { - defaultMessage: 'ElasticSearch index to query', - }), - required: true, - }, - size: { - types: ['number'], - help: i18n.translate('data.search.esdsl.size.help', { - defaultMessage: 'ElasticSearch searchAPI size parameter', - }), - default: 10, - }, - }, - async fn(input, args, { inspectorAdapters, abortSignal }) { - const searchService: DataPublicPluginStart['search'] = getSearchService(); - - const dsl = JSON.parse(args.dsl); - - if (input) { - const esQueryConfigs = getEsQueryConfig(getUiSettings()); - const query = buildEsQuery( - undefined, // args.index, - input.query || [], - input.filters || [], - esQueryConfigs - ); - - if (!dsl.query) { - dsl.query = query; - } else { - query.bool.must.push(dsl.query); - dsl.query = query; - } - } - - if (!inspectorAdapters.requests) { - inspectorAdapters.requests = new RequestAdapter(); - } - - const request = inspectorAdapters.requests.start( - i18n.translate('data.search.dataRequest.title', { - defaultMessage: 'Data', - }), - { - description: i18n.translate('data.search.es_search.dataRequest.description', { - defaultMessage: - 'This request queries Elasticsearch to fetch the data for the visualization.', - }), - } - ); - - request.stats({ - indexPattern: { - label: i18n.translate('data.search.es_search.indexPatternLabel', { - defaultMessage: 'Index pattern', - }), - value: args.index, - description: i18n.translate('data.search.es_search.indexPatternDescription', { - defaultMessage: 'The index pattern that connected to the Elasticsearch indices.', - }), - }, - }); - - let res: IEsSearchResponse; - try { - res = await searchService - .search( - { - params: { - index: args.index, - size: args.size, - body: dsl, - }, - }, - { abortSignal } - ) - .toPromise(); - - const stats: RequestStatistics = {}; - const resp = res.rawResponse; - - if (resp && resp.took) { - stats.queryTime = { - label: i18n.translate('data.search.es_search.queryTimeLabel', { - defaultMessage: 'Query time', - }), - value: i18n.translate('data.search.es_search.queryTimeValue', { - defaultMessage: '{queryTime}ms', - values: { queryTime: resp.took }, - }), - description: i18n.translate('data.search.es_search.queryTimeDescription', { - defaultMessage: - 'The time it took to process the query. ' + - 'Does not include the time to send the request or parse it in the browser.', - }), - }; - } - - if (resp && resp.hits) { - stats.hitsTotal = { - label: i18n.translate('data.search.es_search.hitsTotalLabel', { - defaultMessage: 'Hits (total)', - }), - value: `${resp.hits.total}`, - description: i18n.translate('data.search.es_search.hitsTotalDescription', { - defaultMessage: 'The number of documents that match the query.', - }), - }; - - stats.hits = { - label: i18n.translate('data.search.es_search.hitsLabel', { - defaultMessage: 'Hits', - }), - value: `${resp.hits.hits.length}`, - description: i18n.translate('data.search.es_search.hitsDescription', { - defaultMessage: 'The number of documents returned by the query.', - }), - }; - } - - request.stats(stats).ok({ json: resp }); - request.json(dsl); - +import { StartServicesAccessor } from 'src/core/public'; +import { DataPublicPluginStart, DataStartDependencies } from '../../types'; +import { getEsdslFn } from '../../../common/search/expressions/esdsl'; +import { UiSettingsCommon } from '../../../common/index_patterns'; + +/** + * This is some glue code that takes in `core.getStartServices`, extracts the dependencies + * needed for this function, and wraps them behind a `getStartDependencies` function that + * is then called at runtime. + * + * We do this so that we can be explicit about exactly which dependencies the function + * requires, without cluttering up the top-level `plugin.ts` with this logic. It also + * makes testing the expression function a bit easier since `getStartDependencies` is + * the only thing you should need to mock. + * + * @param getStartServices - core's StartServicesAccessor for this plugin + * + * @internal + */ +export function getEsdsl({ + getStartServices, +}: { + getStartServices: StartServicesAccessor; +}) { + return getEsdslFn({ + getStartDependencies: async () => { + const [core, , { search }] = await getStartServices(); return { - type: 'es_raw_response', - body: resp, + uiSettingsClient: (core.uiSettings as any) as UiSettingsCommon, + search: search.search, }; - } catch (e) { - request.error({ json: e }); - throw e; - } - }, -}); + }, + }); +} diff --git a/src/plugins/data/public/search/expressions/index.ts b/src/plugins/data/public/search/expressions/index.ts index cb4ca4b432610..d60ab610d27b5 100644 --- a/src/plugins/data/public/search/expressions/index.ts +++ b/src/plugins/data/public/search/expressions/index.ts @@ -6,6 +6,6 @@ * Side Public License, v 1. */ -export * from './es_raw_response'; export * from './esaggs'; export * from './esdsl'; +export * from '../../../common/search/expressions'; diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index a3acd775ee892..83a44b6f68af6 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -33,6 +33,7 @@ import { rangeFilterFunction, kibanaFilterFunction, phraseFilterFunction, + esRawResponse, } from '../../common/search'; import { getCallMsearch } from './legacy'; import { AggsService, AggsStartDependencies } from './aggs'; @@ -40,7 +41,7 @@ import { IndexPatternsContract } from '../index_patterns/index_patterns'; import { ISearchInterceptor, SearchInterceptor } from './search_interceptor'; import { SearchUsageCollector, createUsageCollector } from './collectors'; import { UsageCollectionSetup } from '../../../usage_collection/public'; -import { esdsl, esRawResponse, getEsaggs } from './expressions'; +import { getEsaggs, getEsdsl } from './expressions'; import { ExpressionsSetup } from '../../../expressions/public'; import { ISessionsClient, ISessionService, SessionsClient, SessionService } from './session'; import { ConfigSchema } from '../../config'; @@ -126,7 +127,11 @@ export class SearchService implements Plugin { expressions.registerFunction(phraseFilterFunction); expressions.registerType(kibanaContext); - expressions.registerFunction(esdsl); + expressions.registerFunction( + getEsdsl({ getStartServices } as { + getStartServices: StartServicesAccessor; + }) + ); expressions.registerType(esRawResponse); const aggs = this.aggsService.setup({ diff --git a/src/plugins/data/server/search/expressions/esdsl.ts b/src/plugins/data/server/search/expressions/esdsl.ts new file mode 100644 index 0000000000000..e16204c8782e4 --- /dev/null +++ b/src/plugins/data/server/search/expressions/esdsl.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 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 { StartServicesAccessor } from 'src/core/server'; +import { DataPluginStart, DataPluginStartDependencies } from '../../plugin'; +import { getEsdslFn } from '../../../common/search/expressions/esdsl'; + +/** + * This is some glue code that takes in `core.getStartServices`, extracts the dependencies + * needed for this function, and wraps them behind a `getStartDependencies` function that + * is then called at runtime. + * + * We do this so that we can be explicit about exactly which dependencies the function + * requires, without cluttering up the top-level `plugin.ts` with this logic. It also + * makes testing the expression function a bit easier since `getStartDependencies` is + * the only thing you should need to mock. + * + * @param getStartServices - core's StartServicesAccessor for this plugin + * + * @internal + */ +export function getEsdsl({ + getStartServices, +}: { + getStartServices: StartServicesAccessor; +}) { + return getEsdslFn({ + getStartDependencies: async (getKibanaRequest: any) => { + const [core, , { search }] = await getStartServices(); + if (!getKibanaRequest || !getKibanaRequest()) { + throw new Error('TODO: add text'); + } + const request = getKibanaRequest(); + const savedObjectsClient = core.savedObjects.getScopedClient(request); + return { + uiSettingsClient: core.uiSettings.asScopedToClient(savedObjectsClient), + search: search.asScoped(request).search, + }; + }, + }); +} diff --git a/src/plugins/data/server/search/expressions/index.ts b/src/plugins/data/server/search/expressions/index.ts index a052066186235..bb690c2e6e7c6 100644 --- a/src/plugins/data/server/search/expressions/index.ts +++ b/src/plugins/data/server/search/expressions/index.ts @@ -7,3 +7,4 @@ */ export * from './esaggs'; +export * from './esdsl'; diff --git a/src/plugins/data/server/search/search_service.ts b/src/plugins/data/server/search/search_service.ts index fdf0b66197b34..b62c5d26f691d 100644 --- a/src/plugins/data/server/search/search_service.ts +++ b/src/plugins/data/server/search/search_service.ts @@ -63,8 +63,9 @@ import { searchSourceRequiredUiSettings, SearchSourceService, phraseFilterFunction, + esRawResponse, } from '../../common/search'; -import { getEsaggs } from './expressions'; +import { getEsaggs, getEsdsl } from './expressions'; import { getShardDelayBucketAgg, SHARD_DELAY_AGG_NAME, @@ -150,6 +151,7 @@ export class SearchService implements Plugin { } expressions.registerFunction(getEsaggs({ getStartServices: core.getStartServices })); + expressions.registerFunction(getEsdsl({ getStartServices: core.getStartServices })); expressions.registerFunction(kibana); expressions.registerFunction(luceneFunction); expressions.registerFunction(kqlFunction); @@ -162,6 +164,7 @@ export class SearchService implements Plugin { expressions.registerFunction(rangeFilterFunction); expressions.registerFunction(phraseFilterFunction); expressions.registerType(kibanaContext); + expressions.registerType(esRawResponse); const aggs = this.aggsService.setup({ registerFunction: expressions.registerFunction }); From 7ef8be603139f35c8c94d82b20a082398f2f5ad8 Mon Sep 17 00:00:00 2001 From: ymao1 Date: Wed, 31 Mar 2021 07:43:48 -0400 Subject: [PATCH 002/106] =?UTF-8?q?Fixes=20Failing=20test:=20Chrome=20X-Pa?= =?UTF-8?q?ck=20UI=20Functional=20Tests.x-pack/test/functional=5Fwith=5Fes?= =?UTF-8?q?=5Fssl/apps/triggers=5Factions=5Fui/alerts=5Flist=C2=B7ts=20-?= =?UTF-8?q?=20Actions=20and=20Triggers=20app=20alerts=20list=20should=20un?= =?UTF-8?q?mute=20single=20alert=20(#95808)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Unskipping test * Adding retries * Adding retries * Adding retries --- .../apps/triggers_actions_ui/alerts_list.ts | 63 ++++++++++--------- .../page_objects/triggers_actions_ui_page.ts | 13 ++++ 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts index 550e6ca455b22..4c085cbb77045 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts @@ -54,8 +54,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await testSubjects.click('rulesTab'); } - // Failing: See https://github.com/elastic/kibana/issues/95590 - describe.skip('alerts list', function () { + describe('alerts list', function () { before(async () => { await pageObjects.common.navigateToApp('triggersActions'); await testSubjects.click('rulesTab'); @@ -129,13 +128,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await pageObjects.triggersActionsUI.toggleSwitch('disableSwitch'); - await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); - - await testSubjects.click('collapsedItemActions'); - - const disableSwitchAfterDisable = await testSubjects.find('disableSwitch'); - const isChecked = await disableSwitchAfterDisable.getAttribute('aria-checked'); - expect(isChecked).to.eql('true'); + await pageObjects.triggersActionsUI.ensureRuleActionToggleApplied( + createdAlert.name, + 'disableSwitch', + 'true' + ); }); it('should re-enable single alert', async () => { @@ -147,19 +144,23 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await pageObjects.triggersActionsUI.toggleSwitch('disableSwitch'); + await pageObjects.triggersActionsUI.ensureRuleActionToggleApplied( + createdAlert.name, + 'disableSwitch', + 'true' + ); + await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); await testSubjects.click('collapsedItemActions'); await pageObjects.triggersActionsUI.toggleSwitch('disableSwitch'); - await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); - - await testSubjects.click('collapsedItemActions'); - - const disableSwitchAfterReEnable = await testSubjects.find('disableSwitch'); - const isChecked = await disableSwitchAfterReEnable.getAttribute('aria-checked'); - expect(isChecked).to.eql('false'); + await pageObjects.triggersActionsUI.ensureRuleActionToggleApplied( + createdAlert.name, + 'disableSwitch', + 'false' + ); }); it('should mute single alert', async () => { @@ -171,13 +172,11 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await pageObjects.triggersActionsUI.toggleSwitch('muteSwitch'); - await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); - - await testSubjects.click('collapsedItemActions'); - - const muteSwitchAfterMute = await testSubjects.find('muteSwitch'); - const isChecked = await muteSwitchAfterMute.getAttribute('aria-checked'); - expect(isChecked).to.eql('true'); + await pageObjects.triggersActionsUI.ensureRuleActionToggleApplied( + createdAlert.name, + 'muteSwitch', + 'true' + ); }); it('should unmute single alert', async () => { @@ -189,19 +188,23 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await pageObjects.triggersActionsUI.toggleSwitch('muteSwitch'); + await pageObjects.triggersActionsUI.ensureRuleActionToggleApplied( + createdAlert.name, + 'muteSwitch', + 'true' + ); + await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); await testSubjects.click('collapsedItemActions'); await pageObjects.triggersActionsUI.toggleSwitch('muteSwitch'); - await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); - - await testSubjects.click('collapsedItemActions'); - - const muteSwitchAfterUnmute = await testSubjects.find('muteSwitch'); - const isChecked = await muteSwitchAfterUnmute.getAttribute('aria-checked'); - expect(isChecked).to.eql('false'); + await pageObjects.triggersActionsUI.ensureRuleActionToggleApplied( + createdAlert.name, + 'muteSwitch', + 'false' + ); }); it('should delete single alert', async () => { diff --git a/x-pack/test/functional_with_es_ssl/page_objects/triggers_actions_ui_page.ts b/x-pack/test/functional_with_es_ssl/page_objects/triggers_actions_ui_page.ts index 8d4311a3ec322..e5971ddba415f 100644 --- a/x-pack/test/functional_with_es_ssl/page_objects/triggers_actions_ui_page.ts +++ b/x-pack/test/functional_with_es_ssl/page_objects/triggers_actions_ui_page.ts @@ -186,5 +186,18 @@ export function TriggersActionsPageProvider({ getService }: FtrProviderContext) expect(isConfirmationModalVisible).to.eql(true, 'Expect confirmation modal to be visible'); await testSubjects.click('confirmModalConfirmButton'); }, + async ensureRuleActionToggleApplied( + ruleName: string, + switchName: string, + shouldBeCheckedAsString: string + ) { + await retry.try(async () => { + await this.searchAlerts(ruleName); + await testSubjects.click('collapsedItemActions'); + const switchControl = await testSubjects.find(switchName); + const isChecked = await switchControl.getAttribute('aria-checked'); + expect(isChecked).to.eql(shouldBeCheckedAsString); + }); + }, }; } From b301d416b7d2d729fd3257d1657b8841f1d9003c Mon Sep 17 00:00:00 2001 From: Ryan Keairns Date: Wed, 31 Mar 2021 07:49:50 -0500 Subject: [PATCH 003/106] Update Cloud plugin to handle new config in kibana.yml (#95569) * Handle cloud urls from kibana.yml * Add types to utils params * Update utils * address nits Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../instructions/cloud_instructions.ts | 7 ++-- x-pack/plugins/cloud/public/mocks.ts | 7 +++- x-pack/plugins/cloud/public/plugin.ts | 40 +++++++++++++------ .../plugins/cloud/public/user_menu_links.ts | 11 ++--- x-pack/plugins/cloud/public/utils.ts | 14 +++++++ x-pack/plugins/cloud/server/config.ts | 16 +++++--- .../__mocks__/kibana_logic.mock.ts | 2 +- .../shared/setup_guide/setup_guide.tsx | 2 +- .../data_tier_allocation_field.tsx | 2 +- .../nav_control/nav_control_component.tsx | 3 +- .../translations/translations/ja-JP.json | 2 +- .../translations/translations/zh-CN.json | 2 +- 12 files changed, 72 insertions(+), 36 deletions(-) create mode 100644 x-pack/plugins/cloud/public/utils.ts diff --git a/src/plugins/home/server/tutorials/instructions/cloud_instructions.ts b/src/plugins/home/server/tutorials/instructions/cloud_instructions.ts index a75d6f6c06a95..ed9e588a999b4 100644 --- a/src/plugins/home/server/tutorials/instructions/cloud_instructions.ts +++ b/src/plugins/home/server/tutorials/instructions/cloud_instructions.ts @@ -7,15 +7,14 @@ */ import { i18n } from '@kbn/i18n'; - export const cloudPasswordAndResetLink = i18n.translate( 'home.tutorials.common.cloudInstructions.passwordAndResetLink', { defaultMessage: 'Where {passwordTemplate} is the password of the `elastic` user.' + - `\\{#config.cloud.resetPasswordUrl\\} - Forgot the password? [Reset in Elastic Cloud](\\{config.cloud.resetPasswordUrl\\}). - \\{/config.cloud.resetPasswordUrl\\}`, + `\\{#config.cloud.profileUrl\\} + Forgot the password? [Reset in Elastic Cloud](\\{config.cloud.baseUrl\\}\\{config.cloud.profileUrl\\}). + \\{/config.cloud.profileUrl\\}`, values: { passwordTemplate: '``' }, } ); diff --git a/x-pack/plugins/cloud/public/mocks.ts b/x-pack/plugins/cloud/public/mocks.ts index 8d9941073140f..52a027e899d0d 100644 --- a/x-pack/plugins/cloud/public/mocks.ts +++ b/x-pack/plugins/cloud/public/mocks.ts @@ -9,8 +9,11 @@ function createSetupMock() { return { cloudId: 'mock-cloud-id', isCloudEnabled: true, - resetPasswordUrl: 'reset-password-url', - accountUrl: 'account-url', + cname: 'cname', + baseUrl: 'base-url', + deploymentUrl: 'deployment-url', + profileUrl: 'profile-url', + organizationUrl: 'organization-url', }; } diff --git a/x-pack/plugins/cloud/public/plugin.ts b/x-pack/plugins/cloud/public/plugin.ts index 4c12aa3d92b47..8ca4f7711811a 100644 --- a/x-pack/plugins/cloud/public/plugin.ts +++ b/x-pack/plugins/cloud/public/plugin.ts @@ -12,12 +12,15 @@ import { getIsCloudEnabled } from '../common/is_cloud_enabled'; import { ELASTIC_SUPPORT_LINK } from '../common/constants'; import { HomePublicPluginSetup } from '../../../../src/plugins/home/public'; import { createUserMenuLinks } from './user_menu_links'; +import { getFullCloudUrl } from './utils'; export interface CloudConfigType { id?: string; - resetPasswordUrl?: string; - deploymentUrl?: string; - accountUrl?: string; + cname?: string; + base_url?: string; + profile_url?: string; + deployment_url?: string; + organization_url?: string; } interface CloudSetupDependencies { @@ -30,10 +33,12 @@ interface CloudStartDependencies { export interface CloudSetup { cloudId?: string; - cloudDeploymentUrl?: string; + cname?: string; + baseUrl?: string; + deploymentUrl?: string; + profileUrl?: string; + organizationUrl?: string; isCloudEnabled: boolean; - resetPasswordUrl?: string; - accountUrl?: string; } export class CloudPlugin implements Plugin { @@ -46,33 +51,44 @@ export class CloudPlugin implements Plugin { } public setup(core: CoreSetup, { home }: CloudSetupDependencies) { - const { id, resetPasswordUrl, deploymentUrl } = this.config; + const { + id, + cname, + profile_url: profileUrl, + organization_url: organizationUrl, + deployment_url: deploymentUrl, + base_url: baseUrl, + } = this.config; this.isCloudEnabled = getIsCloudEnabled(id); if (home) { home.environment.update({ cloud: this.isCloudEnabled }); if (this.isCloudEnabled) { - home.tutorials.setVariable('cloud', { id, resetPasswordUrl }); + home.tutorials.setVariable('cloud', { id, baseUrl, profileUrl }); } } return { cloudId: id, - cloudDeploymentUrl: deploymentUrl, + cname, + baseUrl, + deploymentUrl: getFullCloudUrl(baseUrl, deploymentUrl), + profileUrl: getFullCloudUrl(baseUrl, profileUrl), + organizationUrl: getFullCloudUrl(baseUrl, organizationUrl), isCloudEnabled: this.isCloudEnabled, }; } public start(coreStart: CoreStart, { security }: CloudStartDependencies) { - const { deploymentUrl } = this.config; + const { deployment_url: deploymentUrl, base_url: baseUrl } = this.config; coreStart.chrome.setHelpSupportUrl(ELASTIC_SUPPORT_LINK); - if (deploymentUrl) { + if (baseUrl && deploymentUrl) { coreStart.chrome.setCustomNavLink({ title: i18n.translate('xpack.cloud.deploymentLinkLabel', { defaultMessage: 'Manage this deployment', }), euiIconType: 'arrowLeft', - href: deploymentUrl, + href: getFullCloudUrl(baseUrl, deploymentUrl), }); } diff --git a/x-pack/plugins/cloud/public/user_menu_links.ts b/x-pack/plugins/cloud/public/user_menu_links.ts index e662d51500333..f00911d577c59 100644 --- a/x-pack/plugins/cloud/public/user_menu_links.ts +++ b/x-pack/plugins/cloud/public/user_menu_links.ts @@ -8,30 +8,31 @@ import { i18n } from '@kbn/i18n'; import { UserMenuLink } from '../../security/public'; import { CloudConfigType } from '.'; +import { getFullCloudUrl } from './utils'; export const createUserMenuLinks = (config: CloudConfigType): UserMenuLink[] => { - const { resetPasswordUrl, accountUrl } = config; + const { profile_url: profileUrl, organization_url: organizationUrl, base_url: baseUrl } = config; const userMenuLinks = [] as UserMenuLink[]; - if (resetPasswordUrl) { + if (baseUrl && profileUrl) { userMenuLinks.push({ label: i18n.translate('xpack.cloud.userMenuLinks.profileLinkText', { defaultMessage: 'Profile', }), iconType: 'user', - href: resetPasswordUrl, + href: getFullCloudUrl(baseUrl, profileUrl), order: 100, setAsProfile: true, }); } - if (accountUrl) { + if (baseUrl && organizationUrl) { userMenuLinks.push({ label: i18n.translate('xpack.cloud.userMenuLinks.accountLinkText', { defaultMessage: 'Account & Billing', }), iconType: 'gear', - href: accountUrl, + href: getFullCloudUrl(baseUrl, organizationUrl), order: 200, }); } diff --git a/x-pack/plugins/cloud/public/utils.ts b/x-pack/plugins/cloud/public/utils.ts new file mode 100644 index 0000000000000..e4d4ace64563c --- /dev/null +++ b/x-pack/plugins/cloud/public/utils.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 function getFullCloudUrl(baseUrl: string | undefined, dirPath: string | undefined) { + if (baseUrl && dirPath) { + return `${baseUrl}${dirPath}`; + } + + return ''; +} diff --git a/x-pack/plugins/cloud/server/config.ts b/x-pack/plugins/cloud/server/config.ts index 673df5ac2203b..0e73d59667131 100644 --- a/x-pack/plugins/cloud/server/config.ts +++ b/x-pack/plugins/cloud/server/config.ts @@ -22,9 +22,11 @@ const configSchema = schema.object({ enabled: schema.boolean({ defaultValue: true }), id: schema.maybe(schema.string()), apm: schema.maybe(apmConfigSchema), - resetPasswordUrl: schema.maybe(schema.string()), - deploymentUrl: schema.maybe(schema.string()), - accountUrl: schema.maybe(schema.string()), + cname: schema.maybe(schema.string()), + base_url: schema.maybe(schema.string()), + profile_url: schema.maybe(schema.string()), + deployment_url: schema.maybe(schema.string()), + organization_url: schema.maybe(schema.string()), }); export type CloudConfigType = TypeOf; @@ -32,9 +34,11 @@ export type CloudConfigType = TypeOf; export const config: PluginConfigDescriptor = { exposeToBrowser: { id: true, - resetPasswordUrl: true, - deploymentUrl: true, - accountUrl: true, + cname: true, + base_url: true, + profile_url: true, + deployment_url: true, + organization_url: true, }, schema: configSchema, }; diff --git a/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts b/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts index d8d66e5ee1998..133f704fd59a9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts @@ -14,7 +14,7 @@ export const mockKibanaValues = { charts: chartPluginMock.createStartContract(), cloud: { isCloudEnabled: false, - cloudDeploymentUrl: 'https://cloud.elastic.co/deployments/some-id', + deployment_url: 'https://cloud.elastic.co/deployments/some-id', }, history: mockHistory, navigateToUrl: jest.fn(), diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/setup_guide.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/setup_guide.tsx index 2140b3392abae..b4108e584086d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/setup_guide.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/setup_guide.tsx @@ -50,7 +50,7 @@ export const SetupGuideLayout: React.FC = ({ }) => { const { cloud } = useValues(KibanaLogic); const isCloudEnabled = Boolean(cloud.isCloudEnabled); - const cloudDeploymentLink = cloud.cloudDeploymentUrl || ''; + const cloudDeploymentLink = cloud.deploymentUrl || ''; return ( diff --git a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/data_tier_allocation_field.tsx b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/data_tier_allocation_field.tsx index ffd4e2758ab86..8c90a738d2c09 100644 --- a/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/data_tier_allocation_field.tsx +++ b/x-pack/plugins/index_lifecycle_management/public/application/sections/edit_policy/components/phases/shared_fields/data_tier_allocation_field/data_tier_allocation_field.tsx @@ -60,7 +60,7 @@ export const DataTierAllocationField: FunctionComponent = ({ phase, descr const hasNodeAttrs = Boolean(Object.keys(nodesByAttributes ?? {}).length); const isCloudEnabled = cloud?.isCloudEnabled ?? false; - const cloudDeploymentUrl = cloud?.cloudDeploymentUrl; + const cloudDeploymentUrl = cloud?.deploymentUrl; const renderNotice = () => { switch (allocationType) { diff --git a/x-pack/plugins/security/public/nav_control/nav_control_component.tsx b/x-pack/plugins/security/public/nav_control/nav_control_component.tsx index 546d6cf5a6bba..56eb784467c05 100644 --- a/x-pack/plugins/security/public/nav_control/nav_control_component.tsx +++ b/x-pack/plugins/security/public/nav_control/nav_control_component.tsx @@ -15,7 +15,6 @@ import { EuiIcon, EuiLoadingSpinner, EuiPopover, - EuiText, } from '@elastic/eui'; import React, { Component } from 'react'; import type { Observable, Subscription } from 'rxjs'; @@ -128,7 +127,7 @@ export class SecurityNavControl extends Component { const userMenuLinkMenuItems = userMenuLinks .sort(({ order: orderA = Infinity }, { order: orderB = Infinity }) => orderA - orderB) .map(({ label, iconType, href }: UserMenuLink) => ({ - name: {label}, + name: label, icon: , href, 'data-test-subj': `userMenuLink__${label}`, diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index f55b6c5217ad9..8d223e730c5fa 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -2097,7 +2097,7 @@ "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.resetPasswordUrl\\}\n パスワードを忘れた場合[Elastic Cloudでリセット] (\\{config.cloud.resetPasswordUrl\\}) 。\n \\{/config.cloud.resetPasswordUrl\\}", + "home.tutorials.common.cloudInstructions.passwordAndResetLink": "{passwordTemplate}が「Elastic」ユーザーのパスワードです。\\{#config.cloud.base_url\\}\\{#config.cloud.profile_url\\}\n パスワードを忘れた場合[Elastic Cloudでリセット] (\\{#config.cloud.base_url\\}\\{config.cloud.profile_url\\}) 。\n \\{#config.cloud.base_url\\}\\{/config.cloud.profile_url\\}", "home.tutorials.common.filebeat.cloudInstructions.gettingStarted.title": "はじめに", "home.tutorials.common.filebeat.premCloudInstructions.gettingStarted.title": "はじめに", "home.tutorials.common.filebeat.premInstructions.gettingStarted.title": "はじめに", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index c0652b8ac2a65..269926a607d95 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -2108,7 +2108,7 @@ "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.resetPasswordUrl\\}\n 忘了密码?[在 Elastic Cloud 中重置](\\{config.cloud.resetPasswordUrl\\})。\n \\{/config.cloud.resetPasswordUrl\\}", + "home.tutorials.common.cloudInstructions.passwordAndResetLink": "其中 {passwordTemplate} 是用户 `elastic` 的密码。\\{#config.cloud.base_url\\}\\{#config.cloud.profile_url\\}\n 忘了密码?[在 Elastic Cloud 中重置](\\{#config.cloud.base_url\\}\\{config.cloud.profile_url\\})。\n \\{#config.cloud.base_url\\}\\{/config.cloud.profile_url\\}", "home.tutorials.common.filebeat.cloudInstructions.gettingStarted.title": "入门", "home.tutorials.common.filebeat.premCloudInstructions.gettingStarted.title": "入门", "home.tutorials.common.filebeat.premInstructions.gettingStarted.title": "入门", From 9dffcc2afa121ad929a1f8f03270b4d155a1ef0e Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Wed, 31 Mar 2021 15:29:06 +0200 Subject: [PATCH 004/106] [Search Sessions] Fix config docs (#95920) --- .../settings/search-sessions-settings.asciidoc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/settings/search-sessions-settings.asciidoc b/docs/settings/search-sessions-settings.asciidoc index c9a9e709ac7f8..cf64d08e4806c 100644 --- a/docs/settings/search-sessions-settings.asciidoc +++ b/docs/settings/search-sessions-settings.asciidoc @@ -11,15 +11,15 @@ Configure the search session settings in your `kibana.yml` configuration file. [cols="2*<"] |=== a| `xpack.data_enhanced.` -`search.sessions:enabled` - | Set to `true` (default) to enable search sessions. +`search.sessions.enabled` +| Set to `true` (default) to enable search sessions. -a| `xpack.data.enhanced.` -`search.sessions:trackingInterval` - | The frequency for updating the state of a search session. The default is 10s. +a| `xpack.data_enhanced.` +`search.sessions.trackingInterval` +| The frequency for updating the state of a search session. The default is 10s. -a| `xpack.data.enhanced.` -`search.sessions:defaultExpiration` - | How long search session results are stored before they are deleted. - Extending a search session resets the expiration by the same value. The default is 7d. +a| `xpack.data_enhanced.` +`search.sessions.defaultExpiration` +| How long search session results are stored before they are deleted. +Extending a search session resets the expiration by the same value. The default is 7d. |=== From 004a9a14c80db787f5ae82c5c3b7ca7d1227a741 Mon Sep 17 00:00:00 2001 From: Marco Liberati Date: Wed, 31 Mar 2021 15:31:29 +0200 Subject: [PATCH 005/106] [Lens] Unskip a11y test in Lens (#95904) --- x-pack/test/accessibility/apps/lens.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/x-pack/test/accessibility/apps/lens.ts b/x-pack/test/accessibility/apps/lens.ts index 59ce697811aa7..a8d20ff56de08 100644 --- a/x-pack/test/accessibility/apps/lens.ts +++ b/x-pack/test/accessibility/apps/lens.ts @@ -112,8 +112,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await a11y.testAppSnapshot(); }); - // Skip until https://github.com/elastic/kibana/issues/88661 gets closed - it.skip('lens XY chart with multiple layers', async () => { + it('lens XY chart with multiple layers', async () => { await PageObjects.lens.createLayer(); await PageObjects.lens.switchToVisualization('area'); From cfe5f9c016625e6d6233f8d3a868308fdbba3d3c Mon Sep 17 00:00:00 2001 From: Devon Thomson Date: Wed, 31 Mar 2021 09:44:56 -0400 Subject: [PATCH 006/106] [Time to Visualize] Allow By Value Flow Without Visualize Save Permissions (#93846) * Made sure users can use by value workflow without visualize save permissions --- .../actions/add_to_library_action.test.tsx | 50 +++- .../actions/add_to_library_action.tsx | 18 +- .../actions/clone_panel_action.tsx | 3 +- src/plugins/dashboard/public/plugin.tsx | 11 +- src/plugins/dashboard/public/services/core.ts | 1 + .../saved_object_save_modal_dashboard.tsx | 10 +- ..._save_modal_dashboard_selector.stories.tsx | 7 + ...d_object_save_modal_dashboard_selector.tsx | 6 +- .../public/services/index.ts | 1 + .../public/services/kibana/capabilities.ts | 3 +- .../public/services/storybook/capabilities.ts | 2 + .../public/services/storybook/index.ts | 1 + .../public/services/stub/capabilities.ts | 1 + .../create_vis_embeddable_from_object.ts | 7 +- .../public/embeddable/visualize_embeddable.ts | 11 +- .../application/utils/get_top_nav_config.tsx | 26 +- .../public/application/utils/utils.ts | 2 +- x-pack/plugins/lens/public/app_plugin/app.tsx | 17 +- .../lens/public/app_plugin/lens_top_nav.tsx | 25 +- .../lens/public/app_plugin/save_modal.tsx | 6 +- .../embeddable/embeddable.test.tsx | 64 +++-- .../embeddable/embeddable.tsx | 13 +- .../embeddable/embeddable_factory.ts | 8 +- .../public/routes/map_page/top_nav_config.tsx | 6 +- .../apps/dashboard/feature_controls/index.ts | 1 + .../time_to_visualize_security.ts | 233 ++++++++++++++++++ 26 files changed, 468 insertions(+), 65 deletions(-) create mode 100644 x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx index 07c38fd406eea..1156bf8c6e0d1 100644 --- a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx +++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx @@ -41,8 +41,15 @@ const start = doStart(); let container: DashboardContainer; let embeddable: ContactCardEmbeddable & ReferenceOrValueEmbeddable; let coreStart: CoreStart; +let capabilities: CoreStart['application']['capabilities']; + beforeEach(async () => { coreStart = coreMock.createStart(); + capabilities = { + ...coreStart.application.capabilities, + visualize: { save: true }, + maps: { save: true }, + }; const containerOptions = { ExitFullScreenButton: () => null, @@ -83,7 +90,10 @@ beforeEach(async () => { }); test('Add to library is incompatible with Error Embeddables', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); const errorEmbeddable = new ErrorEmbeddable( 'Wow what an awful error', { id: ' 404' }, @@ -92,20 +102,37 @@ test('Add to library is incompatible with Error Embeddables', async () => { expect(await action.isCompatible({ embeddable: errorEmbeddable })).toBe(false); }); +test('Add to library is incompatible on visualize embeddable without visualize save permissions', async () => { + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities: { ...capabilities, visualize: { save: false } }, + }); + expect(await action.isCompatible({ embeddable })).toBe(false); +}); + test('Add to library is compatible when embeddable on dashboard has value type input', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); embeddable.updateInput(await embeddable.getInputAsValueType()); expect(await action.isCompatible({ embeddable })).toBe(true); }); test('Add to library is not compatible when embeddable input is by reference', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); embeddable.updateInput(await embeddable.getInputAsRefType()); expect(await action.isCompatible({ embeddable })).toBe(false); }); test('Add to library is not compatible when view mode is set to view', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); embeddable.updateInput(await embeddable.getInputAsRefType()); embeddable.updateInput({ viewMode: ViewMode.VIEW }); expect(await action.isCompatible({ embeddable })).toBe(false); @@ -126,7 +153,10 @@ test('Add to library is not compatible when embeddable is not in a dashboard con mockedByReferenceInput: { savedObjectId: 'test', id: orphanContactCard.id }, mockedByValueInput: { firstName: 'Kibanana', id: orphanContactCard.id }, }); - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); expect(await action.isCompatible({ embeddable: orphanContactCard })).toBe(false); }); @@ -135,7 +165,10 @@ test('Add to library replaces embeddableId and retains panel count', async () => const originalPanelCount = Object.keys(dashboard.getInput().panels).length; const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels)); - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); await action.execute({ embeddable }); expect(Object.keys(container.getInput().panels).length).toEqual(originalPanelCount); @@ -161,7 +194,10 @@ test('Add to library returns reference type input', async () => { }); const dashboard = embeddable.getRoot() as IContainer; const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels)); - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); await action.execute({ embeddable }); const newPanelId = Object.keys(container.getInput().panels).find( (key) => !originalPanelKeySet.has(key) diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx index ef730e16bc5cf..fa102a9415b3f 100644 --- a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx +++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx @@ -18,7 +18,7 @@ import { isReferenceOrValueEmbeddable, isErrorEmbeddable, } from '../../services/embeddable'; -import { NotificationsStart } from '../../services/core'; +import { ApplicationStart, NotificationsStart } from '../../services/core'; import { dashboardAddToLibraryAction } from '../../dashboard_strings'; import { DashboardPanelState, DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '..'; @@ -33,7 +33,12 @@ export class AddToLibraryAction implements Action { public readonly id = ACTION_ADD_TO_LIBRARY; public order = 15; - constructor(private deps: { toasts: NotificationsStart['toasts'] }) {} + constructor( + private deps: { + toasts: NotificationsStart['toasts']; + capabilities: ApplicationStart['capabilities']; + } + ) {} public getDisplayName({ embeddable }: AddToLibraryActionContext) { if (!embeddable.getRoot() || !embeddable.getRoot().isContainer) { @@ -50,8 +55,15 @@ export class AddToLibraryAction implements Action { } public async isCompatible({ embeddable }: AddToLibraryActionContext) { + // TODO: Fix this, potentially by adding a 'canSave' function to embeddable interface + const canSave = + embeddable.type === 'map' + ? this.deps.capabilities.maps?.save + : this.deps.capabilities.visualize.save; + return Boolean( - !isErrorEmbeddable(embeddable) && + canSave && + !isErrorEmbeddable(embeddable) && embeddable.getInput()?.viewMode !== ViewMode.VIEW && embeddable.getRoot() && embeddable.getRoot().isContainer && diff --git a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx index c82f17f2b29c4..829344504b16b 100644 --- a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx +++ b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx @@ -61,7 +61,8 @@ export class ClonePanelAction implements Action { embeddable.getInput()?.viewMode !== ViewMode.VIEW && embeddable.getRoot() && embeddable.getRoot().isContainer && - embeddable.getRoot().type === DASHBOARD_CONTAINER_TYPE + embeddable.getRoot().type === DASHBOARD_CONTAINER_TYPE && + embeddable.getOutput().editable ); } diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx index ae2d2b5f237c9..5bf730996ab4f 100644 --- a/src/plugins/dashboard/public/plugin.tsx +++ b/src/plugins/dashboard/public/plugin.tsx @@ -342,7 +342,7 @@ export class DashboardPlugin } public start(core: CoreStart, plugins: DashboardStartDependencies): DashboardStart { - const { notifications, overlays } = core; + const { notifications, overlays, application } = core; const { uiActions, data, share, presentationUtil, embeddable } = plugins; const SavedObjectFinder = getSavedObjectFinder(core.savedObjects, core.uiSettings); @@ -370,7 +370,10 @@ export class DashboardPlugin } if (this.dashboardFeatureFlagConfig?.allowByValueEmbeddables) { - const addToLibraryAction = new AddToLibraryAction({ toasts: notifications.toasts }); + const addToLibraryAction = new AddToLibraryAction({ + toasts: notifications.toasts, + capabilities: application.capabilities, + }); uiActions.registerAction(addToLibraryAction); uiActions.attachAction(CONTEXT_MENU_TRIGGER, addToLibraryAction.id); @@ -386,8 +389,8 @@ export class DashboardPlugin overlays, embeddable.getStateTransfer(), { - canCreateNew: Boolean(core.application.capabilities.dashboard.createNew), - canEditExisting: !Boolean(core.application.capabilities.dashboard.hideWriteControls), + canCreateNew: Boolean(application.capabilities.dashboard.createNew), + canEditExisting: !Boolean(application.capabilities.dashboard.hideWriteControls), }, presentationUtil.ContextProvider ); diff --git a/src/plugins/dashboard/public/services/core.ts b/src/plugins/dashboard/public/services/core.ts index 7c19b2d75a967..75461729841e9 100644 --- a/src/plugins/dashboard/public/services/core.ts +++ b/src/plugins/dashboard/public/services/core.ts @@ -12,4 +12,5 @@ export { PluginInitializerContext, ScopedHistory, NotificationsStart, + ApplicationStart, } from '../../../../core/public'; diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx index 57d05262319f2..4491be04b1a42 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx @@ -28,6 +28,7 @@ interface SaveModalDocumentInfo { export interface SaveModalDashboardProps { documentInfo: SaveModalDocumentInfo; + canSaveByReference: boolean; objectType: string; onClose: () => void; onSave: (props: OnSaveProps & { dashboardId: string | null; addToLibrary: boolean }) => void; @@ -35,7 +36,7 @@ export interface SaveModalDashboardProps { } export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { - const { documentInfo, tagOptions, objectType, onClose } = props; + const { documentInfo, tagOptions, objectType, onClose, canSaveByReference } = props; const { id: documentId } = documentInfo; const initialCopyOnSave = !Boolean(documentId); @@ -49,7 +50,7 @@ export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { documentId || disableDashboardOptions ? null : 'existing' ); const [isAddToLibrarySelected, setAddToLibrary] = useState( - !initialCopyOnSave || disableDashboardOptions + canSaveByReference && (!initialCopyOnSave || disableDashboardOptions) ); const [selectedDashboard, setSelectedDashboard] = useState<{ id: string; name: string } | null>( null @@ -65,13 +66,16 @@ export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { onChange={(option) => { setDashboardOption(option); }} + canSaveByReference={canSaveByReference} {...{ copyOnSave, documentId, dashboardOption, setAddToLibrary, isAddToLibrarySelected }} /> ) : null; const onCopyOnSaveChange = (newCopyOnSave: boolean) => { - setAddToLibrary(true); + if (canSaveByReference) { + setAddToLibrary(true); + } setDashboardOption(null); setCopyOnSave(newCopyOnSave); }; diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx index dd6fd975f8e07..341f194b71ba4 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx @@ -33,15 +33,21 @@ export default { control: 'boolean', defaultValue: true, }, + canSaveVisualizations: { + control: 'boolean', + defaultValue: true, + }, }, }; export function Example({ copyOnSave, hasDocumentId, + canSaveVisualizations, }: { copyOnSave: boolean; hasDocumentId: boolean; + canSaveVisualizations: boolean; } & StorybookParams) { const [dashboardOption, setDashboardOption] = useState<'new' | 'existing' | null>('existing'); const [isAddToLibrarySelected, setAddToLibrary] = useState(false); @@ -52,6 +58,7 @@ export function Example({ onChange={setDashboardOption} dashboardOption={dashboardOption} copyOnSave={copyOnSave} + canSaveByReference={canSaveVisualizations} documentId={hasDocumentId ? 'abc' : undefined} isAddToLibrarySelected={isAddToLibrarySelected} setAddToLibrary={setAddToLibrary} diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx index 1ae54040571a2..78a1569c02ead 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx @@ -30,6 +30,7 @@ export interface SaveModalDashboardSelectorProps { copyOnSave: boolean; documentId?: string; onSelectDashboard: DashboardPickerProps['onChange']; + canSaveByReference: boolean; setAddToLibrary: (selected: boolean) => void; isAddToLibrarySelected: boolean; dashboardOption: 'new' | 'existing' | null; @@ -40,6 +41,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp const { documentId, onSelectDashboard, + canSaveByReference, setAddToLibrary, isAddToLibrarySelected, dashboardOption, @@ -114,7 +116,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp setAddToLibrary(true); onChange(null); }} - disabled={isDisabled} + disabled={isDisabled || !canSaveByReference} /> @@ -127,7 +129,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp defaultMessage: 'Add to library', })} checked={isAddToLibrarySelected} - disabled={dashboardOption === null || isDisabled} + disabled={dashboardOption === null || isDisabled || !canSaveByReference} onChange={(event) => setAddToLibrary(event.target.checked)} /> diff --git a/src/plugins/presentation_util/public/services/index.ts b/src/plugins/presentation_util/public/services/index.ts index 74607b9e35e47..39dae92aa2ba9 100644 --- a/src/plugins/presentation_util/public/services/index.ts +++ b/src/plugins/presentation_util/public/services/index.ts @@ -23,6 +23,7 @@ export interface PresentationDashboardsService { export interface PresentationCapabilitiesService { canAccessDashboards: () => boolean; canCreateNewDashboards: () => boolean; + canSaveVisualizations: () => boolean; } export interface PresentationUtilServices { diff --git a/src/plugins/presentation_util/public/services/kibana/capabilities.ts b/src/plugins/presentation_util/public/services/kibana/capabilities.ts index 546281d083f2f..6949fba00c65a 100644 --- a/src/plugins/presentation_util/public/services/kibana/capabilities.ts +++ b/src/plugins/presentation_util/public/services/kibana/capabilities.ts @@ -16,10 +16,11 @@ export type CapabilitiesServiceFactory = KibanaPluginServiceFactory< >; export const capabilitiesServiceFactory: CapabilitiesServiceFactory = ({ coreStart }) => { - const { dashboard } = coreStart.application.capabilities; + const { dashboard, visualize } = coreStart.application.capabilities; return { canAccessDashboards: () => Boolean(dashboard.show), canCreateNewDashboards: () => Boolean(dashboard.createNew), + canSaveVisualizations: () => Boolean(visualize.save), }; }; diff --git a/src/plugins/presentation_util/public/services/storybook/capabilities.ts b/src/plugins/presentation_util/public/services/storybook/capabilities.ts index fcd38b29f154c..16fbe3baf488f 100644 --- a/src/plugins/presentation_util/public/services/storybook/capabilities.ts +++ b/src/plugins/presentation_util/public/services/storybook/capabilities.ts @@ -19,11 +19,13 @@ export const capabilitiesServiceFactory: CapabilitiesServiceFactory = ({ canAccessDashboards, canCreateNewDashboards, canEditDashboards, + canSaveVisualizations, }) => { const check = (value: boolean = true) => value; return { canAccessDashboards: () => check(canAccessDashboards), canCreateNewDashboards: () => check(canCreateNewDashboards), canEditDashboards: () => check(canEditDashboards), + canSaveVisualizations: () => check(canSaveVisualizations), }; }; diff --git a/src/plugins/presentation_util/public/services/storybook/index.ts b/src/plugins/presentation_util/public/services/storybook/index.ts index 37b2171635e96..dd7de54264062 100644 --- a/src/plugins/presentation_util/public/services/storybook/index.ts +++ b/src/plugins/presentation_util/public/services/storybook/index.ts @@ -18,6 +18,7 @@ export interface StorybookParams { canAccessDashboards?: boolean; canCreateNewDashboards?: boolean; canEditDashboards?: boolean; + canSaveVisualizations?: boolean; } export const providers: PluginServiceProviders = { diff --git a/src/plugins/presentation_util/public/services/stub/capabilities.ts b/src/plugins/presentation_util/public/services/stub/capabilities.ts index 979ccc8faadd5..4154fa65a0cd7 100644 --- a/src/plugins/presentation_util/public/services/stub/capabilities.ts +++ b/src/plugins/presentation_util/public/services/stub/capabilities.ts @@ -15,4 +15,5 @@ export const capabilitiesServiceFactory: CapabilitiesServiceFactory = () => ({ canAccessDashboards: () => true, canCreateNewDashboards: () => true, canEditDashboards: () => true, + canSaveVisualizations: () => true, }); diff --git a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts index 989a9bf5d2cb7..e2e2a4c089270 100644 --- a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts +++ b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts @@ -67,7 +67,10 @@ export const createVisEmbeddableFromObject = (deps: VisualizeEmbeddableFactoryDe indexPatterns = [vis.data.indexPattern]; } - const editable = getCapabilities().visualize.save as boolean; + const capabilities = { + visualizeSave: Boolean(getCapabilities().visualize.save), + dashboardSave: Boolean(getCapabilities().dashboard?.showWriteControls), + }; return new VisualizeEmbeddable( getTimeFilter(), @@ -76,8 +79,8 @@ export const createVisEmbeddableFromObject = (deps: VisualizeEmbeddableFactoryDe indexPatterns, editPath, editUrl, - editable, deps, + capabilities, }, input, attributeService, diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts index 580ffef548fe1..429dabeeef042 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts @@ -50,7 +50,7 @@ export interface VisualizeEmbeddableConfiguration { indexPatterns?: IIndexPattern[]; editPath: string; editUrl: string; - editable: boolean; + capabilities: { visualizeSave: boolean; dashboardSave: boolean }; deps: VisualizeEmbeddableFactoryDeps; } @@ -111,7 +111,7 @@ export class VisualizeEmbeddable constructor( timefilter: TimefilterContract, - { vis, editPath, editUrl, indexPatterns, editable, deps }: VisualizeEmbeddableConfiguration, + { vis, editPath, editUrl, indexPatterns, deps, capabilities }: VisualizeEmbeddableConfiguration, initialInput: VisualizeInput, attributeService?: AttributeService< VisualizeSavedObjectAttributes, @@ -129,7 +129,6 @@ export class VisualizeEmbeddable editApp: 'visualize', editUrl, indexPatterns, - editable, visTypeName: vis.type.name, }, parent @@ -143,6 +142,12 @@ export class VisualizeEmbeddable this.attributeService = attributeService; this.savedVisualizationsLoader = savedVisualizationsLoader; + if (this.attributeService) { + const isByValue = !this.inputIsRefType(initialInput); + const editable = capabilities.visualizeSave || (isByValue && capabilities.dashboardSave); + this.updateOutput({ ...this.getOutput(), editable }); + } + this.subscriptions.push( this.getUpdated$().subscribe(() => { const isDirty = this.handleChanges(); diff --git a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx index 4f5679a14b0b7..e696bcb5dbe4d 100644 --- a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx +++ b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx @@ -82,6 +82,7 @@ export const getTopNavConfig = ( setActiveUrl, toastNotifications, visualizeCapabilities, + dashboardCapabilities, i18n: { Context: I18nContext }, dashboard, savedObjectsTagging, @@ -205,9 +206,9 @@ export const getTopNavConfig = ( } }; + const allowByValue = dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables; const saveButtonLabel = - embeddableId || - (!savedVis.id && dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables && originatingApp) + embeddableId || (!savedVis.id && allowByValue && originatingApp) ? i18n.translate('visualize.topNavMenu.saveVisualizationToLibraryButtonLabel', { defaultMessage: 'Save to library', }) @@ -219,9 +220,11 @@ export const getTopNavConfig = ( defaultMessage: 'Save', }); - const showSaveAndReturn = - originatingApp && - (savedVis?.id || dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables); + const showSaveAndReturn = originatingApp && (savedVis?.id || allowByValue); + + const showSaveButton = + visualizeCapabilities.save || + (allowByValue && !showSaveAndReturn && dashboardCapabilities.showWriteControls); const topNavMenu: TopNavMenuData[] = [ { @@ -300,7 +303,7 @@ export const getTopNavConfig = ( }, ] : []), - ...(visualizeCapabilities.save + ...(showSaveButton ? [ { id: 'save', @@ -439,7 +442,12 @@ export const getTopNavConfig = ( /> ) : ( { defaultMessage: 'Read only', }), tooltip: i18n.translate('visualize.badge.readOnly.tooltip', { - defaultMessage: 'Unable to save visualizations', + defaultMessage: 'Unable to save visualizations to the library', }), iconType: 'glasses', }); diff --git a/x-pack/plugins/lens/public/app_plugin/app.tsx b/x-pack/plugins/lens/public/app_plugin/app.tsx index 9d5feec9f21e6..dbc10c751a649 100644 --- a/x-pack/plugins/lens/public/app_plugin/app.tsx +++ b/x-pack/plugins/lens/public/app_plugin/app.tsx @@ -531,7 +531,13 @@ export function App({ const { TopNavMenu } = navigation.ui; - const savingPermitted = Boolean(state.isSaveable && application.capabilities.visualize.save); + const savingToLibraryPermitted = Boolean( + state.isSaveable && application.capabilities.visualize.save + ); + const savingToDashboardPermitted = Boolean( + state.isSaveable && application.capabilities.dashboard?.showWriteControls + ); + const unsavedTitle = i18n.translate('xpack.lens.app.unsavedFilename', { defaultMessage: 'unsaved', }); @@ -545,8 +551,10 @@ export function App({ state.isSaveable && state.activeData && Object.keys(state.activeData).length ), isByValueMode: getIsByValueMode(), + allowByValue: dashboardFeatureFlag.allowByValueEmbeddables, showCancel: Boolean(state.isLinkedToOriginatingApp), - savingPermitted, + savingToLibraryPermitted, + savingToDashboardPermitted, actions: { exportToCSV: () => { if (!state.activeData) { @@ -577,7 +585,7 @@ export function App({ } }, saveAndReturn: () => { - if (savingPermitted && lastKnownDoc) { + if (savingToDashboardPermitted && lastKnownDoc) { // disabling the validation on app leave because the document has been saved. onAppLeave((actions) => { return actions.default(); @@ -597,7 +605,7 @@ export function App({ } }, showSaveModal: () => { - if (savingPermitted) { + if (savingToDashboardPermitted || savingToLibraryPermitted) { setState((s) => ({ ...s, isSaveModalVisible: true })); } }, @@ -697,6 +705,7 @@ export function App({ { const { originatingApp, + savingToLibraryPermitted, savedObjectsTagging, tagsIds, lastKnownDoc, @@ -85,13 +87,15 @@ export const SaveModal = (props: Props) => { { const saveToLibrary = Boolean(saveProps.addToLibrary); onSave(saveProps, { saveToLibrary }); }} onClose={onClose} documentInfo={{ - id: lastKnownDoc.savedObjectId, + // if the user cannot save to the library - treat this as a new document. + id: savingToLibraryPermitted ? lastKnownDoc.savedObjectId : undefined, title: lastKnownDoc.title || '', description: lastKnownDoc.description || '', }} diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx index 157975b630e1e..a44870b427ab1 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx @@ -112,7 +112,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -151,7 +154,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { canSaveDashboards: true, canSaveVisualizations: true }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -191,7 +194,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -231,7 +237,10 @@ describe('embeddable', () => { indexPatternService: ({ get: (id: string) => Promise.resolve({ id }), } as unknown) as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -266,7 +275,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -307,7 +319,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { canSaveDashboards: true, canSaveVisualizations: true }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -352,7 +364,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -395,7 +410,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -445,7 +463,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -495,7 +516,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -544,7 +568,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: ({ get: jest.fn() } as unknown) as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -582,7 +609,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -620,7 +650,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -658,7 +691,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx index 1db067606dc82..a3316e0083d35 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx @@ -88,13 +88,13 @@ export interface LensEmbeddableDeps { documentToExpression: ( doc: Document ) => Promise<{ ast: Ast | null; errors: ErrorMessage[] | undefined }>; - editable: boolean; indexPatternService: IndexPatternsContract; expressionRenderer: ReactExpressionRendererType; timefilter: TimefilterContract; basePath: IBasePath; getTrigger?: UiActionsStart['getTrigger'] | undefined; getTriggerCompatibleActions?: UiActionsStart['getTriggerCompatibleActions']; + capabilities: { canSaveVisualizations: boolean; canSaveDashboards: boolean }; } export class Embeddable @@ -129,7 +129,6 @@ export class Embeddable initialInput, { editApp: 'lens', - editable: deps.editable, }, parent ); @@ -326,7 +325,7 @@ export class Embeddable hasCompatibleActions={this.hasCompatibleActions} className={input.className} style={input.style} - canEdit={this.deps.editable && input.viewMode === 'edit'} + canEdit={this.getIsEditable() && input.viewMode === 'edit'} />, domNode ); @@ -451,6 +450,7 @@ export class Embeddable this.updateOutput({ ...this.getOutput(), defaultTitle: this.savedVis.title, + editable: this.getIsEditable(), title, editPath: getEditPath(savedObjectId), editUrl: this.deps.basePath.prepend(`/app/lens${getEditPath(savedObjectId)}`), @@ -458,6 +458,13 @@ export class Embeddable }); } + private getIsEditable() { + return ( + this.deps.capabilities.canSaveVisualizations || + (!this.inputIsRefType(this.getInput()) && this.deps.capabilities.canSaveDashboards) + ); + } + public inputIsRefType = ( input: LensByValueInput | LensByReferenceInput ): input is LensByReferenceInput => { diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts index a676b7283671c..1a4962bd1fe8e 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts @@ -53,7 +53,7 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { public isEditable = async () => { const { capabilities } = await this.getStartServices(); - return capabilities.visualize.save as boolean; + return Boolean(capabilities.visualize.save || capabilities.dashboard?.showWriteControls); }; canCreateNew() { @@ -86,6 +86,7 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { coreHttp, attributeService, indexPatternService, + capabilities, } = await this.getStartServices(); const { Embeddable } = await import('../../async_services'); @@ -96,11 +97,14 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { indexPatternService, timefilter, expressionRenderer, - editable: await this.isEditable(), basePath: coreHttp.basePath, getTrigger: uiActions?.getTrigger, getTriggerCompatibleActions: uiActions?.getTriggerCompatibleActions, documentToExpression, + capabilities: { + canSaveDashboards: Boolean(capabilities.dashboard?.showWriteControls), + canSaveVisualizations: Boolean(capabilities.visualize.save), + }, }, input, parent diff --git a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx index 597cd8e9c4287..7e0aa59756876 100644 --- a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx +++ b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx @@ -201,7 +201,11 @@ export function getTopNavConfig({ options={tagSelector} /> ) : ( - + ); showSaveModal(saveModal, getCoreI18n().Context, PresentationUtilContext); diff --git a/x-pack/test/functional/apps/dashboard/feature_controls/index.ts b/x-pack/test/functional/apps/dashboard/feature_controls/index.ts index 38d139c59430e..3b32ea031f6e2 100644 --- a/x-pack/test/functional/apps/dashboard/feature_controls/index.ts +++ b/x-pack/test/functional/apps/dashboard/feature_controls/index.ts @@ -11,6 +11,7 @@ export default function ({ loadTestFile }: FtrProviderContext) { describe('feature controls', function () { this.tags(['skipFirefox']); loadTestFile(require.resolve('./dashboard_security')); + loadTestFile(require.resolve('./time_to_visualize_security')); loadTestFile(require.resolve('./dashboard_spaces')); }); } diff --git a/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts b/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts new file mode 100644 index 0000000000000..3ebc53cc7cf27 --- /dev/null +++ b/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts @@ -0,0 +1,233 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + const PageObjects = getPageObjects([ + 'timeToVisualize', + 'timePicker', + 'dashboard', + 'visEditor', + 'visualize', + 'security', + 'common', + 'header', + 'lens', + ]); + + const dashboardVisualizations = getService('dashboardVisualizations'); + const dashboardPanelActions = getService('dashboardPanelActions'); + const dashboardExpect = getService('dashboardExpect'); + const testSubjects = getService('testSubjects'); + const esArchiver = getService('esArchiver'); + const security = getService('security'); + const find = getService('find'); + + describe('dashboard time to visualize security', () => { + before(async () => { + await esArchiver.load('dashboard/feature_controls/security'); + await esArchiver.loadIfNeeded('logstash_functional'); + + // ensure we're logged out so we can login as the appropriate users + await PageObjects.security.forceLogout(); + + await security.role.create('dashboard_write_vis_read', { + elasticsearch: { + indices: [{ names: ['logstash-*'], privileges: ['read', 'view_index_metadata'] }], + }, + kibana: [ + { + feature: { + dashboard: ['all'], + visualize: ['read'], + }, + spaces: ['*'], + }, + ], + }); + + await security.user.create('dashboard_write_vis_read_user', { + password: 'dashboard_write_vis_read_user-password', + roles: ['dashboard_write_vis_read'], + full_name: 'test user', + }); + + await PageObjects.security.login( + 'dashboard_write_vis_read_user', + 'dashboard_write_vis_read_user-password', + { + expectSpaceSelector: false, + } + ); + }); + + after(async () => { + await security.role.delete('dashboard_write_vis_read'); + await security.user.delete('dashboard_write_vis_read_user'); + + await esArchiver.unload('dashboard/feature_controls/security'); + + // logout, so the other tests don't accidentally run as the custom users we're testing below + await PageObjects.security.forceLogout(); + }); + + describe('lens by value works without library save permissions', () => { + before(async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.preserveCrossAppState(); + await PageObjects.dashboard.clickNewDashboard(); + }); + + it('can add a lens panel by value', async () => { + await dashboardVisualizations.ensureNewVisualizationDialogIsShowing(); + await PageObjects.lens.createAndAddLensFromDashboard({}); + const newPanelCount = await PageObjects.dashboard.getPanelCount(); + expect(newPanelCount).to.eql(1); + }); + + it('edits to a by value lens panel are properly applied', async () => { + await PageObjects.dashboard.waitForRenderComplete(); + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + await PageObjects.lens.switchToVisualization('donut'); + await PageObjects.lens.saveAndReturn(); + await PageObjects.dashboard.waitForRenderComplete(); + + const pieExists = await find.existsByCssSelector('.lnsPieExpression__container'); + expect(pieExists).to.be(true); + }); + + it('disables save to library button without visualize save permissions', async () => { + await PageObjects.dashboard.waitForRenderComplete(); + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + const saveButton = await testSubjects.find('lnsApp_saveButton'); + expect(await saveButton.getAttribute('disabled')).to.equal('true'); + await PageObjects.lens.saveAndReturn(); + await PageObjects.timeToVisualize.resetNewDashboard(); + }); + + it('should allow new lens to be added by value, but not by reference', async () => { + await PageObjects.visualize.navigateToNewVisualization(); + await PageObjects.visualize.clickVisType('lens'); + await PageObjects.lens.goToTimeRange(); + + await PageObjects.lens.configureDimension({ + dimension: 'lnsXY_yDimensionPanel > lns-empty-dimension', + operation: 'average', + field: 'bytes', + }); + + await PageObjects.lens.switchToVisualization('lnsMetric'); + + await PageObjects.lens.waitForVisualization(); + await PageObjects.lens.assertMetric('Average of bytes', '5,727.322'); + + await PageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.click('lnsApp_saveButton'); + + const libraryCheckbox = await find.byCssSelector('#add-to-library-checkbox'); + expect(await libraryCheckbox.getAttribute('disabled')).to.equal('true'); + + await PageObjects.timeToVisualize.saveFromModal('New Lens from Modal', { + addToDashboard: 'new', + saveAsNew: true, + saveToLibrary: false, + }); + + await PageObjects.dashboard.waitForRenderComplete(); + + await PageObjects.lens.assertMetric('Average of bytes', '5,727.322'); + const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists( + 'New Lens from Modal' + ); + expect(isLinked).to.be(false); + + const panelCount = await PageObjects.dashboard.getPanelCount(); + expect(panelCount).to.eql(1); + + await PageObjects.timeToVisualize.resetNewDashboard(); + }); + }); + + describe('visualize by value works without library save permissions', () => { + const originalMarkdownText = 'Original markdown text'; + const modifiedMarkdownText = 'Modified markdown text'; + + before(async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.preserveCrossAppState(); + await PageObjects.dashboard.clickNewDashboard(); + }); + + it('can add a markdown panel by value', async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.dashboard.waitForRenderComplete(); + + await testSubjects.click('dashboardAddNewPanelButton'); + await dashboardVisualizations.ensureNewVisualizationDialogIsShowing(); + await PageObjects.visualize.clickMarkdownWidget(); + await PageObjects.visEditor.setMarkdownTxt(originalMarkdownText); + await PageObjects.visEditor.clickGo(); + + await PageObjects.visualize.saveVisualizationAndReturn(); + const newPanelCount = await PageObjects.dashboard.getPanelCount(); + expect(newPanelCount).to.eql(1); + }); + + it('edits to a by value visualize panel are properly applied', async () => { + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.visEditor.setMarkdownTxt(modifiedMarkdownText); + await PageObjects.visEditor.clickGo(); + await PageObjects.visualize.saveVisualizationAndReturn(); + + await PageObjects.dashboard.waitForRenderComplete(); + const markdownText = await testSubjects.find('markdownBody'); + expect(await markdownText.getVisibleText()).to.eql(modifiedMarkdownText); + + const newPanelCount = PageObjects.dashboard.getPanelCount(); + expect(newPanelCount).to.eql(1); + }); + + it('disables save to library button without visualize save permissions', async () => { + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + await PageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.missingOrFail('visualizeSaveButton'); + await PageObjects.visualize.saveVisualizationAndReturn(); + await PageObjects.timeToVisualize.resetNewDashboard(); + }); + + it('should allow new visualization to be added by value, but not by reference', async function () { + await PageObjects.visualize.navigateToNewAggBasedVisualization(); + await PageObjects.visualize.clickMetric(); + await PageObjects.visualize.clickNewSearch(); + await PageObjects.timePicker.setDefaultAbsoluteRange(); + + await testSubjects.click('visualizeSaveButton'); + + await PageObjects.visualize.ensureSavePanelOpen(); + const libraryCheckbox = await find.byCssSelector('#add-to-library-checkbox'); + expect(await libraryCheckbox.getAttribute('disabled')).to.equal('true'); + + await PageObjects.timeToVisualize.saveFromModal('My New Vis 1', { + addToDashboard: 'new', + }); + + await PageObjects.dashboard.waitForRenderComplete(); + await dashboardExpect.metricValuesExist(['14,005']); + const panelCount = await PageObjects.dashboard.getPanelCount(); + expect(panelCount).to.eql(1); + }); + }); + }); +} From 50d21dad8c89c711459da4eb774c190e1ee6cb5a Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Wed, 31 Mar 2021 15:59:41 +0200 Subject: [PATCH 007/106] [Lens] Fix runtime field test flakiness (#95650) --- x-pack/test/functional/page_objects/lens_page.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index 205a4391062a2..65020be390f9d 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -197,7 +197,10 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont }, async searchField(name: string) { - await testSubjects.setValue('lnsIndexPatternFieldSearch', name); + await testSubjects.setValue('lnsIndexPatternFieldSearch', name, { + clearWithKeyboard: true, + typeCharByChar: true, + }); }, async waitForField(field: string) { From 5b3d88749ea87b09b1357cbb37349eca467c1e29 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Mar 2021 16:15:50 +0200 Subject: [PATCH 008/106] Update dependency @elastic/charts to v26.1.0 (#95582) Co-authored-by: Renovate Bot Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e379123269847..05a8e450793d6 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "@elastic/apm-rum": "^5.6.1", "@elastic/apm-rum-react": "^1.2.5", - "@elastic/charts": "26.0.0", + "@elastic/charts": "26.1.0", "@elastic/datemath": "link:packages/elastic-datemath", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@^8.0.0-canary.4", "@elastic/ems-client": "7.12.0", diff --git a/yarn.lock b/yarn.lock index 486752dce5587..80ad1acf7fccd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1349,10 +1349,10 @@ dependencies: object-hash "^1.3.0" -"@elastic/charts@26.0.0": - version "26.0.0" - resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-26.0.0.tgz#42f06d3be0f40e0128e301b37bdfc509169c387b" - integrity sha512-5eBPSjdBb+pVDCcQOYA0dFBiYonHcw7ewxOUxgR8qMmay0xHc7gGUXZiDfIkyUDpJA+a9DS9juNNqKn/M4UbiQ== +"@elastic/charts@26.1.0": + version "26.1.0" + resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-26.1.0.tgz#3c8677d84e52ac7209aee19484fb2b7e2a22e5cc" + integrity sha512-RiidG+9QIn17o5AW8cntrznH+MaOO8gIAwrkJW1EMInntZgEA66WhVs4Kg2Negp6hsPMMeArQVWbDhXE9ST3qg== dependencies: "@popperjs/core" "^2.4.0" chroma-js "^2.1.0" From 53584c694d1acf3221342f9346c5b8bd5914ae9c Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Wed, 31 Mar 2021 16:19:31 +0200 Subject: [PATCH 009/106] [Lens] Introduce single percentile and make it filterable in Lens (#95439) --- ...aggfunctionsmapping.aggsinglepercentile.md | 11 ++ ...plugins-data-public.aggfunctionsmapping.md | 1 + ...plugin-plugins-data-public.metric_types.md | 1 + ...aggfunctionsmapping.aggsinglepercentile.md | 11 ++ ...plugins-data-server.aggfunctionsmapping.md | 1 + ...plugin-plugins-data-server.metric_types.md | 1 + .../data/common/search/aggs/agg_types.ts | 2 + .../common/search/aggs/aggs_service.test.ts | 2 + .../single_percentile.test.ts.snap | 17 ++ .../data/common/search/aggs/metrics/index.ts | 2 + .../metrics/lib/parent_pipeline_agg_helper.ts | 1 + .../lib/sibling_pipeline_agg_helper.ts | 1 + .../search/aggs/metrics/metric_agg_types.ts | 1 + .../aggs/metrics/single_percentile.test.ts | 145 ++++++++++++++++++ .../search/aggs/metrics/single_percentile.ts | 63 ++++++++ .../aggs/metrics/single_percentile_fn.ts | 94 ++++++++++++ src/plugins/data/common/search/aggs/types.ts | 4 + src/plugins/data/public/public.api.md | 12 +- .../public/search/aggs/aggs_service.test.ts | 4 +- src/plugins/data/server/server.api.md | 8 +- .../vis_type_metric/public/metric_vis_type.ts | 1 + .../public/legacy/table_vis_legacy_type.ts | 2 +- .../vis_type_table/public/table_vis_type.ts | 2 +- .../public/tag_cloud_type.ts | 1 + src/plugins/vis_type_vislib/public/gauge.ts | 1 + src/plugins/vis_type_vislib/public/goal.ts | 1 + src/plugins/vis_type_vislib/public/heatmap.ts | 1 + .../vis_type_xy/public/vis_types/area.ts | 2 +- .../vis_type_xy/public/vis_types/histogram.ts | 2 +- .../public/vis_types/horizontal_bar.ts | 2 +- .../vis_type_xy/public/vis_types/line.ts | 2 +- .../indexpattern.test.ts | 47 ------ .../operations/definitions/helpers.tsx | 7 - .../operations/definitions/index.ts | 7 - .../definitions/percentile.test.tsx | 2 +- .../operations/definitions/percentile.tsx | 23 +-- .../operations/definitions/terms/index.tsx | 8 +- .../definitions/terms/terms.test.tsx | 40 ----- .../indexpattern_datasource/to_expression.ts | 4 +- 39 files changed, 403 insertions(+), 134 deletions(-) create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsinglepercentile.md create mode 100644 docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsinglepercentile.md create mode 100644 src/plugins/data/common/search/aggs/metrics/__snapshots__/single_percentile.test.ts.snap create mode 100644 src/plugins/data/common/search/aggs/metrics/single_percentile.test.ts create mode 100644 src/plugins/data/common/search/aggs/metrics/single_percentile.ts create mode 100644 src/plugins/data/common/search/aggs/metrics/single_percentile_fn.ts diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsinglepercentile.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsinglepercentile.md new file mode 100644 index 0000000000000..4e432b8d365a3 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsinglepercentile.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [AggFunctionsMapping](./kibana-plugin-plugins-data-public.aggfunctionsmapping.md) > [aggSinglePercentile](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsinglepercentile.md) + +## AggFunctionsMapping.aggSinglePercentile property + +Signature: + +```typescript +aggSinglePercentile: ReturnType; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.md index 05388e2b86d7b..852c6d5f1c00b 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.aggfunctionsmapping.md @@ -45,6 +45,7 @@ export interface AggFunctionsMapping | [aggRange](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggrange.md) | ReturnType<typeof aggRange> | | | [aggSerialDiff](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggserialdiff.md) | ReturnType<typeof aggSerialDiff> | | | [aggSignificantTerms](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsignificantterms.md) | ReturnType<typeof aggSignificantTerms> | | +| [aggSinglePercentile](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsinglepercentile.md) | ReturnType<typeof aggSinglePercentile> | | | [aggStdDeviation](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggstddeviation.md) | ReturnType<typeof aggStdDeviation> | | | [aggSum](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggsum.md) | ReturnType<typeof aggSum> | | | [aggTerms](./kibana-plugin-plugins-data-public.aggfunctionsmapping.aggterms.md) | ReturnType<typeof aggTerms> | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.metric_types.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.metric_types.md index 3b5cecf1a0b82..bdae3ec738ac3 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.metric_types.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.metric_types.md @@ -32,6 +32,7 @@ export declare enum METRIC_TYPES | PERCENTILE\_RANKS | "percentile_ranks" | | | PERCENTILES | "percentiles" | | | SERIAL\_DIFF | "serial_diff" | | +| SINGLE\_PERCENTILE | "single_percentile" | | | STD\_DEV | "std_dev" | | | SUM | "sum" | | | SUM\_BUCKET | "sum_bucket" | | diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsinglepercentile.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsinglepercentile.md new file mode 100644 index 0000000000000..d1418d7245d73 --- /dev/null +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsinglepercentile.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-server](./kibana-plugin-plugins-data-server.md) > [AggFunctionsMapping](./kibana-plugin-plugins-data-server.aggfunctionsmapping.md) > [aggSinglePercentile](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsinglepercentile.md) + +## AggFunctionsMapping.aggSinglePercentile property + +Signature: + +```typescript +aggSinglePercentile: ReturnType; +``` diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.md index 86bf797572b09..6b5f854c155f3 100644 --- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.md +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.aggfunctionsmapping.md @@ -45,6 +45,7 @@ export interface AggFunctionsMapping | [aggRange](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggrange.md) | ReturnType<typeof aggRange> | | | [aggSerialDiff](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggserialdiff.md) | ReturnType<typeof aggSerialDiff> | | | [aggSignificantTerms](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsignificantterms.md) | ReturnType<typeof aggSignificantTerms> | | +| [aggSinglePercentile](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsinglepercentile.md) | ReturnType<typeof aggSinglePercentile> | | | [aggStdDeviation](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggstddeviation.md) | ReturnType<typeof aggStdDeviation> | | | [aggSum](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggsum.md) | ReturnType<typeof aggSum> | | | [aggTerms](./kibana-plugin-plugins-data-server.aggfunctionsmapping.aggterms.md) | ReturnType<typeof aggTerms> | | diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.metric_types.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.metric_types.md index 250173d11a056..37f53af8971b3 100644 --- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.metric_types.md +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.metric_types.md @@ -32,6 +32,7 @@ export declare enum METRIC_TYPES | PERCENTILE\_RANKS | "percentile_ranks" | | | PERCENTILES | "percentiles" | | | SERIAL\_DIFF | "serial_diff" | | +| SINGLE\_PERCENTILE | "single_percentile" | | | STD\_DEV | "std_dev" | | | SUM | "sum" | | | SUM\_BUCKET | "sum_bucket" | | diff --git a/src/plugins/data/common/search/aggs/agg_types.ts b/src/plugins/data/common/search/aggs/agg_types.ts index d02f8e1fc5af4..1db60db507f0f 100644 --- a/src/plugins/data/common/search/aggs/agg_types.ts +++ b/src/plugins/data/common/search/aggs/agg_types.ts @@ -29,6 +29,7 @@ export const getAggTypes = () => ({ { name: METRIC_TYPES.AVG, fn: metrics.getAvgMetricAgg }, { name: METRIC_TYPES.SUM, fn: metrics.getSumMetricAgg }, { name: METRIC_TYPES.MEDIAN, fn: metrics.getMedianMetricAgg }, + { name: METRIC_TYPES.SINGLE_PERCENTILE, fn: metrics.getSinglePercentileMetricAgg }, { name: METRIC_TYPES.MIN, fn: metrics.getMinMetricAgg }, { name: METRIC_TYPES.MAX, fn: metrics.getMaxMetricAgg }, { name: METRIC_TYPES.STD_DEV, fn: metrics.getStdDeviationMetricAgg }, @@ -90,6 +91,7 @@ export const getAggTypesFunctions = () => [ metrics.aggGeoCentroid, metrics.aggMax, metrics.aggMedian, + metrics.aggSinglePercentile, metrics.aggMin, metrics.aggMovingAvg, metrics.aggPercentileRanks, diff --git a/src/plugins/data/common/search/aggs/aggs_service.test.ts b/src/plugins/data/common/search/aggs/aggs_service.test.ts index e14c908023ac6..3f434b0cc1c15 100644 --- a/src/plugins/data/common/search/aggs/aggs_service.test.ts +++ b/src/plugins/data/common/search/aggs/aggs_service.test.ts @@ -82,6 +82,7 @@ describe('Aggs service', () => { "avg", "sum", "median", + "single_percentile", "min", "max", "std_dev", @@ -128,6 +129,7 @@ describe('Aggs service', () => { "avg", "sum", "median", + "single_percentile", "min", "max", "std_dev", diff --git a/src/plugins/data/common/search/aggs/metrics/__snapshots__/single_percentile.test.ts.snap b/src/plugins/data/common/search/aggs/metrics/__snapshots__/single_percentile.test.ts.snap new file mode 100644 index 0000000000000..a8d546973b185 --- /dev/null +++ b/src/plugins/data/common/search/aggs/metrics/__snapshots__/single_percentile.test.ts.snap @@ -0,0 +1,17 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AggTypeMetricSinglePercentileProvider class supports scripted fields 1`] = ` +Object { + "single_percentile": Object { + "percentiles": Object { + "percents": Array [ + 95, + ], + "script": Object { + "lang": undefined, + "source": "return 456", + }, + }, + }, +} +`; diff --git a/src/plugins/data/common/search/aggs/metrics/index.ts b/src/plugins/data/common/search/aggs/metrics/index.ts index 7038673d5d7c4..d37b74a1a28ae 100644 --- a/src/plugins/data/common/search/aggs/metrics/index.ts +++ b/src/plugins/data/common/search/aggs/metrics/index.ts @@ -36,6 +36,8 @@ export * from './max_fn'; export * from './max'; export * from './median_fn'; export * from './median'; +export * from './single_percentile_fn'; +export * from './single_percentile'; export * from './metric_agg_type'; export * from './metric_agg_types'; export * from './min_fn'; diff --git a/src/plugins/data/common/search/aggs/metrics/lib/parent_pipeline_agg_helper.ts b/src/plugins/data/common/search/aggs/metrics/lib/parent_pipeline_agg_helper.ts index d51038d8a15e8..ac2beaf574256 100644 --- a/src/plugins/data/common/search/aggs/metrics/lib/parent_pipeline_agg_helper.ts +++ b/src/plugins/data/common/search/aggs/metrics/lib/parent_pipeline_agg_helper.ts @@ -22,6 +22,7 @@ const metricAggFilter = [ '!geo_bounds', '!geo_centroid', '!filtered_metric', + '!single_percentile', ]; export const parentPipelineType = i18n.translate( diff --git a/src/plugins/data/common/search/aggs/metrics/lib/sibling_pipeline_agg_helper.ts b/src/plugins/data/common/search/aggs/metrics/lib/sibling_pipeline_agg_helper.ts index c0d1be4f47f9b..2564fcb7a002b 100644 --- a/src/plugins/data/common/search/aggs/metrics/lib/sibling_pipeline_agg_helper.ts +++ b/src/plugins/data/common/search/aggs/metrics/lib/sibling_pipeline_agg_helper.ts @@ -28,6 +28,7 @@ const metricAggFilter: string[] = [ '!geo_bounds', '!geo_centroid', '!filtered_metric', + '!single_percentile', ]; const bucketAggFilter: string[] = []; diff --git a/src/plugins/data/common/search/aggs/metrics/metric_agg_types.ts b/src/plugins/data/common/search/aggs/metrics/metric_agg_types.ts index 3b6c9d8a0d55d..a308153b3816b 100644 --- a/src/plugins/data/common/search/aggs/metrics/metric_agg_types.ts +++ b/src/plugins/data/common/search/aggs/metrics/metric_agg_types.ts @@ -20,6 +20,7 @@ export enum METRIC_TYPES { GEO_BOUNDS = 'geo_bounds', GEO_CENTROID = 'geo_centroid', MEDIAN = 'median', + SINGLE_PERCENTILE = 'single_percentile', MIN = 'min', MAX = 'max', MOVING_FN = 'moving_avg', diff --git a/src/plugins/data/common/search/aggs/metrics/single_percentile.test.ts b/src/plugins/data/common/search/aggs/metrics/single_percentile.test.ts new file mode 100644 index 0000000000000..c2ba6ee1a403a --- /dev/null +++ b/src/plugins/data/common/search/aggs/metrics/single_percentile.test.ts @@ -0,0 +1,145 @@ +/* + * Copyright 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 { AggConfigs, IAggConfigs } from '../agg_configs'; +import { mockAggTypesRegistry } from '../test_helpers'; +import { METRIC_TYPES } from './metric_agg_types'; + +describe('AggTypeMetricSinglePercentileProvider class', () => { + let aggConfigs: IAggConfigs; + + beforeEach(() => { + const typesRegistry = mockAggTypesRegistry(); + const field = { + name: 'bytes', + }; + const indexPattern = { + id: '1234', + title: 'logstash-*', + fields: { + getByName: () => field, + filter: () => [field], + }, + } as any; + + aggConfigs = new AggConfigs( + indexPattern, + [ + { + id: METRIC_TYPES.SINGLE_PERCENTILE, + type: METRIC_TYPES.SINGLE_PERCENTILE, + schema: 'metric', + params: { + field: 'bytes', + percentile: 95, + }, + }, + ], + { + typesRegistry, + } + ); + }); + + it('requests the percentiles aggregation in the Elasticsearch query DSL', () => { + const dsl: Record = aggConfigs.toDsl(); + + expect(dsl.single_percentile.percentiles.field).toEqual('bytes'); + expect(dsl.single_percentile.percentiles.percents).toEqual([95]); + }); + + it('points to right value within multi metric for value bucket path', () => { + expect(aggConfigs.byId(METRIC_TYPES.SINGLE_PERCENTILE)!.getValueBucketPath()).toEqual( + `${METRIC_TYPES.SINGLE_PERCENTILE}.95` + ); + }); + + it('converts the response', () => { + const agg = aggConfigs.getResponseAggs()[0]; + + expect( + agg.getValue({ + [agg.id]: { + values: { + '95.0': 123, + }, + }, + }) + ).toEqual(123); + }); + + it('produces the expected expression ast', () => { + const agg = aggConfigs.getResponseAggs()[0]; + expect(agg.toExpressionAst()).toMatchInlineSnapshot(` + Object { + "chain": Array [ + Object { + "arguments": Object { + "enabled": Array [ + true, + ], + "field": Array [ + "bytes", + ], + "id": Array [ + "single_percentile", + ], + "percentile": Array [ + 95, + ], + "schema": Array [ + "metric", + ], + }, + "function": "aggSinglePercentile", + "type": "function", + }, + ], + "type": "expression", + } + `); + }); + + it('supports scripted fields', () => { + const typesRegistry = mockAggTypesRegistry(); + const field = { + name: 'bytes', + scripted: true, + language: 'painless', + script: 'return 456', + }; + const indexPattern = { + id: '1234', + title: 'logstash-*', + fields: { + getByName: () => field, + filter: () => [field], + }, + } as any; + + aggConfigs = new AggConfigs( + indexPattern, + [ + { + id: METRIC_TYPES.SINGLE_PERCENTILE, + type: METRIC_TYPES.SINGLE_PERCENTILE, + schema: 'metric', + params: { + field: 'bytes', + percentile: 95, + }, + }, + ], + { + typesRegistry, + } + ); + + expect(aggConfigs.toDsl()).toMatchSnapshot(); + }); +}); diff --git a/src/plugins/data/common/search/aggs/metrics/single_percentile.ts b/src/plugins/data/common/search/aggs/metrics/single_percentile.ts new file mode 100644 index 0000000000000..4bdafcae327cd --- /dev/null +++ b/src/plugins/data/common/search/aggs/metrics/single_percentile.ts @@ -0,0 +1,63 @@ +/* + * Copyright 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'; +import { aggSinglePercentileFnName } from './single_percentile_fn'; +import { MetricAggType } from './metric_agg_type'; +import { METRIC_TYPES } from './metric_agg_types'; +import { KBN_FIELD_TYPES } from '../../../../common'; +import { BaseAggParams } from '../types'; + +const singlePercentileTitle = i18n.translate('data.search.aggs.metrics.singlePercentileTitle', { + defaultMessage: 'Percentile', +}); + +export interface AggParamsSinglePercentile extends BaseAggParams { + field: string; + percentile: number; +} + +export const getSinglePercentileMetricAgg = () => { + return new MetricAggType({ + name: METRIC_TYPES.SINGLE_PERCENTILE, + expressionName: aggSinglePercentileFnName, + dslName: 'percentiles', + title: singlePercentileTitle, + valueType: 'number', + makeLabel(aggConfig) { + return i18n.translate('data.search.aggs.metrics.singlePercentileLabel', { + defaultMessage: 'Percentile {field}', + values: { field: aggConfig.getFieldDisplayName() }, + }); + }, + getValueBucketPath(aggConfig) { + return `${aggConfig.id}.${aggConfig.params.percentile}`; + }, + params: [ + { + name: 'field', + type: 'field', + filterFieldTypes: [KBN_FIELD_TYPES.NUMBER, KBN_FIELD_TYPES.DATE, KBN_FIELD_TYPES.HISTOGRAM], + }, + { + name: 'percentile', + default: 95, + write: (agg, output) => { + output.params.percents = [agg.params.percentile]; + }, + }, + ], + getValue(agg, bucket) { + let valueKey = String(agg.params.percentile); + if (Number.isInteger(agg.params.percentile)) { + valueKey += '.0'; + } + return bucket[agg.id].values[valueKey]; + }, + }); +}; diff --git a/src/plugins/data/common/search/aggs/metrics/single_percentile_fn.ts b/src/plugins/data/common/search/aggs/metrics/single_percentile_fn.ts new file mode 100644 index 0000000000000..e7ef22c6faeee --- /dev/null +++ b/src/plugins/data/common/search/aggs/metrics/single_percentile_fn.ts @@ -0,0 +1,94 @@ +/* + * Copyright 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'; +import { ExpressionFunctionDefinition } from 'src/plugins/expressions/common'; +import { AggExpressionType, AggExpressionFunctionArgs, METRIC_TYPES } from '../'; + +export const aggSinglePercentileFnName = 'aggSinglePercentile'; + +type Input = any; +type AggArgs = AggExpressionFunctionArgs; +type Output = AggExpressionType; +type FunctionDefinition = ExpressionFunctionDefinition< + typeof aggSinglePercentileFnName, + Input, + AggArgs, + Output +>; + +export const aggSinglePercentile = (): FunctionDefinition => ({ + name: aggSinglePercentileFnName, + help: i18n.translate('data.search.aggs.function.metrics.singlePercentile.help', { + defaultMessage: 'Generates a serialized agg config for a single percentile agg', + }), + type: 'agg_type', + args: { + id: { + types: ['string'], + help: i18n.translate('data.search.aggs.metrics.singlePercentile.id.help', { + defaultMessage: 'ID for this aggregation', + }), + }, + enabled: { + types: ['boolean'], + default: true, + help: i18n.translate('data.search.aggs.metrics.singlePercentile.enabled.help', { + defaultMessage: 'Specifies whether this aggregation should be enabled', + }), + }, + schema: { + types: ['string'], + help: i18n.translate('data.search.aggs.metrics.singlePercentile.schema.help', { + defaultMessage: 'Schema to use for this aggregation', + }), + }, + field: { + types: ['string'], + required: true, + help: i18n.translate('data.search.aggs.metrics.singlePercentile.field.help', { + defaultMessage: 'Field to use for this aggregation', + }), + }, + percentile: { + types: ['number'], + required: true, + help: i18n.translate('data.search.aggs.metrics.singlePercentile.percentile.help', { + defaultMessage: 'Percentile to fetch', + }), + }, + json: { + types: ['string'], + help: i18n.translate('data.search.aggs.metrics.singlePercentile.json.help', { + defaultMessage: 'Advanced json to include when the agg is sent to Elasticsearch', + }), + }, + customLabel: { + types: ['string'], + help: i18n.translate('data.search.aggs.metrics.singlePercentile.customLabel.help', { + defaultMessage: 'Represents a custom label for this aggregation', + }), + }, + }, + fn: (input, args) => { + const { id, enabled, schema, ...rest } = args; + + return { + type: 'agg_type', + value: { + id, + enabled, + schema, + type: METRIC_TYPES.SINGLE_PERCENTILE, + params: { + ...rest, + }, + }, + }; + }, +}); diff --git a/src/plugins/data/common/search/aggs/types.ts b/src/plugins/data/common/search/aggs/types.ts index 2b5bb6596cef9..675be2323b93e 100644 --- a/src/plugins/data/common/search/aggs/types.ts +++ b/src/plugins/data/common/search/aggs/types.ts @@ -56,6 +56,7 @@ import { AggParamsIpRange, AggParamsMax, AggParamsMedian, + AggParamsSinglePercentile, AggParamsMin, AggParamsMovingAvg, AggParamsPercentileRanks, @@ -85,6 +86,7 @@ import { METRIC_TYPES, AggConfig, aggFilteredMetric, + aggSinglePercentile, } from './'; export { IAggConfig, AggConfigSerialized } from './agg_config'; @@ -169,6 +171,7 @@ export interface AggParamsMapping { [METRIC_TYPES.GEO_CENTROID]: AggParamsGeoCentroid; [METRIC_TYPES.MAX]: AggParamsMax; [METRIC_TYPES.MEDIAN]: AggParamsMedian; + [METRIC_TYPES.SINGLE_PERCENTILE]: AggParamsSinglePercentile; [METRIC_TYPES.MIN]: AggParamsMin; [METRIC_TYPES.STD_DEV]: AggParamsStdDeviation; [METRIC_TYPES.SUM]: AggParamsSum; @@ -215,6 +218,7 @@ export interface AggFunctionsMapping { aggGeoCentroid: ReturnType; aggMax: ReturnType; aggMedian: ReturnType; + aggSinglePercentile: ReturnType; aggMin: ReturnType; aggMovingAvg: ReturnType; aggPercentileRanks: ReturnType; diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index be57435aa29d4..7f243cefd08b6 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -399,6 +399,10 @@ export interface AggFunctionsMapping { // // (undocumented) aggSignificantTerms: ReturnType; + // Warning: (ae-forgotten-export) The symbol "aggSinglePercentile" needs to be exported by the entry point index.d.ts + // + // (undocumented) + aggSinglePercentile: ReturnType; // Warning: (ae-forgotten-export) The symbol "aggStdDeviation" needs to be exported by the entry point index.d.ts // // (undocumented) @@ -717,7 +721,7 @@ export const ES_SEARCH_STRATEGY = "es"; // Warning: (ae-missing-release-tag) "EsaggsExpressionFunctionDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type EsaggsExpressionFunctionDefinition = ExpressionFunctionDefinition<'esaggs', Input_35, Arguments_21, Output_35>; +export type EsaggsExpressionFunctionDefinition = ExpressionFunctionDefinition<'esaggs', Input_36, Arguments_21, Output_36>; // Warning: (ae-forgotten-export) The symbol "name" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "Input" needs to be exported by the entry point index.d.ts @@ -726,7 +730,7 @@ export type EsaggsExpressionFunctionDefinition = ExpressionFunctionDefinition<'e // Warning: (ae-missing-release-tag) "EsdslExpressionFunctionDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type EsdslExpressionFunctionDefinition = ExpressionFunctionDefinition; +export type EsdslExpressionFunctionDefinition = ExpressionFunctionDefinition; // Warning: (ae-missing-release-tag) "esFilters" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -1860,6 +1864,8 @@ export enum METRIC_TYPES { // (undocumented) SERIAL_DIFF = "serial_diff", // (undocumented) + SINGLE_PERCENTILE = "single_percentile", + // (undocumented) STD_DEV = "std_dev", // (undocumented) SUM = "sum", @@ -2650,7 +2656,7 @@ export const UI_SETTINGS: { // src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts:65:5 - (ae-forgotten-export) The symbol "FormatFieldFn" needs to be exported by the entry point index.d.ts // src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts:138:7 - (ae-forgotten-export) The symbol "FieldAttrSet" needs to be exported by the entry point index.d.ts // src/plugins/data/common/index_patterns/index_patterns/index_pattern.ts:169:7 - (ae-forgotten-export) The symbol "RuntimeField" needs to be exported by the entry point index.d.ts -// src/plugins/data/common/search/aggs/types.ts:127:51 - (ae-forgotten-export) The symbol "AggTypesRegistryStart" needs to be exported by the entry point index.d.ts +// src/plugins/data/common/search/aggs/types.ts:129:51 - (ae-forgotten-export) The symbol "AggTypesRegistryStart" needs to be exported by the entry point index.d.ts // src/plugins/data/public/field_formats/field_formats_service.ts:56:3 - (ae-forgotten-export) The symbol "FormatFactory" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:56:23 - (ae-forgotten-export) The symbol "FILTERS" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:56:23 - (ae-forgotten-export) The symbol "getDisplayValueFromFilter" needs to be exported by the entry point index.d.ts diff --git a/src/plugins/data/public/search/aggs/aggs_service.test.ts b/src/plugins/data/public/search/aggs/aggs_service.test.ts index 920a6a81cb5fd..cd2ee69d33996 100644 --- a/src/plugins/data/public/search/aggs/aggs_service.test.ts +++ b/src/plugins/data/public/search/aggs/aggs_service.test.ts @@ -54,7 +54,7 @@ describe('AggsService - public', () => { service.setup(setupDeps); const start = service.start(startDeps); expect(start.types.getAll().buckets.length).toBe(11); - expect(start.types.getAll().metrics.length).toBe(22); + expect(start.types.getAll().metrics.length).toBe(23); }); test('registers custom agg types', () => { @@ -71,7 +71,7 @@ describe('AggsService - public', () => { const start = service.start(startDeps); expect(start.types.getAll().buckets.length).toBe(12); expect(start.types.getAll().buckets.some(({ name }) => name === 'foo')).toBe(true); - expect(start.types.getAll().metrics.length).toBe(23); + expect(start.types.getAll().metrics.length).toBe(24); expect(start.types.getAll().metrics.some(({ name }) => name === 'bar')).toBe(true); }); }); diff --git a/src/plugins/data/server/server.api.md b/src/plugins/data/server/server.api.md index 6d3eac01dc4dc..1f043cc9aab4e 100644 --- a/src/plugins/data/server/server.api.md +++ b/src/plugins/data/server/server.api.md @@ -202,6 +202,10 @@ export interface AggFunctionsMapping { // // (undocumented) aggSignificantTerms: ReturnType; + // Warning: (ae-forgotten-export) The symbol "aggSinglePercentile" needs to be exported by the entry point index.d.ts + // + // (undocumented) + aggSinglePercentile: ReturnType; // Warning: (ae-forgotten-export) The symbol "aggStdDeviation" needs to be exported by the entry point index.d.ts // // (undocumented) @@ -403,7 +407,7 @@ export const ES_SEARCH_STRATEGY = "es"; // Warning: (ae-missing-release-tag) "EsaggsExpressionFunctionDefinition" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type EsaggsExpressionFunctionDefinition = ExpressionFunctionDefinition<'esaggs', Input_35, Arguments_21, Output_35>; +export type EsaggsExpressionFunctionDefinition = ExpressionFunctionDefinition<'esaggs', Input_36, Arguments_21, Output_36>; // Warning: (ae-missing-release-tag) "esFilters" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // @@ -1163,6 +1167,8 @@ export enum METRIC_TYPES { // (undocumented) SERIAL_DIFF = "serial_diff", // (undocumented) + SINGLE_PERCENTILE = "single_percentile", + // (undocumented) STD_DEV = "std_dev", // (undocumented) SUM = "sum", diff --git a/src/plugins/vis_type_metric/public/metric_vis_type.ts b/src/plugins/vis_type_metric/public/metric_vis_type.ts index 9e2e248c6ccd5..382ef925c5282 100644 --- a/src/plugins/vis_type_metric/public/metric_vis_type.ts +++ b/src/plugins/vis_type_metric/public/metric_vis_type.ts @@ -64,6 +64,7 @@ export const createMetricVisTypeDefinition = (): VisTypeDefinition => '!cumulative_sum', '!geo_bounds', '!filtered_metric', + '!single_percentile', ], aggSettings: { top_hits: { diff --git a/src/plugins/vis_type_table/public/legacy/table_vis_legacy_type.ts b/src/plugins/vis_type_table/public/legacy/table_vis_legacy_type.ts index 2f30faa8e9a89..e582f098a5fd5 100644 --- a/src/plugins/vis_type_table/public/legacy/table_vis_legacy_type.ts +++ b/src/plugins/vis_type_table/public/legacy/table_vis_legacy_type.ts @@ -50,7 +50,7 @@ export const tableVisLegacyTypeDefinition: VisTypeDefinition = { title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.metricTitle', { defaultMessage: 'Metric', }), - aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric'], + aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric', '!single_percentile'], aggSettings: { top_hits: { allowStrings: true, diff --git a/src/plugins/vis_type_table/public/table_vis_type.ts b/src/plugins/vis_type_table/public/table_vis_type.ts index d645af3180b08..a49748fe86c96 100644 --- a/src/plugins/vis_type_table/public/table_vis_type.ts +++ b/src/plugins/vis_type_table/public/table_vis_type.ts @@ -46,7 +46,7 @@ export const tableVisTypeDefinition: VisTypeDefinition = { title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.metricTitle', { defaultMessage: 'Metric', }), - aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric'], + aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric', '!single_percentile'], aggSettings: { top_hits: { allowStrings: true, diff --git a/src/plugins/vis_type_tagcloud/public/tag_cloud_type.ts b/src/plugins/vis_type_tagcloud/public/tag_cloud_type.ts index 4052ecbe21997..960122c178caa 100644 --- a/src/plugins/vis_type_tagcloud/public/tag_cloud_type.ts +++ b/src/plugins/vis_type_tagcloud/public/tag_cloud_type.ts @@ -52,6 +52,7 @@ export const tagCloudVisTypeDefinition = { '!geo_bounds', '!geo_centroid', '!filtered_metric', + '!single_percentile', ], defaults: [{ schema: 'metric', type: 'count' }], }, diff --git a/src/plugins/vis_type_vislib/public/gauge.ts b/src/plugins/vis_type_vislib/public/gauge.ts index 7e3ff8226fbb6..fa463bea6f27f 100644 --- a/src/plugins/vis_type_vislib/public/gauge.ts +++ b/src/plugins/vis_type_vislib/public/gauge.ts @@ -120,6 +120,7 @@ export const gaugeVisTypeDefinition: VisTypeDefinition = { '!cumulative_sum', '!geo_bounds', '!filtered_metric', + '!single_percentile', ], defaults: [{ schema: 'metric', type: 'count' }], }, diff --git a/src/plugins/vis_type_vislib/public/goal.ts b/src/plugins/vis_type_vislib/public/goal.ts index 468651bb4cf4c..e594122871fe7 100644 --- a/src/plugins/vis_type_vislib/public/goal.ts +++ b/src/plugins/vis_type_vislib/public/goal.ts @@ -84,6 +84,7 @@ export const goalVisTypeDefinition: VisTypeDefinition = { '!cumulative_sum', '!geo_bounds', '!filtered_metric', + '!single_percentile', ], defaults: [{ schema: 'metric', type: 'count' }], }, diff --git a/src/plugins/vis_type_vislib/public/heatmap.ts b/src/plugins/vis_type_vislib/public/heatmap.ts index 8d538399f68b2..f3f320b3658a0 100644 --- a/src/plugins/vis_type_vislib/public/heatmap.ts +++ b/src/plugins/vis_type_vislib/public/heatmap.ts @@ -95,6 +95,7 @@ export const heatmapVisTypeDefinition: VisTypeDefinition = { 'std_dev', 'top_hits', '!filtered_metric', + '!single_percentile', ], defaults: [{ schema: 'metric', type: 'count' }], }, diff --git a/src/plugins/vis_type_xy/public/vis_types/area.ts b/src/plugins/vis_type_xy/public/vis_types/area.ts index dfe9bc2f42b84..f22f8df1752d6 100644 --- a/src/plugins/vis_type_xy/public/vis_types/area.ts +++ b/src/plugins/vis_type_xy/public/vis_types/area.ts @@ -133,7 +133,7 @@ export const getAreaVisTypeDefinition = ( title: i18n.translate('visTypeXy.area.metricsTitle', { defaultMessage: 'Y-axis', }), - aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric'], + aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric', '!single_percentile'], min: 1, defaults: [{ schema: 'metric', type: 'count' }], }, diff --git a/src/plugins/vis_type_xy/public/vis_types/histogram.ts b/src/plugins/vis_type_xy/public/vis_types/histogram.ts index ba20502a3b9af..732833ffecc80 100644 --- a/src/plugins/vis_type_xy/public/vis_types/histogram.ts +++ b/src/plugins/vis_type_xy/public/vis_types/histogram.ts @@ -137,7 +137,7 @@ export const getHistogramVisTypeDefinition = ( defaultMessage: 'Y-axis', }), min: 1, - aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric'], + aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric', '!single_percentile'], defaults: [{ schema: 'metric', type: 'count' }], }, { diff --git a/src/plugins/vis_type_xy/public/vis_types/horizontal_bar.ts b/src/plugins/vis_type_xy/public/vis_types/horizontal_bar.ts index 62da0448e56bd..791d93bb646b2 100644 --- a/src/plugins/vis_type_xy/public/vis_types/horizontal_bar.ts +++ b/src/plugins/vis_type_xy/public/vis_types/horizontal_bar.ts @@ -136,7 +136,7 @@ export const getHorizontalBarVisTypeDefinition = ( defaultMessage: 'Y-axis', }), min: 1, - aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric'], + aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric', '!single_percentile'], defaults: [{ schema: 'metric', type: 'count' }], }, { diff --git a/src/plugins/vis_type_xy/public/vis_types/line.ts b/src/plugins/vis_type_xy/public/vis_types/line.ts index 5a9eb5198df35..6316fe4458229 100644 --- a/src/plugins/vis_type_xy/public/vis_types/line.ts +++ b/src/plugins/vis_type_xy/public/vis_types/line.ts @@ -132,7 +132,7 @@ export const getLineVisTypeDefinition = ( name: 'metric', title: i18n.translate('visTypeXy.line.metricTitle', { defaultMessage: 'Y-axis' }), min: 1, - aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric'], + aggFilter: ['!geo_centroid', '!geo_bounds', '!filtered_metric', '!single_percentile'], defaults: [{ schema: 'metric', type: 'count' }], }, { 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 14834adfc33cc..0ea533e22e4d9 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts @@ -474,53 +474,6 @@ describe('IndexPattern Data Source', () => { expect(ast.chain[0].arguments.timeFields).toEqual(['timestamp', 'another_datefield']); }); - it('should add the suffix to the remap column id if provided by the operation', async () => { - const queryBaseState: IndexPatternBaseState = { - currentIndexPatternId: '1', - layers: { - first: { - indexPatternId: '1', - columnOrder: ['def', 'abc'], - columns: { - abc: { - label: '23rd percentile', - dataType: 'number', - isBucketed: false, - sourceField: 'bytes', - operationType: 'percentile', - params: { - percentile: 23, - }, - }, - def: { - label: 'Terms', - dataType: 'string', - isBucketed: true, - operationType: 'terms', - sourceField: 'source', - params: { - size: 5, - orderBy: { - type: 'alphabetical', - }, - orderDirection: 'asc', - }, - }, - }, - }, - }, - }; - - const state = enrichBaseState(queryBaseState); - - const ast = indexPatternDatasource.toExpression(state, 'first') as Ast; - expect(Object.keys(JSON.parse(ast.chain[1].arguments.idMap[0] as string))).toEqual([ - 'col-0-def', - // col-1 is the auto naming of esasggs, abc is the specified column id, .23 is the generated suffix - 'col-1-abc.23', - ]); - }); - it('should wrap filtered metrics in filtered metric aggregation', async () => { const queryBaseState: IndexPatternBaseState = { currentIndexPatternId: '1', 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 2d2227396afa6..b7e92a0b54952 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 @@ -64,13 +64,6 @@ export function getInvalidFieldMessage( : undefined; } -export function getEsAggsSuffix(column: IndexPatternColumn) { - const operationDefinition = operationDefinitionMap[column.operationType]; - return operationDefinition.input === 'field' && operationDefinition.getEsAggsSuffix - ? operationDefinition.getEsAggsSuffix(column) - : ''; -} - export function getSafeName(name: string, indexPattern: IndexPattern): string { const field = indexPattern.getFieldByName(name); return field 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 b3aa93b062eb1..0b63dc6ece974 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 @@ -311,13 +311,6 @@ interface FieldBasedOperationDefinition { layer: IndexPatternLayer, uiSettings: IUiSettingsClient ) => ExpressionAstFunction; - /** - * Optional function to return the suffix used for ES bucket paths and esaggs column id. - * This is relevant for multi metrics to pick the right value. - * - * @param column The current column - */ - getEsAggsSuffix?: (column: C) => string; /** * Validate that the operation has the right preconditions in the state. For example: * 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 9ac91be5a17ec..c14ff9f86f602 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 @@ -127,7 +127,7 @@ describe('percentile', () => { expect(esAggsFn).toEqual( expect.objectContaining({ arguments: expect.objectContaining({ - percents: [23], + percentile: [23], field: ['a'], }), }) 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 639b9e3a95c47..dd0f3b978da5f 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 @@ -51,6 +51,7 @@ export const percentileOperation: OperationDefinition { if (supportedFieldTypes.includes(fieldType) && aggregatable && !aggregationRestrictions) { return { @@ -86,6 +87,7 @@ export const percentileOperation: OperationDefinition { - return buildExpressionFunction('aggPercentiles', { - id: columnId, - enabled: true, - schema: 'metric', - field: column.sourceField, - percents: [column.params.percentile], - }).toAst(); - }, - getEsAggsSuffix: (column) => { - const value = column.params.percentile; - return `.${value}`; + return buildExpressionFunction( + 'aggSinglePercentile', + { + id: columnId, + enabled: true, + schema: 'metric', + field: column.sourceField, + percentile: column.params.percentile, + } + ).toAst(); }, getErrorMessage: (layer, columnId, indexPattern) => getInvalidFieldMessage(layer.columns[columnId] as FieldBasedIndexPatternColumn, indexPattern), diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx index a4a061db04797..857e8b3605cfc 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx @@ -23,7 +23,7 @@ import { DataType } from '../../../../types'; import { OperationDefinition } from '../index'; import { FieldBasedIndexPatternColumn } from '../column_types'; import { ValuesInput } from './values_input'; -import { getEsAggsSuffix, getInvalidFieldMessage } from '../helpers'; +import { getInvalidFieldMessage } from '../helpers'; import type { IndexPatternLayer } from '../../../types'; function ofName(name?: string) { @@ -137,11 +137,7 @@ export const termsOperation: OperationDefinition { }) ); }); - - it('should include esaggs suffix from other columns in orderby argument', () => { - const termsColumn = layer.columns.col1 as TermsIndexPatternColumn; - const esAggsFn = termsOperation.toEsAggsFn( - { - ...termsColumn, - params: { - ...termsColumn.params, - otherBucket: true, - orderBy: { type: 'column', columnId: 'abcde' }, - }, - }, - 'col1', - {} as IndexPattern, - { - ...layer, - columns: { - ...layer.columns, - abcde: { - dataType: 'number', - isBucketed: false, - operationType: 'percentile', - sourceField: 'abc', - label: '', - params: { - percentile: 12, - }, - }, - }, - }, - uiSettingsMock - ); - expect(esAggsFn).toEqual( - expect.objectContaining({ - arguments: expect.objectContaining({ - orderBy: ['abcde.12'], - }), - }) - ); - }); }); describe('onFieldChange', () => { 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 d786d781199b6..b272e5476aa63 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts @@ -23,7 +23,6 @@ import { operationDefinitionMap } from './operations'; import { IndexPattern, IndexPatternPrivateState, IndexPatternLayer } from './types'; import { OriginalColumn } from './rename_columns'; import { dateHistogramOperation } from './operations/definitions'; -import { getEsAggsSuffix } from './operations/definitions/helpers'; function getExpressionForLayer( layer: IndexPatternLayer, @@ -104,10 +103,9 @@ function getExpressionForLayer( const idMap = columnEntries.reduce((currentIdMap, [colId, column], index) => { const esAggsId = `col-${columnEntries.length === 1 ? 0 : index}-${colId}`; - const suffix = getEsAggsSuffix(column); return { ...currentIdMap, - [`${esAggsId}${suffix}`]: { + [esAggsId]: { ...column, id: colId, }, From 73109fb3abe47cf39fde658184690c274b06fb95 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 31 Mar 2021 07:25:57 -0700 Subject: [PATCH 010/106] Revert "[Time to Visualize] Allow By Value Flow Without Visualize Save Permissions (#93846)" This reverts commit cfe5f9c016625e6d6233f8d3a868308fdbba3d3c. --- .../actions/add_to_library_action.test.tsx | 50 +--- .../actions/add_to_library_action.tsx | 18 +- .../actions/clone_panel_action.tsx | 3 +- src/plugins/dashboard/public/plugin.tsx | 11 +- src/plugins/dashboard/public/services/core.ts | 1 - .../saved_object_save_modal_dashboard.tsx | 10 +- ..._save_modal_dashboard_selector.stories.tsx | 7 - ...d_object_save_modal_dashboard_selector.tsx | 6 +- .../public/services/index.ts | 1 - .../public/services/kibana/capabilities.ts | 3 +- .../public/services/storybook/capabilities.ts | 2 - .../public/services/storybook/index.ts | 1 - .../public/services/stub/capabilities.ts | 1 - .../create_vis_embeddable_from_object.ts | 7 +- .../public/embeddable/visualize_embeddable.ts | 11 +- .../application/utils/get_top_nav_config.tsx | 26 +- .../public/application/utils/utils.ts | 2 +- x-pack/plugins/lens/public/app_plugin/app.tsx | 17 +- .../lens/public/app_plugin/lens_top_nav.tsx | 25 +- .../lens/public/app_plugin/save_modal.tsx | 6 +- .../embeddable/embeddable.test.tsx | 64 ++--- .../embeddable/embeddable.tsx | 13 +- .../embeddable/embeddable_factory.ts | 8 +- .../public/routes/map_page/top_nav_config.tsx | 6 +- .../apps/dashboard/feature_controls/index.ts | 1 - .../time_to_visualize_security.ts | 233 ------------------ 26 files changed, 65 insertions(+), 468 deletions(-) delete mode 100644 x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx index 1156bf8c6e0d1..07c38fd406eea 100644 --- a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx +++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx @@ -41,15 +41,8 @@ const start = doStart(); let container: DashboardContainer; let embeddable: ContactCardEmbeddable & ReferenceOrValueEmbeddable; let coreStart: CoreStart; -let capabilities: CoreStart['application']['capabilities']; - beforeEach(async () => { coreStart = coreMock.createStart(); - capabilities = { - ...coreStart.application.capabilities, - visualize: { save: true }, - maps: { save: true }, - }; const containerOptions = { ExitFullScreenButton: () => null, @@ -90,10 +83,7 @@ beforeEach(async () => { }); test('Add to library is incompatible with Error Embeddables', async () => { - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities, - }); + const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); const errorEmbeddable = new ErrorEmbeddable( 'Wow what an awful error', { id: ' 404' }, @@ -102,37 +92,20 @@ test('Add to library is incompatible with Error Embeddables', async () => { expect(await action.isCompatible({ embeddable: errorEmbeddable })).toBe(false); }); -test('Add to library is incompatible on visualize embeddable without visualize save permissions', async () => { - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities: { ...capabilities, visualize: { save: false } }, - }); - expect(await action.isCompatible({ embeddable })).toBe(false); -}); - test('Add to library is compatible when embeddable on dashboard has value type input', async () => { - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities, - }); + const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); embeddable.updateInput(await embeddable.getInputAsValueType()); expect(await action.isCompatible({ embeddable })).toBe(true); }); test('Add to library is not compatible when embeddable input is by reference', async () => { - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities, - }); + const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); embeddable.updateInput(await embeddable.getInputAsRefType()); expect(await action.isCompatible({ embeddable })).toBe(false); }); test('Add to library is not compatible when view mode is set to view', async () => { - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities, - }); + const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); embeddable.updateInput(await embeddable.getInputAsRefType()); embeddable.updateInput({ viewMode: ViewMode.VIEW }); expect(await action.isCompatible({ embeddable })).toBe(false); @@ -153,10 +126,7 @@ test('Add to library is not compatible when embeddable is not in a dashboard con mockedByReferenceInput: { savedObjectId: 'test', id: orphanContactCard.id }, mockedByValueInput: { firstName: 'Kibanana', id: orphanContactCard.id }, }); - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities, - }); + const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); expect(await action.isCompatible({ embeddable: orphanContactCard })).toBe(false); }); @@ -165,10 +135,7 @@ test('Add to library replaces embeddableId and retains panel count', async () => const originalPanelCount = Object.keys(dashboard.getInput().panels).length; const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels)); - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities, - }); + const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); await action.execute({ embeddable }); expect(Object.keys(container.getInput().panels).length).toEqual(originalPanelCount); @@ -194,10 +161,7 @@ test('Add to library returns reference type input', async () => { }); const dashboard = embeddable.getRoot() as IContainer; const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels)); - const action = new AddToLibraryAction({ - toasts: coreStart.notifications.toasts, - capabilities, - }); + const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); await action.execute({ embeddable }); const newPanelId = Object.keys(container.getInput().panels).find( (key) => !originalPanelKeySet.has(key) diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx index fa102a9415b3f..ef730e16bc5cf 100644 --- a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx +++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx @@ -18,7 +18,7 @@ import { isReferenceOrValueEmbeddable, isErrorEmbeddable, } from '../../services/embeddable'; -import { ApplicationStart, NotificationsStart } from '../../services/core'; +import { NotificationsStart } from '../../services/core'; import { dashboardAddToLibraryAction } from '../../dashboard_strings'; import { DashboardPanelState, DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '..'; @@ -33,12 +33,7 @@ export class AddToLibraryAction implements Action { public readonly id = ACTION_ADD_TO_LIBRARY; public order = 15; - constructor( - private deps: { - toasts: NotificationsStart['toasts']; - capabilities: ApplicationStart['capabilities']; - } - ) {} + constructor(private deps: { toasts: NotificationsStart['toasts'] }) {} public getDisplayName({ embeddable }: AddToLibraryActionContext) { if (!embeddable.getRoot() || !embeddable.getRoot().isContainer) { @@ -55,15 +50,8 @@ export class AddToLibraryAction implements Action { } public async isCompatible({ embeddable }: AddToLibraryActionContext) { - // TODO: Fix this, potentially by adding a 'canSave' function to embeddable interface - const canSave = - embeddable.type === 'map' - ? this.deps.capabilities.maps?.save - : this.deps.capabilities.visualize.save; - return Boolean( - canSave && - !isErrorEmbeddable(embeddable) && + !isErrorEmbeddable(embeddable) && embeddable.getInput()?.viewMode !== ViewMode.VIEW && embeddable.getRoot() && embeddable.getRoot().isContainer && diff --git a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx index 829344504b16b..c82f17f2b29c4 100644 --- a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx +++ b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx @@ -61,8 +61,7 @@ export class ClonePanelAction implements Action { embeddable.getInput()?.viewMode !== ViewMode.VIEW && embeddable.getRoot() && embeddable.getRoot().isContainer && - embeddable.getRoot().type === DASHBOARD_CONTAINER_TYPE && - embeddable.getOutput().editable + embeddable.getRoot().type === DASHBOARD_CONTAINER_TYPE ); } diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx index 5bf730996ab4f..ae2d2b5f237c9 100644 --- a/src/plugins/dashboard/public/plugin.tsx +++ b/src/plugins/dashboard/public/plugin.tsx @@ -342,7 +342,7 @@ export class DashboardPlugin } public start(core: CoreStart, plugins: DashboardStartDependencies): DashboardStart { - const { notifications, overlays, application } = core; + const { notifications, overlays } = core; const { uiActions, data, share, presentationUtil, embeddable } = plugins; const SavedObjectFinder = getSavedObjectFinder(core.savedObjects, core.uiSettings); @@ -370,10 +370,7 @@ export class DashboardPlugin } if (this.dashboardFeatureFlagConfig?.allowByValueEmbeddables) { - const addToLibraryAction = new AddToLibraryAction({ - toasts: notifications.toasts, - capabilities: application.capabilities, - }); + const addToLibraryAction = new AddToLibraryAction({ toasts: notifications.toasts }); uiActions.registerAction(addToLibraryAction); uiActions.attachAction(CONTEXT_MENU_TRIGGER, addToLibraryAction.id); @@ -389,8 +386,8 @@ export class DashboardPlugin overlays, embeddable.getStateTransfer(), { - canCreateNew: Boolean(application.capabilities.dashboard.createNew), - canEditExisting: !Boolean(application.capabilities.dashboard.hideWriteControls), + canCreateNew: Boolean(core.application.capabilities.dashboard.createNew), + canEditExisting: !Boolean(core.application.capabilities.dashboard.hideWriteControls), }, presentationUtil.ContextProvider ); diff --git a/src/plugins/dashboard/public/services/core.ts b/src/plugins/dashboard/public/services/core.ts index 75461729841e9..7c19b2d75a967 100644 --- a/src/plugins/dashboard/public/services/core.ts +++ b/src/plugins/dashboard/public/services/core.ts @@ -12,5 +12,4 @@ export { PluginInitializerContext, ScopedHistory, NotificationsStart, - ApplicationStart, } from '../../../../core/public'; diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx index 4491be04b1a42..57d05262319f2 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx @@ -28,7 +28,6 @@ interface SaveModalDocumentInfo { export interface SaveModalDashboardProps { documentInfo: SaveModalDocumentInfo; - canSaveByReference: boolean; objectType: string; onClose: () => void; onSave: (props: OnSaveProps & { dashboardId: string | null; addToLibrary: boolean }) => void; @@ -36,7 +35,7 @@ export interface SaveModalDashboardProps { } export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { - const { documentInfo, tagOptions, objectType, onClose, canSaveByReference } = props; + const { documentInfo, tagOptions, objectType, onClose } = props; const { id: documentId } = documentInfo; const initialCopyOnSave = !Boolean(documentId); @@ -50,7 +49,7 @@ export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { documentId || disableDashboardOptions ? null : 'existing' ); const [isAddToLibrarySelected, setAddToLibrary] = useState( - canSaveByReference && (!initialCopyOnSave || disableDashboardOptions) + !initialCopyOnSave || disableDashboardOptions ); const [selectedDashboard, setSelectedDashboard] = useState<{ id: string; name: string } | null>( null @@ -66,16 +65,13 @@ export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { onChange={(option) => { setDashboardOption(option); }} - canSaveByReference={canSaveByReference} {...{ copyOnSave, documentId, dashboardOption, setAddToLibrary, isAddToLibrarySelected }} /> ) : null; const onCopyOnSaveChange = (newCopyOnSave: boolean) => { - if (canSaveByReference) { - setAddToLibrary(true); - } + setAddToLibrary(true); setDashboardOption(null); setCopyOnSave(newCopyOnSave); }; diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx index 341f194b71ba4..dd6fd975f8e07 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx @@ -33,21 +33,15 @@ export default { control: 'boolean', defaultValue: true, }, - canSaveVisualizations: { - control: 'boolean', - defaultValue: true, - }, }, }; export function Example({ copyOnSave, hasDocumentId, - canSaveVisualizations, }: { copyOnSave: boolean; hasDocumentId: boolean; - canSaveVisualizations: boolean; } & StorybookParams) { const [dashboardOption, setDashboardOption] = useState<'new' | 'existing' | null>('existing'); const [isAddToLibrarySelected, setAddToLibrary] = useState(false); @@ -58,7 +52,6 @@ export function Example({ onChange={setDashboardOption} dashboardOption={dashboardOption} copyOnSave={copyOnSave} - canSaveByReference={canSaveVisualizations} documentId={hasDocumentId ? 'abc' : undefined} isAddToLibrarySelected={isAddToLibrarySelected} setAddToLibrary={setAddToLibrary} diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx index 78a1569c02ead..1ae54040571a2 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx @@ -30,7 +30,6 @@ export interface SaveModalDashboardSelectorProps { copyOnSave: boolean; documentId?: string; onSelectDashboard: DashboardPickerProps['onChange']; - canSaveByReference: boolean; setAddToLibrary: (selected: boolean) => void; isAddToLibrarySelected: boolean; dashboardOption: 'new' | 'existing' | null; @@ -41,7 +40,6 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp const { documentId, onSelectDashboard, - canSaveByReference, setAddToLibrary, isAddToLibrarySelected, dashboardOption, @@ -116,7 +114,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp setAddToLibrary(true); onChange(null); }} - disabled={isDisabled || !canSaveByReference} + disabled={isDisabled} /> @@ -129,7 +127,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp defaultMessage: 'Add to library', })} checked={isAddToLibrarySelected} - disabled={dashboardOption === null || isDisabled || !canSaveByReference} + disabled={dashboardOption === null || isDisabled} onChange={(event) => setAddToLibrary(event.target.checked)} /> diff --git a/src/plugins/presentation_util/public/services/index.ts b/src/plugins/presentation_util/public/services/index.ts index 39dae92aa2ba9..74607b9e35e47 100644 --- a/src/plugins/presentation_util/public/services/index.ts +++ b/src/plugins/presentation_util/public/services/index.ts @@ -23,7 +23,6 @@ export interface PresentationDashboardsService { export interface PresentationCapabilitiesService { canAccessDashboards: () => boolean; canCreateNewDashboards: () => boolean; - canSaveVisualizations: () => boolean; } export interface PresentationUtilServices { diff --git a/src/plugins/presentation_util/public/services/kibana/capabilities.ts b/src/plugins/presentation_util/public/services/kibana/capabilities.ts index 6949fba00c65a..546281d083f2f 100644 --- a/src/plugins/presentation_util/public/services/kibana/capabilities.ts +++ b/src/plugins/presentation_util/public/services/kibana/capabilities.ts @@ -16,11 +16,10 @@ export type CapabilitiesServiceFactory = KibanaPluginServiceFactory< >; export const capabilitiesServiceFactory: CapabilitiesServiceFactory = ({ coreStart }) => { - const { dashboard, visualize } = coreStart.application.capabilities; + const { dashboard } = coreStart.application.capabilities; return { canAccessDashboards: () => Boolean(dashboard.show), canCreateNewDashboards: () => Boolean(dashboard.createNew), - canSaveVisualizations: () => Boolean(visualize.save), }; }; diff --git a/src/plugins/presentation_util/public/services/storybook/capabilities.ts b/src/plugins/presentation_util/public/services/storybook/capabilities.ts index 16fbe3baf488f..fcd38b29f154c 100644 --- a/src/plugins/presentation_util/public/services/storybook/capabilities.ts +++ b/src/plugins/presentation_util/public/services/storybook/capabilities.ts @@ -19,13 +19,11 @@ export const capabilitiesServiceFactory: CapabilitiesServiceFactory = ({ canAccessDashboards, canCreateNewDashboards, canEditDashboards, - canSaveVisualizations, }) => { const check = (value: boolean = true) => value; return { canAccessDashboards: () => check(canAccessDashboards), canCreateNewDashboards: () => check(canCreateNewDashboards), canEditDashboards: () => check(canEditDashboards), - canSaveVisualizations: () => check(canSaveVisualizations), }; }; diff --git a/src/plugins/presentation_util/public/services/storybook/index.ts b/src/plugins/presentation_util/public/services/storybook/index.ts index dd7de54264062..37b2171635e96 100644 --- a/src/plugins/presentation_util/public/services/storybook/index.ts +++ b/src/plugins/presentation_util/public/services/storybook/index.ts @@ -18,7 +18,6 @@ export interface StorybookParams { canAccessDashboards?: boolean; canCreateNewDashboards?: boolean; canEditDashboards?: boolean; - canSaveVisualizations?: boolean; } export const providers: PluginServiceProviders = { diff --git a/src/plugins/presentation_util/public/services/stub/capabilities.ts b/src/plugins/presentation_util/public/services/stub/capabilities.ts index 4154fa65a0cd7..979ccc8faadd5 100644 --- a/src/plugins/presentation_util/public/services/stub/capabilities.ts +++ b/src/plugins/presentation_util/public/services/stub/capabilities.ts @@ -15,5 +15,4 @@ export const capabilitiesServiceFactory: CapabilitiesServiceFactory = () => ({ canAccessDashboards: () => true, canCreateNewDashboards: () => true, canEditDashboards: () => true, - canSaveVisualizations: () => true, }); diff --git a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts index e2e2a4c089270..989a9bf5d2cb7 100644 --- a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts +++ b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts @@ -67,10 +67,7 @@ export const createVisEmbeddableFromObject = (deps: VisualizeEmbeddableFactoryDe indexPatterns = [vis.data.indexPattern]; } - const capabilities = { - visualizeSave: Boolean(getCapabilities().visualize.save), - dashboardSave: Boolean(getCapabilities().dashboard?.showWriteControls), - }; + const editable = getCapabilities().visualize.save as boolean; return new VisualizeEmbeddable( getTimeFilter(), @@ -79,8 +76,8 @@ export const createVisEmbeddableFromObject = (deps: VisualizeEmbeddableFactoryDe indexPatterns, editPath, editUrl, + editable, deps, - capabilities, }, input, attributeService, diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts index 429dabeeef042..580ffef548fe1 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts @@ -50,7 +50,7 @@ export interface VisualizeEmbeddableConfiguration { indexPatterns?: IIndexPattern[]; editPath: string; editUrl: string; - capabilities: { visualizeSave: boolean; dashboardSave: boolean }; + editable: boolean; deps: VisualizeEmbeddableFactoryDeps; } @@ -111,7 +111,7 @@ export class VisualizeEmbeddable constructor( timefilter: TimefilterContract, - { vis, editPath, editUrl, indexPatterns, deps, capabilities }: VisualizeEmbeddableConfiguration, + { vis, editPath, editUrl, indexPatterns, editable, deps }: VisualizeEmbeddableConfiguration, initialInput: VisualizeInput, attributeService?: AttributeService< VisualizeSavedObjectAttributes, @@ -129,6 +129,7 @@ export class VisualizeEmbeddable editApp: 'visualize', editUrl, indexPatterns, + editable, visTypeName: vis.type.name, }, parent @@ -142,12 +143,6 @@ export class VisualizeEmbeddable this.attributeService = attributeService; this.savedVisualizationsLoader = savedVisualizationsLoader; - if (this.attributeService) { - const isByValue = !this.inputIsRefType(initialInput); - const editable = capabilities.visualizeSave || (isByValue && capabilities.dashboardSave); - this.updateOutput({ ...this.getOutput(), editable }); - } - this.subscriptions.push( this.getUpdated$().subscribe(() => { const isDirty = this.handleChanges(); diff --git a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx index e696bcb5dbe4d..4f5679a14b0b7 100644 --- a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx +++ b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx @@ -82,7 +82,6 @@ export const getTopNavConfig = ( setActiveUrl, toastNotifications, visualizeCapabilities, - dashboardCapabilities, i18n: { Context: I18nContext }, dashboard, savedObjectsTagging, @@ -206,9 +205,9 @@ export const getTopNavConfig = ( } }; - const allowByValue = dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables; const saveButtonLabel = - embeddableId || (!savedVis.id && allowByValue && originatingApp) + embeddableId || + (!savedVis.id && dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables && originatingApp) ? i18n.translate('visualize.topNavMenu.saveVisualizationToLibraryButtonLabel', { defaultMessage: 'Save to library', }) @@ -220,11 +219,9 @@ export const getTopNavConfig = ( defaultMessage: 'Save', }); - const showSaveAndReturn = originatingApp && (savedVis?.id || allowByValue); - - const showSaveButton = - visualizeCapabilities.save || - (allowByValue && !showSaveAndReturn && dashboardCapabilities.showWriteControls); + const showSaveAndReturn = + originatingApp && + (savedVis?.id || dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables); const topNavMenu: TopNavMenuData[] = [ { @@ -303,7 +300,7 @@ export const getTopNavConfig = ( }, ] : []), - ...(showSaveButton + ...(visualizeCapabilities.save ? [ { id: 'save', @@ -442,12 +439,7 @@ export const getTopNavConfig = ( /> ) : ( { defaultMessage: 'Read only', }), tooltip: i18n.translate('visualize.badge.readOnly.tooltip', { - defaultMessage: 'Unable to save visualizations to the library', + defaultMessage: 'Unable to save visualizations', }), iconType: 'glasses', }); diff --git a/x-pack/plugins/lens/public/app_plugin/app.tsx b/x-pack/plugins/lens/public/app_plugin/app.tsx index dbc10c751a649..9d5feec9f21e6 100644 --- a/x-pack/plugins/lens/public/app_plugin/app.tsx +++ b/x-pack/plugins/lens/public/app_plugin/app.tsx @@ -531,13 +531,7 @@ export function App({ const { TopNavMenu } = navigation.ui; - const savingToLibraryPermitted = Boolean( - state.isSaveable && application.capabilities.visualize.save - ); - const savingToDashboardPermitted = Boolean( - state.isSaveable && application.capabilities.dashboard?.showWriteControls - ); - + const savingPermitted = Boolean(state.isSaveable && application.capabilities.visualize.save); const unsavedTitle = i18n.translate('xpack.lens.app.unsavedFilename', { defaultMessage: 'unsaved', }); @@ -551,10 +545,8 @@ export function App({ state.isSaveable && state.activeData && Object.keys(state.activeData).length ), isByValueMode: getIsByValueMode(), - allowByValue: dashboardFeatureFlag.allowByValueEmbeddables, showCancel: Boolean(state.isLinkedToOriginatingApp), - savingToLibraryPermitted, - savingToDashboardPermitted, + savingPermitted, actions: { exportToCSV: () => { if (!state.activeData) { @@ -585,7 +577,7 @@ export function App({ } }, saveAndReturn: () => { - if (savingToDashboardPermitted && lastKnownDoc) { + if (savingPermitted && lastKnownDoc) { // disabling the validation on app leave because the document has been saved. onAppLeave((actions) => { return actions.default(); @@ -605,7 +597,7 @@ export function App({ } }, showSaveModal: () => { - if (savingToDashboardPermitted || savingToLibraryPermitted) { + if (savingPermitted) { setState((s) => ({ ...s, isSaveModalVisible: true })); } }, @@ -705,7 +697,6 @@ export function App({ { const { originatingApp, - savingToLibraryPermitted, savedObjectsTagging, tagsIds, lastKnownDoc, @@ -87,15 +85,13 @@ export const SaveModal = (props: Props) => { { const saveToLibrary = Boolean(saveProps.addToLibrary); onSave(saveProps, { saveToLibrary }); }} onClose={onClose} documentInfo={{ - // if the user cannot save to the library - treat this as a new document. - id: savingToLibraryPermitted ? lastKnownDoc.savedObjectId : undefined, + id: lastKnownDoc.savedObjectId, title: lastKnownDoc.title || '', description: lastKnownDoc.description || '', }} diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx index a44870b427ab1..157975b630e1e 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx @@ -112,10 +112,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -154,7 +151,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { canSaveDashboards: true, canSaveVisualizations: true }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -194,10 +191,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -237,10 +231,7 @@ describe('embeddable', () => { indexPatternService: ({ get: (id: string) => Promise.resolve({ id }), } as unknown) as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -275,10 +266,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -319,7 +307,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { canSaveDashboards: true, canSaveVisualizations: true }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -364,10 +352,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -410,10 +395,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -463,10 +445,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -516,10 +495,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -568,10 +544,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: ({ get: jest.fn() } as unknown) as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -609,10 +582,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -650,10 +620,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ @@ -691,10 +658,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - capabilities: { - canSaveDashboards: true, - canSaveVisualizations: true, - }, + editable: true, getTrigger, documentToExpression: () => Promise.resolve({ diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx index a3316e0083d35..1db067606dc82 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx @@ -88,13 +88,13 @@ export interface LensEmbeddableDeps { documentToExpression: ( doc: Document ) => Promise<{ ast: Ast | null; errors: ErrorMessage[] | undefined }>; + editable: boolean; indexPatternService: IndexPatternsContract; expressionRenderer: ReactExpressionRendererType; timefilter: TimefilterContract; basePath: IBasePath; getTrigger?: UiActionsStart['getTrigger'] | undefined; getTriggerCompatibleActions?: UiActionsStart['getTriggerCompatibleActions']; - capabilities: { canSaveVisualizations: boolean; canSaveDashboards: boolean }; } export class Embeddable @@ -129,6 +129,7 @@ export class Embeddable initialInput, { editApp: 'lens', + editable: deps.editable, }, parent ); @@ -325,7 +326,7 @@ export class Embeddable hasCompatibleActions={this.hasCompatibleActions} className={input.className} style={input.style} - canEdit={this.getIsEditable() && input.viewMode === 'edit'} + canEdit={this.deps.editable && input.viewMode === 'edit'} />, domNode ); @@ -450,7 +451,6 @@ export class Embeddable this.updateOutput({ ...this.getOutput(), defaultTitle: this.savedVis.title, - editable: this.getIsEditable(), title, editPath: getEditPath(savedObjectId), editUrl: this.deps.basePath.prepend(`/app/lens${getEditPath(savedObjectId)}`), @@ -458,13 +458,6 @@ export class Embeddable }); } - private getIsEditable() { - return ( - this.deps.capabilities.canSaveVisualizations || - (!this.inputIsRefType(this.getInput()) && this.deps.capabilities.canSaveDashboards) - ); - } - public inputIsRefType = ( input: LensByValueInput | LensByReferenceInput ): input is LensByReferenceInput => { diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts index 1a4962bd1fe8e..a676b7283671c 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts @@ -53,7 +53,7 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { public isEditable = async () => { const { capabilities } = await this.getStartServices(); - return Boolean(capabilities.visualize.save || capabilities.dashboard?.showWriteControls); + return capabilities.visualize.save as boolean; }; canCreateNew() { @@ -86,7 +86,6 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { coreHttp, attributeService, indexPatternService, - capabilities, } = await this.getStartServices(); const { Embeddable } = await import('../../async_services'); @@ -97,14 +96,11 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { indexPatternService, timefilter, expressionRenderer, + editable: await this.isEditable(), basePath: coreHttp.basePath, getTrigger: uiActions?.getTrigger, getTriggerCompatibleActions: uiActions?.getTriggerCompatibleActions, documentToExpression, - capabilities: { - canSaveDashboards: Boolean(capabilities.dashboard?.showWriteControls), - canSaveVisualizations: Boolean(capabilities.visualize.save), - }, }, input, parent diff --git a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx index 7e0aa59756876..597cd8e9c4287 100644 --- a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx +++ b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx @@ -201,11 +201,7 @@ export function getTopNavConfig({ options={tagSelector} /> ) : ( - + ); showSaveModal(saveModal, getCoreI18n().Context, PresentationUtilContext); diff --git a/x-pack/test/functional/apps/dashboard/feature_controls/index.ts b/x-pack/test/functional/apps/dashboard/feature_controls/index.ts index 3b32ea031f6e2..38d139c59430e 100644 --- a/x-pack/test/functional/apps/dashboard/feature_controls/index.ts +++ b/x-pack/test/functional/apps/dashboard/feature_controls/index.ts @@ -11,7 +11,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { describe('feature controls', function () { this.tags(['skipFirefox']); loadTestFile(require.resolve('./dashboard_security')); - loadTestFile(require.resolve('./time_to_visualize_security')); loadTestFile(require.resolve('./dashboard_spaces')); }); } diff --git a/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts b/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts deleted file mode 100644 index 3ebc53cc7cf27..0000000000000 --- a/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import expect from '@kbn/expect'; -import { FtrProviderContext } from '../../../ftr_provider_context'; - -export default function ({ getPageObjects, getService }: FtrProviderContext) { - const PageObjects = getPageObjects([ - 'timeToVisualize', - 'timePicker', - 'dashboard', - 'visEditor', - 'visualize', - 'security', - 'common', - 'header', - 'lens', - ]); - - const dashboardVisualizations = getService('dashboardVisualizations'); - const dashboardPanelActions = getService('dashboardPanelActions'); - const dashboardExpect = getService('dashboardExpect'); - const testSubjects = getService('testSubjects'); - const esArchiver = getService('esArchiver'); - const security = getService('security'); - const find = getService('find'); - - describe('dashboard time to visualize security', () => { - before(async () => { - await esArchiver.load('dashboard/feature_controls/security'); - await esArchiver.loadIfNeeded('logstash_functional'); - - // ensure we're logged out so we can login as the appropriate users - await PageObjects.security.forceLogout(); - - await security.role.create('dashboard_write_vis_read', { - elasticsearch: { - indices: [{ names: ['logstash-*'], privileges: ['read', 'view_index_metadata'] }], - }, - kibana: [ - { - feature: { - dashboard: ['all'], - visualize: ['read'], - }, - spaces: ['*'], - }, - ], - }); - - await security.user.create('dashboard_write_vis_read_user', { - password: 'dashboard_write_vis_read_user-password', - roles: ['dashboard_write_vis_read'], - full_name: 'test user', - }); - - await PageObjects.security.login( - 'dashboard_write_vis_read_user', - 'dashboard_write_vis_read_user-password', - { - expectSpaceSelector: false, - } - ); - }); - - after(async () => { - await security.role.delete('dashboard_write_vis_read'); - await security.user.delete('dashboard_write_vis_read_user'); - - await esArchiver.unload('dashboard/feature_controls/security'); - - // logout, so the other tests don't accidentally run as the custom users we're testing below - await PageObjects.security.forceLogout(); - }); - - describe('lens by value works without library save permissions', () => { - before(async () => { - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.preserveCrossAppState(); - await PageObjects.dashboard.clickNewDashboard(); - }); - - it('can add a lens panel by value', async () => { - await dashboardVisualizations.ensureNewVisualizationDialogIsShowing(); - await PageObjects.lens.createAndAddLensFromDashboard({}); - const newPanelCount = await PageObjects.dashboard.getPanelCount(); - expect(newPanelCount).to.eql(1); - }); - - it('edits to a by value lens panel are properly applied', async () => { - await PageObjects.dashboard.waitForRenderComplete(); - await dashboardPanelActions.openContextMenu(); - await dashboardPanelActions.clickEdit(); - await PageObjects.lens.switchToVisualization('donut'); - await PageObjects.lens.saveAndReturn(); - await PageObjects.dashboard.waitForRenderComplete(); - - const pieExists = await find.existsByCssSelector('.lnsPieExpression__container'); - expect(pieExists).to.be(true); - }); - - it('disables save to library button without visualize save permissions', async () => { - await PageObjects.dashboard.waitForRenderComplete(); - await dashboardPanelActions.openContextMenu(); - await dashboardPanelActions.clickEdit(); - const saveButton = await testSubjects.find('lnsApp_saveButton'); - expect(await saveButton.getAttribute('disabled')).to.equal('true'); - await PageObjects.lens.saveAndReturn(); - await PageObjects.timeToVisualize.resetNewDashboard(); - }); - - it('should allow new lens to be added by value, but not by reference', async () => { - await PageObjects.visualize.navigateToNewVisualization(); - await PageObjects.visualize.clickVisType('lens'); - await PageObjects.lens.goToTimeRange(); - - await PageObjects.lens.configureDimension({ - dimension: 'lnsXY_yDimensionPanel > lns-empty-dimension', - operation: 'average', - field: 'bytes', - }); - - await PageObjects.lens.switchToVisualization('lnsMetric'); - - await PageObjects.lens.waitForVisualization(); - await PageObjects.lens.assertMetric('Average of bytes', '5,727.322'); - - await PageObjects.header.waitUntilLoadingHasFinished(); - await testSubjects.click('lnsApp_saveButton'); - - const libraryCheckbox = await find.byCssSelector('#add-to-library-checkbox'); - expect(await libraryCheckbox.getAttribute('disabled')).to.equal('true'); - - await PageObjects.timeToVisualize.saveFromModal('New Lens from Modal', { - addToDashboard: 'new', - saveAsNew: true, - saveToLibrary: false, - }); - - await PageObjects.dashboard.waitForRenderComplete(); - - await PageObjects.lens.assertMetric('Average of bytes', '5,727.322'); - const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists( - 'New Lens from Modal' - ); - expect(isLinked).to.be(false); - - const panelCount = await PageObjects.dashboard.getPanelCount(); - expect(panelCount).to.eql(1); - - await PageObjects.timeToVisualize.resetNewDashboard(); - }); - }); - - describe('visualize by value works without library save permissions', () => { - const originalMarkdownText = 'Original markdown text'; - const modifiedMarkdownText = 'Modified markdown text'; - - before(async () => { - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.preserveCrossAppState(); - await PageObjects.dashboard.clickNewDashboard(); - }); - - it('can add a markdown panel by value', async () => { - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.clickNewDashboard(); - await PageObjects.dashboard.waitForRenderComplete(); - - await testSubjects.click('dashboardAddNewPanelButton'); - await dashboardVisualizations.ensureNewVisualizationDialogIsShowing(); - await PageObjects.visualize.clickMarkdownWidget(); - await PageObjects.visEditor.setMarkdownTxt(originalMarkdownText); - await PageObjects.visEditor.clickGo(); - - await PageObjects.visualize.saveVisualizationAndReturn(); - const newPanelCount = await PageObjects.dashboard.getPanelCount(); - expect(newPanelCount).to.eql(1); - }); - - it('edits to a by value visualize panel are properly applied', async () => { - await dashboardPanelActions.openContextMenu(); - await dashboardPanelActions.clickEdit(); - await PageObjects.header.waitUntilLoadingHasFinished(); - await PageObjects.visEditor.setMarkdownTxt(modifiedMarkdownText); - await PageObjects.visEditor.clickGo(); - await PageObjects.visualize.saveVisualizationAndReturn(); - - await PageObjects.dashboard.waitForRenderComplete(); - const markdownText = await testSubjects.find('markdownBody'); - expect(await markdownText.getVisibleText()).to.eql(modifiedMarkdownText); - - const newPanelCount = PageObjects.dashboard.getPanelCount(); - expect(newPanelCount).to.eql(1); - }); - - it('disables save to library button without visualize save permissions', async () => { - await dashboardPanelActions.openContextMenu(); - await dashboardPanelActions.clickEdit(); - await PageObjects.header.waitUntilLoadingHasFinished(); - await testSubjects.missingOrFail('visualizeSaveButton'); - await PageObjects.visualize.saveVisualizationAndReturn(); - await PageObjects.timeToVisualize.resetNewDashboard(); - }); - - it('should allow new visualization to be added by value, but not by reference', async function () { - await PageObjects.visualize.navigateToNewAggBasedVisualization(); - await PageObjects.visualize.clickMetric(); - await PageObjects.visualize.clickNewSearch(); - await PageObjects.timePicker.setDefaultAbsoluteRange(); - - await testSubjects.click('visualizeSaveButton'); - - await PageObjects.visualize.ensureSavePanelOpen(); - const libraryCheckbox = await find.byCssSelector('#add-to-library-checkbox'); - expect(await libraryCheckbox.getAttribute('disabled')).to.equal('true'); - - await PageObjects.timeToVisualize.saveFromModal('My New Vis 1', { - addToDashboard: 'new', - }); - - await PageObjects.dashboard.waitForRenderComplete(); - await dashboardExpect.metricValuesExist(['14,005']); - const panelCount = await PageObjects.dashboard.getPanelCount(); - expect(panelCount).to.eql(1); - }); - }); - }); -} From 5f487292fbd3e45f4764199785c2b5ce0fa21df0 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Wed, 31 Mar 2021 08:50:40 -0600 Subject: [PATCH 011/106] [Maps] convert ToolbarOverlay to TS (#95368) * [Maps] convert ToolbarOverlay to TS * remove getDerivedStateFromProps * remove unused function Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../plugins/maps/public/actions/ui_actions.ts | 12 -- .../data_mapping/data_mapping_popover.tsx | 6 +- .../add_tooltip_field_popover.tsx | 6 +- .../map_container/map_container.tsx | 1 - .../toolbar_overlay.test.tsx.snap | 7 +- .../toolbar_overlay/index.js | 16 --- .../toolbar_overlay/index.ts | 8 ++ .../set_view_control/{index.js => index.ts} | 20 ++-- ...t_view_control.js => set_view_control.tsx} | 103 ++++++++++-------- .../toolbar_overlay/toolbar_overlay.js | 53 --------- .../toolbar_overlay/toolbar_overlay.test.tsx | 17 ++- .../toolbar_overlay/toolbar_overlay.tsx | 61 +++++++++++ x-pack/plugins/maps/public/reducers/ui.ts | 8 -- .../maps/public/selectors/ui_selectors.ts | 1 - 14 files changed, 162 insertions(+), 157 deletions(-) delete mode 100644 x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.js create mode 100644 x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.ts rename x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/{index.js => index.ts} (62%) rename x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/{set_view_control.js => set_view_control.tsx} (69%) delete mode 100644 x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js create mode 100644 x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.tsx diff --git a/x-pack/plugins/maps/public/actions/ui_actions.ts b/x-pack/plugins/maps/public/actions/ui_actions.ts index ef2c9ac807c1d..f9c0e324aa5d8 100644 --- a/x-pack/plugins/maps/public/actions/ui_actions.ts +++ b/x-pack/plugins/maps/public/actions/ui_actions.ts @@ -14,8 +14,6 @@ import { trackMapSettings } from './map_actions'; import { setSelectedLayer } from './layer_actions'; export const UPDATE_FLYOUT = 'UPDATE_FLYOUT'; -export const CLOSE_SET_VIEW = 'CLOSE_SET_VIEW'; -export const OPEN_SET_VIEW = 'OPEN_SET_VIEW'; export const SET_IS_LAYER_TOC_OPEN = 'SET_IS_LAYER_TOC_OPEN'; export const SET_FULL_SCREEN = 'SET_FULL_SCREEN'; export const SET_READ_ONLY = 'SET_READ_ONLY'; @@ -50,16 +48,6 @@ export function openMapSettings() { dispatch(updateFlyout(FLYOUT_STATE.MAP_SETTINGS_PANEL)); }; } -export function closeSetView() { - return { - type: CLOSE_SET_VIEW, - }; -} -export function openSetView() { - return { - type: OPEN_SET_VIEW, - }; -} export function setIsLayerTOCOpen(isLayerTOCOpen: boolean) { return { type: SET_IS_LAYER_TOC_OPEN, diff --git a/x-pack/plugins/maps/public/classes/styles/vector/components/data_mapping/data_mapping_popover.tsx b/x-pack/plugins/maps/public/classes/styles/vector/components/data_mapping/data_mapping_popover.tsx index 5c2e11813bb5f..47c2012d6ed8f 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/components/data_mapping/data_mapping_popover.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/components/data_mapping/data_mapping_popover.tsx @@ -25,9 +25,9 @@ export class DataMappingPopover extends Component { }; _togglePopover = () => { - this.setState({ - isPopoverOpen: !this.state.isPopoverOpen, - }); + this.setState((prevState) => ({ + isPopoverOpen: !prevState.isPopoverOpen, + })); }; _closePopover = () => { diff --git a/x-pack/plugins/maps/public/components/tooltip_selector/add_tooltip_field_popover.tsx b/x-pack/plugins/maps/public/components/tooltip_selector/add_tooltip_field_popover.tsx index 78739731e14b6..04ae7af62fddc 100644 --- a/x-pack/plugins/maps/public/components/tooltip_selector/add_tooltip_field_popover.tsx +++ b/x-pack/plugins/maps/public/components/tooltip_selector/add_tooltip_field_popover.tsx @@ -98,9 +98,9 @@ export class AddTooltipFieldPopover extends Component { } _togglePopover = () => { - this.setState({ - isPopoverOpen: !this.state.isPopoverOpen, - }); + this.setState((prevState) => ({ + isPopoverOpen: !prevState.isPopoverOpen, + })); }; _closePopover = () => { diff --git a/x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx b/x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx index 622aeae3cbb87..525ba394ed503 100644 --- a/x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx +++ b/x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx @@ -16,7 +16,6 @@ import { ActionExecutionContext, Action } from 'src/plugins/ui_actions/public'; import { MBMap } from '../mb_map'; // @ts-expect-error import { WidgetOverlay } from '../widget_overlay'; -// @ts-expect-error import { ToolbarOverlay } from '../toolbar_overlay'; // @ts-expect-error import { LayerPanel } from '../layer_panel'; diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/__snapshots__/toolbar_overlay.test.tsx.snap b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/__snapshots__/toolbar_overlay.test.tsx.snap index 3407bcfd4f845..506767fcd4706 100644 --- a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/__snapshots__/toolbar_overlay.test.tsx.snap +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/__snapshots__/toolbar_overlay.test.tsx.snap @@ -35,7 +35,12 @@ exports[`Must zoom tools and draw filter tools 1`] = ` diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.js deleted file mode 100644 index 6470718fc7e4a..0000000000000 --- a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.js +++ /dev/null @@ -1,16 +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 { connect } from 'react-redux'; -import { ToolbarOverlay } from './toolbar_overlay'; - -function mapStateToProps() { - return {}; -} - -const connectedToolbarOverlay = connect(mapStateToProps, null)(ToolbarOverlay); -export { connectedToolbarOverlay as ToolbarOverlay }; diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.ts b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.ts new file mode 100644 index 0000000000000..d1008edfd572d --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/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 { ToolbarOverlay } from './toolbar_overlay'; diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.ts similarity index 62% rename from x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.ts index 3220f84967f16..8f7a3cf762a6b 100644 --- a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.ts @@ -5,33 +5,27 @@ * 2.0. */ +import { AnyAction } from 'redux'; +import { ThunkDispatch } from 'redux-thunk'; import { connect } from 'react-redux'; import { SetViewControl } from './set_view_control'; -import { setGotoWithCenter, closeSetView, openSetView } from '../../../actions'; +import { setGotoWithCenter } from '../../../actions'; import { getMapZoom, getMapCenter, getMapSettings } from '../../../selectors/map_selectors'; -import { getIsSetViewOpen } from '../../../selectors/ui_selectors'; +import { MapStoreState } from '../../../reducers/store'; -function mapStateToProps(state = {}) { +function mapStateToProps(state: MapStoreState) { return { settings: getMapSettings(state), - isSetViewOpen: getIsSetViewOpen(state), zoom: getMapZoom(state), center: getMapCenter(state), }; } -function mapDispatchToProps(dispatch) { +function mapDispatchToProps(dispatch: ThunkDispatch) { return { - onSubmit: ({ lat, lon, zoom }) => { - dispatch(closeSetView()); + onSubmit: ({ lat, lon, zoom }: { lat: number; lon: number; zoom: number }) => { dispatch(setGotoWithCenter({ lat, lon, zoom })); }, - closeSetView: () => { - dispatch(closeSetView()); - }, - openSetView: () => { - dispatch(openSetView()); - }, }; } diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.tsx similarity index 69% rename from x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.tsx index 21818476d6965..b657d6369f8aa 100644 --- a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.tsx @@ -5,8 +5,7 @@ * 2.0. */ -import React, { Component } from 'react'; -import PropTypes from 'prop-types'; +import React, { ChangeEvent, Component } from 'react'; import { EuiForm, EuiFormRow, @@ -19,57 +18,86 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; - -function getViewString(lat, lon, zoom) { - return `${lat},${lon},${zoom}`; +import { MapCenter } from '../../../../common/descriptor_types'; +import { MapSettings } from '../../../reducers/map'; + +export interface Props { + settings: MapSettings; + zoom: number; + center: MapCenter; + onSubmit: ({ lat, lon, zoom }: { lat: number; lon: number; zoom: number }) => void; } -export class SetViewControl extends Component { - state = {}; - - static getDerivedStateFromProps(nextProps, prevState) { - const nextView = getViewString(nextProps.center.lat, nextProps.center.lon, nextProps.zoom); - if (nextView !== prevState.prevView) { - return { - lat: nextProps.center.lat, - lon: nextProps.center.lon, - zoom: nextProps.zoom, - prevView: nextView, - }; - } +interface State { + isPopoverOpen: boolean; + lat: number | string; + lon: number | string; + zoom: number | string; +} - return null; - } +export class SetViewControl extends Component { + state: State = { + isPopoverOpen: false, + lat: 0, + lon: 0, + zoom: 0, + }; _togglePopover = () => { - if (this.props.isSetViewOpen) { - this.props.closeSetView(); + if (this.state.isPopoverOpen) { + this._closePopover(); return; } - this.props.openSetView(); + this.setState({ + lat: this.props.center.lat, + lon: this.props.center.lon, + zoom: this.props.zoom, + isPopoverOpen: true, + }); + }; + + _closePopover = () => { + this.setState({ + isPopoverOpen: false, + }); }; - _onLatChange = (evt) => { + _onLatChange = (evt: ChangeEvent) => { this._onChange('lat', evt); }; - _onLonChange = (evt) => { + _onLonChange = (evt: ChangeEvent) => { this._onChange('lon', evt); }; - _onZoomChange = (evt) => { + _onZoomChange = (evt: ChangeEvent) => { this._onChange('zoom', evt); }; - _onChange = (name, evt) => { + _onChange = (name: 'lat' | 'lon' | 'zoom', evt: ChangeEvent) => { const sanitizedValue = parseFloat(evt.target.value); + // @ts-expect-error this.setState({ [name]: isNaN(sanitizedValue) ? '' : sanitizedValue, }); }; - _renderNumberFormRow = ({ value, min, max, onChange, label, dataTestSubj }) => { + _renderNumberFormRow = ({ + value, + min, + max, + onChange, + label, + dataTestSubj, + }: { + value: string | number; + min: number; + max: number; + onChange: (evt: ChangeEvent) => void; + label: string; + dataTestSubj: string; + }) => { const isInvalid = value === '' || value > max || value < min; const error = isInvalid ? `Must be between ${min} and ${max}` : null; return { @@ -90,7 +118,8 @@ export class SetViewControl extends Component { _onSubmit = () => { const { lat, lon, zoom } = this.state; - this.props.onSubmit({ lat, lon, zoom }); + this._closePopover(); + this.props.onSubmit({ lat: lat as number, lon: lon as number, zoom: zoom as number }); }; _renderSetViewForm() { @@ -175,23 +204,11 @@ export class SetViewControl extends Component { })} /> } - isOpen={this.props.isSetViewOpen} - closePopover={this.props.closeSetView} + isOpen={this.state.isPopoverOpen} + closePopover={this._closePopover} > {this._renderSetViewForm()} ); } } - -SetViewControl.propTypes = { - isSetViewOpen: PropTypes.bool.isRequired, - zoom: PropTypes.number.isRequired, - center: PropTypes.shape({ - lat: PropTypes.number.isRequired, - lon: PropTypes.number.isRequired, - }), - onSubmit: PropTypes.func.isRequired, - closeSetView: PropTypes.func.isRequired, - openSetView: PropTypes.func.isRequired, -}; diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js deleted file mode 100644 index ceca3f5b7fdc1..0000000000000 --- a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js +++ /dev/null @@ -1,53 +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 { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; -import { SetViewControl } from './set_view_control'; -import { ToolsControl } from './tools_control'; -import { FitToData } from './fit_to_data'; - -export class ToolbarOverlay extends React.Component { - _renderToolsControl() { - const { addFilters, geoFields, getFilterActions, getActionContext } = this.props; - if (!addFilters || !geoFields.length) { - return null; - } - - return ( - - - - ); - } - - render() { - return ( - - - - - - - - - - {this._renderToolsControl()} - - ); - } -} diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.test.tsx b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.test.tsx index a6d17819e2fea..d8ac971ae3983 100644 --- a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.test.tsx +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.test.tsx @@ -7,6 +7,7 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { Filter } from 'src/plugins/data/public'; jest.mock('../../kibana_services', () => { return { @@ -16,15 +17,25 @@ jest.mock('../../kibana_services', () => { }; }); -// @ts-ignore import { ToolbarOverlay } from './toolbar_overlay'; test('Must render zoom tools', async () => { - const component = shallow(); + const component = shallow(); expect(component).toMatchSnapshot(); }); test('Must zoom tools and draw filter tools', async () => { - const component = shallow( {}} geoFields={['coordinates']} />); + const geoFieldWithIndex = { + geoFieldName: 'myGeoFieldName', + geoFieldType: 'geo_point', + indexPatternTitle: 'myIndex', + indexPatternId: '1', + }; + const component = shallow( + {}} + geoFields={[geoFieldWithIndex]} + /> + ); expect(component).toMatchSnapshot(); }); diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.tsx b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.tsx new file mode 100644 index 0000000000000..c5208bc254fc8 --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.tsx @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { Filter } from 'src/plugins/data/public'; +import { ActionExecutionContext, Action } from 'src/plugins/ui_actions/public'; +import { SetViewControl } from './set_view_control'; +import { ToolsControl } from './tools_control'; +import { FitToData } from './fit_to_data'; +import { GeoFieldWithIndex } from '../../components/geo_field_with_index'; + +export interface Props { + addFilters?: ((filters: Filter[], actionId: string) => Promise) | null; + geoFields: GeoFieldWithIndex[]; + getFilterActions?: () => Promise; + getActionContext?: () => ActionExecutionContext; +} + +export function ToolbarOverlay(props: Props) { + function renderToolsControl() { + const { addFilters, geoFields, getFilterActions, getActionContext } = props; + if (!addFilters || !geoFields.length) { + return null; + } + + return ( + + + + ); + } + + return ( + + + + + + + + + + {renderToolsControl()} + + ); +} diff --git a/x-pack/plugins/maps/public/reducers/ui.ts b/x-pack/plugins/maps/public/reducers/ui.ts index 90dafa3afb67a..676ac6ce12efe 100644 --- a/x-pack/plugins/maps/public/reducers/ui.ts +++ b/x-pack/plugins/maps/public/reducers/ui.ts @@ -11,8 +11,6 @@ import { getMapsCapabilities } from '../kibana_services'; import { UPDATE_FLYOUT, - CLOSE_SET_VIEW, - OPEN_SET_VIEW, SET_IS_LAYER_TOC_OPEN, SET_FULL_SCREEN, SET_READ_ONLY, @@ -33,7 +31,6 @@ export type MapUiState = { isFullScreen: boolean; isReadOnly: boolean; isLayerTOCOpen: boolean; - isSetViewOpen: boolean; openTOCDetails: string[]; }; @@ -44,7 +41,6 @@ export const DEFAULT_MAP_UI_STATE = { isFullScreen: false, isReadOnly: !getMapsCapabilities().save, isLayerTOCOpen: DEFAULT_IS_LAYER_TOC_OPEN, - isSetViewOpen: false, // storing TOC detail visibility outside of map.layerList because its UI state and not map rendering state. // This also makes for easy read/write access for embeddables. openTOCDetails: [], @@ -55,10 +51,6 @@ export function ui(state: MapUiState = DEFAULT_MAP_UI_STATE, action: any) { switch (action.type) { case UPDATE_FLYOUT: return { ...state, flyoutDisplay: action.display }; - case CLOSE_SET_VIEW: - return { ...state, isSetViewOpen: false }; - case OPEN_SET_VIEW: - return { ...state, isSetViewOpen: true }; case SET_IS_LAYER_TOC_OPEN: return { ...state, isLayerTOCOpen: action.isLayerTOCOpen }; case SET_FULL_SCREEN: diff --git a/x-pack/plugins/maps/public/selectors/ui_selectors.ts b/x-pack/plugins/maps/public/selectors/ui_selectors.ts index dc34035c21b29..e5c83bd0f8f4a 100644 --- a/x-pack/plugins/maps/public/selectors/ui_selectors.ts +++ b/x-pack/plugins/maps/public/selectors/ui_selectors.ts @@ -10,7 +10,6 @@ import { MapStoreState } from '../reducers/store'; import { FLYOUT_STATE } from '../reducers/ui'; export const getFlyoutDisplay = ({ ui }: MapStoreState): FLYOUT_STATE => ui.flyoutDisplay; -export const getIsSetViewOpen = ({ ui }: MapStoreState): boolean => ui.isSetViewOpen; export const getIsLayerTOCOpen = ({ ui }: MapStoreState): boolean => ui.isLayerTOCOpen; export const getOpenTOCDetails = ({ ui }: MapStoreState): string[] => ui.openTOCDetails; export const getIsFullScreen = ({ ui }: MapStoreState): boolean => ui.isFullScreen; From 589f49f44222d691c3cc14ec96f45bd068794e7c Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Wed, 31 Mar 2021 10:04:34 -0500 Subject: [PATCH 012/106] Remove default support for TLS v1.0 and v1.1 (#90511) Co-authored-by: Tyler Smalley Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- docs/migration/migrate_8_0.asciidoc | 9 +++++++++ src/dev/build/tasks/bin/scripts/kibana | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/migration/migrate_8_0.asciidoc b/docs/migration/migrate_8_0.asciidoc index f5ebac1ebf02e..acb343191609d 100644 --- a/docs/migration/migrate_8_0.asciidoc +++ b/docs/migration/migrate_8_0.asciidoc @@ -320,6 +320,15 @@ All supported operating systems support using systemd service files. Any system *Impact:* Any installations using `.deb` or `.rpm` packages using SysV will need to migrate to systemd. +[float] +=== TLS v1.0 and v1.1 are disabled by default + +*Details:* +Support can be re-enabled by setting `--tls-min-1.0` in the `node.options` config file that can be found inside `kibana/config` folder or any other configured with the environment variable `KBN_PATH_CONF` (for example in Debian based system would be `/etc/kibana`). + +*Impact:* +Browser and proxy clients communicating over TLS v1.0 and v1.1. + [float] === Platform removed from root folder name for `.tar.gz` and `.zip` archives diff --git a/src/dev/build/tasks/bin/scripts/kibana b/src/dev/build/tasks/bin/scripts/kibana index 3c12c8bbf58d0..a4fc5385500b5 100755 --- a/src/dev/build/tasks/bin/scripts/kibana +++ b/src/dev/build/tasks/bin/scripts/kibana @@ -26,4 +26,4 @@ if [ -f "${CONFIG_DIR}/node.options" ]; then KBN_NODE_OPTS="$(grep -v ^# < ${CONFIG_DIR}/node.options | xargs)" fi -NODE_OPTIONS="--no-warnings --max-http-header-size=65536 --tls-min-v1.0 $KBN_NODE_OPTS $NODE_OPTIONS" NODE_ENV=production exec "${NODE}" "${DIR}/src/cli/dist" ${@} +NODE_OPTIONS="--no-warnings --max-http-header-size=65536 $KBN_NODE_OPTS $NODE_OPTIONS" NODE_ENV=production exec "${NODE}" "${DIR}/src/cli/dist" ${@} From 9e55b8b6c81683ebd4887b0895ea7ccaec261d88 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Wed, 31 Mar 2021 11:25:18 -0400 Subject: [PATCH 013/106] [Fleet] Create Fleet server indices with auto_expand_replicas (#95924) --- .../fleet/server/services/fleet_server/elastic_index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/x-pack/plugins/fleet/server/services/fleet_server/elastic_index.ts b/x-pack/plugins/fleet/server/services/fleet_server/elastic_index.ts index 95072d3ae2e2c..b0dce60085529 100644 --- a/x-pack/plugins/fleet/server/services/fleet_server/elastic_index.ts +++ b/x-pack/plugins/fleet/server/services/fleet_server/elastic_index.ts @@ -116,6 +116,11 @@ async function createIndex(esClient: ElasticsearchClient, indexName: string, ind index: indexName, body: { ...indexData, + settings: { + ...(indexData.settings || {}), + auto_expand_replicas: '0-1', + }, + mappings: Object.assign({ ...indexData.mappings, _meta: { ...(indexData.mappings._meta || {}), migrationHash }, From 178c2de5fd767ea6578d8031e01c2fa50c0cba39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ece=20=C3=96zalp?= Date: Wed, 31 Mar 2021 11:37:24 -0400 Subject: [PATCH 014/106] [Security Solution] Populates threat.indicator.event with _source.event (#951) (#95697) * [Security Solution] Add event data to threat.indicator (elastic/security_team/#951) * fixes mappings, updates tests * refactor mappings --- .../indicator_match_rule.spec.ts | 2 +- .../routes/index/get_signals_template.ts | 15 ++- .../enrich_signal_threat_matches.test.ts | 62 +++++++++- .../enrich_signal_threat_matches.ts | 2 + .../tests/create_threat_matching.ts | 110 ++++++++++++++++++ 5 files changed, 186 insertions(+), 5 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 e1e78f8e310e1..129d592edd264 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 @@ -502,7 +502,7 @@ describe('indicator match', () => { { line: 3, text: - ' "indicator": "{\\"first_seen\\":\\"2021-03-10T08:02:14.000Z\\",\\"file\\":{\\"size\\":80280,\\"pe\\":{},\\"type\\":\\"elf\\",\\"hash\\":{\\"sha256\\":\\"a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3\\",\\"tlsh\\":\\"6D7312E017B517CC1371A8353BED205E9128223972AE35302E97528DF957703BAB2DBE\\",\\"ssdeep\\":\\"1536:87vbq1lGAXSEYQjbChaAU2yU23M51DjZgSQAvcYkFtZTjzBht5:8D+CAXFYQChaAUk5ljnQssL\\",\\"md5\\":\\"9b6c3518a91d23ed77504b5416bfb5b3\\"}},\\"type\\":\\"file\\",\\"matched\\":{\\"atomic\\":\\"a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3\\",\\"field\\":\\"myhash.mysha256\\",\\"id\\":\\"84cf452c1e0375c3d4412cb550bd1783358468a3b3b777da4829d72c7d6fb74f\\",\\"index\\":\\"filebeat-7.12.0-2021.03.10-000001\\",\\"type\\":\\"file\\"}}"', + ' "indicator": "{\\"first_seen\\":\\"2021-03-10T08:02:14.000Z\\",\\"file\\":{\\"size\\":80280,\\"pe\\":{},\\"type\\":\\"elf\\",\\"hash\\":{\\"sha256\\":\\"a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3\\",\\"tlsh\\":\\"6D7312E017B517CC1371A8353BED205E9128223972AE35302E97528DF957703BAB2DBE\\",\\"ssdeep\\":\\"1536:87vbq1lGAXSEYQjbChaAU2yU23M51DjZgSQAvcYkFtZTjzBht5:8D+CAXFYQChaAUk5ljnQssL\\",\\"md5\\":\\"9b6c3518a91d23ed77504b5416bfb5b3\\"}},\\"type\\":\\"file\\",\\"event\\":{\\"reference\\":\\"https://urlhaus-api.abuse.ch/v1/download/a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3/\\",\\"ingested\\":\\"2021-03-10T14:51:09.809069Z\\",\\"created\\":\\"2021-03-10T14:51:07.663Z\\",\\"kind\\":\\"enrichment\\",\\"module\\":\\"threatintel\\",\\"category\\":\\"threat\\",\\"type\\":\\"indicator\\",\\"dataset\\":\\"threatintel.abusemalware\\"},\\"matched\\":{\\"atomic\\":\\"a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3\\",\\"field\\":\\"myhash.mysha256\\",\\"id\\":\\"84cf452c1e0375c3d4412cb550bd1783358468a3b3b777da4829d72c7d6fb74f\\",\\"index\\":\\"filebeat-7.12.0-2021.03.10-000001\\",\\"type\\":\\"file\\"}}"', }, { line: 2, text: ' }' }, ]; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts index c6f432a28aee4..326d5777543be 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/index/get_signals_template.ts @@ -21,7 +21,7 @@ import ecsMapping from './ecs_mapping.json'; incremented by 10 in order to add "room" for the aforementioned patch release */ -export const SIGNALS_TEMPLATE_VERSION = 25; +export const SIGNALS_TEMPLATE_VERSION = 26; export const MIN_EQL_RULE_INDEX_VERSION = 2; export const getSignalsTemplate = (index: string) => { @@ -45,6 +45,19 @@ export const getSignalsTemplate = (index: string) => { properties: { ...ecsMapping.mappings.properties, signal: signalsMapping.mappings.properties.signal, + threat: { + ...ecsMapping.mappings.properties.threat, + properties: { + ...ecsMapping.mappings.properties.threat.properties, + indicator: { + ...ecsMapping.mappings.properties.threat.properties.indicator, + properties: { + ...ecsMapping.mappings.properties.threat.properties.indicator.properties, + event: ecsMapping.mappings.properties.event, + }, + }, + }, + }, }, _meta: { version: SIGNALS_TEMPLATE_VERSION, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.test.ts index 7b3ca099cc93c..7c80572f6b1ee 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.test.ts @@ -83,6 +83,7 @@ describe('buildMatchedIndicator', () => { getThreatListItemMock({ _id: '123', _source: { + event: { dataset: 'abuse.ch', reference: 'https://test.com' }, threat: { indicator: { domain: 'domain_1', other: 'other_1', type: 'type_1' } }, }, }), @@ -117,6 +118,16 @@ describe('buildMatchedIndicator', () => { expect(get(indicator, 'matched.atomic')).toEqual('domain_1'); }); + it('returns event values as a part of threat', () => { + const [indicator] = buildMatchedIndicator({ + queries, + threats, + indicatorPath, + }); + const expectedEvent = threats[0]._source!.event; + expect(get(indicator, 'event')).toEqual(expectedEvent); + }); + it('returns the _id of the matched indicator as matched.id', () => { const [indicator] = buildMatchedIndicator({ queries, @@ -162,12 +173,16 @@ describe('buildMatchedIndicator', () => { getThreatListItemMock({ _id: '123', _source: { - threat: { indicator: { domain: 'domain_1', other: 'other_1', type: 'type_1' } }, + event: { reference: 'https://test.com' }, + threat: { + indicator: { domain: 'domain_1', other: 'other_1', type: 'type_1' }, + }, }, }), getThreatListItemMock({ _id: '456', _source: { + event: { reference: 'https://test2.com' }, threat: { indicator: { domain: 'domain_1', other: 'other_1', type: 'type_1' } }, }, }), @@ -205,6 +220,10 @@ describe('buildMatchedIndicator', () => { }, other: 'other_1', type: 'type_1', + event: { + reference: 'https://test.com', + dataset: 'abuse.ch', + }, }, ]); }); @@ -214,6 +233,9 @@ describe('buildMatchedIndicator', () => { getThreatListItemMock({ _id: '123', _source: { + event: { + reference: 'https://test3.com', + }, 'threat.indicator.domain': 'domain_1', custom: { indicator: { @@ -244,6 +266,9 @@ describe('buildMatchedIndicator', () => { type: 'indicator_type', }, type: 'indicator_type', + event: { + reference: 'https://test3.com', + }, }, ]); }); @@ -307,6 +332,9 @@ describe('buildMatchedIndicator', () => { getThreatListItemMock({ _id: '123', _source: { + event: { + reference: 'https://test4.com', + }, threat: { indicator: [ { domain: 'foo', type: 'first' }, @@ -334,6 +362,9 @@ describe('buildMatchedIndicator', () => { type: 'first', }, type: 'first', + event: { + reference: 'https://test4.com', + }, }, ]); }); @@ -392,6 +423,9 @@ describe('enrichSignalThreatMatches', () => { getThreatListItemMock({ _id: '123', _source: { + event: { + category: 'malware', + }, threat: { indicator: { domain: 'domain_1', other: 'other_1', type: 'type_1' } }, }, }), @@ -419,7 +453,11 @@ describe('enrichSignalThreatMatches', () => { it('preserves existing threat.indicator objects on signals', async () => { const signalHit = getSignalHitMock({ - _source: { '@timestamp': 'mocked', threat: { indicator: [{ existing: 'indicator' }] } }, + _source: { + '@timestamp': 'mocked', + event: { category: 'malware' }, + threat: { indicator: [{ existing: 'indicator' }] }, + }, matched_queries: [matchedQuery], }); const signals = getSignalsResponseMock([signalHit]); @@ -444,6 +482,9 @@ describe('enrichSignalThreatMatches', () => { }, other: 'other_1', type: 'type_1', + event: { + category: 'malware', + }, }, ]); }); @@ -477,7 +518,11 @@ describe('enrichSignalThreatMatches', () => { it('preserves an existing threat.indicator object on signals', async () => { const signalHit = getSignalHitMock({ - _source: { '@timestamp': 'mocked', threat: { indicator: { existing: 'indicator' } } }, + _source: { + '@timestamp': 'mocked', + event: { category: 'virus' }, + threat: { indicator: { existing: 'indicator' } }, + }, matched_queries: [matchedQuery], }); const signals = getSignalsResponseMock([signalHit]); @@ -502,6 +547,9 @@ describe('enrichSignalThreatMatches', () => { }, other: 'other_1', type: 'type_1', + event: { + category: 'malware', + }, }, ]); }); @@ -573,12 +621,14 @@ describe('enrichSignalThreatMatches', () => { getThreatListItemMock({ _id: '123', _source: { + event: { category: 'threat' }, threat: { indicator: { domain: 'domain_1', other: 'other_1', type: 'type_1' } }, }, }), getThreatListItemMock({ _id: '456', _source: { + event: { category: 'bad' }, threat: { indicator: { domain: 'domain_2', other: 'other_2', type: 'type_2' } }, }, }), @@ -622,6 +672,9 @@ describe('enrichSignalThreatMatches', () => { field: 'event.field', type: 'type_1', }, + event: { + category: 'threat', + }, other: 'other_1', type: 'type_1', }, @@ -634,6 +687,9 @@ describe('enrichSignalThreatMatches', () => { field: 'event.other', type: 'type_2', }, + event: { + category: 'bad', + }, other: 'other_2', type: 'type_2', }, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.ts index 83a3ce8cb773f..c26f03d1dd480 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/enrich_signal_threat_matches.ts @@ -57,9 +57,11 @@ export const buildMatchedIndicator = ({ } const atomic = get(matchedThreat?._source, query.value) as unknown; const type = get(indicator, 'type') as unknown; + const event = get(matchedThreat?._source, 'event') as unknown; return { ...indicator, + event, matched: { atomic, field: query.field, id: query.id, index: query.index, type }, }; }); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_threat_matching.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_threat_matching.ts index a7925fa756693..f0b173d2d4c48 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_threat_matching.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_threat_matching.ts @@ -317,6 +317,16 @@ export default ({ getService }: FtrProviderContext) => { { description: "domain should match the auditbeat hosts' data's source.ip", domain: '159.89.119.67', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.595350Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978783/', + type: 'indicator', + }, first_seen: '2021-01-26T11:09:04.000Z', matched: { atomic: '159.89.119.67', @@ -339,6 +349,16 @@ export default ({ getService }: FtrProviderContext) => { { description: "domain should match the auditbeat hosts' data's source.ip", domain: '159.89.119.67', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.595350Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978783/', + type: 'indicator', + }, first_seen: '2021-01-26T11:09:04.000Z', matched: { atomic: '159.89.119.67', @@ -412,6 +432,16 @@ export default ({ getService }: FtrProviderContext) => { port: 57324, provider: 'geenensp', type: 'url', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.616763Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978782/', + type: 'indicator', + }, }, { description: 'this should match auditbeat/hosts on ip', @@ -426,6 +456,16 @@ export default ({ getService }: FtrProviderContext) => { }, provider: 'other_provider', type: 'ip', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.616763Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978782/', + type: 'indicator', + }, }, ]); }); @@ -492,6 +532,16 @@ export default ({ getService }: FtrProviderContext) => { port: 57324, provider: 'geenensp', type: 'url', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.616763Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978782/', + type: 'indicator', + }, }, // We do not merge matched indicators during enrichment, so in // certain circumstances a given indicator document could appear @@ -512,6 +562,16 @@ export default ({ getService }: FtrProviderContext) => { port: 57324, provider: 'geenensp', type: 'url', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.616763Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978782/', + type: 'indicator', + }, }, { description: 'this should match auditbeat/hosts on ip', @@ -526,6 +586,16 @@ export default ({ getService }: FtrProviderContext) => { }, provider: 'other_provider', type: 'ip', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.616763Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978782/', + type: 'indicator', + }, }, ]); }); @@ -600,6 +670,16 @@ export default ({ getService }: FtrProviderContext) => { full: 'http://159.89.119.67:59600/bin.sh', scheme: 'http', }, + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.595350Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978783/', + type: 'indicator', + }, }, ]); @@ -621,6 +701,16 @@ export default ({ getService }: FtrProviderContext) => { full: 'http://159.89.119.67:59600/bin.sh', scheme: 'http', }, + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.595350Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978783/', + type: 'indicator', + }, }, { description: 'this should match auditbeat/hosts on both port and ip', @@ -636,6 +726,16 @@ export default ({ getService }: FtrProviderContext) => { port: 57324, provider: 'geenensp', type: 'url', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.616763Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978782/', + type: 'indicator', + }, }, { description: 'this should match auditbeat/hosts on both port and ip', @@ -651,6 +751,16 @@ export default ({ getService }: FtrProviderContext) => { port: 57324, provider: 'geenensp', type: 'url', + event: { + category: 'threat', + created: '2021-01-26T11:09:05.529Z', + dataset: 'threatintel.abuseurl', + ingested: '2021-01-26T11:09:06.616763Z', + kind: 'enrichment', + module: 'threatintel', + reference: 'https://urlhaus.abuse.ch/url/978782/', + type: 'indicator', + }, }, ]); }); From 4c0d09acdc82ac84c804ed15184479959c0f4282 Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Wed, 31 Mar 2021 19:52:05 +0200 Subject: [PATCH 015/106] Move more Kibana packages to UI shared deps (#95894) * move @kbn/std to kbn-ui-shared-deps * add @elastic/safer-lodash-set to kbn-ui-shared-deps * update limits * Revert "update limits" This reverts commit f396d4764d38f26d5dc1bb9060aab708a53df53d. * decrase limits for Core team owned code --- packages/kbn-optimizer/limits.yml | 16 ++++++++-------- packages/kbn-ui-shared-deps/entry.js | 2 ++ packages/kbn-ui-shared-deps/index.js | 2 ++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index f93849e011d41..056971aa5e984 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -9,7 +9,7 @@ pageLoadAssetSize: charts: 195358 cloud: 21076 console: 46091 - core: 692106 + core: 397521 crossClusterReplication: 65408 dashboard: 374194 dashboardEnhanced: 65646 @@ -24,13 +24,13 @@ pageLoadAssetSize: enterpriseSearch: 35741 esUiShared: 326654 expressions: 224136 - features: 31211 - globalSearch: 43548 - globalSearchBar: 62888 + features: 21723 + globalSearch: 29696 + globalSearchBar: 50403 globalSearchProviders: 25554 graph: 31504 grokdebugger: 26779 - home: 41661 + home: 30182 indexLifecycleManagement: 107090 indexManagement: 140608 indexPatternManagement: 28222 @@ -45,7 +45,7 @@ pageLoadAssetSize: kibanaUtils: 198829 lens: 96624 licenseManagement: 41817 - licensing: 39008 + licensing: 29004 lists: 202261 logstash: 53548 management: 46112 @@ -73,8 +73,8 @@ pageLoadAssetSize: share: 99061 snapshotRestore: 79032 spaces: 387915 - telemetry: 91832 - telemetryManagementSection: 52443 + telemetry: 51957 + telemetryManagementSection: 38586 tileMap: 65337 timelion: 29920 transform: 41007 diff --git a/packages/kbn-ui-shared-deps/entry.js b/packages/kbn-ui-shared-deps/entry.js index ede617908fd3d..f14c793d22a09 100644 --- a/packages/kbn-ui-shared-deps/entry.js +++ b/packages/kbn-ui-shared-deps/entry.js @@ -47,3 +47,5 @@ export const LodashFp = require('lodash/fp'); // runtime deps which don't need to be copied across all bundles export const TsLib = require('tslib'); export const KbnAnalytics = require('@kbn/analytics'); +export const KbnStd = require('@kbn/std'); +export const SaferLodashSet = require('@elastic/safer-lodash-set'); diff --git a/packages/kbn-ui-shared-deps/index.js b/packages/kbn-ui-shared-deps/index.js index d1217dd8db0d4..0542bc89ff9e4 100644 --- a/packages/kbn-ui-shared-deps/index.js +++ b/packages/kbn-ui-shared-deps/index.js @@ -58,5 +58,7 @@ exports.externals = { */ tslib: '__kbnSharedDeps__.TsLib', '@kbn/analytics': '__kbnSharedDeps__.KbnAnalytics', + '@kbn/std': '__kbnSharedDeps__.KbnStd', + '@elastic/safer-lodash-set': '__kbnSharedDeps__.SaferLodashSet', }; exports.publicPathLoader = require.resolve('./public_path_loader'); From 524ce98805b463104beadd1bc551f6acd8cd9044 Mon Sep 17 00:00:00 2001 From: Aleksandr Maus Date: Wed, 31 Mar 2021 14:04:41 -0400 Subject: [PATCH 016/106] Add user to .fleet-actions mapping (#95935) * Add user to .fleet-actions mapping * Leave only user.id, remove the rest of added fields * Flatten to user_id --- .../services/fleet_server/elasticsearch/fleet_actions.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_actions.json b/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_actions.json index 3008ee74ab50c..94ad02c6d5f18 100644 --- a/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_actions.json +++ b/x-pack/plugins/fleet/server/services/fleet_server/elasticsearch/fleet_actions.json @@ -24,6 +24,9 @@ }, "type": { "type": "keyword" + }, + "user_id" : { + "type": "keyword" } } } From d2e2209cf22b860c1ebf81eef57d85b114b09dbb Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Wed, 31 Mar 2021 14:43:24 -0400 Subject: [PATCH 017/106] [Maps] Make bundle smaller (#95881) --- packages/kbn-optimizer/limits.yml | 2 +- .../VisitorBreakdownMap/EmbeddedMap.tsx | 2 +- .../VisitorBreakdownMap/MapToolTip.tsx | 2 +- .../classes/tooltips/tooltip_property.ts | 2 +- .../embeddable/map_embeddable_factory.ts | 1 - x-pack/plugins/maps/public/index.ts | 4 +- x-pack/plugins/maps/public/kibana_services.ts | 29 +++++++++++---- .../public/lazy_load_bundle/lazy/index.ts | 1 + .../maps/public/maps_vis_type_alias.ts | 6 +-- x-pack/plugins/maps/public/plugin.ts | 37 +++++++++---------- x-pack/plugins/maps/public/url_generator.ts | 8 ++-- .../embeddables/embedded_map_helpers.tsx | 10 ++--- .../network/components/embeddables/types.ts | 3 +- .../location_map/embeddables/embedded_map.tsx | 2 +- .../location_map/embeddables/map_tool_tip.tsx | 3 +- 15 files changed, 60 insertions(+), 52 deletions(-) diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index 056971aa5e984..c9c37108acef4 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -49,7 +49,7 @@ pageLoadAssetSize: lists: 202261 logstash: 53548 management: 46112 - maps: 183610 + maps: 80000 mapsLegacy: 87859 mapsLegacyLicensing: 20214 ml: 82187 diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx index ef67501ec761b..1e368b2eb5368 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/EmbeddedMap.tsx @@ -24,7 +24,7 @@ import { import { useLayerList } from './useLayerList'; import { useUrlParams } from '../../../../context/url_params_context/use_url_params'; import { useApmPluginContext } from '../../../../context/apm_plugin/use_apm_plugin_context'; -import { RenderTooltipContentParams } from '../../../../../../maps/public'; +import type { RenderTooltipContentParams } from '../../../../../../maps/public'; import { MapToolTip } from './MapToolTip'; import { useMapFilters } from './useMapFilters'; import { EmbeddableStart } from '../../../../../../../../src/plugins/embeddable/public'; diff --git a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/MapToolTip.tsx b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/MapToolTip.tsx index 7e6c8ddd493bf..7501d5bfaa2c5 100644 --- a/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/MapToolTip.tsx +++ b/x-pack/plugins/apm/public/components/app/RumDashboard/VisitorBreakdownMap/MapToolTip.tsx @@ -20,7 +20,7 @@ import { TRANSACTION_DURATION_COUNTRY, TRANSACTION_DURATION_REGION, } from './useLayerList'; -import { RenderTooltipContentParams } from '../../../../../../maps/public'; +import type { RenderTooltipContentParams } from '../../../../../../maps/public'; import { I18LABELS } from '../translations'; type MapToolTipProps = Partial; diff --git a/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts b/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts index 5f81a74ab03ce..a8bc5b9a821f0 100644 --- a/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts +++ b/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts @@ -7,7 +7,7 @@ import _ from 'lodash'; import { Filter } from '../../../../../../src/plugins/data/public'; -import { TooltipFeature } from '../../../../../plugins/maps/common/descriptor_types'; +import type { TooltipFeature } from '../../../../../plugins/maps/common/descriptor_types'; export interface ITooltipProperty { getPropertyKey(): string; diff --git a/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts b/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts index b1944f8136709..a4ce76b702d13 100644 --- a/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts +++ b/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts @@ -11,7 +11,6 @@ import { EmbeddableFactoryDefinition, IContainer, } from '../../../../../src/plugins/embeddable/public'; -import '../index.scss'; import { MAP_SAVED_OBJECT_TYPE, APP_ICON } from '../../common/constants'; import { getMapEmbeddableDisplayName } from '../../common/i18n_getters'; import { MapByReferenceInput, MapEmbeddableInput, MapByValueInput } from './types'; diff --git a/x-pack/plugins/maps/public/index.ts b/x-pack/plugins/maps/public/index.ts index 3e6cd8d14ad37..dc9cb2d594fe3 100644 --- a/x-pack/plugins/maps/public/index.ts +++ b/x-pack/plugins/maps/public/index.ts @@ -19,6 +19,8 @@ export const plugin: PluginInitializer = ( export { MAP_SAVED_OBJECT_TYPE } from '../common/constants'; -export { RenderTooltipContentParams } from './classes/tooltips/tooltip_property'; +export type { RenderTooltipContentParams } from './classes/tooltips/tooltip_property'; export { MapsStartApi } from './api'; + +export type { MapEmbeddable, MapEmbeddableInput } from './embeddable'; diff --git a/x-pack/plugins/maps/public/kibana_services.ts b/x-pack/plugins/maps/public/kibana_services.ts index 6fd14d8d42e18..e4b9397fab8e7 100644 --- a/x-pack/plugins/maps/public/kibana_services.ts +++ b/x-pack/plugins/maps/public/kibana_services.ts @@ -5,13 +5,12 @@ * 2.0. */ -import _ from 'lodash'; -import { CoreStart } from 'kibana/public'; +import type { CoreStart } from 'kibana/public'; import type { MapsEmsConfig } from '../../../../src/plugins/maps_ems/public'; -import { MapsConfigType } from '../config'; -import { MapsPluginStartDependencies } from './plugin'; -import { EMSSettings } from '../common/ems_settings'; -import { PaletteRegistry } from '../../../../src/plugins/charts/public'; +import type { MapsConfigType } from '../config'; +import type { MapsPluginStartDependencies } from './plugin'; +import type { EMSSettings } from '../common/ems_settings'; +import type { PaletteRegistry } from '../../../../src/plugins/charts/public'; let kibanaVersion: string; export const setKibanaVersion = (version: string) => (kibanaVersion = version); @@ -75,8 +74,22 @@ export const getEMSSettings = () => { export const getEmsTileLayerId = () => getKibanaCommonConfig().emsTileLayerId; -export const getRegionmapLayers = () => _.get(getKibanaCommonConfig(), 'regionmap.layers', []); -export const getTilemap = () => _.get(getKibanaCommonConfig(), 'tilemap', []); +export const getRegionmapLayers = () => { + const config = getKibanaCommonConfig(); + if (config.regionmap && config.regionmap.layers) { + return config.regionmap.layers; + } else { + return []; + } +}; +export const getTilemap = () => { + const config = getKibanaCommonConfig(); + if (config.tilemap) { + return config.tilemap; + } else { + return {}; + } +}; export const getShareService = () => pluginsStart.share; diff --git a/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts b/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts index 0d908356b714d..85b58da0ab09a 100644 --- a/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts +++ b/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts @@ -5,6 +5,7 @@ * 2.0. */ +import '../../index.scss'; export * from '../../embeddable/map_embeddable'; export * from '../../kibana_services'; export { renderApp } from '../../render_app'; diff --git a/x-pack/plugins/maps/public/maps_vis_type_alias.ts b/x-pack/plugins/maps/public/maps_vis_type_alias.ts index a3a8b55745d84..194b4595c0c93 100644 --- a/x-pack/plugins/maps/public/maps_vis_type_alias.ts +++ b/x-pack/plugins/maps/public/maps_vis_type_alias.ts @@ -6,12 +6,12 @@ */ import { i18n } from '@kbn/i18n'; -import { +import type { VisualizationsSetup, VisualizationStage, } from '../../../../src/plugins/visualizations/public'; -import { SavedObject } from '../../../../src/core/types/saved_objects'; -import { MapSavedObject } from '../common/map_saved_object_type'; +import type { SavedObject } from '../../../../src/core/types/saved_objects'; +import type { MapSavedObject } from '../common/map_saved_object_type'; import { APP_ID, APP_ICON, diff --git a/x-pack/plugins/maps/public/plugin.ts b/x-pack/plugins/maps/public/plugin.ts index be2e097c71dc5..7ddab6bf509ff 100644 --- a/x-pack/plugins/maps/public/plugin.ts +++ b/x-pack/plugins/maps/public/plugin.ts @@ -5,19 +5,19 @@ * 2.0. */ -import { Setup as InspectorSetupContract } from 'src/plugins/inspector/public'; -import { UiActionsStart } from 'src/plugins/ui_actions/public'; -import { NavigationPublicPluginStart } from 'src/plugins/navigation/public'; -import { Start as InspectorStartContract } from 'src/plugins/inspector/public'; -import { DashboardStart } from 'src/plugins/dashboard/public'; -import { +import type { Setup as InspectorSetupContract } from 'src/plugins/inspector/public'; +import type { UiActionsStart } from 'src/plugins/ui_actions/public'; +import type { NavigationPublicPluginStart } from 'src/plugins/navigation/public'; +import type { Start as InspectorStartContract } from 'src/plugins/inspector/public'; +import type { DashboardStart } from 'src/plugins/dashboard/public'; +import type { AppMountParameters, CoreSetup, CoreStart, Plugin, PluginInitializerContext, - DEFAULT_APP_CATEGORIES, } from '../../../../src/core/public'; +import { DEFAULT_APP_CATEGORIES } from '../../../../src/core/public'; // @ts-ignore import { MapView } from './inspector/views/map_view'; import { @@ -29,8 +29,8 @@ import { } from './kibana_services'; import { featureCatalogueEntry } from './feature_catalogue_entry'; import { getMapsVisTypeAlias } from './maps_vis_type_alias'; -import { HomePublicPluginSetup } from '../../../../src/plugins/home/public'; -import { +import type { HomePublicPluginSetup } from '../../../../src/plugins/home/public'; +import type { VisualizationsSetup, VisualizationsStart, } from '../../../../src/plugins/visualizations/public'; @@ -43,28 +43,27 @@ import { } from './url_generator'; import { visualizeGeoFieldAction } from './trigger_actions/visualize_geo_field_action'; import { MapEmbeddableFactory } from './embeddable/map_embeddable_factory'; -import { EmbeddableSetup } from '../../../../src/plugins/embeddable/public'; +import type { EmbeddableSetup, EmbeddableStart } from '../../../../src/plugins/embeddable/public'; import { MapsXPackConfig, MapsConfigType } from '../config'; import { getAppTitle } from '../common/i18n_getters'; import { lazyLoadMapModules } from './lazy_load_bundle'; import { MapsStartApi } from './api'; import { createLayerDescriptors, registerLayerWizard, registerSource } from './api'; -import { SharePluginSetup, SharePluginStart } from '../../../../src/plugins/share/public'; -import { EmbeddableStart } from '../../../../src/plugins/embeddable/public'; +import type { SharePluginSetup, SharePluginStart } from '../../../../src/plugins/share/public'; import type { MapsEmsPluginSetup } from '../../../../src/plugins/maps_ems/public'; -import { DataPublicPluginStart } from '../../../../src/plugins/data/public'; -import { LicensingPluginSetup, LicensingPluginStart } from '../../licensing/public'; -import { FileUploadPluginStart } from '../../file_upload/public'; -import { SavedObjectsStart } from '../../../../src/plugins/saved_objects/public'; -import { PresentationUtilPluginStart } from '../../../../src/plugins/presentation_util/public'; +import type { DataPublicPluginStart } from '../../../../src/plugins/data/public'; +import type { LicensingPluginSetup, LicensingPluginStart } from '../../licensing/public'; +import type { FileUploadPluginStart } from '../../file_upload/public'; +import type { SavedObjectsStart } from '../../../../src/plugins/saved_objects/public'; +import type { PresentationUtilPluginStart } from '../../../../src/plugins/presentation_util/public'; import { getIsEnterprisePlus, registerLicensedFeatures, setLicensingPluginStart, } from './licensed_features'; import { EMSSettings } from '../common/ems_settings'; -import { SavedObjectTaggingPluginStart } from '../../saved_objects_tagging/public'; -import { ChartsPluginStart } from '../../../../src/plugins/charts/public'; +import type { SavedObjectTaggingPluginStart } from '../../saved_objects_tagging/public'; +import type { ChartsPluginStart } from '../../../../src/plugins/charts/public'; export interface MapsPluginSetupDependencies { inspector: InspectorSetupContract; diff --git a/x-pack/plugins/maps/public/url_generator.ts b/x-pack/plugins/maps/public/url_generator.ts index c82af369fe113..9f28b388c4756 100644 --- a/x-pack/plugins/maps/public/url_generator.ts +++ b/x-pack/plugins/maps/public/url_generator.ts @@ -6,17 +6,17 @@ */ import rison from 'rison-node'; -import { +import type { TimeRange, Filter, Query, - esFilters, QueryState, RefreshInterval, } from '../../../../src/plugins/data/public'; +import { esFilters } from '../../../../src/plugins/data/public'; import { setStateToKbnUrl } from '../../../../src/plugins/kibana_utils/public'; -import { UrlGeneratorsDefinition } from '../../../../src/plugins/share/public'; -import { LayerDescriptor } from '../common/descriptor_types'; +import type { UrlGeneratorsDefinition } from '../../../../src/plugins/share/public'; +import type { LayerDescriptor } from '../common/descriptor_types'; import { INITIAL_LAYERS_KEY } from '../common/constants'; import { lazyLoadMapModules } from './lazy_load_bundle'; 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 eceea1de4edc0..297746fd23632 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 @@ -12,15 +12,11 @@ import minimatch from 'minimatch'; import { IndexPatternMapping } from './types'; import { getLayerList } from './map_config'; import { MAP_SAVED_OBJECT_TYPE } from '../../../../../maps/public'; -import { +import type { + RenderTooltipContentParams, MapEmbeddable, MapEmbeddableInput, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../plugins/maps/public/embeddable'; -import { - RenderTooltipContentParams, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../plugins/maps/public/classes/tooltips/tooltip_property'; +} from '../../../../../../plugins/maps/public'; import * as i18n from './translations'; import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/types.ts b/x-pack/plugins/security_solution/public/network/components/embeddables/types.ts index 7d9c66261924b..6317cad7f8d98 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/types.ts +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/types.ts @@ -5,8 +5,7 @@ * 2.0. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { RenderTooltipContentParams } from '../../../../../maps/public/classes/tooltips/tooltip_property'; +import type { RenderTooltipContentParams } from '../../../../../maps/public'; export interface IndexPatternMapping { title: string; diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/embedded_map.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/embedded_map.tsx index f2da38091e37f..6706a435c7b6b 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/embedded_map.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/embedded_map.tsx @@ -26,7 +26,7 @@ import { import { MAP_SAVED_OBJECT_TYPE } from '../../../../../../../maps/public'; import { MapToolTipComponent } from './map_tool_tip'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { RenderTooltipContentParams } from '../../../../../../../maps/public/classes/tooltips/tooltip_property'; +import type { RenderTooltipContentParams } from '../../../../../../../maps/public/classes/tooltips/tooltip_property'; export interface EmbeddedMapProps { upPoints: LocationPoint[]; diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/map_tool_tip.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/map_tool_tip.tsx index f2d1227fe870e..c03ed94f8c544 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/map_tool_tip.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/location_map/embeddables/map_tool_tip.tsx @@ -22,8 +22,7 @@ import { AppState } from '../../../../../state'; import { monitorLocationsSelector } from '../../../../../state/selectors'; import { useMonitorId } from '../../../../../hooks'; import { MonitorLocation } from '../../../../../../common/runtime_types/monitor'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { RenderTooltipContentParams } from '../../../../../../../maps/public/classes/tooltips/tooltip_property'; +import type { RenderTooltipContentParams } from '../../../../../../../maps/public'; import { formatAvailabilityValue } from '../../availability_reporting/availability_reporting'; import { LastCheckLabel } from '../../translations'; From f7caf44876d3ff604fe7270cdbad82211c3816b4 Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper Date: Wed, 31 Mar 2021 14:10:46 -0500 Subject: [PATCH 018/106] [Fleet] Match telemetry key names to UI agent states (#95567) --- .../server/collectors/agent_collectors.ts | 28 ++- .../fleet/server/collectors/register.ts | 34 ++- .../fleet/server/services/agents/status.ts | 12 +- .../schema/xpack_plugins.json | 212 +++++++++++------- .../apis/agents/status.ts | 1 + 5 files changed, 186 insertions(+), 101 deletions(-) diff --git a/x-pack/plugins/fleet/server/collectors/agent_collectors.ts b/x-pack/plugins/fleet/server/collectors/agent_collectors.ts index de16f6555d4bd..0eb392e784334 100644 --- a/x-pack/plugins/fleet/server/collectors/agent_collectors.ts +++ b/x-pack/plugins/fleet/server/collectors/agent_collectors.ts @@ -13,10 +13,11 @@ import * as AgentService from '../services/agents'; import { isFleetServerSetup } from '../services/fleet_server'; export interface AgentUsage { - total: number; - online: number; - error: number; + total_enrolled: number; + healthy: number; + unhealthy: number; offline: number; + total_all_statuses: number; } export const getAgentUsage = async ( @@ -27,21 +28,26 @@ export const getAgentUsage = async ( // TODO: unsure if this case is possible at all. if (!soClient || !esClient || !(await isFleetServerSetup())) { return { - total: 0, - online: 0, - error: 0, + total_enrolled: 0, + healthy: 0, + unhealthy: 0, offline: 0, + total_all_statuses: 0, }; } - const { total, online, error, offline } = await AgentService.getAgentStatusForAgentPolicy( - soClient, - esClient - ); - return { + const { total, + inactive, online, error, offline, + } = await AgentService.getAgentStatusForAgentPolicy(soClient, esClient); + return { + total_enrolled: total, + healthy: online, + unhealthy: error, + offline, + total_all_statuses: total + inactive, }; }; diff --git a/x-pack/plugins/fleet/server/collectors/register.ts b/x-pack/plugins/fleet/server/collectors/register.ts index 7992d54d1dfad..842bb95fe813f 100644 --- a/x-pack/plugins/fleet/server/collectors/register.ts +++ b/x-pack/plugins/fleet/server/collectors/register.ts @@ -49,10 +49,36 @@ export function registerFleetUsageCollector( schema: { agents_enabled: { type: 'boolean' }, agents: { - total: { type: 'long' }, - online: { type: 'long' }, - error: { type: 'long' }, - offline: { type: 'long' }, + total_enrolled: { + type: 'long', + _meta: { + description: 'The total number of enrolled agents, in any state', + }, + }, + healthy: { + type: 'long', + _meta: { + description: 'The total number of enrolled agents in a healthy state', + }, + }, + unhealthy: { + type: 'long', + _meta: { + description: 'The total number of enrolled agents in an unhealthy state', + }, + }, + offline: { + type: 'long', + _meta: { + description: 'The total number of enrolled agents currently offline', + }, + }, + total_all_statuses: { + type: 'long', + _meta: { + description: 'The total number of agents in any state, both enrolled and inactive', + }, + }, }, packages: { type: 'array', diff --git a/x-pack/plugins/fleet/server/services/agents/status.ts b/x-pack/plugins/fleet/server/services/agents/status.ts index f3fb01655974e..737b6874a8133 100644 --- a/x-pack/plugins/fleet/server/services/agents/status.ts +++ b/x-pack/plugins/fleet/server/services/agents/status.ts @@ -55,17 +55,18 @@ export async function getAgentStatusForAgentPolicy( agentPolicyId?: string, filterKuery?: string ) { - const [all, online, error, offline, updating] = await pMap( + const [all, allActive, online, error, offline, updating] = await pMap( [ - undefined, + undefined, // All agents, including inactive + undefined, // All active agents AgentStatusKueryHelper.buildKueryForOnlineAgents(), AgentStatusKueryHelper.buildKueryForErrorAgents(), AgentStatusKueryHelper.buildKueryForOfflineAgents(), AgentStatusKueryHelper.buildKueryForUpdatingAgents(), ], - (kuery) => + (kuery, index) => getAgentsByKuery(esClient, { - showInactive: false, + showInactive: index === 0, perPage: 0, page: 1, kuery: joinKuerys( @@ -84,7 +85,8 @@ export async function getAgentStatusForAgentPolicy( return { events: await getEventsCount(soClient, agentPolicyId), - total: all.total, + total: allActive.total, + inactive: all.total - allActive.total, online: online.total, error: error.total, offline: offline.total, diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index ef09937da3fbc..e1e0711c2bb2c 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -1837,17 +1837,35 @@ }, "agents": { "properties": { - "total": { - "type": "long" + "total_enrolled": { + "type": "long", + "_meta": { + "description": "The total number of enrolled agents, in any state" + } }, - "online": { - "type": "long" + "healthy": { + "type": "long", + "_meta": { + "description": "The total number of enrolled agents in a healthy state" + } }, - "error": { - "type": "long" + "unhealthy": { + "type": "long", + "_meta": { + "description": "The total number of enrolled agents in an unhealthy state" + } }, "offline": { - "type": "long" + "type": "long", + "_meta": { + "description": "The total number of enrolled agents currently offline" + } + }, + "total_all_statuses": { + "type": "long", + "_meta": { + "description": "The total number of agents in any state, both enrolled and inactive" + } } } }, @@ -1978,6 +1996,42 @@ "xy_layer_added": { "type": "long" }, + "open_field_editor_edit": { + "type": "long", + "_meta": { + "description": "Number of times the user opened the editor flyout to edit a field from within Lens." + } + }, + "open_field_editor_add": { + "type": "long", + "_meta": { + "description": "Number of times the user opened the editor flyout to add a field from within Lens." + } + }, + "save_field_edit": { + "type": "long", + "_meta": { + "description": "Number of times the user edited a field from within Lens." + } + }, + "save_field_add": { + "type": "long", + "_meta": { + "description": "Number of times the user added a field from within Lens." + } + }, + "open_field_delete_modal": { + "type": "long", + "_meta": { + "description": "Number of times the user opened the field delete modal from within Lens." + } + }, + "delete_field": { + "type": "long", + "_meta": { + "description": "Number of times the user deleted a field from within Lens." + } + }, "indexpattern_dimension_operation_terms": { "type": "long", "_meta": { @@ -2034,70 +2088,50 @@ }, "indexpattern_dimension_operation_range": { "type": "long", - "_meta": { "description": "Number of times the range function was selected" } + "_meta": { + "description": "Number of times the range function was selected" + } }, "indexpattern_dimension_operation_median": { "type": "long", - "_meta": { "description": "Number of times the median function was selected" } + "_meta": { + "description": "Number of times the median function was selected" + } }, "indexpattern_dimension_operation_percentile": { - "type": "long", - "_meta": { "description": "Number of times the percentile function was selected" } - }, - "indexpattern_dimension_operation_last_value": { - "type": "long", - "_meta": { "description": "Number of times the last value function was selected" } - }, - "indexpattern_dimension_operation_cumulative_sum": { - "type": "long", - "_meta": { "description": "Number of times the cumulative sum function was selected" } - }, - "indexpattern_dimension_operation_counter_rate": { - "type": "long", - "_meta": { "description": "Number of times the counter rate function was selected" } - }, - "indexpattern_dimension_operation_derivative": { - "type": "long", - "_meta": { "description": "Number of times the derivative function was selected" } - }, - "indexpattern_dimension_operation_moving_average": { - "type": "long", - "_meta": { "description": "Number of times the moving average function was selected" } - }, - "open_field_editor_edit": { "type": "long", "_meta": { - "description": "Number of times the user opened the editor flyout to edit a field from within Lens." + "description": "Number of times the percentile function was selected" } }, - "open_field_editor_add": { + "indexpattern_dimension_operation_last_value": { "type": "long", "_meta": { - "description": "Number of times the user opened the editor flyout to add a field from within Lens." + "description": "Number of times the last value function was selected" } }, - "save_field_edit": { + "indexpattern_dimension_operation_cumulative_sum": { "type": "long", "_meta": { - "description": "Number of times the user edited a field from within Lens." + "description": "Number of times the cumulative sum function was selected" } }, - "save_field_add": { + "indexpattern_dimension_operation_counter_rate": { "type": "long", "_meta": { - "description": "Number of times the user added a field from within Lens." + "description": "Number of times the counter rate function was selected" } }, - "open_field_delete_modal": { + "indexpattern_dimension_operation_derivative": { "type": "long", "_meta": { - "description": "Number of times the user opened the field delete modal from within Lens." + "description": "Number of times the derivative function was selected" } }, - "delete_field": { + "indexpattern_dimension_operation_moving_average": { "type": "long", "_meta": { - "description": "Number of times the user deleted a field from within Lens." + "description": "Number of times the moving average function was selected" } } } @@ -2185,6 +2219,42 @@ "xy_layer_added": { "type": "long" }, + "open_field_editor_edit": { + "type": "long", + "_meta": { + "description": "Number of times the user opened the editor flyout to edit a field from within Lens." + } + }, + "open_field_editor_add": { + "type": "long", + "_meta": { + "description": "Number of times the user opened the editor flyout to add a field from within Lens." + } + }, + "save_field_edit": { + "type": "long", + "_meta": { + "description": "Number of times the user edited a field from within Lens." + } + }, + "save_field_add": { + "type": "long", + "_meta": { + "description": "Number of times the user added a field from within Lens." + } + }, + "open_field_delete_modal": { + "type": "long", + "_meta": { + "description": "Number of times the user opened the field delete modal from within Lens." + } + }, + "delete_field": { + "type": "long", + "_meta": { + "description": "Number of times the user deleted a field from within Lens." + } + }, "indexpattern_dimension_operation_terms": { "type": "long", "_meta": { @@ -2241,70 +2311,50 @@ }, "indexpattern_dimension_operation_range": { "type": "long", - "_meta": { "description": "Number of times the range function was selected" } + "_meta": { + "description": "Number of times the range function was selected" + } }, "indexpattern_dimension_operation_median": { "type": "long", - "_meta": { "description": "Number of times the median function was selected" } + "_meta": { + "description": "Number of times the median function was selected" + } }, "indexpattern_dimension_operation_percentile": { - "type": "long", - "_meta": { "description": "Number of times the percentile function was selected" } - }, - "indexpattern_dimension_operation_last_value": { - "type": "long", - "_meta": { "description": "Number of times the last value function was selected" } - }, - "indexpattern_dimension_operation_cumulative_sum": { - "type": "long", - "_meta": { "description": "Number of times the cumulative sum function was selected" } - }, - "indexpattern_dimension_operation_counter_rate": { - "type": "long", - "_meta": { "description": "Number of times the counter rate function was selected" } - }, - "indexpattern_dimension_operation_derivative": { - "type": "long", - "_meta": { "description": "Number of times the derivative function was selected" } - }, - "indexpattern_dimension_operation_moving_average": { - "type": "long", - "_meta": { "description": "Number of times the moving average function was selected" } - }, - "open_field_editor_edit": { "type": "long", "_meta": { - "description": "Number of times the user opened the editor flyout to edit a field from within Lens." + "description": "Number of times the percentile function was selected" } }, - "open_field_editor_add": { + "indexpattern_dimension_operation_last_value": { "type": "long", "_meta": { - "description": "Number of times the user opened the editor flyout to add a field from within Lens." + "description": "Number of times the last value function was selected" } }, - "save_field_edit": { + "indexpattern_dimension_operation_cumulative_sum": { "type": "long", "_meta": { - "description": "Number of times the user edited a field from within Lens." + "description": "Number of times the cumulative sum function was selected" } }, - "save_field_add": { + "indexpattern_dimension_operation_counter_rate": { "type": "long", "_meta": { - "description": "Number of times the user added a field from within Lens." + "description": "Number of times the counter rate function was selected" } }, - "open_field_delete_modal": { + "indexpattern_dimension_operation_derivative": { "type": "long", "_meta": { - "description": "Number of times the user opened the field delete modal from within Lens." + "description": "Number of times the derivative function was selected" } }, - "delete_field": { + "indexpattern_dimension_operation_moving_average": { "type": "long", "_meta": { - "description": "Number of times the user deleted a field from within Lens." + "description": "Number of times the moving average function was selected" } } } diff --git a/x-pack/test/fleet_api_integration/apis/agents/status.ts b/x-pack/test/fleet_api_integration/apis/agents/status.ts index 3245b9a459fb1..f79ff15b64d33 100644 --- a/x-pack/test/fleet_api_integration/apis/agents/status.ts +++ b/x-pack/test/fleet_api_integration/apis/agents/status.ts @@ -79,6 +79,7 @@ export default function ({ getService }: FtrProviderContext) { offline: 1, updating: 1, other: 1, + inactive: 0, }, }); }); From b531d2836496f5b8e9e08f44005dce8a28cae250 Mon Sep 17 00:00:00 2001 From: CJ Cenizal Date: Wed, 31 Mar 2021 12:29:07 -0700 Subject: [PATCH 019/106] Add "Include aliases" toggle to the Restore Snapshot Wizard (#95882) * Add support for includeAliases to restore API endpoint, with unit tests. * Remove unused deserializeRestoreSettings function. * Add 'Include aliases' option to the UI, with default value of true. * Add client integration test. --- .../helpers/http_requests.ts | 9 ++++ .../helpers/restore_snapshot.helpers.ts | 26 ++++++++++ .../restore_snapshot.test.ts | 32 ++++++++++-- .../snapshot_restore/common/lib/index.ts | 5 +- .../restore_settings_serialization.test.ts | 50 ++----------------- .../lib/restore_settings_serialization.ts | 28 +---------- .../snapshot_restore/common/types/restore.ts | 2 + .../restore_snapshot_form.tsx | 2 + .../steps/step_logistics/step_logistics.tsx | 36 +++++++++++++ .../server/routes/api/validate_schemas.ts | 1 + 10 files changed, 111 insertions(+), 80 deletions(-) diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts index 335b18de92850..45b8b23cae477 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/http_requests.ts @@ -108,6 +108,14 @@ const registerHttpRequestMockHelpers = (server: SinonFakeServer) => { ]); }; + const setRestoreSnapshotResponse = (response?: HttpResponse) => { + server.respondWith('POST', `${API_BASE_PATH}restore/:repository/:snapshot`, [ + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify(response), + ]); + }; + return { setLoadRepositoriesResponse, setLoadRepositoryTypesResponse, @@ -119,6 +127,7 @@ const registerHttpRequestMockHelpers = (server: SinonFakeServer) => { setAddPolicyResponse, setGetPolicyResponse, setCleanupRepositoryResponse, + setRestoreSnapshotResponse, }; }; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts index c0ffae81a4258..5bc970a1143a4 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/helpers/restore_snapshot.helpers.ts @@ -25,6 +25,7 @@ const initTestBed = registerTestBed( const setupActions = (testBed: TestBed) => { const { find, component, form } = testBed; + return { findDataStreamCallout() { return find('dataStreamWarningCallOut'); @@ -37,6 +38,28 @@ const setupActions = (testBed: TestBed) => { component.update(); }, + + toggleIncludeAliases() { + act(() => { + form.toggleEuiSwitch('includeAliasesSwitch'); + }); + + component.update(); + }, + + goToStep(step: number) { + while (--step > 0) { + find('nextButton').simulate('click'); + } + component.update(); + }, + + async clickRestore() { + await act(async () => { + find('restoreButton').simulate('click'); + }); + component.update(); + }, }; }; @@ -58,5 +81,8 @@ export const setup = async (): Promise => { export type RestoreSnapshotFormTestSubject = | 'snapshotRestoreStepLogistics' | 'includeGlobalStateSwitch' + | 'includeAliasesSwitch' + | 'nextButton' + | 'restoreButton' | 'systemIndicesInfoCallOut' | 'dataStreamWarningCallOut'; diff --git a/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts b/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts index 2fecce36f09df..9f12415b70a9f 100644 --- a/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts +++ b/x-pack/plugins/snapshot_restore/__jest__/client_integration/restore_snapshot.test.ts @@ -33,7 +33,7 @@ describe('', () => { testBed.component.update(); }); - it('shows the data streams warning when the snapshot has data streams', () => { + test('shows the data streams warning when the snapshot has data streams', () => { const { exists } = testBed; expect(exists('dataStreamWarningCallOut')).toBe(true); }); @@ -49,7 +49,7 @@ describe('', () => { testBed.component.update(); }); - it('hides the data streams warning when the snapshot has data streams', () => { + test('hides the data streams warning when the snapshot has data streams', () => { const { exists } = testBed; expect(exists('dataStreamWarningCallOut')).toBe(false); }); @@ -65,7 +65,7 @@ describe('', () => { testBed.component.update(); }); - it('shows an info callout when include_global_state is enabled', () => { + test('shows an info callout when include_global_state is enabled', () => { const { exists, actions } = testBed; expect(exists('systemIndicesInfoCallOut')).toBe(false); @@ -75,4 +75,30 @@ describe('', () => { expect(exists('systemIndicesInfoCallOut')).toBe(true); }); }); + + // NOTE: This suite can be expanded to simulate the user setting non-default values for all of + // the form controls and asserting that the correct payload is sent to the API. + describe('include aliases', () => { + beforeEach(async () => { + httpRequestsMockHelpers.setGetSnapshotResponse(fixtures.getSnapshot()); + httpRequestsMockHelpers.setRestoreSnapshotResponse({}); + + await act(async () => { + testBed = await setup(); + }); + + testBed.component.update(); + }); + + test('is sent to the API', async () => { + const { actions } = testBed; + actions.toggleIncludeAliases(); + actions.goToStep(3); + await actions.clickRestore(); + + const expectedPayload = { includeAliases: false }; + const latestRequest = server.requests[server.requests.length - 1]; + expect(JSON.parse(JSON.parse(latestRequest.requestBody).body)).toEqual(expectedPayload); + }); + }); }); diff --git a/x-pack/plugins/snapshot_restore/common/lib/index.ts b/x-pack/plugins/snapshot_restore/common/lib/index.ts index a375709cee7c5..fc8015c5b807b 100644 --- a/x-pack/plugins/snapshot_restore/common/lib/index.ts +++ b/x-pack/plugins/snapshot_restore/common/lib/index.ts @@ -6,10 +6,7 @@ */ export { flatten } from './flatten'; -export { - deserializeRestoreSettings, - serializeRestoreSettings, -} from './restore_settings_serialization'; +export { serializeRestoreSettings } from './restore_settings_serialization'; export { deserializeSnapshotDetails, deserializeSnapshotConfig, diff --git a/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.test.ts b/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.test.ts index bb640000cc89a..3a78001c742ff 100644 --- a/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.test.ts +++ b/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.test.ts @@ -5,10 +5,7 @@ * 2.0. */ -import { - deserializeRestoreSettings, - serializeRestoreSettings, -} from './restore_settings_serialization'; +import { serializeRestoreSettings } from './restore_settings_serialization'; describe('restore_settings_serialization()', () => { it('should serialize blank restore settings', () => { @@ -56,6 +53,7 @@ describe('restore_settings_serialization()', () => { indexSettings: '{"modified_setting":123}', ignoreIndexSettings: ['setting1'], ignoreUnavailable: true, + includeAliases: true, }) ).toEqual({ indices: ['foo', 'bar'], @@ -66,6 +64,7 @@ describe('restore_settings_serialization()', () => { index_settings: { modified_setting: 123 }, ignore_index_settings: ['setting1'], ignore_unavailable: true, + include_aliases: true, }); }); @@ -76,47 +75,4 @@ describe('restore_settings_serialization()', () => { }) ).toEqual({}); }); - - it('should deserialize blank restore settings', () => { - expect(deserializeRestoreSettings({})).toEqual({}); - }); - - it('should deserialize partial restore settings', () => { - expect(deserializeRestoreSettings({})).toEqual({}); - expect( - deserializeRestoreSettings({ - indices: ['foo', 'bar'], - ignore_index_settings: ['setting1'], - partial: true, - }) - ).toEqual({ - indices: ['foo', 'bar'], - ignoreIndexSettings: ['setting1'], - partial: true, - }); - }); - - it('should deserialize full restore settings', () => { - expect( - deserializeRestoreSettings({ - indices: ['foo', 'bar'], - rename_pattern: 'capture_pattern', - rename_replacement: 'replacement_pattern', - include_global_state: true, - partial: true, - index_settings: { modified_setting: 123 }, - ignore_index_settings: ['setting1'], - ignore_unavailable: true, - }) - ).toEqual({ - indices: ['foo', 'bar'], - renamePattern: 'capture_pattern', - renameReplacement: 'replacement_pattern', - includeGlobalState: true, - partial: true, - indexSettings: '{"modified_setting":123}', - ignoreIndexSettings: ['setting1'], - ignoreUnavailable: true, - }); - }); }); diff --git a/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.ts b/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.ts index 5e026246c77b9..c017bc721884c 100644 --- a/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.ts +++ b/x-pack/plugins/snapshot_restore/common/lib/restore_settings_serialization.ts @@ -26,6 +26,7 @@ export function serializeRestoreSettings(restoreSettings: RestoreSettings): Rest indexSettings, ignoreIndexSettings, ignoreUnavailable, + includeAliases, } = restoreSettings; let parsedIndexSettings: RestoreSettingsEs['index_settings'] | undefined; @@ -47,32 +48,7 @@ export function serializeRestoreSettings(restoreSettings: RestoreSettings): Rest index_settings: parsedIndexSettings, ignore_index_settings: ignoreIndexSettings, ignore_unavailable: ignoreUnavailable, - }; - - return removeUndefinedSettings(settings); -} - -export function deserializeRestoreSettings(restoreSettingsEs: RestoreSettingsEs): RestoreSettings { - const { - indices, - rename_pattern: renamePattern, - rename_replacement: renameReplacement, - include_global_state: includeGlobalState, - partial, - index_settings: indexSettings, - ignore_index_settings: ignoreIndexSettings, - ignore_unavailable: ignoreUnavailable, - } = restoreSettingsEs; - - const settings: RestoreSettings = { - indices, - renamePattern, - renameReplacement, - includeGlobalState, - partial, - indexSettings: indexSettings ? JSON.stringify(indexSettings) : undefined, - ignoreIndexSettings, - ignoreUnavailable, + include_aliases: includeAliases, }; return removeUndefinedSettings(settings); diff --git a/x-pack/plugins/snapshot_restore/common/types/restore.ts b/x-pack/plugins/snapshot_restore/common/types/restore.ts index 1bbd5cdd5a56c..9e9b91de1859e 100644 --- a/x-pack/plugins/snapshot_restore/common/types/restore.ts +++ b/x-pack/plugins/snapshot_restore/common/types/restore.ts @@ -14,6 +14,7 @@ export interface RestoreSettings { indexSettings?: string; ignoreIndexSettings?: string[]; ignoreUnavailable?: boolean; + includeAliases?: boolean; } export interface RestoreSettingsEs { @@ -25,6 +26,7 @@ export interface RestoreSettingsEs { index_settings?: { [key: string]: any }; ignore_index_settings?: string[]; ignore_unavailable?: boolean; + include_aliases?: boolean; } export interface SnapshotRestore { diff --git a/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx b/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx index f672300db8821..82ace79f49f5d 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx @@ -140,6 +140,7 @@ export const RestoreSnapshotForm: React.FunctionComponent = ({ iconType="arrowRight" onClick={() => onNext()} disabled={!validation.isValid} + data-test-subj="nextButton" > = ({ iconType="check" onClick={() => executeRestore()} isLoading={isSaving} + data-test-subj="restoreButton" > {isSaving ? ( = renameReplacement, partial, includeGlobalState, + includeAliases, } = restoreSettings; // States for choosing all indices, or a subset, including caching previously chosen subset list @@ -625,6 +626,41 @@ export const RestoreSnapshotStepLogistics: React.FunctionComponent = /> + + {/* Include aliases */} + +

+ +

+ + } + description={ + + } + fullWidth + > + + + } + checked={includeAliases === undefined ? true : includeAliases} + onChange={(e) => updateRestoreSettings({ includeAliases: e.target.checked })} + data-test-subj="includeAliasesSwitch" + /> + +
); }; diff --git a/x-pack/plugins/snapshot_restore/server/routes/api/validate_schemas.ts b/x-pack/plugins/snapshot_restore/server/routes/api/validate_schemas.ts index fe156f6ba9750..af31466c2cefe 100644 --- a/x-pack/plugins/snapshot_restore/server/routes/api/validate_schemas.ts +++ b/x-pack/plugins/snapshot_restore/server/routes/api/validate_schemas.ts @@ -176,4 +176,5 @@ export const restoreSettingsSchema = schema.object({ indexSettings: schema.maybe(schema.string()), ignoreIndexSettings: schema.maybe(schema.arrayOf(schema.string())), ignoreUnavailable: schema.maybe(schema.boolean()), + includeAliases: schema.maybe(schema.boolean()), }); From fe17879ae39d978dbd66b29772ed4fa67309696f Mon Sep 17 00:00:00 2001 From: Devon Thomson Date: Wed, 31 Mar 2021 15:30:50 -0400 Subject: [PATCH 020/106] [Time to Visualize] Allow By Value Flow Without Visualize Save Permissions (#95951) * Made sure users can use by value workflow without visualize save permissions --- .../actions/add_to_library_action.test.tsx | 50 +++- .../actions/add_to_library_action.tsx | 18 +- .../actions/clone_panel_action.tsx | 3 +- src/plugins/dashboard/public/plugin.tsx | 11 +- src/plugins/dashboard/public/services/core.ts | 1 + .../saved_object_save_modal_dashboard.tsx | 10 +- ..._save_modal_dashboard_selector.stories.tsx | 7 + ...d_object_save_modal_dashboard_selector.tsx | 6 +- .../public/services/index.ts | 1 + .../public/services/kibana/capabilities.ts | 3 +- .../public/services/storybook/capabilities.ts | 2 + .../public/services/storybook/index.ts | 1 + .../public/services/stub/capabilities.ts | 1 + .../create_vis_embeddable_from_object.ts | 7 +- .../public/embeddable/visualize_embeddable.ts | 11 +- .../application/utils/get_top_nav_config.tsx | 26 +- .../public/application/utils/utils.ts | 2 +- x-pack/plugins/lens/public/app_plugin/app.tsx | 17 +- .../lens/public/app_plugin/lens_top_nav.tsx | 25 +- .../lens/public/app_plugin/save_modal.tsx | 6 +- .../embeddable/embeddable.test.tsx | 84 +++++-- .../embeddable/embeddable.tsx | 13 +- .../embeddable/embeddable_factory.ts | 8 +- .../public/routes/map_page/top_nav_config.tsx | 6 +- .../apps/dashboard/feature_controls/index.ts | 1 + .../time_to_visualize_security.ts | 233 ++++++++++++++++++ 26 files changed, 484 insertions(+), 69 deletions(-) create mode 100644 x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx index 07c38fd406eea..1156bf8c6e0d1 100644 --- a/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx +++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.test.tsx @@ -41,8 +41,15 @@ const start = doStart(); let container: DashboardContainer; let embeddable: ContactCardEmbeddable & ReferenceOrValueEmbeddable; let coreStart: CoreStart; +let capabilities: CoreStart['application']['capabilities']; + beforeEach(async () => { coreStart = coreMock.createStart(); + capabilities = { + ...coreStart.application.capabilities, + visualize: { save: true }, + maps: { save: true }, + }; const containerOptions = { ExitFullScreenButton: () => null, @@ -83,7 +90,10 @@ beforeEach(async () => { }); test('Add to library is incompatible with Error Embeddables', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); const errorEmbeddable = new ErrorEmbeddable( 'Wow what an awful error', { id: ' 404' }, @@ -92,20 +102,37 @@ test('Add to library is incompatible with Error Embeddables', async () => { expect(await action.isCompatible({ embeddable: errorEmbeddable })).toBe(false); }); +test('Add to library is incompatible on visualize embeddable without visualize save permissions', async () => { + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities: { ...capabilities, visualize: { save: false } }, + }); + expect(await action.isCompatible({ embeddable })).toBe(false); +}); + test('Add to library is compatible when embeddable on dashboard has value type input', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); embeddable.updateInput(await embeddable.getInputAsValueType()); expect(await action.isCompatible({ embeddable })).toBe(true); }); test('Add to library is not compatible when embeddable input is by reference', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); embeddable.updateInput(await embeddable.getInputAsRefType()); expect(await action.isCompatible({ embeddable })).toBe(false); }); test('Add to library is not compatible when view mode is set to view', async () => { - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); embeddable.updateInput(await embeddable.getInputAsRefType()); embeddable.updateInput({ viewMode: ViewMode.VIEW }); expect(await action.isCompatible({ embeddable })).toBe(false); @@ -126,7 +153,10 @@ test('Add to library is not compatible when embeddable is not in a dashboard con mockedByReferenceInput: { savedObjectId: 'test', id: orphanContactCard.id }, mockedByValueInput: { firstName: 'Kibanana', id: orphanContactCard.id }, }); - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); expect(await action.isCompatible({ embeddable: orphanContactCard })).toBe(false); }); @@ -135,7 +165,10 @@ test('Add to library replaces embeddableId and retains panel count', async () => const originalPanelCount = Object.keys(dashboard.getInput().panels).length; const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels)); - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); await action.execute({ embeddable }); expect(Object.keys(container.getInput().panels).length).toEqual(originalPanelCount); @@ -161,7 +194,10 @@ test('Add to library returns reference type input', async () => { }); const dashboard = embeddable.getRoot() as IContainer; const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels)); - const action = new AddToLibraryAction({ toasts: coreStart.notifications.toasts }); + const action = new AddToLibraryAction({ + toasts: coreStart.notifications.toasts, + capabilities, + }); await action.execute({ embeddable }); const newPanelId = Object.keys(container.getInput().panels).find( (key) => !originalPanelKeySet.has(key) diff --git a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx index ef730e16bc5cf..fa102a9415b3f 100644 --- a/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx +++ b/src/plugins/dashboard/public/application/actions/add_to_library_action.tsx @@ -18,7 +18,7 @@ import { isReferenceOrValueEmbeddable, isErrorEmbeddable, } from '../../services/embeddable'; -import { NotificationsStart } from '../../services/core'; +import { ApplicationStart, NotificationsStart } from '../../services/core'; import { dashboardAddToLibraryAction } from '../../dashboard_strings'; import { DashboardPanelState, DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '..'; @@ -33,7 +33,12 @@ export class AddToLibraryAction implements Action { public readonly id = ACTION_ADD_TO_LIBRARY; public order = 15; - constructor(private deps: { toasts: NotificationsStart['toasts'] }) {} + constructor( + private deps: { + toasts: NotificationsStart['toasts']; + capabilities: ApplicationStart['capabilities']; + } + ) {} public getDisplayName({ embeddable }: AddToLibraryActionContext) { if (!embeddable.getRoot() || !embeddable.getRoot().isContainer) { @@ -50,8 +55,15 @@ export class AddToLibraryAction implements Action { } public async isCompatible({ embeddable }: AddToLibraryActionContext) { + // TODO: Fix this, potentially by adding a 'canSave' function to embeddable interface + const canSave = + embeddable.type === 'map' + ? this.deps.capabilities.maps?.save + : this.deps.capabilities.visualize.save; + return Boolean( - !isErrorEmbeddable(embeddable) && + canSave && + !isErrorEmbeddable(embeddable) && embeddable.getInput()?.viewMode !== ViewMode.VIEW && embeddable.getRoot() && embeddable.getRoot().isContainer && diff --git a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx index c82f17f2b29c4..829344504b16b 100644 --- a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx +++ b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx @@ -61,7 +61,8 @@ export class ClonePanelAction implements Action { embeddable.getInput()?.viewMode !== ViewMode.VIEW && embeddable.getRoot() && embeddable.getRoot().isContainer && - embeddable.getRoot().type === DASHBOARD_CONTAINER_TYPE + embeddable.getRoot().type === DASHBOARD_CONTAINER_TYPE && + embeddable.getOutput().editable ); } diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx index ae2d2b5f237c9..5bf730996ab4f 100644 --- a/src/plugins/dashboard/public/plugin.tsx +++ b/src/plugins/dashboard/public/plugin.tsx @@ -342,7 +342,7 @@ export class DashboardPlugin } public start(core: CoreStart, plugins: DashboardStartDependencies): DashboardStart { - const { notifications, overlays } = core; + const { notifications, overlays, application } = core; const { uiActions, data, share, presentationUtil, embeddable } = plugins; const SavedObjectFinder = getSavedObjectFinder(core.savedObjects, core.uiSettings); @@ -370,7 +370,10 @@ export class DashboardPlugin } if (this.dashboardFeatureFlagConfig?.allowByValueEmbeddables) { - const addToLibraryAction = new AddToLibraryAction({ toasts: notifications.toasts }); + const addToLibraryAction = new AddToLibraryAction({ + toasts: notifications.toasts, + capabilities: application.capabilities, + }); uiActions.registerAction(addToLibraryAction); uiActions.attachAction(CONTEXT_MENU_TRIGGER, addToLibraryAction.id); @@ -386,8 +389,8 @@ export class DashboardPlugin overlays, embeddable.getStateTransfer(), { - canCreateNew: Boolean(core.application.capabilities.dashboard.createNew), - canEditExisting: !Boolean(core.application.capabilities.dashboard.hideWriteControls), + canCreateNew: Boolean(application.capabilities.dashboard.createNew), + canEditExisting: !Boolean(application.capabilities.dashboard.hideWriteControls), }, presentationUtil.ContextProvider ); diff --git a/src/plugins/dashboard/public/services/core.ts b/src/plugins/dashboard/public/services/core.ts index 7c19b2d75a967..75461729841e9 100644 --- a/src/plugins/dashboard/public/services/core.ts +++ b/src/plugins/dashboard/public/services/core.ts @@ -12,4 +12,5 @@ export { PluginInitializerContext, ScopedHistory, NotificationsStart, + ApplicationStart, } from '../../../../core/public'; diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx index 57d05262319f2..4491be04b1a42 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard.tsx @@ -28,6 +28,7 @@ interface SaveModalDocumentInfo { export interface SaveModalDashboardProps { documentInfo: SaveModalDocumentInfo; + canSaveByReference: boolean; objectType: string; onClose: () => void; onSave: (props: OnSaveProps & { dashboardId: string | null; addToLibrary: boolean }) => void; @@ -35,7 +36,7 @@ export interface SaveModalDashboardProps { } export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { - const { documentInfo, tagOptions, objectType, onClose } = props; + const { documentInfo, tagOptions, objectType, onClose, canSaveByReference } = props; const { id: documentId } = documentInfo; const initialCopyOnSave = !Boolean(documentId); @@ -49,7 +50,7 @@ export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { documentId || disableDashboardOptions ? null : 'existing' ); const [isAddToLibrarySelected, setAddToLibrary] = useState( - !initialCopyOnSave || disableDashboardOptions + canSaveByReference && (!initialCopyOnSave || disableDashboardOptions) ); const [selectedDashboard, setSelectedDashboard] = useState<{ id: string; name: string } | null>( null @@ -65,13 +66,16 @@ export function SavedObjectSaveModalDashboard(props: SaveModalDashboardProps) { onChange={(option) => { setDashboardOption(option); }} + canSaveByReference={canSaveByReference} {...{ copyOnSave, documentId, dashboardOption, setAddToLibrary, isAddToLibrarySelected }} /> ) : null; const onCopyOnSaveChange = (newCopyOnSave: boolean) => { - setAddToLibrary(true); + if (canSaveByReference) { + setAddToLibrary(true); + } setDashboardOption(null); setCopyOnSave(newCopyOnSave); }; diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx index dd6fd975f8e07..341f194b71ba4 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.stories.tsx @@ -33,15 +33,21 @@ export default { control: 'boolean', defaultValue: true, }, + canSaveVisualizations: { + control: 'boolean', + defaultValue: true, + }, }, }; export function Example({ copyOnSave, hasDocumentId, + canSaveVisualizations, }: { copyOnSave: boolean; hasDocumentId: boolean; + canSaveVisualizations: boolean; } & StorybookParams) { const [dashboardOption, setDashboardOption] = useState<'new' | 'existing' | null>('existing'); const [isAddToLibrarySelected, setAddToLibrary] = useState(false); @@ -52,6 +58,7 @@ export function Example({ onChange={setDashboardOption} dashboardOption={dashboardOption} copyOnSave={copyOnSave} + canSaveByReference={canSaveVisualizations} documentId={hasDocumentId ? 'abc' : undefined} isAddToLibrarySelected={isAddToLibrarySelected} setAddToLibrary={setAddToLibrary} diff --git a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx index 1ae54040571a2..78a1569c02ead 100644 --- a/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx +++ b/src/plugins/presentation_util/public/components/saved_object_save_modal_dashboard_selector.tsx @@ -30,6 +30,7 @@ export interface SaveModalDashboardSelectorProps { copyOnSave: boolean; documentId?: string; onSelectDashboard: DashboardPickerProps['onChange']; + canSaveByReference: boolean; setAddToLibrary: (selected: boolean) => void; isAddToLibrarySelected: boolean; dashboardOption: 'new' | 'existing' | null; @@ -40,6 +41,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp const { documentId, onSelectDashboard, + canSaveByReference, setAddToLibrary, isAddToLibrarySelected, dashboardOption, @@ -114,7 +116,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp setAddToLibrary(true); onChange(null); }} - disabled={isDisabled} + disabled={isDisabled || !canSaveByReference} /> @@ -127,7 +129,7 @@ export function SaveModalDashboardSelector(props: SaveModalDashboardSelectorProp defaultMessage: 'Add to library', })} checked={isAddToLibrarySelected} - disabled={dashboardOption === null || isDisabled} + disabled={dashboardOption === null || isDisabled || !canSaveByReference} onChange={(event) => setAddToLibrary(event.target.checked)} /> diff --git a/src/plugins/presentation_util/public/services/index.ts b/src/plugins/presentation_util/public/services/index.ts index 74607b9e35e47..39dae92aa2ba9 100644 --- a/src/plugins/presentation_util/public/services/index.ts +++ b/src/plugins/presentation_util/public/services/index.ts @@ -23,6 +23,7 @@ export interface PresentationDashboardsService { export interface PresentationCapabilitiesService { canAccessDashboards: () => boolean; canCreateNewDashboards: () => boolean; + canSaveVisualizations: () => boolean; } export interface PresentationUtilServices { diff --git a/src/plugins/presentation_util/public/services/kibana/capabilities.ts b/src/plugins/presentation_util/public/services/kibana/capabilities.ts index 546281d083f2f..6949fba00c65a 100644 --- a/src/plugins/presentation_util/public/services/kibana/capabilities.ts +++ b/src/plugins/presentation_util/public/services/kibana/capabilities.ts @@ -16,10 +16,11 @@ export type CapabilitiesServiceFactory = KibanaPluginServiceFactory< >; export const capabilitiesServiceFactory: CapabilitiesServiceFactory = ({ coreStart }) => { - const { dashboard } = coreStart.application.capabilities; + const { dashboard, visualize } = coreStart.application.capabilities; return { canAccessDashboards: () => Boolean(dashboard.show), canCreateNewDashboards: () => Boolean(dashboard.createNew), + canSaveVisualizations: () => Boolean(visualize.save), }; }; diff --git a/src/plugins/presentation_util/public/services/storybook/capabilities.ts b/src/plugins/presentation_util/public/services/storybook/capabilities.ts index fcd38b29f154c..16fbe3baf488f 100644 --- a/src/plugins/presentation_util/public/services/storybook/capabilities.ts +++ b/src/plugins/presentation_util/public/services/storybook/capabilities.ts @@ -19,11 +19,13 @@ export const capabilitiesServiceFactory: CapabilitiesServiceFactory = ({ canAccessDashboards, canCreateNewDashboards, canEditDashboards, + canSaveVisualizations, }) => { const check = (value: boolean = true) => value; return { canAccessDashboards: () => check(canAccessDashboards), canCreateNewDashboards: () => check(canCreateNewDashboards), canEditDashboards: () => check(canEditDashboards), + canSaveVisualizations: () => check(canSaveVisualizations), }; }; diff --git a/src/plugins/presentation_util/public/services/storybook/index.ts b/src/plugins/presentation_util/public/services/storybook/index.ts index 37b2171635e96..dd7de54264062 100644 --- a/src/plugins/presentation_util/public/services/storybook/index.ts +++ b/src/plugins/presentation_util/public/services/storybook/index.ts @@ -18,6 +18,7 @@ export interface StorybookParams { canAccessDashboards?: boolean; canCreateNewDashboards?: boolean; canEditDashboards?: boolean; + canSaveVisualizations?: boolean; } export const providers: PluginServiceProviders = { diff --git a/src/plugins/presentation_util/public/services/stub/capabilities.ts b/src/plugins/presentation_util/public/services/stub/capabilities.ts index 979ccc8faadd5..4154fa65a0cd7 100644 --- a/src/plugins/presentation_util/public/services/stub/capabilities.ts +++ b/src/plugins/presentation_util/public/services/stub/capabilities.ts @@ -15,4 +15,5 @@ export const capabilitiesServiceFactory: CapabilitiesServiceFactory = () => ({ canAccessDashboards: () => true, canCreateNewDashboards: () => true, canEditDashboards: () => true, + canSaveVisualizations: () => true, }); diff --git a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts index 989a9bf5d2cb7..e2e2a4c089270 100644 --- a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts +++ b/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts @@ -67,7 +67,10 @@ export const createVisEmbeddableFromObject = (deps: VisualizeEmbeddableFactoryDe indexPatterns = [vis.data.indexPattern]; } - const editable = getCapabilities().visualize.save as boolean; + const capabilities = { + visualizeSave: Boolean(getCapabilities().visualize.save), + dashboardSave: Boolean(getCapabilities().dashboard?.showWriteControls), + }; return new VisualizeEmbeddable( getTimeFilter(), @@ -76,8 +79,8 @@ export const createVisEmbeddableFromObject = (deps: VisualizeEmbeddableFactoryDe indexPatterns, editPath, editUrl, - editable, deps, + capabilities, }, input, attributeService, diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts index 580ffef548fe1..429dabeeef042 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts @@ -50,7 +50,7 @@ export interface VisualizeEmbeddableConfiguration { indexPatterns?: IIndexPattern[]; editPath: string; editUrl: string; - editable: boolean; + capabilities: { visualizeSave: boolean; dashboardSave: boolean }; deps: VisualizeEmbeddableFactoryDeps; } @@ -111,7 +111,7 @@ export class VisualizeEmbeddable constructor( timefilter: TimefilterContract, - { vis, editPath, editUrl, indexPatterns, editable, deps }: VisualizeEmbeddableConfiguration, + { vis, editPath, editUrl, indexPatterns, deps, capabilities }: VisualizeEmbeddableConfiguration, initialInput: VisualizeInput, attributeService?: AttributeService< VisualizeSavedObjectAttributes, @@ -129,7 +129,6 @@ export class VisualizeEmbeddable editApp: 'visualize', editUrl, indexPatterns, - editable, visTypeName: vis.type.name, }, parent @@ -143,6 +142,12 @@ export class VisualizeEmbeddable this.attributeService = attributeService; this.savedVisualizationsLoader = savedVisualizationsLoader; + if (this.attributeService) { + const isByValue = !this.inputIsRefType(initialInput); + const editable = capabilities.visualizeSave || (isByValue && capabilities.dashboardSave); + this.updateOutput({ ...this.getOutput(), editable }); + } + this.subscriptions.push( this.getUpdated$().subscribe(() => { const isDirty = this.handleChanges(); diff --git a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx index 4f5679a14b0b7..e696bcb5dbe4d 100644 --- a/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx +++ b/src/plugins/visualize/public/application/utils/get_top_nav_config.tsx @@ -82,6 +82,7 @@ export const getTopNavConfig = ( setActiveUrl, toastNotifications, visualizeCapabilities, + dashboardCapabilities, i18n: { Context: I18nContext }, dashboard, savedObjectsTagging, @@ -205,9 +206,9 @@ export const getTopNavConfig = ( } }; + const allowByValue = dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables; const saveButtonLabel = - embeddableId || - (!savedVis.id && dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables && originatingApp) + embeddableId || (!savedVis.id && allowByValue && originatingApp) ? i18n.translate('visualize.topNavMenu.saveVisualizationToLibraryButtonLabel', { defaultMessage: 'Save to library', }) @@ -219,9 +220,11 @@ export const getTopNavConfig = ( defaultMessage: 'Save', }); - const showSaveAndReturn = - originatingApp && - (savedVis?.id || dashboard.dashboardFeatureFlagConfig.allowByValueEmbeddables); + const showSaveAndReturn = originatingApp && (savedVis?.id || allowByValue); + + const showSaveButton = + visualizeCapabilities.save || + (allowByValue && !showSaveAndReturn && dashboardCapabilities.showWriteControls); const topNavMenu: TopNavMenuData[] = [ { @@ -300,7 +303,7 @@ export const getTopNavConfig = ( }, ] : []), - ...(visualizeCapabilities.save + ...(showSaveButton ? [ { id: 'save', @@ -439,7 +442,12 @@ export const getTopNavConfig = ( /> ) : ( { defaultMessage: 'Read only', }), tooltip: i18n.translate('visualize.badge.readOnly.tooltip', { - defaultMessage: 'Unable to save visualizations', + defaultMessage: 'Unable to save visualizations to the library', }), iconType: 'glasses', }); diff --git a/x-pack/plugins/lens/public/app_plugin/app.tsx b/x-pack/plugins/lens/public/app_plugin/app.tsx index 9d5feec9f21e6..dbc10c751a649 100644 --- a/x-pack/plugins/lens/public/app_plugin/app.tsx +++ b/x-pack/plugins/lens/public/app_plugin/app.tsx @@ -531,7 +531,13 @@ export function App({ const { TopNavMenu } = navigation.ui; - const savingPermitted = Boolean(state.isSaveable && application.capabilities.visualize.save); + const savingToLibraryPermitted = Boolean( + state.isSaveable && application.capabilities.visualize.save + ); + const savingToDashboardPermitted = Boolean( + state.isSaveable && application.capabilities.dashboard?.showWriteControls + ); + const unsavedTitle = i18n.translate('xpack.lens.app.unsavedFilename', { defaultMessage: 'unsaved', }); @@ -545,8 +551,10 @@ export function App({ state.isSaveable && state.activeData && Object.keys(state.activeData).length ), isByValueMode: getIsByValueMode(), + allowByValue: dashboardFeatureFlag.allowByValueEmbeddables, showCancel: Boolean(state.isLinkedToOriginatingApp), - savingPermitted, + savingToLibraryPermitted, + savingToDashboardPermitted, actions: { exportToCSV: () => { if (!state.activeData) { @@ -577,7 +585,7 @@ export function App({ } }, saveAndReturn: () => { - if (savingPermitted && lastKnownDoc) { + if (savingToDashboardPermitted && lastKnownDoc) { // disabling the validation on app leave because the document has been saved. onAppLeave((actions) => { return actions.default(); @@ -597,7 +605,7 @@ export function App({ } }, showSaveModal: () => { - if (savingPermitted) { + if (savingToDashboardPermitted || savingToLibraryPermitted) { setState((s) => ({ ...s, isSaveModalVisible: true })); } }, @@ -697,6 +705,7 @@ export function App({ { const { originatingApp, + savingToLibraryPermitted, savedObjectsTagging, tagsIds, lastKnownDoc, @@ -85,13 +87,15 @@ export const SaveModal = (props: Props) => { { const saveToLibrary = Boolean(saveProps.addToLibrary); onSave(saveProps, { saveToLibrary }); }} onClose={onClose} documentInfo={{ - id: lastKnownDoc.savedObjectId, + // if the user cannot save to the library - treat this as a new document. + id: savingToLibraryPermitted ? lastKnownDoc.savedObjectId : undefined, title: lastKnownDoc.title || '', description: lastKnownDoc.description || '', }} diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx index 157975b630e1e..00eaadeaf8299 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.test.tsx @@ -112,7 +112,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -151,7 +154,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { canSaveDashboards: true, canSaveVisualizations: true }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -191,7 +194,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -231,7 +237,10 @@ describe('embeddable', () => { indexPatternService: ({ get: (id: string) => Promise.resolve({ id }), } as unknown) as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -266,7 +275,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -307,7 +319,7 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { canSaveDashboards: true, canSaveVisualizations: true }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -352,7 +364,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -395,7 +410,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -445,7 +463,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -495,7 +516,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -544,7 +568,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: ({ get: jest.fn() } as unknown) as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -582,7 +609,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -620,7 +650,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -658,7 +691,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -711,7 +747,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -780,7 +819,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -824,7 +866,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ @@ -868,7 +913,10 @@ describe('embeddable', () => { expressionRenderer, basePath, indexPatternService: {} as IndexPatternsContract, - editable: true, + capabilities: { + canSaveDashboards: true, + canSaveVisualizations: true, + }, getTrigger, documentToExpression: () => Promise.resolve({ diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx index 1db067606dc82..a3316e0083d35 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable.tsx @@ -88,13 +88,13 @@ export interface LensEmbeddableDeps { documentToExpression: ( doc: Document ) => Promise<{ ast: Ast | null; errors: ErrorMessage[] | undefined }>; - editable: boolean; indexPatternService: IndexPatternsContract; expressionRenderer: ReactExpressionRendererType; timefilter: TimefilterContract; basePath: IBasePath; getTrigger?: UiActionsStart['getTrigger'] | undefined; getTriggerCompatibleActions?: UiActionsStart['getTriggerCompatibleActions']; + capabilities: { canSaveVisualizations: boolean; canSaveDashboards: boolean }; } export class Embeddable @@ -129,7 +129,6 @@ export class Embeddable initialInput, { editApp: 'lens', - editable: deps.editable, }, parent ); @@ -326,7 +325,7 @@ export class Embeddable hasCompatibleActions={this.hasCompatibleActions} className={input.className} style={input.style} - canEdit={this.deps.editable && input.viewMode === 'edit'} + canEdit={this.getIsEditable() && input.viewMode === 'edit'} />, domNode ); @@ -451,6 +450,7 @@ export class Embeddable this.updateOutput({ ...this.getOutput(), defaultTitle: this.savedVis.title, + editable: this.getIsEditable(), title, editPath: getEditPath(savedObjectId), editUrl: this.deps.basePath.prepend(`/app/lens${getEditPath(savedObjectId)}`), @@ -458,6 +458,13 @@ export class Embeddable }); } + private getIsEditable() { + return ( + this.deps.capabilities.canSaveVisualizations || + (!this.inputIsRefType(this.getInput()) && this.deps.capabilities.canSaveDashboards) + ); + } + public inputIsRefType = ( input: LensByValueInput | LensByReferenceInput ): input is LensByReferenceInput => { diff --git a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts index a676b7283671c..1a4962bd1fe8e 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts +++ b/x-pack/plugins/lens/public/editor_frame_service/embeddable/embeddable_factory.ts @@ -53,7 +53,7 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { public isEditable = async () => { const { capabilities } = await this.getStartServices(); - return capabilities.visualize.save as boolean; + return Boolean(capabilities.visualize.save || capabilities.dashboard?.showWriteControls); }; canCreateNew() { @@ -86,6 +86,7 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { coreHttp, attributeService, indexPatternService, + capabilities, } = await this.getStartServices(); const { Embeddable } = await import('../../async_services'); @@ -96,11 +97,14 @@ export class EmbeddableFactory implements EmbeddableFactoryDefinition { indexPatternService, timefilter, expressionRenderer, - editable: await this.isEditable(), basePath: coreHttp.basePath, getTrigger: uiActions?.getTrigger, getTriggerCompatibleActions: uiActions?.getTriggerCompatibleActions, documentToExpression, + capabilities: { + canSaveDashboards: Boolean(capabilities.dashboard?.showWriteControls), + canSaveVisualizations: Boolean(capabilities.visualize.save), + }, }, input, parent diff --git a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx index 597cd8e9c4287..7e0aa59756876 100644 --- a/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx +++ b/x-pack/plugins/maps/public/routes/map_page/top_nav_config.tsx @@ -201,7 +201,11 @@ export function getTopNavConfig({ options={tagSelector} /> ) : ( - + ); showSaveModal(saveModal, getCoreI18n().Context, PresentationUtilContext); diff --git a/x-pack/test/functional/apps/dashboard/feature_controls/index.ts b/x-pack/test/functional/apps/dashboard/feature_controls/index.ts index 38d139c59430e..3b32ea031f6e2 100644 --- a/x-pack/test/functional/apps/dashboard/feature_controls/index.ts +++ b/x-pack/test/functional/apps/dashboard/feature_controls/index.ts @@ -11,6 +11,7 @@ export default function ({ loadTestFile }: FtrProviderContext) { describe('feature controls', function () { this.tags(['skipFirefox']); loadTestFile(require.resolve('./dashboard_security')); + loadTestFile(require.resolve('./time_to_visualize_security')); loadTestFile(require.resolve('./dashboard_spaces')); }); } diff --git a/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts b/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts new file mode 100644 index 0000000000000..3ebc53cc7cf27 --- /dev/null +++ b/x-pack/test/functional/apps/dashboard/feature_controls/time_to_visualize_security.ts @@ -0,0 +1,233 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + const PageObjects = getPageObjects([ + 'timeToVisualize', + 'timePicker', + 'dashboard', + 'visEditor', + 'visualize', + 'security', + 'common', + 'header', + 'lens', + ]); + + const dashboardVisualizations = getService('dashboardVisualizations'); + const dashboardPanelActions = getService('dashboardPanelActions'); + const dashboardExpect = getService('dashboardExpect'); + const testSubjects = getService('testSubjects'); + const esArchiver = getService('esArchiver'); + const security = getService('security'); + const find = getService('find'); + + describe('dashboard time to visualize security', () => { + before(async () => { + await esArchiver.load('dashboard/feature_controls/security'); + await esArchiver.loadIfNeeded('logstash_functional'); + + // ensure we're logged out so we can login as the appropriate users + await PageObjects.security.forceLogout(); + + await security.role.create('dashboard_write_vis_read', { + elasticsearch: { + indices: [{ names: ['logstash-*'], privileges: ['read', 'view_index_metadata'] }], + }, + kibana: [ + { + feature: { + dashboard: ['all'], + visualize: ['read'], + }, + spaces: ['*'], + }, + ], + }); + + await security.user.create('dashboard_write_vis_read_user', { + password: 'dashboard_write_vis_read_user-password', + roles: ['dashboard_write_vis_read'], + full_name: 'test user', + }); + + await PageObjects.security.login( + 'dashboard_write_vis_read_user', + 'dashboard_write_vis_read_user-password', + { + expectSpaceSelector: false, + } + ); + }); + + after(async () => { + await security.role.delete('dashboard_write_vis_read'); + await security.user.delete('dashboard_write_vis_read_user'); + + await esArchiver.unload('dashboard/feature_controls/security'); + + // logout, so the other tests don't accidentally run as the custom users we're testing below + await PageObjects.security.forceLogout(); + }); + + describe('lens by value works without library save permissions', () => { + before(async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.preserveCrossAppState(); + await PageObjects.dashboard.clickNewDashboard(); + }); + + it('can add a lens panel by value', async () => { + await dashboardVisualizations.ensureNewVisualizationDialogIsShowing(); + await PageObjects.lens.createAndAddLensFromDashboard({}); + const newPanelCount = await PageObjects.dashboard.getPanelCount(); + expect(newPanelCount).to.eql(1); + }); + + it('edits to a by value lens panel are properly applied', async () => { + await PageObjects.dashboard.waitForRenderComplete(); + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + await PageObjects.lens.switchToVisualization('donut'); + await PageObjects.lens.saveAndReturn(); + await PageObjects.dashboard.waitForRenderComplete(); + + const pieExists = await find.existsByCssSelector('.lnsPieExpression__container'); + expect(pieExists).to.be(true); + }); + + it('disables save to library button without visualize save permissions', async () => { + await PageObjects.dashboard.waitForRenderComplete(); + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + const saveButton = await testSubjects.find('lnsApp_saveButton'); + expect(await saveButton.getAttribute('disabled')).to.equal('true'); + await PageObjects.lens.saveAndReturn(); + await PageObjects.timeToVisualize.resetNewDashboard(); + }); + + it('should allow new lens to be added by value, but not by reference', async () => { + await PageObjects.visualize.navigateToNewVisualization(); + await PageObjects.visualize.clickVisType('lens'); + await PageObjects.lens.goToTimeRange(); + + await PageObjects.lens.configureDimension({ + dimension: 'lnsXY_yDimensionPanel > lns-empty-dimension', + operation: 'average', + field: 'bytes', + }); + + await PageObjects.lens.switchToVisualization('lnsMetric'); + + await PageObjects.lens.waitForVisualization(); + await PageObjects.lens.assertMetric('Average of bytes', '5,727.322'); + + await PageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.click('lnsApp_saveButton'); + + const libraryCheckbox = await find.byCssSelector('#add-to-library-checkbox'); + expect(await libraryCheckbox.getAttribute('disabled')).to.equal('true'); + + await PageObjects.timeToVisualize.saveFromModal('New Lens from Modal', { + addToDashboard: 'new', + saveAsNew: true, + saveToLibrary: false, + }); + + await PageObjects.dashboard.waitForRenderComplete(); + + await PageObjects.lens.assertMetric('Average of bytes', '5,727.322'); + const isLinked = await PageObjects.timeToVisualize.libraryNotificationExists( + 'New Lens from Modal' + ); + expect(isLinked).to.be(false); + + const panelCount = await PageObjects.dashboard.getPanelCount(); + expect(panelCount).to.eql(1); + + await PageObjects.timeToVisualize.resetNewDashboard(); + }); + }); + + describe('visualize by value works without library save permissions', () => { + const originalMarkdownText = 'Original markdown text'; + const modifiedMarkdownText = 'Modified markdown text'; + + before(async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.preserveCrossAppState(); + await PageObjects.dashboard.clickNewDashboard(); + }); + + it('can add a markdown panel by value', async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.dashboard.waitForRenderComplete(); + + await testSubjects.click('dashboardAddNewPanelButton'); + await dashboardVisualizations.ensureNewVisualizationDialogIsShowing(); + await PageObjects.visualize.clickMarkdownWidget(); + await PageObjects.visEditor.setMarkdownTxt(originalMarkdownText); + await PageObjects.visEditor.clickGo(); + + await PageObjects.visualize.saveVisualizationAndReturn(); + const newPanelCount = await PageObjects.dashboard.getPanelCount(); + expect(newPanelCount).to.eql(1); + }); + + it('edits to a by value visualize panel are properly applied', async () => { + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.visEditor.setMarkdownTxt(modifiedMarkdownText); + await PageObjects.visEditor.clickGo(); + await PageObjects.visualize.saveVisualizationAndReturn(); + + await PageObjects.dashboard.waitForRenderComplete(); + const markdownText = await testSubjects.find('markdownBody'); + expect(await markdownText.getVisibleText()).to.eql(modifiedMarkdownText); + + const newPanelCount = PageObjects.dashboard.getPanelCount(); + expect(newPanelCount).to.eql(1); + }); + + it('disables save to library button without visualize save permissions', async () => { + await dashboardPanelActions.openContextMenu(); + await dashboardPanelActions.clickEdit(); + await PageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.missingOrFail('visualizeSaveButton'); + await PageObjects.visualize.saveVisualizationAndReturn(); + await PageObjects.timeToVisualize.resetNewDashboard(); + }); + + it('should allow new visualization to be added by value, but not by reference', async function () { + await PageObjects.visualize.navigateToNewAggBasedVisualization(); + await PageObjects.visualize.clickMetric(); + await PageObjects.visualize.clickNewSearch(); + await PageObjects.timePicker.setDefaultAbsoluteRange(); + + await testSubjects.click('visualizeSaveButton'); + + await PageObjects.visualize.ensureSavePanelOpen(); + const libraryCheckbox = await find.byCssSelector('#add-to-library-checkbox'); + expect(await libraryCheckbox.getAttribute('disabled')).to.equal('true'); + + await PageObjects.timeToVisualize.saveFromModal('My New Vis 1', { + addToDashboard: 'new', + }); + + await PageObjects.dashboard.waitForRenderComplete(); + await dashboardExpect.metricValuesExist(['14,005']); + const panelCount = await PageObjects.dashboard.getPanelCount(); + expect(panelCount).to.eql(1); + }); + }); + }); +} From 03b104cc6144cd02aa4fc64a733622ee191e01bd Mon Sep 17 00:00:00 2001 From: Kevin Qualters <56408403+kqualters-elastic@users.noreply.github.com> Date: Wed, 31 Mar 2021 15:33:19 -0400 Subject: [PATCH 021/106] [Security Solution][RAC][Timeline] Timeline plugin skeleton and test plugin harness (#95683) * [RAC][Security Solution] Initial timeline and test plugin harness * Change plugin name from timeline to timelines --- .github/CODEOWNERS | 1 + docs/developer/plugin-list.asciidoc | 4 ++ packages/kbn-optimizer/limits.yml | 1 + tsconfig.json | 1 + x-pack/.i18nrc.json | 1 + x-pack/plugins/timelines/.eslintrc.js | 7 +++ x-pack/plugins/timelines/.i18nrc.json | 7 +++ x-pack/plugins/timelines/README.md | 11 ++++ x-pack/plugins/timelines/common/index.ts | 2 + x-pack/plugins/timelines/kibana.json | 10 ++++ .../timelines/public/components/index.tsx | 22 +++++++ x-pack/plugins/timelines/public/index.scss | 0 x-pack/plugins/timelines/public/index.ts | 11 ++++ .../timelines/public/methods/index.tsx | 19 ++++++ x-pack/plugins/timelines/public/plugin.ts | 24 ++++++++ x-pack/plugins/timelines/public/types.ts | 9 +++ x-pack/plugins/timelines/server/config.ts | 13 ++++ x-pack/plugins/timelines/server/index.ts | 21 +++++++ x-pack/plugins/timelines/server/plugin.ts | 35 +++++++++++ .../plugins/timelines/server/routes/index.ts | 17 ++++++ x-pack/plugins/timelines/server/types.ts | 4 ++ x-pack/plugins/timelines/tsconfig.json | 19 ++++++ x-pack/test/plugin_functional/config.ts | 5 ++ .../plugins/timelines_test/kibana.json | 12 ++++ .../applications/timelines_test/index.tsx | 60 +++++++++++++++++++ .../plugins/timelines_test/public/index.ts | 20 +++++++ .../plugins/timelines_test/public/plugin.ts | 50 ++++++++++++++++ .../test_suites/timelines/index.ts | 25 ++++++++ 28 files changed, 411 insertions(+) create mode 100644 x-pack/plugins/timelines/.eslintrc.js create mode 100644 x-pack/plugins/timelines/.i18nrc.json create mode 100644 x-pack/plugins/timelines/README.md create mode 100644 x-pack/plugins/timelines/common/index.ts create mode 100644 x-pack/plugins/timelines/kibana.json create mode 100644 x-pack/plugins/timelines/public/components/index.tsx create mode 100644 x-pack/plugins/timelines/public/index.scss create mode 100644 x-pack/plugins/timelines/public/index.ts create mode 100644 x-pack/plugins/timelines/public/methods/index.tsx create mode 100644 x-pack/plugins/timelines/public/plugin.ts create mode 100644 x-pack/plugins/timelines/public/types.ts create mode 100644 x-pack/plugins/timelines/server/config.ts create mode 100644 x-pack/plugins/timelines/server/index.ts create mode 100644 x-pack/plugins/timelines/server/plugin.ts create mode 100644 x-pack/plugins/timelines/server/routes/index.ts create mode 100644 x-pack/plugins/timelines/server/types.ts create mode 100644 x-pack/plugins/timelines/tsconfig.json create mode 100644 x-pack/test/plugin_functional/plugins/timelines_test/kibana.json create mode 100644 x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx create mode 100644 x-pack/test/plugin_functional/plugins/timelines_test/public/index.ts create mode 100644 x-pack/test/plugin_functional/plugins/timelines_test/public/plugin.ts create mode 100644 x-pack/test/plugin_functional/test_suites/timelines/index.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f27885c1e32c3..d14556ea1dabf 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -348,6 +348,7 @@ # Security Solution sub teams /x-pack/plugins/case @elastic/security-threat-hunting +/x-pack/plugins/timelines @elastic/security-threat-hunting /x-pack/test/case_api_integration @elastic/security-threat-hunting /x-pack/plugins/lists @elastic/security-detections-response diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index e1c2c40a31384..bcf74936077ec 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -537,6 +537,10 @@ Documentation: https://www.elastic.co/guide/en/kibana/master/task-manager-produc |Gathers all usage collection, retrieving them from both: OSS and X-Pack plugins. +|{kib-repo}blob/{branch}/x-pack/plugins/timelines/README.md[timelines] +|Timelines is a plugin that provides a grid component with accompanying server side apis to help users identify events of interest and perform root cause analysis within Kibana. + + |{kib-repo}blob/{branch}/x-pack/plugins/transform/readme.md[transform] |This plugin provides access to the transforms features provided by Elastic. diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index c9c37108acef4..3c9fd4f59a406 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -108,3 +108,4 @@ pageLoadAssetSize: fileUpload: 25664 banners: 17946 mapsEms: 26072 + timelines: 28613 diff --git a/tsconfig.json b/tsconfig.json index 18647153acb0a..c852481518d54 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -123,6 +123,7 @@ { "path": "./x-pack/plugins/stack_alerts/tsconfig.json" }, { "path": "./x-pack/plugins/task_manager/tsconfig.json" }, { "path": "./x-pack/plugins/telemetry_collection_xpack/tsconfig.json" }, + { "path": "./x-pack/plugins/timelines/tsconfig.json" }, { "path": "./x-pack/plugins/transform/tsconfig.json" }, { "path": "./x-pack/plugins/translations/tsconfig.json" }, { "path": "./x-pack/plugins/triggers_actions_ui/tsconfig.json" }, diff --git a/x-pack/.i18nrc.json b/x-pack/.i18nrc.json index 663ae32f9128a..6bbbf6cd6b82d 100644 --- a/x-pack/.i18nrc.json +++ b/x-pack/.i18nrc.json @@ -53,6 +53,7 @@ "xpack.spaces": "plugins/spaces", "xpack.savedObjectsTagging": ["plugins/saved_objects_tagging"], "xpack.taskManager": "legacy/plugins/task_manager", + "xpack.timelines": "plugins/timelines", "xpack.transform": "plugins/transform", "xpack.triggersActionsUI": "plugins/triggers_actions_ui", "xpack.upgradeAssistant": "plugins/upgrade_assistant", diff --git a/x-pack/plugins/timelines/.eslintrc.js b/x-pack/plugins/timelines/.eslintrc.js new file mode 100644 index 0000000000000..b267018448ba6 --- /dev/null +++ b/x-pack/plugins/timelines/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + root: true, + extends: ['@elastic/eslint-config-kibana', 'plugin:@elastic/eui/recommended'], + rules: { + '@kbn/eslint/require-license-header': 'off', + }, +}; diff --git a/x-pack/plugins/timelines/.i18nrc.json b/x-pack/plugins/timelines/.i18nrc.json new file mode 100644 index 0000000000000..4fe01ccc7bc69 --- /dev/null +++ b/x-pack/plugins/timelines/.i18nrc.json @@ -0,0 +1,7 @@ +{ + "prefix": "timelines", + "paths": { + "timelines": "." + }, + "translations": ["translations/ja-JP.json"] +} diff --git a/x-pack/plugins/timelines/README.md b/x-pack/plugins/timelines/README.md new file mode 100644 index 0000000000000..441a505903698 --- /dev/null +++ b/x-pack/plugins/timelines/README.md @@ -0,0 +1,11 @@ +# timelines +Timelines is a plugin that provides a grid component with accompanying server side apis to help users identify events of interest and perform root cause analysis within Kibana. + + +## Using timelines in another plugin +- Add `TimelinesPluginSetup` to Kibana plugin `SetupServices` dependencies: + +```ts +timelines: TimelinesPluginSetup; +``` +- Once `timelines` is added as a required plugin in the consuming plugin's kibana.json, timeline functionality will be available as any other kibana plugin, ie PluginSetupDependencies.timelines.getTimeline() diff --git a/x-pack/plugins/timelines/common/index.ts b/x-pack/plugins/timelines/common/index.ts new file mode 100644 index 0000000000000..2354c513f73b8 --- /dev/null +++ b/x-pack/plugins/timelines/common/index.ts @@ -0,0 +1,2 @@ +export const PLUGIN_ID = 'timelines'; +export const PLUGIN_NAME = 'timelines'; diff --git a/x-pack/plugins/timelines/kibana.json b/x-pack/plugins/timelines/kibana.json new file mode 100644 index 0000000000000..552ddfd25ce73 --- /dev/null +++ b/x-pack/plugins/timelines/kibana.json @@ -0,0 +1,10 @@ +{ + "id": "timelines", + "version": "1.0.0", + "kibanaVersion": "kibana", + "configPath": ["xpack", "timelines"], + "server": true, + "ui": true, + "requiredPlugins": [], + "optionalPlugins": [] +} diff --git a/x-pack/plugins/timelines/public/components/index.tsx b/x-pack/plugins/timelines/public/components/index.tsx new file mode 100644 index 0000000000000..3388b3c44baff --- /dev/null +++ b/x-pack/plugins/timelines/public/components/index.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { FormattedMessage, I18nProvider } from '@kbn/i18n/react'; + +import { PLUGIN_NAME } from '../../common'; +import { TimelineProps } from '../types'; + +export const Timeline = (props: TimelineProps) => { + return ( + +
+ +
+
+ ); +}; + +// eslint-disable-next-line import/no-default-export +export { Timeline as default }; diff --git a/x-pack/plugins/timelines/public/index.scss b/x-pack/plugins/timelines/public/index.scss new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/x-pack/plugins/timelines/public/index.ts b/x-pack/plugins/timelines/public/index.ts new file mode 100644 index 0000000000000..b535def809de3 --- /dev/null +++ b/x-pack/plugins/timelines/public/index.ts @@ -0,0 +1,11 @@ +import './index.scss'; + +import { PluginInitializerContext } from 'src/core/public'; +import { TimelinesPlugin } from './plugin'; + +// This exports static code and TypeScript types, +// as well as, Kibana Platform `plugin()` initializer. +export function plugin(initializerContext: PluginInitializerContext) { + return new TimelinesPlugin(initializerContext); +} +export { TimelinesPluginSetup } from './types'; diff --git a/x-pack/plugins/timelines/public/methods/index.tsx b/x-pack/plugins/timelines/public/methods/index.tsx new file mode 100644 index 0000000000000..f999e14ce910c --- /dev/null +++ b/x-pack/plugins/timelines/public/methods/index.tsx @@ -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. + */ + +import React, { lazy, Suspense } from 'react'; +import { EuiLoadingSpinner } from '@elastic/eui'; +import { TimelineProps } from '../types'; + +export const getTimelineLazy = (props: TimelineProps) => { + const TimelineLazy = lazy(() => import('../components')); + return ( + }> + + + ); +}; diff --git a/x-pack/plugins/timelines/public/plugin.ts b/x-pack/plugins/timelines/public/plugin.ts new file mode 100644 index 0000000000000..7e90d9467fefd --- /dev/null +++ b/x-pack/plugins/timelines/public/plugin.ts @@ -0,0 +1,24 @@ +import { CoreSetup, Plugin, PluginInitializerContext } from '../../../../src/core/public'; +import { TimelinesPluginSetup, TimelineProps } from './types'; +import { getTimelineLazy } from './methods'; + +export class TimelinesPlugin implements Plugin { + constructor(private readonly initializerContext: PluginInitializerContext) {} + + public setup(core: CoreSetup): TimelinesPluginSetup { + const config = this.initializerContext.config.get<{ enabled: boolean }>(); + if (!config.enabled) { + return {}; + } + + return { + getTimeline: (props: TimelineProps) => { + return getTimelineLazy(props); + }, + }; + } + + public start() {} + + public stop() {} +} diff --git a/x-pack/plugins/timelines/public/types.ts b/x-pack/plugins/timelines/public/types.ts new file mode 100644 index 0000000000000..b199b45902718 --- /dev/null +++ b/x-pack/plugins/timelines/public/types.ts @@ -0,0 +1,9 @@ +import { ReactElement } from 'react'; + +export interface TimelinesPluginSetup { + getTimeline?: (props: TimelineProps) => ReactElement; +} + +export interface TimelineProps { + timelineId: string; +} diff --git a/x-pack/plugins/timelines/server/config.ts b/x-pack/plugins/timelines/server/config.ts new file mode 100644 index 0000000000000..633a95b8f91a7 --- /dev/null +++ b/x-pack/plugins/timelines/server/config.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; + * you may not use this file except in compliance with the Elastic License. + */ + +import { TypeOf, schema } from '@kbn/config-schema'; + +export const ConfigSchema = schema.object({ + enabled: schema.boolean({ defaultValue: false }), +}); + +export type ConfigType = TypeOf; diff --git a/x-pack/plugins/timelines/server/index.ts b/x-pack/plugins/timelines/server/index.ts new file mode 100644 index 0000000000000..32de97be2704a --- /dev/null +++ b/x-pack/plugins/timelines/server/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { PluginInitializerContext } from '../../../../src/core/server'; +import { TimelinesPlugin } from './plugin'; +import { ConfigSchema } from './config'; + +export const config = { + schema: ConfigSchema, + exposeToBrowser: { + enabled: true, + }, +}; +export function plugin(initializerContext: PluginInitializerContext) { + return new TimelinesPlugin(initializerContext); +} + +export { TimelinesPluginSetup, TimelinesPluginStart } from './types'; diff --git a/x-pack/plugins/timelines/server/plugin.ts b/x-pack/plugins/timelines/server/plugin.ts new file mode 100644 index 0000000000000..3e330b19b7fdb --- /dev/null +++ b/x-pack/plugins/timelines/server/plugin.ts @@ -0,0 +1,35 @@ +import { + PluginInitializerContext, + CoreSetup, + CoreStart, + Plugin, + Logger, +} from '../../../../src/core/server'; + +import { TimelinesPluginSetup, TimelinesPluginStart } from './types'; +import { defineRoutes } from './routes'; + +export class TimelinesPlugin implements Plugin { + private readonly logger: Logger; + + constructor(initializerContext: PluginInitializerContext) { + this.logger = initializerContext.logger.get(); + } + + public setup(core: CoreSetup) { + this.logger.debug('timelines: Setup'); + const router = core.http.createRouter(); + + // Register server side APIs + defineRoutes(router); + + return {}; + } + + public start(core: CoreStart) { + this.logger.debug('timelines: Started'); + return {}; + } + + public stop() {} +} diff --git a/x-pack/plugins/timelines/server/routes/index.ts b/x-pack/plugins/timelines/server/routes/index.ts new file mode 100644 index 0000000000000..edb10c579b30b --- /dev/null +++ b/x-pack/plugins/timelines/server/routes/index.ts @@ -0,0 +1,17 @@ +import { IRouter } from '../../../../../src/core/server'; + +export function defineRoutes(router: IRouter) { + router.get( + { + path: '/api/timeline/example', + validate: false, + }, + async (context, request, response) => { + return response.ok({ + body: { + time: new Date().toISOString(), + }, + }); + } + ); +} diff --git a/x-pack/plugins/timelines/server/types.ts b/x-pack/plugins/timelines/server/types.ts new file mode 100644 index 0000000000000..cb544562b79b4 --- /dev/null +++ b/x-pack/plugins/timelines/server/types.ts @@ -0,0 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface TimelinesPluginSetup {} +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface TimelinesPluginStart {} diff --git a/x-pack/plugins/timelines/tsconfig.json b/x-pack/plugins/timelines/tsconfig.json new file mode 100644 index 0000000000000..67e606e798c03 --- /dev/null +++ b/x-pack/plugins/timelines/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "outDir": "./target/types", + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true + }, + "include": [ + // add all the folders contains files to be compiled + "common/**/*", + "public/**/*", + "server/**/*" + ], + "references": [ + { "path": "../../../src/core/tsconfig.json" }, + ] +} diff --git a/x-pack/test/plugin_functional/config.ts b/x-pack/test/plugin_functional/config.ts index 5b846e414bd4c..104d11eb87f7c 100644 --- a/x-pack/test/plugin_functional/config.ts +++ b/x-pack/test/plugin_functional/config.ts @@ -30,6 +30,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { testFiles: [ resolve(__dirname, './test_suites/resolver'), resolve(__dirname, './test_suites/global_search'), + resolve(__dirname, './test_suites/timelines'), ], services, @@ -47,6 +48,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { KIBANA_ROOT, 'test/plugin_functional/plugins/core_provider_plugin' )}`, + '--xpack.timelines.enabled=true', ...plugins.map((pluginDir) => `--plugin-path=${resolve(__dirname, 'plugins', pluginDir)}`), ], }, @@ -60,6 +62,9 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { resolverTest: { pathname: '/app/resolverTest', }, + timelineTest: { + pathname: '/app/timelinesTest', + }, }, // choose where esArchiver should load archives from diff --git a/x-pack/test/plugin_functional/plugins/timelines_test/kibana.json b/x-pack/test/plugin_functional/plugins/timelines_test/kibana.json new file mode 100644 index 0000000000000..85c2639ef7d47 --- /dev/null +++ b/x-pack/test/plugin_functional/plugins/timelines_test/kibana.json @@ -0,0 +1,12 @@ +{ + "id": "timelinesTest", + "version": "1.0.0", + "kibanaVersion": "kibana", + "configPath": ["xpack", "timelinesTest"], + "requiredPlugins": ["timelines"], + "requiredBundles": [ + "kibanaReact" + ], + "server": false, + "ui": true +} diff --git a/x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx b/x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx new file mode 100644 index 0000000000000..a6772c3b0bb5b --- /dev/null +++ b/x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Router } from 'react-router-dom'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import { AppMountParameters, CoreStart } from 'kibana/public'; +import { I18nProvider } from '@kbn/i18n/react'; +import { KibanaContextProvider } from '../../../../../../../../src/plugins/kibana_react/public'; +import { TimelinesPluginSetup } from '../../../../../../../plugins/timelines/public'; + +/** + * Render the Timeline Test app. Returns a cleanup function. + */ +export function renderApp( + coreStart: CoreStart, + parameters: AppMountParameters, + timelinesPluginSetup: TimelinesPluginSetup +) { + ReactDOM.render( + , + parameters.element + ); + + return () => { + ReactDOM.unmountComponentAtNode(parameters.element); + }; +} + +const AppRoot = React.memo( + ({ + coreStart, + parameters, + timelinesPluginSetup, + }: { + coreStart: CoreStart; + parameters: AppMountParameters; + timelinesPluginSetup: TimelinesPluginSetup; + }) => { + return ( + + + + {(timelinesPluginSetup.getTimeline && + timelinesPluginSetup.getTimeline({ timelineId: 'test' })) ?? + null} + + + + ); + } +); diff --git a/x-pack/test/plugin_functional/plugins/timelines_test/public/index.ts b/x-pack/test/plugin_functional/plugins/timelines_test/public/index.ts new file mode 100644 index 0000000000000..5f038b5b933e6 --- /dev/null +++ b/x-pack/test/plugin_functional/plugins/timelines_test/public/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PluginInitializer } from 'kibana/public'; +import { + TimelinesTestPlugin, + TimelinesTestPluginSetupDependencies, + TimelinesTestPluginStartDependencies, +} from './plugin'; + +export const plugin: PluginInitializer< + void, + void, + TimelinesTestPluginSetupDependencies, + TimelinesTestPluginStartDependencies +> = () => new TimelinesTestPlugin(); diff --git a/x-pack/test/plugin_functional/plugins/timelines_test/public/plugin.ts b/x-pack/test/plugin_functional/plugins/timelines_test/public/plugin.ts new file mode 100644 index 0000000000000..5cf900e194d0c --- /dev/null +++ b/x-pack/test/plugin_functional/plugins/timelines_test/public/plugin.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 { Plugin, CoreSetup, AppMountParameters } from 'kibana/public'; +import { i18n } from '@kbn/i18n'; +import { TimelinesPluginSetup } from '../../../../../plugins/timelines/public'; +import { renderApp } from './applications/timelines_test'; + +export type TimelinesTestPluginSetup = void; +export type TimelinesTestPluginStart = void; +export interface TimelinesTestPluginSetupDependencies { + timelines: TimelinesPluginSetup; +} + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface TimelinesTestPluginStartDependencies {} + +export class TimelinesTestPlugin + implements + Plugin< + TimelinesTestPluginSetup, + void, + TimelinesTestPluginSetupDependencies, + TimelinesTestPluginStartDependencies + > { + public setup( + core: CoreSetup, + setupDependencies: TimelinesTestPluginSetupDependencies + ) { + core.application.register({ + id: 'timelinesTest', + title: i18n.translate('xpack.timelinesTest.pluginTitle', { + defaultMessage: 'Timelines Test', + }), + mount: async (params: AppMountParameters) => { + const startServices = await core.getStartServices(); + const [coreStart] = startServices; + const { timelines } = setupDependencies; + + return renderApp(coreStart, params, timelines); + }, + }); + } + + public start() {} +} diff --git a/x-pack/test/plugin_functional/test_suites/timelines/index.ts b/x-pack/test/plugin_functional/test_suites/timelines/index.ts new file mode 100644 index 0000000000000..655ed9dc3898a --- /dev/null +++ b/x-pack/test/plugin_functional/test_suites/timelines/index.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + describe('Timelines plugin API', function () { + this.tags('ciGroup7'); + const pageObjects = getPageObjects(['common']); + const testSubjects = getService('testSubjects'); + + describe('timelines plugin rendering', function () { + before(async () => { + await pageObjects.common.navigateToApp('timelineTest'); + }); + it('shows the timeline component on navigation', async () => { + await testSubjects.existOrFail('timeline-wrapper'); + }); + }); + }); +} From b13181a53957f67ee5d2e255adfc9bb8bdbf899f Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Wed, 31 Mar 2021 15:53:28 -0400 Subject: [PATCH 022/106] [Fleet] Fleet server invalidate api keys for agent < 7.13 (#95789) --- .../fleet_server/saved_object_migrations.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts b/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts index f078b214e4dfd..7af2b791f3707 100644 --- a/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts +++ b/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts @@ -25,6 +25,7 @@ import { listEnrollmentApiKeys, getEnrollmentAPIKey } from '../api_keys/enrollme import { appContextService } from '../app_context'; import { isAgentsSetup } from '../agents'; import { agentPolicyService } from '../agent_policy'; +import { invalidateAPIKeys } from '../api_keys'; export async function runFleetServerMigration() { // If Agents are not setup skip as there is nothing to migrate @@ -56,6 +57,7 @@ function getInternalUserSOClient() { async function migrateAgents() { const esClient = appContextService.getInternalUserESClient(); const soClient = getInternalUserSOClient(); + const logger = appContextService.getLogger(); let hasMore = true; while (hasMore) { const res = await soClient.find({ @@ -75,11 +77,20 @@ async function migrateAgents() { .getEncryptedSavedObjects() .getDecryptedAsInternalUser(AGENT_SAVED_OBJECT_TYPE, so.id); + await invalidateAPIKeys( + soClient, + [attributes.access_api_key_id, attributes.default_api_key_id].filter( + (keyId): keyId is string => keyId !== undefined + ) + ).catch((error) => { + logger.error(`Invalidating API keys for agent ${so.id} failed: ${error.message}`); + }); + const body: FleetServerAgent = { type: attributes.type, - active: attributes.active, + active: false, enrolled_at: attributes.enrolled_at, - unenrolled_at: attributes.unenrolled_at, + unenrolled_at: new Date().toISOString(), unenrollment_started_at: attributes.unenrollment_started_at, upgraded_at: attributes.upgraded_at, upgrade_started_at: attributes.upgrade_started_at, From 2a3edb0adb8c9d3214f35fdddc5f11931daa7cd7 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 31 Mar 2021 13:06:04 -0700 Subject: [PATCH 023/106] skip flaky suite (#95591) --- .../apps/triggers_actions_ui/alerts_list.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts index 4c085cbb77045..7b760dfb8b6a1 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts_list.ts @@ -54,7 +54,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await testSubjects.click('rulesTab'); } - describe('alerts list', function () { + // FLAKY: https://github.com/elastic/kibana/issues/95591 + describe.skip('alerts list', function () { before(async () => { await pageObjects.common.navigateToApp('triggersActions'); await testSubjects.click('rulesTab'); From 0fce2427e5c24ddcaf07ec0049a597fff138f2ef Mon Sep 17 00:00:00 2001 From: Tim Sullivan Date: Wed, 31 Mar 2021 13:12:19 -0700 Subject: [PATCH 024/106] [Reporting] CSV Export: fix and unskip failing test (#95824) * [Reporting] CSV Export: fix and unskip failing test * fix snapshot extra records Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../functional/apps/discover/__snapshots__/reporting.snap | 4 ++-- x-pack/test/functional/apps/discover/reporting.ts | 3 +-- .../__snapshots__/csv_searchsource_immediate.snap | 8 ++++---- .../reporting_and_security/csv_searchsource_immediate.ts | 3 +-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/x-pack/test/functional/apps/discover/__snapshots__/reporting.snap b/x-pack/test/functional/apps/discover/__snapshots__/reporting.snap index 5ddef936b41ae..baa49cb6f9d81 100644 --- a/x-pack/test/functional/apps/discover/__snapshots__/reporting.snap +++ b/x-pack/test/functional/apps/discover/__snapshots__/reporting.snap @@ -71,7 +71,7 @@ exports[`discover Discover CSV Export Generate CSV: new search generates a repor 24.5 ], \\"\\"type\\"\\": \\"\\"Point\\"\\" -}\\",\\"Abu Dhabi\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Jul 12, 2019 @ 00:00:00.000\\",716724,\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0, 0, 0\\",\\"0, 0, 0, 0\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"42.39, 32.99, 10.34, 6.11\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"23,975, 6,338, 14,116, 15,290\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"1, 1, 1, 1\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"0, 0, 0, 0\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"0, 0, 0, 0\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"173.96\\",\\"173.96\\",4,4,order,sultan +}\\",\\"Abu Dhabi\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Jul 12, 2019 @ 00:00:00.000\\",716724,\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"80, 60, 21.984, 11.992\\",\\"80, 60, 21.984, 11.992\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0, 0, 0\\",\\"0, 0, 0, 0\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"42.375, 33, 10.344, 6.109\\",\\"80, 60, 21.984, 11.992\\",\\"23,975, 6,338, 14,116, 15,290\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"1, 1, 1, 1\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"0, 0, 0, 0\\",\\"80, 60, 21.984, 11.992\\",\\"80, 60, 21.984, 11.992\\",\\"0, 0, 0, 0\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",174,174,4,4,order,sultan " `; @@ -83,6 +83,6 @@ exports[`discover Discover CSV Export Generate CSV: new search generates a repor 24.5 ], \\"\\"type\\"\\": \\"\\"Point\\"\\" -}\\",\\"Abu Dhabi\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Jul 12, 2019 @ 00:00:00.000\\",716724,\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0, 0, 0\\",\\"0, 0, 0, 0\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"42.39, 32.99, 10.34, 6.11\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"23,975, 6,338, 14,116, 15,290\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"1, 1, 1, 1\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"0, 0, 0, 0\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"0, 0, 0, 0\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"173.96\\",\\"173.96\\",4,4,order,sultan +}\\",\\"Abu Dhabi\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Jul 12, 2019 @ 00:00:00.000\\",716724,\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"80, 60, 21.984, 11.992\\",\\"80, 60, 21.984, 11.992\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0, 0, 0\\",\\"0, 0, 0, 0\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"42.375, 33, 10.344, 6.109\\",\\"80, 60, 21.984, 11.992\\",\\"23,975, 6,338, 14,116, 15,290\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"1, 1, 1, 1\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"0, 0, 0, 0\\",\\"80, 60, 21.984, 11.992\\",\\"80, 60, 21.984, 11.992\\",\\"0, 0, 0, 0\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",174,174,4,4,order,sultan " `; diff --git a/x-pack/test/functional/apps/discover/reporting.ts b/x-pack/test/functional/apps/discover/reporting.ts index 9acb4c311c113..d7dd961e2f103 100644 --- a/x-pack/test/functional/apps/discover/reporting.ts +++ b/x-pack/test/functional/apps/discover/reporting.ts @@ -21,8 +21,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await kibanaServer.uiSettings.update({ 'discover:searchFieldsFromSource': setValue }); }; - // Failing: See https://github.com/elastic/kibana/issues/95592 - describe.skip('Discover CSV Export', () => { + describe('Discover CSV Export', () => { before('initialize tests', async () => { log.debug('ReportingPage:initTests'); await esArchiver.load('reporting/ecommerce'); diff --git a/x-pack/test/reporting_api_integration/reporting_and_security/__snapshots__/csv_searchsource_immediate.snap b/x-pack/test/reporting_api_integration/reporting_and_security/__snapshots__/csv_searchsource_immediate.snap index c7ef39f65f552..094d72942353d 100644 --- a/x-pack/test/reporting_api_integration/reporting_and_security/__snapshots__/csv_searchsource_immediate.snap +++ b/x-pack/test/reporting_api_integration/reporting_and_security/__snapshots__/csv_searchsource_immediate.snap @@ -8,28 +8,28 @@ exports[`Reporting APIs CSV Generation from SearchSource Exports CSV with all fi 24.5 ], \\"\\"type\\"\\": \\"\\"Point\\"\\" -}\\",\\"Abu Dhabi\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Jul 12, 2019 @ 00:00:00.000\\",716724,\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0, 0, 0\\",\\"0, 0, 0, 0\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"42.39, 32.99, 10.34, 6.11\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"23,975, 6,338, 14,116, 15,290\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"1, 1, 1, 1\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"0, 0, 0, 0\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"79.99, 59.99, 21.99, 11.99\\",\\"0, 0, 0, 0\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"173.96\\",\\"173.96\\",4,4,order,sultan +}\\",\\"Abu Dhabi\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Angeldale, Oceanavigations, Microlutions\\",\\"Jul 12, 2019 @ 00:00:00.000\\",716724,\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"sold_product_716724_23975, sold_product_716724_6338, sold_product_716724_14116, sold_product_716724_15290\\",\\"80, 60, 21.984, 11.992\\",\\"80, 60, 21.984, 11.992\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Men's Shoes, Men's Clothing, Women's Accessories, Men's Accessories\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0, 0, 0\\",\\"0, 0, 0, 0\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"Angeldale, Oceanavigations, Microlutions, Oceanavigations\\",\\"42.375, 33, 10.344, 6.109\\",\\"80, 60, 21.984, 11.992\\",\\"23,975, 6,338, 14,116, 15,290\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"Winter boots - cognac, Trenchcoat - black, Watch - black, Hat - light grey multicolor\\",\\"1, 1, 1, 1\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",\\"0, 0, 0, 0\\",\\"80, 60, 21.984, 11.992\\",\\"80, 60, 21.984, 11.992\\",\\"0, 0, 0, 0\\",\\"ZO0687606876, ZO0290502905, ZO0126701267, ZO0308503085\\",174,174,4,4,order,sultan 9gMtOW0BH63Xcmy432DJ,ecommerce,\\"-\\",\\"-\\",\\"Women's Shoes, Women's Clothing\\",\\"Women's Shoes, Women's Clothing\\",EUR,Pia,Pia,\\"Pia Richards\\",\\"Pia Richards\\",FEMALE,45,Richards,Richards,,Saturday,5,\\"pia@richards-family.zzz\\",Cannes,Europe,FR,\\"{ \\"\\"coordinates\\"\\": [ 7, 43.6 ], \\"\\"type\\"\\": \\"\\"Point\\"\\" -}\\",\\"Alpes-Maritimes\\",\\"Tigress Enterprises, Pyramidustries\\",\\"Tigress Enterprises, Pyramidustries\\",\\"Jul 12, 2019 @ 00:00:00.000\\",591503,\\"sold_product_591503_14761, sold_product_591503_11632\\",\\"sold_product_591503_14761, sold_product_591503_11632\\",\\"20.99, 20.99\\",\\"20.99, 20.99\\",\\"Women's Shoes, Women's Clothing\\",\\"Women's Shoes, Women's Clothing\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0\\",\\"0, 0\\",\\"Tigress Enterprises, Pyramidustries\\",\\"Tigress Enterprises, Pyramidustries\\",\\"10.7, 9.87\\",\\"20.99, 20.99\\",\\"14,761, 11,632\\",\\"Classic heels - blue, Summer dress - coral/pink\\",\\"Classic heels - blue, Summer dress - coral/pink\\",\\"1, 1\\",\\"ZO0006400064, ZO0150601506\\",\\"0, 0\\",\\"20.99, 20.99\\",\\"20.99, 20.99\\",\\"0, 0\\",\\"ZO0006400064, ZO0150601506\\",\\"41.98\\",\\"41.98\\",2,2,order,pia +}\\",\\"Alpes-Maritimes\\",\\"Tigress Enterprises, Pyramidustries\\",\\"Tigress Enterprises, Pyramidustries\\",\\"Jul 12, 2019 @ 00:00:00.000\\",591503,\\"sold_product_591503_14761, sold_product_591503_11632\\",\\"sold_product_591503_14761, sold_product_591503_11632\\",\\"20.984, 20.984\\",\\"20.984, 20.984\\",\\"Women's Shoes, Women's Clothing\\",\\"Women's Shoes, Women's Clothing\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0\\",\\"0, 0\\",\\"Tigress Enterprises, Pyramidustries\\",\\"Tigress Enterprises, Pyramidustries\\",\\"10.703, 9.867\\",\\"20.984, 20.984\\",\\"14,761, 11,632\\",\\"Classic heels - blue, Summer dress - coral/pink\\",\\"Classic heels - blue, Summer dress - coral/pink\\",\\"1, 1\\",\\"ZO0006400064, ZO0150601506\\",\\"0, 0\\",\\"20.984, 20.984\\",\\"20.984, 20.984\\",\\"0, 0\\",\\"ZO0006400064, ZO0150601506\\",\\"41.969\\",\\"41.969\\",2,2,order,pia BgMtOW0BH63Xcmy432LJ,ecommerce,\\"-\\",\\"-\\",\\"Women's Clothing\\",\\"Women's Clothing\\",EUR,Brigitte,Brigitte,\\"Brigitte Meyer\\",\\"Brigitte Meyer\\",FEMALE,12,Meyer,Meyer,,Saturday,5,\\"brigitte@meyer-family.zzz\\",\\"New York\\",\\"North America\\",US,\\"{ \\"\\"coordinates\\"\\": [ -74, 40.8 ], \\"\\"type\\"\\": \\"\\"Point\\"\\" -}\\",\\"New York\\",\\"Spherecords, Tigress Enterprises\\",\\"Spherecords, Tigress Enterprises\\",\\"Jul 12, 2019 @ 00:00:00.000\\",591709,\\"sold_product_591709_20734, sold_product_591709_7539\\",\\"sold_product_591709_20734, sold_product_591709_7539\\",\\"7.99, 32.99\\",\\"7.99, 32.99\\",\\"Women's Clothing, Women's Clothing\\",\\"Women's Clothing, Women's Clothing\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0\\",\\"0, 0\\",\\"Spherecords, Tigress Enterprises\\",\\"Spherecords, Tigress Enterprises\\",\\"3.6, 17.48\\",\\"7.99, 32.99\\",\\"20,734, 7,539\\",\\"Basic T-shirt - dark blue, Summer dress - scarab\\",\\"Basic T-shirt - dark blue, Summer dress - scarab\\",\\"1, 1\\",\\"ZO0638206382, ZO0038800388\\",\\"0, 0\\",\\"7.99, 32.99\\",\\"7.99, 32.99\\",\\"0, 0\\",\\"ZO0638206382, ZO0038800388\\",\\"40.98\\",\\"40.98\\",2,2,order,brigitte +}\\",\\"New York\\",\\"Spherecords, Tigress Enterprises\\",\\"Spherecords, Tigress Enterprises\\",\\"Jul 12, 2019 @ 00:00:00.000\\",591709,\\"sold_product_591709_20734, sold_product_591709_7539\\",\\"sold_product_591709_20734, sold_product_591709_7539\\",\\"7.988, 33\\",\\"7.988, 33\\",\\"Women's Clothing, Women's Clothing\\",\\"Women's Clothing, Women's Clothing\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0\\",\\"0, 0\\",\\"Spherecords, Tigress Enterprises\\",\\"Spherecords, Tigress Enterprises\\",\\"3.6, 17.484\\",\\"7.988, 33\\",\\"20,734, 7,539\\",\\"Basic T-shirt - dark blue, Summer dress - scarab\\",\\"Basic T-shirt - dark blue, Summer dress - scarab\\",\\"1, 1\\",\\"ZO0638206382, ZO0038800388\\",\\"0, 0\\",\\"7.988, 33\\",\\"7.988, 33\\",\\"0, 0\\",\\"ZO0638206382, ZO0038800388\\",\\"40.969\\",\\"40.969\\",2,2,order,brigitte KQMtOW0BH63Xcmy432LJ,ecommerce,\\"-\\",\\"-\\",\\"Men's Clothing\\",\\"Men's Clothing\\",EUR,Abd,Abd,\\"Abd Mccarthy\\",\\"Abd Mccarthy\\",MALE,52,Mccarthy,Mccarthy,,Saturday,5,\\"abd@mccarthy-family.zzz\\",Cairo,Africa,EG,\\"{ \\"\\"coordinates\\"\\": [ 31.3, 30.1 ], \\"\\"type\\"\\": \\"\\"Point\\"\\" -}\\",\\"Cairo Governorate\\",\\"Oceanavigations, Elitelligence\\",\\"Oceanavigations, Elitelligence\\",\\"Jul 12, 2019 @ 00:00:00.000\\",590937,\\"sold_product_590937_14438, sold_product_590937_23607\\",\\"sold_product_590937_14438, sold_product_590937_23607\\",\\"28.99, 12.99\\",\\"28.99, 12.99\\",\\"Men's Clothing, Men's Clothing\\",\\"Men's Clothing, Men's Clothing\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0\\",\\"0, 0\\",\\"Oceanavigations, Elitelligence\\",\\"Oceanavigations, Elitelligence\\",\\"13.34, 6.11\\",\\"28.99, 12.99\\",\\"14,438, 23,607\\",\\"Jumper - dark grey multicolor, Print T-shirt - black\\",\\"Jumper - dark grey multicolor, Print T-shirt - black\\",\\"1, 1\\",\\"ZO0297602976, ZO0565605656\\",\\"0, 0\\",\\"28.99, 12.99\\",\\"28.99, 12.99\\",\\"0, 0\\",\\"ZO0297602976, ZO0565605656\\",\\"41.98\\",\\"41.98\\",2,2,order,abd +}\\",\\"Cairo Governorate\\",\\"Oceanavigations, Elitelligence\\",\\"Oceanavigations, Elitelligence\\",\\"Jul 12, 2019 @ 00:00:00.000\\",590937,\\"sold_product_590937_14438, sold_product_590937_23607\\",\\"sold_product_590937_14438, sold_product_590937_23607\\",\\"28.984, 12.992\\",\\"28.984, 12.992\\",\\"Men's Clothing, Men's Clothing\\",\\"Men's Clothing, Men's Clothing\\",\\"Dec 31, 2016 @ 00:00:00.000, Dec 31, 2016 @ 00:00:00.000\\",\\"0, 0\\",\\"0, 0\\",\\"Oceanavigations, Elitelligence\\",\\"Oceanavigations, Elitelligence\\",\\"13.344, 6.109\\",\\"28.984, 12.992\\",\\"14,438, 23,607\\",\\"Jumper - dark grey multicolor, Print T-shirt - black\\",\\"Jumper - dark grey multicolor, Print T-shirt - black\\",\\"1, 1\\",\\"ZO0297602976, ZO0565605656\\",\\"0, 0\\",\\"28.984, 12.992\\",\\"28.984, 12.992\\",\\"0, 0\\",\\"ZO0297602976, ZO0565605656\\",\\"41.969\\",\\"41.969\\",2,2,order,abd " `; diff --git a/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts b/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts index ffaa4cb2f8fb6..27c6a05f740bf 100644 --- a/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts +++ b/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts @@ -31,8 +31,7 @@ export default function ({ getService }: FtrProviderContext) { }, }; - // Failing: See https://github.com/elastic/kibana/issues/95594 - describe.skip('CSV Generation from SearchSource', () => { + describe('CSV Generation from SearchSource', () => { before(async () => { await kibanaServer.uiSettings.update({ 'csv:quoteValues': false, From 3eb099692085d4dbaa7c12c7f32541a368ea4bdb Mon Sep 17 00:00:00 2001 From: Adam Locke Date: Wed, 31 Mar 2021 16:33:21 -0400 Subject: [PATCH 025/106] [DOCS] Add deprecation message for scripted fields (#95964) * [DOCS] Add deprecation message for scripted fields * Change deprecation to full block admonition. --- docs/management/managing-fields.asciidoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/management/managing-fields.asciidoc b/docs/management/managing-fields.asciidoc index 5cd5c1ffd6248..505f6853c7906 100644 --- a/docs/management/managing-fields.asciidoc +++ b/docs/management/managing-fields.asciidoc @@ -78,6 +78,7 @@ include::field-formatters/color-formatter.asciidoc[] [[scripted-fields]] === Scripted fields +deprecated::[7.13,Use {ref}/runtime.html[runtime fields] instead of scripted fields. Runtime fields support Painless scripts and provide greater flexibility.] Scripted fields compute data on the fly from the data in your {es} indices. The data is shown on the Discover tab as part of the document data, and you can use scripted fields in your visualizations. You query scripted fields with the <>, and can filter them using the filter bar. The scripted field values are computed at query time, so they aren't indexed and cannot be searched using the {kib} default @@ -87,7 +88,7 @@ WARNING: Computing data on the fly with scripted fields can be very resource int {kib} performance. Keep in mind that there's no built-in validation of a scripted field. If your scripts are buggy, you'll get exceptions whenever you try to view the dynamically generated data. -When you define a scripted field in {kib}, you have a choice of the {ref}/modules-scripting-expression.html[Lucene expressions] or the +When you define a scripted field in {kib}, you have a choice of the {ref}/modules-scripting-expression.html[Lucene expressions] or the {ref}/modules-scripting-painless.html[Painless] scripting language. You can reference any single value numeric field in your expressions, for example: From 96ccd3147735522b2811bd1e199f7552c01e620b Mon Sep 17 00:00:00 2001 From: Phillip Burch Date: Wed, 31 Mar 2021 15:55:46 -0500 Subject: [PATCH 026/106] Add anomaly detection telemetry (#95802) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../ml/anomaly_detection/job_setup_screen.tsx | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx index a210831eef865..f6d739078002e 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/ml/anomaly_detection/job_setup_screen.tsx @@ -24,6 +24,7 @@ import { FixedDatePicker } from '../../../../../../components/fixed_datepicker'; import { DEFAULT_K8S_PARTITION_FIELD } from '../../../../../../containers/ml/modules/metrics_k8s/module_descriptor'; import { MetricsExplorerKueryBar } from '../../../../metrics_explorer/components/kuery_bar'; import { convertKueryToElasticSearchQuery } from '../../../../../../utils/kuery'; +import { useUiTracker } from '../../../../../../../../observability/public'; interface Props { jobType: 'hosts' | 'kubernetes'; @@ -40,6 +41,7 @@ export const JobSetupScreen = (props: Props) => { const k = useMetricK8sModuleContext(); const [filter, setFilter] = useState(''); const [filterQuery, setFilterQuery] = useState(''); + const trackMetric = useUiTracker({ app: 'infra_metrics' }); const { createDerivedIndexPattern } = useSourceViaHttp({ sourceId: 'default', }); @@ -137,9 +139,25 @@ export const JobSetupScreen = (props: Props) => { useEffect(() => { if (setupStatus.type === 'succeeded') { + if (props.jobType === 'kubernetes') { + trackMetric({ metric: 'metrics_ml_anomaly_detection_k8s_enabled' }); + if ( + partitionField && + (partitionField.length !== 1 || partitionField[0] !== DEFAULT_K8S_PARTITION_FIELD) + ) { + trackMetric({ metric: 'metrics_ml_anomaly_detection_k8s_partition_changed' }); + } + } else { + trackMetric({ metric: 'metrics_ml_anomaly_detection_hosts_enabled' }); + if (partitionField) { + trackMetric({ metric: 'metrics_ml_anomaly_detection_hosts_partition_changed' }); + } + trackMetric({ metric: 'metrics_ml_anomaly_detection_hosts_enabled' }); + } + goHome(); } - }, [setupStatus, goHome]); + }, [setupStatus, props.jobType, partitionField, trackMetric, goHome]); return ( <> From 1f5ee4c869432e17a6c2c157cebdce4d931e074f Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 31 Mar 2021 14:03:22 -0700 Subject: [PATCH 027/106] [ci-stats] move ui-shared-deps metrics to page load assets group (#95957) Co-authored-by: spalger --- packages/kbn-ui-shared-deps/webpack.config.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/kbn-ui-shared-deps/webpack.config.js b/packages/kbn-ui-shared-deps/webpack.config.js index 135884fbf13e7..76e6843bea2f8 100644 --- a/packages/kbn-ui-shared-deps/webpack.config.js +++ b/packages/kbn-ui-shared-deps/webpack.config.js @@ -177,22 +177,22 @@ exports.getWebpackConfig = ({ dev = false } = {}) => ({ compiler.hooks.emit.tap('MetricsPlugin', (compilation) => { const metrics = [ { - group: '@kbn/ui-shared-deps asset size', - id: 'kbn-ui-shared-deps.js', + group: 'page load bundle size', + id: 'kbnUiSharedDeps-js', value: compilation.assets['kbn-ui-shared-deps.js'].size(), }, { - group: '@kbn/ui-shared-deps asset size', - id: 'kbn-ui-shared-deps.@elastic.js', - value: compilation.assets['kbn-ui-shared-deps.@elastic.js'].size(), - }, - { - group: '@kbn/ui-shared-deps asset size', - id: 'css', + group: 'page load bundle size', + id: 'kbnUiSharedDeps-css', value: compilation.assets['kbn-ui-shared-deps.css'].size() + compilation.assets['kbn-ui-shared-deps.v7.light.css'].size(), }, + { + group: 'page load bundle size', + id: 'kbnUiSharedDeps-elastic', + value: compilation.assets['kbn-ui-shared-deps.@elastic.js'].size(), + }, ]; compilation.emitAsset( From 16a176af98e46a074d939a73c7cca3ef91aa0a39 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 31 Mar 2021 14:04:42 -0700 Subject: [PATCH 028/106] never run webpack with --progress on CI (#95967) Co-authored-by: spalger --- packages/kbn-pm/package.json | 2 +- x-pack/plugins/canvas/scripts/shareable_runtime.js | 4 ++-- x-pack/plugins/canvas/scripts/storybook.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/kbn-pm/package.json b/packages/kbn-pm/package.json index 0fa79fff6e0d9..050aadd402d8a 100644 --- a/packages/kbn-pm/package.json +++ b/packages/kbn-pm/package.json @@ -9,7 +9,7 @@ }, "scripts": { "build": "../../node_modules/.bin/webpack", - "kbn:watch": "../../node_modules/.bin/webpack --watch --progress", + "kbn:watch": "../../node_modules/.bin/webpack --watch", "prettier": "../../node_modules/.bin/prettier --write './src/**/*.ts'" }, "devDependencies": { diff --git a/x-pack/plugins/canvas/scripts/shareable_runtime.js b/x-pack/plugins/canvas/scripts/shareable_runtime.js index 7f7f6d235c984..b760a92811b8e 100644 --- a/x-pack/plugins/canvas/scripts/shareable_runtime.js +++ b/x-pack/plugins/canvas/scripts/shareable_runtime.js @@ -56,7 +56,7 @@ run( 'webpack-dev-server', '--config', webpackConfig, - ...(process.stdout.isTTY ? ['--progress'] : []), + ...(process.stdout.isTTY && !process.env.CI ? ['--progress'] : []), '--hide-modules', '--display-entrypoints', 'false', @@ -93,7 +93,7 @@ run( '--config', webpackConfig, '--hide-modules', - ...(process.stdout.isTTY ? ['--progress'] : []), + ...(process.stdout.isTTY && !process.env.CI ? ['--progress'] : []), ], { ...options, diff --git a/x-pack/plugins/canvas/scripts/storybook.js b/x-pack/plugins/canvas/scripts/storybook.js index 88af1cf6d38bb..e6b8a66b9026f 100644 --- a/x-pack/plugins/canvas/scripts/storybook.js +++ b/x-pack/plugins/canvas/scripts/storybook.js @@ -44,7 +44,7 @@ run( 'webpack', '--config', 'x-pack/plugins/canvas/storybook/webpack.dll.config.js', - '--progress', + ...(process.stdout.isTTY && !process.env.CI ? ['--progress'] : []), '--hide-modules', '--display-entrypoints', 'false', From e285c7c214c72a31cdd7cec6fce8dc07c505d430 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Wed, 31 Mar 2021 14:36:48 -0700 Subject: [PATCH 029/106] [DOCS] Adds deprecation admonitions (#95847) --- .../legacy/create.asciidoc | 2 +- .../legacy/delete.asciidoc | 2 +- .../legacy/execute.asciidoc | 2 +- .../legacy/get.asciidoc | 2 +- .../legacy/get_all.asciidoc | 2 +- .../legacy/list.asciidoc | 2 +- .../legacy/update.asciidoc | 2 +- docs/api/alerting/legacy/create.asciidoc | 2 +- docs/api/alerting/legacy/delete.asciidoc | 2 +- docs/api/alerting/legacy/disable.asciidoc | 2 +- docs/api/alerting/legacy/enable.asciidoc | 2 +- docs/api/alerting/legacy/find.asciidoc | 2 +- docs/api/alerting/legacy/get.asciidoc | 2 +- docs/api/alerting/legacy/health.asciidoc | 2 +- docs/api/alerting/legacy/list.asciidoc | 2 +- docs/api/alerting/legacy/mute.asciidoc | 2 +- docs/api/alerting/legacy/mute_all.asciidoc | 2 +- docs/api/alerting/legacy/unmute.asciidoc | 2 +- docs/api/alerting/legacy/unmute_all.asciidoc | 2 +- docs/api/alerting/legacy/update.asciidoc | 2 +- docs/settings/reporting-settings.asciidoc | 18 ++++---- docs/setup/settings.asciidoc | 44 +++++++++++-------- docs/user/dashboard/timelion.asciidoc | 12 +---- 23 files changed, 57 insertions(+), 57 deletions(-) diff --git a/docs/api/actions-and-connectors/legacy/create.asciidoc b/docs/api/actions-and-connectors/legacy/create.asciidoc index af4feddcb80fb..0361c4222986b 100644 --- a/docs/api/actions-and-connectors/legacy/create.asciidoc +++ b/docs/api/actions-and-connectors/legacy/create.asciidoc @@ -4,7 +4,7 @@ Legacy Create connector ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Creates a connector. diff --git a/docs/api/actions-and-connectors/legacy/delete.asciidoc b/docs/api/actions-and-connectors/legacy/delete.asciidoc index 170fceba2d157..9ec2c0d392a96 100644 --- a/docs/api/actions-and-connectors/legacy/delete.asciidoc +++ b/docs/api/actions-and-connectors/legacy/delete.asciidoc @@ -4,7 +4,7 @@ Legacy Delete connector ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Deletes a connector by ID. diff --git a/docs/api/actions-and-connectors/legacy/execute.asciidoc b/docs/api/actions-and-connectors/legacy/execute.asciidoc index 200844ab72f17..f01aa1585b192 100644 --- a/docs/api/actions-and-connectors/legacy/execute.asciidoc +++ b/docs/api/actions-and-connectors/legacy/execute.asciidoc @@ -4,7 +4,7 @@ Legacy Execute connector ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Executes a connector by ID. diff --git a/docs/api/actions-and-connectors/legacy/get.asciidoc b/docs/api/actions-and-connectors/legacy/get.asciidoc index 1b138fb7032e0..6413fce558f5b 100644 --- a/docs/api/actions-and-connectors/legacy/get.asciidoc +++ b/docs/api/actions-and-connectors/legacy/get.asciidoc @@ -4,7 +4,7 @@ Legacy Get connector ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Retrieves a connector by ID. diff --git a/docs/api/actions-and-connectors/legacy/get_all.asciidoc b/docs/api/actions-and-connectors/legacy/get_all.asciidoc index ba235955c005e..191eccb6f8d39 100644 --- a/docs/api/actions-and-connectors/legacy/get_all.asciidoc +++ b/docs/api/actions-and-connectors/legacy/get_all.asciidoc @@ -4,7 +4,7 @@ Legacy Get all connector ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Retrieves all connectors. diff --git a/docs/api/actions-and-connectors/legacy/list.asciidoc b/docs/api/actions-and-connectors/legacy/list.asciidoc index 8acfd5415af57..d78838dcbe974 100644 --- a/docs/api/actions-and-connectors/legacy/list.asciidoc +++ b/docs/api/actions-and-connectors/legacy/list.asciidoc @@ -4,7 +4,7 @@ Legacy List all connector types ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Retrieves a list of all connector types. diff --git a/docs/api/actions-and-connectors/legacy/update.asciidoc b/docs/api/actions-and-connectors/legacy/update.asciidoc index 517daf9a40dca..6a33e765cf063 100644 --- a/docs/api/actions-and-connectors/legacy/update.asciidoc +++ b/docs/api/actions-and-connectors/legacy/update.asciidoc @@ -4,7 +4,7 @@ Legacy Update connector ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Updates the attributes for an existing connector. diff --git a/docs/api/alerting/legacy/create.asciidoc b/docs/api/alerting/legacy/create.asciidoc index 5c594d64a3f45..8363569541356 100644 --- a/docs/api/alerting/legacy/create.asciidoc +++ b/docs/api/alerting/legacy/create.asciidoc @@ -4,7 +4,7 @@ Legacy create alert ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Create {kib} alerts. diff --git a/docs/api/alerting/legacy/delete.asciidoc b/docs/api/alerting/legacy/delete.asciidoc index 68851973cab5b..2af420f2bc34e 100644 --- a/docs/api/alerting/legacy/delete.asciidoc +++ b/docs/api/alerting/legacy/delete.asciidoc @@ -4,7 +4,7 @@ Legacy delete alert ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Permanently remove an alert. diff --git a/docs/api/alerting/legacy/disable.asciidoc b/docs/api/alerting/legacy/disable.asciidoc index 56e06371570c2..1a9b928bfba78 100644 --- a/docs/api/alerting/legacy/disable.asciidoc +++ b/docs/api/alerting/legacy/disable.asciidoc @@ -4,7 +4,7 @@ Legacy disable alert ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Disable an alert. diff --git a/docs/api/alerting/legacy/enable.asciidoc b/docs/api/alerting/legacy/enable.asciidoc index 913d96a84352b..da4b466d6fda4 100644 --- a/docs/api/alerting/legacy/enable.asciidoc +++ b/docs/api/alerting/legacy/enable.asciidoc @@ -4,7 +4,7 @@ Legacy enable alert ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Enable an alert. diff --git a/docs/api/alerting/legacy/find.asciidoc b/docs/api/alerting/legacy/find.asciidoc index 94d9bc425bd21..7c493e9c8eb5b 100644 --- a/docs/api/alerting/legacy/find.asciidoc +++ b/docs/api/alerting/legacy/find.asciidoc @@ -4,7 +4,7 @@ Legacy find alerts ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Retrieve a paginated set of alerts based on condition. diff --git a/docs/api/alerting/legacy/get.asciidoc b/docs/api/alerting/legacy/get.asciidoc index f1014d18e8774..ee0f52f51005a 100644 --- a/docs/api/alerting/legacy/get.asciidoc +++ b/docs/api/alerting/legacy/get.asciidoc @@ -4,7 +4,7 @@ Legacy get alert ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Retrieve an alert by ID. diff --git a/docs/api/alerting/legacy/health.asciidoc b/docs/api/alerting/legacy/health.asciidoc index b25307fb5efd1..68f04cc715bd7 100644 --- a/docs/api/alerting/legacy/health.asciidoc +++ b/docs/api/alerting/legacy/health.asciidoc @@ -4,7 +4,7 @@ Legacy get Alerting framework health ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Retrieve the health status of the Alerting framework. diff --git a/docs/api/alerting/legacy/list.asciidoc b/docs/api/alerting/legacy/list.asciidoc index e9ef3bbc27cd9..be37be36cd0e8 100644 --- a/docs/api/alerting/legacy/list.asciidoc +++ b/docs/api/alerting/legacy/list.asciidoc @@ -4,7 +4,7 @@ Legacy list all alert types ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Retrieve a list of all alert types. diff --git a/docs/api/alerting/legacy/mute.asciidoc b/docs/api/alerting/legacy/mute.asciidoc index dff42f5911e53..cf7adc446a2fd 100644 --- a/docs/api/alerting/legacy/mute.asciidoc +++ b/docs/api/alerting/legacy/mute.asciidoc @@ -4,7 +4,7 @@ Legacy mute alert instance ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Mute an alert instance. diff --git a/docs/api/alerting/legacy/mute_all.asciidoc b/docs/api/alerting/legacy/mute_all.asciidoc index df89fa15d1590..bc865480340e2 100644 --- a/docs/api/alerting/legacy/mute_all.asciidoc +++ b/docs/api/alerting/legacy/mute_all.asciidoc @@ -4,7 +4,7 @@ Legacy mute all alert instances ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Mute all alert instances. diff --git a/docs/api/alerting/legacy/unmute.asciidoc b/docs/api/alerting/legacy/unmute.asciidoc index 0be7e40dc1a19..300cf71b57a01 100644 --- a/docs/api/alerting/legacy/unmute.asciidoc +++ b/docs/api/alerting/legacy/unmute.asciidoc @@ -4,7 +4,7 @@ Legacy unmute alert instance ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Unmute an alert instance. diff --git a/docs/api/alerting/legacy/unmute_all.asciidoc b/docs/api/alerting/legacy/unmute_all.asciidoc index 8687c2d2fe8bb..3b0a7afe5f44d 100644 --- a/docs/api/alerting/legacy/unmute_all.asciidoc +++ b/docs/api/alerting/legacy/unmute_all.asciidoc @@ -4,7 +4,7 @@ Legacy unmute all alert instances ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Unmute all alert instances. diff --git a/docs/api/alerting/legacy/update.asciidoc b/docs/api/alerting/legacy/update.asciidoc index bffdf26c31400..b9cce995660e6 100644 --- a/docs/api/alerting/legacy/update.asciidoc +++ b/docs/api/alerting/legacy/update.asciidoc @@ -4,7 +4,7 @@ Legacy update alert ++++ -WARNING: Deprecated in 7.13.0. Use <> instead. +deprecated::[7.13.0,Use <> instead.] Update the attributes for an existing alert. diff --git a/docs/settings/reporting-settings.asciidoc b/docs/settings/reporting-settings.asciidoc index cef5a953fded4..9bb11f3f99a15 100644 --- a/docs/settings/reporting-settings.asciidoc +++ b/docs/settings/reporting-settings.asciidoc @@ -260,19 +260,21 @@ For information about {kib} memory limits, see <> setting. Defaults to `.reporting`. - | `xpack.reporting.capture.networkPolicy` | Capturing a screenshot from a {kib} page involves sending out requests for all the linked web assets. For example, a Markdown visualization can show an image from a remote server. You can configure what type of requests to allow or filter by setting a <> for Reporting. +| `xpack.reporting.index` + | deprecated:[7.11.0,This setting will be removed in 8.0.] Multitenancy by + changing `kibana.index` will not be supported starting in 8.0. See + https://ela.st/kbn-remove-legacy-multitenancy[8.0 Breaking Changes] for more + details. Reporting uses a weekly index in {es} to store the reporting job and + the report content. The index is automatically created if it does not already + exist. Configure this to a unique value, beginning with `.reporting-`, for + every {kib} instance that has a unique <> + setting. Defaults to `.reporting`. + | `xpack.reporting.roles.allow` | Specifies the roles in addition to superusers that can use reporting. Defaults to `[ "reporting_user" ]`. + diff --git a/docs/setup/settings.asciidoc b/docs/setup/settings.asciidoc index e5cbc2c7ea6db..73b268e1e48b3 100644 --- a/docs/setup/settings.asciidoc +++ b/docs/setup/settings.asciidoc @@ -25,12 +25,14 @@ which may cause a delay before pages start being served. Set to `false` to disable Console. *Default: `true`* | `cpu.cgroup.path.override:` - | *deprecated* This setting has been renamed to <> -and the old name will no longer be supported as of 8.0. + | deprecated:[7.10.0,"This setting will no longer be supported as of 8.0."] + This setting has been renamed to + <>. | `cpuacct.cgroup.path.override:` - | *deprecated* This setting has been renamed to <> -and the old name will no longer be supported as of 8.0. + | deprecated:[7.10.0,"This setting will no longer be supported as of 8.0."] + This setting has been renamed to + <>. | `csp.rules:` | A https://w3c.github.io/webappsec-csp/[content-security-policy] template @@ -64,10 +66,12 @@ To enable SSL/TLS for outbound connections to {es}, use the `https` protocol in this setting. | `elasticsearch.logQueries:` - | *deprecated* This setting is no longer used and will get removed in Kibana 8.0. Instead, configure the `elasticsearch.query` logger. -This is useful for seeing the query DSL generated by applications that -currently do not have an inspector, for example Timelion and Monitoring. -*Default: `false`* + | deprecated:[7.12.0,"This setting is no longer used and will be removed in Kibana 8.0."] + Instead, configure the `elasticsearch.query` logger. + + + This is useful for seeing the query DSL generated by applications that + currently do not have an inspector, for example Timelion and Monitoring. + *Default: `false`* The following example shows a valid `elasticsearch.query` logger configuration: |=== @@ -240,18 +244,22 @@ on the {kib} index at startup. {kib} users still need to authenticate with | Enables use of interpreter in Visualize. *Default: `true`* | `kibana.defaultAppId:` - | *deprecated* This setting is deprecated and will get removed in Kibana 8.0. -Please use the `defaultRoute` advanced setting instead. -The default application to load. *Default: `"home"`* + | deprecated:[7.9.0,This setting will be removed in Kibana 8.0.] + Instead, use the <>. + + + The default application to load. *Default: `"home"`* |[[kibana-index]] `kibana.index:` - | *deprecated* This setting is deprecated and will be removed in 8.0. Multitenancy by changing -`kibana.index` will not be supported starting in 8.0. See https://ela.st/kbn-remove-legacy-multitenancy[8.0 Breaking Changes] -for more details. {kib} uses an index in {es} to store saved searches, visualizations, and -dashboards. {kib} creates a new index if the index doesn’t already exist. -If you configure a custom index, the name must be lowercase, and conform to the -{es} {ref}/indices-create-index.html[index name limitations]. -*Default: `".kibana"`* + | deprecated:[7.11.0,This setting will be removed in 8.0.] Multitenancy by + changing `kibana.index` will not be supported starting in 8.0. See + https://ela.st/kbn-remove-legacy-multitenancy[8.0 Breaking Changes] for more + details. + + + {kib} uses an index in {es} to store saved searches, visualizations, and + dashboards. {kib} creates a new index if the index doesn’t already exist. If + you configure a custom index, the name must be lowercase, and conform to the + {es} {ref}/indices-create-index.html[index name limitations]. + *Default: `".kibana"`* | `kibana.autocompleteTimeout:` {ess-icon} | Time in milliseconds to wait for autocomplete suggestions from {es}. diff --git a/docs/user/dashboard/timelion.asciidoc b/docs/user/dashboard/timelion.asciidoc index 676c46368a6ee..80ce77f30c75e 100644 --- a/docs/user/dashboard/timelion.asciidoc +++ b/docs/user/dashboard/timelion.asciidoc @@ -4,17 +4,7 @@ Instead of using a visual editor to create charts, you define a graph by chaining functions together, using the *Timelion*-specific syntax. The syntax enables some features that classical point series charts don't offer, such as pulling data from different indices or data sources into one graph. -[NOTE] -==== -Timelion app deprecation - -*Timelion* is still supported, the *Timelion app* is deprecated in 7.0, replaced by -dashboard features. In 8.0 and later, the *Timelion app* is removed from {kib}. -To prepare for the removal of *Timelion app*, you must migrate *Timelion app* worksheets to a dashboard. - -For information on how to migrate *Timelion app* worksheets, refer to the -link:https://www.elastic.co/guide/en/kibana/7.10/release-notes-7.10.0.html#deprecation-v7.10.0[7.10.0 Release Notes]. -==== +deprecated::[7.0.0,"*Timelion* is still supported. The *Timelion app* is deprecated in 7.0, replaced by dashboard features. In 8.0 and later, the *Timelion app* is removed from {kib}. To prepare for the removal of *Timelion app*, you must migrate *Timelion app* worksheets to a dashboard. For information on how to migrate *Timelion app* worksheets, refer to the link:https://www.elastic.co/guide/en/kibana/7.10/release-notes-7.10.0.html#deprecation-v7.10.0[7.10.0 Release Notes]."] [float] ==== Timelion expressions From 65deb5a46be1c3f8c37fa2288fe0e659662d7388 Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Wed, 31 Mar 2021 17:02:42 -0500 Subject: [PATCH 030/106] Index pattern scripted field / runtime field usage collection (#95366) * add index pattern telemetry --- ...ata-server.indexpatternsserviceprovider.md | 2 +- ...rver.indexpatternsserviceprovider.setup.md | 6 +- ...rver.indexpatternsserviceprovider.start.md | 4 +- .../index_patterns/index_patterns_service.ts | 66 +++--- ...ter_index_pattern_usage_collection.test.ts | 140 +++++++++++++ ...register_index_pattern_usage_collection.ts | 193 ++++++++++++++++++ src/plugins/data/server/plugin.ts | 12 +- .../data/server/search/search_service.test.ts | 4 +- .../data/server/search/search_service.ts | 4 +- src/plugins/data/server/server.api.md | 12 +- src/plugins/telemetry/schema/oss_plugins.json | 75 +++++++ 11 files changed, 476 insertions(+), 42 deletions(-) create mode 100644 src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.test.ts create mode 100644 src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.ts diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.md index d408f00e33c9e..b5c7d8931ad4b 100644 --- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.md +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.md @@ -14,6 +14,6 @@ export declare class IndexPatternsServiceProvider implements PluginSignature: ```typescript -setup(core: CoreSetup, { expressions }: IndexPatternsServiceSetupDeps): void; +setup(core: CoreSetup, { expressions, usageCollection }: IndexPatternsServiceSetupDeps): void; ``` ## Parameters | Parameter | Type | Description | | --- | --- | --- | -| core | CoreSetup<DataPluginStartDependencies, DataPluginStart> | | -| { expressions } | IndexPatternsServiceSetupDeps | | +| core | CoreSetup<IndexPatternsServiceStartDeps, DataPluginStart> | | +| { expressions, usageCollection } | IndexPatternsServiceSetupDeps | | Returns: diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.start.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.start.md index 98f9310c6d98c..88079bb2fa3cb 100644 --- a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.start.md +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.indexpatternsserviceprovider.start.md @@ -8,7 +8,7 @@ ```typescript start(core: CoreStart, { fieldFormats, logger }: IndexPatternsServiceStartDeps): { - indexPatternsServiceFactory: (savedObjectsClient: SavedObjectsClientContract, elasticsearchClient: ElasticsearchClient) => Promise; + indexPatternsServiceFactory: (savedObjectsClient: Pick, elasticsearchClient: ElasticsearchClient) => Promise; }; ``` @@ -22,6 +22,6 @@ start(core: CoreStart, { fieldFormats, logger }: IndexPatternsServiceStartDeps): Returns: `{ - indexPatternsServiceFactory: (savedObjectsClient: SavedObjectsClientContract, elasticsearchClient: ElasticsearchClient) => Promise; + indexPatternsServiceFactory: (savedObjectsClient: Pick, elasticsearchClient: ElasticsearchClient) => Promise; }` diff --git a/src/plugins/data/server/index_patterns/index_patterns_service.ts b/src/plugins/data/server/index_patterns/index_patterns_service.ts index 5d703021b94da..c4cc2073ef78f 100644 --- a/src/plugins/data/server/index_patterns/index_patterns_service.ts +++ b/src/plugins/data/server/index_patterns/index_patterns_service.ts @@ -13,9 +13,11 @@ import { Logger, SavedObjectsClientContract, ElasticsearchClient, + UiSettingsServiceStart, } from 'kibana/server'; import { ExpressionsServerSetup } from 'src/plugins/expressions/server'; -import { DataPluginStartDependencies, DataPluginStart } from '../plugin'; +import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { DataPluginStart } from '../plugin'; import { registerRoutes } from './routes'; import { indexPatternSavedObjectType } from '../saved_objects'; import { capabilitiesProvider } from './capabilities_provider'; @@ -25,6 +27,7 @@ import { getIndexPatternLoad } from './expressions'; import { UiSettingsServerToCommon } from './ui_settings_wrapper'; import { IndexPatternsApiServer } from './index_patterns_api_client'; import { SavedObjectsClientServerToCommon } from './saved_objects_client_wrapper'; +import { registerIndexPatternsUsageCollector } from './register_index_pattern_usage_collection'; export interface IndexPatternsServiceStart { indexPatternsServiceFactory: ( @@ -35,6 +38,8 @@ export interface IndexPatternsServiceStart { export interface IndexPatternsServiceSetupDeps { expressions: ExpressionsServerSetup; + logger: Logger; + usageCollection?: UsageCollectionSetup; } export interface IndexPatternsServiceStartDeps { @@ -42,10 +47,39 @@ export interface IndexPatternsServiceStartDeps { logger: Logger; } +export const indexPatternsServiceFactory = ({ + logger, + uiSettings, + fieldFormats, +}: { + logger: Logger; + uiSettings: UiSettingsServiceStart; + fieldFormats: FieldFormatsStart; +}) => async ( + savedObjectsClient: SavedObjectsClientContract, + elasticsearchClient: ElasticsearchClient +) => { + const uiSettingsClient = uiSettings.asScopedToClient(savedObjectsClient); + const formats = await fieldFormats.fieldFormatServiceFactory(uiSettingsClient); + + return new IndexPatternsCommonService({ + uiSettings: new UiSettingsServerToCommon(uiSettingsClient), + savedObjectsClient: new SavedObjectsClientServerToCommon(savedObjectsClient), + apiClient: new IndexPatternsApiServer(elasticsearchClient), + fieldFormats: formats, + onError: (error) => { + logger.error(error); + }, + onNotification: ({ title, text }) => { + logger.warn(`${title} : ${text}`); + }, + }); +}; + export class IndexPatternsServiceProvider implements Plugin { public setup( - core: CoreSetup, - { expressions }: IndexPatternsServiceSetupDeps + core: CoreSetup, + { expressions, usageCollection }: IndexPatternsServiceSetupDeps ) { core.savedObjects.registerType(indexPatternSavedObjectType); core.capabilities.registerProvider(capabilitiesProvider); @@ -53,32 +87,18 @@ export class IndexPatternsServiceProvider implements Plugin { - const uiSettingsClient = uiSettings.asScopedToClient(savedObjectsClient); - const formats = await fieldFormats.fieldFormatServiceFactory(uiSettingsClient); - - return new IndexPatternsCommonService({ - uiSettings: new UiSettingsServerToCommon(uiSettingsClient), - savedObjectsClient: new SavedObjectsClientServerToCommon(savedObjectsClient), - apiClient: new IndexPatternsApiServer(elasticsearchClient), - fieldFormats: formats, - onError: (error) => { - logger.error(error); - }, - onNotification: ({ title, text }) => { - logger.warn(`${title} : ${text}`); - }, - }); - }, + indexPatternsServiceFactory: indexPatternsServiceFactory({ + logger, + uiSettings, + fieldFormats, + }), }; } } diff --git a/src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.test.ts b/src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.test.ts new file mode 100644 index 0000000000000..c43431e10731a --- /dev/null +++ b/src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.test.ts @@ -0,0 +1,140 @@ +/* + * Copyright 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 { + minMaxAvgLoC, + updateMin, + updateMax, + getIndexPatternTelemetry, +} from './register_index_pattern_usage_collection'; +import { IndexPatternsCommonService } from '..'; + +const scriptA = 'emit(0);'; +const scriptB = 'emit(1);\nemit(2);'; +const scriptC = 'emit(3);\nemit(4)\nemit(5)'; + +const scriptedFieldA = { script: scriptA }; +const scriptedFieldB = { script: scriptB }; +const scriptedFieldC = { script: scriptC }; + +const runtimeFieldA = { runtimeField: { script: { source: scriptA } } }; +const runtimeFieldB = { runtimeField: { script: { source: scriptB } } }; +const runtimeFieldC = { runtimeField: { script: { source: scriptC } } }; + +const indexPatterns = ({ + getIds: async () => [1, 2, 3], + get: jest.fn().mockResolvedValue({ + getScriptedFields: () => [], + fields: [], + }), +} as any) as IndexPatternsCommonService; + +describe('index pattern usage collection', () => { + it('minMaxAvgLoC calculates min, max, and average ', () => { + const scripts = [scriptA, scriptB, scriptC]; + expect(minMaxAvgLoC(scripts)).toEqual({ min: 1, max: 3, avg: 2 }); + expect(minMaxAvgLoC([undefined, undefined, undefined])).toEqual({ min: 0, max: 0, avg: 0 }); + }); + + it('updateMin returns minimum value', () => { + expect(updateMin(undefined, 1)).toEqual(1); + expect(updateMin(1, 0)).toEqual(0); + }); + + it('updateMax returns maximum value', () => { + expect(updateMax(undefined, 1)).toEqual(1); + expect(updateMax(1, 0)).toEqual(1); + }); + + describe('calculates index pattern usage', () => { + const countSummaryDefault = { + min: undefined, + max: undefined, + avg: undefined, + }; + + it('when there are no runtime fields or scripted fields', async () => { + expect(await getIndexPatternTelemetry(indexPatterns)).toEqual({ + indexPatternsCount: 3, + indexPatternsWithScriptedFieldCount: 0, + indexPatternsWithRuntimeFieldCount: 0, + scriptedFieldCount: 0, + runtimeFieldCount: 0, + perIndexPattern: { + scriptedFieldCount: countSummaryDefault, + runtimeFieldCount: countSummaryDefault, + scriptedFieldLineCount: countSummaryDefault, + runtimeFieldLineCount: countSummaryDefault, + }, + }); + }); + + it('when there are both runtime fields or scripted fields', async () => { + indexPatterns.get = jest.fn().mockResolvedValue({ + getScriptedFields: () => [scriptedFieldA, scriptedFieldB, scriptedFieldC], + fields: [runtimeFieldA, runtimeFieldB, runtimeFieldC], + }); + + expect(await getIndexPatternTelemetry(indexPatterns)).toEqual({ + indexPatternsCount: 3, + indexPatternsWithScriptedFieldCount: 3, + indexPatternsWithRuntimeFieldCount: 3, + scriptedFieldCount: 9, + runtimeFieldCount: 9, + perIndexPattern: { + scriptedFieldCount: { min: 3, max: 3, avg: 3 }, + runtimeFieldCount: { min: 3, max: 3, avg: 3 }, + scriptedFieldLineCount: { min: 1, max: 3, avg: 2 }, + runtimeFieldLineCount: { min: 1, max: 3, avg: 2 }, + }, + }); + }); + + it('when there are only runtime fields', async () => { + indexPatterns.get = jest.fn().mockResolvedValue({ + getScriptedFields: () => [], + fields: [runtimeFieldA, runtimeFieldB, runtimeFieldC], + }); + + expect(await getIndexPatternTelemetry(indexPatterns)).toEqual({ + indexPatternsCount: 3, + indexPatternsWithScriptedFieldCount: 0, + indexPatternsWithRuntimeFieldCount: 3, + scriptedFieldCount: 0, + runtimeFieldCount: 9, + perIndexPattern: { + scriptedFieldCount: countSummaryDefault, + runtimeFieldCount: { min: 3, max: 3, avg: 3 }, + scriptedFieldLineCount: countSummaryDefault, + runtimeFieldLineCount: { min: 1, max: 3, avg: 2 }, + }, + }); + }); + + it('when there are only scripted fields', async () => { + indexPatterns.get = jest.fn().mockResolvedValue({ + getScriptedFields: () => [scriptedFieldA, scriptedFieldB, scriptedFieldC], + fields: [], + }); + + expect(await getIndexPatternTelemetry(indexPatterns)).toEqual({ + indexPatternsCount: 3, + indexPatternsWithScriptedFieldCount: 3, + indexPatternsWithRuntimeFieldCount: 0, + scriptedFieldCount: 9, + runtimeFieldCount: 0, + perIndexPattern: { + scriptedFieldCount: { min: 3, max: 3, avg: 3 }, + runtimeFieldCount: countSummaryDefault, + scriptedFieldLineCount: { min: 1, max: 3, avg: 2 }, + runtimeFieldLineCount: countSummaryDefault, + }, + }); + }); + }); +}); diff --git a/src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.ts b/src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.ts new file mode 100644 index 0000000000000..36c2a59ce2753 --- /dev/null +++ b/src/plugins/data/server/index_patterns/register_index_pattern_usage_collection.ts @@ -0,0 +1,193 @@ +/* + * Copyright 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 { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { StartServicesAccessor } from 'src/core/server'; +import { IndexPatternsCommonService } from '..'; +import { SavedObjectsClient } from '../../../../core/server'; +import { DataPluginStartDependencies, DataPluginStart } from '../plugin'; + +interface CountSummary { + min?: number; + max?: number; + avg?: number; +} + +interface IndexPatternUsage { + indexPatternsCount: number; + indexPatternsWithScriptedFieldCount: number; + indexPatternsWithRuntimeFieldCount: number; + scriptedFieldCount: number; + runtimeFieldCount: number; + perIndexPattern: { + scriptedFieldCount: CountSummary; + runtimeFieldCount: CountSummary; + scriptedFieldLineCount: CountSummary; + runtimeFieldLineCount: CountSummary; + }; +} + +export const minMaxAvgLoC = (scripts: Array) => { + const lengths = scripts.map((script) => script?.split(/\r\n|\r|\n/).length || 0).sort(); + return { + min: lengths[0], + max: lengths[lengths.length - 1], + avg: lengths.reduce((col, count) => col + count, 0) / lengths.length, + }; +}; + +export const updateMin = (currentMin: number | undefined, newVal: number): number => { + if (currentMin === undefined || currentMin > newVal) { + return newVal; + } else { + return currentMin; + } +}; + +export const updateMax = (currentMax: number | undefined, newVal: number): number => { + if (currentMax === undefined || currentMax < newVal) { + return newVal; + } else { + return currentMax; + } +}; + +export async function getIndexPatternTelemetry(indexPatterns: IndexPatternsCommonService) { + const ids = await indexPatterns.getIds(); + + const countSummaryDefaults: CountSummary = { + min: undefined, + max: undefined, + avg: undefined, + }; + + const results = { + indexPatternsCount: ids.length, + indexPatternsWithScriptedFieldCount: 0, + indexPatternsWithRuntimeFieldCount: 0, + scriptedFieldCount: 0, + runtimeFieldCount: 0, + perIndexPattern: { + scriptedFieldCount: { ...countSummaryDefaults }, + runtimeFieldCount: { ...countSummaryDefaults }, + scriptedFieldLineCount: { ...countSummaryDefaults }, + runtimeFieldLineCount: { ...countSummaryDefaults }, + }, + }; + + await ids.reduce(async (col, id) => { + await col; + const ip = await indexPatterns.get(id); + + const scriptedFields = ip.getScriptedFields(); + const runtimeFields = ip.fields.filter((fld) => !!fld.runtimeField); + + if (scriptedFields.length > 0) { + // increment counts + results.indexPatternsWithScriptedFieldCount++; + results.scriptedFieldCount += scriptedFields.length; + + // calc LoC + results.perIndexPattern.scriptedFieldLineCount = minMaxAvgLoC( + scriptedFields.map((fld) => fld.script || '') + ); + + // calc field counts + results.perIndexPattern.scriptedFieldCount.min = updateMin( + results.perIndexPattern.scriptedFieldCount.min, + scriptedFields.length + ); + results.perIndexPattern.scriptedFieldCount.max = updateMax( + results.perIndexPattern.scriptedFieldCount.max, + scriptedFields.length + ); + results.perIndexPattern.scriptedFieldCount.avg = + results.scriptedFieldCount / results.indexPatternsWithScriptedFieldCount; + } + + if (runtimeFields.length > 0) { + // increment counts + results.indexPatternsWithRuntimeFieldCount++; + results.runtimeFieldCount += runtimeFields.length; + + // calc LoC + const runtimeFieldScripts = runtimeFields.map( + (fld) => fld.runtimeField?.script?.source || '' + ); + results.perIndexPattern.runtimeFieldLineCount = minMaxAvgLoC(runtimeFieldScripts); + + // calc field counts + results.perIndexPattern.runtimeFieldCount.min = updateMin( + results.perIndexPattern.runtimeFieldCount.min, + runtimeFields.length + ); + results.perIndexPattern.runtimeFieldCount.max = updateMax( + results.perIndexPattern.runtimeFieldCount.max, + runtimeFields.length + ); + results.perIndexPattern.runtimeFieldCount.avg = + results.runtimeFieldCount / results.indexPatternsWithRuntimeFieldCount; + } + }, Promise.resolve()); + + return results; +} + +export function registerIndexPatternsUsageCollector( + getStartServices: StartServicesAccessor, + usageCollection?: UsageCollectionSetup +): void { + if (!usageCollection) { + return; + } + + const indexPatternUsageCollector = usageCollection.makeUsageCollector({ + type: 'index-patterns', + isReady: () => true, + fetch: async () => { + const [{ savedObjects, elasticsearch }, , { indexPatterns }] = await getStartServices(); + const indexPatternService = await indexPatterns.indexPatternsServiceFactory( + new SavedObjectsClient(savedObjects.createInternalRepository()), + elasticsearch.client.asInternalUser + ); + + return await getIndexPatternTelemetry(indexPatternService); + }, + schema: { + indexPatternsCount: { type: 'long' }, + indexPatternsWithScriptedFieldCount: { type: 'long' }, + indexPatternsWithRuntimeFieldCount: { type: 'long' }, + scriptedFieldCount: { type: 'long' }, + runtimeFieldCount: { type: 'long' }, + perIndexPattern: { + scriptedFieldCount: { + min: { type: 'long' }, + max: { type: 'long' }, + avg: { type: 'float' }, + }, + runtimeFieldCount: { + min: { type: 'long' }, + max: { type: 'long' }, + avg: { type: 'float' }, + }, + scriptedFieldLineCount: { + min: { type: 'long' }, + max: { type: 'long' }, + avg: { type: 'float' }, + }, + runtimeFieldLineCount: { + min: { type: 'long' }, + max: { type: 'long' }, + avg: { type: 'float' }, + }, + }, + }, + }); + + usageCollection.registerCollector(indexPatternUsageCollector); +} diff --git a/src/plugins/data/server/plugin.ts b/src/plugins/data/server/plugin.ts index a7a7663d6981c..7b73802f1a34d 100644 --- a/src/plugins/data/server/plugin.ts +++ b/src/plugins/data/server/plugin.ts @@ -46,8 +46,10 @@ export interface DataPluginSetupDependencies { usageCollection?: UsageCollectionSetup; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface DataPluginStartDependencies {} +export interface DataPluginStartDependencies { + fieldFormats: FieldFormatsStart; + logger: Logger; +} export class DataServerPlugin implements @@ -82,7 +84,11 @@ export class DataServerPlugin this.queryService.setup(core); this.autocompleteService.setup(core); this.kqlTelemetryService.setup(core, { usageCollection }); - this.indexPatterns.setup(core, { expressions }); + this.indexPatterns.setup(core, { + expressions, + logger: this.logger.get('indexPatterns'), + usageCollection, + }); core.uiSettings.register(getUiSettings()); diff --git a/src/plugins/data/server/search/search_service.test.ts b/src/plugins/data/server/search/search_service.test.ts index 192c133c94a04..d5a83efcc215f 100644 --- a/src/plugins/data/server/search/search_service.test.ts +++ b/src/plugins/data/server/search/search_service.test.ts @@ -10,7 +10,7 @@ import type { MockedKeys } from '@kbn/utility-types/jest'; import { CoreSetup, CoreStart, SavedObject } from '../../../../core/server'; import { coreMock } from '../../../../core/server/mocks'; -import { DataPluginStart } from '../plugin'; +import { DataPluginStart, DataPluginStartDependencies } from '../plugin'; import { createFieldFormatsStartMock } from '../field_formats/mocks'; import { createIndexPatternsStartMock } from '../index_patterns/mocks'; @@ -32,7 +32,7 @@ import { createSearchSessionsClientMock } from './mocks'; describe('Search service', () => { let plugin: SearchService; - let mockCoreSetup: MockedKeys>; + let mockCoreSetup: MockedKeys>; let mockCoreStart: MockedKeys; beforeEach(() => { diff --git a/src/plugins/data/server/search/search_service.ts b/src/plugins/data/server/search/search_service.ts index b62c5d26f691d..e53244fa7ff26 100644 --- a/src/plugins/data/server/search/search_service.ts +++ b/src/plugins/data/server/search/search_service.ts @@ -38,7 +38,7 @@ import { FieldFormatsStart } from '../field_formats'; import { IndexPatternsServiceStart } from '../index_patterns'; import { getCallMsearch, registerMsearchRoute, registerSearchRoute } from './routes'; import { ES_SEARCH_STRATEGY, esSearchStrategyProvider } from './es_search'; -import { DataPluginStart } from '../plugin'; +import { DataPluginStart, DataPluginStartDependencies } from '../plugin'; import { UsageCollectionSetup } from '../../../usage_collection/server'; import { registerUsageCollector } from './collectors/register'; import { usageProvider } from './collectors/usage'; @@ -114,7 +114,7 @@ export class SearchService implements Plugin { } public setup( - core: CoreSetup<{}, DataPluginStart>, + core: CoreSetup, { bfetch, expressions, usageCollection }: SearchServiceSetupDependencies ): ISearchSetup { const usage = usageCollection ? usageProvider(core) : undefined; diff --git a/src/plugins/data/server/server.api.md b/src/plugins/data/server/server.api.md index 1f043cc9aab4e..29a5a67239171 100644 --- a/src/plugins/data/server/server.api.md +++ b/src/plugins/data/server/server.api.md @@ -73,6 +73,7 @@ import { Type } from '@kbn/config-schema'; import { TypeOf } from '@kbn/config-schema'; import { UiCounterMetricType } from '@kbn/analytics'; import { Unit } from '@elastic/datemath'; +import { UsageCollectionSetup as UsageCollectionSetup_2 } from 'src/plugins/usage_collection/server'; // Warning: (ae-forgotten-export) The symbol "AggConfigSerialized" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "AggConfigOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -958,16 +959,14 @@ export { IndexPatternsService } // // @public (undocumented) export class IndexPatternsServiceProvider implements Plugin_3 { - // Warning: (ae-forgotten-export) The symbol "DataPluginStartDependencies" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "IndexPatternsServiceStartDeps" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "IndexPatternsServiceSetupDeps" needs to be exported by the entry point index.d.ts // // (undocumented) - setup(core: CoreSetup_2, { expressions }: IndexPatternsServiceSetupDeps): void; - // Warning: (ae-forgotten-export) The symbol "IndexPatternsServiceStartDeps" needs to be exported by the entry point index.d.ts - // + setup(core: CoreSetup_2, { expressions, usageCollection }: IndexPatternsServiceSetupDeps): void; // (undocumented) start(core: CoreStart, { fieldFormats, logger }: IndexPatternsServiceStartDeps): { - indexPatternsServiceFactory: (savedObjectsClient: SavedObjectsClientContract_2, elasticsearchClient: ElasticsearchClient_2) => Promise; + indexPatternsServiceFactory: (savedObjectsClient: Pick, elasticsearchClient: ElasticsearchClient_2) => Promise; }; } @@ -1213,6 +1212,7 @@ export type ParsedInterval = ReturnType; export function parseInterval(interval: string): moment.Duration | null; // Warning: (ae-forgotten-export) The symbol "DataPluginSetupDependencies" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "DataPluginStartDependencies" needs to be exported by the entry point index.d.ts // Warning: (ae-missing-release-tag) "DataServerPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1522,7 +1522,7 @@ export function usageProvider(core: CoreSetup_2): SearchUsage; // src/plugins/data/server/index.ts:267:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts // src/plugins/data/server/index.ts:270:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/server/index.ts:271:1 - (ae-forgotten-export) The symbol "calcAutoIntervalLessThan" needs to be exported by the entry point index.d.ts -// src/plugins/data/server/plugin.ts:79:74 - (ae-forgotten-export) The symbol "DataEnhancements" needs to be exported by the entry point index.d.ts +// src/plugins/data/server/plugin.ts:81:74 - (ae-forgotten-export) The symbol "DataEnhancements" needs to be exported by the entry point index.d.ts // src/plugins/data/server/search/types.ts:114:5 - (ae-forgotten-export) The symbol "ISearchStartSearchSource" needs to be exported by the entry point index.d.ts // (No @packageDocumentation comment for this package) diff --git a/src/plugins/telemetry/schema/oss_plugins.json b/src/plugins/telemetry/schema/oss_plugins.json index 0ce727830ffdd..05ac1eb84089d 100644 --- a/src/plugins/telemetry/schema/oss_plugins.json +++ b/src/plugins/telemetry/schema/oss_plugins.json @@ -24,6 +24,81 @@ } } }, + "index-patterns": { + "properties": { + "indexPatternsCount": { + "type": "long" + }, + "indexPatternsWithScriptedFieldCount": { + "type": "long" + }, + "indexPatternsWithRuntimeFieldCount": { + "type": "long" + }, + "scriptedFieldCount": { + "type": "long" + }, + "runtimeFieldCount": { + "type": "long" + }, + "perIndexPattern": { + "properties": { + "scriptedFieldCount": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + }, + "runtimeFieldCount": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + }, + "scriptedFieldLineCount": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + }, + "runtimeFieldLineCount": { + "properties": { + "min": { + "type": "long" + }, + "max": { + "type": "long" + }, + "avg": { + "type": "float" + } + } + } + } + } + } + }, "kql": { "properties": { "optInCount": { From aa81dc52f67952ef171b37b3b3801e062590cb11 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 31 Mar 2021 15:13:06 -0700 Subject: [PATCH 031/106] skip flaky suite (#96000) --- .../test/functional/apps/dashboard/reporting/download_csv.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts b/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts index d4a909f6a0474..c437cfaa8f5dc 100644 --- a/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts +++ b/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts @@ -50,7 +50,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await testSubjects.existOrFail('csvDownloadStarted'); // validate toast panel }; - describe('Download CSV', () => { + // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/96000 + describe.skip('Download CSV', () => { before('initialize tests', async () => { log.debug('ReportingPage:initTests'); await browser.setWindowSize(1600, 850); From c66937d4c69acbb4dafda45c0296d374bcaaa2b0 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 31 Mar 2021 15:19:58 -0700 Subject: [PATCH 032/106] skip suite blocking es promotion (#96001) --- x-pack/test/functional/apps/security/users.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/functional/apps/security/users.js b/x-pack/test/functional/apps/security/users.js index 0cab12bc6672f..250a2d4ed71f9 100644 --- a/x-pack/test/functional/apps/security/users.js +++ b/x-pack/test/functional/apps/security/users.js @@ -12,7 +12,8 @@ export default function ({ getService, getPageObjects }) { const config = getService('config'); const log = getService('log'); - describe('users', function () { + // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/96001 + describe.skip('users', function () { before(async () => { log.debug('users'); await PageObjects.settings.navigateTo(); From 0cdf44571867e561214b81e6472f608da080df80 Mon Sep 17 00:00:00 2001 From: spalger Date: Wed, 31 Mar 2021 15:24:17 -0700 Subject: [PATCH 033/106] skip suite failing es promotion (#96002) --- x-pack/test/api_integration/apis/management/rollup/rollup.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/api_integration/apis/management/rollup/rollup.js b/x-pack/test/api_integration/apis/management/rollup/rollup.js index 4cb2ef6ea0fa0..a556c8071ca80 100644 --- a/x-pack/test/api_integration/apis/management/rollup/rollup.js +++ b/x-pack/test/api_integration/apis/management/rollup/rollup.js @@ -24,7 +24,8 @@ export default function ({ getService }) { cleanUp, } = registerHelpers(getService); - describe('jobs', () => { + // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/96002 + describe.skip('jobs', () => { after(() => cleanUp()); describe('indices', () => { From e0a1fe18bee2aea20a1d708aa3954de9da886e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Thu, 1 Apr 2021 00:43:20 +0200 Subject: [PATCH 034/106] [APM] Fix spaces issue for static index patterns (#95799) --- x-pack/plugins/apm/kibana.json | 1 + .../create_static_index_pattern.test.ts | 21 ++++++++++++++++--- .../create_static_index_pattern.ts | 9 ++++++-- x-pack/plugins/apm/server/plugin.ts | 8 +++---- .../apm/server/routes/index_pattern.ts | 5 ++++- x-pack/plugins/apm/server/routes/typings.ts | 2 ++ 6 files changed, 35 insertions(+), 11 deletions(-) diff --git a/x-pack/plugins/apm/kibana.json b/x-pack/plugins/apm/kibana.json index a9a0149e72ce7..e340f8bf19126 100644 --- a/x-pack/plugins/apm/kibana.json +++ b/x-pack/plugins/apm/kibana.json @@ -12,6 +12,7 @@ "infra" ], "optionalPlugins": [ + "spaces", "cloud", "usageCollection", "taskManager", diff --git a/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.test.ts b/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.test.ts index 1c33fcbd71dac..19163da449b90 100644 --- a/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.test.ts +++ b/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.test.ts @@ -36,7 +36,12 @@ describe('createStaticIndexPattern', () => { 'xpack.apm.autocreateApmIndexPattern': false, }); const savedObjectsClient = getMockSavedObjectsClient(); - await createStaticIndexPattern(setup, context, savedObjectsClient); + await createStaticIndexPattern( + setup, + context, + savedObjectsClient, + 'default' + ); expect(savedObjectsClient.create).not.toHaveBeenCalled(); }); @@ -53,7 +58,12 @@ describe('createStaticIndexPattern', () => { const savedObjectsClient = getMockSavedObjectsClient(); - await createStaticIndexPattern(setup, context, savedObjectsClient); + await createStaticIndexPattern( + setup, + context, + savedObjectsClient, + 'default' + ); expect(savedObjectsClient.create).not.toHaveBeenCalled(); }); @@ -70,7 +80,12 @@ describe('createStaticIndexPattern', () => { const savedObjectsClient = getMockSavedObjectsClient(); - await createStaticIndexPattern(setup, context, savedObjectsClient); + await createStaticIndexPattern( + setup, + context, + savedObjectsClient, + 'default' + ); expect(savedObjectsClient.create).toHaveBeenCalled(); }); diff --git a/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.ts b/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.ts index 0b7f82c0b8388..b91fb8342a212 100644 --- a/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.ts +++ b/x-pack/plugins/apm/server/lib/index_pattern/create_static_index_pattern.ts @@ -20,7 +20,8 @@ import { getApmIndexPatternTitle } from './get_apm_index_pattern_title'; export async function createStaticIndexPattern( setup: Setup, context: APMRequestHandlerContext, - savedObjectsClient: InternalSavedObjectsClient + savedObjectsClient: InternalSavedObjectsClient, + spaceId: string | undefined ): Promise { return withApmSpan('create_static_index_pattern', async () => { const { config } = context; @@ -46,7 +47,11 @@ export async function createStaticIndexPattern( ...apmIndexPattern.attributes, title: apmIndexPatternTitle, }, - { id: APM_STATIC_INDEX_PATTERN_ID, overwrite: false } + { + id: APM_STATIC_INDEX_PATTERN_ID, + overwrite: false, + namespace: spaceId, + } ) ); return true; diff --git a/x-pack/plugins/apm/server/plugin.ts b/x-pack/plugins/apm/server/plugin.ts index f556374179c51..db96794627519 100644 --- a/x-pack/plugins/apm/server/plugin.ts +++ b/x-pack/plugins/apm/server/plugin.ts @@ -16,6 +16,7 @@ import { Plugin, PluginInitializerContext, } from 'src/core/server'; +import { SpacesPluginSetup } from '../../spaces/server'; import { APMConfig, APMXPackConfig } from '.'; import { mergeConfigs } from './index'; import { APMOSSPluginSetup } from '../../../../src/plugins/apm_oss/server'; @@ -65,6 +66,7 @@ export class APMPlugin implements Plugin { public setup( core: CoreSetup, plugins: { + spaces?: SpacesPluginSetup; apmOss: APMOSSPluginSetup; home: HomeServerPluginSetup; licensing: LicensingPluginSetup; @@ -148,11 +150,7 @@ export class APMPlugin implements Plugin { createApmApi().init(core, { config$: mergedConfig$, logger: this.logger!, - plugins: { - observability: plugins.observability, - security: plugins.security, - ml: plugins.ml, - }, + plugins, }); const boundGetApmIndices = async () => diff --git a/x-pack/plugins/apm/server/routes/index_pattern.ts b/x-pack/plugins/apm/server/routes/index_pattern.ts index fd7d2120ab6f5..3b800c23135ce 100644 --- a/x-pack/plugins/apm/server/routes/index_pattern.ts +++ b/x-pack/plugins/apm/server/routes/index_pattern.ts @@ -21,10 +21,13 @@ export const staticIndexPatternRoute = createRoute((core) => ({ getInternalSavedObjectsClient(core), ]); + const spaceId = context.plugins.spaces?.spacesService.getSpaceId(request); + const didCreateIndexPattern = await createStaticIndexPattern( setup, context, - savedObjectsClient + savedObjectsClient, + spaceId ); return { created: didCreateIndexPattern }; diff --git a/x-pack/plugins/apm/server/routes/typings.ts b/x-pack/plugins/apm/server/routes/typings.ts index 1575041fb2f45..3ba24b4ed5268 100644 --- a/x-pack/plugins/apm/server/routes/typings.ts +++ b/x-pack/plugins/apm/server/routes/typings.ts @@ -14,6 +14,7 @@ import { } from 'src/core/server'; import { Observable } from 'rxjs'; import { RequiredKeys, DeepPartial } from 'utility-types'; +import { SpacesPluginStart } from '../../../spaces/server'; import { ObservabilityPluginSetup } from '../../../observability/server'; import { LicensingApiRequestHandlerContext } from '../../../licensing/server'; import { SecurityPluginSetup } from '../../../security/server'; @@ -93,6 +94,7 @@ export type APMRequestHandlerContext< config: APMConfig; logger: Logger; plugins: { + spaces?: SpacesPluginStart; observability?: ObservabilityPluginSetup; security?: SecurityPluginSetup; ml?: MlPluginSetup; From 5db802765726cf4d4a58f9ba26bba9b68f2e7df9 Mon Sep 17 00:00:00 2001 From: Aaron Caldwell Date: Wed, 31 Mar 2021 21:15:42 -0400 Subject: [PATCH 035/106] [Maps] Show empty list when all saved maps in list deleted (#95126) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../table_list_view/table_list_view.tsx | 19 ++----------------- .../translations/translations/ja-JP.json | 2 -- .../translations/translations/zh-CN.json | 2 -- 3 files changed, 2 insertions(+), 21 deletions(-) diff --git a/src/plugins/kibana_react/public/table_list_view/table_list_view.tsx b/src/plugins/kibana_react/public/table_list_view/table_list_view.tsx index fa0a32fc3d542..0054bb9c01b41 100644 --- a/src/plugins/kibana_react/public/table_list_view/table_list_view.tsx +++ b/src/plugins/kibana_react/public/table_list_view/table_list_view.tsx @@ -347,20 +347,6 @@ class TableListView extends React.Component - ); - } - } - renderToolsLeft() { const selection = this.state.selectedIds; @@ -473,10 +459,9 @@ class TableListView extends React.Component Date: Wed, 31 Mar 2021 18:18:22 -0700 Subject: [PATCH 036/106] skip suite failing es promotion (#96000) --- .../reporting_and_security/csv_searchsource_immediate.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts b/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts index 27c6a05f740bf..ebc7badd88f42 100644 --- a/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts +++ b/x-pack/test/reporting_api_integration/reporting_and_security/csv_searchsource_immediate.ts @@ -31,7 +31,8 @@ export default function ({ getService }: FtrProviderContext) { }, }; - describe('CSV Generation from SearchSource', () => { + // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/96000 + describe.skip('CSV Generation from SearchSource', () => { before(async () => { await kibanaServer.uiSettings.update({ 'csv:quoteValues': false, From 07a3f9eb8dbeaf41e152ca536e03d639dd7ab536 Mon Sep 17 00:00:00 2001 From: Spencer Date: Wed, 31 Mar 2021 18:36:52 -0700 Subject: [PATCH 037/106] [kbn/optimizer] import source-map-support in script to avoid breaking jest snapshots (#96011) Co-authored-by: spalger --- packages/kbn-optimizer/src/cli.ts | 2 -- scripts/build_kibana_platform_plugins.js | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/kbn-optimizer/src/cli.ts b/packages/kbn-optimizer/src/cli.ts index 6e3106dbc2af7..d5b9996dfb2cd 100644 --- a/packages/kbn-optimizer/src/cli.ts +++ b/packages/kbn-optimizer/src/cli.ts @@ -6,8 +6,6 @@ * Side Public License, v 1. */ -import 'source-map-support/register'; - import Path from 'path'; import { REPO_ROOT } from '@kbn/utils'; diff --git a/scripts/build_kibana_platform_plugins.js b/scripts/build_kibana_platform_plugins.js index fa630e0bb1808..9038d08364400 100644 --- a/scripts/build_kibana_platform_plugins.js +++ b/scripts/build_kibana_platform_plugins.js @@ -7,6 +7,7 @@ */ require('../src/setup_node_env/ensure_node_preserve_symlinks'); +require('source-map-support/register'); require('@kbn/optimizer').runKbnOptimizerCli({ defaultLimitsPath: require.resolve('../packages/kbn-optimizer/limits.yml'), }); From a1c36e7a063c9e96982714831552f380191cfe33 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Thu, 1 Apr 2021 11:46:17 +0200 Subject: [PATCH 038/106] [ML] Refactor imports using 'elasticsearch' to '@elastic/elasticsearch'. Extend 'isPopulatedOjbect()'. (#95651) - Gets rid of imports from 'elasticsearch' and replaces them with '@elastic/elasticsearch'. - Extends isPopulatedObject() to allow an optional array of attributes to check if they exist. Allows us to get rid of the manual and inconsistent usages of hasOwnProperty(). --- x-pack/plugins/ml/common/index.ts | 4 +- x-pack/plugins/ml/common/types/es_client.ts | 33 +++--- .../ml/common/types/feature_importance.ts | 8 +- .../ml/common/util/object_utils.test.ts | 50 +++++++++ x-pack/plugins/ml/common/util/object_utils.ts | 30 +++++- .../common/util/runtime_field_utils.test.ts | 102 ++++++++++++++++++ .../ml/common/util/runtime_field_utils.ts | 15 ++- .../application/components/data_grid/types.ts | 4 +- .../components/data_grid/use_data_grid.tsx | 4 +- .../scatterplot_matrix/scatterplot_matrix.tsx | 7 +- .../common/get_index_data.ts | 14 ++- .../hooks/use_index_data.ts | 14 ++- .../expandable_section_results.tsx | 4 +- .../util/filter_runtime_mappings.ts | 8 +- .../datafeed_preview.tsx | 6 +- .../anomaly_explorer_charts_service.ts | 6 +- .../application/services/job_service.d.ts | 5 +- x-pack/plugins/ml/public/embeddables/types.ts | 8 +- x-pack/plugins/ml/public/index.ts | 2 +- .../models/data_frame_analytics/validation.ts | 3 +- .../new_job/categorization/examples.ts | 5 +- .../new_job/categorization/top_categories.ts | 10 +- .../job_validation/job_validation.test.ts | 6 +- .../shared_services/providers/system.ts | 10 +- .../common/api_schemas/type_guards.ts | 47 ++++---- .../transform/common/shared_imports.ts | 4 +- .../transform/common/types/index_pattern.ts | 12 +-- .../transform/common/types/transform.ts | 6 +- .../transform/common/types/transform_stats.ts | 6 +- .../plugins/transform/common/utils/errors.ts | 10 +- .../common/utils/object_utils.test.ts | 10 +- .../transform/common/utils/object_utils.ts | 4 - .../public/__mocks__/shared_imports.ts | 2 +- .../transform/public/app/common/pivot_aggs.ts | 15 +-- .../public/app/common/pivot_group_by.ts | 19 +--- .../transform/public/app/common/request.ts | 13 ++- .../public/app/hooks/__mocks__/use_api.ts | 5 +- .../transform/public/app/hooks/use_api.ts | 5 +- .../public/app/hooks/use_index_data.ts | 13 ++- .../public/app/hooks/use_pivot_data.ts | 12 ++- .../lib/authorization/components/common.ts | 6 +- .../advanced_runtime_mappings_editor.tsx | 3 +- .../step_create/step_create_form.tsx | 2 +- .../filter_agg/components/filter_agg_form.tsx | 2 +- .../components/filter_term_form.tsx | 21 ++-- .../common/get_pivot_dropdown_options.ts | 2 +- .../step_define/common/types.test.ts | 71 ------------ .../components/step_define/common/types.ts | 26 +---- .../transform/public/shared_imports.ts | 2 +- .../server/routes/api/transforms_nodes.ts | 7 +- 50 files changed, 383 insertions(+), 300 deletions(-) create mode 100644 x-pack/plugins/ml/common/util/object_utils.test.ts create mode 100644 x-pack/plugins/ml/common/util/runtime_field_utils.test.ts delete mode 100644 x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.test.ts diff --git a/x-pack/plugins/ml/common/index.ts b/x-pack/plugins/ml/common/index.ts index ac21954118e50..c15aa8f414fb1 100644 --- a/x-pack/plugins/ml/common/index.ts +++ b/x-pack/plugins/ml/common/index.ts @@ -5,9 +5,11 @@ * 2.0. */ -export { HitsTotalRelation, SearchResponse7, HITS_TOTAL_RELATION } from './types/es_client'; +export { ES_CLIENT_TOTAL_HITS_RELATION } from './types/es_client'; export { ChartData } from './types/field_histograms'; export { ANOMALY_SEVERITY, ANOMALY_THRESHOLD, SEVERITY_COLORS } from './constants/anomalies'; export { getSeverityColor, getSeverityType } from './util/anomaly_utils'; +export { isPopulatedObject } from './util/object_utils'; +export { isRuntimeMappings } from './util/runtime_field_utils'; export { composeValidators, patternValidator } from './util/validators'; export { extractErrorMessage } from './util/errors'; diff --git a/x-pack/plugins/ml/common/types/es_client.ts b/x-pack/plugins/ml/common/types/es_client.ts index f6db736db2519..249b3c150a082 100644 --- a/x-pack/plugins/ml/common/types/es_client.ts +++ b/x-pack/plugins/ml/common/types/es_client.ts @@ -5,33 +5,24 @@ * 2.0. */ -import type { SearchResponse, ShardsResponse } from 'elasticsearch'; +import { estypes } from '@elastic/elasticsearch'; + import { buildEsQuery } from '../../../../../src/plugins/data/common/es_query/es_query'; import type { DslQuery } from '../../../../../src/plugins/data/common/es_query/kuery'; import type { JsonObject } from '../../../../../src/plugins/kibana_utils/common'; -export const HITS_TOTAL_RELATION = { +import { isPopulatedObject } from '../util/object_utils'; + +export function isMultiBucketAggregate(arg: unknown): arg is estypes.MultiBucketAggregate { + return isPopulatedObject(arg, ['buckets']); +} + +export const ES_CLIENT_TOTAL_HITS_RELATION: Record< + Uppercase, + estypes.TotalHitsRelation +> = { EQ: 'eq', GTE: 'gte', } as const; -export type HitsTotalRelation = typeof HITS_TOTAL_RELATION[keyof typeof HITS_TOTAL_RELATION]; - -// The types specified in `@types/elasticsearch` are out of date and still have `total: number`. -interface SearchResponse7Hits { - hits: SearchResponse['hits']['hits']; - max_score: number; - total: { - value: number; - relation: HitsTotalRelation; - }; -} -export interface SearchResponse7 { - took: number; - timed_out: boolean; - _scroll_id?: string; - _shards: ShardsResponse; - hits: SearchResponse7Hits; - aggregations?: any; -} export type InfluencersFilterQuery = ReturnType | DslQuery | JsonObject; diff --git a/x-pack/plugins/ml/common/types/feature_importance.ts b/x-pack/plugins/ml/common/types/feature_importance.ts index 964ce8c325783..111c8432dd439 100644 --- a/x-pack/plugins/ml/common/types/feature_importance.ts +++ b/x-pack/plugins/ml/common/types/feature_importance.ts @@ -88,15 +88,11 @@ export function isRegressionTotalFeatureImportance( export function isClassificationFeatureImportanceBaseline( baselineData: any ): baselineData is ClassificationFeatureImportanceBaseline { - return ( - isPopulatedObject(baselineData) && - baselineData.hasOwnProperty('classes') && - Array.isArray(baselineData.classes) - ); + return isPopulatedObject(baselineData, ['classes']) && Array.isArray(baselineData.classes); } export function isRegressionFeatureImportanceBaseline( baselineData: any ): baselineData is RegressionFeatureImportanceBaseline { - return isPopulatedObject(baselineData) && baselineData.hasOwnProperty('baseline'); + return isPopulatedObject(baselineData, ['baseline']); } diff --git a/x-pack/plugins/ml/common/util/object_utils.test.ts b/x-pack/plugins/ml/common/util/object_utils.test.ts new file mode 100644 index 0000000000000..8e4196ed4d826 --- /dev/null +++ b/x-pack/plugins/ml/common/util/object_utils.test.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isPopulatedObject } from './object_utils'; + +describe('object_utils', () => { + describe('isPopulatedObject()', () => { + it('does not allow numbers', () => { + expect(isPopulatedObject(0)).toBe(false); + }); + it('does not allow strings', () => { + expect(isPopulatedObject('')).toBe(false); + }); + it('does not allow null', () => { + expect(isPopulatedObject(null)).toBe(false); + }); + it('does not allow an empty object', () => { + expect(isPopulatedObject({})).toBe(false); + }); + it('allows an object with an attribute', () => { + expect(isPopulatedObject({ attribute: 'value' })).toBe(true); + }); + it('does not allow an object with a non-existing required attribute', () => { + expect(isPopulatedObject({ attribute: 'value' }, ['otherAttribute'])).toBe(false); + }); + it('allows an object with an existing required attribute', () => { + expect(isPopulatedObject({ attribute: 'value' }, ['attribute'])).toBe(true); + }); + it('allows an object with two existing required attributes', () => { + expect( + isPopulatedObject({ attribute1: 'value1', attribute2: 'value2' }, [ + 'attribute1', + 'attribute2', + ]) + ).toBe(true); + }); + it('does not allow an object with two required attributes where one does not exist', () => { + expect( + isPopulatedObject({ attribute1: 'value1', attribute2: 'value2' }, [ + 'attribute1', + 'otherAttribute', + ]) + ).toBe(false); + }); + }); +}); diff --git a/x-pack/plugins/ml/common/util/object_utils.ts b/x-pack/plugins/ml/common/util/object_utils.ts index 4bbd0c1c2810f..537ee9202b4de 100644 --- a/x-pack/plugins/ml/common/util/object_utils.ts +++ b/x-pack/plugins/ml/common/util/object_utils.ts @@ -5,6 +5,32 @@ * 2.0. */ -export const isPopulatedObject = >(arg: any): arg is T => { - return typeof arg === 'object' && arg !== null && Object.keys(arg).length > 0; +/* + * A type guard to check record like object structures. + * + * Examples: + * - `isPopulatedObject({...})` + * Limits type to Record + * + * - `isPopulatedObject({...}, ['attribute'])` + * Limits type to Record<'attribute', unknown> + * + * - `isPopulatedObject({...})` + * Limits type to a record with keys of the given interface. + * Note that you might want to add keys from the interface to the + * array of requiredAttributes to satisfy runtime requirements. + * Otherwise you'd just satisfy TS requirements but might still + * run into runtime issues. + */ +export const isPopulatedObject = ( + arg: unknown, + requiredAttributes: U[] = [] +): arg is Record => { + return ( + typeof arg === 'object' && + arg !== null && + Object.keys(arg).length > 0 && + (requiredAttributes.length === 0 || + requiredAttributes.every((d) => ({}.hasOwnProperty.call(arg, d)))) + ); }; diff --git a/x-pack/plugins/ml/common/util/runtime_field_utils.test.ts b/x-pack/plugins/ml/common/util/runtime_field_utils.test.ts new file mode 100644 index 0000000000000..1b5e3e18b14f6 --- /dev/null +++ b/x-pack/plugins/ml/common/util/runtime_field_utils.test.ts @@ -0,0 +1,102 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isRuntimeField, isRuntimeMappings } from './runtime_field_utils'; + +describe('ML runtime field utils', () => { + describe('isRuntimeField()', () => { + it('does not allow numbers', () => { + expect(isRuntimeField(1)).toBe(false); + }); + it('does not allow null', () => { + expect(isRuntimeField(null)).toBe(false); + }); + it('does not allow arrays', () => { + expect(isRuntimeField([])).toBe(false); + }); + it('does not allow empty objects', () => { + expect(isRuntimeField({})).toBe(false); + }); + it('does not allow objects with non-matching attributes', () => { + expect(isRuntimeField({ someAttribute: 'someValue' })).toBe(false); + expect(isRuntimeField({ type: 'wrong-type' })).toBe(false); + expect(isRuntimeField({ type: 'keyword', someAttribute: 'some value' })).toBe(false); + }); + it('allows objects with type attribute only', () => { + expect(isRuntimeField({ type: 'keyword' })).toBe(true); + }); + it('allows objects with both type and script attributes', () => { + expect(isRuntimeField({ type: 'keyword', script: 'some script' })).toBe(true); + }); + }); + + describe('isRuntimeMappings()', () => { + it('does not allow numbers', () => { + expect(isRuntimeMappings(1)).toBe(false); + }); + it('does not allow null', () => { + expect(isRuntimeMappings(null)).toBe(false); + }); + it('does not allow arrays', () => { + expect(isRuntimeMappings([])).toBe(false); + }); + it('does not allow empty objects', () => { + expect(isRuntimeMappings({})).toBe(false); + }); + it('does not allow objects with non-object inner structure', () => { + expect(isRuntimeMappings({ someAttribute: 'someValue' })).toBe(false); + }); + it('does not allow objects with objects with unsupported inner structure', () => { + expect(isRuntimeMappings({ fieldName1: { type: 'keyword' }, fieldName2: 'someValue' })).toBe( + false + ); + expect( + isRuntimeMappings({ + fieldName1: { type: 'keyword' }, + fieldName2: { type: 'keyword', someAttribute: 'some value' }, + }) + ).toBe(false); + expect( + isRuntimeMappings({ + fieldName: { type: 'long', script: 1234 }, + }) + ).toBe(false); + expect( + isRuntimeMappings({ + fieldName: { type: 'long', script: { someAttribute: 'some value' } }, + }) + ).toBe(false); + expect( + isRuntimeMappings({ + fieldName: { type: 'long', script: { source: 1234 } }, + }) + ).toBe(false); + }); + + it('allows object with most basic runtime mapping', () => { + expect(isRuntimeMappings({ fieldName: { type: 'keyword' } })).toBe(true); + }); + it('allows object with multiple most basic runtime mappings', () => { + expect( + isRuntimeMappings({ fieldName1: { type: 'keyword' }, fieldName2: { type: 'keyword' } }) + ).toBe(true); + }); + it('allows object with runtime mappings including scripts', () => { + expect( + isRuntimeMappings({ + fieldName1: { type: 'keyword' }, + fieldName2: { type: 'keyword', script: 'some script as script' }, + }) + ).toBe(true); + expect( + isRuntimeMappings({ + fieldName: { type: 'long', script: { source: 'some script as source' } }, + }) + ).toBe(true); + }); + }); +}); diff --git a/x-pack/plugins/ml/common/util/runtime_field_utils.ts b/x-pack/plugins/ml/common/util/runtime_field_utils.ts index f2df5821268cd..6d911ecd5d3cb 100644 --- a/x-pack/plugins/ml/common/util/runtime_field_utils.ts +++ b/x-pack/plugins/ml/common/util/runtime_field_utils.ts @@ -9,19 +9,18 @@ import { isPopulatedObject } from './object_utils'; import { RUNTIME_FIELD_TYPES } from '../../../../../src/plugins/data/common'; import type { RuntimeField, RuntimeMappings } from '../types/fields'; +type RuntimeType = typeof RUNTIME_FIELD_TYPES[number]; + export function isRuntimeField(arg: unknown): arg is RuntimeField { return ( - isPopulatedObject(arg) && - ((Object.keys(arg).length === 1 && arg.hasOwnProperty('type')) || - (Object.keys(arg).length === 2 && - arg.hasOwnProperty('type') && - arg.hasOwnProperty('script') && + ((isPopulatedObject(arg, ['type']) && Object.keys(arg).length === 1) || + (isPopulatedObject(arg, ['type', 'script']) && + Object.keys(arg).length === 2 && (typeof arg.script === 'string' || - (isPopulatedObject(arg.script) && + (isPopulatedObject(arg.script, ['source']) && Object.keys(arg.script).length === 1 && - arg.script.hasOwnProperty('source') && typeof arg.script.source === 'string')))) && - RUNTIME_FIELD_TYPES.includes(arg.type) + RUNTIME_FIELD_TYPES.includes(arg.type as RuntimeType) ); } diff --git a/x-pack/plugins/ml/public/application/components/data_grid/types.ts b/x-pack/plugins/ml/public/application/components/data_grid/types.ts index 649968f176e18..0af8972f18558 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/types.ts +++ b/x-pack/plugins/ml/public/application/components/data_grid/types.ts @@ -7,6 +7,7 @@ import { Dispatch, SetStateAction } from 'react'; +import { estypes } from '@elastic/elasticsearch'; import { EuiDataGridCellValueElementProps, EuiDataGridPaginationProps, @@ -15,7 +16,6 @@ import { } from '@elastic/eui'; import { Dictionary } from '../../../../common/types/common'; -import { HitsTotalRelation } from '../../../../common/types/es_client'; import { ChartData } from '../../../../common/types/field_histograms'; import { INDEX_STATUS } from '../../data_frame_analytics/common/analytics'; @@ -27,7 +27,7 @@ export type DataGridItem = Record; // `undefined` is used to indicate a non-initialized state. export type ChartsVisible = boolean | undefined; -export type RowCountRelation = HitsTotalRelation | undefined; +export type RowCountRelation = estypes.TotalHitsRelation | undefined; export type IndexPagination = Pick; diff --git a/x-pack/plugins/ml/public/application/components/data_grid/use_data_grid.tsx b/x-pack/plugins/ml/public/application/components/data_grid/use_data_grid.tsx index 31a72a776223e..e62f2eb2f003b 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/use_data_grid.tsx +++ b/x-pack/plugins/ml/public/application/components/data_grid/use_data_grid.tsx @@ -9,7 +9,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { EuiDataGridSorting, EuiDataGridColumn } from '@elastic/eui'; -import { HITS_TOTAL_RELATION } from '../../../../common/types/es_client'; +import { ES_CLIENT_TOTAL_HITS_RELATION } from '../../../../common/types/es_client'; import { ChartData } from '../../../../common/types/field_histograms'; import { INDEX_STATUS } from '../../data_frame_analytics/common'; @@ -146,7 +146,7 @@ export const useDataGrid = ( if (chartsVisible === undefined && rowCount > 0 && rowCountRelation !== undefined) { setChartsVisible( rowCount <= COLUMN_CHART_DEFAULT_VISIBILITY_ROWS_THRESHOLED && - rowCountRelation !== HITS_TOTAL_RELATION.GTE + rowCountRelation !== ES_CLIENT_TOTAL_HITS_RELATION.GTE ); } }, [chartsVisible, rowCount, rowCountRelation]); diff --git a/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx b/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx index 4e9fd3baebe7b..842d5fc1ae87a 100644 --- a/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx +++ b/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx @@ -7,6 +7,8 @@ import React, { useMemo, useEffect, useState, FC } from 'react'; +import { estypes } from '@elastic/elasticsearch'; + import { EuiCallOut, EuiComboBox, @@ -24,7 +26,6 @@ import { i18n } from '@kbn/i18n'; import { extractErrorMessage } from '../../../../common'; import { stringHash } from '../../../../common/util/string_utils'; -import type { SearchResponse7 } from '../../../../common/types/es_client'; import type { ResultsSearchQuery } from '../../data_frame_analytics/common/analytics'; import { useMlApiContext } from '../../contexts/kibana'; @@ -184,7 +185,7 @@ export const ScatterplotMatrix: FC = ({ } : searchQuery; - const resp: SearchResponse7 = await esSearch({ + const resp: estypes.SearchResponse = await esSearch({ index, body: { fields: queryFields, @@ -198,7 +199,7 @@ export const ScatterplotMatrix: FC = ({ if (!options.didCancel) { const items = resp.hits.hits .map((d) => - getProcessedFields(d.fields, (key: string) => + getProcessedFields(d.fields ?? {}, (key: string) => key.startsWith(`${resultsField}.feature_importance`) ) ) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_index_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_index_data.ts index d0bcbd2ff63b4..88f403cdf0c44 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_index_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/get_index_data.ts @@ -5,7 +5,7 @@ * 2.0. */ -import type { SearchResponse7 } from '../../../../common/types/es_client'; +import type { estypes } from '@elastic/elasticsearch'; import { extractErrorMessage } from '../../../../common/util/errors'; import { EsSorting, UseDataGridReturnType, getProcessedFields } from '../../components/data_grid'; @@ -51,7 +51,7 @@ export const getIndexData = async ( const { pageIndex, pageSize } = pagination; // TODO: remove results_field from `fields` when possible - const resp: SearchResponse7 = await ml.esSearch({ + const resp: estypes.SearchResponse = await ml.esSearch({ index: jobConfig.dest.index, body: { fields: ['*'], @@ -64,11 +64,15 @@ export const getIndexData = async ( }); if (!options.didCancel) { - setRowCount(resp.hits.total.value); - setRowCountRelation(resp.hits.total.relation); + setRowCount(typeof resp.hits.total === 'number' ? resp.hits.total : resp.hits.total.value); + setRowCountRelation( + typeof resp.hits.total === 'number' + ? ('eq' as estypes.TotalHitsRelation) + : resp.hits.total.relation + ); setTableItems( resp.hits.hits.map((d) => - getProcessedFields(d.fields, (key: string) => + getProcessedFields(d.fields ?? {}, (key: string) => key.startsWith(`${jobConfig.dest.results_field}.feature_importance`) ) ) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts index ecda624c71d98..4552ca34ebbae 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts @@ -7,6 +7,7 @@ import { useEffect, useMemo } from 'react'; +import { estypes } from '@elastic/elasticsearch'; import { EuiDataGridColumn } from '@elastic/eui'; import { CoreSetup } from 'src/core/public'; @@ -26,13 +27,12 @@ import { UseIndexDataReturnType, getProcessedFields, } from '../../../../components/data_grid'; -import type { SearchResponse7 } from '../../../../../../common/types/es_client'; import { extractErrorMessage } from '../../../../../../common/util/errors'; import { INDEX_STATUS } from '../../../common/analytics'; import { ml } from '../../../../services/ml_api_service'; import { getRuntimeFieldsMapping } from '../../../../components/data_grid/common'; -type IndexSearchResponse = SearchResponse7; +type IndexSearchResponse = estypes.SearchResponse; export const useIndexData = ( indexPattern: IndexPattern, @@ -95,9 +95,13 @@ export const useIndexData = ( try { const resp: IndexSearchResponse = await ml.esSearch(esSearchRequest); - const docs = resp.hits.hits.map((d) => getProcessedFields(d.fields)); - setRowCount(resp.hits.total.value); - setRowCountRelation(resp.hits.total.relation); + const docs = resp.hits.hits.map((d) => getProcessedFields(d.fields ?? {})); + setRowCount(typeof resp.hits.total === 'number' ? resp.hits.total : resp.hits.total.value); + setRowCountRelation( + typeof resp.hits.total === 'number' + ? ('eq' as estypes.TotalHitsRelation) + : resp.hits.total.relation + ); setTableItems(docs); setStatus(INDEX_STATUS.LOADED); } catch (e) { diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section_results.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section_results.tsx index 654af03d102e5..d67473d9d3220 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section_results.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/expandable_section/expandable_section_results.tsx @@ -18,7 +18,7 @@ import { isClassificationAnalysis, isRegressionAnalysis, } from '../../../../../../../common/util/analytics_utils'; -import { HITS_TOTAL_RELATION } from '../../../../../../../common/types/es_client'; +import { ES_CLIENT_TOTAL_HITS_RELATION } from '../../../../../../../common/types/es_client'; import { getToastNotifications } from '../../../../../util/dependency_cache'; import { useColorRange, ColorRangeLegend } from '../../../../../components/color_range_legend'; @@ -77,7 +77,7 @@ const getResultsSectionHeaderItems = ( defaultMessage="Total docs" /> ), - value: `${rowCountRelation === HITS_TOTAL_RELATION.GTE ? '>' : ''}${rowCount}`, + value: `${rowCountRelation === ES_CLIENT_TOTAL_HITS_RELATION.GTE ? '>' : ''}${rowCount}`, }, ...(colorRange !== undefined ? [ diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/util/filter_runtime_mappings.ts b/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/util/filter_runtime_mappings.ts index bfed2d811e206..5995224ef3254 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/util/filter_runtime_mappings.ts +++ b/x-pack/plugins/ml/public/application/jobs/new_job/common/job_creator/util/filter_runtime_mappings.ts @@ -22,8 +22,10 @@ interface Response { export function filterRuntimeMappings(job: Job, datafeed: Datafeed): Response { if ( - datafeed.runtime_mappings === undefined || - isPopulatedObject(datafeed.runtime_mappings) === false + !( + isPopulatedObject(datafeed, ['runtime_mappings']) && + isPopulatedObject(datafeed.runtime_mappings) + ) ) { return { runtime_mappings: {}, @@ -83,7 +85,7 @@ function findFieldsInJob(job: Job, datafeed: Datafeed) { return [...usedFields]; } -function findFieldsInAgg(obj: Record) { +function findFieldsInAgg(obj: Record) { const fields: string[] = []; Object.entries(obj).forEach(([key, val]) => { if (isPopulatedObject(val)) { diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/common/datafeed_preview_flyout/datafeed_preview.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/common/datafeed_preview_flyout/datafeed_preview.tsx index 916a25271c63b..a4d9293e9369d 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/common/datafeed_preview_flyout/datafeed_preview.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/pages/components/common/datafeed_preview_flyout/datafeed_preview.tsx @@ -22,6 +22,7 @@ import { MLJobEditor } from '../../../../../jobs_list/components/ml_job_editor'; import { mlJobService } from '../../../../../../services/job_service'; import { ML_DATA_PREVIEW_COUNT } from '../../../../../../../../common/util/job_utils'; import { isPopulatedObject } from '../../../../../../../../common/util/object_utils'; +import { isMultiBucketAggregate } from '../../../../../../../../common/types/es_client'; export const DatafeedPreview: FC<{ combinedJob: CombinedJob | null; @@ -67,7 +68,10 @@ export const DatafeedPreview: FC<{ // the first item under aggregations can be any name if (isPopulatedObject(resp.aggregations)) { const accessor = Object.keys(resp.aggregations)[0]; - data = resp.aggregations[accessor].buckets.slice(0, ML_DATA_PREVIEW_COUNT); + const aggregate = resp.aggregations[accessor]; + if (isMultiBucketAggregate(aggregate)) { + data = aggregate.buckets.slice(0, ML_DATA_PREVIEW_COUNT); + } } setPreviewJsonString(JSON.stringify(data, null, 2)); diff --git a/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts b/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts index 59b6860cb65b7..72de5d003d4b8 100644 --- a/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts +++ b/x-pack/plugins/ml/public/application/services/anomaly_explorer_charts_service.ts @@ -90,11 +90,7 @@ export interface SeriesConfigWithMetadata extends SeriesConfig { } export const isSeriesConfigWithMetadata = (arg: unknown): arg is SeriesConfigWithMetadata => { - return ( - isPopulatedObject(arg) && - {}.hasOwnProperty.call(arg, 'bucketSpanSeconds') && - {}.hasOwnProperty.call(arg, 'detectorLabel') - ); + return isPopulatedObject(arg, ['bucketSpanSeconds', 'detectorLabel']); }; interface ChartRange { diff --git a/x-pack/plugins/ml/public/application/services/job_service.d.ts b/x-pack/plugins/ml/public/application/services/job_service.d.ts index 544d346341591..ceadca12f8757 100644 --- a/x-pack/plugins/ml/public/application/services/job_service.d.ts +++ b/x-pack/plugins/ml/public/application/services/job_service.d.ts @@ -5,7 +5,8 @@ * 2.0. */ -import { SearchResponse } from 'elasticsearch'; +import { estypes } from '@elastic/elasticsearch'; + import { TimeRange } from 'src/plugins/data/common/query/timefilter/types'; import { CombinedJob, Datafeed, Job } from '../../../common/types/anomaly_detection_jobs'; import { Calendar } from '../../../common/types/calendars'; @@ -40,7 +41,7 @@ declare interface JobService { ): Promise; createResultsUrl(jobId: string[], start: number, end: number, location: string): string; getJobAndGroupIds(): Promise; - searchPreview(job: CombinedJob): Promise>; + searchPreview(job: CombinedJob): Promise>; getJob(jobId: string): CombinedJob; loadJobsWrapper(): Promise; } diff --git a/x-pack/plugins/ml/public/embeddables/types.ts b/x-pack/plugins/ml/public/embeddables/types.ts index 05aea1770a415..60355dae5baf4 100644 --- a/x-pack/plugins/ml/public/embeddables/types.ts +++ b/x-pack/plugins/ml/public/embeddables/types.ts @@ -81,8 +81,8 @@ export interface SwimLaneDrilldownContext extends EditSwimlanePanelContext { export function isSwimLaneEmbeddable(arg: unknown): arg is SwimLaneDrilldownContext { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('embeddable') && + isPopulatedObject(arg, ['embeddable']) && + isPopulatedObject(arg.embeddable, ['type']) && arg.embeddable.type === ANOMALY_SWIMLANE_EMBEDDABLE_TYPE ); } @@ -130,8 +130,8 @@ export function isAnomalyExplorerEmbeddable( arg: unknown ): arg is AnomalyChartsFieldSelectionContext { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('embeddable') && + isPopulatedObject(arg, ['embeddable']) && + isPopulatedObject(arg.embeddable, ['type']) && arg.embeddable.type === ANOMALY_EXPLORER_CHARTS_EMBEDDABLE_TYPE ); } diff --git a/x-pack/plugins/ml/public/index.ts b/x-pack/plugins/ml/public/index.ts index 9280f4603b343..56b8ca409ac0b 100755 --- a/x-pack/plugins/ml/public/index.ts +++ b/x-pack/plugins/ml/public/index.ts @@ -50,7 +50,7 @@ export { getSeverityType, getFormattedSeverityScore, } from '../common/util/anomaly_utils'; -export { HITS_TOTAL_RELATION } from '../common/types/es_client'; +export { ES_CLIENT_TOTAL_HITS_RELATION } from '../common/types/es_client'; export { ANOMALY_SEVERITY } from '../common'; export { useMlHref, ML_PAGES, MlUrlGenerator } from './ml_url_generator'; diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/validation.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/validation.ts index 4c79855f39e89..3f0a02f5eaad8 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/validation.ts +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/validation.ts @@ -25,7 +25,6 @@ import { isClassificationAnalysis, } from '../../../common/util/analytics_utils'; import { extractErrorMessage } from '../../../common/util/errors'; -import { SearchResponse7 } from '../../../common'; import { AnalysisConfig, DataFrameAnalyticsConfig, @@ -42,7 +41,7 @@ interface CardinalityAgg { }; } -type ValidationSearchResult = Omit & { +type ValidationSearchResult = Omit & { aggregations: MissingAgg | CardinalityAgg; }; diff --git a/x-pack/plugins/ml/server/models/job_service/new_job/categorization/examples.ts b/x-pack/plugins/ml/server/models/job_service/new_job/categorization/examples.ts index b0ee20763f430..5fecb3d9eb1ec 100644 --- a/x-pack/plugins/ml/server/models/job_service/new_job/categorization/examples.ts +++ b/x-pack/plugins/ml/server/models/job_service/new_job/categorization/examples.ts @@ -5,9 +5,10 @@ * 2.0. */ +import type { estypes } from '@elastic/elasticsearch'; + import { IScopedClusterClient } from 'kibana/server'; import { chunk } from 'lodash'; -import { SearchResponse } from 'elasticsearch'; import { CATEGORY_EXAMPLES_SAMPLE_SIZE } from '../../../../../common/constants/categorization_job'; import { Token, @@ -61,7 +62,7 @@ export function categorizationExamplesProvider({ } } } - const { body } = await asCurrentUser.search>({ + const { body } = await asCurrentUser.search>({ index: indexPatternTitle, size, body: { diff --git a/x-pack/plugins/ml/server/models/job_service/new_job/categorization/top_categories.ts b/x-pack/plugins/ml/server/models/job_service/new_job/categorization/top_categories.ts index 851336056a7f5..82d6f6ca3e103 100644 --- a/x-pack/plugins/ml/server/models/job_service/new_job/categorization/top_categories.ts +++ b/x-pack/plugins/ml/server/models/job_service/new_job/categorization/top_categories.ts @@ -5,13 +5,14 @@ * 2.0. */ -import { SearchResponse } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; + import { CategoryId, Category } from '../../../../../common/types/categories'; import type { MlClient } from '../../../../lib/ml_client'; export function topCategoriesProvider(mlClient: MlClient) { async function getTotalCategories(jobId: string): Promise { - const { body } = await mlClient.anomalySearch>( + const { body } = await mlClient.anomalySearch>( { size: 0, body: { @@ -35,12 +36,11 @@ export function topCategoriesProvider(mlClient: MlClient) { }, [] ); - // @ts-ignore total is an object here - return body?.hits?.total?.value ?? 0; + return typeof body.hits.total === 'number' ? body.hits.total : body.hits.total.value; } async function getTopCategoryCounts(jobId: string, numberOfCategories: number) { - const { body } = await mlClient.anomalySearch>( + const { body } = await mlClient.anomalySearch>( { size: 0, body: { diff --git a/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts b/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts index 949159b67d33a..64dfb84be8668 100644 --- a/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts +++ b/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts @@ -8,13 +8,15 @@ import { IScopedClusterClient } from 'kibana/server'; import { validateJob, ValidateJobPayload } from './job_validation'; -import { HITS_TOTAL_RELATION } from '../../../common/types/es_client'; +import { ES_CLIENT_TOTAL_HITS_RELATION } from '../../../common/types/es_client'; import type { MlClient } from '../../lib/ml_client'; const callAs = { fieldCaps: () => Promise.resolve({ body: { fields: [] } }), search: () => - Promise.resolve({ body: { hits: { total: { value: 1, relation: HITS_TOTAL_RELATION.EQ } } } }), + Promise.resolve({ + body: { hits: { total: { value: 1, relation: ES_CLIENT_TOTAL_HITS_RELATION.EQ } } }, + }), }; const mlClusterClient = ({ diff --git a/x-pack/plugins/ml/server/shared_services/providers/system.ts b/x-pack/plugins/ml/server/shared_services/providers/system.ts index 1e3dcd7de5240..85cd73ba010af 100644 --- a/x-pack/plugins/ml/server/shared_services/providers/system.ts +++ b/x-pack/plugins/ml/server/shared_services/providers/system.ts @@ -5,8 +5,9 @@ * 2.0. */ +import type { estypes } from '@elastic/elasticsearch'; + import { KibanaRequest, SavedObjectsClientContract } from 'kibana/server'; -import { SearchResponse } from 'elasticsearch'; import { MlLicense } from '../../../common/license'; import { CloudSetup } from '../../../../cloud/server'; import { spacesUtilsProvider } from '../../lib/spaces_utils'; @@ -23,7 +24,7 @@ export interface MlSystemProvider { ): { mlCapabilities(): Promise; mlInfo(): Promise; - mlAnomalySearch(searchParams: any, jobIds: string[]): Promise>; + mlAnomalySearch(searchParams: any, jobIds: string[]): Promise>; }; } @@ -69,7 +70,10 @@ export function getMlSystemProvider( }; }); }, - async mlAnomalySearch(searchParams: any, jobIds: string[]): Promise> { + async mlAnomalySearch( + searchParams: any, + jobIds: string[] + ): Promise> { return await getGuards(request, savedObjectsClient) .isFullLicense() .hasMlCapabilities(['canAccessML']) diff --git a/x-pack/plugins/transform/common/api_schemas/type_guards.ts b/x-pack/plugins/transform/common/api_schemas/type_guards.ts index 476e2bad853c9..4b66de9be20d2 100644 --- a/x-pack/plugins/transform/common/api_schemas/type_guards.ts +++ b/x-pack/plugins/transform/common/api_schemas/type_guards.ts @@ -5,10 +5,10 @@ * 2.0. */ -import type { SearchResponse7 } from '../../../ml/common'; +import type { estypes } from '@elastic/elasticsearch'; import type { EsIndex } from '../types/es_index'; -import { isPopulatedObject } from '../utils/object_utils'; +import { isPopulatedObject } from '../shared_imports'; // To be able to use the type guards on the client side, we need to make sure we don't import // the code of '@kbn/config-schema' but just its types, otherwise the client side code will @@ -28,20 +28,13 @@ import type { GetTransformsStatsResponseSchema } from './transforms_stats'; import type { PostTransformsUpdateResponseSchema } from './update_transforms'; const isGenericResponseSchema = (arg: any): arg is T => { - return ( - isPopulatedObject(arg) && - {}.hasOwnProperty.call(arg, 'count') && - {}.hasOwnProperty.call(arg, 'transforms') && - Array.isArray(arg.transforms) - ); + return isPopulatedObject(arg, ['count', 'transforms']) && Array.isArray(arg.transforms); }; export const isGetTransformNodesResponseSchema = ( arg: unknown ): arg is GetTransformNodesResponseSchema => { - return ( - isPopulatedObject(arg) && {}.hasOwnProperty.call(arg, 'count') && typeof arg.count === 'number' - ); + return isPopulatedObject(arg, ['count']) && typeof arg.count === 'number'; }; export const isGetTransformsResponseSchema = (arg: unknown): arg is GetTransformsResponseSchema => { @@ -59,7 +52,7 @@ export const isDeleteTransformsResponseSchema = ( ): arg is DeleteTransformsResponseSchema => { return ( isPopulatedObject(arg) && - Object.values(arg).every((d) => ({}.hasOwnProperty.call(d, 'transformDeleted'))) + Object.values(arg).every((d) => isPopulatedObject(d, ['transformDeleted'])) ); }; @@ -67,8 +60,22 @@ export const isEsIndices = (arg: unknown): arg is EsIndex[] => { return Array.isArray(arg); }; -export const isEsSearchResponse = (arg: unknown): arg is SearchResponse7 => { - return isPopulatedObject(arg) && {}.hasOwnProperty.call(arg, 'hits'); +export const isEsSearchResponse = (arg: unknown): arg is estypes.SearchResponse => { + return isPopulatedObject(arg, ['hits']); +}; + +type SearchResponseWithAggregations = Required> & + estypes.SearchResponse; +export const isEsSearchResponseWithAggregations = ( + arg: unknown +): arg is SearchResponseWithAggregations => { + return isEsSearchResponse(arg) && {}.hasOwnProperty.call(arg, 'aggregations'); +}; + +export const isMultiBucketAggregate = ( + arg: unknown +): arg is estypes.MultiBucketAggregate => { + return isPopulatedObject(arg, ['buckets']); }; export const isFieldHistogramsResponseSchema = ( @@ -87,9 +94,7 @@ export const isPostTransformsPreviewResponseSchema = ( arg: unknown ): arg is PostTransformsPreviewResponseSchema => { return ( - isPopulatedObject(arg) && - {}.hasOwnProperty.call(arg, 'generated_dest_index') && - {}.hasOwnProperty.call(arg, 'preview') && + isPopulatedObject(arg, ['generated_dest_index', 'preview']) && typeof arg.generated_dest_index !== undefined && Array.isArray(arg.preview) ); @@ -98,21 +103,19 @@ export const isPostTransformsPreviewResponseSchema = ( export const isPostTransformsUpdateResponseSchema = ( arg: unknown ): arg is PostTransformsUpdateResponseSchema => { - return isPopulatedObject(arg) && {}.hasOwnProperty.call(arg, 'id') && typeof arg.id === 'string'; + return isPopulatedObject(arg, ['id']) && typeof arg.id === 'string'; }; export const isPutTransformsResponseSchema = (arg: unknown): arg is PutTransformsResponseSchema => { return ( - isPopulatedObject(arg) && - {}.hasOwnProperty.call(arg, 'transformsCreated') && - {}.hasOwnProperty.call(arg, 'errors') && + isPopulatedObject(arg, ['transformsCreated', 'errors']) && Array.isArray(arg.transformsCreated) && Array.isArray(arg.errors) ); }; const isGenericSuccessResponseSchema = (arg: unknown) => - isPopulatedObject(arg) && Object.values(arg).every((d) => ({}.hasOwnProperty.call(d, 'success'))); + isPopulatedObject(arg) && Object.values(arg).every((d) => isPopulatedObject(d, ['success'])); export const isStartTransformsResponseSchema = ( arg: unknown diff --git a/x-pack/plugins/transform/common/shared_imports.ts b/x-pack/plugins/transform/common/shared_imports.ts index 3062c7ab8d23c..38cfb6bc457f1 100644 --- a/x-pack/plugins/transform/common/shared_imports.ts +++ b/x-pack/plugins/transform/common/shared_imports.ts @@ -5,10 +5,10 @@ * 2.0. */ -export type { HitsTotalRelation, SearchResponse7 } from '../../ml/common'; export { composeValidators, + isPopulatedObject, + isRuntimeMappings, patternValidator, ChartData, - HITS_TOTAL_RELATION, } from '../../ml/common'; diff --git a/x-pack/plugins/transform/common/types/index_pattern.ts b/x-pack/plugins/transform/common/types/index_pattern.ts index bab31b67b2b61..0485de8982e1a 100644 --- a/x-pack/plugins/transform/common/types/index_pattern.ts +++ b/x-pack/plugins/transform/common/types/index_pattern.ts @@ -7,17 +7,17 @@ import type { IndexPattern } from '../../../../../src/plugins/data/common'; -import { isPopulatedObject } from '../utils/object_utils'; +import { isPopulatedObject } from '../shared_imports'; // Custom minimal type guard for IndexPattern to check against the attributes used in transforms code. export function isIndexPattern(arg: any): arg is IndexPattern { return ( - isPopulatedObject(arg) && - 'getComputedFields' in arg && - typeof arg.getComputedFields === 'function' && - {}.hasOwnProperty.call(arg, 'title') && + isPopulatedObject(arg, ['title', 'fields']) && + // `getComputedFields` is inherited, so it's not possible to + // check with `hasOwnProperty` which is used by isPopulatedObject() + 'getComputedFields' in (arg as IndexPattern) && + typeof (arg as IndexPattern).getComputedFields === 'function' && typeof arg.title === 'string' && - {}.hasOwnProperty.call(arg, 'fields') && Array.isArray(arg.fields) ); } diff --git a/x-pack/plugins/transform/common/types/transform.ts b/x-pack/plugins/transform/common/types/transform.ts index 600808c475fd1..f1e7efdadca9d 100644 --- a/x-pack/plugins/transform/common/types/transform.ts +++ b/x-pack/plugins/transform/common/types/transform.ts @@ -7,7 +7,7 @@ import { EuiComboBoxOptionOption } from '@elastic/eui/src/components/combo_box/types'; import type { LatestFunctionConfig, PutTransformsRequestSchema } from '../api_schemas/transforms'; -import { isPopulatedObject } from '../utils/object_utils'; +import { isPopulatedObject } from '../shared_imports'; import { PivotGroupByDict } from './pivot_group_by'; import { PivotAggDict } from './pivot_aggs'; @@ -46,11 +46,11 @@ export type TransformLatestConfig = Omit & { export type TransformConfigUnion = TransformPivotConfig | TransformLatestConfig; export function isPivotTransform(transform: unknown): transform is TransformPivotConfig { - return isPopulatedObject(transform) && transform.hasOwnProperty('pivot'); + return isPopulatedObject(transform, ['pivot']); } export function isLatestTransform(transform: unknown): transform is TransformLatestConfig { - return isPopulatedObject(transform) && transform.hasOwnProperty('latest'); + return isPopulatedObject(transform, ['latest']); } export interface LatestFunctionConfigUI { diff --git a/x-pack/plugins/transform/common/types/transform_stats.ts b/x-pack/plugins/transform/common/types/transform_stats.ts index 03e6b2e403b69..00ffa40b84d3b 100644 --- a/x-pack/plugins/transform/common/types/transform_stats.ts +++ b/x-pack/plugins/transform/common/types/transform_stats.ts @@ -6,7 +6,7 @@ */ import { TransformState, TRANSFORM_STATE } from '../constants'; -import { isPopulatedObject } from '../utils/object_utils'; +import { isPopulatedObject } from '../shared_imports'; import { TransformId } from './transform'; export interface TransformStats { @@ -61,7 +61,5 @@ function isTransformState(arg: unknown): arg is TransformState { } export function isTransformStats(arg: unknown): arg is TransformStats { - return ( - isPopulatedObject(arg) && {}.hasOwnProperty.call(arg, 'state') && isTransformState(arg.state) - ); + return isPopulatedObject(arg, ['state']) && isTransformState(arg.state); } diff --git a/x-pack/plugins/transform/common/utils/errors.ts b/x-pack/plugins/transform/common/utils/errors.ts index 46ff3f9165c00..2aff8f332b130 100644 --- a/x-pack/plugins/transform/common/utils/errors.ts +++ b/x-pack/plugins/transform/common/utils/errors.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { isPopulatedObject } from './object_utils'; +import { isPopulatedObject } from '../shared_imports'; export interface ErrorResponse { body: { @@ -18,7 +18,11 @@ export interface ErrorResponse { } export function isErrorResponse(arg: unknown): arg is ErrorResponse { - return isPopulatedObject(arg) && isPopulatedObject(arg.body) && arg?.body?.message !== undefined; + return ( + isPopulatedObject(arg, ['body']) && + isPopulatedObject(arg.body, ['message']) && + arg.body.message !== undefined + ); } export function getErrorMessage(error: unknown) { @@ -26,7 +30,7 @@ export function getErrorMessage(error: unknown) { return `${error.body.error}: ${error.body.message}`; } - if (isPopulatedObject(error) && typeof error.message === 'string') { + if (isPopulatedObject(error, ['message']) && typeof error.message === 'string') { return error.message; } diff --git a/x-pack/plugins/transform/common/utils/object_utils.test.ts b/x-pack/plugins/transform/common/utils/object_utils.test.ts index 5b354b9b27589..c99adf6b6d189 100644 --- a/x-pack/plugins/transform/common/utils/object_utils.test.ts +++ b/x-pack/plugins/transform/common/utils/object_utils.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { getNestedProperty, isPopulatedObject } from './object_utils'; +import { getNestedProperty } from './object_utils'; describe('object_utils', () => { test('getNestedProperty()', () => { @@ -68,12 +68,4 @@ describe('object_utils', () => { expect(typeof test11).toBe('number'); expect(test11).toBe(0); }); - - test('isPopulatedObject()', () => { - expect(isPopulatedObject(0)).toBe(false); - expect(isPopulatedObject('')).toBe(false); - expect(isPopulatedObject(null)).toBe(false); - expect(isPopulatedObject({})).toBe(false); - expect(isPopulatedObject({ attribute: 'value' })).toBe(true); - }); }); diff --git a/x-pack/plugins/transform/common/utils/object_utils.ts b/x-pack/plugins/transform/common/utils/object_utils.ts index a573535da6b4f..605af48914360 100644 --- a/x-pack/plugins/transform/common/utils/object_utils.ts +++ b/x-pack/plugins/transform/common/utils/object_utils.ts @@ -51,7 +51,3 @@ export const setNestedProperty = (obj: Record, accessor: string, va return obj; }; - -export const isPopulatedObject = >(arg: unknown): arg is T => { - return typeof arg === 'object' && arg !== null && Object.keys(arg).length > 0; -}; diff --git a/x-pack/plugins/transform/public/__mocks__/shared_imports.ts b/x-pack/plugins/transform/public/__mocks__/shared_imports.ts index 00a92865789ff..ae072e6666e4a 100644 --- a/x-pack/plugins/transform/public/__mocks__/shared_imports.ts +++ b/x-pack/plugins/transform/public/__mocks__/shared_imports.ts @@ -16,4 +16,4 @@ export const useRequest = jest.fn(() => ({ export const createSavedSearchesLoader = jest.fn(); // just passing through the reimports -export { getMlSharedImports, HITS_TOTAL_RELATION } from '../../../ml/public'; +export { getMlSharedImports, ES_CLIENT_TOTAL_HITS_RELATION } from '../../../ml/public'; diff --git a/x-pack/plugins/transform/public/app/common/pivot_aggs.ts b/x-pack/plugins/transform/public/app/common/pivot_aggs.ts index 905b40f16f7fb..03e06d36f9319 100644 --- a/x-pack/plugins/transform/public/app/common/pivot_aggs.ts +++ b/x-pack/plugins/transform/public/app/common/pivot_aggs.ts @@ -14,7 +14,7 @@ import type { Dictionary } from '../../../common/types/common'; import type { EsFieldName } from '../../../common/types/fields'; import type { PivotAgg, PivotSupportedAggs } from '../../../common/types/pivot_aggs'; import { PIVOT_SUPPORTED_AGGS } from '../../../common/types/pivot_aggs'; -import { isPopulatedObject } from '../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../common/shared_imports'; import { getAggFormConfig } from '../sections/create_transform/components/step_define/common/get_agg_form_config'; import { PivotAggsConfigFilter } from '../sections/create_transform/components/step_define/common/filter_agg/types'; @@ -166,11 +166,7 @@ export type PivotAggsConfigWithUiSupport = export function isPivotAggsConfigWithUiSupport(arg: unknown): arg is PivotAggsConfigWithUiSupport { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('agg') && - arg.hasOwnProperty('aggName') && - arg.hasOwnProperty('dropDownName') && - arg.hasOwnProperty('field') && + isPopulatedObject(arg, ['agg', 'aggName', 'dropDownName', 'field']) && isPivotSupportedAggs(arg.agg) ); } @@ -181,15 +177,12 @@ export function isPivotAggsConfigWithUiSupport(arg: unknown): arg is PivotAggsCo type PivotAggsConfigWithExtendedForm = PivotAggsConfigFilter; export function isPivotAggsWithExtendedForm(arg: unknown): arg is PivotAggsConfigWithExtendedForm { - return isPopulatedObject(arg) && arg.hasOwnProperty('AggFormComponent'); + return isPopulatedObject(arg, ['AggFormComponent']); } export function isPivotAggsConfigPercentiles(arg: unknown): arg is PivotAggsConfigPercentiles { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('agg') && - arg.hasOwnProperty('field') && - arg.hasOwnProperty('percents') && + isPopulatedObject(arg, ['agg', 'field', 'percents']) && arg.agg === PIVOT_SUPPORTED_AGGS.PERCENTILES ); } diff --git a/x-pack/plugins/transform/public/app/common/pivot_group_by.ts b/x-pack/plugins/transform/public/app/common/pivot_group_by.ts index fac0d88a84df7..0ad059fd29950 100644 --- a/x-pack/plugins/transform/public/app/common/pivot_group_by.ts +++ b/x-pack/plugins/transform/public/app/common/pivot_group_by.ts @@ -9,7 +9,7 @@ import { AggName } from '../../../common/types/aggregations'; import { Dictionary } from '../../../common/types/common'; import { EsFieldName } from '../../../common/types/fields'; import { GenericAgg } from '../../../common/types/pivot_group_by'; -import { isPopulatedObject } from '../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../common/shared_imports'; import { KBN_FIELD_TYPES } from '../../../../../../src/plugins/data/common'; import { PivotAggsConfigWithUiSupport } from './pivot_aggs'; @@ -84,30 +84,21 @@ export type PivotGroupByConfigDict = Dictionary; export function isGroupByDateHistogram(arg: unknown): arg is GroupByDateHistogram { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('agg') && - arg.hasOwnProperty('field') && - arg.hasOwnProperty('calendar_interval') && + isPopulatedObject(arg, ['agg', 'field', 'calendar_interval']) && arg.agg === PIVOT_SUPPORTED_GROUP_BY_AGGS.DATE_HISTOGRAM ); } export function isGroupByHistogram(arg: unknown): arg is GroupByHistogram { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('agg') && - arg.hasOwnProperty('field') && - arg.hasOwnProperty('interval') && + isPopulatedObject(arg, ['agg', 'field', 'interval']) && arg.agg === PIVOT_SUPPORTED_GROUP_BY_AGGS.HISTOGRAM ); } export function isGroupByTerms(arg: unknown): arg is GroupByTerms { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('agg') && - arg.hasOwnProperty('field') && - arg.agg === PIVOT_SUPPORTED_GROUP_BY_AGGS.TERMS + isPopulatedObject(arg, ['agg', 'field']) && arg.agg === PIVOT_SUPPORTED_GROUP_BY_AGGS.TERMS ); } @@ -124,5 +115,5 @@ export function getEsAggFromGroupByConfig(groupByConfig: GroupByConfigBase): Gen } export function isPivotAggConfigWithUiSupport(arg: unknown): arg is PivotAggsConfigWithUiSupport { - return isPopulatedObject(arg) && arg.hasOwnProperty('agg') && arg.hasOwnProperty('field'); + return isPopulatedObject(arg, ['agg', 'field']); } diff --git a/x-pack/plugins/transform/public/app/common/request.ts b/x-pack/plugins/transform/public/app/common/request.ts index 647d511cc4dcf..a7a3a91f9429b 100644 --- a/x-pack/plugins/transform/public/app/common/request.ts +++ b/x-pack/plugins/transform/public/app/common/request.ts @@ -5,7 +5,7 @@ * 2.0. */ -import type { DefaultOperator } from 'elasticsearch'; +import type { estypes } from '@elastic/elasticsearch'; import { HttpFetchError } from '../../../../../../src/core/public'; import type { IndexPattern } from '../../../../../../src/plugins/data/public'; @@ -17,7 +17,7 @@ import type { PutTransformsPivotRequestSchema, PutTransformsRequestSchema, } from '../../../common/api_schemas/transforms'; -import { isPopulatedObject } from '../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../common/shared_imports'; import { DateHistogramAgg, HistogramAgg, TermsAgg } from '../../../common/types/pivot_group_by'; import { isIndexPattern } from '../../../common/types/index_pattern'; @@ -39,7 +39,7 @@ import { export interface SimpleQuery { query_string: { query: string; - default_operator?: DefaultOperator; + default_operator?: estypes.DefaultOperator; }; } @@ -59,14 +59,13 @@ export function getPivotQuery(search: string | SavedSearchQuery): PivotQuery { } export function isSimpleQuery(arg: unknown): arg is SimpleQuery { - return isPopulatedObject(arg) && arg.hasOwnProperty('query_string'); + return isPopulatedObject(arg, ['query_string']); } export const matchAllQuery = { match_all: {} }; export function isMatchAllQuery(query: unknown): boolean { return ( - isPopulatedObject(query) && - query.hasOwnProperty('match_all') && + isPopulatedObject(query, ['match_all']) && typeof query.match_all === 'object' && query.match_all !== null && Object.keys(query.match_all).length === 0 @@ -101,7 +100,7 @@ export function getCombinedRuntimeMappings( combinedRuntimeMappings = { ...combinedRuntimeMappings, ...runtimeMappings }; } - if (isPopulatedObject(combinedRuntimeMappings)) { + if (isPopulatedObject(combinedRuntimeMappings)) { return combinedRuntimeMappings; } return undefined; diff --git a/x-pack/plugins/transform/public/app/hooks/__mocks__/use_api.ts b/x-pack/plugins/transform/public/app/hooks/__mocks__/use_api.ts index 7aaca793c2a1f..a9455877be429 100644 --- a/x-pack/plugins/transform/public/app/hooks/__mocks__/use_api.ts +++ b/x-pack/plugins/transform/public/app/hooks/__mocks__/use_api.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { estypes } from '@elastic/elasticsearch'; + import { HttpFetchError } from 'kibana/public'; import { KBN_FIELD_TYPES } from '../../../../../../../src/plugins/data/public'; @@ -37,7 +39,6 @@ import type { PostTransformsUpdateResponseSchema, } from '../../../../common/api_schemas/update_transforms'; -import type { SearchResponse7 } from '../../../../common/shared_imports'; import { EsIndex } from '../../../../common/types/es_index'; import type { SavedSearchQuery } from '../use_search_items'; @@ -134,7 +135,7 @@ const apiFactory = () => ({ ): Promise { return Promise.resolve([]); }, - async esSearch(payload: any): Promise { + async esSearch(payload: any): Promise { return Promise.resolve({ hits: { hits: [], diff --git a/x-pack/plugins/transform/public/app/hooks/use_api.ts b/x-pack/plugins/transform/public/app/hooks/use_api.ts index f3c90a688453d..1abe2ed09444e 100644 --- a/x-pack/plugins/transform/public/app/hooks/use_api.ts +++ b/x-pack/plugins/transform/public/app/hooks/use_api.ts @@ -7,6 +7,8 @@ import { useMemo } from 'react'; +import { estypes } from '@elastic/elasticsearch'; + import { HttpFetchError } from 'kibana/public'; import { KBN_FIELD_TYPES } from '../../../../../../src/plugins/data/public'; @@ -44,7 +46,6 @@ import type { GetTransformsStatsResponseSchema } from '../../../common/api_schem import { TransformId } from '../../../common/types/transform'; import { API_BASE_PATH } from '../../../common/constants'; import { EsIndex } from '../../../common/types/es_index'; -import type { SearchResponse7 } from '../../../common/shared_imports'; import { useAppDependencies } from '../app_dependencies'; @@ -187,7 +188,7 @@ export const useApi = () => { return e; } }, - async esSearch(payload: any): Promise { + async esSearch(payload: any): Promise { try { return await http.post(`${API_BASE_PATH}es_search`, { body: JSON.stringify(payload) }); } catch (e) { diff --git a/x-pack/plugins/transform/public/app/hooks/use_index_data.ts b/x-pack/plugins/transform/public/app/hooks/use_index_data.ts index e12aa78e33622..bb83de8e12004 100644 --- a/x-pack/plugins/transform/public/app/hooks/use_index_data.ts +++ b/x-pack/plugins/transform/public/app/hooks/use_index_data.ts @@ -7,7 +7,8 @@ import { useEffect, useMemo } from 'react'; -import { EuiDataGridColumn } from '@elastic/eui'; +import type { estypes } from '@elastic/elasticsearch'; +import type { EuiDataGridColumn } from '@elastic/eui'; import { isEsSearchResponse, @@ -133,10 +134,14 @@ export const useIndexData = ( return; } - const docs = resp.hits.hits.map((d) => getProcessedFields(d.fields)); + const docs = resp.hits.hits.map((d) => getProcessedFields(d.fields ?? {})); - setRowCount(resp.hits.total.value); - setRowCountRelation(resp.hits.total.relation); + setRowCount(typeof resp.hits.total === 'number' ? resp.hits.total : resp.hits.total.value); + setRowCountRelation( + typeof resp.hits.total === 'number' + ? ('eq' as estypes.TotalHitsRelation) + : resp.hits.total.relation + ); setTableItems(docs); setStatus(INDEX_STATUS.LOADED); }; diff --git a/x-pack/plugins/transform/public/app/hooks/use_pivot_data.ts b/x-pack/plugins/transform/public/app/hooks/use_pivot_data.ts index 2477c005c936d..24c28effd12bc 100644 --- a/x-pack/plugins/transform/public/app/hooks/use_pivot_data.ts +++ b/x-pack/plugins/transform/public/app/hooks/use_pivot_data.ts @@ -18,7 +18,11 @@ import type { PreviewMappingsProperties } from '../../../common/api_schemas/tran import { isPostTransformsPreviewResponseSchema } from '../../../common/api_schemas/type_guards'; import { getNestedProperty } from '../../../common/utils/object_utils'; -import { RenderCellValue, UseIndexDataReturnType, HITS_TOTAL_RELATION } from '../../shared_imports'; +import { + RenderCellValue, + UseIndexDataReturnType, + ES_CLIENT_TOTAL_HITS_RELATION, +} from '../../shared_imports'; import { getErrorMessage } from '../../../common/utils/errors'; import { useAppDependencies } from '../app_dependencies'; @@ -128,7 +132,7 @@ export const usePivotData = ( if (!validationStatus.isValid) { setTableItems([]); setRowCount(0); - setRowCountRelation(HITS_TOTAL_RELATION.EQ); + setRowCountRelation(ES_CLIENT_TOTAL_HITS_RELATION.EQ); setNoDataMessage(validationStatus.errorMessage!); return; } @@ -149,7 +153,7 @@ export const usePivotData = ( setErrorMessage(getErrorMessage(resp)); setTableItems([]); setRowCount(0); - setRowCountRelation(HITS_TOTAL_RELATION.EQ); + setRowCountRelation(ES_CLIENT_TOTAL_HITS_RELATION.EQ); setPreviewMappingsProperties({}); setStatus(INDEX_STATUS.ERROR); return; @@ -157,7 +161,7 @@ export const usePivotData = ( setTableItems(resp.preview); setRowCount(resp.preview.length); - setRowCountRelation(HITS_TOTAL_RELATION.EQ); + setRowCountRelation(ES_CLIENT_TOTAL_HITS_RELATION.EQ); setPreviewMappingsProperties(resp.generated_dest_index.mappings.properties); setStatus(INDEX_STATUS.LOADED); diff --git a/x-pack/plugins/transform/public/app/lib/authorization/components/common.ts b/x-pack/plugins/transform/public/app/lib/authorization/components/common.ts index 28e9f190a9108..5599e3f423277 100644 --- a/x-pack/plugins/transform/public/app/lib/authorization/components/common.ts +++ b/x-pack/plugins/transform/public/app/lib/authorization/components/common.ts @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; import { Privileges } from '../../../../../common/types/privileges'; -import { isPopulatedObject } from '../../../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../../../common/shared_imports'; export interface Capabilities { canGetTransform: boolean; @@ -22,10 +22,8 @@ export type Privilege = [string, string]; function isPrivileges(arg: unknown): arg is Privileges { return ( - isPopulatedObject(arg) && - arg.hasOwnProperty('hasAllPrivileges') && + isPopulatedObject(arg, ['hasAllPrivileges', 'missingPrivileges']) && typeof arg.hasAllPrivileges === 'boolean' && - arg.hasOwnProperty('missingPrivileges') && typeof arg.missingPrivileges === 'object' && arg.missingPrivileges !== null ); diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/advanced_runtime_mappings_editor/advanced_runtime_mappings_editor.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/advanced_runtime_mappings_editor/advanced_runtime_mappings_editor.tsx index 1e8397a4d9cc3..1e6e6a971a81a 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/advanced_runtime_mappings_editor/advanced_runtime_mappings_editor.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/advanced_runtime_mappings_editor/advanced_runtime_mappings_editor.tsx @@ -12,8 +12,9 @@ import { EuiCodeEditor } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { isRuntimeMappings } from '../../../../../../common/shared_imports'; + import { StepDefineFormHook } from '../step_define'; -import { isRuntimeMappings } from '../step_define/common/types'; export const AdvancedRuntimeMappingsEditor: FC = memo( ({ diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_create/step_create_form.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_create/step_create_form.tsx index a7f2a3cd7178d..36bdca7921622 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_create/step_create_form.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_create/step_create_form.tsx @@ -47,7 +47,7 @@ import { PutTransformsPivotRequestSchema, } from '../../../../../../common/api_schemas/transforms'; import type { RuntimeField } from '../../../../../../../../../src/plugins/data/common/index_patterns'; -import { isPopulatedObject } from '../../../../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../../../../common/shared_imports'; import { isLatestTransform } from '../../../../../../common/types/transform'; export interface StepDetailsExposedState { diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_agg_form.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_agg_form.tsx index 3b5d6e0e50497..9b349541a78a3 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_agg_form.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_agg_form.tsx @@ -16,7 +16,7 @@ import { getFilterAggTypeConfig } from '../config'; import type { FilterAggType, PivotAggsConfigFilter } from '../types'; import type { RuntimeMappings } from '../../types'; import { getKibanaFieldTypeFromEsType } from '../../get_pivot_dropdown_options'; -import { isPopulatedObject } from '../../../../../../../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../../../../../../../common/shared_imports'; /** * Resolves supported filters for provided field. diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_term_form.tsx b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_term_form.tsx index f2db6167c163c..358bb9dcafa96 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_term_form.tsx +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/filter_agg/components/filter_term_form.tsx @@ -6,12 +6,16 @@ */ import React, { useCallback, useContext, useEffect, useState } from 'react'; -import { EuiComboBox, EuiFormRow } from '@elastic/eui'; +import { estypes } from '@elastic/elasticsearch'; +import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { debounce } from 'lodash'; import useUpdateEffect from 'react-use/lib/useUpdateEffect'; import { i18n } from '@kbn/i18n'; -import { isEsSearchResponse } from '../../../../../../../../../common/api_schemas/type_guards'; +import { + isEsSearchResponseWithAggregations, + isMultiBucketAggregate, +} from '../../../../../../../../../common/api_schemas/type_guards'; import { useApi } from '../../../../../../../hooks'; import { CreateTransformWizardContext } from '../../../../wizard/wizard'; import { FilterAggConfigTerm } from '../types'; @@ -29,7 +33,7 @@ export const FilterTermForm: FilterAggConfigTerm['aggTypeConfig']['FilterAggForm const { indexPattern, runtimeMappings } = useContext(CreateTransformWizardContext); const toastNotifications = useToastNotifications(); - const [options, setOptions] = useState([]); + const [options, setOptions] = useState([]); const [isLoading, setIsLoading] = useState(true); /* eslint-disable-next-line react-hooks/exhaustive-deps */ @@ -62,7 +66,12 @@ export const FilterTermForm: FilterAggConfigTerm['aggTypeConfig']['FilterAggForm setIsLoading(false); - if (!isEsSearchResponse(response)) { + if ( + !( + isEsSearchResponseWithAggregations(response) && + isMultiBucketAggregate(response.aggregations.field_values) + ) + ) { toastNotifications.addWarning( i18n.translate('xpack.transform.agg.popoverForm.filerAgg.term.errorFetchSuggestions', { defaultMessage: 'Unable to fetch suggestions', @@ -72,9 +81,7 @@ export const FilterTermForm: FilterAggConfigTerm['aggTypeConfig']['FilterAggForm } setOptions( - response.aggregations.field_values.buckets.map( - (value: { key: string; doc_count: number }) => ({ label: value.key }) - ) + response.aggregations.field_values.buckets.map((value) => ({ label: value.key + '' })) ); }, 600), [selectedField] diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts index 8d85988424e27..957439810adc7 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/get_pivot_dropdown_options.ts @@ -13,6 +13,7 @@ import { } from '../../../../../../../../../../src/plugins/data/public'; import { getNestedProperty } from '../../../../../../../common/utils/object_utils'; +import { isRuntimeMappings } from '../../../../../../../common/shared_imports'; import { DropDownLabel, @@ -26,7 +27,6 @@ import { import { getDefaultAggregationConfig } from './get_default_aggregation_config'; import { getDefaultGroupByConfig } from './get_default_group_by_config'; import type { Field, StepDefineExposedState } from './types'; -import { isRuntimeMappings } from './types'; const illegalEsAggNameChars = /[[\]>]/g; diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.test.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.test.ts deleted file mode 100644 index ec90d31a0d169..0000000000000 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.test.ts +++ /dev/null @@ -1,71 +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 { isRuntimeField, isRuntimeMappings } from './types'; - -describe('Transform: step_define type guards', () => { - it('isRuntimeField()', () => { - expect(isRuntimeField(1)).toBe(false); - expect(isRuntimeField(null)).toBe(false); - expect(isRuntimeField([])).toBe(false); - expect(isRuntimeField({})).toBe(false); - expect(isRuntimeField({ someAttribute: 'someValue' })).toBe(false); - expect(isRuntimeField({ type: 'wrong-type' })).toBe(false); - expect(isRuntimeField({ type: 'keyword', someAttribute: 'some value' })).toBe(false); - - expect(isRuntimeField({ type: 'keyword' })).toBe(true); - expect(isRuntimeField({ type: 'keyword', script: 'some script' })).toBe(true); - }); - - it('isRuntimeMappings()', () => { - expect(isRuntimeMappings(1)).toBe(false); - expect(isRuntimeMappings(null)).toBe(false); - expect(isRuntimeMappings([])).toBe(false); - expect(isRuntimeMappings({})).toBe(false); - expect(isRuntimeMappings({ someAttribute: 'someValue' })).toBe(false); - expect(isRuntimeMappings({ fieldName1: { type: 'keyword' }, fieldName2: 'someValue' })).toBe( - false - ); - expect( - isRuntimeMappings({ - fieldName1: { type: 'keyword' }, - fieldName2: { type: 'keyword', someAttribute: 'some value' }, - }) - ).toBe(false); - expect( - isRuntimeMappings({ - fieldName: { type: 'long', script: 1234 }, - }) - ).toBe(false); - expect( - isRuntimeMappings({ - fieldName: { type: 'long', script: { someAttribute: 'some value' } }, - }) - ).toBe(false); - expect( - isRuntimeMappings({ - fieldName: { type: 'long', script: { source: 1234 } }, - }) - ).toBe(false); - - expect(isRuntimeMappings({ fieldName: { type: 'keyword' } })).toBe(true); - expect( - isRuntimeMappings({ fieldName1: { type: 'keyword' }, fieldName2: { type: 'keyword' } }) - ).toBe(true); - expect( - isRuntimeMappings({ - fieldName1: { type: 'keyword' }, - fieldName2: { type: 'keyword', script: 'some script as script' }, - }) - ).toBe(true); - expect( - isRuntimeMappings({ - fieldName: { type: 'long', script: { source: 'some script as source' } }, - }) - ).toBe(true); - }); -}); diff --git a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts index 6b4ff0090a497..8b3b33fdde3ef 100644 --- a/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts +++ b/x-pack/plugins/transform/public/app/sections/create_transform/components/step_define/common/types.ts @@ -24,7 +24,7 @@ import { } from '../../../../../../../common/types/transform'; import { LatestFunctionConfig } from '../../../../../../../common/api_schemas/transforms'; -import { isPopulatedObject } from '../../../../../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../../../../../common/shared_imports'; export interface ErrorMessage { query: string; @@ -72,30 +72,10 @@ export interface StepDefineExposedState { isRuntimeMappingsEditorEnabled: boolean; } -export function isRuntimeField(arg: unknown): arg is RuntimeField { - return ( - isPopulatedObject(arg) && - ((Object.keys(arg).length === 1 && arg.hasOwnProperty('type')) || - (Object.keys(arg).length === 2 && - arg.hasOwnProperty('type') && - arg.hasOwnProperty('script') && - (typeof arg.script === 'string' || - (isPopulatedObject(arg.script) && - Object.keys(arg.script).length === 1 && - arg.script.hasOwnProperty('source') && - typeof arg.script.source === 'string')))) && - RUNTIME_FIELD_TYPES.includes(arg.type as RuntimeType) - ); -} - -export function isRuntimeMappings(arg: unknown): arg is RuntimeMappings { - return isPopulatedObject(arg) && Object.values(arg).every((d) => isRuntimeField(d)); -} - export function isPivotPartialRequest(arg: unknown): arg is { pivot: PivotConfigDefinition } { - return isPopulatedObject(arg) && arg.hasOwnProperty('pivot'); + return isPopulatedObject(arg, ['pivot']); } export function isLatestPartialRequest(arg: unknown): arg is { latest: LatestFunctionConfig } { - return isPopulatedObject(arg) && arg.hasOwnProperty('latest'); + return isPopulatedObject(arg, ['latest']); } diff --git a/x-pack/plugins/transform/public/shared_imports.ts b/x-pack/plugins/transform/public/shared_imports.ts index ddf5cf7cb5cb1..edd27fd43c2af 100644 --- a/x-pack/plugins/transform/public/shared_imports.ts +++ b/x-pack/plugins/transform/public/shared_imports.ts @@ -15,7 +15,7 @@ export { UseIndexDataReturnType, EsSorting, RenderCellValue, - HITS_TOTAL_RELATION, + ES_CLIENT_TOTAL_HITS_RELATION, } from '../../ml/public'; import { XJson } from '../../../../src/plugins/es_ui_shared/public'; diff --git a/x-pack/plugins/transform/server/routes/api/transforms_nodes.ts b/x-pack/plugins/transform/server/routes/api/transforms_nodes.ts index afdcc93998303..c9a0795c32210 100644 --- a/x-pack/plugins/transform/server/routes/api/transforms_nodes.ts +++ b/x-pack/plugins/transform/server/routes/api/transforms_nodes.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { isPopulatedObject } from '../../../common/utils/object_utils'; +import { isPopulatedObject } from '../../../common/shared_imports'; import { RouteDependencies } from '../../types'; @@ -24,10 +24,7 @@ export const isNodes = (arg: unknown): arg is Nodes => { return ( isPopulatedObject(arg) && Object.values(arg).every( - (node) => - isPopulatedObject(node) && - {}.hasOwnProperty.call(node, NODE_ROLES) && - Array.isArray(node.roles) + (node) => isPopulatedObject(node, [NODE_ROLES]) && Array.isArray(node.roles) ) ); }; From b6e582c53ebb9c496c232408066b128d2ca2f92c Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Thu, 1 Apr 2021 14:40:47 +0200 Subject: [PATCH 039/106] TS Incremental build exclude test files (#95610) * add base config for all the TS projects * all the project use new tsconfig.project.json * compile test files in the high-level tsconfig.json * fix TS error in maps plugin * fix TS error in infra plugin * exclude mote test and test until folders * uptime. do not import test code within prod code * expressions. do not import test code within prod code * data: export mocks from high level folder * task_manager: comply with es client typings * infra: remove unused enzyme_helpers * check_ts_project requires "include" key * ts_check should handle parent configs * all ts configs should extend base one * exclude test folders from plugins * update patterns to fix ts_check errors * Apply suggestions from code review Co-authored-by: Constance * uptime: MountWithReduxProvider to test helpers Co-authored-by: Constance Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- packages/kbn-storybook/tsconfig.json | 2 +- src/core/tsconfig.json | 2 +- src/dev/typescript/project.ts | 37 ++++++-- src/plugins/advanced_settings/tsconfig.json | 2 +- src/plugins/apm_oss/tsconfig.json | 2 +- src/plugins/bfetch/tsconfig.json | 2 +- src/plugins/charts/tsconfig.json | 2 +- src/plugins/console/tsconfig.json | 2 +- src/plugins/dashboard/tsconfig.json | 2 +- .../search/expressions/exists_filter.test.ts | 2 +- .../search/expressions/kibana_filter.test.ts | 2 +- .../search/expressions/phrase_filter.test.ts | 2 +- .../search/expressions/range_filter.test.ts | 2 +- src/plugins/data/tsconfig.json | 2 +- src/plugins/dev_tools/tsconfig.json | 2 +- src/plugins/discover/tsconfig.json | 2 +- src/plugins/embeddable/tsconfig.json | 2 +- src/plugins/es_ui_shared/tsconfig.json | 2 +- src/plugins/expressions/common/mocks.ts | 2 + src/plugins/expressions/common/util/index.ts | 1 - src/plugins/expressions/tsconfig.json | 2 +- src/plugins/home/tsconfig.json | 2 +- .../index_pattern_field_editor/tsconfig.json | 2 +- .../index_pattern_management/tsconfig.json | 2 +- src/plugins/input_control_vis/tsconfig.json | 2 +- src/plugins/inspector/tsconfig.json | 2 +- src/plugins/kibana_legacy/tsconfig.json | 2 +- src/plugins/kibana_overview/tsconfig.json | 2 +- src/plugins/kibana_react/tsconfig.json | 2 +- .../kibana_usage_collection/tsconfig.json | 2 +- src/plugins/kibana_utils/tsconfig.json | 2 +- src/plugins/legacy_export/tsconfig.json | 2 +- src/plugins/management/tsconfig.json | 2 +- src/plugins/maps_ems/tsconfig.json | 2 +- src/plugins/maps_legacy/tsconfig.json | 2 +- src/plugins/navigation/tsconfig.json | 2 +- src/plugins/newsfeed/tsconfig.json | 2 +- src/plugins/presentation_util/tsconfig.json | 2 +- src/plugins/region_map/tsconfig.json | 2 +- src/plugins/saved_objects/tsconfig.json | 2 +- .../saved_objects_management/tsconfig.json | 2 +- .../saved_objects_tagging_oss/tsconfig.json | 2 +- src/plugins/security_oss/tsconfig.json | 2 +- src/plugins/share/tsconfig.json | 2 +- src/plugins/spaces_oss/tsconfig.json | 2 +- src/plugins/telemetry/tsconfig.json | 2 +- .../tsconfig.json | 2 +- .../tsconfig.json | 2 +- src/plugins/tile_map/tsconfig.json | 2 +- src/plugins/timelion/tsconfig.json | 2 +- src/plugins/ui_actions/tsconfig.json | 2 +- src/plugins/url_forwarding/tsconfig.json | 2 +- src/plugins/usage_collection/tsconfig.json | 2 +- src/plugins/vis_default_editor/tsconfig.json | 2 +- src/plugins/vis_type_markdown/tsconfig.json | 2 +- src/plugins/vis_type_metric/tsconfig.json | 2 +- src/plugins/vis_type_table/tsconfig.json | 2 +- src/plugins/vis_type_tagcloud/tsconfig.json | 2 +- src/plugins/vis_type_timelion/tsconfig.json | 2 +- src/plugins/vis_type_timeseries/tsconfig.json | 2 +- src/plugins/vis_type_vega/tsconfig.json | 2 +- src/plugins/vis_type_vislib/tsconfig.json | 2 +- src/plugins/vis_type_xy/tsconfig.json | 2 +- src/plugins/visualizations/tsconfig.json | 2 +- src/plugins/visualize/tsconfig.json | 2 +- tsconfig.base.json | 3 +- tsconfig.json | 72 +++++++++++++++ tsconfig.project.json | 65 ++++++++++++++ x-pack/plugins/actions/tsconfig.json | 2 +- x-pack/plugins/alerting/tsconfig.json | 2 +- x-pack/plugins/apm/e2e/tsconfig.json | 2 +- x-pack/plugins/apm/ftr_e2e/tsconfig.json | 4 +- .../apm/scripts/optimize-tsconfig/optimize.js | 2 +- .../apm/scripts/optimize-tsconfig/paths.js | 2 +- x-pack/plugins/apm/tsconfig.json | 2 +- x-pack/plugins/banners/tsconfig.json | 2 +- x-pack/plugins/beats_management/tsconfig.json | 2 +- .../canvas/storybook/addon/tsconfig.json | 2 +- x-pack/plugins/canvas/tsconfig.json | 2 +- x-pack/plugins/cloud/tsconfig.json | 2 +- .../plugins/console_extensions/tsconfig.json | 2 +- .../cross_cluster_replication/tsconfig.json | 2 +- .../plugins/dashboard_enhanced/tsconfig.json | 2 +- x-pack/plugins/dashboard_mode/tsconfig.json | 2 +- x-pack/plugins/data_enhanced/tsconfig.json | 2 +- .../plugins/discover_enhanced/tsconfig.json | 2 +- .../drilldowns/url_drilldown/tsconfig.json | 2 +- .../plugins/embeddable_enhanced/tsconfig.json | 2 +- .../encrypted_saved_objects/tsconfig.json | 2 +- .../plugins/enterprise_search/tsconfig.json | 2 +- x-pack/plugins/event_log/tsconfig.json | 2 +- x-pack/plugins/features/tsconfig.json | 2 +- x-pack/plugins/file_upload/tsconfig.json | 2 +- x-pack/plugins/fleet/tsconfig.json | 2 +- x-pack/plugins/global_search/tsconfig.json | 2 +- .../plugins/global_search_bar/tsconfig.json | 2 +- .../global_search_providers/tsconfig.json | 2 +- x-pack/plugins/graph/tsconfig.json | 4 +- x-pack/plugins/grokdebugger/tsconfig.json | 2 +- .../index_lifecycle_management/tsconfig.json | 3 +- x-pack/plugins/index_management/tsconfig.json | 4 +- .../infra/public/utils/enzyme_helpers.tsx | 87 ------------------- .../queries/metrics_hosts_anomalies.ts | 2 +- .../infra_ml/queries/metrics_k8s_anomalies.ts | 2 +- x-pack/plugins/infra/tsconfig.json | 2 +- x-pack/plugins/ingest_pipelines/tsconfig.json | 3 +- x-pack/plugins/lens/tsconfig.json | 4 +- .../plugins/license_management/tsconfig.json | 2 +- x-pack/plugins/licensing/tsconfig.json | 2 +- x-pack/plugins/logstash/tsconfig.json | 2 +- .../components/validated_number_input.tsx | 4 +- x-pack/plugins/maps/tsconfig.json | 2 +- .../maps_legacy_licensing/tsconfig.json | 2 +- .../routes/apidoc_scripts/tsconfig.json | 2 +- x-pack/plugins/ml/tsconfig.json | 2 +- x-pack/plugins/monitoring/tsconfig.json | 2 +- x-pack/plugins/observability/tsconfig.json | 2 +- x-pack/plugins/osquery/tsconfig.json | 2 +- x-pack/plugins/painless_lab/tsconfig.json | 2 +- x-pack/plugins/remote_clusters/tsconfig.json | 2 +- x-pack/plugins/reporting/tsconfig.json | 2 +- x-pack/plugins/rollup/tsconfig.json | 2 +- x-pack/plugins/runtime_fields/tsconfig.json | 2 +- .../saved_objects_tagging/tsconfig.json | 2 +- x-pack/plugins/searchprofiler/tsconfig.json | 2 +- x-pack/plugins/security/tsconfig.json | 2 +- .../security_solution/cypress/tsconfig.json | 2 +- x-pack/plugins/snapshot_restore/tsconfig.json | 4 +- x-pack/plugins/spaces/tsconfig.json | 2 +- x-pack/plugins/stack_alerts/tsconfig.json | 2 +- .../server/monitoring/workload_statistics.ts | 3 +- x-pack/plugins/task_manager/tsconfig.json | 2 +- .../telemetry_collection_xpack/tsconfig.json | 2 +- x-pack/plugins/transform/tsconfig.json | 2 +- .../plugins/triggers_actions_ui/tsconfig.json | 2 +- .../plugins/ui_actions_enhanced/tsconfig.json | 2 +- .../plugins/upgrade_assistant/tsconfig.json | 2 +- .../certificates/cert_monitors.test.tsx | 2 +- .../certificates/cert_search.test.tsx | 2 +- .../certificates/cert_status.test.tsx | 2 +- .../certificates/certificates_list.test.tsx | 2 +- .../certificates/fingerprint_col.test.tsx | 2 +- .../common/charts/duration_charts.test.tsx | 2 +- .../common/charts/monitor_bar_series.test.tsx | 3 +- .../common/header/page_header.test.tsx | 2 +- .../components/common/monitor_tags.test.tsx | 2 +- .../common/uptime_date_picker.test.tsx | 4 +- .../monitor/ml/ml_integerations.test.tsx | 2 +- .../monitor/ml/ml_manage_job.test.tsx | 2 +- .../monitor/monitor_charts.test.tsx | 2 +- .../components/monitor/monitor_title.test.tsx | 2 +- .../monitor_status.bar.test.tsx | 2 +- .../status_details/ssl_certificate.test.tsx | 6 +- .../overview/empty_state/empty_state.test.tsx | 2 +- .../columns/enable_alert.test.tsx | 2 +- .../filter_status_button.test.tsx | 3 +- .../monitor_list/monitor_list.test.tsx | 2 +- .../monitor_list_drawer.test.tsx | 2 +- .../monitor_list/status_filter.test.tsx | 4 +- .../settings/certificate_form.test.tsx | 2 +- .../components/settings/indices_form.test.tsx | 2 +- .../public/hooks/use_breadcrumbs.test.tsx | 5 +- .../public/hooks/use_url_params.test.tsx | 3 +- .../plugins/uptime/public/lib/helper/index.ts | 1 - x-pack/plugins/uptime/public/lib/index.ts | 9 -- .../uptime/public/pages/certificates.test.tsx | 2 +- .../uptime/public/pages/monitor.test.tsx | 2 +- .../uptime/public/pages/not_found.test.tsx | 2 +- .../uptime/public/pages/overview.test.tsx | 2 +- x-pack/plugins/uptime/tsconfig.json | 3 +- x-pack/plugins/watcher/tsconfig.json | 2 +- x-pack/plugins/xpack_legacy/tsconfig.json | 2 +- 172 files changed, 351 insertions(+), 282 deletions(-) create mode 100644 tsconfig.project.json delete mode 100644 x-pack/plugins/infra/public/utils/enzyme_helpers.tsx delete mode 100644 x-pack/plugins/uptime/public/lib/index.ts diff --git a/packages/kbn-storybook/tsconfig.json b/packages/kbn-storybook/tsconfig.json index db10d4630ff9c..5c81c9100e601 100644 --- a/packages/kbn-storybook/tsconfig.json +++ b/packages/kbn-storybook/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "incremental": false, "outDir": "target", diff --git a/src/core/tsconfig.json b/src/core/tsconfig.json index 855962070457e..f19e379482d3c 100644 --- a/src/core/tsconfig.json +++ b/src/core/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/dev/typescript/project.ts b/src/dev/typescript/project.ts index 8d92284e49637..04a5de945619b 100644 --- a/src/dev/typescript/project.ts +++ b/src/dev/typescript/project.ts @@ -7,7 +7,7 @@ */ import { basename, dirname, relative, resolve } from 'path'; - +import { memoize } from 'lodash'; import { IMinimatch, Minimatch } from 'minimatch'; import { REPO_ROOT } from '@kbn/utils'; @@ -26,6 +26,10 @@ function testMatchers(matchers: IMinimatch[], path: string) { return matchers.some((matcher) => matcher.match(path)); } +const parentProjectFactory = memoize(function (parentConfigPath: string) { + return new Project(parentConfigPath); +}); + export class Project { public directory: string; public name: string; @@ -34,6 +38,7 @@ export class Project { private readonly include: IMinimatch[]; private readonly exclude: IMinimatch[]; + private readonly parent?: Project; constructor( public tsConfigPath: string, @@ -41,15 +46,16 @@ export class Project { ) { this.config = parseTsConfig(tsConfigPath); - const { files, include, exclude = [] } = this.config as { + const { files, include, exclude = [], extends: extendsPath } = this.config as { files?: string[]; include?: string[]; exclude?: string[]; + extends?: string; }; if (files || !include) { throw new Error( - 'tsconfig.json files in the Kibana repo must use "include" keys and not "files"' + `[${tsConfigPath}]: tsconfig.json files in the Kibana repo must use "include" keys and not "files"` ); } @@ -58,9 +64,30 @@ export class Project { this.name = options.name || relative(REPO_ROOT, this.directory) || basename(this.directory); this.include = makeMatchers(this.directory, include); this.exclude = makeMatchers(this.directory, exclude); + + if (extendsPath !== undefined) { + const parentConfigPath = resolve(this.directory, extendsPath); + this.parent = parentProjectFactory(parentConfigPath); + } + } + + public isAbsolutePathSelected(path: string): boolean { + return this.isExcluded(path) ? false : this.isIncluded(path); } - public isAbsolutePathSelected(path: string) { - return testMatchers(this.exclude, path) ? false : testMatchers(this.include, path); + public isExcluded(path: string): boolean { + if (testMatchers(this.exclude, path)) return true; + if (this.parent) { + return this.parent.isExcluded(path); + } + return false; + } + + public isIncluded(path: string): boolean { + if (testMatchers(this.include, path)) return true; + if (this.parent) { + return this.parent.isIncluded(path); + } + return false; } } diff --git a/src/plugins/advanced_settings/tsconfig.json b/src/plugins/advanced_settings/tsconfig.json index 4d62e410326b6..97a855959903d 100644 --- a/src/plugins/advanced_settings/tsconfig.json +++ b/src/plugins/advanced_settings/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/apm_oss/tsconfig.json b/src/plugins/apm_oss/tsconfig.json index aeb6837c69a99..ccb123aaec83b 100644 --- a/src/plugins/apm_oss/tsconfig.json +++ b/src/plugins/apm_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/bfetch/tsconfig.json b/src/plugins/bfetch/tsconfig.json index 173ff725d07d0..6c01479f1929e 100644 --- a/src/plugins/bfetch/tsconfig.json +++ b/src/plugins/bfetch/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/charts/tsconfig.json b/src/plugins/charts/tsconfig.json index a4f65d5937204..99edb2ffe3c16 100644 --- a/src/plugins/charts/tsconfig.json +++ b/src/plugins/charts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/console/tsconfig.json b/src/plugins/console/tsconfig.json index 34aca5021bac4..d9f49036be8f8 100644 --- a/src/plugins/console/tsconfig.json +++ b/src/plugins/console/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/dashboard/tsconfig.json b/src/plugins/dashboard/tsconfig.json index dd99119cfb457..452208b39af60 100644 --- a/src/plugins/dashboard/tsconfig.json +++ b/src/plugins/dashboard/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/data/common/search/expressions/exists_filter.test.ts b/src/plugins/data/common/search/expressions/exists_filter.test.ts index e3b53b2281398..60e8a9c7a09ce 100644 --- a/src/plugins/data/common/search/expressions/exists_filter.test.ts +++ b/src/plugins/data/common/search/expressions/exists_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common'; +import { createMockContext } from '../../../../expressions/common/mocks'; import { functionWrapper } from './utils'; import { existsFilterFunction } from './exists_filter'; diff --git a/src/plugins/data/common/search/expressions/kibana_filter.test.ts b/src/plugins/data/common/search/expressions/kibana_filter.test.ts index ac8ae55492cc0..56a9e1ce660cd 100644 --- a/src/plugins/data/common/search/expressions/kibana_filter.test.ts +++ b/src/plugins/data/common/search/expressions/kibana_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common'; +import { createMockContext } from '../../../../expressions/common/mocks'; import { functionWrapper } from './utils'; import { kibanaFilterFunction } from './kibana_filter'; diff --git a/src/plugins/data/common/search/expressions/phrase_filter.test.ts b/src/plugins/data/common/search/expressions/phrase_filter.test.ts index 39bd907513a0d..90e471e166f5e 100644 --- a/src/plugins/data/common/search/expressions/phrase_filter.test.ts +++ b/src/plugins/data/common/search/expressions/phrase_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common'; +import { createMockContext } from '../../../../expressions/common/mocks'; import { functionWrapper } from './utils'; import { phraseFilterFunction } from './phrase_filter'; diff --git a/src/plugins/data/common/search/expressions/range_filter.test.ts b/src/plugins/data/common/search/expressions/range_filter.test.ts index 92670f8a044ba..129e6bd82e16a 100644 --- a/src/plugins/data/common/search/expressions/range_filter.test.ts +++ b/src/plugins/data/common/search/expressions/range_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common'; +import { createMockContext } from '../../../../expressions/common/mocks'; import { functionWrapper } from './utils'; import { rangeFilterFunction } from './range_filter'; diff --git a/src/plugins/data/tsconfig.json b/src/plugins/data/tsconfig.json index 9c95878af631e..b99a2f6f85904 100644 --- a/src/plugins/data/tsconfig.json +++ b/src/plugins/data/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/dev_tools/tsconfig.json b/src/plugins/dev_tools/tsconfig.json index c17b2341fd42f..f369396b17fbe 100644 --- a/src/plugins/dev_tools/tsconfig.json +++ b/src/plugins/dev_tools/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/discover/tsconfig.json b/src/plugins/discover/tsconfig.json index ec98199c3423e..96765d76a340b 100644 --- a/src/plugins/discover/tsconfig.json +++ b/src/plugins/discover/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/embeddable/tsconfig.json b/src/plugins/embeddable/tsconfig.json index 27a887500fb68..eacfa831ecee5 100644 --- a/src/plugins/embeddable/tsconfig.json +++ b/src/plugins/embeddable/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/es_ui_shared/tsconfig.json b/src/plugins/es_ui_shared/tsconfig.json index 9bcda2e0614de..3d102daaf3aaf 100644 --- a/src/plugins/es_ui_shared/tsconfig.json +++ b/src/plugins/es_ui_shared/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/expressions/common/mocks.ts b/src/plugins/expressions/common/mocks.ts index eaeebd8e53492..20bdbca07f008 100644 --- a/src/plugins/expressions/common/mocks.ts +++ b/src/plugins/expressions/common/mocks.ts @@ -34,3 +34,5 @@ export const createMockExecutionContext = ...extraContext, }; }; + +export { createMockContext } from './util/test_utils'; diff --git a/src/plugins/expressions/common/util/index.ts b/src/plugins/expressions/common/util/index.ts index 470dfc3c2d436..5f83d962d5aea 100644 --- a/src/plugins/expressions/common/util/index.ts +++ b/src/plugins/expressions/common/util/index.ts @@ -10,4 +10,3 @@ export * from './create_error'; export * from './get_by_alias'; export * from './tables_adapter'; export * from './expressions_inspector_adapter'; -export * from './test_utils'; diff --git a/src/plugins/expressions/tsconfig.json b/src/plugins/expressions/tsconfig.json index cce71013cefa5..fe76ba3050a3b 100644 --- a/src/plugins/expressions/tsconfig.json +++ b/src/plugins/expressions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/home/tsconfig.json b/src/plugins/home/tsconfig.json index b15e1fc011b92..19ab5a8e6efec 100644 --- a/src/plugins/home/tsconfig.json +++ b/src/plugins/home/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/index_pattern_field_editor/tsconfig.json b/src/plugins/index_pattern_field_editor/tsconfig.json index 559b1aaf0fc26..c638fd34c6bbb 100644 --- a/src/plugins/index_pattern_field_editor/tsconfig.json +++ b/src/plugins/index_pattern_field_editor/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/index_pattern_management/tsconfig.json b/src/plugins/index_pattern_management/tsconfig.json index 37bd3e4aa5bbb..3c8fdb1cf6597 100644 --- a/src/plugins/index_pattern_management/tsconfig.json +++ b/src/plugins/index_pattern_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/input_control_vis/tsconfig.json b/src/plugins/input_control_vis/tsconfig.json index bef7bc394a6cc..c2f8d8783e822 100644 --- a/src/plugins/input_control_vis/tsconfig.json +++ b/src/plugins/input_control_vis/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/inspector/tsconfig.json b/src/plugins/inspector/tsconfig.json index 2a9c41464532c..0e42e577428c6 100644 --- a/src/plugins/inspector/tsconfig.json +++ b/src/plugins/inspector/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_legacy/tsconfig.json b/src/plugins/kibana_legacy/tsconfig.json index 709036c9e82f4..0b3f42cd3b57b 100644 --- a/src/plugins/kibana_legacy/tsconfig.json +++ b/src/plugins/kibana_legacy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_overview/tsconfig.json b/src/plugins/kibana_overview/tsconfig.json index ac3ac109cb35f..3396861cb9179 100644 --- a/src/plugins/kibana_overview/tsconfig.json +++ b/src/plugins/kibana_overview/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_react/tsconfig.json b/src/plugins/kibana_react/tsconfig.json index eb9a24ca141f6..857b8cf83645c 100644 --- a/src/plugins/kibana_react/tsconfig.json +++ b/src/plugins/kibana_react/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_usage_collection/tsconfig.json b/src/plugins/kibana_usage_collection/tsconfig.json index d664d936f6667..100f1f03955d0 100644 --- a/src/plugins/kibana_usage_collection/tsconfig.json +++ b/src/plugins/kibana_usage_collection/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_utils/tsconfig.json b/src/plugins/kibana_utils/tsconfig.json index ae5e9b90af807..d9572707e8662 100644 --- a/src/plugins/kibana_utils/tsconfig.json +++ b/src/plugins/kibana_utils/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/legacy_export/tsconfig.json b/src/plugins/legacy_export/tsconfig.json index ec006d492499e..d6689ea1067db 100644 --- a/src/plugins/legacy_export/tsconfig.json +++ b/src/plugins/legacy_export/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/management/tsconfig.json b/src/plugins/management/tsconfig.json index ba3661666631a..3423299a53df7 100644 --- a/src/plugins/management/tsconfig.json +++ b/src/plugins/management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/maps_ems/tsconfig.json b/src/plugins/maps_ems/tsconfig.json index b85c3da66b83a..7f44da00d47a4 100644 --- a/src/plugins/maps_ems/tsconfig.json +++ b/src/plugins/maps_ems/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/maps_legacy/tsconfig.json b/src/plugins/maps_legacy/tsconfig.json index f757e35f785af..c600024cc4a74 100644 --- a/src/plugins/maps_legacy/tsconfig.json +++ b/src/plugins/maps_legacy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/navigation/tsconfig.json b/src/plugins/navigation/tsconfig.json index 07cfe10d7d81f..bb86142e1c443 100644 --- a/src/plugins/navigation/tsconfig.json +++ b/src/plugins/navigation/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/newsfeed/tsconfig.json b/src/plugins/newsfeed/tsconfig.json index 66244a22336c7..84626b2f3a6a8 100644 --- a/src/plugins/newsfeed/tsconfig.json +++ b/src/plugins/newsfeed/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/presentation_util/tsconfig.json b/src/plugins/presentation_util/tsconfig.json index 37b9380f6f2b9..cb39c5fb36f56 100644 --- a/src/plugins/presentation_util/tsconfig.json +++ b/src/plugins/presentation_util/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/region_map/tsconfig.json b/src/plugins/region_map/tsconfig.json index 899611d027465..385c31e6bd2d6 100644 --- a/src/plugins/region_map/tsconfig.json +++ b/src/plugins/region_map/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/saved_objects/tsconfig.json b/src/plugins/saved_objects/tsconfig.json index d9045b91b9dfa..46b3f9a5afcb6 100644 --- a/src/plugins/saved_objects/tsconfig.json +++ b/src/plugins/saved_objects/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/saved_objects_management/tsconfig.json b/src/plugins/saved_objects_management/tsconfig.json index 99849dea38618..cb74b06179225 100644 --- a/src/plugins/saved_objects_management/tsconfig.json +++ b/src/plugins/saved_objects_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/saved_objects_tagging_oss/tsconfig.json b/src/plugins/saved_objects_tagging_oss/tsconfig.json index b0059c71424bf..ae566d9626895 100644 --- a/src/plugins/saved_objects_tagging_oss/tsconfig.json +++ b/src/plugins/saved_objects_tagging_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/security_oss/tsconfig.json b/src/plugins/security_oss/tsconfig.json index 530e01a034b00..156e4ffee9d79 100644 --- a/src/plugins/security_oss/tsconfig.json +++ b/src/plugins/security_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/share/tsconfig.json b/src/plugins/share/tsconfig.json index 985066915f1dd..62c0b3739f4b7 100644 --- a/src/plugins/share/tsconfig.json +++ b/src/plugins/share/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/spaces_oss/tsconfig.json b/src/plugins/spaces_oss/tsconfig.json index 0cc82d7e5d124..96584842ec32b 100644 --- a/src/plugins/spaces_oss/tsconfig.json +++ b/src/plugins/spaces_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/telemetry/tsconfig.json b/src/plugins/telemetry/tsconfig.json index bdced01d9eb6f..40370082f99e2 100644 --- a/src/plugins/telemetry/tsconfig.json +++ b/src/plugins/telemetry/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/telemetry_collection_manager/tsconfig.json b/src/plugins/telemetry_collection_manager/tsconfig.json index 1bba81769f0dd..8bbc440fb1a54 100644 --- a/src/plugins/telemetry_collection_manager/tsconfig.json +++ b/src/plugins/telemetry_collection_manager/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/telemetry_management_section/tsconfig.json b/src/plugins/telemetry_management_section/tsconfig.json index 48e40814b8570..c6a21733b2d6b 100644 --- a/src/plugins/telemetry_management_section/tsconfig.json +++ b/src/plugins/telemetry_management_section/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/tile_map/tsconfig.json b/src/plugins/tile_map/tsconfig.json index 899611d027465..385c31e6bd2d6 100644 --- a/src/plugins/tile_map/tsconfig.json +++ b/src/plugins/tile_map/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/timelion/tsconfig.json b/src/plugins/timelion/tsconfig.json index 5b96d69a878ea..bb8a48339d44e 100644 --- a/src/plugins/timelion/tsconfig.json +++ b/src/plugins/timelion/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/ui_actions/tsconfig.json b/src/plugins/ui_actions/tsconfig.json index a871d7215cdc5..89b66d18705c2 100644 --- a/src/plugins/ui_actions/tsconfig.json +++ b/src/plugins/ui_actions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/url_forwarding/tsconfig.json b/src/plugins/url_forwarding/tsconfig.json index 8e867a6bad14f..f1916e4ce5957 100644 --- a/src/plugins/url_forwarding/tsconfig.json +++ b/src/plugins/url_forwarding/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/usage_collection/tsconfig.json b/src/plugins/usage_collection/tsconfig.json index 96b2c4d37e17c..b4a0721ef3672 100644 --- a/src/plugins/usage_collection/tsconfig.json +++ b/src/plugins/usage_collection/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_default_editor/tsconfig.json b/src/plugins/vis_default_editor/tsconfig.json index 27bb775c2d0e8..54a84e08224a8 100644 --- a/src/plugins/vis_default_editor/tsconfig.json +++ b/src/plugins/vis_default_editor/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_markdown/tsconfig.json b/src/plugins/vis_type_markdown/tsconfig.json index d5ab89b98081b..f940c295e7cee 100644 --- a/src/plugins/vis_type_markdown/tsconfig.json +++ b/src/plugins/vis_type_markdown/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_metric/tsconfig.json b/src/plugins/vis_type_metric/tsconfig.json index 7441848d5a430..8cee918a3dc82 100644 --- a/src/plugins/vis_type_metric/tsconfig.json +++ b/src/plugins/vis_type_metric/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_table/tsconfig.json b/src/plugins/vis_type_table/tsconfig.json index ccff3c349cf21..4f2e80575497b 100644 --- a/src/plugins/vis_type_table/tsconfig.json +++ b/src/plugins/vis_type_table/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_tagcloud/tsconfig.json b/src/plugins/vis_type_tagcloud/tsconfig.json index 18bbad2257466..f7f3688183a48 100644 --- a/src/plugins/vis_type_tagcloud/tsconfig.json +++ b/src/plugins/vis_type_tagcloud/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_timelion/tsconfig.json b/src/plugins/vis_type_timelion/tsconfig.json index 77f97de28366d..d29fb25b15315 100644 --- a/src/plugins/vis_type_timelion/tsconfig.json +++ b/src/plugins/vis_type_timelion/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_timeseries/tsconfig.json b/src/plugins/vis_type_timeseries/tsconfig.json index 7b2dd4b608c1c..edc2d25b867d1 100644 --- a/src/plugins/vis_type_timeseries/tsconfig.json +++ b/src/plugins/vis_type_timeseries/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_vega/tsconfig.json b/src/plugins/vis_type_vega/tsconfig.json index 4091dafcbe357..f375a2483e24f 100644 --- a/src/plugins/vis_type_vega/tsconfig.json +++ b/src/plugins/vis_type_vega/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_vislib/tsconfig.json b/src/plugins/vis_type_vislib/tsconfig.json index 74bc1440d9dbc..845628a6b86f9 100644 --- a/src/plugins/vis_type_vislib/tsconfig.json +++ b/src/plugins/vis_type_vislib/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_xy/tsconfig.json b/src/plugins/vis_type_xy/tsconfig.json index 5cb0bc8d0bc8e..7e23b07bd80f6 100644 --- a/src/plugins/vis_type_xy/tsconfig.json +++ b/src/plugins/vis_type_xy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/visualizations/tsconfig.json b/src/plugins/visualizations/tsconfig.json index d7c5e6a4b4366..65de6908228b3 100644 --- a/src/plugins/visualizations/tsconfig.json +++ b/src/plugins/visualizations/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/visualize/tsconfig.json b/src/plugins/visualize/tsconfig.json index bc0891f391746..046202d82d1aa 100644 --- a/src/plugins/visualize/tsconfig.json +++ b/src/plugins/visualize/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/tsconfig.base.json b/tsconfig.base.json index da4de5ef3712b..c28ed0d8c8750 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -56,5 +56,6 @@ "jest-styled-components", "@testing-library/jest-dom" ] - } + }, + "include": [] } diff --git a/tsconfig.json b/tsconfig.json index c852481518d54..03597114333ca 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,6 +19,78 @@ "x-pack/plugins/cases/**/*", "x-pack/plugins/lists/**/*", "x-pack/plugins/security_solution/**/*", + + // tests + "src/**/*.test.ts", + "src/**/*.test.tsx", + "src/**/integration_tests/*", + "src/**/tests/*", + // mocks + "src/**/__mocks__/*", + "src/**/mock/*", + "src/**/mocks/*", + "src/**/*/mock.ts", + "src/**/*/mocks.ts", + "src/**/*/mocks.tsx", + "src/**/*.mock.ts", + "src/**/*.mock.tsx", + "src/**/*.mocks.ts", + "src/**/*.mocks.tsx", + + // test helpers + "src/**/test_helpers/*", + "src/**/test_utils/*", + "src/**/*/test_utils.ts", + "src/**/*/test_helpers.ts", + "src/**/*/test_helper.tsx", + + // stubs + "src/**/*/stubs.ts", + "src/**/*.stub.ts", + "src/**/*.stories.tsx", + "src/**/*/_mock_handler_arguments.ts", + + // tests + "x-pack/plugins/**/*.test.ts", + "x-pack/plugins/**/*.test.tsx", + "x-pack/plugins/**/test/**/*", + "x-pack/plugins/**/tests/*", + "x-pack/plugins/**/integration_tests/*", + "x-pack/plugins/**/tests_client_integration/*", + "x-pack/plugins/**/__fixtures__/*", + "x-pack/plugins/**/__stories__/*", + "x-pack/plugins/**/__jest__/**/*", + + // mocks + "x-pack/plugins/**/__mocks__/*", + "x-pack/plugins/**/mock/*", + "x-pack/plugins/**/mocks/*", + "x-pack/plugins/**/*/mock.ts", + "x-pack/plugins/**/*/mocks.ts", + "x-pack/plugins/**/*/mocks.tsx", + "x-pack/plugins/**/*.mock.ts", + "x-pack/plugins/**/*.mock.tsx", + "x-pack/plugins/**/*.mocks.ts", + "x-pack/plugins/**/*.mocks.tsx", + + // test helpers + "x-pack/plugins/**/test_helpers/*", + "x-pack/plugins/**/test_utils/*", + "x-pack/plugins/**/*/test_utils.ts", + "x-pack/plugins/**/*/test_helper.tsx", + "x-pack/plugins/**/*/test_helpers.ts", + "x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/test_data.tsx", + "x-pack/plugins/uptime/server/lib/requests/helper.ts", + "x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx", + "x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx", + "x-pack/plugins/apm/server/utils/test_helpers.tsx", + "x-pack/plugins/apm/public/utils/testHelpers.tsx", + + // stubs + "x-pack/plugins/**/*/stubs.ts", + "x-pack/plugins/**/*.stub.ts", + "x-pack/plugins/**/*.stories.tsx", + "x-pack/plugins/**/*/_mock_handler_arguments.ts" ], "exclude": [ "x-pack/plugins/security_solution/cypress/**/*" diff --git a/tsconfig.project.json b/tsconfig.project.json new file mode 100644 index 0000000000000..174c3fdf0fd54 --- /dev/null +++ b/tsconfig.project.json @@ -0,0 +1,65 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "composite": true, + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true + }, + "exclude": [ + // tests + "**/*.test.ts", + "**/*.test.tsx", + "**/integration_tests/*", + "**/test/**/*", + "**/test/*", + "**/tests/*", + "**/tests_client_integration/*", + "**/__fixtures__/*", + "**/__stories__/*", + "**/__jest__/**", + + // mocks + "**/__mocks__/*", + "**/mock/*", + "**/mocks/*", + "**/*/mock.ts", + "**/*/mocks.ts", + "**/*/mocks.tsx", + "**/*.mock.ts", + "**/*.mock.tsx", + "**/*.mocks.ts", + "**/*.mocks.tsx", + + // test helpers + "**/test_helpers/*", + "**/test_utils/*", + "**/*/test_utils.ts", + "**/*/test_helper.tsx", + "**/*/test_helpers.ts", + // x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/test_data.tsx + "**/*/test_data.tsx", + "**/*/shared_columns_tests.tsx", + // x-pack/plugins/uptime/server/lib/requests/helper.ts + "**/*/requests/helper.ts", + // x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx + "**/*/rtl_helpers.tsx", + // x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx + "**/*/enzyme_helpers.tsx", + // x-pack/plugins/apm/server/utils/test_helpers.tsx + "**/*/test_helpers.tsx", + // x-pack/plugins/apm/public/utils/testHelpers.tsx + "**/*/testHelpers.tsx", + + // stubs + "**/*/stubs.ts", + "**/*.stub.ts", + "**/*.stories.tsx", + "**/*/_mock_handler_arguments.ts" + ], + "include": [], + "types": [ + "node", + "flot" + ] +} diff --git a/x-pack/plugins/actions/tsconfig.json b/x-pack/plugins/actions/tsconfig.json index d5c1105c99ad0..10ebd09235236 100644 --- a/x-pack/plugins/actions/tsconfig.json +++ b/x-pack/plugins/actions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/alerting/tsconfig.json b/x-pack/plugins/alerting/tsconfig.json index 86ab00faeb5ad..4010688746901 100644 --- a/x-pack/plugins/alerting/tsconfig.json +++ b/x-pack/plugins/alerting/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/apm/e2e/tsconfig.json b/x-pack/plugins/apm/e2e/tsconfig.json index c4587349c7ad7..0c13dd717991c 100644 --- a/x-pack/plugins/apm/e2e/tsconfig.json +++ b/x-pack/plugins/apm/e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.base.json", + "extends": "../../../../tsconfig.project.json", "exclude": ["tmp"], "include": ["./**/*"], "compilerOptions": { diff --git a/x-pack/plugins/apm/ftr_e2e/tsconfig.json b/x-pack/plugins/apm/ftr_e2e/tsconfig.json index 168801f782607..f699943a254fa 100644 --- a/x-pack/plugins/apm/ftr_e2e/tsconfig.json +++ b/x-pack/plugins/apm/ftr_e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.base.json", + "extends": "../../../../tsconfig.project.json", "exclude": [ "tmp" ], @@ -12,4 +12,4 @@ "node" ] } -} \ No newline at end of file +} diff --git a/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js b/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js index fed938119c4a6..613435fe186bf 100644 --- a/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js +++ b/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js @@ -22,7 +22,7 @@ const { kibanaRoot, tsconfigTpl, filesToIgnore } = require('./paths'); const { unoptimizeTsConfig } = require('./unoptimize'); async function prepareBaseTsConfig() { - const baseConfigFilename = path.resolve(kibanaRoot, 'tsconfig.base.json'); + const baseConfigFilename = path.resolve(kibanaRoot, 'tsconfig.project.json'); const config = json5.parse(await readFile(baseConfigFilename, 'utf-8')); await writeFile( diff --git a/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js b/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js index dbc207c9e6d26..b501ec3a8eedf 100644 --- a/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js +++ b/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js @@ -12,7 +12,7 @@ const tsconfigTpl = path.resolve(__dirname, './tsconfig.json'); const filesToIgnore = [ path.resolve(kibanaRoot, 'tsconfig.json'), - path.resolve(kibanaRoot, 'tsconfig.base.json'), + path.resolve(kibanaRoot, 'tsconfig.project.json'), path.resolve(kibanaRoot, 'x-pack/plugins/apm', 'tsconfig.json'), ]; diff --git a/x-pack/plugins/apm/tsconfig.json b/x-pack/plugins/apm/tsconfig.json index ffbf11c23f63a..ae2085dc24003 100644 --- a/x-pack/plugins/apm/tsconfig.json +++ b/x-pack/plugins/apm/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/banners/tsconfig.json b/x-pack/plugins/banners/tsconfig.json index 85608a8a78ad5..6c4c80173208b 100644 --- a/x-pack/plugins/banners/tsconfig.json +++ b/x-pack/plugins/banners/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/beats_management/tsconfig.json b/x-pack/plugins/beats_management/tsconfig.json index ad68cc900e638..398438712b26b 100644 --- a/x-pack/plugins/beats_management/tsconfig.json +++ b/x-pack/plugins/beats_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/canvas/storybook/addon/tsconfig.json b/x-pack/plugins/canvas/storybook/addon/tsconfig.json index 2ab1856de661a..b115d1c46546c 100644 --- a/x-pack/plugins/canvas/storybook/addon/tsconfig.json +++ b/x-pack/plugins/canvas/storybook/addon/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../../tsconfig.base.json", + "extends": "../../../../../tsconfig.project.json", "include": [ "src/**/*.ts", "src/**/*.tsx" diff --git a/x-pack/plugins/canvas/tsconfig.json b/x-pack/plugins/canvas/tsconfig.json index 487b68ba3542b..679165f0a1b76 100644 --- a/x-pack/plugins/canvas/tsconfig.json +++ b/x-pack/plugins/canvas/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/cloud/tsconfig.json b/x-pack/plugins/cloud/tsconfig.json index 46e81aa7fa086..f6edb9fb7ccae 100644 --- a/x-pack/plugins/cloud/tsconfig.json +++ b/x-pack/plugins/cloud/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/console_extensions/tsconfig.json b/x-pack/plugins/console_extensions/tsconfig.json index 5ad28f230a0bb..edcd46c4fafc5 100644 --- a/x-pack/plugins/console_extensions/tsconfig.json +++ b/x-pack/plugins/console_extensions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/cross_cluster_replication/tsconfig.json b/x-pack/plugins/cross_cluster_replication/tsconfig.json index 9c7590b9c2553..156a851abb8db 100644 --- a/x-pack/plugins/cross_cluster_replication/tsconfig.json +++ b/x-pack/plugins/cross_cluster_replication/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/dashboard_enhanced/tsconfig.json b/x-pack/plugins/dashboard_enhanced/tsconfig.json index 567c390edfa5a..f6acdddc6f997 100644 --- a/x-pack/plugins/dashboard_enhanced/tsconfig.json +++ b/x-pack/plugins/dashboard_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/dashboard_mode/tsconfig.json b/x-pack/plugins/dashboard_mode/tsconfig.json index 6e4ed11ffa7ff..c4a11959ec3e3 100644 --- a/x-pack/plugins/dashboard_mode/tsconfig.json +++ b/x-pack/plugins/dashboard_mode/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/data_enhanced/tsconfig.json b/x-pack/plugins/data_enhanced/tsconfig.json index 047b9b06516ba..5538a2db3e4cd 100644 --- a/x-pack/plugins/data_enhanced/tsconfig.json +++ b/x-pack/plugins/data_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/discover_enhanced/tsconfig.json b/x-pack/plugins/discover_enhanced/tsconfig.json index 38a55e557909b..2a055bd0e0710 100644 --- a/x-pack/plugins/discover_enhanced/tsconfig.json +++ b/x-pack/plugins/discover_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json b/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json index 50fe41c49b0c8..99aea16a9aaba 100644 --- a/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json +++ b/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.base.json", + "extends": "../../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/embeddable_enhanced/tsconfig.json b/x-pack/plugins/embeddable_enhanced/tsconfig.json index 6e9eb69585cbc..32754f2fd5524 100644 --- a/x-pack/plugins/embeddable_enhanced/tsconfig.json +++ b/x-pack/plugins/embeddable_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/encrypted_saved_objects/tsconfig.json b/x-pack/plugins/encrypted_saved_objects/tsconfig.json index 2b51b313d34fc..9eae8b7366bea 100644 --- a/x-pack/plugins/encrypted_saved_objects/tsconfig.json +++ b/x-pack/plugins/encrypted_saved_objects/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/enterprise_search/tsconfig.json b/x-pack/plugins/enterprise_search/tsconfig.json index 6b4c50770b49f..a4f1c55463e75 100644 --- a/x-pack/plugins/enterprise_search/tsconfig.json +++ b/x-pack/plugins/enterprise_search/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/event_log/tsconfig.json b/x-pack/plugins/event_log/tsconfig.json index 9b7cde10da3d6..e21dbc93b7b47 100644 --- a/x-pack/plugins/event_log/tsconfig.json +++ b/x-pack/plugins/event_log/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/features/tsconfig.json b/x-pack/plugins/features/tsconfig.json index 1260af55fbff6..11e2dbc8f093f 100644 --- a/x-pack/plugins/features/tsconfig.json +++ b/x-pack/plugins/features/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/file_upload/tsconfig.json b/x-pack/plugins/file_upload/tsconfig.json index 887a05af31174..8a982f83632aa 100644 --- a/x-pack/plugins/file_upload/tsconfig.json +++ b/x-pack/plugins/file_upload/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/fleet/tsconfig.json b/x-pack/plugins/fleet/tsconfig.json index a20d82de3c859..66849e017395b 100644 --- a/x-pack/plugins/fleet/tsconfig.json +++ b/x-pack/plugins/fleet/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/global_search/tsconfig.json b/x-pack/plugins/global_search/tsconfig.json index 2d05328f445df..2571f7c2e2935 100644 --- a/x-pack/plugins/global_search/tsconfig.json +++ b/x-pack/plugins/global_search/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/global_search_bar/tsconfig.json b/x-pack/plugins/global_search_bar/tsconfig.json index 266eecc35c84b..595d55c3c5a0d 100644 --- a/x-pack/plugins/global_search_bar/tsconfig.json +++ b/x-pack/plugins/global_search_bar/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/global_search_providers/tsconfig.json b/x-pack/plugins/global_search_providers/tsconfig.json index f2759954a6845..9be9a681ee7c5 100644 --- a/x-pack/plugins/global_search_providers/tsconfig.json +++ b/x-pack/plugins/global_search_providers/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/graph/tsconfig.json b/x-pack/plugins/graph/tsconfig.json index 741c603e3aae4..ae0d143455d52 100644 --- a/x-pack/plugins/graph/tsconfig.json +++ b/x-pack/plugins/graph/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -27,4 +27,4 @@ { "path": "../../../src/plugins/kibana_utils/tsconfig.json" }, { "path": "../../../src/plugins/kibana_react/tsconfig.json" } ] - } \ No newline at end of file + } diff --git a/x-pack/plugins/grokdebugger/tsconfig.json b/x-pack/plugins/grokdebugger/tsconfig.json index 51d2d0b6db0ea..3e9e2f7870814 100644 --- a/x-pack/plugins/grokdebugger/tsconfig.json +++ b/x-pack/plugins/grokdebugger/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/index_lifecycle_management/tsconfig.json b/x-pack/plugins/index_lifecycle_management/tsconfig.json index 75bd775a36749..bf43817cbc407 100644 --- a/x-pack/plugins/index_lifecycle_management/tsconfig.json +++ b/x-pack/plugins/index_lifecycle_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -8,7 +8,6 @@ "declarationMap": true }, "include": [ - "__jest__/**/*", "common/**/*", "public/**/*", "server/**/*", diff --git a/x-pack/plugins/index_management/tsconfig.json b/x-pack/plugins/index_management/tsconfig.json index 81a96a77cef83..0766839a230b9 100644 --- a/x-pack/plugins/index_management/tsconfig.json +++ b/x-pack/plugins/index_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -8,11 +8,9 @@ "declarationMap": true }, "include": [ - "__jest__/**/*", "common/**/*", "public/**/*", "server/**/*", - "test/**/*", "../../../typings/**/*", ], "references": [ diff --git a/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx b/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx deleted file mode 100644 index 33fbbd03d790a..0000000000000 --- a/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx +++ /dev/null @@ -1,87 +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. - */ - -// eslint-disable-next-line import/no-extraneous-dependencies -import { mount, ReactWrapper } from 'enzyme'; -import React from 'react'; -import { act as reactAct } from 'react-dom/test-utils'; -/** - * A wrapper object to provide access to the state of a hook under test and to - * enable interaction with that hook. - */ -interface ReactHookWrapper { - /* Ensures that async React operations have settled before and after the - * given actor callback is called. The actor callback arguments provide easy - * access to the last hook value and allow for updating the arguments passed - * to the hook body to trigger reevaluation. - */ - act: (actor: (lastHookValue: HookValue, setArgs: (args: Args) => void) => void) => void; - /* The enzyme wrapper around the test component. */ - component: ReactWrapper; - /* The most recent value return the by test harness of the hook. */ - getLastHookValue: () => HookValue; - /* The jest Mock function that receives the hook values for introspection. */ - hookValueCallback: jest.Mock; -} - -/** - * Allows for execution of hooks inside of a test component which records the - * returned values. - * - * @param body A function that calls the hook and returns data derived from it - * @param WrapperComponent A component that, if provided, will be wrapped - * around the test component. This can be useful to provide context values. - * @return {ReactHookWrapper} An object providing access to the hook state and - * functions to interact with it. - */ -export const mountHook = ( - body: (args: Args) => HookValue, - WrapperComponent?: React.ComponentType, - initialArgs: Args = {} as Args -): ReactHookWrapper => { - const hookValueCallback = jest.fn(); - let component!: ReactWrapper; - - const act: ReactHookWrapper['act'] = (actor) => { - reactAct(() => { - actor(getLastHookValue(), (args: Args) => component.setProps(args)); - component.update(); - }); - }; - - const getLastHookValue = () => { - const calls = hookValueCallback.mock.calls; - if (calls.length <= 0) { - throw Error('No recent hook value present.'); - } - return calls[calls.length - 1][0]; - }; - - const HookComponent = (props: Args) => { - hookValueCallback(body(props)); - return null; - }; - const TestComponent: React.FunctionComponent = (args) => - WrapperComponent ? ( - - - - ) : ( - - ); - - reactAct(() => { - component = mount(); - }); - - return { - act, - component, - getLastHookValue, - hookValueCallback, - }; -}; diff --git a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts index ab50986c3b3d5..b9bfcd302fb83 100644 --- a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts +++ b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts @@ -84,7 +84,7 @@ export const createMetricsHostsAnomaliesQuery = ({ const sortOptions = [ { [sortToMlFieldMap[field]]: querySortDirection }, { [TIEBREAKER_FIELD]: querySortDirection }, // Tiebreaker - ]; + ] as const; const resultsQuery = { ...defaultRequestParameters, diff --git a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts index 8fb8df5eef3d7..8dadcfe87c6f9 100644 --- a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts +++ b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts @@ -83,7 +83,7 @@ export const createMetricsK8sAnomaliesQuery = ({ const sortOptions = [ { [sortToMlFieldMap[field]]: querySortDirection }, { [TIEBREAKER_FIELD]: querySortDirection }, // Tiebreaker - ]; + ] as const; const resultsQuery = { ...defaultRequestParameters, diff --git a/x-pack/plugins/infra/tsconfig.json b/x-pack/plugins/infra/tsconfig.json index 765af7974a2f1..b684e1866282f 100644 --- a/x-pack/plugins/infra/tsconfig.json +++ b/x-pack/plugins/infra/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/ingest_pipelines/tsconfig.json b/x-pack/plugins/ingest_pipelines/tsconfig.json index a248bc9f337fe..5917b94caf76b 100644 --- a/x-pack/plugins/ingest_pipelines/tsconfig.json +++ b/x-pack/plugins/ingest_pipelines/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -11,7 +11,6 @@ "common/**/*", "public/**/*", "server/**/*", - "__jest__/**/*", "../../../typings/**/*" ], "references": [ diff --git a/x-pack/plugins/lens/tsconfig.json b/x-pack/plugins/lens/tsconfig.json index 134f0b4185b84..69ef52535dd9d 100644 --- a/x-pack/plugins/lens/tsconfig.json +++ b/x-pack/plugins/lens/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -38,4 +38,4 @@ { "path": "../../../src/plugins/embeddable/tsconfig.json"}, { "path": "../../../src/plugins/presentation_util/tsconfig.json"}, ] - } \ No newline at end of file + } diff --git a/x-pack/plugins/license_management/tsconfig.json b/x-pack/plugins/license_management/tsconfig.json index e6cb0101ee838..925049ca924cf 100644 --- a/x-pack/plugins/license_management/tsconfig.json +++ b/x-pack/plugins/license_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/licensing/tsconfig.json b/x-pack/plugins/licensing/tsconfig.json index 6118bcd81d342..2d744e57c1895 100644 --- a/x-pack/plugins/licensing/tsconfig.json +++ b/x-pack/plugins/licensing/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/logstash/tsconfig.json b/x-pack/plugins/logstash/tsconfig.json index 6f21cfdb0b191..6430248e46396 100644 --- a/x-pack/plugins/logstash/tsconfig.json +++ b/x-pack/plugins/logstash/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/maps/public/components/validated_number_input.tsx b/x-pack/plugins/maps/public/components/validated_number_input.tsx index cd525cf1ee2c9..942f31074000f 100644 --- a/x-pack/plugins/maps/public/components/validated_number_input.tsx +++ b/x-pack/plugins/maps/public/components/validated_number_input.tsx @@ -6,8 +6,8 @@ */ import React, { Component, ChangeEvent, ReactNode } from 'react'; -// @ts-expect-error -import { EuiFieldNumber, EuiFormRow, EuiFormRowDisplayKeys } from '@elastic/eui'; +import { EuiFieldNumber, EuiFormRow } from '@elastic/eui'; +import type { EuiFormRowDisplayKeys } from '@elastic/eui/src/components/form/form_row/form_row'; import { i18n } from '@kbn/i18n'; import _ from 'lodash'; diff --git a/x-pack/plugins/maps/tsconfig.json b/x-pack/plugins/maps/tsconfig.json index 1b74b7ee7566a..59af94bea0b68 100644 --- a/x-pack/plugins/maps/tsconfig.json +++ b/x-pack/plugins/maps/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/maps_legacy_licensing/tsconfig.json b/x-pack/plugins/maps_legacy_licensing/tsconfig.json index 30a547b18a831..3b8102b5205a8 100644 --- a/x-pack/plugins/maps_legacy_licensing/tsconfig.json +++ b/x-pack/plugins/maps_legacy_licensing/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json b/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json index 6d01a853698b8..599dee1e56c0f 100644 --- a/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json +++ b/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../../../tsconfig.base.json", + "extends": "../../../../../../tsconfig.project.json", "compilerOptions": { "outDir": "./target", "target": "es6", diff --git a/x-pack/plugins/ml/tsconfig.json b/x-pack/plugins/ml/tsconfig.json index 6b396b1c59642..b1135b867dc08 100644 --- a/x-pack/plugins/ml/tsconfig.json +++ b/x-pack/plugins/ml/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/monitoring/tsconfig.json b/x-pack/plugins/monitoring/tsconfig.json index d0fb7e1a88dcf..b1999101f7c12 100644 --- a/x-pack/plugins/monitoring/tsconfig.json +++ b/x-pack/plugins/monitoring/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/observability/tsconfig.json b/x-pack/plugins/observability/tsconfig.json index 6833948b86b18..083c35a26c20b 100644 --- a/x-pack/plugins/observability/tsconfig.json +++ b/x-pack/plugins/observability/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/osquery/tsconfig.json b/x-pack/plugins/osquery/tsconfig.json index 291b0f7c607cf..03c9e451f3b52 100644 --- a/x-pack/plugins/osquery/tsconfig.json +++ b/x-pack/plugins/osquery/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/painless_lab/tsconfig.json b/x-pack/plugins/painless_lab/tsconfig.json index a869b21e06d4d..2519206b0fcdb 100644 --- a/x-pack/plugins/painless_lab/tsconfig.json +++ b/x-pack/plugins/painless_lab/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/remote_clusters/tsconfig.json b/x-pack/plugins/remote_clusters/tsconfig.json index 0bee6300cf0b2..b48933bc9f1ec 100644 --- a/x-pack/plugins/remote_clusters/tsconfig.json +++ b/x-pack/plugins/remote_clusters/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/reporting/tsconfig.json b/x-pack/plugins/reporting/tsconfig.json index 88e8d343f4700..4f252743ed078 100644 --- a/x-pack/plugins/reporting/tsconfig.json +++ b/x-pack/plugins/reporting/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/rollup/tsconfig.json b/x-pack/plugins/rollup/tsconfig.json index 9b994d1710ffc..bf589c62713d6 100644 --- a/x-pack/plugins/rollup/tsconfig.json +++ b/x-pack/plugins/rollup/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/runtime_fields/tsconfig.json b/x-pack/plugins/runtime_fields/tsconfig.json index a1efe4c9cf2dd..e1ad141f1c702 100644 --- a/x-pack/plugins/runtime_fields/tsconfig.json +++ b/x-pack/plugins/runtime_fields/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/saved_objects_tagging/tsconfig.json b/x-pack/plugins/saved_objects_tagging/tsconfig.json index d00156ad1277c..5c37481f982d9 100644 --- a/x-pack/plugins/saved_objects_tagging/tsconfig.json +++ b/x-pack/plugins/saved_objects_tagging/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/searchprofiler/tsconfig.json b/x-pack/plugins/searchprofiler/tsconfig.json index f8ac3a61f7812..57cd882422b39 100644 --- a/x-pack/plugins/searchprofiler/tsconfig.json +++ b/x-pack/plugins/searchprofiler/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/security/tsconfig.json b/x-pack/plugins/security/tsconfig.json index 6c3fd1851a8cb..4ace497dbd5ad 100644 --- a/x-pack/plugins/security/tsconfig.json +++ b/x-pack/plugins/security/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/security_solution/cypress/tsconfig.json b/x-pack/plugins/security_solution/cypress/tsconfig.json index 270d877a362a6..bd8d9aa058bc3 100644 --- a/x-pack/plugins/security_solution/cypress/tsconfig.json +++ b/x-pack/plugins/security_solution/cypress/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.base.json", + "extends": "../../../../tsconfig.project.json", "exclude": [], "include": [ "./**/*" diff --git a/x-pack/plugins/snapshot_restore/tsconfig.json b/x-pack/plugins/snapshot_restore/tsconfig.json index 39beda02977e1..c496847e4dd9b 100644 --- a/x-pack/plugins/snapshot_restore/tsconfig.json +++ b/x-pack/plugins/snapshot_restore/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -8,11 +8,9 @@ "declarationMap": true }, "include": [ - "__jest__/**/*", "common/**/*", "public/**/*", "server/**/*", - "test/**/*", "../../../typings/**/*", ], "references": [ diff --git a/x-pack/plugins/spaces/tsconfig.json b/x-pack/plugins/spaces/tsconfig.json index 95fbecaa90936..4c67cbe8912bd 100644 --- a/x-pack/plugins/spaces/tsconfig.json +++ b/x-pack/plugins/spaces/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/stack_alerts/tsconfig.json b/x-pack/plugins/stack_alerts/tsconfig.json index c83935945c67b..97eb9a9a05b86 100644 --- a/x-pack/plugins/stack_alerts/tsconfig.json +++ b/x-pack/plugins/stack_alerts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts b/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts index c79b310822c3e..70b4ba55c2393 100644 --- a/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts +++ b/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts @@ -56,7 +56,7 @@ export interface WorkloadAggregation { scheduleDensity: { range: { field: string; - ranges: [{ from: string; to: string }]; + ranges: [{ from: number; to: number }]; }; aggs: { histogram: { @@ -86,7 +86,6 @@ export interface WorkloadAggregation { // The type of a bucket in the scheduleDensity range aggregation type ScheduleDensityResult = AggregationResultOf< - // @ts-expect-error AggregationRange reqires from: number WorkloadAggregation['aggs']['idleTasks']['aggs']['scheduleDensity'], {} >['buckets'][0]; diff --git a/x-pack/plugins/task_manager/tsconfig.json b/x-pack/plugins/task_manager/tsconfig.json index a72b678da1f7c..95a098e54619e 100644 --- a/x-pack/plugins/task_manager/tsconfig.json +++ b/x-pack/plugins/task_manager/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/telemetry_collection_xpack/tsconfig.json b/x-pack/plugins/telemetry_collection_xpack/tsconfig.json index 476f5926f757a..80488bd74617d 100644 --- a/x-pack/plugins/telemetry_collection_xpack/tsconfig.json +++ b/x-pack/plugins/telemetry_collection_xpack/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/transform/tsconfig.json b/x-pack/plugins/transform/tsconfig.json index 2717f92c7a4df..30da887cc1c43 100644 --- a/x-pack/plugins/transform/tsconfig.json +++ b/x-pack/plugins/transform/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/triggers_actions_ui/tsconfig.json b/x-pack/plugins/triggers_actions_ui/tsconfig.json index 8202449b22298..b7a63d7043f49 100644 --- a/x-pack/plugins/triggers_actions_ui/tsconfig.json +++ b/x-pack/plugins/triggers_actions_ui/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/ui_actions_enhanced/tsconfig.json b/x-pack/plugins/ui_actions_enhanced/tsconfig.json index 39318770126e5..1513669cdc1ad 100644 --- a/x-pack/plugins/ui_actions_enhanced/tsconfig.json +++ b/x-pack/plugins/ui_actions_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/upgrade_assistant/tsconfig.json b/x-pack/plugins/upgrade_assistant/tsconfig.json index 0d65c8ddd8fed..08e45bebf125b 100644 --- a/x-pack/plugins/upgrade_assistant/tsconfig.json +++ b/x-pack/plugins/upgrade_assistant/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx b/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx index 5dfc11837b72d..719c90574b088 100644 --- a/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { CertMonitors } from './cert_monitors'; -import { renderWithRouter, shallowWithRouter } from '../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; describe('CertMonitors', () => { const certMons = [ diff --git a/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx b/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx index a991634de22a6..a0166fc573754 100644 --- a/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { renderWithRouter, shallowWithRouter } from '../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; import { CertificateSearch } from './cert_search'; describe('CertificatesSearch', () => { diff --git a/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx b/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx index e331a6e5c34fe..999d76f690867 100644 --- a/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { renderWithRouter, shallowWithRouter } from '../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; import { CertStatus } from './cert_status'; import * as redux from 'react-redux'; import moment from 'moment'; diff --git a/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx b/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx index ec6a5d91a67c3..8ae0cdb791d9b 100644 --- a/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { shallowWithRouter } from '../../lib'; +import { shallowWithRouter } from '../../lib/helper/enzyme_helpers'; import { CertificateList, CertSort } from './certificates_list'; describe('CertificateList', () => { diff --git a/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx b/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx index 1affd1f990f90..550b7f75623f0 100644 --- a/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { renderWithRouter, shallowWithRouter } from '../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; import { FingerprintCol } from './fingerprint_col'; import moment from 'moment'; diff --git a/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx b/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx index d7ae92a0e7654..72b1145a9f34e 100644 --- a/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import DateMath from '@elastic/datemath'; import { DurationChartComponent } from './duration_chart'; import { MonitorDurationResult } from '../../../../common/types'; -import { shallowWithRouter } from '../../../lib'; +import { shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; describe('MonitorCharts component', () => { let dateMathSpy: any; diff --git a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx index 792b357b3baba..b11595eafae4f 100644 --- a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx @@ -7,7 +7,8 @@ import React from 'react'; import { MonitorBarSeries, MonitorBarSeriesProps } from './monitor_bar_series'; -import { renderWithRouter, shallowWithRouter, MountWithReduxProvider } from '../../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { MountWithReduxProvider } from '../../../lib/helper/helper_with_redux'; import { HistogramPoint } from '../../../../common/runtime_types'; describe('MonitorBarSeries component', () => { diff --git a/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx b/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx index 6e04648a817f0..bede71b8ba03d 100644 --- a/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import moment from 'moment'; import { PageHeader } from './page_header'; import { Ping } from '../../../../common/runtime_types'; -import { renderWithRouter } from '../../../lib'; +import { renderWithRouter } from '../../../lib/helper/enzyme_helpers'; import { mockReduxHooks } from '../../../lib/helper/test_helpers'; describe('PageHeader', () => { diff --git a/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx b/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx index fdb5498969d39..63465aefcdd43 100644 --- a/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import { MonitorTags } from './monitor_tags'; import * as hooks from '../../hooks/use_url_params'; -import { renderWithRouter, shallowWithRouter } from '../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; describe('MonitorTags component', () => { const summaryPing = { diff --git a/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx b/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx index 4bfe7de33cba5..d433e7fccd1b8 100644 --- a/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx @@ -10,9 +10,9 @@ import { UptimeDatePicker } from './uptime_date_picker'; import { renderWithRouter, shallowWithRouter, - MountWithReduxProvider, mountWithRouterRedux, -} from '../../lib'; +} from '../../lib/helper/enzyme_helpers'; +import { MountWithReduxProvider } from '../../lib/helper/helper_with_redux'; import { UptimeStartupPluginsContextProvider } from '../../contexts'; import { startPlugins } from '../../lib/__mocks__/uptime_plugin_start_mock'; import { ClientPluginsStart } from '../../apps/plugin'; diff --git a/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx b/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx index f29be50633fab..16d96148af340 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { MLIntegrationComponent } from './ml_integeration'; -import { renderWithRouter, shallowWithRouter } from '../../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; import * as redux from 'react-redux'; import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public'; import { coreMock } from 'src/core/public/mocks'; diff --git a/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx b/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx index 15a537a49ccf3..6bff0b61d7349 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { coreMock } from 'src/core/public/mocks'; import { ManageMLJobComponent } from './manage_ml_job'; import * as redux from 'react-redux'; -import { renderWithRouter, shallowWithRouter } from '../../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public'; const core = coreMock.createStart(); diff --git a/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx b/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx index 3f107581c1eea..a1be391833bc3 100644 --- a/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import DateMath from '@elastic/datemath'; import { MonitorCharts } from './monitor_charts'; -import { shallowWithRouter } from '../../lib'; +import { shallowWithRouter } from '../../lib/helper/enzyme_helpers'; describe('MonitorCharts component', () => { let dateMathSpy: any; diff --git a/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx b/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx index dabc0021898eb..682be99b9b418 100644 --- a/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx @@ -10,7 +10,7 @@ import moment from 'moment'; import * as reactRouterDom from 'react-router-dom'; import { Ping } from '../../../common/runtime_types'; import { MonitorPageTitle } from './monitor_title'; -import { renderWithRouter } from '../../lib'; +import { renderWithRouter } from '../../lib/helper/enzyme_helpers'; import { mockReduxHooks } from '../../lib/helper/test_helpers'; jest.mock('react-router-dom', () => { diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx index af3c47b9caf30..ba0853b5b1b60 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { MonitorStatusBar } from './status_bar'; import { Ping } from '../../../../common/runtime_types'; import * as redux from 'react-redux'; -import { renderWithRouter } from '../../../lib'; +import { renderWithRouter } from '../../../lib/helper/enzyme_helpers'; import { createMemoryHistory } from 'history'; describe('MonitorStatusBar component', () => { diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx index 03ce292e63621..0cb7ff7168404 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx @@ -11,7 +11,11 @@ import { EuiIcon } from '@elastic/eui'; import { Tls } from '../../../../common/runtime_types'; import { MonitorSSLCertificate } from './status_bar'; import * as redux from 'react-redux'; -import { mountWithRouter, renderWithRouter, shallowWithRouter } from '../../../lib'; +import { + mountWithRouter, + renderWithRouter, + shallowWithRouter, +} from '../../../lib/helper/enzyme_helpers'; import { DYNAMIC_SETTINGS_DEFAULTS } from '../../../../common/constants'; describe('SSL Certificate component', () => { diff --git a/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx b/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx index a617ba0db1eb3..c751e6a0c24fa 100644 --- a/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { EmptyStateComponent } from './empty_state'; import { StatesIndexStatus } from '../../../../common/runtime_types'; import { HttpFetchError, IHttpFetchError } from 'src/core/public'; -import { mountWithRouter, shallowWithRouter } from '../../../lib'; +import { mountWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; describe('EmptyState component', () => { let statesIndexStatus: StatesIndexStatus; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx index a325edc243129..a4e7f10d97bfc 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx @@ -12,7 +12,7 @@ import { mountWithRouterRedux, renderWithRouterRedux, shallowWithRouterRedux, -} from '../../../../lib'; +} from '../../../../lib/helper/enzyme_helpers'; import { EuiPopover, EuiText } from '@elastic/eui'; import { DYNAMIC_SETTINGS_DEFAULTS } from '../../../../../common/constants'; import { ReactRouterEuiLink } from '../../../common/react_router_helpers'; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx index 4d0e82dc8a296..c95e3cd61c5fd 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx @@ -7,7 +7,8 @@ import React from 'react'; import { FilterStatusButton, FilterStatusButtonProps } from './filter_status_button'; -import { renderWithRouter, shallowWithRouter, MountWithReduxProvider } from '../../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { MountWithReduxProvider } from '../../../lib/helper/helper_with_redux'; describe('FilterStatusButton', () => { let props: FilterStatusButtonProps; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx index 39f9b20624b63..f7a2ad9a536bd 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx @@ -15,7 +15,7 @@ import { MonitorSummary, } from '../../../../common/runtime_types'; import { MonitorListComponent, noItemsMessage } from './monitor_list'; -import { renderWithRouter, shallowWithRouter } from '../../../lib'; +import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; import * as redux from 'react-redux'; import moment from 'moment'; import { IHttpFetchError } from '../../../../../../../src/core/public'; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx index d044ad4e6a3a2..39c6d6bd9215d 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx @@ -9,7 +9,7 @@ import 'jest'; import React from 'react'; import { MonitorListDrawerComponent } from './monitor_list_drawer'; import { MonitorDetails, MonitorSummary, makePing } from '../../../../../common/runtime_types'; -import { shallowWithRouter } from '../../../../lib'; +import { shallowWithRouter } from '../../../../lib/helper/enzyme_helpers'; describe('MonitorListDrawer component', () => { let summary: MonitorSummary; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx index bbc4e13c9eca2..c2515ab55b126 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx @@ -10,8 +10,8 @@ import { mountWithRouter, renderWithRouter, shallowWithRouter, - MountWithReduxProvider, -} from '../../../lib'; +} from '../../../lib/helper/enzyme_helpers'; +import { MountWithReduxProvider } from '../../../lib/helper/helper_with_redux'; import { createMemoryHistory } from 'history'; import { StatusFilter } from './status_filter'; import { FilterStatusButton } from './filter_status_button'; diff --git a/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx b/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx index 84c9923bfc419..051c4166d0fdd 100644 --- a/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx +++ b/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { CertificateExpirationForm } from './certificate_form'; -import { shallowWithRouter, mountWithRouter } from '../../lib'; +import { shallowWithRouter, mountWithRouter } from '../../lib/helper/enzyme_helpers'; describe('CertificateForm', () => { it('shallow renders expected elements for valid props', () => { diff --git a/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx b/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx index 67ca142d8a8ea..fc2567ea98c45 100644 --- a/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx +++ b/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { IndicesForm } from './indices_form'; -import { shallowWithRouter } from '../../lib'; +import { shallowWithRouter } from '../../lib/helper/enzyme_helpers'; describe('CertificateForm', () => { it('shallow renders expected elements for valid props', () => { diff --git a/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx b/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx index 6fc98fbaf1f5b..7aeac9706af58 100644 --- a/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx +++ b/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx @@ -8,10 +8,11 @@ import { ChromeBreadcrumb } from 'kibana/public'; import React from 'react'; import { Route } from 'react-router-dom'; -import { mountWithRouter } from '../lib'; +import { mountWithRouter } from '../lib/helper/enzyme_helpers'; import { OVERVIEW_ROUTE } from '../../common/constants'; import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; -import { UptimeUrlParams, getSupportedUrlParams, MountWithReduxProvider } from '../lib/helper'; +import { UptimeUrlParams, getSupportedUrlParams } from '../lib/helper'; +import { MountWithReduxProvider } from '../lib/helper/helper_with_redux'; import { makeBaseBreadcrumb, useBreadcrumbs } from './use_breadcrumbs'; describe('useBreadcrumbs', () => { diff --git a/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx b/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx index 3ce112b1cb835..31580ec22d48c 100644 --- a/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx +++ b/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx @@ -9,7 +9,8 @@ import DateMath from '@elastic/datemath'; import React, { useState, Fragment } from 'react'; import { useUrlParams, UptimeUrlParamsHook } from './use_url_params'; import { UptimeRefreshContext } from '../contexts'; -import { mountWithRouter, MountWithReduxProvider } from '../lib'; +import { MountWithReduxProvider } from '../lib/helper/helper_with_redux'; +import { mountWithRouter } from '../lib/helper/enzyme_helpers'; import { createMemoryHistory } from 'history'; interface MockUrlParamsComponentProps { diff --git a/x-pack/plugins/uptime/public/lib/helper/index.ts b/x-pack/plugins/uptime/public/lib/helper/index.ts index 2fce3cc0e54dc..6546b5f9ae6c4 100644 --- a/x-pack/plugins/uptime/public/lib/helper/index.ts +++ b/x-pack/plugins/uptime/public/lib/helper/index.ts @@ -10,4 +10,3 @@ export * from './observability_integration'; export { getChartDateLabel } from './charts'; export { seriesHasDownValues } from './series_has_down_values'; export { UptimeUrlParams, getSupportedUrlParams } from './url_params'; -export { MountWithReduxProvider } from './helper_with_redux'; diff --git a/x-pack/plugins/uptime/public/lib/index.ts b/x-pack/plugins/uptime/public/lib/index.ts deleted file mode 100644 index 9added9af6592..0000000000000 --- a/x-pack/plugins/uptime/public/lib/index.ts +++ /dev/null @@ -1,9 +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 { MountWithReduxProvider } from './helper'; -export * from './helper/enzyme_helpers'; diff --git a/x-pack/plugins/uptime/public/pages/certificates.test.tsx b/x-pack/plugins/uptime/public/pages/certificates.test.tsx index ff5f1afcaa290..1218a1882b3bf 100644 --- a/x-pack/plugins/uptime/public/pages/certificates.test.tsx +++ b/x-pack/plugins/uptime/public/pages/certificates.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { shallowWithRouter } from '../lib'; +import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; import { CertificatesPage } from './certificates'; describe('CertificatesPage', () => { diff --git a/x-pack/plugins/uptime/public/pages/monitor.test.tsx b/x-pack/plugins/uptime/public/pages/monitor.test.tsx index 80fcfcc271964..2664f73d26075 100644 --- a/x-pack/plugins/uptime/public/pages/monitor.test.tsx +++ b/x-pack/plugins/uptime/public/pages/monitor.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { MonitorPage } from './monitor'; -import { shallowWithRouter } from '../lib'; +import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; describe('MonitorPage', () => { it('shallow renders expected elements for valid props', () => { diff --git a/x-pack/plugins/uptime/public/pages/not_found.test.tsx b/x-pack/plugins/uptime/public/pages/not_found.test.tsx index 8d5b20e45303d..cc9ea1a62cd0f 100644 --- a/x-pack/plugins/uptime/public/pages/not_found.test.tsx +++ b/x-pack/plugins/uptime/public/pages/not_found.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { shallowWithRouter } from '../lib'; +import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; import { NotFoundPage } from './not_found'; describe('NotFoundPage', () => { diff --git a/x-pack/plugins/uptime/public/pages/overview.test.tsx b/x-pack/plugins/uptime/public/pages/overview.test.tsx index cfc140e6b22a3..b4949a84a6e36 100644 --- a/x-pack/plugins/uptime/public/pages/overview.test.tsx +++ b/x-pack/plugins/uptime/public/pages/overview.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { OverviewPageComponent } from './overview'; -import { shallowWithRouter } from '../lib'; +import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; describe('MonitorPage', () => { const indexPattern = { diff --git a/x-pack/plugins/uptime/tsconfig.json b/x-pack/plugins/uptime/tsconfig.json index 531ee2ecd8d2b..0b98204001753 100644 --- a/x-pack/plugins/uptime/tsconfig.json +++ b/x-pack/plugins/uptime/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -12,7 +12,6 @@ "public/**/*", "public/components/monitor/status_details/location_map/embeddables/low_poly_layer.json", "server/**/*", - "server/lib/requests/__fixtures__/monitor_charts_mock.json", "../../../typings/**/*" ], "references": [ diff --git a/x-pack/plugins/watcher/tsconfig.json b/x-pack/plugins/watcher/tsconfig.json index e8dabe8cd40a9..41bcb015d2d94 100644 --- a/x-pack/plugins/watcher/tsconfig.json +++ b/x-pack/plugins/watcher/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/xpack_legacy/tsconfig.json b/x-pack/plugins/xpack_legacy/tsconfig.json index 3bfc78b72cb3e..fdac21a391313 100644 --- a/x-pack/plugins/xpack_legacy/tsconfig.json +++ b/x-pack/plugins/xpack_legacy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../tsconfig.project.json", "compilerOptions": { "composite": true, "outDir": "./target/types", From 7fe316562dc58ad56b59fd4ced76f22524ee8745 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Thu, 1 Apr 2021 06:45:18 -0600 Subject: [PATCH 040/106] [Maps] fix fit to data doesn't work in TMS (#95980) --- x-pack/plugins/maps/public/classes/sources/source.ts | 2 +- .../public/classes/sources/vector_source/vector_source.tsx | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/maps/public/classes/sources/source.ts b/x-pack/plugins/maps/public/classes/sources/source.ts index 7c2aaf714c34e..25e3595d6dffa 100644 --- a/x-pack/plugins/maps/public/classes/sources/source.ts +++ b/x-pack/plugins/maps/public/classes/sources/source.ts @@ -84,7 +84,7 @@ export class AbstractSource implements ISource { } async supportsFitToBounds(): Promise { - return true; + return false; } /** diff --git a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx index 5474e62e175d1..959d6994c7339 100644 --- a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx +++ b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx @@ -147,6 +147,10 @@ export class AbstractVectorSource extends AbstractSource implements IVectorSourc return false; } + async supportsFitToBounds(): Promise { + return true; + } + async getBoundsForFilters( boundsFilters: BoundsFilters, registerCancelCallback: (callback: () => void) => void From b29ccdcac14c7a7758455f79878ff21c4adec607 Mon Sep 17 00:00:00 2001 From: Alison Goryachev Date: Thu, 1 Apr 2021 08:58:48 -0400 Subject: [PATCH 041/106] Update breaking changes issue template (#95787) --- .github/ISSUE_TEMPLATE/v8_breaking_change.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/v8_breaking_change.md b/.github/ISSUE_TEMPLATE/v8_breaking_change.md index 86e321990d05f..67d2ee2d3286b 100644 --- a/.github/ISSUE_TEMPLATE/v8_breaking_change.md +++ b/.github/ISSUE_TEMPLATE/v8_breaking_change.md @@ -2,7 +2,7 @@ name: 8.0 Breaking change about: Breaking changes from 7.x -> 8.0 title: "[Breaking change]" -labels: Team:Elasticsearch UI, Feature:Upgrade Assistant, Breaking Change +labels: Feature:Upgrade Assistant, Breaking Change assignees: '' --- @@ -12,8 +12,8 @@ assignees: '' ******* LABEL CHANGES NECESSARY ******** **************************************** -Please add a "NeededFor:${TeamName}" label to denote the team that is -requesting the breaking change to be surfaced in the Upgrade Assistant. +Please add a team label to denote the team that the +breaking change is applicable to. --> @@ -30,16 +30,14 @@ requesting the breaking change to be surfaced in the Upgrade Assistant. -**How can we programmatically determine whether the cluster is affected by this breaking change?** +**Can the change be registered with the [Kibana deprecation service](https://github.com/elastic/kibana/blob/master/docs/development/core/server/kibana-plugin-core-server.deprecationsservicesetup.md)?** -**What can users do to address the change manually?** + - - -**How could we make migration easier with the Upgrade Assistant?** - - + **Are there any edge cases?** From 6238ef7bad95d7c4f55cd01836a913a2b2e6e3c9 Mon Sep 17 00:00:00 2001 From: Paul Tavares <56442535+paul-tavares@users.noreply.github.com> Date: Thu, 1 Apr 2021 09:31:17 -0400 Subject: [PATCH 042/106] [Security Solution][Artifacts] Refactor endpoint Artifact manifest processing (#95846) * Remove references to class `ArtifactClient` and replace with EndpointArtifactClientInterface * refactor artifact client tests to use new class * Added additional test to Fleet Artifacts create service * remove SavedObject type wrapper from getArtifact response --- .../services/artifacts/artifacts.test.ts | 10 ++ .../server/endpoint/lib/artifacts/common.ts | 2 +- .../artifacts/download_artifact.test.ts | 2 +- .../routes/artifacts/download_artifact.ts | 4 +- .../artifacts/artifact_client.test.ts | 53 ++++---- .../services/artifacts/artifact_client.ts | 62 ++------- .../manifest_manager/manifest_manager.mock.ts | 5 +- .../manifest_manager/manifest_manager.test.ts | 121 ++++++------------ .../manifest_manager/manifest_manager.ts | 19 +-- .../security_solution/server/plugin.ts | 6 +- 10 files changed, 103 insertions(+), 181 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/artifacts/artifacts.test.ts b/x-pack/plugins/fleet/server/services/artifacts/artifacts.test.ts index 20e80a2f997af..d4f129a1ae241 100644 --- a/x-pack/plugins/fleet/server/services/artifacts/artifacts.test.ts +++ b/x-pack/plugins/fleet/server/services/artifacts/artifacts.test.ts @@ -9,6 +9,8 @@ import { elasticsearchServiceMock } from 'src/core/server/mocks'; import { ResponseError } from '@elastic/elasticsearch/lib/errors'; +import type { ApiResponse } from '@elastic/elasticsearch/lib/Transport'; + import { FLEET_SERVER_ARTIFACTS_INDEX } from '../../../common'; import { ArtifactsElasticsearchError } from '../../errors'; @@ -100,6 +102,14 @@ describe('When using the artifacts services', () => { }); }); + it('should ignore 409 errors from elasticsearch', async () => { + const error = new ResponseError({ statusCode: 409 } as ApiResponse); + // Unclear why `mockRejectedValue()` has the params value type set to `never` + // @ts-expect-error + esClientMock.create.mockRejectedValue(error); + await expect(() => createArtifact(esClientMock, newArtifact)).not.toThrow(); + }); + it('should throw an ArtifactElasticsearchError if one is encountered', async () => { setEsClientMethodResponseToError(esClientMock, 'create'); await expect(createArtifact(esClientMock, newArtifact)).rejects.toBeInstanceOf( diff --git a/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/common.ts b/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/common.ts index 29b18ba3f5bf5..65bd6ffd15f5f 100644 --- a/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/common.ts +++ b/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/common.ts @@ -15,7 +15,7 @@ import { export const ArtifactConstants = { GLOBAL_ALLOWLIST_NAME: 'endpoint-exceptionlist', /** - * Saved objects no longer used for storing artifacts. Value + * Saved objects no longer used for storing artifacts * @deprecated */ SAVED_OBJECT_TYPE: 'endpoint:user-artifact', diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.test.ts index ed945347373e5..c70dd39e17e9e 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.test.ts @@ -171,7 +171,7 @@ describe('test alerts route', () => { // and this entire test file refactored to start using fleet's exposed FleetArtifactClient class. endpointAppContextService! .getManifestManager()! - .getArtifactsClient().getArtifact = jest.fn().mockResolvedValue(soFindResp); + .getArtifactsClient().getArtifact = jest.fn().mockResolvedValue(soFindResp.attributes); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => path.startsWith('/api/endpoint/artifacts/download') diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.ts b/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.ts index 99a39616195dd..948cd035243bd 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/artifacts/download_artifact.ts @@ -91,9 +91,9 @@ export function registerDownloadArtifactRoute( return res.notFound({ body: `No artifact found for ${id}` }); } - const bodyBuffer = Buffer.from(artifact.attributes.body, 'base64'); + const bodyBuffer = Buffer.from(artifact.body, 'base64'); cache.set(id, bodyBuffer); - return buildAndValidateResponse(artifact.attributes.identifier, bodyBuffer); + return buildAndValidateResponse(artifact.identifier, bodyBuffer); } } ); diff --git a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.test.ts index b3f098a969336..1dcac108338bb 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.test.ts @@ -5,48 +5,49 @@ * 2.0. */ -import { savedObjectsClientMock } from 'src/core/server/mocks'; -import { ArtifactConstants, getArtifactId } from '../../lib/artifacts'; import { getInternalArtifactMock } from '../../schemas/artifacts/saved_objects.mock'; -import { ArtifactClient } from './artifact_client'; +import { EndpointArtifactClient } from './artifact_client'; +import { createArtifactsClientMock } from '../../../../../fleet/server/mocks'; describe('artifact_client', () => { describe('ArtifactClient sanity checks', () => { + let fleetArtifactClient: ReturnType; + let artifactClient: EndpointArtifactClient; + + beforeEach(() => { + fleetArtifactClient = createArtifactsClientMock(); + artifactClient = new EndpointArtifactClient(fleetArtifactClient); + }); + test('can create ArtifactClient', () => { - const artifactClient = new ArtifactClient(savedObjectsClientMock.create()); - expect(artifactClient).toBeInstanceOf(ArtifactClient); + expect(artifactClient).toBeInstanceOf(EndpointArtifactClient); }); test('can get artifact', async () => { - const savedObjectsClient = savedObjectsClientMock.create(); - const artifactClient = new ArtifactClient(savedObjectsClient); await artifactClient.getArtifact('abcd'); - expect(savedObjectsClient.get).toHaveBeenCalled(); + expect(fleetArtifactClient.listArtifacts).toHaveBeenCalled(); }); test('can create artifact', async () => { - const savedObjectsClient = savedObjectsClientMock.create(); - const artifactClient = new ArtifactClient(savedObjectsClient); - const artifact = await getInternalArtifactMock('linux', 'v1'); + const artifact = await getInternalArtifactMock('linux', 'v1', { compress: true }); await artifactClient.createArtifact(artifact); - expect(savedObjectsClient.create).toHaveBeenCalledWith( - ArtifactConstants.SAVED_OBJECT_TYPE, - { - ...artifact, - created: expect.any(Number), - }, - { id: getArtifactId(artifact) } - ); + expect(fleetArtifactClient.createArtifact).toHaveBeenCalledWith({ + identifier: artifact.identifier, + type: 'exceptionlist', + content: + '{"entries":[{"type":"simple","entries":[{"entries":[{"field":"some.nested.field","operator":"included","type":"exact_cased","value":"some value"}],' + + '"field":"some.parentField","type":"nested"},{"field":"some.not.nested.field","operator":"included","type":"exact_cased","value":"some value"}]},' + + '{"type":"simple","entries":[{"field":"some.other.not.nested.field","operator":"included","type":"exact_cased","value":"some other value"}]}]}', + }); }); test('can delete artifact', async () => { - const savedObjectsClient = savedObjectsClientMock.create(); - const artifactClient = new ArtifactClient(savedObjectsClient); - await artifactClient.deleteArtifact('abcd'); - expect(savedObjectsClient.delete).toHaveBeenCalledWith( - ArtifactConstants.SAVED_OBJECT_TYPE, - 'abcd' - ); + await artifactClient.deleteArtifact('endpoint-trustlist-linux-v1-sha26hash'); + expect(fleetArtifactClient.listArtifacts).toHaveBeenCalledWith({ + kuery: `decoded_sha256: "sha26hash" AND identifier: "endpoint-trustlist-linux-v1"`, + perPage: 1, + }); + expect(fleetArtifactClient.deleteArtifact).toHaveBeenCalledWith('123'); }); }); }); diff --git a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.ts b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.ts index d9a2e86159d6c..ef48ed1dd43f6 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/artifact_client.ts @@ -5,64 +5,23 @@ * 2.0. */ -/* eslint-disable max-classes-per-file */ - import { inflate as _inflate } from 'zlib'; import { promisify } from 'util'; -import { SavedObject, SavedObjectsClientContract } from 'src/core/server'; -import { ArtifactConstants, getArtifactId } from '../../lib/artifacts'; -import { - InternalArtifactCompleteSchema, - InternalArtifactCreateSchema, -} from '../../schemas/artifacts'; +import { InternalArtifactCompleteSchema } from '../../schemas/artifacts'; import { Artifact, ArtifactsClientInterface } from '../../../../../fleet/server'; const inflateAsync = promisify(_inflate); export interface EndpointArtifactClientInterface { - getArtifact(id: string): Promise | undefined>; + getArtifact(id: string): Promise; - createArtifact( - artifact: InternalArtifactCompleteSchema - ): Promise>; + createArtifact(artifact: InternalArtifactCompleteSchema): Promise; deleteArtifact(id: string): Promise; } -export class ArtifactClient implements EndpointArtifactClientInterface { - private savedObjectsClient: SavedObjectsClientContract; - - constructor(savedObjectsClient: SavedObjectsClientContract) { - this.savedObjectsClient = savedObjectsClient; - } - - public async getArtifact(id: string): Promise> { - return this.savedObjectsClient.get( - ArtifactConstants.SAVED_OBJECT_TYPE, - id - ); - } - - public async createArtifact( - artifact: InternalArtifactCompleteSchema - ): Promise> { - return this.savedObjectsClient.create( - ArtifactConstants.SAVED_OBJECT_TYPE, - { - ...artifact, - created: Date.now(), - }, - { id: getArtifactId(artifact) } - ); - } - - public async deleteArtifact(id: string) { - await this.savedObjectsClient.delete(ArtifactConstants.SAVED_OBJECT_TYPE, id); - } -} - /** - * Endpoint specific artifact managment client which uses FleetArtifactsClient to persist artifacts + * Endpoint specific artifact management client which uses FleetArtifactsClient to persist artifacts * to the Fleet artifacts index (then used by Fleet Server) */ export class EndpointArtifactClient implements EndpointArtifactClientInterface { @@ -91,15 +50,12 @@ export class EndpointArtifactClient implements EndpointArtifactClientInterface { return; } - // FIXME:PT change method signature so that it returns back only the `InternalArtifactCompleteSchema` - return ({ - attributes: artifacts.items[0], - } as unknown) as SavedObject; + return artifacts.items[0]; } async createArtifact( artifact: InternalArtifactCompleteSchema - ): Promise> { + ): Promise { // FIXME:PT refactor to make this more efficient by passing through the uncompressed artifact content // Artifact `.body` is compressed/encoded. We need it decoded and as a string const artifactContent = await inflateAsync(Buffer.from(artifact.body, 'base64')); @@ -110,15 +66,13 @@ export class EndpointArtifactClient implements EndpointArtifactClientInterface { type: this.parseArtifactId(artifact.identifier).type, }); - return ({ - attributes: createdArtifact, - } as unknown) as SavedObject; + return createdArtifact; } async deleteArtifact(id: string) { // Ignoring the `id` not being in the type until we can refactor the types in endpoint. // @ts-ignore - const artifactId = (await this.getArtifact(id)).attributes?.id; + const artifactId = (await this.getArtifact(id))?.id!; return this.fleetArtifacts.deleteArtifact(artifactId); } } diff --git a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.mock.ts b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.mock.ts index ca0088e834c3a..ececb425af657 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.mock.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.mock.ts @@ -20,8 +20,7 @@ import { getMockArtifactsWithDiff, getEmptyMockArtifacts, } from '../../../lib/artifacts/mocks'; -import { ArtifactClient } from '../artifact_client'; -import { getManifestClientMock } from '../mocks'; +import { createEndpointArtifactClientMock, getManifestClientMock } from '../mocks'; import { ManifestManager, ManifestManagerContext } from './manifest_manager'; export const createExceptionListResponse = (data: ExceptionListItemSchema[], total?: number) => ({ @@ -84,7 +83,7 @@ export const buildManifestManagerContextMock = ( return { ...fullOpts, - artifactClient: new ArtifactClient(fullOpts.savedObjectsClient), + artifactClient: createEndpointArtifactClientMock(), logger: loggingSystemMock.create().get() as jest.Mocked, }; }; diff --git a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.test.ts index a4efdbc75fb16..423cd4fddd0aa 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.test.ts @@ -6,7 +6,6 @@ */ import { inflateSync } from 'zlib'; -import { SavedObjectsErrorHelpers } from 'src/core/server'; import { savedObjectsClientMock } from 'src/core/server/mocks'; import { ENDPOINT_LIST_ID, ENDPOINT_TRUSTED_APPS_LIST_ID } from '../../../../../../lists/common'; import { getExceptionListItemSchemaMock } from '../../../../../../lists/common/schemas/response/exception_list_item_schema.mock'; @@ -23,7 +22,6 @@ import { toArtifactRecords, } from '../../../lib/artifacts/mocks'; import { - ArtifactConstants, ManifestConstants, getArtifactId, isCompressed, @@ -37,6 +35,7 @@ import { } from './manifest_manager.mock'; import { ManifestManager } from './manifest_manager'; +import { EndpointArtifactClientInterface } from '../artifact_client'; const uncompressData = async (data: Buffer) => JSON.parse(await inflateSync(data).toString()); @@ -145,9 +144,8 @@ describe('ManifestManager', () => { test('Retrieves non empty manifest successfully', async () => { const savedObjectsClient = savedObjectsClientMock.create(); - const manifestManager = new ManifestManager( - buildManifestManagerContextMock({ savedObjectsClient }) - ); + const manifestManagerContext = buildManifestManagerContextMock({ savedObjectsClient }); + const manifestManager = new ManifestManager(manifestManagerContext); savedObjectsClient.get = jest .fn() @@ -169,13 +167,17 @@ describe('ManifestManager', () => { }, version: '2.0.0', }; - } else if (objectType === ArtifactConstants.SAVED_OBJECT_TYPE) { - return { attributes: ARTIFACTS_BY_ID[id], version: '2.1.1' }; } else { return null; } }); + (manifestManagerContext.artifactClient as jest.Mocked).getArtifact.mockImplementation( + async (id) => { + return ARTIFACTS_BY_ID[id]; + } + ); + const manifest = await manifestManager.getLastComputedManifest(); expect(manifest?.getSchemaVersion()).toStrictEqual('v1'); @@ -418,8 +420,6 @@ describe('ManifestManager', () => { const context = buildManifestManagerContextMock({}); const manifestManager = new ManifestManager(context); - context.savedObjectsClient.delete = jest.fn().mockResolvedValue({}); - await expect( manifestManager.deleteArtifacts([ ARTIFACT_ID_EXCEPTIONS_MACOS, @@ -427,32 +427,27 @@ describe('ManifestManager', () => { ]) ).resolves.toStrictEqual([]); - expect(context.savedObjectsClient.delete).toHaveBeenNthCalledWith( + expect(context.artifactClient.deleteArtifact).toHaveBeenNthCalledWith( 1, - ArtifactConstants.SAVED_OBJECT_TYPE, ARTIFACT_ID_EXCEPTIONS_MACOS ); - expect(context.savedObjectsClient.delete).toHaveBeenNthCalledWith( + expect(context.artifactClient.deleteArtifact).toHaveBeenNthCalledWith( 2, - ArtifactConstants.SAVED_OBJECT_TYPE, ARTIFACT_ID_EXCEPTIONS_WINDOWS ); }); test('Returns errors for partial failures', async () => { const context = buildManifestManagerContextMock({}); + const artifactClient = context.artifactClient as jest.Mocked; const manifestManager = new ManifestManager(context); const error = new Error(); - context.savedObjectsClient.delete = jest - .fn() - .mockImplementation(async (type: string, id: string) => { - if (id === ARTIFACT_ID_EXCEPTIONS_WINDOWS) { - throw error; - } else { - return {}; - } - }); + artifactClient.deleteArtifact.mockImplementation(async (id) => { + if (id === ARTIFACT_ID_EXCEPTIONS_WINDOWS) { + throw error; + } + }); await expect( manifestManager.deleteArtifacts([ @@ -461,46 +456,35 @@ describe('ManifestManager', () => { ]) ).resolves.toStrictEqual([error]); - expect(context.savedObjectsClient.delete).toHaveBeenCalledTimes(2); - expect(context.savedObjectsClient.delete).toHaveBeenNthCalledWith( + expect(artifactClient.deleteArtifact).toHaveBeenCalledTimes(2); + expect(artifactClient.deleteArtifact).toHaveBeenNthCalledWith( 1, - ArtifactConstants.SAVED_OBJECT_TYPE, ARTIFACT_ID_EXCEPTIONS_MACOS ); - expect(context.savedObjectsClient.delete).toHaveBeenNthCalledWith( + expect(artifactClient.deleteArtifact).toHaveBeenNthCalledWith( 2, - ArtifactConstants.SAVED_OBJECT_TYPE, ARTIFACT_ID_EXCEPTIONS_WINDOWS ); }); }); describe('pushArtifacts', () => { - test('Successfully invokes saved objects client and stores in the cache', async () => { + test('Successfully invokes artifactClient and stores in the cache', async () => { const context = buildManifestManagerContextMock({}); + const artifactClient = context.artifactClient as jest.Mocked; const manifestManager = new ManifestManager(context); - context.savedObjectsClient.create = jest - .fn() - .mockImplementation((type: string, artifact: InternalArtifactCompleteSchema) => artifact); - await expect( manifestManager.pushArtifacts([ARTIFACT_EXCEPTIONS_MACOS, ARTIFACT_EXCEPTIONS_WINDOWS]) ).resolves.toStrictEqual([]); - expect(context.savedObjectsClient.create).toHaveBeenCalledTimes(2); - expect(context.savedObjectsClient.create).toHaveBeenNthCalledWith( - 1, - ArtifactConstants.SAVED_OBJECT_TYPE, - { ...ARTIFACT_EXCEPTIONS_MACOS, created: expect.anything() }, - { id: ARTIFACT_ID_EXCEPTIONS_MACOS } - ); - expect(context.savedObjectsClient.create).toHaveBeenNthCalledWith( - 2, - ArtifactConstants.SAVED_OBJECT_TYPE, - { ...ARTIFACT_EXCEPTIONS_WINDOWS, created: expect.anything() }, - { id: ARTIFACT_ID_EXCEPTIONS_WINDOWS } - ); + expect(artifactClient.createArtifact).toHaveBeenCalledTimes(2); + expect(artifactClient.createArtifact).toHaveBeenNthCalledWith(1, { + ...ARTIFACT_EXCEPTIONS_MACOS, + }); + expect(artifactClient.createArtifact).toHaveBeenNthCalledWith(2, { + ...ARTIFACT_EXCEPTIONS_WINDOWS, + }); expect( await uncompressData(context.cache.get(getArtifactId(ARTIFACT_EXCEPTIONS_MACOS))!) ).toStrictEqual(await uncompressArtifact(ARTIFACT_EXCEPTIONS_MACOS)); @@ -511,19 +495,20 @@ describe('ManifestManager', () => { test('Returns errors for partial failures', async () => { const context = buildManifestManagerContextMock({}); + const artifactClient = context.artifactClient as jest.Mocked; const manifestManager = new ManifestManager(context); const error = new Error(); const { body, ...incompleteArtifact } = ARTIFACT_TRUSTED_APPS_MACOS; - context.savedObjectsClient.create = jest - .fn() - .mockImplementation(async (type: string, artifact: InternalArtifactCompleteSchema) => { + artifactClient.createArtifact.mockImplementation( + async (artifact: InternalArtifactCompleteSchema) => { if (getArtifactId(artifact) === ARTIFACT_ID_EXCEPTIONS_WINDOWS) { throw error; } else { return artifact; } - }); + } + ); await expect( manifestManager.pushArtifacts([ @@ -536,45 +521,15 @@ describe('ManifestManager', () => { new Error(`Incomplete artifact: ${ARTIFACT_ID_TRUSTED_APPS_MACOS}`), ]); - expect(context.savedObjectsClient.create).toHaveBeenCalledTimes(2); - expect(context.savedObjectsClient.create).toHaveBeenNthCalledWith( - 1, - ArtifactConstants.SAVED_OBJECT_TYPE, - { ...ARTIFACT_EXCEPTIONS_MACOS, created: expect.anything() }, - { id: ARTIFACT_ID_EXCEPTIONS_MACOS } - ); + expect(artifactClient.createArtifact).toHaveBeenCalledTimes(2); + expect(artifactClient.createArtifact).toHaveBeenNthCalledWith(1, { + ...ARTIFACT_EXCEPTIONS_MACOS, + }); expect( await uncompressData(context.cache.get(getArtifactId(ARTIFACT_EXCEPTIONS_MACOS))!) ).toStrictEqual(await uncompressArtifact(ARTIFACT_EXCEPTIONS_MACOS)); expect(context.cache.get(getArtifactId(ARTIFACT_EXCEPTIONS_WINDOWS))).toBeUndefined(); }); - - test('Tolerates saved objects client conflict', async () => { - const context = buildManifestManagerContextMock({}); - const manifestManager = new ManifestManager(context); - - context.savedObjectsClient.create = jest - .fn() - .mockRejectedValue( - SavedObjectsErrorHelpers.createConflictError( - ArtifactConstants.SAVED_OBJECT_TYPE, - ARTIFACT_ID_EXCEPTIONS_MACOS - ) - ); - - await expect( - manifestManager.pushArtifacts([ARTIFACT_EXCEPTIONS_MACOS]) - ).resolves.toStrictEqual([]); - - expect(context.savedObjectsClient.create).toHaveBeenCalledTimes(1); - expect(context.savedObjectsClient.create).toHaveBeenNthCalledWith( - 1, - ArtifactConstants.SAVED_OBJECT_TYPE, - { ...ARTIFACT_EXCEPTIONS_MACOS, created: expect.anything() }, - { id: ARTIFACT_ID_EXCEPTIONS_MACOS } - ); - expect(context.cache.get(getArtifactId(ARTIFACT_EXCEPTIONS_MACOS))).toBeUndefined(); - }); }); describe('commit', () => { diff --git a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts index e219da38931da..9ed17686fd2bc 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/artifacts/manifest_manager/manifest_manager.ts @@ -32,7 +32,7 @@ import { InternalArtifactCompleteSchema, internalArtifactCompleteSchema, } from '../../../schemas/artifacts'; -import { ArtifactClient } from '../artifact_client'; +import { EndpointArtifactClientInterface } from '../artifact_client'; import { ManifestClient } from '../manifest_client'; interface ArtifactsBuildResult { @@ -76,7 +76,7 @@ const iterateAllListItems = async ( export interface ManifestManagerContext { savedObjectsClient: SavedObjectsClientContract; - artifactClient: ArtifactClient; + artifactClient: EndpointArtifactClientInterface; exceptionListClient: ExceptionListClient; packagePolicyService: PackagePolicyServiceInterface; logger: Logger; @@ -92,7 +92,7 @@ const manifestsEqual = (manifest1: ManifestSchema, manifest2: ManifestSchema) => isEqual(new Set(getArtifactIds(manifest1)), new Set(getArtifactIds(manifest2))); export class ManifestManager { - protected artifactClient: ArtifactClient; + protected artifactClient: EndpointArtifactClientInterface; protected exceptionListClient: ExceptionListClient; protected packagePolicyService: PackagePolicyServiceInterface; protected savedObjectsClient: SavedObjectsClientContract; @@ -290,10 +290,13 @@ export class ManifestManager { ); for (const entry of manifestSo.attributes.artifacts) { - manifest.addEntry( - (await this.artifactClient.getArtifact(entry.artifactId)).attributes, - entry.policyId - ); + const artifact = await this.artifactClient.getArtifact(entry.artifactId); + + if (!artifact) { + throw new Error(`artifact id [${entry.artifactId}] not found!`); + } + + manifest.addEntry(artifact, entry.policyId); } return manifest; @@ -462,7 +465,7 @@ export class ManifestManager { }); } - public getArtifactsClient(): ArtifactClient { + public getArtifactsClient(): EndpointArtifactClientInterface { return this.artifactClient; } } diff --git a/x-pack/plugins/security_solution/server/plugin.ts b/x-pack/plugins/security_solution/server/plugin.ts index 21724e065cb99..04f98e53ea9a3 100644 --- a/x-pack/plugins/security_solution/server/plugin.ts +++ b/x-pack/plugins/security_solution/server/plugin.ts @@ -59,7 +59,7 @@ import { registerEndpointRoutes } from './endpoint/routes/metadata'; import { registerLimitedConcurrencyRoutes } from './endpoint/routes/limited_concurrency'; import { registerResolverRoutes } from './endpoint/routes/resolver'; import { registerPolicyRoutes } from './endpoint/routes/policy'; -import { ArtifactClient, EndpointArtifactClient, ManifestManager } from './endpoint/services'; +import { EndpointArtifactClient, ManifestManager } from './endpoint/services'; import { EndpointAppContextService } from './endpoint/endpoint_app_context_services'; import { EndpointAppContext } from './endpoint/types'; import { registerDownloadArtifactRoute } from './endpoint/routes/artifacts'; @@ -352,9 +352,9 @@ export class Plugin implements IPlugin Date: Thu, 1 Apr 2021 09:58:54 -0400 Subject: [PATCH 043/106] [Security Solution][Detections][Threshold Rules] Add `threshold_result` to alert notification context (#95354) * Don't remove threshold_result from _source prematurely * Fix type error Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/lib/detection_engine/signals/build_bulk_body.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts index 3a6cbf5ccd34b..0c03c0837e8e1 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/build_bulk_body.ts @@ -73,11 +73,12 @@ export const buildBulkBody = ({ ...buildSignal([doc], rule), ...additionalSignalFields(doc), }; - // @ts-expect-error @elastic/elasticsearch _source is optional - delete doc._source.threshold_result; const event = buildEventTypeSignal(doc); + const { threshold_result: thresholdResult, ...filteredSource } = doc._source || { + threshold_result: null, + }; const signalHit: SignalHit = { - ...doc._source, + ...filteredSource, '@timestamp': new Date().toISOString(), event, signal, From 3187567a0e13ddbc189ad6c0ec7373a1e80c30f4 Mon Sep 17 00:00:00 2001 From: Spencer Date: Thu, 1 Apr 2021 07:01:59 -0700 Subject: [PATCH 044/106] [cli-dev-mode] complete state subjects when shutting down (#96003) Co-authored-by: spalger --- packages/kbn-cli-dev-mode/src/dev_server.ts | 6 ++++ .../kbn-cli-dev-mode/src/optimizer.test.ts | 1 + packages/kbn-cli-dev-mode/src/optimizer.ts | 28 +++++++++++++------ packages/kbn-cli-dev-mode/src/watcher.ts | 5 ++++ 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/packages/kbn-cli-dev-mode/src/dev_server.ts b/packages/kbn-cli-dev-mode/src/dev_server.ts index 3daf298c82324..60a279e456e3d 100644 --- a/packages/kbn-cli-dev-mode/src/dev_server.ts +++ b/packages/kbn-cli-dev-mode/src/dev_server.ts @@ -249,5 +249,11 @@ export class DevServer { ) .subscribe(subscriber) ); + + // complete state subjects when run$ completes + subscriber.add(() => { + this.phase$.complete(); + this.ready$.complete(); + }); }); } diff --git a/packages/kbn-cli-dev-mode/src/optimizer.test.ts b/packages/kbn-cli-dev-mode/src/optimizer.test.ts index e3bfb2eb0bb9e..ee8ea5f38ae84 100644 --- a/packages/kbn-cli-dev-mode/src/optimizer.test.ts +++ b/packages/kbn-cli-dev-mode/src/optimizer.test.ts @@ -180,6 +180,7 @@ it('is ready when optimizer phase is success or issue and logs in familiar forma "ready: false", "", "ready: true", + "complete", ] `); diff --git a/packages/kbn-cli-dev-mode/src/optimizer.ts b/packages/kbn-cli-dev-mode/src/optimizer.ts index 750b61140e920..fab566829f7a6 100644 --- a/packages/kbn-cli-dev-mode/src/optimizer.ts +++ b/packages/kbn-cli-dev-mode/src/optimizer.ts @@ -107,14 +107,26 @@ export class Optimizer { }, ]); - this.run$ = runOptimizer(config).pipe( - logOptimizerState(log, config), - tap(({ state }) => { - this.phase$.next(state.phase); - this.ready$.next(state.phase === 'success' || state.phase === 'issue'); - }), - ignoreElements() - ); + this.run$ = new Rx.Observable((subscriber) => { + subscriber.add( + runOptimizer(config) + .pipe( + logOptimizerState(log, config), + tap(({ state }) => { + this.phase$.next(state.phase); + this.ready$.next(state.phase === 'success' || state.phase === 'issue'); + }), + ignoreElements() + ) + .subscribe(subscriber) + ); + + // complete state subjects when run$ completes + subscriber.add(() => { + this.phase$.complete(); + this.ready$.complete(); + }); + }); } getPhase$() { diff --git a/packages/kbn-cli-dev-mode/src/watcher.ts b/packages/kbn-cli-dev-mode/src/watcher.ts index 8e8d2db1b20bb..17993326cfcf3 100644 --- a/packages/kbn-cli-dev-mode/src/watcher.ts +++ b/packages/kbn-cli-dev-mode/src/watcher.ts @@ -103,6 +103,11 @@ export class Watcher { .pipe(ignoreElements()) .subscribe(subscriber) ); + + // complete state subjects when run$ completes + subscriber.add(() => { + this.restart$.complete(); + }); }); serverShouldRestart$() { From 1aa6a140ddafe570a1b4e7b398a1651bdf555f0d Mon Sep 17 00:00:00 2001 From: Kaarina Tungseth Date: Thu, 1 Apr 2021 09:09:11 -0500 Subject: [PATCH 045/106] Ui changes (#95989) --- docs/discover/search.asciidoc | 4 ++-- .../public/directives/timelion_help/timelion_help.html | 6 +++--- x-pack/plugins/translations/translations/ja-JP.json | 3 --- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/discover/search.asciidoc b/docs/discover/search.asciidoc index 9971a6f574f9c..0306be3eb670d 100644 --- a/docs/discover/search.asciidoc +++ b/docs/discover/search.asciidoc @@ -110,7 +110,7 @@ image::discover/images/read-only-badge.png[Example of Discover's read only acces ==== Save a search To save the current search: -. Click *Save* in the Kibana toolbar. +. Click *Save* in the toolbar. . Enter a name for the search and click *Save*. To import, export, and delete saved searches, open the main menu, @@ -119,7 +119,7 @@ then click *Stack Management > Saved Objects*. ==== Open a saved search To load a saved search into Discover: -. Click *Open* in the Kibana toolbar. +. Click *Open* in the toolbar. . Select the search you want to open. If the saved search is associated with a different index pattern than is currently diff --git a/src/plugins/timelion/public/directives/timelion_help/timelion_help.html b/src/plugins/timelion/public/directives/timelion_help/timelion_help.html index 2b8706f1f2a81..4c4fdfe4faf51 100644 --- a/src/plugins/timelion/public/directives/timelion_help/timelion_help.html +++ b/src/plugins/timelion/public/directives/timelion_help/timelion_help.html @@ -207,7 +207,7 @@ >

@@ -406,7 +406,7 @@ >

Date: Thu, 1 Apr 2021 10:55:46 -0400 Subject: [PATCH 046/106] Bump concaveman to 1.2.0 (#95983) --- yarn.lock | 80 ++++++++----------------------------------------------- 1 file changed, 11 insertions(+), 69 deletions(-) diff --git a/yarn.lock b/yarn.lock index 80ad1acf7fccd..ea663207aafa5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10044,15 +10044,14 @@ concat-stream@~2.0.0: typedarray "^0.0.6" concaveman@*: - version "1.1.1" - resolved "https://registry.yarnpkg.com/concaveman/-/concaveman-1.1.1.tgz#6c2482580b2523cef82fc2bec00a0415e6e68162" - integrity sha1-bCSCWAslI874L8K+wAoEFebmgWI= + version "1.2.0" + resolved "https://registry.yarnpkg.com/concaveman/-/concaveman-1.2.0.tgz#4340f27c08a11bdc1d5fac13476862a2ab09b703" + integrity sha512-OcqechF2/kubbffomKqjGEkb0ndlYhEbmyg/fxIGqdfYp5AZjD2Kl5hc97Hh3ngEuHU2314Z4KDbxL7qXGWrQQ== dependencies: - monotone-convex-hull-2d "^1.0.1" point-in-polygon "^1.0.1" - rbush "^2.0.1" - robust-orientation "^1.1.3" - tinyqueue "^1.1.0" + rbush "^3.0.0" + robust-predicates "^2.0.4" + tinyqueue "^2.0.3" config-chain@^1.1.12: version "1.1.12" @@ -20241,13 +20240,6 @@ monocle-ts@^1.0.0: resolved "https://registry.yarnpkg.com/monocle-ts/-/monocle-ts-1.7.1.tgz#03a615938aa90983a4fa29749969d30f72d80ba1" integrity sha512-X9OzpOyd/R83sYex8NYpJjUzi/MLQMvGNVfxDYiIvs+QMXMEUDwR61MQoARFN10Cqz5h/mbFSPnIQNUIGhYd2Q== -monotone-convex-hull-2d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz#47f5daeadf3c4afd37764baa1aa8787a40eee08c" - integrity sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw= - dependencies: - robust-orientation "^1.1.3" - moo@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" @@ -23143,11 +23135,6 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -quickselect@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-1.1.1.tgz#852e412ce418f237ad5b660d70cffac647ae94c2" - integrity sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ== - quickselect@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" @@ -23258,14 +23245,7 @@ raw-loader@^4.0.1: loader-utils "^2.0.0" schema-utils "^2.6.5" -rbush@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/rbush/-/rbush-2.0.2.tgz#bb6005c2731b7ba1d5a9a035772927d16a614605" - integrity sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA== - dependencies: - quickselect "^1.0.1" - -rbush@^3.0.1: +rbush@^3.0.0, rbush@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/rbush/-/rbush-3.0.1.tgz#5fafa8a79b3b9afdfe5008403a720cc1de882ecf" integrity sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w== @@ -25131,33 +25111,10 @@ rison-node@1.0.2: resolved "https://registry.yarnpkg.com/rison-node/-/rison-node-1.0.2.tgz#b7b5f37f39f5ae2a51a973a33c9aa17239a33e4b" integrity sha1-t7Xzfzn1ripRqXOjPJqhcjmjPks= -robust-orientation@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/robust-orientation/-/robust-orientation-1.1.3.tgz#daff5b00d3be4e60722f0e9c0156ef967f1c2049" - integrity sha1-2v9bANO+TmByLw6cAVbvln8cIEk= - dependencies: - robust-scale "^1.0.2" - robust-subtract "^1.0.0" - robust-sum "^1.0.0" - two-product "^1.0.2" - -robust-scale@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/robust-scale/-/robust-scale-1.0.2.tgz#775132ed09542d028e58b2cc79c06290bcf78c32" - integrity sha1-d1Ey7QlULQKOWLLMecBikLz3jDI= - dependencies: - two-product "^1.0.2" - two-sum "^1.0.0" - -robust-subtract@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/robust-subtract/-/robust-subtract-1.0.0.tgz#e0b164e1ed8ba4e3a5dda45a12038348dbed3e9a" - integrity sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo= - -robust-sum@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/robust-sum/-/robust-sum-1.0.0.tgz#16646e525292b4d25d82757a286955e0bbfa53d9" - integrity sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k= +robust-predicates@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-2.0.4.tgz#0a2367a93abd99676d075981707f29cfb402248b" + integrity sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg== rollup@^0.25.8: version "0.25.8" @@ -27512,11 +27469,6 @@ tinygradient@0.4.3: "@types/tinycolor2" "^1.4.0" tinycolor2 "^1.0.0" -tinyqueue@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-1.2.3.tgz#b6a61de23060584da29f82362e45df1ec7353f3d" - integrity sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA== - tinyqueue@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tinyqueue/-/tinyqueue-2.0.3.tgz#64d8492ebf39e7801d7bd34062e29b45b2035f08" @@ -27936,16 +27888,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= -two-product@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/two-product/-/two-product-1.0.2.tgz#67d95d4b257a921e2cb4bd7af9511f9088522eaa" - integrity sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo= - -two-sum@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/two-sum/-/two-sum-1.0.0.tgz#31d3f32239e4f731eca9df9155e2b297f008ab64" - integrity sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q= - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" From 3b3ad0ecafd6afbfad645c0606f22a300844a6be Mon Sep 17 00:00:00 2001 From: Devon Thomson Date: Thu, 1 Apr 2021 11:03:27 -0400 Subject: [PATCH 047/106] Fixed iframe filtering by not re-creating embed settings on URL change (#95997) --- .../dashboard/public/application/dashboard_router.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/dashboard/public/application/dashboard_router.tsx b/src/plugins/dashboard/public/application/dashboard_router.tsx index f981b135c4359..e5281a257ee13 100644 --- a/src/plugins/dashboard/public/application/dashboard_router.tsx +++ b/src/plugins/dashboard/public/application/dashboard_router.tsx @@ -84,6 +84,7 @@ export async function mountApp({ const spacesApi = pluginsStart.spacesOss?.isSpacesAvailable ? pluginsStart.spacesOss : undefined; const activeSpaceId = spacesApi && (await spacesApi.activeSpace$.pipe(first()).toPromise())?.id; + let globalEmbedSettings: DashboardEmbedSettings | undefined; const dashboardServices: DashboardAppServices = { navigation, @@ -149,9 +150,6 @@ export async function mountApp({ const getDashboardEmbedSettings = ( routeParams: ParsedQuery ): DashboardEmbedSettings | undefined => { - if (!routeParams.embed) { - return undefined; - } return { forceShowTopNavMenu: Boolean(routeParams[dashboardUrlParams.showTopMenu]), forceShowQueryInput: Boolean(routeParams[dashboardUrlParams.showQueryInput]), @@ -162,11 +160,13 @@ export async function mountApp({ const renderDashboard = (routeProps: RouteComponentProps<{ id?: string }>) => { const routeParams = parse(routeProps.history.location.search); - const embedSettings = getDashboardEmbedSettings(routeParams); + if (routeParams.embed && !globalEmbedSettings) { + globalEmbedSettings = getDashboardEmbedSettings(routeParams); + } return ( redirect(routeProps, props)} /> From 6e9e6e5cfd2a8f91fd28b1e416b511acd4497bd4 Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper Date: Thu, 1 Apr 2021 10:39:54 -0500 Subject: [PATCH 048/106] [Fleet] Correctly parse falsy YAML fields in agent policy integrations (#95966) --- .../plugins/fleet/server/services/epm/agent/agent.test.ts | 8 ++++++++ x-pack/plugins/fleet/server/services/epm/agent/agent.ts | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/services/epm/agent/agent.test.ts b/x-pack/plugins/fleet/server/services/epm/agent/agent.test.ts index dde9f1733dfe3..bc4ffffb68358 100644 --- a/x-pack/plugins/fleet/server/services/epm/agent/agent.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/agent/agent.test.ts @@ -65,6 +65,12 @@ custom: {{ custom }} {{#if key.patterns}} key.patterns: {{key.patterns}} {{/if}} +{{#if emptyfield}} +emptyfield: {{emptyfield}} +{{/if}} +{{#if nullfield}} +nullfield: {{nullfield}} +{{/if}} {{ testEmpty }} `; const vars = { @@ -82,6 +88,8 @@ foo: bar `, }, password: { type: 'password', value: '' }, + emptyfield: { type: 'yaml', value: '' }, + nullfield: { type: 'yaml' }, }; const output = compileTemplate(vars, streamTemplate); diff --git a/x-pack/plugins/fleet/server/services/epm/agent/agent.ts b/x-pack/plugins/fleet/server/services/epm/agent/agent.ts index 26e1497e93852..84a8ab581354a 100644 --- a/x-pack/plugins/fleet/server/services/epm/agent/agent.ts +++ b/x-pack/plugins/fleet/server/services/epm/agent/agent.ts @@ -90,7 +90,7 @@ function buildTemplateVariables(variables: PackagePolicyConfigRecord, templateSt if (recordEntry.type && recordEntry.type === 'yaml') { const yamlKeyPlaceholder = `##${key}##`; - varPart[lastKeyPart] = `"${yamlKeyPlaceholder}"`; + varPart[lastKeyPart] = recordEntry.value ? `"${yamlKeyPlaceholder}"` : null; yamlValues[yamlKeyPlaceholder] = recordEntry.value ? safeLoad(recordEntry.value) : null; } else if ( recordEntry.type && From 0758f8735271cf27c56348534df8e7951910600e Mon Sep 17 00:00:00 2001 From: Spencer Date: Thu, 1 Apr 2021 09:14:20 -0700 Subject: [PATCH 049/106] [packer] skip docker pull if docker is unavailable or running on ARM (#95979) Co-authored-by: spalger --- .ci/packer_cache.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.ci/packer_cache.sh b/.ci/packer_cache.sh index 5317b2c500b49..a63c2825816bd 100755 --- a/.ci/packer_cache.sh +++ b/.ci/packer_cache.sh @@ -2,8 +2,10 @@ set -e -# cache image used by kibana-load-testing project -docker pull "maven:3.6.3-openjdk-8-slim" +if [[ "$(which docker)" != "" && "$(command uname -m)" != "aarch64" ]]; then + # cache image used by kibana-load-testing project + docker pull "maven:3.6.3-openjdk-8-slim" +fi ./.ci/packer_cache_for_branch.sh master ./.ci/packer_cache_for_branch.sh 7.x From 34b58a4f6f76fea68e7e6bc48b1062ed20abda03 Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Thu, 1 Apr 2021 11:19:48 -0500 Subject: [PATCH 050/106] skip flaky test #95660 --- test/functional/apps/management/_import_objects.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/management/_import_objects.ts b/test/functional/apps/management/_import_objects.ts index a3daaf8629493..13063e3cc83bd 100644 --- a/test/functional/apps/management/_import_objects.ts +++ b/test/functional/apps/management/_import_objects.ts @@ -291,7 +291,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(isSuccessful).to.be(true); }); - it('should allow the user to confirm overriding multiple duplicate saved objects', async function () { + // https://github.com/elastic/kibana/issues/95660 + it.skip('should allow the user to confirm overriding multiple duplicate saved objects', async function () { // This data has already been loaded by the "visualize" esArchive. We'll load it again // so that we can override the existing visualization. await PageObjects.savedObjects.importFile( From 35ba996e8465a2925bfe416960f5972d0953b8b4 Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Thu, 1 Apr 2021 12:21:29 -0400 Subject: [PATCH 051/106] [Maps] Add suggest EMS layer utility (#94969) --- x-pack/plugins/maps/common/constants.ts | 4 + x-pack/plugins/maps/public/api/ems.ts | 16 ++ x-pack/plugins/maps/public/api/index.ts | 1 + x-pack/plugins/maps/public/api/register.ts | 4 +- x-pack/plugins/maps/public/api/start_api.ts | 8 +- .../layer_template.tsx | 2 +- .../create_basemap_layer_descriptor.test.ts | 8 +- .../layers/create_basemap_layer_descriptor.ts | 2 +- .../create_layer_descriptor.test.ts | 4 +- .../observability/create_layer_descriptor.ts | 3 +- .../vector_tile_layer/vector_tile_layer.js | 2 +- .../ems_file_source/ems_file_source.tsx | 13 +- .../ems_file_source/update_source_editor.tsx | 2 +- .../sources/ems_tms_source/ems_tms_source.js | 2 +- .../ems_tms_source/ems_tms_source.test.js | 2 +- .../ems_tms_source/tile_service_select.tsx | 2 +- .../create_source_editor.js | 2 +- .../kibana_regionmap_layer_wizard.tsx | 2 +- .../kibana_regionmap_source.ts | 13 +- .../create_source_editor.js | 2 +- .../kibana_base_map_layer_wizard.tsx | 2 +- .../kibana_tilemap_source.js | 2 +- .../sources/vector_source/vector_source.tsx | 48 +---- .../public/components/ems_file_select.tsx | 2 +- .../connected_components/mb_map/mb_map.tsx | 2 +- .../ems_autosuggest/ems_autosuggest.test.ts | 171 +++++++++++++++ .../public/ems_autosuggest/ems_autosuggest.ts | 201 ++++++++++++++++++ .../maps/public/ems_autosuggest/index.ts | 8 + .../maps/public/lazy_load_bundle/index.ts | 4 + .../public/lazy_load_bundle/lazy/index.ts | 1 + x-pack/plugins/maps/public/plugin.ts | 10 +- .../public/{meta.test.js => util.test.js} | 2 +- .../plugins/maps/public/{meta.ts => util.ts} | 43 ++++ .../sample_data/ecommerce_saved_objects.js | 3 +- .../sample_data/web_logs_saved_objects.js | 3 +- .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - 37 files changed, 506 insertions(+), 94 deletions(-) create mode 100644 x-pack/plugins/maps/public/api/ems.ts create mode 100644 x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.test.ts create mode 100644 x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.ts create mode 100644 x-pack/plugins/maps/public/ems_autosuggest/index.ts rename x-pack/plugins/maps/public/{meta.test.js => util.test.js} (98%) rename x-pack/plugins/maps/public/{meta.ts => util.ts} (73%) diff --git a/x-pack/plugins/maps/common/constants.ts b/x-pack/plugins/maps/common/constants.ts index ecdf94a076809..7152d76afbdbe 100644 --- a/x-pack/plugins/maps/common/constants.ts +++ b/x-pack/plugins/maps/common/constants.ts @@ -300,3 +300,7 @@ export type FieldFormatter = (value: RawValue) => string | number; export const INDEX_META_DATA_CREATED_BY = 'maps-drawing-data-ingest'; export const MAX_DRAWING_SIZE_BYTES = 10485760; // 10MB + +export const emsWorldLayerId = 'world_countries'; +export const emsRegionLayerId = 'administrative_regions_lvl2'; +export const emsUsaZipLayerId = 'usa_zip_codes'; diff --git a/x-pack/plugins/maps/public/api/ems.ts b/x-pack/plugins/maps/public/api/ems.ts new file mode 100644 index 0000000000000..da6e88c84e22c --- /dev/null +++ b/x-pack/plugins/maps/public/api/ems.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 { EMSTermJoinConfig, SampleValuesConfig } from '../ems_autosuggest'; +import { lazyLoadMapModules } from '../lazy_load_bundle'; + +export async function suggestEMSTermJoinConfig( + sampleValuesConfig: SampleValuesConfig +): Promise { + const mapModules = await lazyLoadMapModules(); + return await mapModules.suggestEMSTermJoinConfig(sampleValuesConfig); +} diff --git a/x-pack/plugins/maps/public/api/index.ts b/x-pack/plugins/maps/public/api/index.ts index 6aac4f6410e6d..186fd98c90bf6 100644 --- a/x-pack/plugins/maps/public/api/index.ts +++ b/x-pack/plugins/maps/public/api/index.ts @@ -8,3 +8,4 @@ export { MapsStartApi } from './start_api'; export { createLayerDescriptors } from './create_layer_descriptors'; export { registerLayerWizard, registerSource } from './register'; +export { suggestEMSTermJoinConfig } from './ems'; diff --git a/x-pack/plugins/maps/public/api/register.ts b/x-pack/plugins/maps/public/api/register.ts index 2be928585a936..037eeadc48df7 100644 --- a/x-pack/plugins/maps/public/api/register.ts +++ b/x-pack/plugins/maps/public/api/register.ts @@ -5,8 +5,8 @@ * 2.0. */ -import { SourceRegistryEntry } from '../classes/sources/source_registry'; -import { LayerWizard } from '../classes/layers/layer_wizard_registry'; +import type { SourceRegistryEntry } from '../classes/sources/source_registry'; +import type { LayerWizard } from '../classes/layers/layer_wizard_registry'; import { lazyLoadMapModules } from '../lazy_load_bundle'; export async function registerLayerWizard(layerWizard: LayerWizard): Promise { diff --git a/x-pack/plugins/maps/public/api/start_api.ts b/x-pack/plugins/maps/public/api/start_api.ts index 3005f6522df0d..e4213fe07a49c 100644 --- a/x-pack/plugins/maps/public/api/start_api.ts +++ b/x-pack/plugins/maps/public/api/start_api.ts @@ -5,10 +5,11 @@ * 2.0. */ -import { LayerDescriptor } from '../../common/descriptor_types'; -import { SourceRegistryEntry } from '../classes/sources/source_registry'; -import { LayerWizard } from '../classes/layers/layer_wizard_registry'; +import type { LayerDescriptor } from '../../common/descriptor_types'; +import type { SourceRegistryEntry } from '../classes/sources/source_registry'; +import type { LayerWizard } from '../classes/layers/layer_wizard_registry'; import type { CreateLayerDescriptorParams } from '../classes/sources/es_search_source'; +import type { SampleValuesConfig, EMSTermJoinConfig } from '../ems_autosuggest'; export interface MapsStartApi { createLayerDescriptors: { @@ -23,4 +24,5 @@ export interface MapsStartApi { }; registerLayerWizard(layerWizard: LayerWizard): Promise; registerSource(entry: SourceRegistryEntry): Promise; + suggestEMSTermJoinConfig(config: SampleValuesConfig): Promise; } diff --git a/x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx b/x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx index 909cb6909ee56..82a741e7ccdab 100644 --- a/x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx +++ b/x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx @@ -24,7 +24,7 @@ import { EMSFileSelect } from '../../../components/ems_file_select'; import { GeoIndexPatternSelect } from '../../../components/geo_index_pattern_select'; import { SingleFieldSelect } from '../../../components/single_field_select'; import { getGeoFields, getSourceFields, getTermsFields } from '../../../index_pattern_util'; -import { getEmsFileLayers } from '../../../meta'; +import { getEmsFileLayers } from '../../../util'; import { getIndexPatternSelectComponent, getIndexPatternService } from '../../../kibana_services'; import { createEmsChoroplethLayerDescriptor, diff --git a/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.test.ts b/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.test.ts index 151db80da2142..1d21401778ae6 100644 --- a/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.test.ts +++ b/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -jest.mock('../../meta', () => { +jest.mock('../../util', () => { return {}; }); jest.mock('../../kibana_services', () => { @@ -33,7 +33,7 @@ import { createBasemapLayerDescriptor } from './create_basemap_layer_descriptor' describe('kibana.yml configured with map.tilemap.url', () => { beforeAll(() => { // eslint-disable-next-line @typescript-eslint/no-var-requires - require('../../meta').getKibanaTileMap = () => { + require('../../util').getKibanaTileMap = () => { return { url: 'myTileUrl', }; @@ -61,7 +61,7 @@ describe('kibana.yml configured with map.tilemap.url', () => { describe('EMS is enabled', () => { beforeAll(() => { // eslint-disable-next-line @typescript-eslint/no-var-requires - require('../../meta').getKibanaTileMap = () => { + require('../../util').getKibanaTileMap = () => { return null; }; // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -95,7 +95,7 @@ describe('EMS is enabled', () => { describe('EMS is not enabled', () => { beforeAll(() => { // eslint-disable-next-line @typescript-eslint/no-var-requires - require('../../meta').getKibanaTileMap = () => { + require('../../util').getKibanaTileMap = () => { return null; }; // eslint-disable-next-line @typescript-eslint/no-var-requires diff --git a/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.ts b/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.ts index edffa5dc7e0cb..033b0de025ee1 100644 --- a/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.ts +++ b/x-pack/plugins/maps/public/classes/layers/create_basemap_layer_descriptor.ts @@ -7,7 +7,7 @@ import _ from 'lodash'; import { LayerDescriptor } from '../../../common/descriptor_types'; -import { getKibanaTileMap } from '../../meta'; +import { getKibanaTileMap } from '../../util'; import { getEMSSettings } from '../../kibana_services'; // @ts-expect-error import { KibanaTilemapSource } from '../sources/kibana_tilemap_source'; diff --git a/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.test.ts b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.test.ts index b9cfb0067abd2..5dd4f240c2ba9 100644 --- a/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.test.ts +++ b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.test.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { emsWorldLayerId } from '../../../../../common'; + jest.mock('../../../../kibana_services', () => { return { getIsDarkMode() { @@ -71,7 +73,7 @@ describe('createLayerDescriptor', () => { maxZoom: 24, minZoom: 0, sourceDescriptor: { - id: 'world_countries', + id: emsWorldLayerId, tooltipProperties: ['name', 'iso2'], type: 'EMS_FILE', }, diff --git a/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.ts b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.ts index 03870e7668189..adf6f1d7f270d 100644 --- a/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.ts +++ b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.ts @@ -18,6 +18,7 @@ import { import { AGG_TYPE, COLOR_MAP_TYPE, + emsWorldLayerId, FIELD_ORIGIN, GRID_RESOLUTION, RENDER_AS, @@ -182,7 +183,7 @@ export function createLayerDescriptor({ }, ], sourceDescriptor: EMSFileSource.createDescriptor({ - id: 'world_countries', + id: emsWorldLayerId, tooltipProperties: ['name', 'iso2'], }), style: VectorStyle.createDescriptor({ diff --git a/x-pack/plugins/maps/public/classes/layers/vector_tile_layer/vector_tile_layer.js b/x-pack/plugins/maps/public/classes/layers/vector_tile_layer/vector_tile_layer.js index 3e7d25266821c..5096e5e29bf23 100644 --- a/x-pack/plugins/maps/public/classes/layers/vector_tile_layer/vector_tile_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/vector_tile_layer/vector_tile_layer.js @@ -8,7 +8,7 @@ import { TileLayer } from '../tile_layer/tile_layer'; import _ from 'lodash'; import { SOURCE_DATA_REQUEST_ID, LAYER_TYPE, LAYER_STYLE_TYPE } from '../../../../common/constants'; -import { isRetina } from '../../../meta'; +import { isRetina } from '../../../util'; import { addSpriteSheetToMapFromImageData, loadSpriteSheetImageData, diff --git a/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.tsx b/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.tsx index 5881982b893c1..c19ded6c2593e 100644 --- a/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.tsx +++ b/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.tsx @@ -18,7 +18,7 @@ import { VECTOR_SHAPE_TYPE, FORMAT_TYPE, } from '../../../../common/constants'; -import { getEmsFileLayers } from '../../../meta'; +import { fetchGeoJson, getEmsFileLayers } from '../../../util'; import { getDataSourceLabel } from '../../../../common/i18n_getters'; import { UpdateSourceEditor } from './update_source_editor'; import { EMSFileField } from '../../fields/ems_file_field'; @@ -123,12 +123,11 @@ export class EMSFileSource extends AbstractVectorSource implements IEmsFileSourc async getGeoJsonWithMeta(): Promise { const emsFileLayer = await this.getEMSFileLayer(); - // @ts-ignore - const featureCollection = await AbstractVectorSource.getGeoJson({ - format: emsFileLayer.getDefaultFormatType() as FORMAT_TYPE, - featureCollectionPath: 'data', - fetchUrl: emsFileLayer.getDefaultFormatUrl(), - }); + const featureCollection = await fetchGeoJson( + emsFileLayer.getDefaultFormatUrl(), + emsFileLayer.getDefaultFormatType() as FORMAT_TYPE, + 'data' + ); const emsIdField = emsFileLayer.getFields().find((field) => { return field.type === 'id'; diff --git a/x-pack/plugins/maps/public/classes/sources/ems_file_source/update_source_editor.tsx b/x-pack/plugins/maps/public/classes/sources/ems_file_source/update_source_editor.tsx index 3a8bb9c083afd..abac9cbe5d026 100644 --- a/x-pack/plugins/maps/public/classes/sources/ems_file_source/update_source_editor.tsx +++ b/x-pack/plugins/maps/public/classes/sources/ems_file_source/update_source_editor.tsx @@ -9,7 +9,7 @@ import React, { Component, Fragment } from 'react'; import { EuiTitle, EuiPanel, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { TooltipSelector } from '../../../components/tooltip_selector'; -import { getEmsFileLayers } from '../../../meta'; +import { getEmsFileLayers } from '../../../util'; import { IEmsFileSource } from './ems_file_source'; import { IField } from '../../fields/field'; import { OnSourceChangeArgs } from '../../../connected_components/layer_panel/view'; diff --git a/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.js b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.js index f2216f2afd2da..97fb20b795bf6 100644 --- a/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.js +++ b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.js @@ -7,7 +7,7 @@ import React from 'react'; import { AbstractTMSSource } from '../tms_source'; -import { getEmsTmsServices } from '../../../meta'; +import { getEmsTmsServices } from '../../../util'; import { UpdateSourceEditor } from './update_source_editor'; import { i18n } from '@kbn/i18n'; import { getDataSourceLabel } from '../../../../common/i18n_getters'; diff --git a/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.test.js b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.test.js index 1b62aea180007..db5191e62fc04 100644 --- a/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.test.js +++ b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.test.js @@ -5,7 +5,7 @@ * 2.0. */ -jest.mock('../../../meta', () => { +jest.mock('../../../util', () => { return { getEmsTmsServices: () => { class MockTMSService { diff --git a/x-pack/plugins/maps/public/classes/sources/ems_tms_source/tile_service_select.tsx b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/tile_service_select.tsx index 5f0f406d53e86..e4a6fed934b8d 100644 --- a/x-pack/plugins/maps/public/classes/sources/ems_tms_source/tile_service_select.tsx +++ b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/tile_service_select.tsx @@ -9,7 +9,7 @@ import React, { ChangeEvent, Component } from 'react'; import { EuiSelect, EuiSelectOption, EuiFormRow } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { getEmsTmsServices } from '../../../meta'; +import { getEmsTmsServices } from '../../../util'; import { getEmsUnavailableMessage } from '../../../components/ems_unavailable_message'; export const AUTO_SELECT = 'auto_select'; diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/create_source_editor.js index 436d05fdbc6e8..1278d84f103da 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/create_source_editor.js +++ b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/create_source_editor.js @@ -8,7 +8,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { EuiSelect, EuiFormRow, EuiPanel } from '@elastic/eui'; -import { getKibanaRegionList } from '../../../meta'; +import { getKibanaRegionList } from '../../../util'; import { i18n } from '@kbn/i18n'; export function CreateSourceEditor({ onSourceConfigChange }) { diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx index 907b80e6405a6..9091e03fdf7f5 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx @@ -13,7 +13,7 @@ import { KibanaRegionmapSource, sourceTitle } from './kibana_regionmap_source'; import { VectorLayer } from '../../layers/vector_layer'; // @ts-ignore import { CreateSourceEditor } from './create_source_editor'; -import { getKibanaRegionList } from '../../../meta'; +import { getKibanaRegionList } from '../../../util'; import { LAYER_WIZARD_CATEGORY } from '../../../../common/constants'; export const kibanaRegionMapLayerWizardConfig: LayerWizard = { diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.ts b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.ts index 0f778f194ce3f..12e4b00c3c7b9 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.ts +++ b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.ts @@ -7,7 +7,7 @@ import { i18n } from '@kbn/i18n'; import { AbstractVectorSource, GeoJsonWithMeta } from '../vector_source'; -import { getKibanaRegionList } from '../../../meta'; +import { fetchGeoJson, getKibanaRegionList } from '../../../util'; import { getDataSourceLabel } from '../../../../common/i18n_getters'; import { FIELD_ORIGIN, FORMAT_TYPE, SOURCE_TYPES } from '../../../../common/constants'; import { KibanaRegionField } from '../../fields/kibana_region_field'; @@ -79,11 +79,12 @@ export class KibanaRegionmapSource extends AbstractVectorSource { async getGeoJsonWithMeta(): Promise { const vectorFileMeta = await this.getVectorFileMeta(); - const featureCollection = await AbstractVectorSource.getGeoJson({ - format: vectorFileMeta.format.type as FORMAT_TYPE, - featureCollectionPath: vectorFileMeta.meta.feature_collection_path, - fetchUrl: vectorFileMeta.url, - }); + const featureCollection = await fetchGeoJson( + vectorFileMeta.url, + vectorFileMeta.format.type as FORMAT_TYPE, + vectorFileMeta.meta.feature_collection_path + ); + return { data: featureCollection, meta: {}, diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/create_source_editor.js index 8ec57d2b6f4fb..4d6939a3b7d45 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/create_source_editor.js +++ b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/create_source_editor.js @@ -9,7 +9,7 @@ import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; import { EuiFieldText, EuiFormRow, EuiPanel } from '@elastic/eui'; -import { getKibanaTileMap } from '../../../meta'; +import { getKibanaTileMap } from '../../../util'; import { i18n } from '@kbn/i18n'; export function CreateSourceEditor({ onSourceConfigChange }) { diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx index 8d18cda4e70dd..26893086ba8f7 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx @@ -13,7 +13,7 @@ import { CreateSourceEditor } from './create_source_editor'; // @ts-ignore import { KibanaTilemapSource, sourceTitle } from './kibana_tilemap_source'; import { TileLayer } from '../../layers/tile_layer/tile_layer'; -import { getKibanaTileMap } from '../../../meta'; +import { getKibanaTileMap } from '../../../util'; import { LAYER_WIZARD_CATEGORY } from '../../../../common/constants'; export const kibanaBasemapLayerWizardConfig: LayerWizard = { diff --git a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js index 0b88fe2e13905..94d082d8744e8 100644 --- a/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js +++ b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js @@ -6,7 +6,7 @@ */ import { AbstractTMSSource } from '../tms_source'; -import { getKibanaTileMap } from '../../../meta'; +import { getKibanaTileMap } from '../../../util'; import { i18n } from '@kbn/i18n'; import { getDataSourceLabel } from '../../../../common/i18n_getters'; import _ from 'lodash'; diff --git a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx index 959d6994c7339..e86e459851c70 100644 --- a/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx +++ b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx @@ -5,13 +5,9 @@ * 2.0. */ -// @ts-expect-error -import * as topojson from 'topojson-client'; -import _ from 'lodash'; -import { i18n } from '@kbn/i18n'; import { FeatureCollection, GeoJsonProperties } from 'geojson'; import { Filter, TimeRange } from 'src/plugins/data/public'; -import { FORMAT_TYPE, VECTOR_SHAPE_TYPE } from '../../../../common/constants'; +import { VECTOR_SHAPE_TYPE } from '../../../../common/constants'; import { TooltipProperty, ITooltipProperty } from '../../tooltips/tooltip_property'; import { AbstractSource, ISource } from '../source'; import { IField } from '../../fields/field'; @@ -85,48 +81,6 @@ export interface ITiledSingleLayerVectorSource extends IVectorSource { } export class AbstractVectorSource extends AbstractSource implements IVectorSource { - static async getGeoJson({ - format, - featureCollectionPath, - fetchUrl, - }: { - format: FORMAT_TYPE; - featureCollectionPath: string; - fetchUrl: string; - }) { - let fetchedJson; - try { - const response = await fetch(fetchUrl); - if (!response.ok) { - throw new Error('Request failed'); - } - fetchedJson = await response.json(); - } catch (e) { - throw new Error( - i18n.translate('xpack.maps.source.vetorSource.requestFailedErrorMessage', { - defaultMessage: `Unable to fetch vector shapes from url: {fetchUrl}`, - values: { fetchUrl }, - }) - ); - } - - if (format === FORMAT_TYPE.GEOJSON) { - return fetchedJson; - } - - if (format === FORMAT_TYPE.TOPOJSON) { - const features = _.get(fetchedJson, `objects.${featureCollectionPath}`); - return topojson.feature(fetchedJson, features); - } - - throw new Error( - i18n.translate('xpack.maps.source.vetorSource.formatErrorMessage', { - defaultMessage: `Unable to fetch vector shapes from url: {format}`, - values: { format }, - }) - ); - } - getFieldNames(): string[] { return []; } diff --git a/x-pack/plugins/maps/public/components/ems_file_select.tsx b/x-pack/plugins/maps/public/components/ems_file_select.tsx index 64ae57fc81dcf..3d23854efb4fb 100644 --- a/x-pack/plugins/maps/public/components/ems_file_select.tsx +++ b/x-pack/plugins/maps/public/components/ems_file_select.tsx @@ -10,7 +10,7 @@ import { EuiComboBox, EuiComboBoxOptionOption, EuiFormRow, EuiSelect } from '@el import { i18n } from '@kbn/i18n'; import { FileLayer } from '@elastic/ems-client'; -import { getEmsFileLayers } from '../meta'; +import { getEmsFileLayers } from '../util'; import { getEmsUnavailableMessage } from './ems_unavailable_message'; interface Props { diff --git a/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx b/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx index 5e4c3c9b1981f..66c9a2462736a 100644 --- a/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx +++ b/x-pack/plugins/maps/public/connected_components/mb_map/mb_map.tsx @@ -33,7 +33,7 @@ import { RawValue, ZOOM_PRECISION, } from '../../../common/constants'; -import { getGlyphUrl, isRetina } from '../../meta'; +import { getGlyphUrl, isRetina } from '../../util'; import { syncLayerOrder } from './sort_layers'; // @ts-expect-error import { removeOrphanedSourcesAndLayers, addSpritesheetToMap } from './utils'; diff --git a/x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.test.ts b/x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.test.ts new file mode 100644 index 0000000000000..34a53be48a5cd --- /dev/null +++ b/x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.test.ts @@ -0,0 +1,171 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { suggestEMSTermJoinConfig } from './ems_autosuggest'; +import { FORMAT_TYPE } from '../../common'; +import { FeatureCollection } from 'geojson'; + +class MockFileLayer { + private readonly _url: string; + private readonly _id: string; + private readonly _fields: Array<{ id: string }>; + + constructor(url: string, fields: Array<{ id: string }>) { + this._url = url; + this._id = url; + this._fields = fields; + } + getDefaultFormatUrl() { + return this._url; + } + + getFields() { + return this._fields; + } + + getDefaultFormatType() { + return FORMAT_TYPE.GEOJSON; + } + + hasId(id: string) { + return id === this._id; + } +} + +jest.mock('../util', () => { + return { + async getEmsFileLayers() { + return [ + new MockFileLayer('world_countries', [{ id: 'iso2' }, { id: 'iso3' }]), + new MockFileLayer('zips', [{ id: 'zip' }]), + ]; + }, + async fetchGeoJson(url: string): Promise { + if (url === 'world_countries') { + return ({ + type: 'FeatureCollection', + features: [ + { properties: { iso2: 'CA', iso3: 'CAN' } }, + { properties: { iso2: 'US', iso3: 'USA' } }, + ], + } as unknown) as FeatureCollection; + } else if (url === 'zips') { + return ({ + type: 'FeatureCollection', + features: [{ properties: { zip: '40204' } }, { properties: { zip: '40205' } }], + } as unknown) as FeatureCollection; + } else { + throw new Error(`unrecognized mock url ${url}`); + } + }, + }; +}); + +describe('suggestEMSTermJoinConfig', () => { + test('no info provided', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({}); + expect(termJoinConfig).toBe(null); + }); + + describe('validate common column names', () => { + test('ecs region', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValuesColumnName: 'destination.geo.region_iso_code', + }); + expect(termJoinConfig).toEqual({ + layerId: 'administrative_regions_lvl2', + field: 'region_iso_code', + }); + }); + + test('ecs country', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValuesColumnName: 'country_iso_code', + }); + expect(termJoinConfig).toEqual({ + layerId: 'world_countries', + field: 'iso2', + }); + }); + + test('country', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValuesColumnName: 'Country_name', + }); + expect(termJoinConfig).toEqual({ + layerId: 'world_countries', + field: 'name', + }); + }); + + test('unknown name', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValuesColumnName: 'cntry', + }); + expect(termJoinConfig).toEqual(null); + }); + }); + + describe('validate well known formats', () => { + test('5-digit zip code', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValues: ['90201', 40204], + }); + expect(termJoinConfig).toEqual({ + layerId: 'usa_zip_codes', + field: 'zip', + }); + }); + + test('mismatch', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValues: ['90201', 'foobar'], + }); + expect(termJoinConfig).toEqual(null); + }); + }); + + describe('validate based on EMS data', () => { + test('Should validate with zip codes layer', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValues: ['40204', 40205], + emsLayerIds: ['world_countries', 'zips'], + }); + expect(termJoinConfig).toEqual({ + layerId: 'zips', + field: 'zip', + }); + }); + + test('Should not validate with faulty zip codes', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValues: ['40204', '00000'], + emsLayerIds: ['world_countries', 'zips'], + }); + expect(termJoinConfig).toEqual(null); + }); + + test('Should validate against countries', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValues: ['USA', 'USA', 'CAN'], + emsLayerIds: ['world_countries', 'zips'], + }); + expect(termJoinConfig).toEqual({ + layerId: 'world_countries', + field: 'iso3', + }); + }); + + test('Should not validate against missing countries', async () => { + const termJoinConfig = await suggestEMSTermJoinConfig({ + sampleValues: ['USA', 'BEL', 'CAN'], + emsLayerIds: ['world_countries', 'zips'], + }); + expect(termJoinConfig).toEqual(null); + }); + }); +}); diff --git a/x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.ts b/x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.ts new file mode 100644 index 0000000000000..1d5c1529a004e --- /dev/null +++ b/x-pack/plugins/maps/public/ems_autosuggest/ems_autosuggest.ts @@ -0,0 +1,201 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FileLayer } from '@elastic/ems-client'; +import { getEmsFileLayers, fetchGeoJson } from '../util'; +import { FORMAT_TYPE, emsWorldLayerId, emsRegionLayerId, emsUsaZipLayerId } from '../../common'; + +export interface SampleValuesConfig { + emsLayerIds?: string[]; + sampleValues?: Array; + sampleValuesColumnName?: string; +} + +export interface EMSTermJoinConfig { + layerId: string; + field: string; +} + +const wellKnownColumnNames = [ + { + regex: /(geo\.){0,}country_iso_code$/i, // ECS postfix for country + emsConfig: { + layerId: emsWorldLayerId, + field: 'iso2', + }, + }, + { + regex: /(geo\.){0,}region_iso_code$/i, // ECS postfixn for region + emsConfig: { + layerId: emsRegionLayerId, + field: 'region_iso_code', + }, + }, + { + regex: /^country/i, // anything starting with country + emsConfig: { + layerId: emsWorldLayerId, + field: 'name', + }, + }, +]; + +const wellKnownColumnFormats = [ + { + regex: /(^\d{5}$)/i, // 5-digit zipcode + emsConfig: { + layerId: emsUsaZipLayerId, + field: 'zip', + }, + }, +]; + +interface UniqueMatch { + config: { layerId: string; field: string }; + count: number; +} + +export async function suggestEMSTermJoinConfig( + sampleValuesConfig: SampleValuesConfig +): Promise { + const matches: EMSTermJoinConfig[] = []; + + if (sampleValuesConfig.sampleValuesColumnName) { + matches.push(...suggestByName(sampleValuesConfig.sampleValuesColumnName)); + } + + if (sampleValuesConfig.sampleValues && sampleValuesConfig.sampleValues.length) { + if (sampleValuesConfig.emsLayerIds && sampleValuesConfig.emsLayerIds.length) { + matches.push( + ...(await suggestByEMSLayerIds( + sampleValuesConfig.emsLayerIds, + sampleValuesConfig.sampleValues + )) + ); + } else { + matches.push(...suggestByValues(sampleValuesConfig.sampleValues)); + } + } + + const uniqMatches: UniqueMatch[] = matches.reduce((accum: UniqueMatch[], match) => { + const found = accum.find((m) => { + return m.config.layerId === match.layerId && m.config.field === match.layerId; + }); + + if (found) { + found.count += 1; + } else { + accum.push({ + config: match, + count: 1, + }); + } + + return accum; + }, []); + + uniqMatches.sort((a, b) => { + return b.count - a.count; + }); + + return uniqMatches.length ? uniqMatches[0].config : null; +} + +function suggestByName(columnName: string): EMSTermJoinConfig[] { + const matches = wellKnownColumnNames.filter((wellknown) => { + return columnName.match(wellknown.regex); + }); + + return matches.map((m) => { + return m.emsConfig; + }); +} + +function suggestByValues(values: Array): EMSTermJoinConfig[] { + const matches = wellKnownColumnFormats.filter((wellknown) => { + for (let i = 0; i < values.length; i++) { + const value = values[i].toString(); + if (!value.match(wellknown.regex)) { + return false; + } + } + return true; + }); + + return matches.map((m) => { + return m.emsConfig; + }); +} + +function existsInEMS(emsJson: any, emsFieldId: string, sampleValue: string): boolean { + for (let i = 0; i < emsJson.features.length; i++) { + const emsFieldValue = emsJson.features[i].properties[emsFieldId].toString(); + if (emsFieldValue.toString() === sampleValue) { + return true; + } + } + return false; +} + +function matchesEmsField(emsJson: any, emsFieldId: string, sampleValues: Array) { + for (let j = 0; j < sampleValues.length; j++) { + const sampleValue = sampleValues[j].toString(); + if (!existsInEMS(emsJson, emsFieldId, sampleValue)) { + return false; + } + } + return true; +} + +async function getMatchesForEMSLayer( + emsLayerId: string, + sampleValues: Array +): Promise { + const fileLayers: FileLayer[] = await getEmsFileLayers(); + const emsFileLayer: FileLayer | undefined = fileLayers.find((fl: FileLayer) => + fl.hasId(emsLayerId) + ); + + if (!emsFileLayer) { + return []; + } + + const emsFields = emsFileLayer.getFields(); + const url = emsFileLayer.getDefaultFormatUrl(); + + try { + const emsJson = await fetchGeoJson( + url, + emsFileLayer.getDefaultFormatType() as FORMAT_TYPE, + 'data' + ); + const matches: EMSTermJoinConfig[] = []; + for (let f = 0; f < emsFields.length; f++) { + if (matchesEmsField(emsJson, emsFields[f].id, sampleValues)) { + matches.push({ + layerId: emsLayerId, + field: emsFields[f].id, + }); + } + } + return matches; + } catch (e) { + return []; + } +} + +async function suggestByEMSLayerIds( + emsLayerIds: string[], + values: Array +): Promise { + const matches = []; + for (const emsLayerId of emsLayerIds) { + const layerIdMathes = await getMatchesForEMSLayer(emsLayerId, values); + matches.push(...layerIdMathes); + } + return matches; +} diff --git a/x-pack/plugins/maps/public/ems_autosuggest/index.ts b/x-pack/plugins/maps/public/ems_autosuggest/index.ts new file mode 100644 index 0000000000000..86ed9e4fa70e1 --- /dev/null +++ b/x-pack/plugins/maps/public/ems_autosuggest/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 * from './ems_autosuggest'; diff --git a/x-pack/plugins/maps/public/lazy_load_bundle/index.ts b/x-pack/plugins/maps/public/lazy_load_bundle/index.ts index 0bf604a26544b..3e5e2d54422d6 100644 --- a/x-pack/plugins/maps/public/lazy_load_bundle/index.ts +++ b/x-pack/plugins/maps/public/lazy_load_bundle/index.ts @@ -14,6 +14,7 @@ import { MapEmbeddableConfig, MapEmbeddableInput, MapEmbeddableOutput } from '.. import { SourceRegistryEntry } from '../classes/sources/source_registry'; import { LayerWizard } from '../classes/layers/layer_wizard_registry'; import type { CreateLayerDescriptorParams } from '../classes/sources/es_search_source'; +import type { EMSTermJoinConfig, SampleValuesConfig } from '../ems_autosuggest'; let loadModulesPromise: Promise; @@ -74,6 +75,7 @@ interface LazyLoadedMapModules { }) => LayerDescriptor | null; createBasemapLayerDescriptor: () => LayerDescriptor | null; createESSearchSourceLayerDescriptor: (params: CreateLayerDescriptorParams) => LayerDescriptor; + suggestEMSTermJoinConfig: (config: SampleValuesConfig) => Promise; } export async function lazyLoadMapModules(): Promise { @@ -94,6 +96,7 @@ export async function lazyLoadMapModules(): Promise { createRegionMapLayerDescriptor, createBasemapLayerDescriptor, createESSearchSourceLayerDescriptor, + suggestEMSTermJoinConfig, } = await import('./lazy'); resolve({ @@ -108,6 +111,7 @@ export async function lazyLoadMapModules(): Promise { createRegionMapLayerDescriptor, createBasemapLayerDescriptor, createESSearchSourceLayerDescriptor, + suggestEMSTermJoinConfig, }); }); return loadModulesPromise; diff --git a/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts b/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts index 85b58da0ab09a..e7f5df49527b7 100644 --- a/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts +++ b/x-pack/plugins/maps/public/lazy_load_bundle/lazy/index.ts @@ -16,3 +16,4 @@ export { createTileMapLayerDescriptor } from '../../classes/layers/create_tile_m export { createRegionMapLayerDescriptor } from '../../classes/layers/create_region_map_layer_descriptor'; export { createBasemapLayerDescriptor } from '../../classes/layers/create_basemap_layer_descriptor'; export { createLayerDescriptor as createESSearchSourceLayerDescriptor } from '../../classes/sources/es_search_source'; +export { suggestEMSTermJoinConfig } from '../../ems_autosuggest'; diff --git a/x-pack/plugins/maps/public/plugin.ts b/x-pack/plugins/maps/public/plugin.ts index 7ddab6bf509ff..ad8846bd48b60 100644 --- a/x-pack/plugins/maps/public/plugin.ts +++ b/x-pack/plugins/maps/public/plugin.ts @@ -47,8 +47,13 @@ import type { EmbeddableSetup, EmbeddableStart } from '../../../../src/plugins/e import { MapsXPackConfig, MapsConfigType } from '../config'; import { getAppTitle } from '../common/i18n_getters'; import { lazyLoadMapModules } from './lazy_load_bundle'; -import { MapsStartApi } from './api'; -import { createLayerDescriptors, registerLayerWizard, registerSource } from './api'; +import { + createLayerDescriptors, + registerLayerWizard, + registerSource, + MapsStartApi, + suggestEMSTermJoinConfig, +} from './api'; import type { SharePluginSetup, SharePluginStart } from '../../../../src/plugins/share/public'; import type { MapsEmsPluginSetup } from '../../../../src/plugins/maps_ems/public'; import type { DataPublicPluginStart } from '../../../../src/plugins/data/public'; @@ -177,6 +182,7 @@ export class MapsPlugin createLayerDescriptors, registerLayerWizard, registerSource, + suggestEMSTermJoinConfig, }; } } diff --git a/x-pack/plugins/maps/public/meta.test.js b/x-pack/plugins/maps/public/util.test.js similarity index 98% rename from x-pack/plugins/maps/public/meta.test.js rename to x-pack/plugins/maps/public/util.test.js index fc26bca48032f..47c3d77180077 100644 --- a/x-pack/plugins/maps/public/meta.test.js +++ b/x-pack/plugins/maps/public/util.test.js @@ -6,7 +6,7 @@ */ import { EMSClient } from '@elastic/ems-client'; -import { getEMSClient, getGlyphUrl } from './meta'; +import { getEMSClient, getGlyphUrl } from './util'; jest.mock('@elastic/ems-client'); diff --git a/x-pack/plugins/maps/public/meta.ts b/x-pack/plugins/maps/public/util.ts similarity index 73% rename from x-pack/plugins/maps/public/meta.ts rename to x-pack/plugins/maps/public/util.ts index 11dc033846222..2745f9274f119 100644 --- a/x-pack/plugins/maps/public/meta.ts +++ b/x-pack/plugins/maps/public/util.ts @@ -7,6 +7,10 @@ import { i18n } from '@kbn/i18n'; import { EMSClient, FileLayer, TMSService } from '@elastic/ems-client'; +import { FeatureCollection } from 'geojson'; +// @ts-expect-error +import * as topojson from 'topojson-client'; +import _ from 'lodash'; import fetch from 'node-fetch'; import { @@ -16,6 +20,7 @@ import { EMS_GLYPHS_PATH, EMS_APP_NAME, FONTS_API_PATH, + FORMAT_TYPE, } from '../common/constants'; import { getHttp, @@ -113,3 +118,41 @@ export function getGlyphUrl(): string { export function isRetina(): boolean { return window.devicePixelRatio === 2; } + +export async function fetchGeoJson( + fetchUrl: string, + format: FORMAT_TYPE, + featureCollectionPath: string +): Promise { + let fetchedJson; + try { + const response = await fetch(fetchUrl); + if (!response.ok) { + throw new Error('Request failed'); + } + fetchedJson = await response.json(); + } catch (e) { + throw new Error( + i18n.translate('xpack.maps.util.requestFailedErrorMessage', { + defaultMessage: `Unable to fetch vector shapes from url: {fetchUrl}`, + values: { fetchUrl }, + }) + ); + } + + if (format === FORMAT_TYPE.GEOJSON) { + return fetchedJson; + } + + if (format === FORMAT_TYPE.TOPOJSON) { + const features = _.get(fetchedJson, `objects.${featureCollectionPath}`); + return topojson.feature(fetchedJson, features); + } + + throw new Error( + i18n.translate('xpack.maps.util.formatErrorMessage', { + defaultMessage: `Unable to fetch vector shapes from url: {format}`, + values: { format }, + }) + ); +} diff --git a/x-pack/plugins/maps/server/sample_data/ecommerce_saved_objects.js b/x-pack/plugins/maps/server/sample_data/ecommerce_saved_objects.js index 268794b8a1bce..6e68608c75cef 100644 --- a/x-pack/plugins/maps/server/sample_data/ecommerce_saved_objects.js +++ b/x-pack/plugins/maps/server/sample_data/ecommerce_saved_objects.js @@ -6,6 +6,7 @@ */ import { i18n } from '@kbn/i18n'; +import { emsWorldLayerId } from '../../common'; const layerList = [ { @@ -29,7 +30,7 @@ const layerList = [ alpha: 1, sourceDescriptor: { type: 'EMS_FILE', - id: 'world_countries', + id: emsWorldLayerId, tooltipProperties: ['name', 'iso2'], }, visible: true, diff --git a/x-pack/plugins/maps/server/sample_data/web_logs_saved_objects.js b/x-pack/plugins/maps/server/sample_data/web_logs_saved_objects.js index 31f353fab09ab..86c6c14306faf 100644 --- a/x-pack/plugins/maps/server/sample_data/web_logs_saved_objects.js +++ b/x-pack/plugins/maps/server/sample_data/web_logs_saved_objects.js @@ -6,6 +6,7 @@ */ import { i18n } from '@kbn/i18n'; +import { emsWorldLayerId } from '../../common'; const layerList = [ { @@ -29,7 +30,7 @@ const layerList = [ alpha: 0.5, sourceDescriptor: { type: 'EMS_FILE', - id: 'world_countries', + id: emsWorldLayerId, tooltipProperties: ['name', 'iso2'], }, visible: true, diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index d238d3077aadc..abc47774b1168 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -12806,8 +12806,6 @@ "xpack.maps.source.pewPewDescription": "ソースとデスティネーションの間の集約データパスです。", "xpack.maps.source.pewPewTitle": "ソースとデスティネーションの接続", "xpack.maps.source.urlLabel": "Url", - "xpack.maps.source.vetorSource.formatErrorMessage": "URL からベクターシェイプを取得できません:{format}", - "xpack.maps.source.vetorSource.requestFailedErrorMessage": "URL からベクターシェイプを取得できません:{fetchUrl}", "xpack.maps.source.wms.attributionLink": "属性テキストにはリンクが必要です", "xpack.maps.source.wms.attributionText": "属性 URL にはテキストが必要です", "xpack.maps.source.wms.getCapabilitiesButtonText": "負荷容量", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 58119a0739812..a7eebf9624f42 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -12974,8 +12974,6 @@ "xpack.maps.source.pewPewDescription": "源和目标之间的聚合数据路径", "xpack.maps.source.pewPewTitle": "源-目标连接", "xpack.maps.source.urlLabel": "URL", - "xpack.maps.source.vetorSource.formatErrorMessage": "无法从以下 URL 获取矢量形状:{format}", - "xpack.maps.source.vetorSource.requestFailedErrorMessage": "无法从以下 URL 获取矢量形状:{fetchUrl}", "xpack.maps.source.wms.attributionLink": "属性文本必须附带链接", "xpack.maps.source.wms.attributionText": "属性 url 必须附带文本", "xpack.maps.source.wms.getCapabilitiesButtonText": "加载功能", From 2abd628f2606076783645a06fc16db126383b603 Mon Sep 17 00:00:00 2001 From: Oliver Gupte Date: Thu, 1 Apr 2021 13:54:05 -0400 Subject: [PATCH 052/106] [APM] Correlations support for progressively loading sections (#95743) * [APM] Correlations support for progressively loading sections (#95059) * fixes type consistency * - Adds progressive section loading for errors tab in correlations - code improvements * Tests for latency correlations and overall distribution APIs * adds API test for error correlations endpoints * renamed 'getOverallErrorDistribution' to 'getOverallErrorTimeseries' * Code improvements * fix whitespace --- .../app/correlations/correlations_table.tsx | 8 +- .../app/correlations/error_correlations.tsx | 73 +++++++-- .../app/correlations/latency_correlations.tsx | 119 ++++++++++----- ...t_correlations_for_failed_transactions.ts} | 97 +++--------- .../errors/get_overall_error_timeseries.ts | 51 +++++++ .../get_latency_distribution.ts | 143 ------------------ .../server/lib/correlations/get_filters.ts | 56 +++++++ ...get_correlations_for_slow_transactions.ts} | 86 ++++------- .../get_duration_for_percentile.ts | 11 +- .../latency/get_latency_distribution.ts | 98 ++++++++++++ .../get_max_latency.ts | 24 +-- .../get_overall_latency_distribution.ts | 107 +++++++++++++ .../lib/helpers/transaction_error_rate.ts | 14 ++ .../plugins/apm/server/routes/correlations.ts | 94 +++++++++++- .../apm/server/routes/create_apm_api.ts | 4 + .../errors_failed_transactions.ts | 82 ++++++++++ .../tests/correlations/errors_overall.ts | 64 ++++++++ .../tests/correlations/latency_overall.ts | 66 ++++++++ .../correlations/latency_slow_transactions.ts | 99 ++++++++++++ .../tests/correlations/slow_transactions.ts | 96 ------------ .../test/apm_api_integration/tests/index.ts | 16 +- 21 files changed, 960 insertions(+), 448 deletions(-) rename x-pack/plugins/apm/server/lib/correlations/{get_correlations_for_failed_transactions/index.ts => errors/get_correlations_for_failed_transactions.ts} (63%) create mode 100644 x-pack/plugins/apm/server/lib/correlations/errors/get_overall_error_timeseries.ts delete mode 100644 x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_latency_distribution.ts create mode 100644 x-pack/plugins/apm/server/lib/correlations/get_filters.ts rename x-pack/plugins/apm/server/lib/correlations/{get_correlations_for_slow_transactions/index.ts => latency/get_correlations_for_slow_transactions.ts} (63%) rename x-pack/plugins/apm/server/lib/correlations/{get_correlations_for_slow_transactions => latency}/get_duration_for_percentile.ts (86%) create mode 100644 x-pack/plugins/apm/server/lib/correlations/latency/get_latency_distribution.ts rename x-pack/plugins/apm/server/lib/correlations/{get_correlations_for_slow_transactions => latency}/get_max_latency.ts (76%) create mode 100644 x-pack/plugins/apm/server/lib/correlations/latency/get_overall_latency_distribution.ts create mode 100644 x-pack/test/apm_api_integration/tests/correlations/errors_failed_transactions.ts create mode 100644 x-pack/test/apm_api_integration/tests/correlations/errors_overall.ts create mode 100644 x-pack/test/apm_api_integration/tests/correlations/latency_overall.ts create mode 100644 x-pack/test/apm_api_integration/tests/correlations/latency_slow_transactions.ts delete mode 100644 x-pack/test/apm_api_integration/tests/correlations/slow_transactions.ts diff --git a/x-pack/plugins/apm/public/components/app/correlations/correlations_table.tsx b/x-pack/plugins/apm/public/components/app/correlations/correlations_table.tsx index 76020d0b48073..75f3cca05c5c5 100644 --- a/x-pack/plugins/apm/public/components/app/correlations/correlations_table.tsx +++ b/x-pack/plugins/apm/public/components/app/correlations/correlations_table.tsx @@ -24,12 +24,10 @@ import { ImpactBar } from '../../shared/ImpactBar'; import { useUiTracker } from '../../../../../observability/public'; type CorrelationsApiResponse = - | APIReturnType<'GET /api/apm/correlations/failed_transactions'> - | APIReturnType<'GET /api/apm/correlations/slow_transactions'>; + | APIReturnType<'GET /api/apm/correlations/errors/failed_transactions'> + | APIReturnType<'GET /api/apm/correlations/latency/slow_transactions'>; -type SignificantTerm = NonNullable< - NonNullable['significantTerms'] ->[0]; +type SignificantTerm = CorrelationsApiResponse['significantTerms'][0]; export type SelectedSignificantTerm = Pick< SignificantTerm, diff --git a/x-pack/plugins/apm/public/components/app/correlations/error_correlations.tsx b/x-pack/plugins/apm/public/components/app/correlations/error_correlations.tsx index c3b5f52dd84b7..7fb7444a52f84 100644 --- a/x-pack/plugins/apm/public/components/app/correlations/error_correlations.tsx +++ b/x-pack/plugins/apm/public/components/app/correlations/error_correlations.tsx @@ -34,8 +34,12 @@ import { useFieldNames } from './use_field_names'; import { useLocalStorage } from '../../../hooks/useLocalStorage'; import { useUiTracker } from '../../../../../observability/public'; +type OverallErrorsApiResponse = NonNullable< + APIReturnType<'GET /api/apm/correlations/errors/overall_timeseries'> +>; + type CorrelationsApiResponse = NonNullable< - APIReturnType<'GET /api/apm/correlations/failed_transactions'> + APIReturnType<'GET /api/apm/correlations/errors/failed_transactions'> >; interface Props { @@ -65,11 +69,41 @@ export function ErrorCorrelations({ onClose }: Props) { ); const hasFieldNames = fieldNames.length > 0; - const { data, status } = useFetcher( + const { data: overallData, status: overallStatus } = useFetcher( + (callApmApi) => { + if (start && end) { + return callApmApi({ + endpoint: 'GET /api/apm/correlations/errors/overall_timeseries', + params: { + query: { + environment, + kuery, + serviceName, + transactionName, + transactionType, + start, + end, + }, + }, + }); + } + }, + [ + environment, + kuery, + serviceName, + start, + end, + transactionName, + transactionType, + ] + ); + + const { data: correlationsData, status: correlationsStatus } = useFetcher( (callApmApi) => { if (start && end && hasFieldNames) { return callApmApi({ - endpoint: 'GET /api/apm/correlations/failed_transactions', + endpoint: 'GET /api/apm/correlations/errors/failed_transactions', params: { query: { environment, @@ -125,8 +159,9 @@ export function ErrorCorrelations({ onClose }: Props) { @@ -136,8 +171,12 @@ export function ErrorCorrelations({ onClose }: Props) { 'xpack.apm.correlations.error.percentageColumnName', { defaultMessage: '% of failed transactions' } )} - significantTerms={hasFieldNames ? data?.significantTerms : []} - status={status} + significantTerms={ + hasFieldNames && correlationsData?.significantTerms + ? correlationsData.significantTerms + : [] + } + status={correlationsStatus} setSelectedSignificantTerm={setSelectedSignificantTerm} onFilter={onClose} /> @@ -151,10 +190,9 @@ export function ErrorCorrelations({ onClose }: Props) { } function getSelectedTimeseries( - data: CorrelationsApiResponse, + significantTerms: CorrelationsApiResponse['significantTerms'], selectedSignificantTerm: SelectedSignificantTerm ) { - const { significantTerms } = data; if (!significantTerms) { return []; } @@ -168,11 +206,13 @@ function getSelectedTimeseries( } function ErrorTimeseriesChart({ - data, + overallData, + correlationsData, selectedSignificantTerm, status, }: { - data?: CorrelationsApiResponse; + overallData?: OverallErrorsApiResponse; + correlationsData?: CorrelationsApiResponse; selectedSignificantTerm: SelectedSignificantTerm | null; status: FETCH_STATUS; }) { @@ -180,7 +220,7 @@ function ErrorTimeseriesChart({ const dateFormatter = timeFormatter('HH:mm:ss'); return ( - + @@ -206,11 +246,11 @@ function ErrorTimeseriesChart({ yScaleType={ScaleType.Linear} xAccessor={'x'} yAccessors={['y']} - data={data?.overall?.timeseries ?? []} + data={overallData?.overall?.timeseries ?? []} curve={CurveType.CURVE_MONOTONE_X} /> - {data && selectedSignificantTerm ? ( + {correlationsData && selectedSignificantTerm ? ( ) : null} diff --git a/x-pack/plugins/apm/public/components/app/correlations/latency_correlations.tsx b/x-pack/plugins/apm/public/components/app/correlations/latency_correlations.tsx index 77571421ed00e..e65bad8088c17 100644 --- a/x-pack/plugins/apm/public/components/app/correlations/latency_correlations.tsx +++ b/x-pack/plugins/apm/public/components/app/correlations/latency_correlations.tsx @@ -32,8 +32,12 @@ import { useFieldNames } from './use_field_names'; import { useLocalStorage } from '../../../hooks/useLocalStorage'; import { useUiTracker } from '../../../../../observability/public'; +type OverallLatencyApiResponse = NonNullable< + APIReturnType<'GET /api/apm/correlations/latency/overall_distribution'> +>; + type CorrelationsApiResponse = NonNullable< - APIReturnType<'GET /api/apm/correlations/slow_transactions'> + APIReturnType<'GET /api/apm/correlations/latency/slow_transactions'> >; interface Props { @@ -71,11 +75,45 @@ export function LatencyCorrelations({ onClose }: Props) { 75 ); - const { data, status } = useFetcher( + const { data: overallData, status: overallStatus } = useFetcher( (callApmApi) => { - if (start && end && hasFieldNames) { + if (start && end) { return callApmApi({ - endpoint: 'GET /api/apm/correlations/slow_transactions', + endpoint: 'GET /api/apm/correlations/latency/overall_distribution', + params: { + query: { + environment, + kuery, + serviceName, + transactionName, + transactionType, + start, + end, + }, + }, + }); + } + }, + [ + environment, + kuery, + serviceName, + start, + end, + transactionName, + transactionType, + ] + ); + + const maxLatency = overallData?.maxLatency; + const distributionInterval = overallData?.distributionInterval; + const fieldNamesCommaSeparated = fieldNames.join(','); + + const { data: correlationsData, status: correlationsStatus } = useFetcher( + (callApmApi) => { + if (start && end && hasFieldNames && maxLatency && distributionInterval) { + return callApmApi({ + endpoint: 'GET /api/apm/correlations/latency/slow_transactions', params: { query: { environment, @@ -86,7 +124,9 @@ export function LatencyCorrelations({ onClose }: Props) { start, end, durationPercentile: durationPercentile.toString(10), - fieldNames: fieldNames.join(','), + fieldNames: fieldNamesCommaSeparated, + maxLatency: maxLatency.toString(10), + distributionInterval: distributionInterval.toString(10), }, }, }); @@ -101,8 +141,10 @@ export function LatencyCorrelations({ onClose }: Props) { transactionName, transactionType, durationPercentile, - fieldNames, + fieldNamesCommaSeparated, hasFieldNames, + maxLatency, + distributionInterval, ] ); @@ -134,8 +176,13 @@ export function LatencyCorrelations({ onClose }: Props) { @@ -147,8 +194,12 @@ export function LatencyCorrelations({ onClose }: Props) { 'xpack.apm.correlations.latency.percentageColumnName', { defaultMessage: '% of slow transactions' } )} - significantTerms={hasFieldNames ? data?.significantTerms : []} - status={status} + significantTerms={ + hasFieldNames && correlationsData + ? correlationsData?.significantTerms + : [] + } + status={correlationsStatus} setSelectedSignificantTerm={setSelectedSignificantTerm} onFilter={onClose} /> @@ -167,25 +218,23 @@ export function LatencyCorrelations({ onClose }: Props) { ); } -function getDistributionYMax(data?: CorrelationsApiResponse) { - if (!data?.overall) { - return 0; +function getAxisMaxes(data?: OverallLatencyApiResponse) { + if (!data?.overallDistribution) { + return { xMax: 0, yMax: 0 }; } - - const yValues = [ - ...data.overall.distribution.map((p) => p.y ?? 0), - ...data.significantTerms.flatMap((term) => - term.distribution.map((p) => p.y ?? 0) - ), - ]; - return Math.max(...yValues); + const { overallDistribution } = data; + const xValues = overallDistribution.map((p) => p.x ?? 0); + const yValues = overallDistribution.map((p) => p.y ?? 0); + return { + xMax: Math.max(...xValues), + yMax: Math.max(...yValues), + }; } function getSelectedDistribution( - data: CorrelationsApiResponse, + significantTerms: CorrelationsApiResponse['significantTerms'], selectedSignificantTerm: SelectedSignificantTerm ) { - const { significantTerms } = data; if (!significantTerms) { return []; } @@ -199,23 +248,22 @@ function getSelectedDistribution( } function LatencyDistributionChart({ - data, + overallData, + correlationsData, selectedSignificantTerm, status, }: { - data?: CorrelationsApiResponse; + overallData?: OverallLatencyApiResponse; + correlationsData?: CorrelationsApiResponse['significantTerms']; selectedSignificantTerm: SelectedSignificantTerm | null; status: FETCH_STATUS; }) { const theme = useTheme(); - const xMax = Math.max( - ...(data?.overall?.distribution.map((p) => p.x ?? 0) ?? []) - ); + const { xMax, yMax } = getAxisMaxes(overallData); const durationFormatter = getDurationFormatter(xMax); - const yMax = getDistributionYMax(data); return ( - + { const start = durationFormatter(obj.value); const end = durationFormatter( - obj.value + data?.distributionInterval + obj.value + overallData?.distributionInterval ); return `${start.value} - ${end.formatted}`; @@ -254,12 +302,12 @@ function LatencyDistributionChart({ xAccessor={'x'} yAccessors={['y']} color={theme.eui.euiColorVis1} - data={data?.overall?.distribution || []} + data={overallData?.overallDistribution || []} minBarHeight={5} tickFormat={(d) => `${roundFloat(d)}%`} /> - {data && selectedSignificantTerm ? ( + {correlationsData && selectedSignificantTerm ? ( `${roundFloat(d)}%`} /> diff --git a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_failed_transactions/index.ts b/x-pack/plugins/apm/server/lib/correlations/errors/get_correlations_for_failed_transactions.ts similarity index 63% rename from x-pack/plugins/apm/server/lib/correlations/get_correlations_for_failed_transactions/index.ts rename to x-pack/plugins/apm/server/lib/correlations/errors/get_correlations_for_failed_transactions.ts index c668f3bb28713..8ee469c9a93c7 100644 --- a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_failed_transactions/index.ts +++ b/x-pack/plugins/apm/server/lib/correlations/errors/get_correlations_for_failed_transactions.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { isEmpty, omit, merge } from 'lodash'; +import { isEmpty, omit } from 'lodash'; import { EventOutcome } from '../../../../common/event_outcome'; import { processSignificantTermAggs, @@ -13,65 +13,25 @@ import { } from '../process_significant_term_aggs'; import { AggregationOptionsByType } from '../../../../../../../typings/elasticsearch'; import { ESFilter } from '../../../../../../../typings/elasticsearch'; -import { - environmentQuery, - rangeQuery, - kqlQuery, -} from '../../../../server/utils/queries'; -import { - EVENT_OUTCOME, - SERVICE_NAME, - TRANSACTION_NAME, - TRANSACTION_TYPE, - PROCESSOR_EVENT, -} from '../../../../common/elasticsearch_fieldnames'; +import { EVENT_OUTCOME } from '../../../../common/elasticsearch_fieldnames'; import { ProcessorEvent } from '../../../../common/processor_event'; import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getBucketSize } from '../../helpers/get_bucket_size'; import { - getOutcomeAggregation, + getTimeseriesAggregation, getTransactionErrorRateTimeSeries, } from '../../helpers/transaction_error_rate'; import { withApmSpan } from '../../../utils/with_apm_span'; +import { CorrelationsOptions, getCorrelationsFilters } from '../get_filters'; -export async function getCorrelationsForFailedTransactions({ - environment, - kuery, - serviceName, - transactionType, - transactionName, - fieldNames, - setup, -}: { - environment?: string; - kuery?: string; - serviceName: string | undefined; - transactionType: string | undefined; - transactionName: string | undefined; +interface Options extends CorrelationsOptions { fieldNames: string[]; - setup: Setup & SetupTimeRange; -}) { +} +export async function getCorrelationsForFailedTransactions(options: Options) { return withApmSpan('get_correlations_for_failed_transactions', async () => { - const { start, end, apmEventClient } = setup; - - const backgroundFilters: ESFilter[] = [ - { term: { [PROCESSOR_EVENT]: ProcessorEvent.transaction } }, - ...rangeQuery(start, end), - ...environmentQuery(environment), - ...kqlQuery(kuery), - ]; - - if (serviceName) { - backgroundFilters.push({ term: { [SERVICE_NAME]: serviceName } }); - } - - if (transactionType) { - backgroundFilters.push({ term: { [TRANSACTION_TYPE]: transactionType } }); - } - - if (transactionName) { - backgroundFilters.push({ term: { [TRANSACTION_NAME]: transactionName } }); - } + const { fieldNames, setup } = options; + const { apmEventClient } = setup; + const filters = getCorrelationsFilters(options); const params = { apm: { events: [ProcessorEvent.transaction] }, @@ -79,7 +39,7 @@ export async function getCorrelationsForFailedTransactions({ body: { size: 0, query: { - bool: { filter: backgroundFilters }, + bool: { filter: filters }, }, aggs: { failed_transactions: { @@ -95,7 +55,7 @@ export async function getCorrelationsForFailedTransactions({ field: fieldName, background_filter: { bool: { - filter: backgroundFilters, + filter: filters, must_not: { term: { [EVENT_OUTCOME]: EventOutcome.failure }, }, @@ -112,7 +72,7 @@ export async function getCorrelationsForFailedTransactions({ const response = await apmEventClient.search(params); if (!response.aggregations) { - return {}; + return { significantTerms: [] }; } const sigTermAggs = omit( @@ -121,17 +81,17 @@ export async function getCorrelationsForFailedTransactions({ ); const topSigTerms = processSignificantTermAggs({ sigTermAggs }); - return getErrorRateTimeSeries({ setup, backgroundFilters, topSigTerms }); + return getErrorRateTimeSeries({ setup, filters, topSigTerms }); }); } export async function getErrorRateTimeSeries({ setup, - backgroundFilters, + filters, topSigTerms, }: { setup: Setup & SetupTimeRange; - backgroundFilters: ESFilter[]; + filters: ESFilter[]; topSigTerms: TopSigTerm[]; }) { return withApmSpan('get_error_rate_timeseries', async () => { @@ -139,20 +99,10 @@ export async function getErrorRateTimeSeries({ const { intervalString } = getBucketSize({ start, end, numBuckets: 15 }); if (isEmpty(topSigTerms)) { - return {}; + return { significantTerms: [] }; } - const timeseriesAgg = { - date_histogram: { - field: '@timestamp', - fixed_interval: intervalString, - min_doc_count: 0, - extended_bounds: { min: start, max: end }, - }, - aggs: { - outcomes: getOutcomeAggregation(), - }, - }; + const timeseriesAgg = getTimeseriesAggregation(start, end, intervalString); const perTermAggs = topSigTerms.reduce( (acc, term, index) => { @@ -175,8 +125,8 @@ export async function getErrorRateTimeSeries({ apm: { events: [ProcessorEvent.transaction] }, body: { size: 0, - query: { bool: { filter: backgroundFilters } }, - aggs: merge({ timeseries: timeseriesAgg }, perTermAggs), + query: { bool: { filter: filters } }, + aggs: perTermAggs, }, }; @@ -184,15 +134,10 @@ export async function getErrorRateTimeSeries({ const { aggregations } = response; if (!aggregations) { - return {}; + return { significantTerms: [] }; } return { - overall: { - timeseries: getTransactionErrorRateTimeSeries( - aggregations.timeseries.buckets - ), - }, significantTerms: topSigTerms.map((topSig, index) => { const agg = aggregations[`term_${index}`]!; diff --git a/x-pack/plugins/apm/server/lib/correlations/errors/get_overall_error_timeseries.ts b/x-pack/plugins/apm/server/lib/correlations/errors/get_overall_error_timeseries.ts new file mode 100644 index 0000000000000..9387e64a51e01 --- /dev/null +++ b/x-pack/plugins/apm/server/lib/correlations/errors/get_overall_error_timeseries.ts @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ProcessorEvent } from '../../../../common/processor_event'; +import { getBucketSize } from '../../helpers/get_bucket_size'; +import { + getTimeseriesAggregation, + getTransactionErrorRateTimeSeries, +} from '../../helpers/transaction_error_rate'; +import { withApmSpan } from '../../../utils/with_apm_span'; +import { CorrelationsOptions, getCorrelationsFilters } from '../get_filters'; + +export async function getOverallErrorTimeseries(options: CorrelationsOptions) { + return withApmSpan('get_error_rate_timeseries', async () => { + const { setup } = options; + const filters = getCorrelationsFilters(options); + const { start, end, apmEventClient } = setup; + const { intervalString } = getBucketSize({ start, end, numBuckets: 15 }); + + const params = { + // TODO: add support for metrics + apm: { events: [ProcessorEvent.transaction] }, + body: { + size: 0, + query: { bool: { filter: filters } }, + aggs: { + timeseries: getTimeseriesAggregation(start, end, intervalString), + }, + }, + }; + + const response = await apmEventClient.search(params); + const { aggregations } = response; + + if (!aggregations) { + return { overall: null }; + } + + return { + overall: { + timeseries: getTransactionErrorRateTimeSeries( + aggregations.timeseries.buckets + ), + }, + }; + }); +} diff --git a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_latency_distribution.ts b/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_latency_distribution.ts deleted file mode 100644 index 88b1cf3a344ed..0000000000000 --- a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_latency_distribution.ts +++ /dev/null @@ -1,143 +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, dropRightWhile } from 'lodash'; -import { AggregationOptionsByType } from '../../../../../../../typings/elasticsearch'; -import { ESFilter } from '../../../../../../../typings/elasticsearch'; -import { TRANSACTION_DURATION } from '../../../../common/elasticsearch_fieldnames'; -import { ProcessorEvent } from '../../../../common/processor_event'; -import { Setup, SetupTimeRange } from '../../helpers/setup_request'; -import { TopSigTerm } from '../process_significant_term_aggs'; -import { getMaxLatency } from './get_max_latency'; -import { withApmSpan } from '../../../utils/with_apm_span'; - -export async function getLatencyDistribution({ - setup, - backgroundFilters, - topSigTerms, -}: { - setup: Setup & SetupTimeRange; - backgroundFilters: ESFilter[]; - topSigTerms: TopSigTerm[]; -}) { - return withApmSpan('get_latency_distribution', async () => { - const { apmEventClient } = setup; - - if (isEmpty(topSigTerms)) { - return {}; - } - - const maxLatency = await getMaxLatency({ - setup, - backgroundFilters, - topSigTerms, - }); - - if (!maxLatency) { - return {}; - } - - const intervalBuckets = 15; - const distributionInterval = Math.floor(maxLatency / intervalBuckets); - - const distributionAgg = { - // filter out outliers not included in the significant term docs - filter: { range: { [TRANSACTION_DURATION]: { lte: maxLatency } } }, - aggs: { - dist_filtered_by_latency: { - histogram: { - // TODO: add support for metrics - field: TRANSACTION_DURATION, - interval: distributionInterval, - min_doc_count: 0, - extended_bounds: { - min: 0, - max: maxLatency, - }, - }, - }, - }, - }; - - const perTermAggs = topSigTerms.reduce( - (acc, term, index) => { - acc[`term_${index}`] = { - filter: { term: { [term.fieldName]: term.fieldValue } }, - aggs: { - distribution: distributionAgg, - }, - }; - return acc; - }, - {} as Record< - string, - { - filter: AggregationOptionsByType['filter']; - aggs: { - distribution: typeof distributionAgg; - }; - } - > - ); - - const params = { - // TODO: add support for metrics - apm: { events: [ProcessorEvent.transaction] }, - body: { - size: 0, - query: { bool: { filter: backgroundFilters } }, - aggs: { - // overall aggs - distribution: distributionAgg, - - // per term aggs - ...perTermAggs, - }, - }, - }; - - const response = await withApmSpan('get_terms_distribution', () => - apmEventClient.search(params) - ); - type Agg = NonNullable; - - if (!response.aggregations) { - return {}; - } - - function formatDistribution(distribution: Agg['distribution']) { - const total = distribution.doc_count; - - // remove trailing buckets that are empty and out of bounds of the desired number of buckets - const buckets = dropRightWhile( - distribution.dist_filtered_by_latency.buckets, - (bucket, index) => bucket.doc_count === 0 && index > intervalBuckets - 1 - ); - - return buckets.map((bucket) => ({ - x: bucket.key, - y: (bucket.doc_count / total) * 100, - })); - } - - return { - distributionInterval, - overall: { - distribution: formatDistribution(response.aggregations.distribution), - }, - significantTerms: topSigTerms.map((topSig, index) => { - // @ts-expect-error - const agg = response.aggregations[`term_${index}`] as Agg; - - return { - ...topSig, - distribution: formatDistribution(agg.distribution), - }; - }), - }; - }); -} diff --git a/x-pack/plugins/apm/server/lib/correlations/get_filters.ts b/x-pack/plugins/apm/server/lib/correlations/get_filters.ts new file mode 100644 index 0000000000000..92fc9c5d9622b --- /dev/null +++ b/x-pack/plugins/apm/server/lib/correlations/get_filters.ts @@ -0,0 +1,56 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Setup, SetupTimeRange } from '../helpers/setup_request'; +import { ESFilter } from '../../../../../../typings/elasticsearch'; +import { environmentQuery, rangeQuery, kqlQuery } from '../../utils/queries'; +import { + SERVICE_NAME, + TRANSACTION_NAME, + TRANSACTION_TYPE, + PROCESSOR_EVENT, +} from '../../../common/elasticsearch_fieldnames'; +import { ProcessorEvent } from '../../../common/processor_event'; + +export interface CorrelationsOptions { + setup: Setup & SetupTimeRange; + environment?: string; + kuery?: string; + serviceName: string | undefined; + transactionType: string | undefined; + transactionName: string | undefined; +} + +export function getCorrelationsFilters({ + setup, + environment, + kuery, + serviceName, + transactionType, + transactionName, +}: CorrelationsOptions) { + const { start, end } = setup; + const correlationsFilters: ESFilter[] = [ + { term: { [PROCESSOR_EVENT]: ProcessorEvent.transaction } }, + ...rangeQuery(start, end), + ...environmentQuery(environment), + ...kqlQuery(kuery), + ]; + + if (serviceName) { + correlationsFilters.push({ term: { [SERVICE_NAME]: serviceName } }); + } + + if (transactionType) { + correlationsFilters.push({ term: { [TRANSACTION_TYPE]: transactionType } }); + } + + if (transactionName) { + correlationsFilters.push({ term: { [TRANSACTION_NAME]: transactionName } }); + } + return correlationsFilters; +} diff --git a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/index.ts b/x-pack/plugins/apm/server/lib/correlations/latency/get_correlations_for_slow_transactions.ts similarity index 63% rename from x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/index.ts rename to x-pack/plugins/apm/server/lib/correlations/latency/get_correlations_for_slow_transactions.ts index 9472d385a26c6..0f93d1411a001 100644 --- a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/index.ts +++ b/x-pack/plugins/apm/server/lib/correlations/latency/get_correlations_for_slow_transactions.ts @@ -6,75 +6,39 @@ */ import { AggregationOptionsByType } from '../../../../../../../typings/elasticsearch'; -import { ESFilter } from '../../../../../../../typings/elasticsearch'; -import { - environmentQuery, - rangeQuery, - kqlQuery, -} from '../../../../server/utils/queries'; -import { - SERVICE_NAME, - TRANSACTION_DURATION, - TRANSACTION_NAME, - TRANSACTION_TYPE, - PROCESSOR_EVENT, -} from '../../../../common/elasticsearch_fieldnames'; +import { TRANSACTION_DURATION } from '../../../../common/elasticsearch_fieldnames'; import { ProcessorEvent } from '../../../../common/processor_event'; -import { Setup, SetupTimeRange } from '../../helpers/setup_request'; import { getDurationForPercentile } from './get_duration_for_percentile'; import { processSignificantTermAggs } from '../process_significant_term_aggs'; import { getLatencyDistribution } from './get_latency_distribution'; import { withApmSpan } from '../../../utils/with_apm_span'; +import { CorrelationsOptions, getCorrelationsFilters } from '../get_filters'; -export async function getCorrelationsForSlowTransactions({ - environment, - kuery, - serviceName, - transactionType, - transactionName, - durationPercentile, - fieldNames, - setup, -}: { - environment?: string; - kuery?: string; - serviceName: string | undefined; - transactionType: string | undefined; - transactionName: string | undefined; +interface Options extends CorrelationsOptions { durationPercentile: number; fieldNames: string[]; - setup: Setup & SetupTimeRange; -}) { + maxLatency: number; + distributionInterval: number; +} +export async function getCorrelationsForSlowTransactions(options: Options) { return withApmSpan('get_correlations_for_slow_transactions', async () => { - const { start, end, apmEventClient } = setup; - - const backgroundFilters: ESFilter[] = [ - { term: { [PROCESSOR_EVENT]: ProcessorEvent.transaction } }, - ...rangeQuery(start, end), - ...environmentQuery(environment), - ...kqlQuery(kuery), - ]; - - if (serviceName) { - backgroundFilters.push({ term: { [SERVICE_NAME]: serviceName } }); - } - - if (transactionType) { - backgroundFilters.push({ term: { [TRANSACTION_TYPE]: transactionType } }); - } - - if (transactionName) { - backgroundFilters.push({ term: { [TRANSACTION_NAME]: transactionName } }); - } - + const { + durationPercentile, + fieldNames, + setup, + maxLatency, + distributionInterval, + } = options; + const { apmEventClient } = setup; + const filters = getCorrelationsFilters(options); const durationForPercentile = await getDurationForPercentile({ durationPercentile, - backgroundFilters, + filters, setup, }); if (!durationForPercentile) { - return {}; + return { significantTerms: [] }; } const response = await withApmSpan('get_significant_terms', () => { @@ -85,7 +49,7 @@ export async function getCorrelationsForSlowTransactions({ query: { bool: { // foreground filters - filter: backgroundFilters, + filter: filters, must: { function_score: { query: { @@ -112,7 +76,7 @@ export async function getCorrelationsForSlowTransactions({ background_filter: { bool: { filter: [ - ...backgroundFilters, + ...filters, { range: { [TRANSACTION_DURATION]: { @@ -132,17 +96,21 @@ export async function getCorrelationsForSlowTransactions({ return apmEventClient.search(params); }); if (!response.aggregations) { - return {}; + return { significantTerms: [] }; } const topSigTerms = processSignificantTermAggs({ sigTermAggs: response.aggregations, }); - return getLatencyDistribution({ + const significantTerms = await getLatencyDistribution({ setup, - backgroundFilters, + filters, topSigTerms, + maxLatency, + distributionInterval, }); + + return { significantTerms }; }); } diff --git a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_duration_for_percentile.ts b/x-pack/plugins/apm/server/lib/correlations/latency/get_duration_for_percentile.ts similarity index 86% rename from x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_duration_for_percentile.ts rename to x-pack/plugins/apm/server/lib/correlations/latency/get_duration_for_percentile.ts index 02141f5f9e76f..43c261743861d 100644 --- a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_duration_for_percentile.ts +++ b/x-pack/plugins/apm/server/lib/correlations/latency/get_duration_for_percentile.ts @@ -13,11 +13,11 @@ import { Setup, SetupTimeRange } from '../../helpers/setup_request'; export async function getDurationForPercentile({ durationPercentile, - backgroundFilters, + filters, setup, }: { durationPercentile: number; - backgroundFilters: ESFilter[]; + filters: ESFilter[]; setup: Setup & SetupTimeRange; }) { return withApmSpan('get_duration_for_percentiles', async () => { @@ -29,7 +29,7 @@ export async function getDurationForPercentile({ body: { size: 0, query: { - bool: { filter: backgroundFilters }, + bool: { filter: filters }, }, aggs: { percentile: { @@ -42,6 +42,9 @@ export async function getDurationForPercentile({ }, }); - return Object.values(res.aggregations?.percentile.values || {})[0]; + const duration = Object.values( + res.aggregations?.percentile.values || {} + )[0]; + return duration || 0; }); } diff --git a/x-pack/plugins/apm/server/lib/correlations/latency/get_latency_distribution.ts b/x-pack/plugins/apm/server/lib/correlations/latency/get_latency_distribution.ts new file mode 100644 index 0000000000000..6d42b26b22e42 --- /dev/null +++ b/x-pack/plugins/apm/server/lib/correlations/latency/get_latency_distribution.ts @@ -0,0 +1,98 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { AggregationOptionsByType } from '../../../../../../../typings/elasticsearch'; +import { ESFilter } from '../../../../../../../typings/elasticsearch'; +import { ProcessorEvent } from '../../../../common/processor_event'; +import { Setup, SetupTimeRange } from '../../helpers/setup_request'; +import { TopSigTerm } from '../process_significant_term_aggs'; +import { withApmSpan } from '../../../utils/with_apm_span'; +import { + getDistributionAggregation, + trimBuckets, +} from './get_overall_latency_distribution'; + +export async function getLatencyDistribution({ + setup, + filters, + topSigTerms, + maxLatency, + distributionInterval, +}: { + setup: Setup & SetupTimeRange; + filters: ESFilter[]; + topSigTerms: TopSigTerm[]; + maxLatency: number; + distributionInterval: number; +}) { + return withApmSpan('get_latency_distribution', async () => { + const { apmEventClient } = setup; + + const distributionAgg = getDistributionAggregation( + maxLatency, + distributionInterval + ); + + const perTermAggs = topSigTerms.reduce( + (acc, term, index) => { + acc[`term_${index}`] = { + filter: { term: { [term.fieldName]: term.fieldValue } }, + aggs: { + distribution: distributionAgg, + }, + }; + return acc; + }, + {} as Record< + string, + { + filter: AggregationOptionsByType['filter']; + aggs: { + distribution: typeof distributionAgg; + }; + } + > + ); + + const params = { + // TODO: add support for metrics + apm: { events: [ProcessorEvent.transaction] }, + body: { + size: 0, + query: { bool: { filter: filters } }, + aggs: perTermAggs, + }, + }; + + const response = await withApmSpan('get_terms_distribution', () => + apmEventClient.search(params) + ); + type Agg = NonNullable; + + if (!response.aggregations) { + return []; + } + + return topSigTerms.map((topSig, index) => { + // ignore the typescript error since existence of response.aggregations is already checked: + // @ts-expect-error + const agg = response.aggregations[`term_${index}`] as Agg[string]; + const total = agg.distribution.doc_count; + const buckets = trimBuckets( + agg.distribution.dist_filtered_by_latency.buckets + ); + + return { + ...topSig, + distribution: buckets.map((bucket) => ({ + x: bucket.key, + y: (bucket.doc_count / total) * 100, + })), + }; + }); + }); +} diff --git a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_max_latency.ts b/x-pack/plugins/apm/server/lib/correlations/latency/get_max_latency.ts similarity index 76% rename from x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_max_latency.ts rename to x-pack/plugins/apm/server/lib/correlations/latency/get_max_latency.ts index 5f12c86a9c70c..8b415bf0d80a7 100644 --- a/x-pack/plugins/apm/server/lib/correlations/get_correlations_for_slow_transactions/get_max_latency.ts +++ b/x-pack/plugins/apm/server/lib/correlations/latency/get_max_latency.ts @@ -14,12 +14,12 @@ import { TopSigTerm } from '../process_significant_term_aggs'; export async function getMaxLatency({ setup, - backgroundFilters, - topSigTerms, + filters, + topSigTerms = [], }: { setup: Setup & SetupTimeRange; - backgroundFilters: ESFilter[]; - topSigTerms: TopSigTerm[]; + filters: ESFilter[]; + topSigTerms?: TopSigTerm[]; }) { return withApmSpan('get_max_latency', async () => { const { apmEventClient } = setup; @@ -31,13 +31,17 @@ export async function getMaxLatency({ size: 0, query: { bool: { - filter: backgroundFilters, + filter: filters, - // only include docs containing the significant terms - should: topSigTerms.map((term) => ({ - term: { [term.fieldName]: term.fieldValue }, - })), - minimum_should_match: 1, + ...(topSigTerms.length + ? { + // only include docs containing the significant terms + should: topSigTerms.map((term) => ({ + term: { [term.fieldName]: term.fieldValue }, + })), + minimum_should_match: 1, + } + : null), }, }, aggs: { diff --git a/x-pack/plugins/apm/server/lib/correlations/latency/get_overall_latency_distribution.ts b/x-pack/plugins/apm/server/lib/correlations/latency/get_overall_latency_distribution.ts new file mode 100644 index 0000000000000..c5d4def51ea54 --- /dev/null +++ b/x-pack/plugins/apm/server/lib/correlations/latency/get_overall_latency_distribution.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 { dropRightWhile } from 'lodash'; +import { TRANSACTION_DURATION } from '../../../../common/elasticsearch_fieldnames'; +import { ProcessorEvent } from '../../../../common/processor_event'; +import { getMaxLatency } from './get_max_latency'; +import { withApmSpan } from '../../../utils/with_apm_span'; +import { CorrelationsOptions, getCorrelationsFilters } from '../get_filters'; + +export const INTERVAL_BUCKETS = 15; + +export function getDistributionAggregation( + maxLatency: number, + distributionInterval: number +) { + return { + filter: { range: { [TRANSACTION_DURATION]: { lte: maxLatency } } }, + aggs: { + dist_filtered_by_latency: { + histogram: { + // TODO: add support for metrics + field: TRANSACTION_DURATION, + interval: distributionInterval, + min_doc_count: 0, + extended_bounds: { + min: 0, + max: maxLatency, + }, + }, + }, + }, + }; +} + +export async function getOverallLatencyDistribution( + options: CorrelationsOptions +) { + const { setup } = options; + const filters = getCorrelationsFilters(options); + + return withApmSpan('get_overall_latency_distribution', async () => { + const { apmEventClient } = setup; + const maxLatency = await getMaxLatency({ setup, filters }); + if (!maxLatency) { + return { + maxLatency: null, + distributionInterval: null, + overallDistribution: null, + }; + } + const distributionInterval = Math.floor(maxLatency / INTERVAL_BUCKETS); + + const params = { + // TODO: add support for metrics + apm: { events: [ProcessorEvent.transaction] }, + body: { + size: 0, + query: { bool: { filter: filters } }, + aggs: { + // overall distribution agg + distribution: getDistributionAggregation( + maxLatency, + distributionInterval + ), + }, + }, + }; + + const response = await withApmSpan('get_terms_distribution', () => + apmEventClient.search(params) + ); + + if (!response.aggregations) { + return { + maxLatency, + distributionInterval, + overallDistribution: null, + }; + } + + const { distribution } = response.aggregations; + const total = distribution.doc_count; + const buckets = trimBuckets(distribution.dist_filtered_by_latency.buckets); + + return { + maxLatency, + distributionInterval, + overallDistribution: buckets.map((bucket) => ({ + x: bucket.key, + y: (bucket.doc_count / total) * 100, + })), + }; + }); +} + +// remove trailing buckets that are empty and out of bounds of the desired number of buckets +export function trimBuckets(buckets: T[]) { + return dropRightWhile( + buckets, + (bucket, index) => bucket.doc_count === 0 && index > INTERVAL_BUCKETS - 1 + ); +} diff --git a/x-pack/plugins/apm/server/lib/helpers/transaction_error_rate.ts b/x-pack/plugins/apm/server/lib/helpers/transaction_error_rate.ts index 11d65b7697e9a..b60a2a071e6dc 100644 --- a/x-pack/plugins/apm/server/lib/helpers/transaction_error_rate.ts +++ b/x-pack/plugins/apm/server/lib/helpers/transaction_error_rate.ts @@ -21,6 +21,20 @@ export const getOutcomeAggregation = () => ({ type OutcomeAggregation = ReturnType; +export const getTimeseriesAggregation = ( + start: number, + end: number, + intervalString: string +) => ({ + date_histogram: { + field: '@timestamp', + fixed_interval: intervalString, + min_doc_count: 0, + extended_bounds: { min: start, max: end }, + }, + aggs: { outcomes: getOutcomeAggregation() }, +}); + export function calculateTransactionErrorPercentage( outcomeResponse: AggregationResultOf ) { diff --git a/x-pack/plugins/apm/server/routes/correlations.ts b/x-pack/plugins/apm/server/routes/correlations.ts index 48305d1a9df07..c7c69e0774822 100644 --- a/x-pack/plugins/apm/server/routes/correlations.ts +++ b/x-pack/plugins/apm/server/routes/correlations.ts @@ -9,8 +9,10 @@ import Boom from '@hapi/boom'; import { i18n } from '@kbn/i18n'; import * as t from 'io-ts'; import { isActivePlatinumLicense } from '../../common/license_check'; -import { getCorrelationsForFailedTransactions } from '../lib/correlations/get_correlations_for_failed_transactions'; -import { getCorrelationsForSlowTransactions } from '../lib/correlations/get_correlations_for_slow_transactions'; +import { getCorrelationsForFailedTransactions } from '../lib/correlations/errors/get_correlations_for_failed_transactions'; +import { getOverallErrorTimeseries } from '../lib/correlations/errors/get_overall_error_timeseries'; +import { getCorrelationsForSlowTransactions } from '../lib/correlations/latency/get_correlations_for_slow_transactions'; +import { getOverallLatencyDistribution } from '../lib/correlations/latency/get_overall_latency_distribution'; import { setupRequest } from '../lib/helpers/setup_request'; import { createRoute } from './create_route'; import { environmentRt, kueryRt, rangeRt } from './default_api_types'; @@ -23,8 +25,47 @@ const INVALID_LICENSE = i18n.translate( } ); +export const correlationsLatencyDistributionRoute = createRoute({ + endpoint: 'GET /api/apm/correlations/latency/overall_distribution', + params: t.type({ + query: t.intersection([ + t.partial({ + serviceName: t.string, + transactionName: t.string, + transactionType: t.string, + }), + environmentRt, + kueryRt, + rangeRt, + ]), + }), + options: { tags: ['access:apm'] }, + handler: async ({ context, request }) => { + if (!isActivePlatinumLicense(context.licensing.license)) { + throw Boom.forbidden(INVALID_LICENSE); + } + const setup = await setupRequest(context, request); + const { + environment, + kuery, + serviceName, + transactionType, + transactionName, + } = context.params.query; + + return getOverallLatencyDistribution({ + environment, + kuery, + serviceName, + transactionType, + transactionName, + setup, + }); + }, +}); + export const correlationsForSlowTransactionsRoute = createRoute({ - endpoint: 'GET /api/apm/correlations/slow_transactions', + endpoint: 'GET /api/apm/correlations/latency/slow_transactions', params: t.type({ query: t.intersection([ t.partial({ @@ -35,6 +76,8 @@ export const correlationsForSlowTransactionsRoute = createRoute({ t.type({ durationPercentile: t.string, fieldNames: t.string, + maxLatency: t.string, + distributionInterval: t.string, }), environmentRt, kueryRt, @@ -55,6 +98,8 @@ export const correlationsForSlowTransactionsRoute = createRoute({ transactionName, durationPercentile, fieldNames, + maxLatency, + distributionInterval, } = context.params.query; return getCorrelationsForSlowTransactions({ @@ -66,12 +111,53 @@ export const correlationsForSlowTransactionsRoute = createRoute({ durationPercentile: parseInt(durationPercentile, 10), fieldNames: fieldNames.split(','), setup, + maxLatency: parseInt(maxLatency, 10), + distributionInterval: parseInt(distributionInterval, 10), + }); + }, +}); + +export const correlationsErrorDistributionRoute = createRoute({ + endpoint: 'GET /api/apm/correlations/errors/overall_timeseries', + params: t.type({ + query: t.intersection([ + t.partial({ + serviceName: t.string, + transactionName: t.string, + transactionType: t.string, + }), + environmentRt, + kueryRt, + rangeRt, + ]), + }), + options: { tags: ['access:apm'] }, + handler: async ({ context, request }) => { + if (!isActivePlatinumLicense(context.licensing.license)) { + throw Boom.forbidden(INVALID_LICENSE); + } + const setup = await setupRequest(context, request); + const { + environment, + kuery, + serviceName, + transactionType, + transactionName, + } = context.params.query; + + return getOverallErrorTimeseries({ + environment, + kuery, + serviceName, + transactionType, + transactionName, + setup, }); }, }); export const correlationsForFailedTransactionsRoute = createRoute({ - endpoint: 'GET /api/apm/correlations/failed_transactions', + endpoint: 'GET /api/apm/correlations/errors/failed_transactions', params: t.type({ query: t.intersection([ t.partial({ diff --git a/x-pack/plugins/apm/server/routes/create_apm_api.ts b/x-pack/plugins/apm/server/routes/create_apm_api.ts index 2b5fb0b516ab5..5b74aa4347f14 100644 --- a/x-pack/plugins/apm/server/routes/create_apm_api.ts +++ b/x-pack/plugins/apm/server/routes/create_apm_api.ts @@ -58,7 +58,9 @@ import { rootTransactionByTraceIdRoute, } from './traces'; import { + correlationsLatencyDistributionRoute, correlationsForSlowTransactionsRoute, + correlationsErrorDistributionRoute, correlationsForFailedTransactionsRoute, } from './correlations'; import { @@ -152,7 +154,9 @@ const createApmApi = () => { .add(createOrUpdateAgentConfigurationRoute) // Correlations + .add(correlationsLatencyDistributionRoute) .add(correlationsForSlowTransactionsRoute) + .add(correlationsErrorDistributionRoute) .add(correlationsForFailedTransactionsRoute) // APM indices diff --git a/x-pack/test/apm_api_integration/tests/correlations/errors_failed_transactions.ts b/x-pack/test/apm_api_integration/tests/correlations/errors_failed_transactions.ts new file mode 100644 index 0000000000000..80c2b98266248 --- /dev/null +++ b/x-pack/test/apm_api_integration/tests/correlations/errors_failed_transactions.ts @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { format } from 'url'; +import { APIReturnType } from '../../../../plugins/apm/public/services/rest/createCallApmApi'; +import archives_metadata from '../../common/fixtures/es_archiver/archives_metadata'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { registry } from '../../common/registry'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const archiveName = 'apm_8.0.0'; + const range = archives_metadata[archiveName]; + + const url = format({ + pathname: `/api/apm/correlations/errors/failed_transactions`, + query: { + start: range.start, + end: range.end, + fieldNames: 'user_agent.name,user_agent.os.name,url.original', + }, + }); + registry.when( + 'correlations errors failed transactions without data', + { config: 'trial', archives: [] }, + () => { + it('handles the empty state', async () => { + const response = await supertest.get(url); + + expect(response.status).to.be(200); + expect(response.body.response).to.be(undefined); + }); + } + ); + + registry.when( + 'correlations errors failed transactions with data and default args', + { config: 'trial', archives: ['apm_8.0.0'] }, + () => { + type ResponseBody = APIReturnType<'GET /api/apm/correlations/errors/failed_transactions'>; + let response: { + status: number; + body: NonNullable; + }; + + before(async () => { + response = await supertest.get(url); + }); + + it('returns successfully', () => { + expect(response.status).to.eql(200); + }); + + it('returns significant terms', () => { + const { significantTerms } = response.body; + expect(significantTerms).to.have.length(2); + const sortedFieldNames = significantTerms.map(({ fieldName }) => fieldName).sort(); + expectSnapshot(sortedFieldNames).toMatchInline(` + Array [ + "user_agent.name", + "user_agent.name", + ] + `); + }); + + it('returns a distribution per term', () => { + const { significantTerms } = response.body; + expectSnapshot(significantTerms.map((term) => term.timeseries.length)).toMatchInline(` + Array [ + 31, + 31, + ] + `); + }); + } + ); +} diff --git a/x-pack/test/apm_api_integration/tests/correlations/errors_overall.ts b/x-pack/test/apm_api_integration/tests/correlations/errors_overall.ts new file mode 100644 index 0000000000000..206da2968b4c1 --- /dev/null +++ b/x-pack/test/apm_api_integration/tests/correlations/errors_overall.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { format } from 'url'; +import { APIReturnType } from '../../../../plugins/apm/public/services/rest/createCallApmApi'; +import archives_metadata from '../../common/fixtures/es_archiver/archives_metadata'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { registry } from '../../common/registry'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const archiveName = 'apm_8.0.0'; + const range = archives_metadata[archiveName]; + + const url = format({ + pathname: `/api/apm/correlations/errors/overall_timeseries`, + query: { + start: range.start, + end: range.end, + }, + }); + + registry.when( + 'correlations errors overall without data', + { config: 'trial', archives: [] }, + () => { + it('handles the empty state', async () => { + const response = await supertest.get(url); + + expect(response.status).to.be(200); + expect(response.body.response).to.be(undefined); + }); + } + ); + + registry.when( + 'correlations errors overall with data and default args', + { config: 'trial', archives: ['apm_8.0.0'] }, + () => { + type ResponseBody = APIReturnType<'GET /api/apm/correlations/errors/overall_timeseries'>; + let response: { + status: number; + body: NonNullable; + }; + + before(async () => { + response = await supertest.get(url); + }); + + it('returns successfully', () => { + expect(response.status).to.eql(200); + }); + + it('returns overall distribution', () => { + expectSnapshot(response.body?.overall?.timeseries.length).toMatchInline(`31`); + }); + } + ); +} diff --git a/x-pack/test/apm_api_integration/tests/correlations/latency_overall.ts b/x-pack/test/apm_api_integration/tests/correlations/latency_overall.ts new file mode 100644 index 0000000000000..0d79333faa9ef --- /dev/null +++ b/x-pack/test/apm_api_integration/tests/correlations/latency_overall.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 expect from '@kbn/expect'; +import { format } from 'url'; +import { APIReturnType } from '../../../../plugins/apm/public/services/rest/createCallApmApi'; +import archives_metadata from '../../common/fixtures/es_archiver/archives_metadata'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { registry } from '../../common/registry'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const archiveName = 'apm_8.0.0'; + const range = archives_metadata[archiveName]; + + const url = format({ + pathname: `/api/apm/correlations/latency/overall_distribution`, + query: { + start: range.start, + end: range.end, + }, + }); + + registry.when( + 'correlations latency overall without data', + { config: 'trial', archives: [] }, + () => { + it('handles the empty state', async () => { + const response = await supertest.get(url); + + expect(response.status).to.be(200); + expect(response.body.response).to.be(undefined); + }); + } + ); + + registry.when( + 'correlations latency overall with data and default args', + { config: 'trial', archives: ['apm_8.0.0'] }, + () => { + type ResponseBody = APIReturnType<'GET /api/apm/correlations/latency/overall_distribution'>; + let response: { + status: number; + body: NonNullable; + }; + + before(async () => { + response = await supertest.get(url); + }); + + it('returns successfully', () => { + expect(response.status).to.eql(200); + }); + + it('returns overall distribution', () => { + expectSnapshot(response.body?.distributionInterval).toMatchInline(`238776`); + expectSnapshot(response.body?.maxLatency).toMatchInline(`3581640.00000003`); + expectSnapshot(response.body?.overallDistribution?.length).toMatchInline(`15`); + }); + } + ); +} diff --git a/x-pack/test/apm_api_integration/tests/correlations/latency_slow_transactions.ts b/x-pack/test/apm_api_integration/tests/correlations/latency_slow_transactions.ts new file mode 100644 index 0000000000000..d32beee0f31d5 --- /dev/null +++ b/x-pack/test/apm_api_integration/tests/correlations/latency_slow_transactions.ts @@ -0,0 +1,99 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { format } from 'url'; +import { APIReturnType } from '../../../../plugins/apm/public/services/rest/createCallApmApi'; +import archives_metadata from '../../common/fixtures/es_archiver/archives_metadata'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { registry } from '../../common/registry'; + +export default function ApiTest({ getService }: FtrProviderContext) { + const supertest = getService('supertest'); + const archiveName = 'apm_8.0.0'; + const range = archives_metadata[archiveName]; + + const url = format({ + pathname: `/api/apm/correlations/latency/slow_transactions`, + query: { + start: range.start, + end: range.end, + durationPercentile: 95, + fieldNames: 'user_agent.name,user_agent.os.name,url.original', + maxLatency: 3581640.00000003, + distributionInterval: 238776, + }, + }); + registry.when( + 'correlations latency slow transactions without data', + { config: 'trial', archives: [] }, + () => { + it('handles the empty state', async () => { + const response = await supertest.get(url); + + expect(response.status).to.be(200); + expect(response.body.response).to.be(undefined); + }); + } + ); + + registry.when( + 'correlations latency slow transactions with data and default args', + { config: 'trial', archives: ['apm_8.0.0'] }, + () => { + type ResponseBody = APIReturnType<'GET /api/apm/correlations/latency/slow_transactions'>; + let response: { + status: number; + body: NonNullable; + }; + + before(async () => { + response = await supertest.get(url); + }); + + it('returns successfully', () => { + expect(response.status).to.eql(200); + }); + + it('returns significant terms', () => { + const { significantTerms } = response.body; + expect(significantTerms).to.have.length(9); + const sortedFieldNames = significantTerms.map(({ fieldName }) => fieldName).sort(); + expectSnapshot(sortedFieldNames).toMatchInline(` + Array [ + "url.original", + "url.original", + "url.original", + "url.original", + "user_agent.name", + "user_agent.name", + "user_agent.name", + "user_agent.os.name", + "user_agent.os.name", + ] + `); + }); + + it('returns a distribution per term', () => { + const { significantTerms } = response.body; + expectSnapshot(significantTerms.map((term) => term.distribution.length)).toMatchInline(` + Array [ + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + 15, + ] + `); + }); + } + ); +} diff --git a/x-pack/test/apm_api_integration/tests/correlations/slow_transactions.ts b/x-pack/test/apm_api_integration/tests/correlations/slow_transactions.ts deleted file mode 100644 index c9686a8a9d5b0..0000000000000 --- a/x-pack/test/apm_api_integration/tests/correlations/slow_transactions.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import expect from '@kbn/expect'; -import { format } from 'url'; -import { APIReturnType } from '../../../../plugins/apm/public/services/rest/createCallApmApi'; -import archives_metadata from '../../common/fixtures/es_archiver/archives_metadata'; -import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { registry } from '../../common/registry'; - -export default function ApiTest({ getService }: FtrProviderContext) { - const supertest = getService('supertest'); - const archiveName = 'apm_8.0.0'; - const range = archives_metadata[archiveName]; - - const url = format({ - pathname: `/api/apm/correlations/slow_transactions`, - query: { - start: range.start, - end: range.end, - durationPercentile: 95, - fieldNames: 'user_agent.name,user_agent.os.name,url.original', - }, - }); - - registry.when('without data', { config: 'trial', archives: [] }, () => { - it('handles the empty state', async () => { - const response = await supertest.get(url); - - expect(response.status).to.be(200); - expect(response.body.response).to.be(undefined); - }); - }); - - registry.when('with data and default args', { config: 'trial', archives: ['apm_8.0.0'] }, () => { - type ResponseBody = APIReturnType<'GET /api/apm/correlations/slow_transactions'>; - let response: { - status: number; - body: NonNullable; - }; - - before(async () => { - response = await supertest.get(url); - }); - - it('returns successfully', () => { - expect(response.status).to.eql(200); - }); - - it('returns significant terms', () => { - const significantTerms = response.body?.significantTerms as NonNullable< - typeof response.body.significantTerms - >; - expect(significantTerms).to.have.length(9); - const sortedFieldNames = significantTerms.map(({ fieldName }) => fieldName).sort(); - expectSnapshot(sortedFieldNames).toMatchInline(` - Array [ - "url.original", - "url.original", - "url.original", - "url.original", - "user_agent.name", - "user_agent.name", - "user_agent.name", - "user_agent.os.name", - "user_agent.os.name", - ] - `); - }); - - it('returns a distribution per term', () => { - expectSnapshot(response.body?.significantTerms?.map((term) => term.distribution.length)) - .toMatchInline(` - Array [ - 15, - 15, - 15, - 15, - 15, - 15, - 15, - 15, - 15, - ] - `); - }); - - it('returns overall distribution', () => { - expectSnapshot(response.body?.overall?.distribution.length).toMatchInline(`15`); - }); - }); -} diff --git a/x-pack/test/apm_api_integration/tests/index.ts b/x-pack/test/apm_api_integration/tests/index.ts index 9f0f1b15c0580..7c69d5b996cea 100644 --- a/x-pack/test/apm_api_integration/tests/index.ts +++ b/x-pack/test/apm_api_integration/tests/index.ts @@ -24,8 +24,20 @@ export default function apmApiIntegrationTests(providerContext: FtrProviderConte loadTestFile(require.resolve('./alerts/chart_preview')); }); - describe('correlations/slow_transactions', function () { - loadTestFile(require.resolve('./correlations/slow_transactions')); + describe('correlations/latency_slow_transactions', function () { + loadTestFile(require.resolve('./correlations/latency_slow_transactions')); + }); + + describe('correlations/latency_overall', function () { + loadTestFile(require.resolve('./correlations/latency_overall')); + }); + + describe('correlations/errors_overall', function () { + loadTestFile(require.resolve('./correlations/errors_overall')); + }); + + describe('correlations/errors_failed_transactions', function () { + loadTestFile(require.resolve('./correlations/errors_failed_transactions')); }); describe('metrics_charts/metrics_charts', function () { From 574391985bee8dee3989cbc760068e26e4a718a6 Mon Sep 17 00:00:00 2001 From: Joe Portner <5295965+jportner@users.noreply.github.com> Date: Thu, 1 Apr 2021 14:06:17 -0400 Subject: [PATCH 053/106] Fix and unskip functional test (#96004) --- x-pack/test/functional/apps/security/users.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/x-pack/test/functional/apps/security/users.js b/x-pack/test/functional/apps/security/users.js index 250a2d4ed71f9..8730ee3aeeaf2 100644 --- a/x-pack/test/functional/apps/security/users.js +++ b/x-pack/test/functional/apps/security/users.js @@ -12,8 +12,7 @@ export default function ({ getService, getPageObjects }) { const config = getService('config'); const log = getService('log'); - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/96001 - describe.skip('users', function () { + describe('users', function () { before(async () => { log.debug('users'); await PageObjects.settings.navigateTo(); @@ -91,7 +90,7 @@ export default function ({ getService, getPageObjects }) { expect(roles.apm_system.deprecated).to.be(false); expect(roles.apm_user.reserved).to.be(true); - expect(roles.apm_user.deprecated).to.be(false); + expect(roles.apm_user.deprecated).to.be(true); expect(roles.beats_admin.reserved).to.be(true); expect(roles.beats_admin.deprecated).to.be(false); From 7c689a5b5bcd8051624422ca2bc6e064ed2afb90 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 1 Apr 2021 20:16:14 +0100 Subject: [PATCH 054/106] chore(NA): stop grouping bazel out symlink folders (#96066) --- .bazelignore | 5 ++++- .bazelrc.common | 5 ++--- .eslintignore | 2 +- .gitignore | 4 ++-- .stylelintignore | 1 + packages/kbn-pm/dist/index.js | 8 ++++---- packages/kbn-pm/src/utils/package_json.ts | 6 +++--- packages/kbn-pm/src/utils/project.ts | 2 +- 8 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.bazelignore b/.bazelignore index ac7a2d15a7aa4..ec61c2f3e7e75 100644 --- a/.bazelignore +++ b/.bazelignore @@ -8,7 +8,10 @@ .idea .teamcity .yarn-local-mirror -/bazel +bazel-bin +bazel-kibana +bazel-out +bazel-testlogs build node_modules target diff --git a/.bazelrc.common b/.bazelrc.common index fb8e8e86b9ef5..448fafd6946b3 100644 --- a/.bazelrc.common +++ b/.bazelrc.common @@ -18,17 +18,16 @@ build --disk_cache=~/.bazel-cache/disk-cache build --repository_cache=~/.bazel-cache/repository-cache # Bazel will create symlinks from the workspace directory to output artifacts. -# Build results will be placed in a directory called "bazel/bin" +# Build results will be placed in a directory called "bazel-bin" # This will still create a bazel-out symlink in # the project directory, which must be excluded from the # editor's search path. -build --symlink_prefix=bazel/ # To disable the symlinks altogether (including bazel-out) we can use # build --symlink_prefix=/ # however this makes it harder to find outputs. # Prevents the creation of bazel-out dir -build --experimental_no_product_name_out_symlink +# build --experimental_no_product_name_out_symlink # Make direct file system calls to create symlink trees build --experimental_inprocess_symlink_creation diff --git a/.eslintignore b/.eslintignore index 4559711bb9dd3..bbd8e3f88a378 100644 --- a/.eslintignore +++ b/.eslintignore @@ -48,4 +48,4 @@ snapshots.js /packages/kbn-monaco/src/painless/antlr # Bazel -/bazel +/bazel-* diff --git a/.gitignore b/.gitignore index fbe28b8f1e77c..70ed1bfb24f86 100644 --- a/.gitignore +++ b/.gitignore @@ -75,5 +75,5 @@ report.asciidoc .yarn-local-mirror # Bazel -/bazel -/.bazelrc.user +bazel-* +.bazelrc.user diff --git a/.stylelintignore b/.stylelintignore index a48b3adfa3632..72d9d5104a0e9 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -1,3 +1,4 @@ x-pack/plugins/canvas/shareable_runtime/**/*.s+(a|c)ss build target +bazel-* diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index bcb0b6da2a2f8..919608c45157d 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -22981,7 +22981,7 @@ class Project { ensureValidProjectDependency(project) { const relativePathToProject = normalizePath(path__WEBPACK_IMPORTED_MODULE_1___default.a.relative(this.path, project.path)); - const relativePathToProjectIfBazelPkg = normalizePath(path__WEBPACK_IMPORTED_MODULE_1___default.a.relative(this.path, `bazel/bin/packages/${path__WEBPACK_IMPORTED_MODULE_1___default.a.basename(project.path)}`)); + const relativePathToProjectIfBazelPkg = normalizePath(path__WEBPACK_IMPORTED_MODULE_1___default.a.relative(this.path, `bazel-bin/packages/${path__WEBPACK_IMPORTED_MODULE_1___default.a.basename(project.path)}`)); const versionInPackageJson = this.allDependencies[project.name]; const expectedVersionInPackageJson = `link:${relativePathToProject}`; const expectedVersionInPackageJsonIfBazelPkg = `link:${relativePathToProjectIfBazelPkg}`; // TODO: after introduce bazel to build all the packages and completely remove the support for kbn packages @@ -23143,7 +23143,7 @@ const createProductionPackageJson = pkgJson => _objectSpread(_objectSpread({}, p dependencies: transformDependencies(pkgJson.dependencies) }); const isLinkDependency = depVersion => depVersion.startsWith('link:'); -const isBazelPackageDependency = depVersion => depVersion.startsWith('link:bazel/bin/'); +const isBazelPackageDependency = depVersion => depVersion.startsWith('link:bazel-bin/'); /** * Replaces `link:` dependencies with `file:` dependencies. When installing * dependencies, these `file:` dependencies will be copied into `node_modules` @@ -23153,7 +23153,7 @@ const isBazelPackageDependency = depVersion => depVersion.startsWith('link:bazel * will then _copy_ the `file:` dependencies into `node_modules` instead of * symlinking like we do in development. * - * Additionally it also taken care of replacing `link:bazel/bin/` with + * Additionally it also taken care of replacing `link:bazel-bin/` with * `file:` so we can also support the copy of the Bazel packages dist already into * build/packages to be copied into the node_modules */ @@ -23170,7 +23170,7 @@ function transformDependencies(dependencies = {}) { } if (isBazelPackageDependency(depVersion)) { - newDeps[name] = depVersion.replace('link:bazel/bin/', 'file:'); + newDeps[name] = depVersion.replace('link:bazel-bin/', 'file:'); continue; } diff --git a/packages/kbn-pm/src/utils/package_json.ts b/packages/kbn-pm/src/utils/package_json.ts index b405b544ab800..a50d8994b5720 100644 --- a/packages/kbn-pm/src/utils/package_json.ts +++ b/packages/kbn-pm/src/utils/package_json.ts @@ -35,7 +35,7 @@ export const createProductionPackageJson = (pkgJson: IPackageJson) => ({ export const isLinkDependency = (depVersion: string) => depVersion.startsWith('link:'); export const isBazelPackageDependency = (depVersion: string) => - depVersion.startsWith('link:bazel/bin/'); + depVersion.startsWith('link:bazel-bin/'); /** * Replaces `link:` dependencies with `file:` dependencies. When installing @@ -46,7 +46,7 @@ export const isBazelPackageDependency = (depVersion: string) => * will then _copy_ the `file:` dependencies into `node_modules` instead of * symlinking like we do in development. * - * Additionally it also taken care of replacing `link:bazel/bin/` with + * Additionally it also taken care of replacing `link:bazel-bin/` with * `file:` so we can also support the copy of the Bazel packages dist already into * build/packages to be copied into the node_modules */ @@ -61,7 +61,7 @@ export function transformDependencies(dependencies: IPackageDependencies = {}) { } if (isBazelPackageDependency(depVersion)) { - newDeps[name] = depVersion.replace('link:bazel/bin/', 'file:'); + newDeps[name] = depVersion.replace('link:bazel-bin/', 'file:'); continue; } diff --git a/packages/kbn-pm/src/utils/project.ts b/packages/kbn-pm/src/utils/project.ts index 797a9a36df78f..068065c01f649 100644 --- a/packages/kbn-pm/src/utils/project.ts +++ b/packages/kbn-pm/src/utils/project.ts @@ -92,7 +92,7 @@ export class Project { public ensureValidProjectDependency(project: Project) { const relativePathToProject = normalizePath(Path.relative(this.path, project.path)); const relativePathToProjectIfBazelPkg = normalizePath( - Path.relative(this.path, `bazel/bin/packages/${Path.basename(project.path)}`) + Path.relative(this.path, `bazel-bin/packages/${Path.basename(project.path)}`) ); const versionInPackageJson = this.allDependencies[project.name]; From 39ebc8068c728cbfbcc6c574e76d48ab33f61679 Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Thu, 1 Apr 2021 15:20:55 -0400 Subject: [PATCH 055/106] [Fleet] Invalidate fleet API keys as internal user (#96054) --- .../fleet/server/services/agents/unenroll.ts | 6 +++--- .../services/api_keys/enrollment_api_key.ts | 2 +- .../server/services/api_keys/security.ts | 20 ++----------------- .../fleet_server/saved_object_migrations.ts | 1 - 4 files changed, 6 insertions(+), 23 deletions(-) diff --git a/x-pack/plugins/fleet/server/services/agents/unenroll.ts b/x-pack/plugins/fleet/server/services/agents/unenroll.ts index ff243eff11570..59ec3a0a63206 100644 --- a/x-pack/plugins/fleet/server/services/agents/unenroll.ts +++ b/x-pack/plugins/fleet/server/services/agents/unenroll.ts @@ -102,7 +102,7 @@ export async function unenrollAgents( // Invalidate all API keys if (apiKeys.length) { - await APIKeyService.invalidateAPIKeys(soClient, apiKeys); + await APIKeyService.invalidateAPIKeys(apiKeys); } } else { // Create unenroll action for each agent @@ -152,10 +152,10 @@ export async function forceUnenrollAgent( await Promise.all([ agent.access_api_key_id - ? APIKeyService.invalidateAPIKeys(soClient, [agent.access_api_key_id]) + ? APIKeyService.invalidateAPIKeys([agent.access_api_key_id]) : undefined, agent.default_api_key_id - ? APIKeyService.invalidateAPIKeys(soClient, [agent.default_api_key_id]) + ? APIKeyService.invalidateAPIKeys([agent.default_api_key_id]) : undefined, ]); diff --git a/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts b/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts index b3edb20d51c4f..643caa8d3bb6f 100644 --- a/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts +++ b/x-pack/plugins/fleet/server/services/api_keys/enrollment_api_key.ts @@ -86,7 +86,7 @@ export async function deleteEnrollmentApiKey( ) { const enrollmentApiKey = await getEnrollmentAPIKey(esClient, id); - await invalidateAPIKeys(soClient, [enrollmentApiKey.api_key_id]); + await invalidateAPIKeys([enrollmentApiKey.api_key_id]); await esClient.update({ index: ENROLLMENT_API_KEYS_INDEX, diff --git a/x-pack/plugins/fleet/server/services/api_keys/security.ts b/x-pack/plugins/fleet/server/services/api_keys/security.ts index 599785cb5ff7b..e68bc406055b0 100644 --- a/x-pack/plugins/fleet/server/services/api_keys/security.ts +++ b/x-pack/plugins/fleet/server/services/api_keys/security.ts @@ -56,30 +56,14 @@ export async function createAPIKey( } } -export async function invalidateAPIKeys(soClient: SavedObjectsClientContract, ids: string[]) { - const adminUser = await outputService.getAdminUser(soClient); - if (!adminUser) { - throw new Error('No admin user configured'); - } - const request = KibanaRequest.from(({ - path: '/', - route: { settings: {} }, - url: { href: '/' }, - raw: { req: { url: '/' } }, - headers: { - authorization: `Basic ${Buffer.from(`${adminUser.username}:${adminUser.password}`).toString( - 'base64' - )}`, - }, - } as unknown) as Request); - +export async function invalidateAPIKeys(ids: string[]) { const security = appContextService.getSecurity(); if (!security) { throw new Error('Missing security plugin'); } try { - const res = await security.authc.apiKeys.invalidate(request, { + const res = await security.authc.apiKeys.invalidateAsInternalUser({ ids, }); diff --git a/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts b/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts index 7af2b791f3707..78172e4dae366 100644 --- a/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts +++ b/x-pack/plugins/fleet/server/services/fleet_server/saved_object_migrations.ts @@ -78,7 +78,6 @@ async function migrateAgents() { .getDecryptedAsInternalUser(AGENT_SAVED_OBJECT_TYPE, so.id); await invalidateAPIKeys( - soClient, [attributes.access_api_key_id, attributes.default_api_key_id].filter( (keyId): keyId is string => keyId !== undefined ) From a70bd991abe356bb55ae291f2b701451fc3c252a Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Thu, 1 Apr 2021 13:21:14 -0600 Subject: [PATCH 056/106] [Maps] top hits layer wizard (#95678) * [Maps] top hits source * add icon * top hits form * clean up icon * create descriptor * add update editor * update docs * tslint and i18n fixes * update jest test * add sort inputs to create UI * review feedback Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- docs/maps/maps-aggregations.asciidoc | 3 +- docs/maps/vector-layer.asciidoc | 5 +- .../data_request_descriptor_types.ts | 1 + .../source_descriptor_types.ts | 4 +- .../layers/icons/top_hits_layer_icon.tsx | 18 ++ .../layers/icons/tracks_layer_icon.tsx | 4 +- .../classes/layers/load_layer_wizards.ts | 8 +- .../__snapshots__/scaling_form.test.tsx.snap | 119 ----------- .../update_source_editor.test.js.snap | 6 - .../es_search_source/create_source_editor.js | 17 +- .../es_documents_layer_wizard.tsx | 1 - .../es_search_source/es_search_source.tsx | 20 +- .../classes/sources/es_search_source/index.ts | 1 + .../es_search_source/scaling_form.test.tsx | 10 - .../sources/es_search_source/scaling_form.tsx | 112 +---------- .../top_hits/create_source_editor.tsx | 162 +++++++++++++++ .../es_search_source/top_hits/index.ts | 9 + .../top_hits/top_hits_form.tsx | 190 ++++++++++++++++++ .../top_hits/update_source_editor.tsx | 168 ++++++++++++++++ .../es_search_source/top_hits/wizard.tsx | 41 ++++ .../es_search_source/update_source_editor.js | 10 +- .../update_source_editor.test.js | 2 - .../public/components/geo_field_select.tsx | 37 ++++ .../plugins/maps/public/index_pattern_util.ts | 6 + .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 26 files changed, 671 insertions(+), 285 deletions(-) create mode 100644 x-pack/plugins/maps/public/classes/layers/icons/top_hits_layer_icon.tsx create mode 100644 x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx create mode 100644 x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/index.ts create mode 100644 x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx create mode 100644 x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx create mode 100644 x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/wizard.tsx create mode 100644 x-pack/plugins/maps/public/components/geo_field_select.tsx diff --git a/docs/maps/maps-aggregations.asciidoc b/docs/maps/maps-aggregations.asciidoc index 265bf6bfaea30..7f4af952653e7 100644 --- a/docs/maps/maps-aggregations.asciidoc +++ b/docs/maps/maps-aggregations.asciidoc @@ -76,9 +76,8 @@ then accumulates the most relevant documents based on sort order for each entry To enable top hits: -. Click *Add layer*, then select the *Documents* layer. +. Click *Add layer*, then select the *Top hits per entity* layer. . Configure *Index pattern* and *Geospatial field*. -. In *Scaling*, select *Show top hits per entity*. . Set *Entity* to the field that identifies entities in your documents. This field will be used in the terms aggregation to group your documents into entity buckets. . Set *Documents per entity* to configure the maximum number of documents accumulated per entity. diff --git a/docs/maps/vector-layer.asciidoc b/docs/maps/vector-layer.asciidoc index 6a2228161845e..2115c16a889c6 100644 --- a/docs/maps/vector-layer.asciidoc +++ b/docs/maps/vector-layer.asciidoc @@ -23,8 +23,6 @@ Select the appropriate *Scaling* option for your use case. * *Limit results to 10000.* The layer displays features from the first `index.max_result_window` documents. Results exceeding `index.max_result_window` are not displayed. -* *Show top hits per entity.* The layer displays the <>. - * *Show clusters when results exceed 10000.* When results exceed `index.max_result_window`, the layer uses {ref}/search-aggregations-bucket-geotilegrid-aggregation.html[GeoTile grid aggregation] to group your documents into clusters and displays metrics for each cluster. When results are less then `index.max_result_window`, the layer displays features from individual documents. * *Use vector tiles.* Vector tiles partition your map into 6 to 8 tiles. @@ -36,6 +34,9 @@ Tiles exceeding `index.max_result_window` have a visual indicator when there are *Point to point*:: Aggregated data paths between the source and destination. The index must contain at least 2 fields mapped as {ref}/geo-point.html[geo_point], source and destination. +*Top hits per entity*:: The layer displays the <>. +The index must contain at least one field mapped as {ref}/geo-point.html[geo_point] or {ref}/geo-shape.html[geo_shape]. + *Tracks*:: Create lines from points. The index must contain at least one field mapped as {ref}/geo-point.html[geo_point]. diff --git a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts index dd01b7b596c30..e1f682678df4b 100644 --- a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts +++ b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.ts @@ -26,6 +26,7 @@ export type MapFilters = { }; type ESSearchSourceSyncMeta = { + filterByMapBounds: boolean; sortField: string; sortOrder: SortDirection; scalingType: SCALING_TYPES; diff --git a/x-pack/plugins/maps/common/descriptor_types/source_descriptor_types.ts b/x-pack/plugins/maps/common/descriptor_types/source_descriptor_types.ts index 7b757aa9cf10b..9c4ef3fde6d16 100644 --- a/x-pack/plugins/maps/common/descriptor_types/source_descriptor_types.ts +++ b/x-pack/plugins/maps/common/descriptor_types/source_descriptor_types.ts @@ -95,8 +95,8 @@ export type ESGeoLineSourceDescriptor = AbstractESAggSourceDescriptor & { export type ESSearchSourceDescriptor = AbstractESSourceDescriptor & { geoField: string; - filterByMapBounds?: boolean; - tooltipProperties?: string[]; + filterByMapBounds: boolean; + tooltipProperties: string[]; sortField: string; sortOrder: SortDirection; scalingType: SCALING_TYPES; diff --git a/x-pack/plugins/maps/public/classes/layers/icons/top_hits_layer_icon.tsx b/x-pack/plugins/maps/public/classes/layers/icons/top_hits_layer_icon.tsx new file mode 100644 index 0000000000000..9e67c57895172 --- /dev/null +++ b/x-pack/plugins/maps/public/classes/layers/icons/top_hits_layer_icon.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 React, { FunctionComponent } from 'react'; + +export const TopHitsLayerIcon: FunctionComponent = () => ( + + + + + + + +); diff --git a/x-pack/plugins/maps/public/classes/layers/icons/tracks_layer_icon.tsx b/x-pack/plugins/maps/public/classes/layers/icons/tracks_layer_icon.tsx index 77b3efe5d2d83..c2d275ba3133d 100644 --- a/x-pack/plugins/maps/public/classes/layers/icons/tracks_layer_icon.tsx +++ b/x-pack/plugins/maps/public/classes/layers/icons/tracks_layer_icon.tsx @@ -13,9 +13,9 @@ export const TracksLayerIcon: FunctionComponent = () => ( className="mapLayersWizardIcon__highlight" d="M12.733 12.136h32.283v.545H12.935L4.452 19.98l-.356-.413 8.637-7.43z" /> - + - + diff --git a/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts b/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts index bed7599f89073..804352f5bede7 100644 --- a/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts +++ b/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts @@ -7,8 +7,10 @@ import { registerLayerWizard } from './layer_wizard_registry'; import { uploadLayerWizardConfig } from './file_upload_wizard'; -// @ts-ignore -import { esDocumentsLayerWizardConfig } from '../sources/es_search_source'; +import { + esDocumentsLayerWizardConfig, + esTopHitsLayerWizardConfig, +} from '../sources/es_search_source'; import { clustersLayerWizardConfig, heatmapLayerWizardConfig } from '../sources/es_geo_grid_source'; import { geoLineLayerWizardConfig } from '../sources/es_geo_line_source'; // @ts-ignore @@ -37,13 +39,13 @@ export function registerLayerWizards() { // Registration order determines display order registerLayerWizard(uploadLayerWizardConfig); - // @ts-ignore registerLayerWizard(esDocumentsLayerWizardConfig); // @ts-ignore registerLayerWizard(choroplethLayerWizardConfig); registerLayerWizard(clustersLayerWizardConfig); // @ts-ignore registerLayerWizard(heatmapLayerWizardConfig); + registerLayerWizard(esTopHitsLayerWizardConfig); registerLayerWizard(geoLineLayerWizardConfig); // @ts-ignore registerLayerWizard(point2PointLayerWizardConfig); diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap b/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap index 120ff2e7adde3..03f2594f287ea 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap @@ -31,12 +31,6 @@ exports[`scaling form should disable clusters option when clustering is not supp label="Limit results to 10000." onChange={[Function]} /> - - `; - -exports[`scaling form should render top hits form when scaling type is TOP_HITS 1`] = ` - - -

- -
- - - -
- - - - - - - Use vector tiles for faster display of large datasets. - - } - delay="regular" - position="left" - > - - -
-
- - - - - - - - -`; diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap b/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap index 3153f7b20f330..0ff94163f9230 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap @@ -98,9 +98,6 @@ exports[`should enable sort order select when sort field provided 1`] = ` onChange={[Function]} scalingType="LIMIT" supportsClustering={false} - termFields={null} - topHitsSize={1} - topHitsSplitField="trackId" /> { - const { - indexPattern, - geoFieldName, - filterByMapBounds, - scalingType, - topHitsSplitField, - topHitsSize, - } = this.state; + const { indexPattern, geoFieldName, filterByMapBounds, scalingType } = this.state; const sourceConfig = indexPattern && geoFieldName @@ -113,8 +103,6 @@ export class CreateSourceEditor extends Component { geoField: geoFieldName, filterByMapBounds, scalingType, - topHitsSplitField, - topHitsSize, } : null; this.props.onSourceConfigChange(sourceConfig); @@ -167,9 +155,6 @@ export class CreateSourceEditor extends Component { ) : null } - termFields={getTermsFields(this.state.indexPattern.fields)} - topHitsSplitField={this.state.topHitsSplitField} - topHitsSize={this.state.topHitsSize} /> ); diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/es_documents_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_documents_layer_wizard.tsx index c0606b5f4aec6..26771c1bed023 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/es_documents_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_documents_layer_wizard.tsx @@ -10,7 +10,6 @@ import React from 'react'; // @ts-ignore import { CreateSourceEditor } from './create_source_editor'; import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; -// @ts-ignore import { ESSearchSource, sourceTitle } from './es_search_source'; import { BlendedVectorLayer } from '../../layers/blended_vector_layer/blended_vector_layer'; import { VectorLayer } from '../../layers/vector_layer'; diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx index eae00710c4c25..168448b6f72a0 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx @@ -60,6 +60,7 @@ import { ITooltipProperty } from '../../tooltips/tooltip_property'; import { DataRequest } from '../../util/data_request'; import { SortDirection, SortDirectionNumeric } from '../../../../../../../src/plugins/data/common'; import { isValidStringConfig } from '../../util/valid_string_config'; +import { TopHitsUpdateSourceEditor } from './top_hits'; export const sourceTitle = i18n.translate('xpack.maps.source.esSearchTitle', { defaultMessage: 'Documents', @@ -166,6 +167,22 @@ export class ESSearchSource extends AbstractESSource implements ITiledSingleLaye } renderSourceSettingsEditor(sourceEditorArgs: SourceEditorArgs): ReactElement | null { + if (this._isTopHits()) { + return ( + + ); + } + const getGeoField = () => { return this._getGeoField(); }; @@ -180,8 +197,6 @@ export class ESSearchSource extends AbstractESSource implements ITiledSingleLaye sortOrder={this._descriptor.sortOrder} scalingType={this._descriptor.scalingType} filterByMapBounds={this.isFilterByMapBounds()} - topHitsSplitField={this._descriptor.topHitsSplitField} - topHitsSize={this._descriptor.topHitsSize} /> ); } @@ -658,6 +673,7 @@ export class ESSearchSource extends AbstractESSource implements ITiledSingleLaye getSyncMeta(): VectorSourceSyncMeta | null { return { + filterByMapBounds: this._descriptor.filterByMapBounds, sortField: this._descriptor.sortField, sortOrder: this._descriptor.sortOrder, scalingType: this._descriptor.scalingType, diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/index.ts b/x-pack/plugins/maps/public/classes/sources/es_search_source/index.ts index 73e7963024471..75217c0a29c08 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/index.ts +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/index.ts @@ -11,3 +11,4 @@ export { createDefaultLayerDescriptor, esDocumentsLayerWizardConfig, } from './es_documents_layer_wizard'; +export { esTopHitsLayerWizardConfig } from './top_hits'; diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.test.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.test.tsx index fe47208c32690..b02eacc133467 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.test.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.test.tsx @@ -26,8 +26,6 @@ const defaultProps = { scalingType: SCALING_TYPES.LIMIT, supportsClustering: true, termFields: [], - topHitsSplitField: null, - topHitsSize: 1, }; describe('scaling form', () => { @@ -48,12 +46,4 @@ describe('scaling form', () => { expect(component).toMatchSnapshot(); }); - - test('should render top hits form when scaling type is TOP_HITS', async () => { - const component = shallow( - - ); - - expect(component).toMatchSnapshot(); - }); }); diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.tsx index 6190c7ed8df3f..b9ce43dbbdad4 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.tsx @@ -19,19 +19,9 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; -import { SingleFieldSelect } from '../../../components/single_field_select'; import { getIndexPatternService } from '../../../kibana_services'; -// @ts-ignore -import { ValidatedRange } from '../../../components/validated_range'; -import { - DEFAULT_MAX_INNER_RESULT_WINDOW, - DEFAULT_MAX_RESULT_WINDOW, - LAYER_TYPE, - SCALING_TYPES, -} from '../../../../common/constants'; -// @ts-ignore +import { DEFAULT_MAX_RESULT_WINDOW, LAYER_TYPE, SCALING_TYPES } from '../../../../common/constants'; import { loadIndexSettings } from './load_index_settings'; -import { IFieldType } from '../../../../../../../src/plugins/data/public'; import { OnSourceChangeArgs } from '../../../connected_components/layer_panel/view'; interface Props { @@ -41,19 +31,14 @@ interface Props { scalingType: SCALING_TYPES; supportsClustering: boolean; clusteringDisabledReason?: string | null; - termFields: IFieldType[]; - topHitsSplitField: string | null; - topHitsSize: number; } interface State { - maxInnerResultWindow: number; maxResultWindow: number; } export class ScalingForm extends Component { state = { - maxInnerResultWindow: DEFAULT_MAX_INNER_RESULT_WINDOW, maxResultWindow: DEFAULT_MAX_RESULT_WINDOW, }; _isMounted = false; @@ -70,11 +55,9 @@ export class ScalingForm extends Component { async loadIndexSettings() { try { const indexPattern = await getIndexPatternService().get(this.props.indexPatternId); - const { maxInnerResultWindow, maxResultWindow } = await loadIndexSettings( - indexPattern!.title - ); + const { maxResultWindow } = await loadIndexSettings(indexPattern!.title); if (this._isMounted) { - this.setState({ maxInnerResultWindow, maxResultWindow }); + this.setState({ maxResultWindow }); } } catch (err) { return; @@ -98,71 +81,6 @@ export class ScalingForm extends Component { this.props.onChange({ propName: 'filterByMapBounds', value: event.target.checked }); }; - _onTopHitsSplitFieldChange = (topHitsSplitField?: string) => { - if (!topHitsSplitField) { - return; - } - this.props.onChange({ propName: 'topHitsSplitField', value: topHitsSplitField }); - }; - - _onTopHitsSizeChange = (size: number) => { - this.props.onChange({ propName: 'topHitsSize', value: size }); - }; - - _renderTopHitsForm() { - let sizeSlider; - if (this.props.topHitsSplitField) { - sizeSlider = ( - - - - ); - } - - return ( - - - - - - {sizeSlider} - - ); - } - _renderClusteringRadio() { const clusteringRadio = ( { render() { let filterByBoundsSwitch; - if ( - this.props.scalingType === SCALING_TYPES.TOP_HITS || - this.props.scalingType === SCALING_TYPES.LIMIT - ) { + if (this.props.scalingType === SCALING_TYPES.LIMIT) { filterByBoundsSwitch = ( { ); } - let topHitsOptionsForm = null; - if (this.props.scalingType === SCALING_TYPES.TOP_HITS) { - topHitsOptionsForm = ( - - - {this._renderTopHitsForm()} - - ); - } - return ( @@ -267,21 +172,12 @@ export class ScalingForm extends Component { checked={this.props.scalingType === SCALING_TYPES.LIMIT} onChange={() => this._onScalingTypeChange(SCALING_TYPES.LIMIT)} /> - this._onScalingTypeChange(SCALING_TYPES.TOP_HITS)} - /> {this._renderClusteringRadio()} {this._renderMVTRadio()} {filterByBoundsSwitch} - {topHitsOptionsForm} ); } diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx new file mode 100644 index 0000000000000..ec656be3efeae --- /dev/null +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/create_source_editor.tsx @@ -0,0 +1,162 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, { Component } from 'react'; +import { EuiPanel } from '@elastic/eui'; + +import { SCALING_TYPES } from '../../../../../common/constants'; +import { GeoFieldSelect } from '../../../../components/geo_field_select'; +import { GeoIndexPatternSelect } from '../../../../components/geo_index_pattern_select'; +import { getGeoFields, getTermsFields, getSortFields } from '../../../../index_pattern_util'; +import { ESSearchSourceDescriptor } from '../../../../../common/descriptor_types'; +import { + IndexPattern, + IFieldType, + SortDirection, +} from '../../../../../../../../src/plugins/data/common'; +import { TopHitsForm } from './top_hits_form'; +import { OnSourceChangeArgs } from '../../../../connected_components/layer_panel/view'; + +interface Props { + onSourceConfigChange: (sourceConfig: Partial | null) => void; +} + +interface State { + indexPattern: IndexPattern | null; + geoFields: IFieldType[]; + geoFieldName: string | null; + sortField: string | null; + sortFields: IFieldType[]; + sortOrder: SortDirection; + termFields: IFieldType[]; + topHitsSplitField: string | null; + topHitsSize: number; +} + +export class CreateSourceEditor extends Component { + state: State = { + indexPattern: null, + geoFields: [], + geoFieldName: null, + sortField: null, + sortFields: [], + sortOrder: SortDirection.desc, + termFields: [], + topHitsSplitField: null, + topHitsSize: 1, + }; + + _onIndexPatternSelect = (indexPattern: IndexPattern) => { + const geoFields = getGeoFields(indexPattern.fields); + + this.setState( + { + indexPattern, + geoFields, + geoFieldName: geoFields.length ? geoFields[0].name : null, + sortField: indexPattern.timeFieldName ? indexPattern.timeFieldName : null, + sortFields: getSortFields(indexPattern.fields), + termFields: getTermsFields(indexPattern.fields), + topHitsSplitField: null, + }, + this._previewLayer + ); + }; + + _onGeoFieldSelect = (geoFieldName?: string) => { + this.setState({ geoFieldName: geoFieldName ? geoFieldName : null }, this._previewLayer); + }; + + _onTopHitsPropChange = ({ propName, value }: OnSourceChangeArgs) => { + this.setState( + // @ts-expect-error + { [propName]: value }, + this._previewLayer + ); + }; + + _previewLayer = () => { + const { + indexPattern, + geoFieldName, + sortField, + sortOrder, + topHitsSplitField, + topHitsSize, + } = this.state; + + const tooltipProperties: string[] = []; + if (topHitsSplitField) { + tooltipProperties.push(topHitsSplitField); + } + if (indexPattern && indexPattern.timeFieldName) { + tooltipProperties.push(indexPattern.timeFieldName); + } + + const sourceConfig = + indexPattern && geoFieldName && sortField && topHitsSplitField + ? { + indexPatternId: indexPattern.id, + geoField: geoFieldName, + scalingType: SCALING_TYPES.TOP_HITS, + sortField, + sortOrder, + tooltipProperties, + topHitsSplitField, + topHitsSize, + } + : null; + this.props.onSourceConfigChange(sourceConfig); + }; + + _renderGeoSelect() { + return this.state.indexPattern ? ( + + ) : null; + } + + _renderTopHitsPanel() { + if (!this.state.indexPattern || !this.state.indexPattern.id || !this.state.geoFieldName) { + return null; + } + + return ( + + ); + } + + render() { + return ( + + + + {this._renderGeoSelect()} + + {this._renderTopHitsPanel()} + + ); + } +} diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/index.ts b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/index.ts new file mode 100644 index 0000000000000..135ed7c991b3a --- /dev/null +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/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 { TopHitsUpdateSourceEditor } from './update_source_editor'; +export { esTopHitsLayerWizardConfig } from './wizard'; diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx new file mode 100644 index 0000000000000..e4f196e5e8a85 --- /dev/null +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/top_hits_form.tsx @@ -0,0 +1,190 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { ChangeEvent, Component, Fragment } from 'react'; +import { EuiFormRow, EuiSelect } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { SingleFieldSelect } from '../../../../components/single_field_select'; +import { getIndexPatternService } from '../../../../kibana_services'; +// @ts-expect-error +import { ValidatedRange } from '../../../../components/validated_range'; +import { DEFAULT_MAX_INNER_RESULT_WINDOW } from '../../../../../common/constants'; +import { loadIndexSettings } from '../load_index_settings'; +import { OnSourceChangeArgs } from '../../../../connected_components/layer_panel/view'; +import { IFieldType, SortDirection } from '../../../../../../../../src/plugins/data/public'; + +interface Props { + indexPatternId: string; + isColumnCompressed?: boolean; + onChange: (args: OnSourceChangeArgs) => void; + sortField: string; + sortFields: IFieldType[]; + sortOrder: SortDirection; + termFields: IFieldType[]; + topHitsSplitField: string | null; + topHitsSize: number; +} + +interface State { + maxInnerResultWindow: number; +} + +export class TopHitsForm extends Component { + state = { + maxInnerResultWindow: DEFAULT_MAX_INNER_RESULT_WINDOW, + }; + _isMounted = false; + + componentDidMount() { + this._isMounted = true; + this.loadIndexSettings(); + } + + componentWillUnmount() { + this._isMounted = false; + } + + _onTopHitsSplitFieldChange = (topHitsSplitField?: string) => { + if (!topHitsSplitField) { + return; + } + this.props.onChange({ propName: 'topHitsSplitField', value: topHitsSplitField }); + }; + + _onTopHitsSizeChange = (size: number) => { + this.props.onChange({ propName: 'topHitsSize', value: size }); + }; + + _onSortFieldChange = (sortField?: string) => { + this.props.onChange({ propName: 'sortField', value: sortField }); + }; + + _onSortOrderChange = (event: ChangeEvent) => { + this.props.onChange({ propName: 'sortOrder', value: event.target.value }); + }; + + async loadIndexSettings() { + try { + const indexPattern = await getIndexPatternService().get(this.props.indexPatternId); + const { maxInnerResultWindow } = await loadIndexSettings(indexPattern!.title); + if (this._isMounted) { + this.setState({ maxInnerResultWindow }); + } + } catch (err) { + return; + } + } + + render() { + let sizeSlider; + let sortField; + let sortOrder; + if (this.props.topHitsSplitField) { + sizeSlider = ( + + + + ); + + sortField = ( + + + + ); + + sortOrder = ( + + + + ); + } + + return ( + + + + + + {sizeSlider} + + {sortField} + + {sortOrder} + + ); + } +} diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx new file mode 100644 index 0000000000000..90553d47e644a --- /dev/null +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/update_source_editor.tsx @@ -0,0 +1,168 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { Component, Fragment } from 'react'; +import { EuiFormRow, EuiTitle, EuiPanel, EuiSpacer, EuiSwitch, EuiSwitchEvent } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { FIELD_ORIGIN } from '../../../../../common/constants'; +import { TooltipSelector } from '../../../../components/tooltip_selector'; + +import { getIndexPatternService } from '../../../../kibana_services'; +import { getTermsFields, getSortFields, getSourceFields } from '../../../../index_pattern_util'; +import { SortDirection, IFieldType } from '../../../../../../../../src/plugins/data/public'; +import { ESDocField } from '../../../fields/es_doc_field'; +import { OnSourceChangeArgs } from '../../../../connected_components/layer_panel/view'; +import { TopHitsForm } from './top_hits_form'; +import { ESSearchSource } from '../es_search_source'; +import { IField } from '../../../fields/field'; + +interface Props { + filterByMapBounds: boolean; + indexPatternId: string; + onChange: (args: OnSourceChangeArgs) => void; + tooltipFields: IField[]; + topHitsSplitField: string; + topHitsSize: number; + sortField: string; + sortOrder: SortDirection; + source: ESSearchSource; +} + +interface State { + loadError?: string; + sourceFields: IField[]; + termFields: IFieldType[]; + sortFields: IFieldType[]; +} + +export class TopHitsUpdateSourceEditor extends Component { + private _isMounted = false; + + state: State = { + sourceFields: [], + termFields: [], + sortFields: [], + }; + + componentDidMount() { + this._isMounted = true; + this.loadFields(); + } + + componentWillUnmount() { + this._isMounted = false; + } + + async loadFields() { + let indexPattern; + try { + indexPattern = await getIndexPatternService().get(this.props.indexPatternId); + } catch (err) { + if (this._isMounted) { + this.setState({ + loadError: i18n.translate('xpack.maps.source.esSearch.loadErrorMessage', { + defaultMessage: `Unable to find Index pattern {id}`, + values: { + id: this.props.indexPatternId, + }, + }), + }); + } + return; + } + + if (!this._isMounted) { + return; + } + + const rawTooltipFields = getSourceFields(indexPattern.fields); + const sourceFields = rawTooltipFields.map((field) => { + return new ESDocField({ + fieldName: field.name, + source: this.props.source, + origin: FIELD_ORIGIN.SOURCE, + }); + }); + + this.setState({ + sourceFields, + termFields: getTermsFields(indexPattern.fields), + sortFields: getSortFields(indexPattern.fields), + }); + } + _onTooltipPropertiesChange = (propertyNames: string[]) => { + this.props.onChange({ propName: 'tooltipProperties', value: propertyNames }); + }; + + _onFilterByMapBoundsChange = (event: EuiSwitchEvent) => { + this.props.onChange({ propName: 'filterByMapBounds', value: event.target.checked }); + }; + + render() { + return ( + + + +
+ +
+
+ + + + +
+ + + + +
+ +
+
+ + + + + + + + +
+ +
+ ); + } +} diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/wizard.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/wizard.tsx new file mode 100644 index 0000000000000..e02ada305ecff --- /dev/null +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/top_hits/wizard.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 { i18n } from '@kbn/i18n'; +import React from 'react'; +import { CreateSourceEditor } from './create_source_editor'; +import { LayerWizard, RenderWizardArguments } from '../../../layers/layer_wizard_registry'; +import { VectorLayer } from '../../../layers/vector_layer'; +import { LAYER_WIZARD_CATEGORY } from '../../../../../common/constants'; +import { TopHitsLayerIcon } from '../../../layers/icons/top_hits_layer_icon'; +import { ESSearchSourceDescriptor } from '../../../../../common/descriptor_types'; +import { ESSearchSource } from '../es_search_source'; + +export const esTopHitsLayerWizardConfig: LayerWizard = { + categories: [LAYER_WIZARD_CATEGORY.ELASTICSEARCH], + description: i18n.translate('xpack.maps.source.topHitsDescription', { + defaultMessage: + 'Display the most relevant documents per entity, e.g. the most recent GPS hits per vehicle.', + }), + icon: TopHitsLayerIcon, + renderWizard: ({ previewLayers, mapColors }: RenderWizardArguments) => { + const onSourceConfigChange = (sourceConfig: Partial | null) => { + if (!sourceConfig) { + previewLayers([]); + return; + } + + const sourceDescriptor = ESSearchSource.createDescriptor(sourceConfig); + const layerDescriptor = VectorLayer.createDescriptor({ sourceDescriptor }, mapColors); + previewLayers([layerDescriptor]); + }; + return ; + }, + title: i18n.translate('xpack.maps.source.topHitsTitle', { + defaultMessage: 'Top hits per entity', + }), +}; diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.js index 1e870f423171f..8632666011065 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.js +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.js @@ -8,6 +8,7 @@ import React, { Fragment, Component } from 'react'; import PropTypes from 'prop-types'; import { EuiFormRow, EuiSelect, EuiTitle, EuiPanel, EuiSpacer } from '@elastic/eui'; +import { FIELD_ORIGIN } from '../../../../common/constants'; import { SingleFieldSelect } from '../../../components/single_field_select'; import { TooltipSelector } from '../../../components/tooltip_selector'; @@ -15,7 +16,6 @@ import { getIndexPatternService } from '../../../kibana_services'; import { i18n } from '@kbn/i18n'; import { getGeoTileAggNotSupportedReason, - getTermsFields, getSourceFields, supportsGeoTileAgg, } from '../../../index_pattern_util'; @@ -33,14 +33,11 @@ export class UpdateSourceEditor extends Component { sortField: PropTypes.string, sortOrder: PropTypes.string.isRequired, scalingType: PropTypes.string.isRequired, - topHitsSplitField: PropTypes.string, - topHitsSize: PropTypes.number.isRequired, source: PropTypes.object, }; state = { sourceFields: null, - termFields: null, sortFields: null, supportsClustering: false, mvtDisabledReason: null, @@ -94,6 +91,7 @@ export class UpdateSourceEditor extends Component { return new ESDocField({ fieldName: field.name, source: this.props.source, + origin: FIELD_ORIGIN.SOURCE, }); }); @@ -102,7 +100,6 @@ export class UpdateSourceEditor extends Component { clusteringDisabledReason: getGeoTileAggNotSupportedReason(geoField), mvtDisabledReason: null, sourceFields: sourceFields, - termFields: getTermsFields(indexPattern.fields), //todo change term fields to use fields sortFields: indexPattern.fields.filter( (field) => field.sortable && !indexPatterns.isNestedField(field) ), //todo change sort fields to use fields @@ -212,9 +209,6 @@ export class UpdateSourceEditor extends Component { scalingType={this.props.scalingType} supportsClustering={this.state.supportsClustering} clusteringDisabledReason={this.state.clusteringDisabledReason} - termFields={this.state.termFields} - topHitsSplitField={this.props.topHitsSplitField} - topHitsSize={this.props.topHitsSize} /> ); diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.test.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.test.js index 00a7b2b0b3490..f54947bc91d19 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.test.js +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.test.js @@ -26,8 +26,6 @@ const defaultProps = { tooltipFields: [], sortOrder: 'DESC', scalingType: SCALING_TYPES.LIMIT, - topHitsSplitField: 'trackId', - topHitsSize: 1, }; test('should render update source editor', async () => { diff --git a/x-pack/plugins/maps/public/components/geo_field_select.tsx b/x-pack/plugins/maps/public/components/geo_field_select.tsx new file mode 100644 index 0000000000000..0b04ec7146611 --- /dev/null +++ b/x-pack/plugins/maps/public/components/geo_field_select.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 { i18n } from '@kbn/i18n'; +import { EuiFormRow } from '@elastic/eui'; +import { SingleFieldSelect } from './single_field_select'; +import { IFieldType } from '../../../../../src/plugins/data/common'; + +interface Props { + value: string; + geoFields: IFieldType[]; + onChange: (geoFieldName?: string) => void; +} + +export function GeoFieldSelect(props: Props) { + return ( + + + + ); +} diff --git a/x-pack/plugins/maps/public/index_pattern_util.ts b/x-pack/plugins/maps/public/index_pattern_util.ts index f7894085b15ac..3b1cb461c8779 100644 --- a/x-pack/plugins/maps/public/index_pattern_util.ts +++ b/x-pack/plugins/maps/public/index_pattern_util.ts @@ -56,6 +56,12 @@ export function getTermsFields(fields: IFieldType[]): IFieldType[] { }); } +export function getSortFields(fields: IFieldType[]): IFieldType[] { + return fields.filter((field) => { + return field.sortable && !indexPatterns.isNestedField(field); + }); +} + export function getAggregatableGeoFieldTypes(): string[] { const aggregatableFieldTypes = [ES_GEO_FIELD_TYPE.GEO_POINT]; if (getIsGoldPlus()) { diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index abc47774b1168..9602a324e5d51 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -12762,7 +12762,6 @@ "xpack.maps.source.esSearch.topHitsSplitFieldLabel": "エンティティ", "xpack.maps.source.esSearch.topHitsSplitFieldSelectPlaceholder": "エンティティフィールドを選択", "xpack.maps.source.esSearch.useMVTVectorTiles": "ベクトルタイルを使用", - "xpack.maps.source.esSearch.useTopHitsLabel": "エンティティごとにトップヒットを表示。", "xpack.maps.source.esSearchDescription": "Elasticsearch の点、線、多角形", "xpack.maps.source.esSearchTitle": "ドキュメント", "xpack.maps.source.esSource.noGeoFieldErrorMessage": "インデックスパターン {indexPatternTitle} には現在ジオフィールド {geoField} が含まれていません", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index a7eebf9624f42..12a3c8925cfc6 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -12930,7 +12930,6 @@ "xpack.maps.source.esSearch.topHitsSplitFieldLabel": "实体", "xpack.maps.source.esSearch.topHitsSplitFieldSelectPlaceholder": "选择实体字段", "xpack.maps.source.esSearch.useMVTVectorTiles": "使用矢量磁贴", - "xpack.maps.source.esSearch.useTopHitsLabel": "显示每个实体最高命中结果。", "xpack.maps.source.esSearchDescription": "Elasticsearch 的点、线和多边形", "xpack.maps.source.esSearchTitle": "文档", "xpack.maps.source.esSource.noGeoFieldErrorMessage": "索引模式“{indexPatternTitle}”不再包含地理字段 {geoField}", From 39d1e62c7d5c590e0288783b271eab06a16d1c3e Mon Sep 17 00:00:00 2001 From: Bhavya RM Date: Thu, 1 Apr 2021 15:22:14 -0400 Subject: [PATCH 057/106] Test Export and Import saved objects between versions (#91908) --- .../exports/_7.12_import_saved_objects.ndjson | 34 +++++++++++ .../import_saved_objects_between_versions.ts | 54 ++++++++++++++++++ .../apps/saved_objects_management/index.ts | 1 + .../getting_started/shakespeare/data.json.gz | Bin 0 -> 4024757 bytes .../getting_started/shakespeare/mappings.json | 28 +++++++++ 5 files changed, 117 insertions(+) create mode 100644 x-pack/test/functional/apps/saved_objects_management/exports/_7.12_import_saved_objects.ndjson create mode 100644 x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.ts create mode 100644 x-pack/test/functional/es_archives/getting_started/shakespeare/data.json.gz create mode 100644 x-pack/test/functional/es_archives/getting_started/shakespeare/mappings.json diff --git a/x-pack/test/functional/apps/saved_objects_management/exports/_7.12_import_saved_objects.ndjson b/x-pack/test/functional/apps/saved_objects_management/exports/_7.12_import_saved_objects.ndjson new file mode 100644 index 0000000000000..5fe0c303668db --- /dev/null +++ b/x-pack/test/functional/apps/saved_objects_management/exports/_7.12_import_saved_objects.ndjson @@ -0,0 +1,34 @@ +{"attributes":{"fieldAttrs":"{\"machine.os\":{\"count\":1},\"spaces\":{\"count\":1},\"type\":{\"count\":1},\"bytes_scripted\":{\"count\":1}}","fields":"[{\"count\":1,\"script\":\"doc['bytes'].value*1024\",\"lang\":\"painless\",\"name\":\"bytes_scripted\",\"type\":\"number\",\"scripted\":true,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false}]","runtimeFieldMap":"{}","timeFieldName":"@timestamp","title":"logstash-*"},"coreMigrationVersion":"7.12.1","id":"56b34100-619d-11eb-aebf-c306684b328d","migrationVersion":{"index-pattern":"7.11.0"},"references":[],"sort":[1617218924557,0],"type":"index-pattern","updated_at":"2021-03-31T19:28:44.557Z","version":"WzksMV0="} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_scriptedfieldviz","uiStateJSON":"{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}}","version":1,"visState":"{\"title\":\"logstash_scriptedfieldviz\",\"type\":\"goal\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"isDisplayWarning\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":true,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"meter\",\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"range\",\"schema\":\"group\",\"params\":{\"field\":\"bytes_scripted\",\"ranges\":[{\"from\":0,\"to\":40000},{\"from\":40001,\"to\":20000000}]}}]}"},"coreMigrationVersion":"7.12.1","id":"0a274320-61cc-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218952314,184],"type":"visualization","updated_at":"2021-03-31T19:29:12.314Z","version":"WzY3LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_datatable","uiStateJSON":"{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}","version":1,"visState":"{\"title\":\"logstash_datatable\",\"type\":\"table\",\"params\":{\"perPage\":10,\"showPartialRows\":false,\"showMetricsAtAllLevels\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"showTotal\":true,\"totalFunc\":\"sum\",\"showToolbar\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"bucket\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"2015-07-24T08:58:14.175Z\",\"to\":\"2015-11-11T13:28:17.223Z\",\"mode\":\"absolute\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"bucket\",\"params\":{\"field\":\"response.raw\",\"size\":10,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"0d8a8860-623a-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218938927,33],"type":"visualization","updated_at":"2021-03-31T19:28:58.927Z","version":"WzM5LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_area_chart","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_area_chart\",\"type\":\"area\",\"params\":{\"type\":\"area\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"filter\":true},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"area\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"interpolate\":\"linear\",\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"isVislibVis\":true,\"detailedTooltip\":true,\"fittingFunction\":\"zero\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"2010-01-28T19:25:55.242Z\",\"to\":\"2021-01-28T19:40:55.242Z\",\"mode\":\"absolute\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"machine.os.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"machine OS\"}}]}"},"coreMigrationVersion":"7.12.1","id":"36b91810-6239-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218930707,21],"type":"visualization","updated_at":"2021-03-31T19:28:50.707Z","version":"WzIzLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_horizontal","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_horizontal\",\"type\":\"horizontal_bar\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":200},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":true,\"truncate\":100},\"title\":{\"text\":\"no of documents\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"no of documents\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true,\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"isVislibVis\":true,\"detailedTooltip\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{\"customLabel\":\"no of documents\"}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"2015-07-24T08:58:14.175Z\",\"to\":\"2015-11-11T13:28:17.223Z\",\"mode\":\"absolute\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"agent.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"extension.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"e4aef350-623d-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218932758,19],"type":"visualization","updated_at":"2021-03-31T19:28:52.758Z","version":"WzI3LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_linechart","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_linechart\",\"type\":\"line\",\"params\":{\"type\":\"line\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"filter\":true},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"radiusRatio\":51,\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"isVislibVis\":true,\"detailedTooltip\":true,\"fittingFunction\":\"zero\"},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"2015-09-18T06:38:43.311Z\",\"to\":\"2015-09-26T04:02:51.104Z\",\"mode\":\"absolute\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"sum\",\"schema\":\"radius\",\"params\":{\"field\":\"bytes\",\"customLabel\":\"bubbles\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"machine.os.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"f92e5630-623e-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218933787,95],"type":"visualization","updated_at":"2021-03-31T19:28:53.787Z","version":"WzI5LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_heatmap","uiStateJSON":"{\"vis\":{\"defaultColors\":{\"0% - 25%\":\"rgb(255,255,204)\",\"25% - 50%\":\"rgb(254,217,118)\",\"50% - 75%\":\"rgb(253,141,60)\",\"75% - 100%\":\"rgb(227,27,28)\"}}}","version":1,"visState":"{\"title\":\"logstash_heatmap\",\"type\":\"heatmap\",\"params\":{\"type\":\"heatmap\",\"addTooltip\":true,\"addLegend\":true,\"enableHover\":false,\"legendPosition\":\"right\",\"times\":[],\"colorsNumber\":4,\"colorSchema\":\"Yellow to Red\",\"setColorRange\":false,\"colorsRange\":[],\"invertColors\":false,\"percentageMode\":true,\"valueAxes\":[{\"show\":false,\"id\":\"ValueAxis-1\",\"type\":\"value\",\"scale\":{\"type\":\"linear\",\"defaultYExtents\":false},\"labels\":{\"show\":false,\"rotate\":0,\"overwriteColor\":false,\"color\":\"#555\"}}],\"row\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"2015-07-24T08:58:14.175Z\",\"to\":\"2015-11-11T13:28:17.223Z\",\"mode\":\"absolute\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"machine.os.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"split\",\"params\":{\"field\":\"response.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"9853d4d0-623d-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218934821,97],"type":"visualization","updated_at":"2021-03-31T19:28:54.821Z","version":"WzMxLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_goalchart","uiStateJSON":"{\"vis\":{\"defaultColors\":{\"0 - 33\":\"rgb(0,104,55)\",\"33 - 67\":\"rgb(255,255,190)\",\"67 - 100\":\"rgb(165,0,38)\"}}}","version":1,"visState":"{\"title\":\"logstash_goalchart\",\"type\":\"goal\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"isDisplayWarning\":false,\"type\":\"gauge\",\"gauge\":{\"verticalSplit\":false,\"autoExtend\":false,\"percentageMode\":true,\"gaugeType\":\"Circle\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000},{\"from\":10001,\"to\":20000},{\"from\":20001,\"to\":30000}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":false,\"labels\":false,\"color\":\"#333\",\"width\":2},\"type\":\"meter\",\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60},\"minAngle\":0,\"maxAngle\":6.283185307179586}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"group\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"2015-07-24T08:58:14.175Z\",\"to\":\"2015-11-11T13:28:17.223Z\",\"mode\":\"absolute\"},\"useNormalizedEsInterval\":true,\"interval\":\"auto\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{}}}]}"},"coreMigrationVersion":"7.12.1","id":"6ecb33b0-623d-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218935846,99],"type":"visualization","updated_at":"2021-03-31T19:28:55.846Z","version":"WzMzLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_gauge","uiStateJSON":"{\"vis\":{\"defaultColors\":{\"0 - 50\":\"rgb(0,104,55)\",\"50 - 75\":\"rgb(255,255,190)\",\"75 - 100\":\"rgb(165,0,38)\"}}}","version":1,"visState":"{\"title\":\"logstash_gauge\",\"type\":\"gauge\",\"params\":{\"type\":\"gauge\",\"addTooltip\":true,\"addLegend\":true,\"isDisplayWarning\":false,\"gauge\":{\"extendRange\":true,\"percentageMode\":false,\"gaugeType\":\"Arc\",\"gaugeStyle\":\"Full\",\"backStyle\":\"Full\",\"orientation\":\"vertical\",\"colorSchema\":\"Green to Red\",\"gaugeColorMode\":\"Labels\",\"colorsRange\":[{\"from\":0,\"to\":50},{\"from\":50,\"to\":75},{\"from\":75,\"to\":100}],\"invertColors\":false,\"labels\":{\"show\":true,\"color\":\"black\"},\"scale\":{\"show\":true,\"labels\":false,\"color\":\"#333\"},\"type\":\"meter\",\"style\":{\"bgWidth\":0.9,\"width\":0.9,\"mask\":false,\"bgMask\":false,\"maskBars\":50,\"bgFill\":\"#eee\",\"bgColor\":false,\"subText\":\"\",\"fontSize\":60,\"labelColor\":true},\"alignment\":\"horizontal\"}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"range\",\"schema\":\"group\",\"params\":{\"field\":\"bytes\",\"ranges\":[{\"from\":0,\"to\":10001},{\"from\":10002,\"to\":1000000}],\"json\":\"\"}}]}"},"coreMigrationVersion":"7.12.1","id":"b8e35c80-623c-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218936874,101],"type":"visualization","updated_at":"2021-03-31T19:28:56.874Z","version":"WzM1LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_coordinatemaps","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_coordinatemaps\",\"type\":\"tile_map\",\"params\":{\"colorSchema\":\"Yellow to Red\",\"mapType\":\"Scaled Circle Markers\",\"isDesaturated\":false,\"addTooltip\":true,\"heatClusterSize\":1.5,\"legendPosition\":\"bottomright\",\"mapZoom\":2,\"mapCenter\":[0,0],\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":18,\"attribution\":\"

© OpenStreetMap contributors|OpenMapTiles|Elastic Maps Service

\"}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"geohash_grid\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.coordinates\",\"autoPrecision\":true,\"isFilteredByCollar\":true,\"useGeocentroid\":true,\"mapZoom\":2,\"mapCenter\":[0,0],\"precision\":2,\"customLabel\":\"logstash src/dest\"}}]}"},"coreMigrationVersion":"7.12.1","id":"f1bc75d0-6239-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218937901,31],"type":"visualization","updated_at":"2021-03-31T19:28:57.901Z","version":"WzM3LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"title":"logstash_inputcontrols","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_inputcontrols\",\"type\":\"input_control_vis\",\"params\":{\"controls\":[{\"id\":\"1611928563867\",\"fieldName\":\"machine.ram\",\"parent\":\"\",\"label\":\"Logstash RAM\",\"type\":\"range\",\"options\":{\"decimalPlaces\":0,\"step\":1024},\"indexPatternRefName\":\"control_0_index_pattern\"},{\"id\":\"1611928586274\",\"fieldName\":\"machine.os.raw\",\"parent\":\"\",\"label\":\"Logstash OS\",\"type\":\"list\",\"options\":{\"type\":\"terms\",\"multiselect\":true,\"dynamicOptions\":true,\"size\":5,\"order\":\"desc\"},\"indexPatternRefName\":\"control_1_index_pattern\"}],\"updateFiltersOnChange\":false,\"useTimeFilter\":false,\"pinFilters\":false},\"aggs\":[]}"},"coreMigrationVersion":"7.12.1","id":"d79fe3d0-6239-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"control_0_index_pattern","type":"index-pattern"},{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"control_1_index_pattern","type":"index-pattern"}],"sort":[1617218939955,36],"type":"visualization","updated_at":"2021-03-31T19:28:59.955Z","version":"WzQxLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"title":"logstash_markdown","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_markdown\",\"type\":\"markdown\",\"params\":{\"fontSize\":12,\"openLinksInNewTab\":true,\"markdown\":\"Kibana is built with JS https://www.javascript.com/\"},\"aggs\":[]}"},"coreMigrationVersion":"7.12.1","id":"318375a0-6240-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[],"sort":[1617218940976,37],"type":"visualization","updated_at":"2021-03-31T19:29:00.976Z","version":"WzQzLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"title":"logstash_vegaviz","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_vegaviz\",\"type\":\"vega\",\"params\":{\"spec\":\"{\\n/*\\n\\nWelcome to Vega visualizations. Here you can design your own dataviz from scratch using a declarative language called Vega, or its simpler form Vega-Lite. In Vega, you have the full control of what data is loaded, even from multiple sources, how that data is transformed, and what visual elements are used to show it. Use help icon to view Vega examples, tutorials, and other docs. Use the wrench icon to reformat this text, or to remove comments.\\n\\nThis example graph shows the document count in all indexes in the current time range. You might need to adjust the time filter in the upper right corner.\\n*/\\n\\n $schema: https://vega.github.io/schema/vega-lite/v2.json\\n title: Event counts from all indexes\\n\\n // Define the data source\\n data: {\\n url: {\\n/*\\nAn object instead of a string for the \\\"url\\\" param is treated as an Elasticsearch query. Anything inside this object is not part of the Vega language, but only understood by Kibana and Elasticsearch server. This query counts the number of documents per time interval, assuming you have a @timestamp field in your data.\\n\\nKibana has a special handling for the fields surrounded by \\\"%\\\". They are processed before the the query is sent to Elasticsearch. This way the query becomes context aware, and can use the time range and the dashboard filters.\\n*/\\n\\n // Apply dashboard context filters when set\\n %context%: true\\n // Filter the time picker (upper right corner) with this field\\n %timefield%: @timestamp\\n\\n/*\\nSee .search() documentation for : https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-search\\n*/\\n\\n // Which index to search\\n index: logstash-*\\n // Aggregate data by the time field into time buckets, counting the number of documents in each bucket.\\n body: {\\n aggs: {\\n time_buckets: {\\n date_histogram: {\\n // Use date histogram aggregation on @timestamp field\\n field: @timestamp\\n // The interval value will depend on the daterange picker (true), or use an integer to set an approximate bucket count\\n interval: {%autointerval%: true}\\n // Make sure we get an entire range, even if it has no data\\n extended_bounds: {\\n // Use the current time range's start and end\\n min: {%timefilter%: \\\"min\\\"}\\n max: {%timefilter%: \\\"max\\\"}\\n }\\n // Use this for linear (e.g. line, area) graphs. Without it, empty buckets will not show up\\n min_doc_count: 13\\n }\\n }\\n }\\n // Speed up the response by only including aggregation results\\n size: 0\\n }\\n }\\n/*\\nElasticsearch will return results in this format:\\n\\naggregations: {\\n time_buckets: {\\n buckets: [\\n {\\n key_as_string: 2015-11-30T22:00:00.000Z\\n key: 1448920800000\\n doc_count: 0\\n },\\n {\\n key_as_string: 2015-11-30T23:00:00.000Z\\n key: 1448924400000\\n doc_count: 0\\n }\\n ...\\n ]\\n }\\n}\\n\\nFor our graph, we only need the list of bucket values. Use the format.property to discard everything else.\\n*/\\n format: {property: \\\"aggregations.time_buckets.buckets\\\"}\\n }\\n\\n // \\\"mark\\\" is the graphics element used to show our data. Other mark values are: area, bar, circle, line, point, rect, rule, square, text, and tick. See https://vega.github.io/vega-lite/docs/mark.html\\n mark: line\\n\\n // \\\"encoding\\\" tells the \\\"mark\\\" what data to use and in what way. See https://vega.github.io/vega-lite/docs/encoding.html\\n encoding: {\\n x: {\\n // The \\\"key\\\" value is the timestamp in milliseconds. Use it for X axis.\\n field: key\\n type: temporal\\n axis: {title: false} // Customize X axis format\\n }\\n y: {\\n // The \\\"doc_count\\\" is the count per bucket. Use it for Y axis.\\n field: doc_count\\n type: quantitative\\n axis: {title: \\\"Document count\\\"}\\n }\\n }\\n}\\n\"},\"aggs\":[]}"},"coreMigrationVersion":"7.12.1","id":"e461eb20-6245-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[],"sort":[1617218942061,29],"type":"visualization","updated_at":"2021-03-31T19:29:02.061Z","version":"WzQ1LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_regionmap","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_regionmap\",\"type\":\"region_map\",\"params\":{\"addTooltip\":true,\"colorSchema\":\"Yellow to Red\",\"emsHotLink\":\"https://maps.elastic.co/v6.7?locale=en#file/world_countries\",\"isDisplayWarning\":true,\"legendPosition\":\"bottomright\",\"mapCenter\":[0,0],\"mapZoom\":2,\"outlineWeight\":1,\"selectedJoinField\":{\"type\":\"id\",\"name\":\"iso2\",\"description\":\"ISO 3166-1 alpha-2 code\"},\"showAllShapes\":true,\"wms\":{\"enabled\":false,\"options\":{\"format\":\"image/png\",\"transparent\":true},\"selectedTmsLayer\":{\"origin\":\"elastic_maps_service\",\"id\":\"road_map\",\"minZoom\":0,\"maxZoom\":18,\"attribution\":\"

© OpenStreetMap contributors|OpenMapTiles|Elastic Maps Service

\"}},\"selectedLayer\":{\"name\":\"World Countries\",\"origin\":\"elastic_maps_service\",\"id\":\"world_countries\",\"created_at\":\"2017-04-26T17:12:15.978370\",\"attribution\":\"Made with NaturalEarth | Elastic Maps Service\",\"fields\":[{\"type\":\"id\",\"name\":\"iso2\",\"description\":\"ISO 3166-1 alpha-2 code\"},{\"type\":\"id\",\"name\":\"iso3\",\"description\":\"ISO 3166-1 alpha-3 code\"},{\"type\":\"property\",\"name\":\"name\",\"description\":\"name\"}],\"format\":{\"type\":\"geojson\"},\"layerId\":\"elastic_maps_service.World Countries\",\"isEMS\":true}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.dest\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"25bdc750-6242-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218943039,44],"type":"visualization","updated_at":"2021-03-31T19:29:03.039Z","version":"WzQ3LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_verticalbarchart","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_verticalbarchart\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"filter\":true},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\",\"defaultYExtents\":true},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":\"true\",\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":true,\"row\":true,\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"isVislibVis\":true,\"detailedTooltip\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"date_histogram\",\"schema\":\"segment\",\"params\":{\"field\":\"@timestamp\",\"timeRange\":{\"from\":\"2015-09-18T06:38:43.311Z\",\"to\":\"2015-09-26T04:02:51.104Z\",\"mode\":\"absolute\"},\"useNormalizedEsInterval\":true,\"interval\":\"h\",\"drop_partials\":false,\"min_doc_count\":1,\"extended_bounds\":{},\"scaleMetricValues\":true}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"split\",\"params\":{\"field\":\"response.raw\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Response code\"}}]}"},"coreMigrationVersion":"7.12.1","id":"71dd7bc0-6248-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218944094,47],"type":"visualization","updated_at":"2021-03-31T19:29:04.094Z","version":"WzUxLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_metricviz","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_metricviz\",\"type\":\"metric\",\"params\":{\"addTooltip\":true,\"addLegend\":false,\"type\":\"metric\",\"metric\":{\"percentageMode\":false,\"useRanges\":false,\"colorSchema\":\"Green to Red\",\"metricColorMode\":\"None\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"labels\":{\"show\":true},\"invertColors\":false,\"style\":{\"bgFill\":\"#000\",\"bgColor\":false,\"labelColor\":false,\"subText\":\"\",\"fontSize\":60}}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"range\",\"schema\":\"group\",\"params\":{\"field\":\"bytes_scripted\",\"ranges\":[{\"from\":0,\"to\":10000},{\"from\":10001,\"to\":300000}]}}]}"},"coreMigrationVersion":"7.12.1","id":"6aea48a0-6240-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218946147,51],"type":"visualization","updated_at":"2021-03-31T19:29:06.147Z","version":"WzU1LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_piechart","uiStateJSON":"{}","version":1,"visState":"{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"machine.os.raw\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"isDonut\":true,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"type\":\"pie\"},\"title\":\"logstash_piechart\",\"type\":\"pie\"}"},"coreMigrationVersion":"7.12.1","id":"32b681f0-6241-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218947175,107],"type":"visualization","updated_at":"2021-03-31T19:29:07.175Z","version":"WzU3LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"logstash_tagcloud","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_tagcloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"log\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"showLabel\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"geo.srcdest\",\"size\":23,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"ccca99e0-6244-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218948213,111],"type":"visualization","updated_at":"2021-03-31T19:29:08.213Z","version":"WzU5LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"},"title":"logstash_timelion","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_timelion\",\"type\":\"timelion\",\"params\":{\"expression\":\".es(q='machine.os.raw:win xp' , index=logstash-*)\",\"interval\":\"auto\"},\"aggs\":[]}"},"coreMigrationVersion":"7.12.1","id":"a4d7be80-6245-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[],"sort":[1617218949236,113],"type":"visualization","updated_at":"2021-03-31T19:29:09.236Z","version":"WzYxLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{}"},"title":"logstash_tsvb","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"logstash_tsvb\",\"type\":\"metrics\",\"params\":{\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"type\":\"timeseries\",\"series\":[{\"id\":\"61ca57f1-469d-11e7-af02-69e470af7417\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"metrics\":[{\"id\":\"61ca57f2-469d-11e7-af02-69e470af7417\",\"type\":\"count\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"split_color_mode\":\"gradient\"}],\"time_field\":\"@timestamp\",\"index_pattern\":\"\",\"interval\":\"auto\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"show_grid\":1,\"default_index_pattern\":\"logstash-*\",\"annotations\":[{\"fields\":\"machine.os.raw\",\"template\":\"{{machine.os.raw}}\",\"index_pattern\":\"logstash-*\",\"query_string\":{\"query\":\"machine.os.raw :\\\"win xp\\\" \",\"language\":\"lucene\"},\"id\":\"aa43ceb0-6248-11eb-9a82-ef1c6e6c0265\",\"color\":\"#F00\",\"time_field\":\"@timestamp\",\"icon\":\"fa-tag\",\"ignore_global_filters\":1,\"ignore_panel_filters\":1}]},\"aggs\":[]}"},"coreMigrationVersion":"7.12.1","id":"c94d8440-6248-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[],"sort":[1617218951289,112],"type":"visualization","updated_at":"2021-03-31T19:29:11.289Z","version":"WzY1LDFd"} +{"attributes":{"columns":["bytes_scripted"],"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"machine.os.raw :\\\"win xp\\\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["@timestamp","desc"]],"title":"logstash_scripted_saved_search","version":1},"coreMigrationVersion":"7.12.1","id":"db6226f0-61c0-11eb-aebf-c306684b328d","migrationVersion":{"search":"7.9.3"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218928794,16],"type":"search","updated_at":"2021-03-31T19:28:48.794Z","version":"WzE5LDFd"} +{"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"},"optionsJSON":"{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"3\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"4\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"6\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"7\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"8\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"9\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"9\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"10\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"10\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"11\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"11\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"12\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"12\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"13\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"13\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_12\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"14\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"14\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_13\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"15\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"15\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_14\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"16\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"16\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_15\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"17\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"17\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_16\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"18\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"18\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_17\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"19\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"19\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_18\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"20\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"20\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_19\"}]","timeRestore":false,"title":"logstash_dashboardwithtime","version":1},"coreMigrationVersion":"7.12.1","id":"154944b0-6249-11eb-aebf-c306684b328d","migrationVersion":{"dashboard":"7.11.0"},"references":[{"id":"36b91810-6239-11eb-aebf-c306684b328d","name":"panel_0","type":"visualization"},{"id":"0a274320-61cc-11eb-aebf-c306684b328d","name":"panel_1","type":"visualization"},{"id":"e4aef350-623d-11eb-aebf-c306684b328d","name":"panel_2","type":"visualization"},{"id":"f92e5630-623e-11eb-aebf-c306684b328d","name":"panel_3","type":"visualization"},{"id":"9853d4d0-623d-11eb-aebf-c306684b328d","name":"panel_4","type":"visualization"},{"id":"6ecb33b0-623d-11eb-aebf-c306684b328d","name":"panel_5","type":"visualization"},{"id":"b8e35c80-623c-11eb-aebf-c306684b328d","name":"panel_6","type":"visualization"},{"id":"f1bc75d0-6239-11eb-aebf-c306684b328d","name":"panel_7","type":"visualization"},{"id":"0d8a8860-623a-11eb-aebf-c306684b328d","name":"panel_8","type":"visualization"},{"id":"d79fe3d0-6239-11eb-aebf-c306684b328d","name":"panel_9","type":"visualization"},{"id":"318375a0-6240-11eb-aebf-c306684b328d","name":"panel_10","type":"visualization"},{"id":"e461eb20-6245-11eb-aebf-c306684b328d","name":"panel_11","type":"visualization"},{"id":"25bdc750-6242-11eb-aebf-c306684b328d","name":"panel_12","type":"visualization"},{"id":"71dd7bc0-6248-11eb-aebf-c306684b328d","name":"panel_13","type":"visualization"},{"id":"6aea48a0-6240-11eb-aebf-c306684b328d","name":"panel_14","type":"visualization"},{"id":"32b681f0-6241-11eb-aebf-c306684b328d","name":"panel_15","type":"visualization"},{"id":"ccca99e0-6244-11eb-aebf-c306684b328d","name":"panel_16","type":"visualization"},{"id":"a4d7be80-6245-11eb-aebf-c306684b328d","name":"panel_17","type":"visualization"},{"id":"c94d8440-6248-11eb-aebf-c306684b328d","name":"panel_18","type":"visualization"},{"id":"db6226f0-61c0-11eb-aebf-c306684b328d","name":"panel_19","type":"search"}],"sort":[1617218953348,182],"type":"dashboard","updated_at":"2021-03-31T19:29:13.348Z","version":"WzY5LDFd"} +{"attributes":{"fieldAttrs":"{\"speaker\":{\"count\":1},\"text_entry\":{\"count\":6},\"type\":{\"count\":3}}","fields":"[]","runtimeFieldMap":"{}","title":"shakespeare"},"coreMigrationVersion":"7.12.1","id":"4e937b20-619d-11eb-aebf-c306684b328d","migrationVersion":{"index-pattern":"7.11.0"},"references":[],"sort":[1617218924067,3],"type":"index-pattern","updated_at":"2021-03-31T19:28:44.067Z","version":"WzcsMV0="} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"shakespeare_areachart","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"shakespeare_areachart\",\"type\":\"histogram\",\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"truncate\":100,\"filter\":true},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"mode\":\"stacked\",\"type\":\"histogram\",\"drawLinesBetweenPoints\":true,\"showCircles\":true,\"data\":{\"id\":\"2\",\"label\":\"Count\"},\"valueAxis\":\"ValueAxis-1\"}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"},\"isVislibVis\":true,\"detailedTooltip\":true},\"aggs\":[{\"id\":\"2\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"3\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"play_name\",\"size\":20,\"order\":\"desc\",\"orderBy\":\"2\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}},{\"id\":\"4\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"group\",\"params\":{\"field\":\"play_name\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"2\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"185283c0-619e-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"4e937b20-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218945128,49],"type":"visualization","updated_at":"2021-03-31T19:29:05.128Z","version":"WzUzLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"shakespeare_piechart","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"shakespeare_piechart\",\"type\":\"pie\",\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":false,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100}},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"play_name\",\"size\":15,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"33736660-619e-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"4e937b20-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218950263,109],"type":"visualization","updated_at":"2021-03-31T19:29:10.263Z","version":"WzYzLDFd"} +{"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[]}"},"optionsJSON":"{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"3\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"4\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"6\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"7\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"8\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"9\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"9\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"10\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"10\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"11\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"11\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"12\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"12\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"13\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"13\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_12\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"14\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"14\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_13\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"15\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"15\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_14\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"16\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"16\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_15\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"17\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"17\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_16\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"18\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"18\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_17\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"19\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"19\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_18\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"20\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"20\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_19\"}]","timeRestore":false,"title":"logstash_dashboard_withouttime","version":1},"coreMigrationVersion":"7.12.1","id":"5d3410c0-6249-11eb-aebf-c306684b328d","migrationVersion":{"dashboard":"7.11.0"},"references":[{"id":"36b91810-6239-11eb-aebf-c306684b328d","name":"panel_0","type":"visualization"},{"id":"0a274320-61cc-11eb-aebf-c306684b328d","name":"panel_1","type":"visualization"},{"id":"e4aef350-623d-11eb-aebf-c306684b328d","name":"panel_2","type":"visualization"},{"id":"f92e5630-623e-11eb-aebf-c306684b328d","name":"panel_3","type":"visualization"},{"id":"9853d4d0-623d-11eb-aebf-c306684b328d","name":"panel_4","type":"visualization"},{"id":"6ecb33b0-623d-11eb-aebf-c306684b328d","name":"panel_5","type":"visualization"},{"id":"b8e35c80-623c-11eb-aebf-c306684b328d","name":"panel_6","type":"visualization"},{"id":"f1bc75d0-6239-11eb-aebf-c306684b328d","name":"panel_7","type":"visualization"},{"id":"0d8a8860-623a-11eb-aebf-c306684b328d","name":"panel_8","type":"visualization"},{"id":"d79fe3d0-6239-11eb-aebf-c306684b328d","name":"panel_9","type":"visualization"},{"id":"318375a0-6240-11eb-aebf-c306684b328d","name":"panel_10","type":"visualization"},{"id":"e461eb20-6245-11eb-aebf-c306684b328d","name":"panel_11","type":"visualization"},{"id":"25bdc750-6242-11eb-aebf-c306684b328d","name":"panel_12","type":"visualization"},{"id":"71dd7bc0-6248-11eb-aebf-c306684b328d","name":"panel_13","type":"visualization"},{"id":"6aea48a0-6240-11eb-aebf-c306684b328d","name":"panel_14","type":"visualization"},{"id":"32b681f0-6241-11eb-aebf-c306684b328d","name":"panel_15","type":"visualization"},{"id":"ccca99e0-6244-11eb-aebf-c306684b328d","name":"panel_16","type":"visualization"},{"id":"a4d7be80-6245-11eb-aebf-c306684b328d","name":"panel_17","type":"visualization"},{"id":"c94d8440-6248-11eb-aebf-c306684b328d","name":"panel_18","type":"visualization"},{"id":"db6226f0-61c0-11eb-aebf-c306684b328d","name":"panel_19","type":"search"}],"sort":[1617218954375,161],"type":"dashboard","updated_at":"2021-03-31T19:29:14.375Z","version":"WzcxLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"shakespeare_tag_cloud","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"shakespeare_tag_cloud\",\"type\":\"tagcloud\",\"params\":{\"scale\":\"linear\",\"orientation\":\"multiple\",\"minFontSize\":59,\"maxFontSize\":100,\"showLabel\":true},\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"schema\":\"metric\",\"params\":{}},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"schema\":\"segment\",\"params\":{\"field\":\"type.keyword\",\"size\":5,\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"}}]}"},"coreMigrationVersion":"7.12.1","id":"622ac7f0-619e-11eb-aebf-c306684b328d","migrationVersion":{"visualization":"7.12.0"},"references":[{"id":"4e937b20-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218929689,13],"type":"visualization","updated_at":"2021-03-31T19:28:49.689Z","version":"WzIyLDFd"} +{"attributes":{"buildNum":9007199254740991,"defaultIndex":"56b34100-619d-11eb-aebf-c306684b328d"},"coreMigrationVersion":"7.12.1","id":"7.12.1","migrationVersion":{"config":"7.12.0"},"references":[],"sort":[1617218966119,191],"type":"config","updated_at":"2021-03-31T19:29:26.119Z","version":"Wzc3LDFd"} +{"attributes":{"columns":["_source"],"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"\",\"language\":\"lucene\"},\"filter\":[{\"meta\":{\"negate\":false,\"type\":\"phrase\",\"key\":\"text_entry\",\"value\":\"Christendom.\",\"params\":{\"query\":\"Christendom.\",\"type\":\"phrase\"},\"disabled\":false,\"alias\":null,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match\":{\"text_entry\":{\"query\":\"Christendom.\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["_score","desc"]],"title":"shakespeare_saved_search","version":1},"coreMigrationVersion":"7.12.1","id":"712ebbe0-619d-11eb-aebf-c306684b328d","migrationVersion":{"search":"7.9.3"},"references":[{"id":"4e937b20-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"},{"id":"4e937b20-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"}],"sort":[1617218925706,93],"type":"search","updated_at":"2021-03-31T19:28:45.706Z","version":"WzEzLDFd"} +{"attributes":{"columns":["play_name","speaker"],"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"speaker:\\\"GLOUCESTER\\\"\",\"language\":\"lucene\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["_score","desc"]],"title":"shakespeare_saved_lucene_search","version":1},"coreMigrationVersion":"7.12.1","id":"ddacc820-619d-11eb-aebf-c306684b328d","migrationVersion":{"search":"7.9.3"},"references":[{"id":"4e937b20-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218927635,25],"type":"search","updated_at":"2021-03-31T19:28:47.635Z","version":"WzE2LDFd"} +{"attributes":{"columns":["_source"],"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"text_entry :\\\"MORDAKE THE EARL OF FIFE, AND ELDEST SON\\\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["_score","desc"]],"title":"shakespeare_saved_kql_search","version":1},"coreMigrationVersion":"7.12.1","id":"f852d570-619d-11eb-aebf-c306684b328d","migrationVersion":{"search":"7.9.3"},"references":[{"id":"4e937b20-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"sort":[1617218926603,23],"type":"search","updated_at":"2021-03-31T19:28:46.603Z","version":"WzE0LDFd"} +{"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"},"optionsJSON":"{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"3\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"4\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"6\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_5\"}]","timeRestore":false,"title":"shakespeare_dashboard","version":1},"coreMigrationVersion":"7.12.1","id":"73398a90-619e-11eb-aebf-c306684b328d","migrationVersion":{"dashboard":"7.11.0"},"references":[{"id":"185283c0-619e-11eb-aebf-c306684b328d","name":"panel_0","type":"visualization"},{"id":"33736660-619e-11eb-aebf-c306684b328d","name":"panel_1","type":"visualization"},{"id":"622ac7f0-619e-11eb-aebf-c306684b328d","name":"panel_2","type":"visualization"},{"id":"712ebbe0-619d-11eb-aebf-c306684b328d","name":"panel_3","type":"search"},{"id":"ddacc820-619d-11eb-aebf-c306684b328d","name":"panel_4","type":"search"},{"id":"f852d570-619d-11eb-aebf-c306684b328d","name":"panel_5","type":"search"}],"sort":[1617218931742,88],"type":"dashboard","updated_at":"2021-03-31T19:28:51.742Z","version":"WzI2LDFd"} +{"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"lucene\",\"query\":\"\"},\"filter\":[{\"meta\":{\"negate\":false,\"disabled\":false,\"alias\":null,\"type\":\"phrase\",\"key\":\"geo.srcdest\",\"value\":\"IN:US\",\"params\":{\"query\":\"IN:US\",\"type\":\"phrase\"},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match\":{\"geo.srcdest\":{\"query\":\"IN:US\",\"type\":\"phrase\"}}},\"$state\":{\"store\":\"appState\"}}]}"},"optionsJSON":"{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_0\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"2\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_1\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"3\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_2\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"4\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_3\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_4\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"6\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_5\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"7\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_6\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"8\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_7\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"9\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"9\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_8\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"10\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"10\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_9\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"11\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"11\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_10\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"12\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"12\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_11\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"13\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"13\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_12\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"14\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"14\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_13\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"15\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"15\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_14\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"16\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"16\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_15\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"17\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"17\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_16\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"18\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"18\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_17\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"19\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"19\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_18\"},{\"version\":\"7.3.0\",\"gridData\":{\"h\":15,\"i\":\"20\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"20\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_19\"}]","timeRestore":false,"title":"logstash_dashboardwithfilters","version":1},"coreMigrationVersion":"7.12.1","id":"79794f20-6249-11eb-aebf-c306684b328d","migrationVersion":{"dashboard":"7.11.0"},"references":[{"id":"56b34100-619d-11eb-aebf-c306684b328d","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"},{"id":"36b91810-6239-11eb-aebf-c306684b328d","name":"panel_0","type":"visualization"},{"id":"0a274320-61cc-11eb-aebf-c306684b328d","name":"panel_1","type":"visualization"},{"id":"e4aef350-623d-11eb-aebf-c306684b328d","name":"panel_2","type":"visualization"},{"id":"f92e5630-623e-11eb-aebf-c306684b328d","name":"panel_3","type":"visualization"},{"id":"9853d4d0-623d-11eb-aebf-c306684b328d","name":"panel_4","type":"visualization"},{"id":"6ecb33b0-623d-11eb-aebf-c306684b328d","name":"panel_5","type":"visualization"},{"id":"b8e35c80-623c-11eb-aebf-c306684b328d","name":"panel_6","type":"visualization"},{"id":"f1bc75d0-6239-11eb-aebf-c306684b328d","name":"panel_7","type":"visualization"},{"id":"0d8a8860-623a-11eb-aebf-c306684b328d","name":"panel_8","type":"visualization"},{"id":"d79fe3d0-6239-11eb-aebf-c306684b328d","name":"panel_9","type":"visualization"},{"id":"318375a0-6240-11eb-aebf-c306684b328d","name":"panel_10","type":"visualization"},{"id":"e461eb20-6245-11eb-aebf-c306684b328d","name":"panel_11","type":"visualization"},{"id":"25bdc750-6242-11eb-aebf-c306684b328d","name":"panel_12","type":"visualization"},{"id":"71dd7bc0-6248-11eb-aebf-c306684b328d","name":"panel_13","type":"visualization"},{"id":"6aea48a0-6240-11eb-aebf-c306684b328d","name":"panel_14","type":"visualization"},{"id":"32b681f0-6241-11eb-aebf-c306684b328d","name":"panel_15","type":"visualization"},{"id":"ccca99e0-6244-11eb-aebf-c306684b328d","name":"panel_16","type":"visualization"},{"id":"a4d7be80-6245-11eb-aebf-c306684b328d","name":"panel_17","type":"visualization"},{"id":"c94d8440-6248-11eb-aebf-c306684b328d","name":"panel_18","type":"visualization"},{"id":"db6226f0-61c0-11eb-aebf-c306684b328d","name":"panel_19","type":"search"}],"sort":[1617218955401,140],"type":"dashboard","updated_at":"2021-03-31T19:29:15.401Z","version":"WzczLDFd"} +{"exportedCount":33,"missingRefCount":0,"missingReferences":[]} \ No newline at end of file diff --git a/x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.ts b/x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.ts new file mode 100644 index 0000000000000..07fe0e910ea99 --- /dev/null +++ b/x-pack/test/functional/apps/saved_objects_management/import_saved_objects_between_versions.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. + */ + +/* This test is importing saved objects from 7.12.0 to 8.0 and the backported version + * will import from 6.8.x to 8.0.0 + */ + +import expect from '@kbn/expect'; +import path from 'path'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const kibanaServer = getService('kibanaServer'); + const esArchiver = getService('esArchiver'); + const PageObjects = getPageObjects(['common', 'settings', 'header', 'savedObjects']); + const testSubjects = getService('testSubjects'); + const retry = getService('retry'); + + describe('Export import saved objects between versions', function () { + beforeEach(async function () { + await esArchiver.load('logstash_functional'); + await esArchiver.load('getting_started/shakespeare'); + await kibanaServer.uiSettings.replace({}); + await PageObjects.settings.navigateTo(); + await PageObjects.settings.clickKibanaSavedObjects(); + }); + + after(async () => { + await esArchiver.unload('logstash_functional'); + await esArchiver.unload('getting_started/shakespeare'); + await esArchiver.load('empty_kibana'); + }); + + it('should be able to import 7.12 saved objects into 8.0.0', async function () { + await retry.tryForTime(10000, async () => { + const existingSavedObjects = await testSubjects.getVisibleText('exportAllObjects'); + // Kibana always has 1 advanced setting as a saved object + await expect(existingSavedObjects).to.be('Export 1 object'); + }); + await PageObjects.savedObjects.importFile( + path.join(__dirname, 'exports', '_7.12_import_saved_objects.ndjson') + ); + await PageObjects.savedObjects.checkImportSucceeded(); + await PageObjects.savedObjects.clickImportDone(); + const importedSavedObjects = await testSubjects.getVisibleText('exportAllObjects'); + // verifying the count of saved objects after importing .ndjson + await expect(importedSavedObjects).to.be('Export 34 objects'); + }); + }); +} diff --git a/x-pack/test/functional/apps/saved_objects_management/index.ts b/x-pack/test/functional/apps/saved_objects_management/index.ts index 602f87c1af38e..d474755af4676 100644 --- a/x-pack/test/functional/apps/saved_objects_management/index.ts +++ b/x-pack/test/functional/apps/saved_objects_management/index.ts @@ -13,5 +13,6 @@ export default function savedObjectsManagementApp({ loadTestFile }: FtrProviderC loadTestFile(require.resolve('./spaces_integration')); loadTestFile(require.resolve('./feature_controls/saved_objects_management_security')); + loadTestFile(require.resolve('./import_saved_objects_between_versions')); }); } diff --git a/x-pack/test/functional/es_archives/getting_started/shakespeare/data.json.gz b/x-pack/test/functional/es_archives/getting_started/shakespeare/data.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..dcd31ef31085e08d1d0b7952e4ab552f3fb1a0da GIT binary patch literal 4024757 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≦K0?^9e`PKx;gKf>KZtDJo3oqtL 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νU1O5l}8*fq^5B|q^99T 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�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°qSWE!93%D zmOQO#dhYGz4p@I?^htECAPeWmu=hIMKEUc@*V`=WN&-=a4pBgLh%BPnnGyYLc3@z$ z!}U=(i|yERuYodDHja1ImSEA)ZQ;R{;9mtC^y^J8 zhtz7f9OdbZsk6TS(#1NL7$u?OzLk$-%q~LNfV3*5u;ZqZv@S|3+=MW#y*7_;QYV zgt}UJTks5NB+%qYp~9R-Gd(k!phpUS5miCB?;UL&>@6M>RiG#c@CJj3VGtZd0STu+ zzrf*y9TXdX7Qbt>1^Rwpvf4|$nGwgqjOc^uOC8K9;708Mc&1W_kI8}nq6U=-qoZd!PTeJ{?9ew++;02X9qA3TY=_I87 zl|M~*{eMGM4xRT_=}xu(ne=-7^|y~7e>=tj5K#qEQmYF4c(y$fXx@za_`nD$%GN#v zGB-cv$mgeBtN_-@RrBXzy#Xm8T$%O%4Id)Gr;B99L zC7@Mi(cs8Sr<>9UX?})d8~wnsg~!z?=Hp6w331El4*$g()Oye$Q~+cSqFpdev;&aC zQ1Hq1DJrOaZ_CBd!)7IHu~ror6WFrff(jOw5?MjcacFb$(1!UX@VqmlvNPuXVd+0q1&f0A{`ys!ryLni^3FuH5g@;%XR$lYJM>*$w`K>m#|q5v;5FD*1Gs2lOVxc}NVg>Dp<%@F21LXg0KRxfBm4IH z{q6PFBNmn5M}Q{uA@KLQ1;3XiG*=}KXvA^x<2ecA@ge{E^WB%v|M>5Xvc5sp>OR+b z5fujYk`5hJd;4K?U1Elzi5<+zhg3t0^q@%&n+lDM^Y%5h2`}2Yh(H-~ zKpBxxCSp)d3#q6VAV%&jZ7`SE6%IL;)x+s!b;K=~!!4ZjXG9}0HHzWSfX7o-71GPV z5@%%h)I(P;CDP7>VbByNF$L=hW&N!&{l-3aRQWkMZTd;?)Mx-+7B18L1dccox0*qq z*nUVz!5AL@K>qagw>v5&3Z`nJk4{Gy&D7xsvxWRy)phpU%?<`6wz}8dYY9j*4oGtf z(rA9dg}=Qe)6B^Z^cQH_BY3M8S-9BE12Gy@$Co&rImg?XlW*rFM~~rj=0xib#8ULC zaxz!)}#(l)0gckV;g=m_}9nNs7)BFu;$r~Gvme}_5DmAP(aP1Aw zoj|uw0?mX2P4axE*#*!9>#JVbQU}}frY*`w!9>|smL1Y_?WGrhlfg33en>#UnT3~u z^Nq-15D$-SUqJehqy?kqh<_SfEC<8%qQj?hd- z&szyhGY(A20H5XO$MnwwrLj|YIHcIC>p*+1SqoH25yxg{6q0c%PXw=iGI>x(e@mMx zJ(O)ffO{CwNF5n>=Ka(T{UFhpk0OrX6w!s}JiP#>zEVDLbGDiNkQ8g|h$4ZD+?pT{El4K8^#bp75Dn_(Eg8K)m* z@2RdVB(l?(BSggsjprp|6a;<lX)CzK*++i@D_ZB5zq-nKPc(`gAw)F|e7Pvd81 zN0)d{Z%~)%S~ptR6AFD3XEp{-!d-7#2{1W?DWimbMT1McqBk9`*(@~rVkvKJMv>Gp zEO})o0Vl^3n$S;ZaET}MW_6gzE$t6d>8?X5A>fb|u#snDl|)G5Xxc|~)7}r_3*h+y zmTC*oCqQa55_MroRN=zN?N&xYC`uRx#!>prz<7QEJm1+I6g@Z4?8%0Dko3J7DbHxU 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�}xxXgUTEV)+leKH5jw? zrdbbK0#}~{SD(f;6vcHqj6>p%vh5%=_lIehWoJXtMs+>ZM!yeWI6rJ9K#e&-C5KAk z33SC1K>deSGjBbv)GRc#kH__d`U({lFrP2X8wpes4pix26v^?Gv-zao)wa}*K98*t zu3X-`iO9xOB5y#*kS7HpktYRLr%XWK-(G+H@5SkUG2Wsa2X<|#yB^#| zph?o%KVp-nWm~RF2~usq(Qpc;8%{?fd8^w8^}TBIj~d;9=7IoD5yPN3h2mI4F?{H(%0P1lpJ*r>7)Bf>ZP+Pk{Ctl0J*J z{MWxKo4X@L(M^!P+wgoXfha=@IiOm|_CJ}}o0?6_0@+BUfeqSu+o9ds-xkn^$L2gd z2zy(T77{IyAmMmc6Y^ONBQZpMg5LlOo2AXO4z|j++{CC=Xc*POvYcs_B6)nmaY|G2 zl!n>)F+~Ya91-nC!Rg)MD-tNC9Dyk%15+e;G6T{{{V?5JXitGGYS&|khx}Bz=AA@9 z;-G{E8JX!v+4&*;rZM~McLx0{K?NNeB1o=>lt0H2a@4^Qryo`n#!&) zHH0J(QX6WGc!Ju9O{;`n&Ya_b=Hvm51rO*C>>`a7X{Ywim<>u(SWS{RpgBiu&&k++ z!p7VWGCwE%)Ni~|i^*H*eu=!WMnY4=LhsNRqN;!%|dG6<2A z%kd(FbnkyYzZkxE7_;gUVivd}EjQqabmfgL*V%z%W^38nEbk=%=13Gmx@&!ciTJ4i zqobGmd|1j`>G3Rs3WVE&7-#-Pt5q$b_7ZYTPs1>y5sohTM2wx74Jcl3${OgTvk_;U z#b9Z+DeXrJsJ?|9Q`eB5y883WMYlWSWV2ec)VhFlVNt?sp&;q&u8BmfN;!^e zN*`BAxkn<;a>D?aTaAv$pg!!jb(|yzj9p(yV9F8yDId!4>iF69_1C-ipKjiL`ARmp z$O#Or;qTxTeT4S4eGcvc@Pj}UDxiqG1`GqjkkTX%ufoe<`{>Q^$`%Igy;I%#q#@?R zcP-(6{_4**1OoVStV@K{x`aKu^UDDILARs!srd%A7WleSicss-XyG-nvdMDv6K(3e})pKN5o!Xv0iAYpB< z`!^EMF+71{=& zVYS@Z64(PPf-Fa13dz89!k*Nvu~)cLd)*S~W+ZE^HM`kuqRM14*8^p!5D}hr%r2|X7*R!mzmAs*SKV=>_wLd zL>%P)h$8n#SMmJ(s9yiOC$|glD6rRWkX+@MKoabqC}!aOMe!u>F9i2<>ArpRT>bth zpW2aHWo&_@mBgq&;%GQW(+%ek4O`^2N+&tfZ%2yScY6^MM>64vGzovC`Sr`MHy>|~ zGMK(D9>8n`)AWCDPqX2cGSDERG^CDQAZT?ywWRmaR*W-mV znRs_!-~aUGvxIMa8gcN)qiOy)9KRFhK%d^pM(4LTpMHA(^#~W=f9s^%uwv84 z&YsFq%5@J`l>+H`%;8ZN&q-jTM2EhZgs1^{A!eEr&-zgL)4wIDvp3`y3bFCog_1XZRVUlX%{j=$X7n>irD&L7_G; zn}Zztes;*1Bw+P9U=2uE)APgn4(i2G++Mqf_19tHzMYF$wc1O-nQ*|FQgBLog9Z8Y zaB`v7o^DpHErvE_r)yBn0ix2Mah16G0SBl732G_`YDjI3fQ}Q8KUS6QHkg*8h=JP` zQQK{+H@fM{2Q6{=IjFU9NES(%oOSx7H!Xa`Y}{mm6IyElUQ*1V%p6B#vXq^WiQatv zOo2D`aDE*cTdOxqJwwWDrOJBdEnARc_S6ERJZ^{dHiPOV=-x3$|2>Y#23#iTm^xLt z-+tGCTbjByjkg`DZP|}|VSurPR{~LvOf(`h(JZ?Fq90592YQq;SVJlRd8z+qH4bk;}(qE`Nef_%lyu6cUWMnfK43?6Ehu0{)l^5>T@q5L{@ zpg9I6Aka4+1X|XJa?FC#ae;QE4t#^KEtw=h= zu|pJ3?+~3Iw6FT5{k1K?1>5iT2j)O6pif*Rc$=pc+D0u#C*tx(0=t+4yM)Fr6FYeE zRJHxH>NUEXJO0bT%BS_Vl~&!*>Q15!%wggYCv;r#=jTTgvc#fQI|wZWm`WOO^}t3O zv^3mC0IUQ_Jc=AkY;j6o?-Mjwp9M9TtP!ynw9}6(*N>ZQh^*TgT(o7emJnlzIb_-5 zjLgfQYyu^mdc$ey5PKr+{r84uVcN!Z*Op5VVu3{g`(=0!B=*;04t2ITi)l~=I~s93 zeOk?`2PYpqoNi%#At7TCXB@9+M!%w=xQs=d5L*I=jsG34|MnY+(4KR=n|W}4R!2OQ zO}@ueQh9%ovggB$qaT?+LkNuJH2mXfMljTaZuN17I$-tQt3jN$MWX~;6y7&lR}xtf z#{yrRlN~hw6rTUlpx&aKVr6WcJ|GLB=EmEY2DSdnT4IosGgR2goUX7>a6&m1&lM`9 zAJ(NElm%dk-~!r(5RWk7pm8KLjl(~IaC8E)#_dF_!}_yVl@B(Xe~k=G3C-dhT{v_ZOgXopJI+$OKhGc93+i|CTaMY+(ajtD#X7)iViwQozv~q z8n~FRpNyrpWnZoa2}_wI;>h7+I)~5l3t+lBkgq$h*Yy^b_6sm5U+VI~t@M=wZsZBa zc4R_tNBX&7^v;NjUk_DZ_Cujz5eTGCQID_F)r0OF;Q&genFOjFse4SP?s;;4RKM9Q z^JZ+bLoWnN_`|-m)12@6c39%Vnh3BQaq1ZYLY|%<*bgwX=r==mkl++?DN@h8 z+^Mut>BdR#IbTkjSBYTCQK%<5jcIm%Oy8p-59|Y>MvQ0R*W(V0$YMak;cu3ta~jF~ z{79l$$IVk5f+d#OWB>Du4O2F?x6w!o^yU+e;d(+3*8~3oSN;~qYh^zwpOkt87G!r? zTwzrW?qQ(}k3@)1V-92!8rk^#$bL{T;ZU7(<nbL%O= z9>V@y+T!@d^`B<0Z+{Rv7SioWGLCm3qu+tx0`I^((|s?%S(OrdR|y9fB%!$=K_J)A zOa15X{Gakti5SlzPm$2_6hSzbzr*Rr z4Ro3BUrAsWabOqI*hS~Z4#Kypz1pEI1}C4nGAs-F6EsvhNn@8jea(1GVQ3P6tCI0+1Wj#KEBh4t4>_6KQ zyB+=;*Xi80rq^9BfhfnR4CqrCXXi)sgLV*hAb3=1=QUKoZ??LvOPg4lMxY>1Id~sw zKqr=QettY%$*6GO59Yv21A^GSE*_IgIJOdiCLDm0^R^(76Ee)^L{^EPgGtaD=pc|% zE^TUA=m(&9nS(K&$T{V>_aS}nlkEJkUZX?@Fh5p9qgz$I!h8Rn2`PLN0YEv}ODWA> z3X=T%fZjAt@C1rVr`G}F;8yoAE3#SW+LR(5Hz@}lB&F#fK_=Jc$U?^;4R{JSs$Fh6?*Vvt61Z|if0}I*((9_-efIZdL-w1`Ih@76c@+$=Q)TB&|4JzOf0w z3f%{l(!jfbnra6FOW4Am_ZVvhAV zR$=3EjsUU|1A8ZnG78zmKff=}FVMjLJ}am+5G5?CxM~Yd*b>4xSG|Qj zb@$%E=8VP1@gTkk-PYVoRInLGza@*wTHu5x_T8og84Onn5jDY7FZ-kJ@l{+xf#Nel3Bno8*e+3{PrJm!$DM7Ei6^zAaTZ|4hc)e|RF zj}2xlfDE*ops-xFC5-k)d~u$)(_0CL-7M$0`*})3n_c7?op~UqK7(L%rk6CIGn7U7 zoGgocKRiF0U%cOkVvR;dZnF-$Nvp~xO}2Pn*l1OD8*iai*Gufz<{a*jxlhA-!UpJ% z*6v|6oszbrWwAY}OWpPg+MzCqg8u#E>nd?*Im{w+pMC-Y!6zUmlG42fJ+eaW@rA|B zh(|)NSC{LJ0GmG#8It@wjOd|re11UjO)d7oG=)0U9>@lS44`gu+%#J`!J>r78xTeu zpvE+)$pucS{^tNQ57-PXQN~_*EqHHNdaagw2_#bvBr_Vx6H?Rf7Z`rnE)J@CID2k) z9)9)W(PIVa5C=PxfzA;BTZIhuPp-P}7x(DAwJK5e=30G8#h zbFxrwQSVoHPxl>a+Yd@23*}HO$#a_cC@4fYiRQOWSpmBo1hH+cWP?y=llxU=e-K;R z+oA~+4rIzt4riM@r}>Wa==_lW&Hgx^{cBesl!?wtJFT}EmTU0d}4RlK2w;+`}3Xc~CT~%L8;F@sYN-ybz z=>>3YJo_HBd#924U5j+IR74_qZ3L*e*_?soY(IofsZKBr`@sTgQcv%Cr}nPAe}Prh z428BZZC#oMj4~92uqy#%BMxMvXSQ_YlGRDIs5>*B)(-xmDwyWY@Hb7rf4PGFvZ7VX zO|4{LjX7XVXjtXiQrXl={WL0>%^WqqhZgjz$JbTierf0JRCO=V-OuJR2c|KNX>y9c zoxQ6+@Cr^9-zndxGLIt7S~SXrY9UXJ)v)UDmPuu=d>I)nl~JbMWDc6 zZ+e)EJd|CDdn2y|Fiknm=(Hrh9GC$qY4G;u^XKc4Tc&#n+%gW_h@q$b&+%HC_|xBg zc<=rC<^3J8{zXqd8{>|nJ%c-Y-z}_Yj1EOoVW9aWfNRFla>_yqSNUWpobEL{hnCg} zWTST38wnISUP@~85ni3r|NODB(o}o-dhawJ7Ojor66?qCqjTVwk@)%I{p0Kz0Kv#t z2tSV3F(Y3`Kaftz^Jn1e+o7_*#IXh_5G-`pOMsbkG&88lTX>3+%MZtzsqCi!7xXvY zbq)K*UaeZ7fJ0-$`ByEJt$8ZbzVYrxqKE{<9OpGB&ub8fhaEpAB_GiT%n`ynIIx9R z*phtNi#!2OTLmXT>d(nj8=T?PPK%CX@Bvj9Jiwsr4C&@uwJm#7Ngx`842TAkrq;y&^;)S zH(CPJgag!+0`-Kv>ErufZ{CsWP0oU7Y%wcG0ao)D&@*X#pic(8J%Q3w0r-v5+Z7BDO`jb-5HtTF#-MoY$WeFw& zpx$hDukE276~@a?^ zAKyViYQNi>lH26t5ZA>`dY!NvFaIPMctVSDE@i;_1D zauLeLyH%~tFvl|fpMz>aV?Y8~2H^|)Apwc3+=2DUjX0MW-J<#0qc{Udt*);mkmNX{ zK7B^BQ)e5urYcI^9x>ZML|;hY7IWZ6rs$ENL-*w5;uDyuGzPSQ7Oim&V(exDl{_ik=(u0}aP8*lV~6i)4y`b6+zjxZAwVJ5ut&#&GOk|6M1+&W9w z!MAY|V4aKSOVhT)wiofB1w1%F4M|Ybvx5pufTBXN;44(Kuxx+p)tXT+z$9={vUEIQpj zAi?#GSG%t{#Si$uWosi!D2hh+h58i4>G1{^pBB#tLINOC2II_Jm77@bXYn26YS6HJuDPSME;N?LWN|6Iz@f{*|#*CKCTsVXMjEP=oRT! zg4Y`dX<;2Tk9?tIB)u-CUTaur<`{M-_#Y8mhiK zln4^z_Am-Lu%){s^XvlH-WhMHy58Bw+1#qvy5C%RUtk4ciDwv8)+7*(I1r6#MDq(E z`f2Yuf~V7>#J3f?_b)t@r3Y5B#ko-HwQfa@Dn~XDli7gpM;8G0wr}kNfcD0yvS1S~ z;L{x>0$xK!0LK=@sw9BrXh4V0G@u1L(9u*4aJvD$bZo7(G>Z1$%pw zg5FS>+6xUbw6KX_BvK|0ifl+xWG!}~oWE|A5GybpcA6dQSYYoZOgXM?N?+Sh@Y-gR zgihCtZ|>dAt#Rt^En#BRx$UeKwYhZKsHW6w(UC+=|20Ep+mJk66Gmf$|Bg;ijCS#>zzvgl12T@1Gowq+NHE!qCl_6zC4xqqo6??4SJl796Y46XZc`eGaZ|`4 zW)Ws&BhQcJLQ+g^WgZ$%NTY*&;lez+nReRyy_oEpG6$P(b1f~$BAHPV^V|n zx2xs~XKS4)}5!KDnwUncO9)x2i93qk0A9jaqcNSxQh1BcI{5i+noY zN&WLf_yLmdgHcXBifMNS_%)_kzk2x+CYUaE+q}JiB3uI9kON)1bD0XZgHm!L40H6( zNL*|N7f1Uc>G@-D8cbRgywoUT2pb%~-Ok+E+d+R4g{Rb33ydYAfa7`x^!3gJDevi2 zF=JV4L{q+9! z_WI+s1cVH|@`#?C`CF2CHpgGi&0p}F zBpo_eM&!X&+UX&<#Xk@JMF%YSUN@$dK$T;F6VU^lV4ljMnxzE07@TggX=$HKXtDLJ zYSt1ogDB>RJF!p0n8|U8v&ja9&BnWX$Am>IR&*2qZV{YO$R*3h`L{^qMI6NU=o#Ys z3Ck_dp3Xd^4Df7vjyxFfV;+B1nXZGx-L-^tQw$=sm?&YGQ$z_lrw9T$T1-9_)xWGj zeshV2%)Rk`-IP_i-Ig{mX;AE{_7bNw<;dRClwQw>0@$Y%bn}NsLV_a78MuT|9?;O{7l8KKiI(C95#T!(=%CBjJ0H=q_mD>@ zK`D-Mjv$}YK|Y>e0M{=qBuW}r)4?|k#Lgt1&z$4V=k%SACGUJl-FY~gsIl9W>$PeN z*Z)vnRf5)x*UD(YM;t=sQBLRdadH7rAE_LTYly(B*(r&PGv=71#q=C4NJ2pjW6FUQ zrFvY3i3w7xw?@Q{Ddw10#Pq!46wk09NHMb?0Mcejm1zqR03!|n=>#*C3^Dl+;3u4= z#~i)&ICus`x#p4YPYo?@U}r)(J#wtFoBE63fZry7CaP-q&~kH*|T4J;uwa@^|$sJ-7p02^}vo6x{! z7dfxn0o_2$W^@N!-s=N%W^GTb$nEDyI72$&%<_|DB1tqSRnKm4eH!Gl9kCq}B^#Z# zhYf3QUAi}+7D+(Ej00D?7|I3nr@()fEBw^wH0U*?YOe-$8hiEEx?c^I2(Aoc%{ZdR znz?@gT;Hk&nn|#dwlP)V4O{ygTnKvDJKa9D+mw|AcP{4GOO5Hh)F2m30fK2gg}yZd z$Vu7<73y|_M|6g=3XdkskS3HOl9F-6@w`U#^O{ROuL*6#YE%F1Qz2?g`>NHdkdTRv zIowC$m>kB1bHRivn9BNZR^ukB6F)6R`|pKC@*bZAn1z6x8mQ1oWKGGc}P`~v8H!?x&+g>cn- zaP7e`*!zIJQk%qfkP{$DN8&Z$aL|d9ghn;K0IJvR7@6GOAUp^7DjOOAA=L5Jb(G{<(Bfq45rl+Z5m}U8)X#^TW%6(Gv(+{rDT69Jb{Dr9E6iH zUw6jqM>et^&*(-~Fz7^GZq+~1azs$&XsD#;Co21s3QD-n_RGeGeF?ZY?r}=r;~N2sg=`A>1VMfPdZc}RmsUNEeVIsS~6|3 zb`c!kUG)t$sSOkv72x#O()Y!(+FpB2{?g&4Q;Ugun)8t?ZL_?v6CwaKpA?u$@Hc#0D6L7 z%d@P)obssynWui{-IaaW*l+aek>GAXf*e=-D~VQa!a?UsLh_Ub$6xxxD|m!ax&|6jGpu$pw5DLCYN&Tga3F%TFvT_1@+@_KQl{S5{=7CE?gr zPh#>}jY6@rI!QtLpqBTAXHXf%(KttDR|n#n&HxX-tAI{!l5nJ@Nkl<(5kXGt;BRE;ZPt>rWJ@0SvmUQBvt0{sAAh_iDV?` z&=sZj7W+p)(TQH<4d4(bPNv0)0oG(Ld0?mJ6}QH_@it~Fv0<5T$Py9I~xRPDbM_ zxd3EuO^rtm%s*~bTL7KP7C4Zf+hbVUoJTiMMDjzL&KXW&IwwzIE_n*4DXYNxUFfRR zj`_b;ZC^=fN~9cXyy^5BFG84K0Kz+ia`ot$wAF1{bskD{EKLJ8s=Y|pE#;7QO?|qJ zIhVBi%ZRS<+7z(t_p(s?(Tdjj(pCF$vI}iEwVz4g8gSqm(zr$!z!lmVUD+(1E{9sJ zROzJmK#vRL4_s0S5;M+ZRRUd(23$%v;Cw-I@5$LNS}ALs1i|Svtuy&Pv@||}N|$|Q z*Fz)mvU2RJrC~;+D)_WU0pV-`I!A8GwtD>C%KliO0ec{(Zrbf?%Cl#Yui*H2ia9#*SzsnN`0l$L@3hV6L! zHb}guF~@rv6YptoC5NX^z`2BVze0m+jlmZ2mu0UW;2Z9MfFuEB$N^dn`C#;nojoR6xeM#Kj4jMQRHN2c{RGr%#g8_0R|q(^HPkopgG0=V+h~a^Xa~ zlBCQ0dh_|+_1EwJ_iT`Hba_*%%M0E#g61ky<~`Jd~B zJ&phCd0!3`V2RY5Lo_d)7R?jn5=^~@2gGek1MJG8lR%AuFp$mX)R_|%5Dq9|=1mD) zff*v`0lVH0dBAcisx~uWKkAwWw9_b2{2<0FcT8Y=u%*| z3K%ObXgZDGrSlfXR?s$RcN$wgJy=98OlRsV33O8qbTbm&wseV2)^utL?&!~5`YC%q9ub~ePz8=7s>Wq`dS!gXWSIB&h7tznykKYM+!Xmr` zQXE-gKxTDL#-?%Yv>dBW;&SNB=PL8o)76+FYC&ZL4keFR*#v!Db#bm?w1ZCP2aJ#NlH!d)26pRtd z4vA^)U_-j|kiv!07ZRXy+~I`0!+CfKP`|-Qzi=<(qAY+2eKk^1W^SUYwo1g(J>&2) z%o4IqnJ1UP6xzJArv-7Syrm7VbB2I^4~cD5(7q#t(=V7%89O`v!khMH&-ytf#;0hr#CZiV+3w*&Y@n3Vgvwby6AUR;_GN>5k~@?~Z6^zwYS<+QP3S@Ju-HOi4V$i{OcZO~@lc zi)U4p&hT)2RUN`2kft1vW+bH1B_Ms=cP#V@Hpn(*?KYe{k*Y#IPMS+#@|bslhJ zQvsPx1(}>6)+CV#!u!AAPkMwSii$~gE$7$ew@!nRY%-UieGfX1$ zIH6EG;hp^Zmyf@F`h1)o+h^nvNor5$9HvisoRi=Qx@k>i>_994p;cQ{9%xuLtPI^@ zM!qe3iIB}9x0Wa51rGi5qxt?pH%KYMEl+2oX)!e`&*uKXfwQp(sMP|~pPa)*Cr^D6 zQn>><$%y%R+~*z-B$^V=yxYE2y}9z_=0=J#yqAD2YJI5z#X; zqQ~>|Lwa`@qA71>uf9z!?F*`$d2S0o+){#9lyhw6<qegk`9=grd&jW=vTq`trMzLk~Z6&@Z0 z0qMJ(WB!)sWC9fnM*Dd3F}*LVaWMd+JxVZcRJFpM2Rr}@$8`KDem-Yd^RpikQkW)^ zeWW0tmQ)@4o81QYE*9EmsY6p-q2;J*P?AU=8uc>?Y$FbA$>4ti5&n6(+DQh;HTLBd zxH`5EHkCS1y>1TTF1?e?LRk%wQyX(2OXdJcdI@BI#?U_l97po@LfhnYhZ$90*5l() z3)lfzKvE7=$<#l|B~hK+T{GAz!KZYj8H=3CoB=;-&KX~&$LCVFcVB6SQZ#MjuB+l{ zU((SKLCvWwFbi-wfB>Mr&jDya0xGzkF=?rZYtw~WIrl1sDje{XmY_yxprco-&c2}{ zm~uRwKKXQ>pdb8PFMd*W^n?!z_Jc;TEc;D|4m2ogiL5E$xby*e>9g<>kbWz%1yvo&d3;9OvUi%8 zi=i!*NQxhX9DtH#Qx;zW&`;3Jt4f%=+xU(|lbL5vt!|64zE=wgwPA|}N2H(j_?iIo zZ*UzyYJMP{IN9Icf4-Y}zkK}i+uQfIckjQtIRF0Lr{6xm6TmR!IF{4|?Op7@J55ARBQY8ziful zyMeJ0#%_2zE47=sj{W{me*-pTV~!+qdLtN+4T7^HYpZi?bgoRRp+Mg$kWy&Sw{PYo zXcUe+y&ApdB!K0J>M7i(QydE*m$@AehSP6F42 z1J{(qH5J2k+WyqdiQ&%w&3^Hft&M68|0Cpm+9Rsf3UX6>Yz54u^LfJY4kY9|5X!v+ zlj=Vo#=$4(OQAP!WB*?GmUb?yS39+b7Xlq;C2-{!D^0IuBd+23aYc6kXB~fkV0@wp zlSK4SIG)lZVl6UHLhn{Ljqb0!vE01*{EPST{k5$#-+uY}`P=o!k2CN3<4@P%BLB;m z&+ot9*e`s2|I77f{1flqf4sSNr}w(=byKLOmw0Itjx0YRv-~iY1Ap4t3h%n(iNQS2ZFOaT2AGUM zDS*!MwhFj&0{i&FKH@uj`BDJfjDuM+O)CX(X`vn%2%Sz(Z<{b09+$VuOvg6`1q9X|U*S2;VmK&&{mYcFFJgpr^zkq3pw^G_MNU)7Cqd~*~9w^$riS%yx+}Uf~4m&NIlpOA$zQ8dR7>(4cf${5;}H_7fFg8Eom}^8=M_3idUrNJjf-~= z0;=c$1_z>K`y}(vjp!%nO1I?_ZZi;YJ-p)0dXOlZd=8$I?~`SG7D=T@ll=S7PaE7F zN-BEx=P!%0-@B-@t+c|^DS;?Q!12j|lf`F8^lpRpB`{Ss%}Te>jBXAo=9Tvu*tk$S z+4v&?YQS;R1M;Tlz8I+S^lq|@h-&V0u$laT95Cg9)YF*IcuBm20mrQk$XlDoQg~(4 zV(S=_k1d=D44R=?}6-%CKs(Aw}rvbB+mwKgUfWo+#?9k#>(G8t1ki{B(3l1^JU5`= zWq>LT_L_HPhfT}P&@C*e2Uk#yBK#7FawL&7m(HI@=SK7n06UycD6!voAJi7e^Jq3U zPKvypE+jIZh$G{P$c*QyB4vL*!)d=K*IggGKgJsx7*gu?jRb}%2Zl74&KDb5Ozy?} zw8w@I5NCl>r~2=hw5DB1RN65^!`F{}8p-_ZNdDTIZQ1;D0FEryg~(B~zkyAI${3NG z&B0OfX^xT~#AnCydbD|h_+x5~li^>rOYkVOq)vmRtS1Y}g;KBGDtOK8B9r$vzgGoT|Hb~lP zO{05n3pM0I_q+0sUMef+7=-)uAl#2q0pfd@O=je#9vR$D`_z>+g=1+VGfpDBWE_cO zMkkK(TOgabZ0{Z5Z=<|1960C6hWd1pVJP%w|mdU)!f7v`4q z1t1L>+KE9(w-a-TR5}hQt)kzDuCJWT{e9Pu0#In53RA5XZ2u~l!IXtWBnbl!Q0c-i zPtOS|lFLvk8=E-pf2TW~z2eskt!;9nws2M@$UH&FarYzg?gw+RGj*{g*hI5y#1l>67Wpoy>$# zJ%IgiU_Wl#(wWb$EYi)DcUz*1Dr`S=(CF!5wk;9yIb;ulXJilj=6F0}`hdR^pa=vU+v5TA_V^DVmrRmYjN2Ih^0W8z*Xz%3 z-%DV|QFAA>$VQM|0y?LA4|Ja$h8dXN^!l|6Iw%*j&>b!;**_zJEJsOBFNOy}ehFml z6>j@6nJ-ZkLg9Pq9M(!3?ROH?w18vY9nkacr)u_$hyoqofQIX?)o^BaFl-!mLT$#R z(ECrK;g)jbMk$>eg(oc4{)dO}FR1!d5pPq=Q9lnh?!CpBkb)!>9$!!z_srsVy%fpo zIkxNrddvQ)s=WlhwP_qX6_QZ%M4;9$AIz}a6rMt^hD_s$VMGT&2swM&9 z0$iB>AZd2v;m6KizQkh;;S5LQAiO03D#tc>KyQOTl@DhF^}2IgjO$7j2O5XX^k<_? zw(}t|?(1bQ0V_vpO3%iFSgc}7!pZJQ;at_7?AF4xjoWkl9#AYub>Y>JarH6`!jNNj z6w6i`gEW#2UpXbD?PPOtMAF$$ZeBmFt&Cz3h5cbmdw2zU{2_hphO(V(wTwWlrNo6zP1>)ybh#I4n1n1)U*eU zE?_3wnpOhRj04jA+`W}aEPt--U$yKuSKj+S^Z*=0iyzbne?IzumF0sM;;)$q8_pa< zs*oO1g>xb8m^7N)vmDz6T|X28oq;goi2hMZqn3(3rRh{x`mGrSwpOZaA74?49EwAG zJEXO@!+9oj_NG#(Til;SH-gd`5h$-J`@YhLLcr#!ox(LCnDzr(-+Y)$|l=^Wrx$| zvRRdFUAhG}pxvppeuerxn^Ec*!o2{d9BQ!PGitDbh|E?tRsVysw(3x*{Ghwtc?;Fp z1faIRmN=OiM@Y(ukQ7`UdFTJ#-sUe7aML?5PgID(tr=)l^=K~a+SN9nhUOo z!!S6SlZP)jzrWCLTjTEXS`{zGvo`ZKW(OmZ7nlp#AinF~NFW+=AR3W~%3Nnc3&Hg{ z$GNCY)4NT%h3dSK*mj9H8lKUdj4ww{m!E@>Fa>Y$^x?4^#Rl6#0z8h+X5^DMT2SzQ zDk(343+PH77sCp9bqY{~&_Mge=|V)aSDj_JACqFKYJC1Y_cynf%RrrEy+c8S;R)V_n* z)Js6i(87!;tvCzq1q_Dj1C<2Tc}kcl13eT!-tDw{H!CFJN)6;9j;)X=B*Ru5pC8#p zi+b0y_wRnW{wfid!i)pAoWd;;s>LUhC1-4hqxTlAz7IYOkTZ=eM{Fbs;2ANHM54$i z@eI$4=hCL`&7rEQ-j$lg?$Zn@W=45RQRoX+Q$57s)O;wq&B1 zj4Ma(ray<=q;CCZNOvA@?JFEWj#CK`do9os(5xh)G>39o6qEI1DrdAhskm;F^?N|= zwFg8x*e28)-5`*!JhcGlI&i1(9?GgxW%EJ;S&nEElhG!Vi8hmp;Ww~Uj3(Y-_ycA7 zQ+Wp^B5?%I; zBTdi9H2qj{>>t8ys?S-YY0_*oqbp%^rWmvbcGcAY%LWqJC&#uyL~R=Ym~wX1lgikQ z@z%x^0OruWI&d=~m*16LVd|&huD4W;1h6p&un7%pc79-OZ~^=D5_DLG4!fK13uj6{ zA_|^Wusj3jSpr&)cQc>U9E9Nf&~87;<bF*t~Oy4M51+}x6FL!PLa=f4P zfX$C{kxM_V`0jQty#}QIY>m{|>{3EmE#{b}#q>1IKYBb#f;TCgeGS;{Ks9@4p*OVF zaLXmY( z9hG+#5R3Y9bQ9^er7jN36)ljB)<%MB6vrGXQB0>qX?$KpD^sj7f}>Xhn5Zpbp=t-< zI>od_3*Q;Ko4t_$l_NQ#=a+t(o)^?{1XLKW>&wZ9mlV!xgLA-g*g8IWBxcUwENuWt3ARU|Z{q7K+IC z0RNVuD}`J!Vh+8pIH9x3EITiZcjNr58<2|K;eNm?sL^*D(`j#IOjULp@E4M?@{LoD zbTg&X&3t}dRAIrqb~AKj#M$UmV(EkVQU%(w@Wox(3&>5x9CNmqnzMyhiOkmYq^^&> z+4orZbl$o(JFhKGZ(w+#9G3c}5+& zAP@m;NcSjp`kGs1?xGc+lABhfEU{FDROi~`nQOPI^f#Ty%)8{93GK#N0VFriciEm|VRU~^+_xVT_QhXwL2 z+~uuloVzIs4Z+I9`CmGgy@XXm5^%)lAS6MJ7X%fmx*qJqoHEv}qw}iH``cLTYn&;< zS8x&ry}ch6Wufg~M|9%`l((Z0!zGD0a-@jNkwOWVyV+I9GuLYS07r2+c^ckKiHpuL z_)cOnu18{)VZj`6;CC2upQScBby&IWD4d3$6>nckpve)?V=|yep-A6ncDMAO6p2<6 zT)!k{;Fl-Knndlw>x+Gx3l^Q;XiS8j)*DxoIpuWr&Kjby2Ptu@ImWR`Lf`6K2GMv{ zfVEpebXHA&v{xB@0H$qmTa??M5~Y4scCtj=u$AQqqiBpeigBqQI+3*Bd)JCU>dBOgmZu}0!4kfu~| z>b<>zZ&o&g@qR%%<)n!xqBE3a90xYbmNuQ3T_pKUUul%9{nw8* zDdanav)uw{yTWEfn+jAw!JyY^2qC8hZu_mh`U0Sa42gLf(j%M;1qWzU<2kR@ zY{cK_;RrslN&-}lcuvnE{7@pG&zcs00wM1Po8`3`Dt+=$C{O@9jxKLXcX|Ctj5RRp zp8FYCK#)vsJ9D)8q?4$$htnQMEzt2zGmf`1h3a~eSBro^QFgZ?BFo4hm40E;805eP0B2cJBn`Q&~kku}cR0>9A?ICw65 zw6WfHV?UgKRj(vaN;KBdYeu=b#tJY9wZR;IS{3H zM)G)JMDH7$EH)1aWn+e`!Ccv_Q8&d1q%>G?@2@=|s|f%aavaf+JfgvR=_C62P;L*N zu3+&-cN#*^lSkG7OCpWl!uUZ##Ucw64n)a4hv3pJuy05+XLpa?0M`4Ob1IQca_lo? z^gcsyp*{8U2Xd~l`?IMhK8gTh5yzVt1vFyu!ifFi#JlW;g+tc?Q^-af`}0VoJ{*&T zjGiO}f!NAIww|{|hw&Ebyg#*gkWYbDiy(L^af3OA2pK&@2!coq&0v;c>iEo+{qP16 zy@fPq1@b*2B(p5$=_NMm#xomTlrSiC29*+bJmDy>6SBMx zLLu3nY%bCH#dIF9C!nbAbghfi4Ky4v$0@XpH@c93k|V=O=nUsVP4dg3{0WCxQ>UZZKc=@Ht%*t_|U0Rf`*@Q z=<{U>9nhm-X(%TxZF|ub{8;D1>Kbc3s>c?(wRNM!>ExKiX7nUBh@u|=>6sS*%5jg{ z+2PpJDG`HGj)ya)AI@0n;Y??>Z0rjOB60R+_s)V^moWDN<9U%mPR>#A)ne^B@klVhQg%c}CcrSP59|h3x zxBAvAI(>A)(C8loZD6l5j}qLKoWnFIU(+vUDmHJ-gL!{%aF@4fW^cZDtxDh*a^Odw z%QRXXzfZ=MJvfWlg3%}Xt#xBL?8fSa1ds^_kaXC&P>}q4fP~;ZUFFUuKAqXC0eseq zlh=TIwb!?u2vI0sryPLNnR=Qn52&|M8_d)Xrh)wY0Azyu9acRx%)bY%C1&5b&vDg# z`l@F?O^c?L)8Z3bPppjqV-ca2Xe*wadY8gYOc)1bzSg9>Sq{W-eUQP;p@)n=cz z>=}SDZ3fU%^dwvWa}I_^PBS!u3tg$d^OR2JEdb{OZj@{fWmUZJ?!Ii~3E;^w9?$9V zc#sQ~LpjCR@Cq}aYfA|QWhtSulyeCE<+RXWkjrJ4F~N*p*_3_fOclXu$iN<+EhRk* ztn#*%Y9$V1$njc+wBXlTYzCB5lF?h$4^9>XWhl`>SwV5`!VnDDDkCCCnR6_S<@C~6 zC^rnx=QZk%s_UTZ4)kh?>&>w;meVU^p)b^K^Vjoy^s`+Urb5kd?YRs8p+BmsSlPr= z;%;-yck?J;R%3e}#ZLzB@ITMs*udf#-{$oAHuNRf`u=)u6aGDJKj7z{S0Sd~3@E~l z0;uOf&rS$dh9!uc-U15)u?sz$JC>k&T9re&^_*1i4hu-=x ztb6Ys^`u1r<%r?*KsOA7r2z#>H7amVkQ!thfS}rq#S*7!aB{J~E|D3f9CtsZ?|zsp zjq1}DkIRH4vLFs^x}4Ug3&V72;9UNQ4Ga_v>dthx3I~vIK5Y@%m%R*MHBUL}#+0rb zFWl~aPN3Ic&sE{S>t4>8Dd$l8%W1X0FcJ$i2~E%Fv^{aEu&EFzV02pb&fDBEUd*wP z0F|3Jfn~2g)EJ`w?Eyz z|D6JJu4D0W=$srF#%p*PSN2eXTr^7QA92r2NITjlF${?2L}nRZiw$>t(lQb3g{pFo zvYwmCe#m}6aa!42$Pu#~AG5Q0=gznt3K59EyS$9o>-imf0a>PC)h1^ zPD0wtPoKHp?Kqs$SSGN%mI1@ZQ;~8(ndleW!+U z7z_PE0M?M>aTCxE?P)0q`Oqrv(hez-bzIz$*z*InHR5E~x!C3+HR}D0uzq-Cy6oaxnh< z*Wd2m+q0^{3caia;EOrRo%t=?;M%{w>`3B|PRMc3rbV?@&gJT8BT$RZSCGlCP|gmQ zbHVofr0q=~CGz(;U#chyEUA{BU?aR8W; z0A5xAxvTl-jpJdcsBDN4*d(z(YRXZC&(CN8uM6e3pTleJA^dA=8q6OdZk)VHLm%!m zoJBZ_a;Golh$r(~jEH7-A)3El)cXM?3=b_vOk*qVM)WXd9JNgrvWDa5j^S+Q0-Ckn zzrfCi6i3aHuc?D};bisKw;%rc^XreFUSHCecn>My>!Kc;;>ko7Zti1QRrVfBT-kih zfuv6&naiBKc{@}P_8N>S&|upoG==IOR`@RBhKSe0CB`Jq% zv;Rf~A8iB3vD`k`%y5e=DJ1OvZR~J@2pvgd8VN`_0(DLX>I=*1XCa-VQoJ?hVN##G z2iF@d5>#@In4FU_If`X~n@b6Q0liaPlEoz?iy)B2bpv`!jlm)Y+LPc8Ulk(FU5=Tm zzb50)h24m6ia*)B(#;coFnJINIQ}~1fQ~GhFZ48i_B_tEa$57CrxlumIl{E2+?lFy zyypQ%4B%^JnnD84hyzdZVT^-i@dOhQTr;%yySKQFz@KuP4Ne8@*1eiGwD0Vnb|rx- z#|8Jv3m&J-qWaS~Ku+1f%h;&KL9gI z<6L_WW*NmK_Gcf^ve!1C*QyXXnH(c-e}2RbSYD`b^DUt#SW}V>aMQ1@in4FjusvLR zpAb)*8hHiuF6@bQ#v~%RrX0AEt;Y+cZoUgw5U;a|k{XAD=|EoX-l^BMo!Q!&vi8bB z1kH>CO|lP}B+H|TE8MOsb7wxEuT0*eMNx=T^FW7j(} zD!-=_;K7kPg=FfKrpto*?&Lk{?t~o=wS@q5b#-sk(_!oyq`Xv>0FWWa=?ux!nJs)e z?{{vBh?Jp&8S!+2w^L_!rPBz+nYS7wPG-abXhZ{=%LS!iR%Y?!ww$ofIU?5_2R-%$ zxWyXO!3zGN60c~?&_ecOvW1)r#`?MT+=pq;2?^6s%{yH{lx9=ghr-sM!}-@QBw*!e zl+f&gT=2A}^RQM5wjkVJ(ST!O5aA&%fn6v9Xu<(#LIV1wZ}8_3{q6Oy6uThwseH7Y z9#yaghFIU5zZnQjjzDBz*98TQ#}rS zokiwvdas&m2?!Go2vZuuU}*@?1I&ATF~2AY;q?Zo+Q#iixn7yV>>Qju9L@f#Ox}Tk#eM+ zX-LB+$5seuw{TCG8tq}wUdd2m{FEceq;!x8#DYvpNIHN+`U&o@ZuYh)ha25i8aVzQ zcz2)_*7TAJ;F@tfks19&3K8GJY?iAv`5j;r4gr+#)q)?KBW`DO+`dr0<(W(}B3f{r zwrBD<>G@)?wwdFTK7lG8%dNhVK$D|kM3cGvFkTeRPc|Ai{ZV(Wi;0TKHaow?61@ir zY6WIneQz(n?gaLvd=6fhPxHF`3)gxs1@#xF=nV_?Y8W8T`7$Z`U=hYZ1cmypE49qC z$-zSMX%>=yslU-Tgz{*9A@Zw76T2P~7d__~3gygVi{AsATRH(T18lQ7Rh`xOf>$Sg z41+bpy$;sIy|({#IevU@23 zV8{VrL;@HK9J5(w^}*)Roi46ggRO~OSq&(VVLIS$T=j$5qC53NWAmO{Pf1|Pkmdxz zn!LIGl9;N=b*wiHK7S}eY12jJ)u!2Zy7D%q4bC^PLI$>?wRbN7Ys3(egD9q8y>!o( zei7$x`mWNwtq1KX#D=bERuGo$H*(w;iT9FY4>X8U62n-i$PPkkRoQ;hR1H+8OFj*SIH`?addQyXjUL$NX;zGTX=Z0w*lKvqf7l}kML(egY0}9p) z71y4*-t+s6AglJMtJPOcaf4LMvV(7`?qWFcQZr}s07TU&nXW0S~S#JHb2BdF9LVL!ME@fo8lm&7P-i&Bd?m%q_4yqZ4mtK$h$ZC)X zLK(*cnvoCar4~Bmp`7hkyaB3!jogE76f`X=d_8OAXNUmEkznRzf|+F!0M139k3jMt zEQ&zD*lx#G4W*6aPFK2xjYx?=o^w2oIr%u|{*o~Mq)}e7hPIhoo0^QlB@Q7+hb+j+ zbUY7*(x7NwN!p;0G<^O>>&9z4Rrb0-S&U6(uXv;Teg&HR2T$#GdOJu!%keI=ZYrI_r zE4sLo`!!1 zDtAsL;EXunB%e^<7kfi9s(}gnd{8eM`$j@agks%J@UDI-0VP996w*DnOQ{#nb%LYW z?Z~cd+XBM*Mjz~tb!-0)->ERi26iI*u^M!-vZYX2NesclAmjj*ZVm^*vY_5US9p?& zzy@4x|BtUhS@W z;Qek5v^gXIdkYU1v<9SW!=QWmNU?x6wWGCI#Zrp4@L=@b& zj7<=3ynFi(;a}A@@tX7-B?N>+4i~sKu-%NXaTT|Dj0ih0we3OHc z9;Wnzn50VrdI#94?P2BkF&nM6u2qZ){Ahp5&f8aJqebB4$Tm|t+f1@0;l#xKWr& zZhye#=H5(N{*$l?6zvkYh8(y?6s{LqiCdT|U90BLlY~(Q3YAPYZj|X<^PrjBm~(AD zb?<5kOk)mA6ADuaV!|w`OO@56r>9qwzLw(_zK{Sf;{Y$Gz>|pR@hp7{mmY=o9ixEb zSq$iBQNk5&Zbx(y#RIP>oR9B&j59Wk?D{9gJiUEb0cZF@pWurUu%;ZaW+bc<`T1No z?RRKOo_W`22Puj37&2t!Q5aLe1+iG1j^{=3{@>V^Xmxw<^+)?X;2{(NkmKZq?&S9o%=pi-K)P zTJPXT*$%FG{#cp{=aQq%GWQb8xDm%BGNLAtU|KJ+rIO8Sw?VL8Iqh4Ql$UNDR|39- z1HP1mFI^J8kApsf&7-p?BO=HgacosY)K-NBG*}YQpG|E`OOOtA8dy66 zgag;qaLeKnC~{o(n7r)KqL=+u*~2%%W<{^YZE26DnjEBX4t}szI8t3Dc!W{Ram^F* zn#YS?^Z%HpPx7qT5*{GDs~(djk(V>!$lnt(e~)7cyIe}e-U)~GXI`f2yp7uT66kRp z$do*g$$Clj91Y;~bQXIL37KXDcX8M)hixAux1Q{GmZ*m~G{mBmj69ce1-`)+cTN}l z%?a9Pep%oFjX4Bh;x*YJ&eu!g3)3A$tuYSQ z6_~XbClT;s4)DlHP990!>2OVT(t8Jw=FageZzXU|IB+E^ zp*;Q(xO!!+_Rhh%(~qWdwAEd8a#n~tkwcntfJwHDFWmF{9x#7_(}zo_Hk1PqW>UzL zK#*hYCl1KG-Cv7!-Dd??KVu|vHgjJkKW-Obg_J>sjx_K!-3jS6#vC)s_?a2yI$s>! zJ4Y-y+4{$pNp*4F{;{v;Y3g>m*=1#ngg$-Du~!ub5k3127RU9z*_B-l)>F71-494w z*ZT^_8W5-KGipz&1fU$zK1gUlqvf9g7-Tqslhw5QXF&S9?~AV<0hHw_CHkIm#DQx> z;~Glj_~Be%d=uf?;Wviu{l4PE7UczS^cAh z6hjhp=p^z^4*#Awp>KO6BWWGY-t@Lpr!QLd-T>5g&^ZEmgd4C>L3ISvN^I`M9Q$W+ zLdTv9h2Wk;l&+C>5PqNxGMlR0qiocTSMDZ|TitCBKx~(Ql;iT#BO^Z!7KQX95IEr& z+6Qy!R5{7McBOHSea_4WTcI{GNdzU1{i-;nZ+y#I7aEygirjlA?N~O>1!=%)$2jQ@bm_Ez*-KpQoZ)IGYx-(uVoNJ=I8Qd*K^g9P z8w$KX?8Di1Wg(HXC+m;{MfxshV!h%xCT5jDGt%AFLGQp1ev%+{o-{y>g{hDLpd1@N z3BB>-=gR|nHl(@7Jr&PFYmO36WWv$TOy=8}5^rOilZF)ks)ED^mCpecN!|$7{-TK8 z_meKTDx8DnO9|X!4%`wNHz|SjgtVlnwQBmW+B_ogB^>ajG<;$cv00Uo&j;gVnhJD+ z(;cidzjSV+t8?jx3M5ef3E&!WynGQk$O$f7i~5FR853Sc11dP-nkeSkH^|z6E-tu_ z7G-Z>A*GkVlp`8PWHb%}ktZ@qzoALtsF&xl!x86>z1FqYOKeXi91Y%tZtw=7SjwHu zmN0s&`@S4bJ*0$PRGJ-o12e*oiVH{lgwwIy-JfhfH&6()-#`WJhfM^#|2yu&j( z$%OY6yrNLs^kdx)5`M!;!jTpwbXs)b7~;E0=|WUyBtJt<+$lIdp(GS@m1pwLbbcIOK!;pC8rXq$WNVwzA8q*wPJX-L^kw=Wkuq^G+7p`59$ctO_8g?M z%{4u3@57R5XOJsgUwijB%yFR$Us#(%)mmiPFUdKI`kXH6Q?V&|I?Hx*diFThsVW)d zI8ykWPT^CrhHpB%s1NBo;AT@Klq4%v(__L^=+@Y3Np+yg2^qkm%g%3axbO;J1|}Q9B9%xQkpG}=4S}oyK*Wfhok)mraa%>8u^rk={H$2N` zQ>L9~8qk$6-rjge)z#h+R)F@V+iNpQkTg<`Ia*4u1q5&4N%>%HBG+ZEp4CQdup^jCX*d-hpCQJ;+wF;z=BCUz-3u?yG1@|aFq zC{9A^JPX0)Rku(L!YQ?_QY9cwIUvnwNW;Y;{bZbiM`=;D->f>_+MqSMO+oCGIDJyk z)RhpBOGA#68qz1#U;dAKFJ2S@BLu9T3|eqatL*$v`|+VL}ErEIkj31_7@(y(W0)D z2a<*&7;;>3TBa+!P$cr3Fq~`R-Bk*NbD!4yv1JETSSNc1U$;-EeE^R3=k6tdZAxk*yTs%p$Q7>*ns~Pu~6g{l5dHw!?SflyaQ0Z1#+W*Zzfq z?BC!JFc+JDRv<3n8~`9QAG_0JXaW0F&1AS@b^_hwG~=irvzWrukCq1XzqD?@faw*0 z=h$pa(`ewf!}`zINFiYVx&R4Wc?A2#_ekyPX6nVYe6wjettKuXFu z>cuP|ag0U8NlCAoqp}C_9>tAHP$50LbMMN|*5wtXLAVTbCI8&c+pI&TtqzkTPrxI4bq6NT!o<7z<=!OhFkg@Bd>DCfsjiZrftJ*&YfH zHDCw(o>qWo(V63voNt93db5xr!e`N%!ZuqP+n??Ee3<(1y;lQyp@$If?R94p%HAGS zK;J$EM#ix!;}Gh|=7l;!^idNNlbNL}H2M*&5znLrD9Q^{uaHIOW}3)X>_n3GEM{mG zWwB3!nlBA1%03^AeMO;lY45%2?Ww&%VFd6SftA&jW7i@*Sp-<01K5BJRqLgJz4KaQ zY%N)$q||EKKR|J9`-7EW&}}M6`kNaGNI4#Wn0x?&R6zA8B6@IJQ(U#B-cD&0b~K?s zEU<2raky}2^Df*N^8JPJvqx<*@P!`)H;e`&0Un3KbC#0eMG~^F=`7o;gPIba#NKTV zI+Iyz#4@TQqWPy^9ph(D{so81n}fAoXv6)&sZ$! z%&AJ=S#odfneCjY?$$Jqx&gX8ZWP*Y&W~r#Ayk~t3l#&NshA=p-5P-f18jFbmbh(X zzgrI$L)+5E^K0*C8N=CpopB&aW<_$`*;z#YV)IN#?0};=$&ybi*&qUsM!qHX^$zy? z3v@_wpCRJsJ{j>d5%ZCNV$dEmM1AANmQT+p>Pf*q0-#vcsl)*b-wm3SA4FReEo+WZLE3v2t0`YoF%Yf$H9%w1G3GL zNtBL$L{Yalu)x~&HtKZKtf*Gi;AmS%HRw)Y+?I2Yi}HwoGQ5`K!_0*nEV*yJ?Ll>W z^srmO5Tk|bjVk1TZL7Oh52LCiKn*!SjVMqrJD#s!z5DC?SAX6z{+;P<8mS)D-qn?3 zgRNs#y^ugJe7);ULS zIFHGj?njHmT8}+sj$8QC04Zjem~hwLq#0m~p9h#3o`;(Xh%Y-%Eyc9(z%lDLNt}xAXgNuL8zu3^@5CF+j;_ZyC#o8PJ zLBIz8pvo5D5(N&2%5a`W6lM~w%XuBNgDTEqNNy9LhL~fH&9(O{$ja4cYjh3gQv_0u z=1`hbkjgDrB*b2IxkERG9WstQ`)%zrcvRiFld(s;Ppu>xZW%}X&H@tCcxg;wmbNj) zsrL#Sz_+$|ym3M_x^8uUZneqy+2k2VXCq4~MCE4XbBMk-t8+$q1Ttr1aKGB7nT;C| zDK{dLz?0+FXXLF97QglX0-GDGmHi9v!&$NOR~whQQl!GnIqrN;-uWP2{)D=X|0$o8 zh(8?CJ$W9IxFrjciT^{`#u2&*b{y$YPNqYF*ywRqC$cM@4xcRzab4il>uPu7if)*h zVSeOk)k|2|9IJo|BPTPEL2;5aeXOsn9@R`AP#V@Im#yx0)%eHM6s}hSm@;q*?1zx~(1nz@XXcP|d*p9))#AA9;C}H! z0{&xlSea zfYDfF>_LmY5rAaf7MX=-o< z;oH#KAFde$go-T~95E{ z3Ba0g9Mpt7sQG$PSo;cepPe3x(|9i*odOEN=w8&LLPD1T^9KpL42uaz)Jn*xm4}N0 zYd>!VNxvyh0OrBscTyiht%Hd%WBdn+-UHY zwqH7wgEY*tx%dNjcDJ?B<@e<};Kkyl8N6G(!-Bq-kjnvKvjXkvFfq)e6J1iqAjjG;5{`($U{ zzi>|Z%sC6^D)OPk*0C#S&`kNtYsaRvk)?27EbF!_d(&u}s2>jky*b~HIbcmlSR=vx zpO`p`kckh6ul&6s=4>4Ce{1SiH7ALa>Zcr#(&_(a`vkx{rqp+4coA19I{|eQ-)Atku^&Pg;TPJeeixjdjB5v5OqG*_ z?7TvaHWR}167~e_<5}B7+}}vR8galH(;EWoLs8}IH09d^*H!3&~8xL2n|4S_y*=cz)^G?)Vt}i?X)T+nnymzK;EYZ@_sC) z2^-BZlzwr_#BO)(Y5CNh;r38grZ??DV*3if;6Rj41LA0LL?JJQljyo2V?S*WprDjQ zGRmO(Y(FHTVH9H`M$t3tl>GzVc~CVv+O!FR7A#Y%L1Nner9S*FFzI3`@dem)(OjAI zrbJVq-j+rC675yTrnePRC4yhX5r85(0Ht!pW|UAC^c&s7zy4LZDM5p`KR-t!B&Hi7 zsR*4WnqS3uq9I8fI}VbJPm^T)R8BP_%87N1odzr9)kHsXc4-h>4(3r;H{Qc!g`v?$ zRRmm)029*zM$R!gruE*+`c?umjuI!POPn-c9I|O)7mpl{9;cf8B%Lb89APD zR$`j5Rn}9ABLQ8)k!2@DmK|S*i)v>%TJ{k&4ZO;nR0U4wy{WaMY45=37^@kB#O((O zP&p!Wx~4#l76sMpB+g#Sac$F-g30$6mC8|V+aU=MF0E=H8r$$(?m-q9L|0E|%`8P9DEN%D^lh(s}6 zQb!)9em%GtjmXR$Jp4!rNS?n?!fI!BCH##!LcNO~u^`x4=*4L0`F+H^gZD_puyKD+w?;B6PTXgpTJUw1_)|A4D7%IwCK0 z6fC;j{SlOwU=_r4xMtW7(+T{Wsj3si9B5=00@M0{V=@rLWbGWwE!NDXJ9k|TcDMM~ z{)p;-z|48!{cO5!Y=_b`=LgdMiMA3tI6=%2#1k@zC(G`0|Ib}-gUSDT-n)}GU|0KT zhVSTPz|jGxCmYY}aVxRR86+GrCm~}_vg}UxCu5M{WNX9L0QJ5Hx#V*2HszoNhJiuK zaphC;%BRck(tQHiI!AZZ&n0$b7bQv?U%a{q0!$V4RcGrQ-1xQM_X9?BeJX>`_su-Olu6NE+cIRZ- zod?UqdcQl5T+qyZ@CpUF(Lq%^7<}2Ub}nPD%AJ67qaSjpR)%X5*GpI6>8gBo8w@=z zofO~zY%=sEJ9)M0Ma;XhIFBG!D*-1%${x~vU*As_ zh4b?lpL*3g0r|mP;SPu`jnqzi{Z_U5$yZCD5(+uiz``I{Qs-h8&)0uQOk6{bUU?Wq z|2H7Q)bY#{Sb4v_{`Kzt%KP=h``5qS+uu8`i(BdZs5{`L2;}1-M?)ll45czTKB$U&wLDKdR3 z$1cm}H;5+>4I6r$VCq+wS|YdM5JL>(Y+){0M#h*g1?9@ypy)KJ_-#(!a5Nsee%rKM z0L+x*N~h$Nj^x%me8R(Es;_Y@+l{+j1*zfKUwdB?NtoIeMqn5bW*j#?BX9bJi`baM z5M9Y&{-rz~Os`S;uy?N};MW5|*U5A?YACmud%yHP!grK-Lo<$$o{=G4a1VP{yZ7^< z+#bBG0)hU{)VP&7pd=9TsTw`n$F*__RT7VC#*wyX5eaL!JghJRhX>#ZQ`5Hg5KFAe zMI6FZ(VD#Tsi646?8X15UM1f9UX_J&5^YTfQQoOcW96+S`WeyM=fE}~vGte7_Ra>O zZ8z$w_w0Yb3ue=AyK;><~jP-0IP~SV+IjG zV-7&c993`yd3I>=#zpu^rXTj{aPJNrCU653rBgwlQshBRIWQ%AN@*&Qpw6n+eXxfS zSRD?}+H4;@Wkdf#!-5H{o1h=|V2sESW$3p@)aFEbv6lqO&`jOQ3#8ZHz5(xccafZcY+einA~CC)1c$2|%Y8rDD}#*nQAz@NA%XClnr^djp3X%L2=X_u%Uh$j!5+pL z7F1PL5;Zu7Gf_0}OayQSa>Jq7-CeIA?7vgl$MOhUEB5#5c;oFxTSS`O;0-pLv<14z zP3IV~M;RH4f?#n({{kXd9<>_Z7GIg<8y_c6pWTN2CRoFz$=I2lKIon<6i`I2bi!2-Cn6A#n6b4_!J<^+cV zU^K4)h!u{AJ!t;iy#+3eL-F3L?S0*7@1%zt@98jtNLynhE^y8ft8=<+43-4-qrno} zQ#OL=rx(ye2lmOK03nq)p&VL@QBKC`3pI54d@Q?89adh0*7K9_zJ$d?9IQD2 zBtuOiWA8mj68wv?H(J)_A?DcHivzk1`2*;`uovzfK(?Se+dYV&mvNv+Hg}S2Q7IQE z^ng9FS~Wd19#)P-JzzaOf<~KeiWl~8k6Hp!j(0Gm-@$xQND;4Tablx2$~Lvr)rQ8S zX}0FWrNok19C74H5t%1t+45+fw{#kV z1tNT-MvLs2#T*89aZIK~nMhhRtI+oA6Au!F!~}TdF~{0{9FrwszFrixb4fTIymMPZ zLK`{eFsX~FvZ^4}LU+s$cVB>h}V&bg}E;O=wPAVgqm9r{Ty+WR2+1z5} zz}-415J4x^X4uVM=GEh1oy8REEVz&)bt#r_wAa@qWP#vlJlxp4Z-70Uvtiv4y5L(= z+ix!MAaan-Vv2MYT<448`Pq?A%4TP}x^Q|pz%cXBDY~-A+6dDdk)$R`IKWIPF#TX* zH0`OZ$_HEGncYq|y$#V4*P4T37E=_n;9^dcix7XFUv>{3vh~RpdHrV6$p9@OHyA|2 zoD*(=DGB?qn8Ot?PRXNqDJAM+KzB~1#s2v{*zOv^ORRAViRRdVBBiQ!68D;eu@}!X z_LhawX4%*!^LFad{)r{v;;2lrHF@@;WkGwTxA3Q!wqI?I4NV$*j~~juUro~H#R$X+ z{B9D5kVEYz&O#E^bWxwr-|e6E$uz7}%>!x)6j}`ji5SB{=ZWX(JR)&C6;4Bx%|>F)jSe_m7V7Z_9>ur#st9&qM+)vml&cQ!xVPPSJ^91HT}nXDP2aIz+& zaFmJQIZMxZ2YWFa)!F|uqka3PJ(<03bY~%c@kI`-Rz)FF1ST9-p2?a#rtx}NSnr^A zUfHPJb}+75f!-hPtAd7kqj%+?3xV-U!XdPf_+&kOp@!PUP=3@+;r)Fqw-43HD5L&71jkObsAnh3q4!8~pBV7jg>fH-P%prf%5fW%`Nq#W2~BzC#bX`D;P zKX{MIVzx7;l6Vw3NIXeE#+OtmzC_gW;MAAJZa26NTy0^mf7)(EDGHb()DqjR2?s4A z3CTv|g>(FiF}-t_wg=E!Z9|QHBKt$BE3pYo!m;?Dg!IY0>;SnyM!zz@19FW$T^#{r zI%^fEoWk(|mjtmV29z`ShBkJ$;{b{t0&qqg*-u1fKbbFcC})LGo&>jhkmr+l9yyp0 z3B`o4s3l^DaFz%$I{#xR20=dtNjL}9)w}Ub%>h0cX!9bYOaR!JBXNw$#PLFxt8V~y zmhk5praqua{$%ga( zDB^9Ea2Tm3F*%mWW0~A>mP7xv1o!p-1I5TAF0R6`%k_4_2tou@j^{HbpU*s57*u#X zHyS?tSQfCog(Te5SN0E173m=217XqNfRwBc^K@ZI-`V4+P!1Njd1X~h2I!!!tD5Zz zs`2fE0GJ#Ui-e|F_-mQ+htSjq8U=`JVv1=Rx63uawp?Lr@F%NZP&9ri0V+pmPXZcL zUo1RPZj0__Lu6OQX|Wj3O0d!qNUoG8(m1?BLCn zIq$&i&&?We4XFbqfGrFZMNmvRu5U_TUtgwDoaHKi(jbmKIY>JbMQ9Q|H0CI>t)65Y z*(_ByKPuuAphBp$)dCou*NY`r$*dUeyHk+L_ zbe%bRM>N6OXj?gUsw;<+8{TeoWgfMJwLr?@f03@q8y~Kv(3~AG{@j(i@IIEUHs<~m?j*Ul3D15{O z1zDG`T2NJMmtZba7?J6XMY{r3Lu&nvu7ZzV`&AM}lPJlN24aAS*F z4`3A5SWJ%+U~*h`N(>~r4i^UV=guC=!VM>2xy0LzbqNn9r0cs8IwDs`tqYNQGGUnU zrb$BKdEpAwH#FTNqB{SnEA8<-*m!<~jwh5twd%HLkKsl?MDK*HjkS0QB zbXGLK@$?_9-VO?qb*D?N>nDwOr%Wz!K2whSp3?W-Ul>f_AV4Q`<-l{lgv$=elG=Zz z^p1h*Mgmrj7(c(pyfC1z|Inkva&nq-ypCz|e*~tFKfiwe+WYTo?`!Ji)+XoGe;P&h zTm8N0aa7&&tKCZ- z0_2sH!ww{+>_Fn{SY&;c+B}}7GiQzV4bE_F9at5mOb3! zDuL5`Kn_c5`T=*tKy1?<#$I=&8GG2f73%2b963xLl6WRd;`s^3F`doMZOP)4_-w4G zPa@!Pw8Qg=1TPi2)3ejAd$-IDdV97o*$vJ=_lY(A#8T5@2a+SL$rBROT;f3bq=lb4 zxjL_alb@j?NhXU}6We;yS~1&8SfN)#L%f(KdmMkQ+{Od$Ioa1hOTg)K+8ne~UvPdVVsC^#d3SvV&_KPMQw)ebz>xjr~BF2GvJvoCBp7>PEx zg@XfA@&%2SeL??X@4N15`+IL^k7f_0IOqr=p4)Ng@popo6FH(B4`@I>pci_oJ)6YO z(N{iWCVCI6B`6)Mhp&pt7vOSy&Q&GmvKa^QFAKR5R6i#BRy5Z!4(#{BZF=ZT- zzbxRDD}U}@=k$=_{@VKmSd%tt!$bKB^jjo`3|SCyU>E*zQ-u>nk z9n8ZExAv_(`^|b0LEel*xh12NTas%(5;MG*gZ3R(mJdDdL49eWx8^}hh*@P3!z3b$ z0un_LD{XS+VcVIbD;&2rn(Pm~3)e@~zp?+kE(@URtFn`Tl;fsHF$HO`UKG-&LkazK zt!pT8yiK{^>(04GACO?B3W=(RLxv=yWJnSrgYx+kYTCBaPDv3^1Gi&|yUiiukWnHI ziI6k&YzO$9JVL*%(yH~w7O5u^=y3=PWC{5)hUxNt#y^#4*s!xd!x8z=3R%1Zd=YC! zY+RyLm;|aEJgF=tZ*wGPQ#D&9{xo)tR}RP@FynCT*;4#%5SF zl_N7xBNEnpd05|r^3CLEj7Qd;PB^$Chm)ftlx7r)vCM;+5y{Zd*&KZAPPj;0?#{N` z@XP7Q3P720)Y+L&LK!a#OkmT?r38CgUo;j*~es||}xJ=kAq zwLRG1S!5w&g33o#Lph9v!2U?aK_AL;GPEb@qVDj&oK3k4RLtndx-JLTOfS*)xOzBw z8~X!^l;#}lmyBY+B$tXNf0u9kw3Bo1w1#XU2@(V%_;K9roV?o?`bK{jez+x8mpxd@ zZYKef{Rk5La8id;ry6_tJGGZkoz6JqTyjdz#ey3BfI|r@Okg1fmK)g4XgeF9ykjYn zY33XRj(knt?QFfMr}<|T@@-N3!fnpmv`BzEopTs$>?3>&GAC9$gr()3t_w5jH(<9G}`EI~?2+_&zLP#K&Ea>y+w`MMuCC)3ui~ahmnPMG+iYi1e$Z`e&-pTD#aq4m?$P1aPfCG$Dg4&Vi95+3uZ+aqj)1$dQk~7(XGlyvpKXSpEL4VqQ2z~NWu_QeXC^N@{ z8LE?4js4I=`Qwef+ekq_b$b>c?2jw}DFdn6ehArm^Dp$;`4&hMYD_U{`)*9vtl&4> z?ldtmzli<{KpG|tkcKJEz|5tTKjVB}WMk3+#L<~*PR?jl;-W_>1B4M-+XNS~Sij*^ zCUZI^4!*sH$TBI}jSZwn*WO2E6Qig9NMOpqWVIhcGg$*MLE0oHCqKgxEJyKRZaVB@ z;^R3O5hOXn5Zx;ZF4V6379?kFTS1x@JqTfVc7rSBZW90pkuN2X%s7xF>+c{GnM9`R zdD*%Z$j2jYJN0P)wvs?DXFx7l)5!UYBKHQQ4D5$G0Ve}(3LB>Dlf=PeFvYVU;?wYn zIqsyhZFHFHphjYIb`#whGu*nh6L=yE-P<%s0MV2qk)%1m!G-;c=MLojYNNrcjLfwT zsaKOUGVnFDu24Q6&3Jl=JDzbIQkumY#4;*6*{p{NP+PW@D(k}js{Dt3;k^TvB~lDt zNPx(3E;IUE#^JIc{?wIvSHZzNA?N?hF}QIf2wQ{~&_962dH#qm9P&{jmkBsh?|@Fd^Yx;j9&I`81gD3xo~Zhj+G-rf0JOVqEQj4# zRj^&ZLx?4i<;cAQI`__lMUi!$$+dTn*-zV*y=ipk)JUA=D)NE$Mpd`CP9^~>M*s@x z03@^iFbgaAa9mv-QRSgG7Tu?TXbVBQG3S>Gg&{57A+D(QjPX(n78u4ec2_FugrE3nKHy2 zw>lG@x+wGokaD&Ssh*z6Kn8dpadNrtMG6(ZEP!3bw#s z8n!2~sLdbc$^j~wEXl1Q&w_f7%zT%2wqT~-**Ept zJ8SnJb!QRp`>~Tqm;wfaC;K5}e7{hI_WAcSptj==K=H-o(tg1nGs9`5?;y8-(V7@2^JpHwV zMc!Nv^a`_b=Tii3;PuJtOHlfgcn33%cQ6Y`^n8)yIG69-H#XgA>>s#5_#~om#*x*` zJ8B?kiNukkmKiptH+A8JEe=Sh>cKV#{s!tRleMzMgf_@Ip2T_g2btH4Z-2Dz@BUG2&oqpuX(vw-&)P;J}p5)%|5LMZJc6wM7M?z%7bSbraNkL@&At(O4MXNcvYPsZ{{D3;IK zWc|-wUl#g*J#e`M!Ir6k4tREDQB?Z+>gwJxi1tPV)R+U*gjW#bVmR-5C&Uj89`s=a zErOM&k>)m;td~9TttA@hA%k^^{SY!+l2H+wHFvt-d0Ka_cMimAxAExy>n;}6s)2P0 znC(i0AdWdt=##Hz6fX)X`d->3(=-|sXC+u{VZeb}K%y2$B7u9>B$V>Ho7Qk$FA@u6}4*qj#&juIAv@49r=kH=s7P^};Ywd#5L)8`4 zX_AkYmD zCD7z3wiBY*4z5MiCg+6*K)7nMv~&73xZh-BGi=aLyw#!85@04AX?PMZE}=G;Grs<# z9K3(|AA%1oj+2*?Cr{2>KAP=IKxfF1x8%L4(DW15ovo+{M<^_|HlJ{8j=|juJ3U7QfK5nc~l{-@o?m@9(cY-~;^B zl|$JdY}~F}l<4(d0VDlC9L|2LzZXi5>z)zUJzRRY4JxvRrJLkxG z@`wV@7c+C9+>tRrkF9B3Bey=mH2XBg>1Hp{4v#q6;Stpi4=)|ue2X&%Wi?&eBRKZ% zt#s_3o%uue*WTx{)rhD@U-VlER5K1#^F=4MbI;_j_Ts_7MJT zpGjSnYMQ!sQ}aRqOpeZ36q8wG8cLAUW=Gb5rBl`|>slA3+Mcl1KI*E1mYGF#Y$b9? z4xf=IA@6jyUU*{t$yunm_tC3OKiIgl^RRn{w5r3{ZvayJY)ahqgd^-EWZ1b-J@L8Y zna^u4;qo!yi4KY@=Tmp@Z6PB~J zvYDo^#uP{hkT{(gMp2ZxV#s!r^f&05^Ey8Mh5P>w{fHb5b&6kDr9U?g#T=tFI zA<##wD~Z+Yn1iwtQB<^!9VSJaDEPz*Gb} zyx!}g9-BhqU~*_g#{uu$^;taUlE#l3mR-;HTLP_^11&lphp7l?(X8~(-X1f7I2?1R z>&7Ad=0!3$c6JpQVB+i)ATPTu;X~>Lb?cvLnoz>w34U`qsBxQg04FLIO zr$7vy?I|&om`2AjN1YPWbxNEsis;Yw^=r!xTrMCi_k$zd9m@UT%BF=Q=#HZbc~>@D zEpgXlj;I~eQ9JP$1@)72^a7t}2r>|=3)t1#=nA)DoFlZz3FWx+F@5KgW$!%3YaCEd z`>wWTaSPWr5N$M=A=(364*d!lJ{yslb<8nDi0L7MpUBkH(Y#)dvf!zmv$bi;t*%Zs zK-D06=*BXIwtox>G&%Chd)djS@L0IZ&zf^x|p-H@=2}hxr z(1l_eEsN-voBtHt-S)!Sv9msNExe;TNj#@1M;@Bed1xlHffW1mwCBNoD6V0{MB&C> z`BvK>06;~BZCKqbC4|r7oMCJj=j7NhSj(K!c>a_=nexI^rtvy>KUXNnIdr2$&XlYf zZhNvOZ+qa&3=9*W@-lZjac~L`rPDg>b+r>H&l3&=}7UQLxHuFMT^N^z1 zLmiue+M`-%iD6j6Aq1PmG^&ZnQB8fSsI0ZZEfM=mr&el{N_#FP;y6cPp3sGPki=3F zu<2aj`RRoGQW#YjbVe<1ZSe#7k*zYfrrGJfFJ!XxB;iPn5;`?XWat=aJX`e~z1lJH z8~bdY3r7+7QV#gCMdcRKlv*qP4+ohKt&9V${Qn4As7&$CO2vFgF|5rbDY-TiT-Y?b z7_bj3H^_mJgGhKtIgVGl@bStCPVL4Nz@@dB-b9GRBoJB8uK(Q`kbATboB)~}D$Pko z2ir`hZ=3nVVAj!{Q0@_CG*GNapvQ56bNT`c(Y&*{Jmt5sS$Q4&~^*kc?q7xg#?})9S3?t{c_j)XKpdE z28>i?6t7n;Fc~FsI}Rb?Bu{DRWK!cSo9%I(tBSfV`yN)^cAatas$)4#2WyF@Le7yX z=NXM=wk(>T;2zsgep(fr>XVJ^&=={-%$l`-=sX+-xJI@byo2dFBjH7na%}gf^mc!Eq4)4N zXm;eY<_ezuM*DF(g}9AgkM@dpC}BNxsvJz$gR7xH3Y2p2z*CwB9$xCI>!K|I>1;VO zO-P^8APXeWrbH~UQx2tslvYXz12JJ9f4!d7t3SGpUznWMs+gD&{X^NpXkXPHj0J(Y zD*-CUWe@4g9%Rdddglf!z4m&DJm>~%tM0xvWd$A;n6FR%TM~~b2k}0oiT7a`$l*$o z?}5YT72qn>16AVMyK_L|g7AOYe^&(2hyzht#wQE~oXz|-rKkYMQ{rNCFz{2Ffggsk z+yR^)=)>W|?em?kD%fWLEnJ(U1K$x2A*4sQ5{Pmgm2e>#8>*9mnml?(~yLFr+xO z`kU?t2_9&gavZ(Xr#0Z@az}rz4f)oX2LKavn5(B>OB6613Mc8j!pZW`y()DtffGlX zlG15Px|VtCGU}9#?Nga25ga(wf76sMkW*hGy_;1e`fvRQX2kHm?GL6OZeYez=>a*O zt?K(1&Zv6Oy`z1O+k*hK9OHsC|FiZHZ_T6qvEHf;aDctH_Q$_0l+2pcgE8CosU8gO&Kb0K}U|x+Nb>cP%-$cT9Cby z{mFU{L`H#FTfuYT?6m~OhZ#pxJezNd`;=GaH{$#1ukY^e-~V~N^*2yYcjnl;Hx}xh zJ@g=*G-2;;R1f|$mHpqKzmb5Jp;?j5_jM84==-4k>HfD57x=P&G?*u?yaIL;s#5Ru z>g>g(DsbaExl=9iB7`XitYmT!1wRDVsbOy4ReSIIO6wNaj@+woz;8JX!W&$VlK?m4 z05>PW4SyK8POlw0ZMd^=ESm@De!w~`Y7MB<)s+CK5l0M*$QTwSKLpgzxQt|PzG=1F zb}yYosct%BGlIf3LnL0;h~pWE$Y&syeFhTZr1oHOh|8R3vDdBr%kXbmLf@*bgotSt zbDY_jJhQQU-Zd*!d^k)UE#jt+2j2!6e-t;Z0cxOoy_Bp1wI|au)=Bq#n%1|2U{8xUSS5Q(a9_V2L>1rM@JgIr$%gh9y!E;t${x^$SF9DX%0Tw+62;v`u*@wnuo}fHpdguOY z%Y4)9$B89d=*P0hZVHGQ=tfn;N#dq+P-gRxzUiTCt16sr0D?R}s^INAwRIa=TT|Pl zbkJwslSKP3=jc@Bbf?OXWmEicKEQWKTeOKM>gbfU{ccc8VWS$?(*LDdCGnDSG^=vD zS>?ykk3sl;>Y2DHp=oSrvI$e8x4Q4kLBh2o=TH;Q5lOF@?9eO!VYDG44dg#yEq7G|p0~Q+cehFj~4rEgr z+3W`$*m1vi=9&H3ecixN1=a73CzG0T2twrv&1XsEDOj_fGj~tze>Y?4ue}fF8O!QP zz!h~>4r*)$i8fWvLFdg=I%<7yQ}ug5{skA{)v-BwA2GiLr;GE8FmW&ny-|b204wJp z0p}_G+NQ}5Ji_+Hy?3@#;N=Y5RTvK1_*H{0SEs99Bst({uIBU2)$arJ?T7cj-u?Ie z+qbWYS+-BElf3%t+qZ5Spr8|AzvO6cKY#f6>F&2z0*GcD^+8702ibS`r`{5-kZoSXsp`C9z?NAs)n6P%OG2$Zn+13HG0 zfH~%XIiX>etrgHDtS()Y>GhR!sv{ggx0dZ>S{zjyV8MXn>O+ z1@MF)&<6oa92&ys!Y`CfZ|&D^Cc2hJgjWL1MZkvxbK0BQ;dd>8Ue17? zPi6^$zm`TXBb;i{NaKY7bPOvm_CtIcI(fELJWCNQrwkRdfqzb5p*XO=Y@jRiQUY6_ z1KWVcR+!v6s|wQtzjBh>0ch>pX*#v7w8RDXIbx7c$DjrFhi2_cAbf93aq8_83HyXF zJZ#m_nMMLl2EP~kA>?2n2;@6fNj7im1WsAK#CsWVoJ4xjDhT9HVmf!PYh9^kdoWNl z-GlxZYGLZhTw_zI?ZcI6kq3+u?yN5 zVW3>XrHg)STixBj(yPcmy9J2jB?#%4APj#T%J*o$0VnyWst4`Xv~MQQ+|!kfRxQ#o zP979m*WRatZUkVCII{bQ&hDdB9_G3H{(q1z^uOM@P*uG}ywkOY|KbWAbO-Ne`<+!+ z$kb0!#({87Bb>`4oIQtdZ#r<(bgY-g{cZ)n96HsV+)(@^0C3FFW{K%G%lC3Kz5(ED z{p=BTGlT7+tdL~{OB(ym;$6FW?dwNv54Z%v97SwG7qQ9u#~}>U?^;2vC6UuIIL+7( zp|wU5d1Z`ju0nYA;k|eF>bLv5_aD4huf4n9-rc?WAOU2?k$7cv;+6Try_DRiL^r|P zqA^~f>RwkXuhFIJsP<*&oTcDjP~KzN?MsovnnfHK$27*VG{!N7F_JWKM%e4_5eZqt z*fj{U1f)4fe4+VkLnoM^cs3N!9mm zTs(VB=Y@^;WmnyveIuRj5Nr-@&9q0*HoResKM@Pb;>pe;Bw!>C_nT z#v?&Xdxbf|Z$WPV_(B5Glmk*C2MDge^9A^~2>$1_hW03h^QBGmQUb_~1IU~L@;g)g zcOO2zA=ZRu*%tdwgEVisZ>G_;bAZq;RH5!?uLM*X0S*RCsToyp9sdYSUws|Y*wA9w zRSSJ;S1q{C7rV+avGljK@q56{3ur+NaQYhE_mk1kmtJgrl0cc`p8MoI_eC#yHZKg~ z4ch)po%gr#5f-gpddGkNngFB$$H5KAgX`y#kouGl#64_P19_^~O=&vp^r^;E(5D{k zpR}<@xg08_x1U4?13rU!f&Gw}4DxGHfakiXACY(BboVE6&&g{$RrX*DqhKy5abhEe z8Gs*!B%s-1Z*Abujsgl}U)Pg+YvHN=`&e!toCk7$)Lnn${*f)Q25sMD3qBflOC$pf z7V`E(5;DQ^m%}`q#T*PoQGUrj2%EEcj0~h4u`Hr<)@V6M<5@^ip0Vvr?N*6F^b1 zb4z)Jay0hWNRNi`hy=PR2f7)J?sBvFc-9F~@9dup3{~9UL5TKB7voj|X}4^4su@I1 zZ^nTyJ;;-ti;wMZp&>W$=2|z!1t7bI0Mp!Lq2p{vu&wA+dchH?ARAYqDW!{pg2{4*qo>T zE3-h^b3n>1R+7CV_E@6Tl(d}4bFQ_M5}17+)e`q~U5gGkp|71s-fG$Rd!CXqihQ`> zh<3pduM3`Pfc&I%uxJLeft#u2M#={hEWogbrgwZ`3oSV?jeX?(aYSR9p9NF)lpyi( z*eCR3AD`~A&!#4$@^=CBso++tdX1NT_Sv`Qi8uQ#9Phv!S}tWJdBT^EacD%3L&Jo% zo0OflB1nAXQwg0<9V_tl3}Cc+ny_xs?dr8cKf;#2tqj0$VbIFR)5RHyV)oz6K4(XyO~=eVSExFNX> z+QH^W4oLu-RFi;B)jD7U>3c9zKXXnD0$1Z)0h9Y`26tZ7~6(wnx^(v5$ z)-Sp(Jn0T>TB-FOcT~IWW%WAvIJT{YE$Q33sfE7&?lqA8Xs$Sr zE_@(Ow*9_M4$p}6i1X|)T;2#^KnUdTOVCd2`T&TMyLG?04)(H#*)s>&9(GG&`hX`o zb|mNn>@TWOtpdhA>!_Nhs$P>l>8RWpFXkTvd=YHE%x zgV@K=Cgzf5^MUdE-|LK%~ zxcVsVl7z&yJe$FGKu6tyq^e5|UF&|Fb@bRd;m+VnBBfnwwU0^0(^|S;^}c0!Wy0n*1zF(r91ko*PTtPx_$;4%opHb z!H!q(qxeVF$GuNHeeVOP#>cAN-T&?VS7P6PTG)EPyws+tjoJfO=%O5~`7HSO1e^eI?F(JkvS(OdosH`$9NvV82t^7Wx&4(}=Y%G>Qm}p1^`Pisp}l56w(!wMnO6S- zWRF!^{GXezA1t_cgq%`1&7J@@3hH#@Wc%IlAcLDmcECa#sE$JsIF3snMSK~Os2&;9 zKi_}3`ACC0Nk`Q=N?CVrVI*Gi+rKpqWcZ(&B~|iqJr$Q^lsZ4si4}e?BTIT>s5lI$(Q(${7FKxds?LD!SgqeScWA6QB|-cTshrpYqWbc z%!0N3!Up8nZ9>ZdZ0ZA8GIK4;^8kyzQzPXAtP0f7?lbQE0tO~vx?rm;nEHrS5gDsW zes%D0a!C`S|5n#F>>D%tM(wLGfklyUNWJdFqtKegyZX3jNg}d;TJq0Qro~l|GQ_WL$tIehf)W(S)>Uu0;tEJxrxDywsp$|4Tjg=R$$z6BrD-M8j z9{`iBf}>B3j{x|u$`%GjtkBbHa#G`KN4xCJp? z*^Sidfl-d(2U`W!8)JgD6Z>lpTnit#k}ZSq*rC-k`U)}WX?M^XfKK5?^)v9U@Sj)i zrImn%+THM)MZhwU2)gZ{g3C5inSnvAKFNHz(TsMZ$F2b! zgY0Lyl=Y)@H?n}?3|HP!!3HE3MctWT=(eJ+IM9uKpiA#s#o77Lz4=ck&?+sjUB6q) zem@RtMx{#*h%+A$=QPCS`5?YU{M-iH!_!)uqj+(tt(K-&T5@3Pqw>n=$}5?l(d`c7 z-0;ccK1m7>*imym9_g;=>a5x6p-$sR?we`ILNP=0L)ks8OJ;TjEhPoF( z_{4y0?jxY(bU;heKb6ZJ^DZ3Sz#3sCVNb@epzEVp$mwF?1j@|QNv?8Kk1$4X$}BLz z{THL<$Zvh@871_d(Ko?|bGQR^t2^n|-L(r|a2;1kRB?i}BhhdG>mxhJ>FgjmV|IW; zTQFF>54T}#4@5-YWe9NY$$_hnf~=qmvh<7v*-u)v(2O;(t+lUZ0~ZCeL+(}Uz(|`d zm<{rXxAr?SVC;i`BPrQ;4=;bE_^H=6!h8F3G~@X z$FNpNs2MzEvM^!zNsDeN0|Ah8^koYlnQcL5w%G|X+o^HQy>?~`S?yC!zyhQX7hBRU z_ShBKAGj*Wrz-?lBQX7Vr=>IpDPihk4=$zm;KH209GGM${~I>8_n7y)or2ZBu5ma& zx(1E5YYu!9ANbM*L7txv-y4IogOLhK$`;KPqkp5SHL?_sLgSj__$~E8W}b$03$fsx zbEVVbY)*(}?_>mZ1#`r;R)Qlkr9P+|(va?E9laCx43d+qQBKeXdRdOI3@$Pm)Gt#X zGy!QuC#AiLhBkAUnNGR zYsm2{r)h=mz-_re0Bc#y*vHL#`pnJyu?s}cc-11DK9VyqyOLF91HA>gQye}u@sR1K z>70fzXFW44(&=UGK4=7}lbGO5tyMSsj?1tW)lzJ2CZ#Ke&B4^ij!;VP2u1va48`OP zCsMb$8ovTRpjM8VMLB7^@%#{a*<9sS=Huzl=%+ts=VmCUiv6EQ);9CBy8U<2ts7Kn zwa)i&#R1`MttH0^a_VEAmD2O9C}!tt3FmWanb7t8IDBj2!$1q#K+}--5N19VpWfA# zOIHt%{bJao6d4eRC}4kg)$3Lm!{T6z%m=zTjc$A6*)R9@`?z~<<30g0eKC?W z**t75{wXp3;u%-6Cdb*RXgzqX5j&|8XKWWIW z7;1scNAEhD?p-6gydqFjDhB;X+%)J8P#m^ysA`j^rmhUgoUAv2fFYse5hKi^)Caa1 ziEVKXY!5)1Ylks@E_7>P?a~H%KVEZ?ZbVt=tw+DML2 z?}I!%nKSJxN83qqAVlW0O7({IZP9Dl^usGMZ|BeiB;mM}0@9vjB}w**SI#wbbVN3PFiCYodsPUYs`H_l$?wx+37R~qnsd8fc6Jolx(%^`+Zat)1rYm~UA^i@uL`3(0iyQ|gXPS}*gh*rlRb8;{24f>m4AkI>rVQ?9&dwHBUy4G zABQ+uL0V*Sx?XY|PnYcdW*@A?qy1j9krsF-n}@o4k{QSLCvKd=7cM#WbaEeuCi$GK zILp%&^YNtAII84s;3OKD?CVNun2+GTnGwySTSjeU_o((Wo^D<4V?LVC$vmM<&JQ)x zrYK#FXd;Aozo_t3dS$;QL%NXr;9kxn`tc7>`1nud3tud-sI_=PXj321(zDT!wN*;o@T2tK zA>NP5i{o(*I)kfkH+~Gz`Z)8+V>0Usqtm5blUL_&ff>PZgU|5Jcl_isfMtrRuACZ{ z(CYyS8W(b1bL>;+K1P2zJ^Ble9hJVl|MKM$JmZXejW z6^?2x@sT|wboLMz+*nV=xUVDQwU%(Q0*s6x@Ya7jyEGdX@{iod{3WO7FGmvw{*eW? zsj&B@)>>?WxAuDoUCj=rE4vl2t88iAWXSSgluXY_Gv%P z7}NkfYM{>|Is;Q2vv~#UZP*y!2Y-<}29<$4_wnH85e;s6E^t>uqwh2q7h1MM2g3ze zzPz~j&DI0PDdXtc;SRo)17RQ21$qnNXac*JBm6zASHW(xN9~rS(7LwYxb825&)Lj&`0V8LTxxh>{%AF$Gw!$p2RSgkuiIiXG61KkR$=1CXe zDg_>+l^mN~g%6eTBBT!qkLJL923Km$TXewABrTjEJ1FaQ=kl%f#^96@xo$axS_&Up zW+1D75jUpe&#x%0|d60!J z%PhEkWs@y98-zd2;Qo;EArLl$Sjkr$pe8;*O=(ce^MLxLhqOyvXt@=&#;Xr$y}@BY zZl!s0fx^eyQ9-XAMd6v8D+H|$QCusW6QH=*ELcc4HQ0%sMQ*T&J@j9TIHEz#&IGF4 z*oKWbxSN5Nfh)y;Mz}_jQS880QgS2%K1djfXGj>1UT^Va22K&iO!XDKfR_67 z3J0t{Tx(3b*6>WO^{WcDTI|08`m?oAbqy_T*oK4cEnAQ=fa+sctDtwaqUcQN)t9&L z@7}}65HeWv-)Y0mQXY$-kLZ+4MyKR>RLWa*5rt~OjcQEsv7&|`oOJaNso?+Nhj5hQgRX3m1xs!$(E9MB(~DOLZgF#C zJFUcGqkQ*(l50{7{T_DOMC-(aoOJd^DGq^~BF%i@nv=L5t8%A6sOtMIlpp0^`bFqU zbphxywW1R33`5l|-hcOau536cL<=ALK}AOTfsox1l+(RdEuCrBc=HWs^rFVYqYf}_ z4?GVGt#&N%`mouIwAo{?4t^kdO%7xsmy!lnSrBDwv^Jpv!?l=Nlq<0}9GR*QzKmj; zFC+25!gd6zc+~|?6lbq6&92RO2fkdY0o#N&E8s9!ALInZG&w=yfeq^zV9j`~F**UD zzK1Q$ooiYl#kd8Q0aqU<_C-PBnk4MFX4J(7%v}560no(Tqm?yWwVOeY0357##BO5b z9_wI^ASww*& z2D*KBXccNzFGUkP3S&g`3fcx7u!cThB{SMAI}fa_Sa+hUTQ#_;V5>kbt7&YVi{u&) zkTJYf+l}l8VGXzEfH(31Z%o3Qp9fw5(?Bf0kPvwyd)rFg)yw(-wf$v>Mco6+3%Onk z%>ixV16s0iz^vvl3GH8HSI>gSy2Afm*4LwQi}kNqiEXS||5J`vhaAvmKA1*>d`PwJgFdr~iw%7t6U^Cht$<3@gn1Mzq6u))HfUOU~;xZ-^+u}@#E%vr> zbI81g4;qkra1F0LsOr8BS_$*8fn!&z^f9z4>7h+HXK#E>Gajk{{jJ#m5zK)IevJ;I zf6alXkH9s3h|CV;R72+d?{et+;P4KPw@eF`hduN0uxBAX?c!B-jHkEU)Yy9s%mCYi zufah7?IjLOeb^=4-wq>QP4Y=vE$D8KAmU*`B_#`nKJH)3oc5K+E?zt@+BnIl^^^T^ zntiZEVfPu7r&3n0IB@ilf#xxdBd;uDk`j!?2A3{(8swU#Q*Ofk^&7R9{YV9k+ZnpH zzcdHHg%5yBdaTV`n@-YXeNiyN7JCb$**Te}5o1U`g#pc`*|;}oKNAe_`WU^G^yuYi zrlDuxouqHNvDoT|R{gpVrBNH2Wf-A>}(p?w z^af`a7x%Nn^Iw5r<{qetSf2jO2e@?HO7nAp`&Hrf>!xmlhuW9`h;`v6_7zqQ8@!PR z7wgWu8M51C?qP?(z6srZ;pZRma$}LyfpGT*jm=^EE2tSpot|3`j8h*NXB5WAUKSn+vM^@Q zGT2Mx$HFSsV!C`d9B`~^ZG8YNyKzLX*hhL5$0WW-`qvNlAMby9|M~9ymlx=jcT4*d z;TF+sRC)#{J9L$nAgMjGA8u7sn+*rMDCy)8tt*7 z+dt@YOG5Anl=`eY*b3b<5a(I|d{}2fT4y{zGm4^nSPjiMZw(fb<0(&l;Fyv)CMS5x zCyxr=)ysb0b;7Z^**YqCXD#zO`0uZCJnw1Y1L2ZHI6eWw2_=K7U@Hidt5$VT%r-Da zlwELBi5CB+Qz&4-VZ)h^DvO$NTZGdyBD|^}<%L;V^f>G@^U(yLZs4NJ^vDwR-LD@B z2O3hsduW+(U5F$jFoF5bM6X7P7|=gmNNB!r;9GjYm)aJv_$DW?&Z!a1xR6~*;aEsV zW)b~5xalgCm)#64%wae-1pyf!@RARInw}Bfdfh24x_;(Z@@}8-J&KqXJ@W}<~ zle6TE5U;dqfqEA_!8HSZg%77&kWM#C&xqf>KKN1ltZTQAEgRT*x1TlF;{}p}(dw1M`ZkSpjq;Nx2ckZTOBzjv8{gZB|XgN^!;Rj064;0~PeCbrT0GM>m#+tI! zPscB^);4r?2CW)7OZuU=p$s@8{i7Uupo6w=LN*o46J)UQRJi&)v@rIXU0mS)F-{En z&1G=28A}Ife|@q=+aS7E9E01?!%b%rMss>_8=n#4`)>%&{uNHRP8jSjt&uuT+Q`$dl#}*N$ZRe=#q@IW!to%Ja(PguZoq)u&cfJt2VIJ$k;|T? zED19oo+G0@$0>$ulMn-mFHA0wzQ1}BszvG(r@Pwqhp`6m_;hOq7272A(ew@Jrti_K zxIcn(GL>v>VWCmNMb0evV#|>`fvhr;fj-#+;lnZHv|~6$4?UUYK&w+ZwXkEY`LOGotAX`gaBTEk?5mS`{?!og$bHek+m%QpUlg-}0i{G!H;{!8G1LwPPd;RTm0Q(kvFT8%m z0c_#}*pvd6SxzOKW=NY|Tp*>VO?I16N@eH|x(bl=0=PR|DC<0^I~qj2X?0P|WkmF#SZ z)*+9NVe$z+PI;n;^ti{aJRbopN(k@42V5+qXwA%RKDy*#rKQ;f8czI?S=qFzXXx-m zK29Mb>J%crjPvtB?A*d0fnGOC!$%sLX?S|BYq@fnnc1ivN6rvuKH$wMc#mx~90Bir zV9Q*InwI#1d4=bZE1_*HI}m+=h%0o#1e5AR=dKvd z23t)$efA0(kl-hfhzVtfG1Bb>i`(_lM2~XPg!5CFa5l}mH1gTH!wTcn#%lBW;^M7p zx1!s>0)0XraC0Bv7ChXxN5T4~ms{%tc&@3U!biv|$dFYqw-=|Xg-=R@PV4f)9GL7| zThhJ??nf181HDCTBG_=YtIg&W2fjXfU`5PhmoG*3eFqcWcfWqRxxJemwxzM=;y}=c z+bl@8c`UuUL*fN@5pTXJieunWxItz^JRDW(UNq1J<1ow8!;V-ypHrZg1uv+Ryy}N} z%u4CC?A?UH9jdPIXw`7sO~&)w2ciW%1YACQ(br1_a3{VS+gipHi*ZX~<6bm}b<4N~H=@rN1knm_e z@E^(FCl})W_ojLj-O@hr{}%-BhSnDLqmHF=Qa~^kzys6eMrfXvUmW|0PB9&wV*Xid zToBauZcV_!`pF_GuI=~g*5VOP`57=xd{}NmTW%7b57Qf5_0|s+GJ&I<608%9PQkrU z)s=O#gV}I|t|apTa83i9o)6%AP^N;FmyM16#+@&$Q6gZe_Xe_mNDq|TK!lYT4v>8e zv|@Uo6(;$4t@tmPzK({g(L>C}BBAb9Ffo+Yv;!sj4TtkheK?Br8Anl`58|H$bO3liRTggLC+CwO{k3!PRN z!|ZB~YyUX&VZa$}z-htS%ZkhC%mMc}4df3n{RU>Wr4qJ|FxOC`q08v)FKRfD^R-?|%NVC5Vvh~4sunA2sTz&eEX+w$mABtB^2l9=p> zMiK9-Z#I>Oe$@l4|JeV%KJ4_b?04dTG4|nUW7^Y3(RpC}4ar!LuD2g_4}GNtjHEls z5%PVI=p`{7@+1BPG@Cl<`QRRMQv+|T*a-$Pdiec)fJk#JMC@wFQ-?dhf&4t4K8zQs z13cKxgL9pYJRGWux>xomU^*^Id`R~taYlp8JNL*kf^7j{9o?od!Kwj@1ps)_0Qv4x zbk+@Aap3Bs1dZtuG%C-7>u(Z(gN3xERwF&gQViC$?lya5zJj`Hp>)SE{!Dyu03ClzOV zZtYh*s=9)<%+}TphC@X)DSV`01)YL16DmxC`-`YM>rbsumCec-DRPz9ZQY9=SsiT# zrgkhw>m!mCbR;`g+2=yLsn+ZV*g+M&<9oO8cC$dN zRyOAXjkTbaU4TL}tziK+@&Rm20~?KwW_9r+N z-dW$;xwAm$RV^gF1_guLz?yUYX#H>S6*yiG@>8x)=9or6xW~8;#Zpuf81vlQZeVHw zHQvUS%}A#C)Or8Keu1=~*?(L6j7W}uwZzB2T1x+`CFl89L-Nw0v;Q#Kh$h%Js;ZEy zRMjXYIBYopO??2G(SWAs0TjqIySiO8@~OcyGHM8I6ONiik1CA{ABdJTqQ!X-y#wwC zNYmUMz3WQ?H3@hd(E(M#lA~5meGJ%AdcYP(=QGpJF_^>q%LcyLPT~y*?AeIQ8Y-81 zS{nPvF%mk*V4ko|he4$suCAqnnQ^-hY>~Wn3gh_7_$LFlK6r{#nx{BU!t-Ezvj7&2 zk#c|N#xi3}-0W)#HRxE14IkI?DSa*fjk@E+u-@7lt*T&>w$;*2(ySlAB+D@rT0d~j zfvFESkkM`+Iink}zqft!nL9S_ky+bfd^nEdc=)rq4@AjvPn@2qc>97y+p@8_mAl%M z@+r0Y0KcKO1+(F(+A<$`Kt|^Q>6!9?JLJo&252s96|62PV8;OU0-X2kYzE6wQ)NC9 z){IVA(=#Qk&?>jzuj|n~_gcVIqOEN(hJY-s_4{m{!<`#(4@=x7cU|3N|b03D9 z(}tRz$x!b#)>R0rv2QlEUWR_7oVujjx<%kQ!j+Hhgp}S+i1RartB=-~4xsX|l(uNK zC<0*%a5>=(GLmCFRbDLE`ltiw4TU%l&t|t0_B(dppdCwCP^Ol0`weUkPwQhrA*B}- zzHvpIA$ILH3fF55<_5@I_&pOOM~dZxPCKRPv}5MAgmP+K+%auRN7-b0Tdsosi(3{S zwoc%?g^fG=Do2@B`Y2sXx^yif_SMibpOidoZHWpu-$3Tn!k(=g>dJPk4{D&wvPl?+ zGbnu&2PIt`6wJjzF?}8CWOV9pJGWO)?d+9Byi=;<0M$p*RnkdUQJe=<=nQDIJ5=$y4WYIv~N9W)DIWoak&ZaZ|< zs2z_EUlw|p?`GlTd^f!eFOQt=e!2Y|+}(WraC3M2{v)9cF#$4?jxD5PDA8LqSp&Ye z>!ELWZR=hs43xeAwHkU3kP{yurxeJ^SwS|-L2K+2po~esKY;mdxn>6Uy5rRYBhr}< zq;m@C?5s!wrm*s1_LtB^sH_Q3Xe|giwp?+V4=vS zSttPEV;7o^fw-#85({7uI)oz=r5%*E81B|^np!uoXO26Ld&vQC)mB{@@xT3!6bTs9cYtzqq5Y z)v8kiF4)OMKfAc7W*iv%NZVpEZ9A4%;TViJqFGrdD~8oI@T09a@V$aZwG_Smvy%&@ z$G_mf)<>cilZo1~i%Q2}>sD!&a0ek43&;2w(DR640wO)wc@CeeJp=v37POl1;4FMbtB(EakhZ}St;GS zkABfMN2^8mDiDD!>w4G?U24%UH!PmkhXhcTkkKqYK{T790{ClPfu+hmSlc34vKXlk zk)Lc@Zr**qy}7#&-n|cQK7YD-cTb3=&ZqghKiz-*zyX~PZ<&zZGCn~p3a5zE z-hJPl^oE*`UAQbGy<&1?ujOCu<%gA`dGN||A9xiMUdJ+W(0E1BWGy6-gkv)c>Q!*d z;oW>JUu7Bjh^8laM5B0GYZrC}wcLUl0ghKME`$vk7E=2W2ckY6-<*7WQ`W~fN{D+F zvypOp^-cFJ=y#w-)GZquf8pTXf@&l3z+tOCbV#zC9I0gUlf~m`vV2snd<6xKmVa0E z63dzWn25_|e>Kvfu_$R}K6c!)ob(6BsuI!G8_y@VuyCg8b}u&HbC{^^iRu)c1xS?y z@KbOMQhX?FWCdx&$L_g3ONSUwB}7Qi3oScqoioSAy{*?$br*8IhS#A(ttE`DE`xgj zodaPX`9MMD19@^Tgsl-nvl-dt_JLuclgtVqPM{#2Kz@RxAdaR9k8cCh0->>Ehx#b` zy1Ndlp<8ciN3jtMFfnO4;4OW)fRc0p#VMvx$@ETUtGe-e8}MWS(Lz_I+(r7TCwCQlL{Ad>Uw@YpfQAMgv4YG}wW`I~jPn>`c|_Uo@; z_CFpa8x<_-^;la3(z$7{-DNW@E;(S&e88U5u%BQLAel;p+qzS5CgXP8@Gb$vpZvY< zM^%*tEV^jXt&s;;ZN!R2)<_$SDZ-_3B+-3dc^X=W+ z_g|>l^|X>FT*ug;1AM)$bdt#12Cg?&7GoGVTybFP!+}!sh3GQp#x$N*s&VUSHmEPP zXj?eygc~`5W3wLesjb+usHNtGk2XRPQ^1Bty4KJ4Uv56$-Vv1332`U~y+qM(+{w|Z zM)oH)7|5sg_E!YXqJ`pUhvz=}wRuVVfg>Hk|G>iEXA;}VEtbDon{80k7xI48p8)yp zUO3ecq%JYtuv#%(Bo{vVi^ZHY+hZ%QA8@kyB&DXpn>f&3>Ab2fX4hlO3R43KItg$pq*=mO9Q(kQ%(JqHJAB2{G`rRx82jylH?>w>a0^nl z7RkW^4Pf5}YjwqeYT^UclteW?8>;tCH0d^Y=;RJ+1gBa#VAi_8){A{fKD^>UHuHgO zP9mG04Oygr617vXH4+Y6-RyQTYOMq7e%(rjnRt=-NMsW-k?7@etL8NxA$LPu)=}cT%v`8;l*N!Yt-WF)vHFSwKA*Izr3oUI?T;y^a_fow)28=nW+uP_s6heLgZ?|5Lk7+_6cA1qX5|HuBS z9I2}hcFm%otu{Q9)!uh9&;tZ4+zn_JYKN#gd{>Q>x^kRaJ02(NgJ-iSavI#^OfI3r z(scvtTQXLG=w| z16$jH(`BL5D}1bcm-9J|EpuLwOy*fOAHelNVA>VUcf$5Nn;C2{o;8gvbJfm2wBTXOfcl9Z}tVIjj^&8XK-Z%#A~67oN-V)ep2R18@{8G0ZdE5ne)H!jYG?{5l^ z6M8LxaIBI`SwDgR@P4F?*RqA5;gSQ{$Op3Y-22$6%nwXwC%4<)xKCr zFh;~%#u_;{Uvpra_`sIVzY_Kpn1mQ80vQ&JxW|TJtCl$Q2I}1!=*BpFfe((nGNLUu zWuGHXZV=u9;kFu6gsto#g~k8YdI4-E>?90tuo=UUft5Z8+{$SJH+EbnvoAfgTM5w$ zR8ldstve31W(2zb+o<%4Jy=?uh3F_w+W)rZ?yNv2egQ#7l(67G?upD)tt6cm>)G z3_bDEhXQ4p(dZtlhw=jwK6yOdWbCyR6`UqZVPHGPHF2#oR%0D(YX_DodFkVzrp(B_ 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

-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%0A=!%Np~i+s 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ŌfkS6-*SOJL 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

Ijl|Nacfh6G@2dKFK4#~oEWq)G_+|q=tyBi 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 P5WltN?)kHuMT!PN+SxO%E6%F^aN;po>YcgMf zrP;VZWdG%x0`LP8ClNd3NIfGu_4Ln=A($cV2f}g@ETeBaZN29hl~6(&PSGT+GG>_W zBymV0dVI&@=F9!pFTWqB^apn)g{m7}!0Pl;jWVdpTLLN3LT~I3ECDFTGmpt<9_1HM z_`65qrnXrRz~k!5Og!r;G(3DbpeU5YPDjFVBb6j%5-+&(AH>s+vs}3nXs0`OZ-$%x zrg!>k`*A5w1XGSyT{ytIiV+D_$;|CkRpi$Bq9&6CU==!YFu%=jswtO}ZdHj&z@u9v`(qt?vG zS~HcTz7A+oBMC3bp$n8`WQKIY?aIrLMboU-7{+0?QTDixiESmdR&YGvzAkb;o^Vi! zCeu`+2x)c!NPlU&HC*$-n_g*Mz^`$i7?rD>u#IsV4FUyxI%kMHsZT~8e=aDq7-rOP zvu-ihglk=QY${-xsULAbNKc37$ps+1U5#u8Rco|c8g{ccw@v6)vr8iZY0Lp>LPMHf z0MdIDr|UpG4GuEO8aCU6XYGJRyf5akXTw&_FLL-WN`%LKS(dhh$!n4Q6-mbi=T^O7R2f^+w1svi0X zm%pmR@rJj?9=(F|pyJAVH}o!K8L-|$?ImF4FxQYaSHa!)h&l`2Z7>Wyho@TWG10ev z0W}3chD`ufj)8GX4~+d#t`{1GgcAU@I_xC_52V`LglaG))=}Cq@4=#&Kt-BzjFnPq ztQ1@co)i#vYK8)CS+|4PAp5;>lVgZdt=TGZ`R(gl% zE!&;y#)T$G1ODaMbyL5FuQ3Kn$|g9kP<639rgdLP|YNIm|RA z&GZCuwfo!q+b^`{1x>xM7zy4n*dtR?bC@$h_fO`SJ>}qsOjCZ&q~qcI@Q+fUAD?C% z&51q^X13&^+>=Yr|c^s=|jHH*?L+s3q&>O~$nheTKwkjYXq zzXW)wit)|2Y}5;6pBabJRTh#t(+MkJFM=9O%P3kD^=ha*-F2W`_aEYh2db);?iasl!AGW6^gTiv*D5*gVcM+5#olL4rvU z41+2dSp3vBdV!K2=o^h0tSxf^OpC3@v`$fg%JsupvveGr^(s~fZ z+i@7AD~UUUjDuD#o2HdJKbm*%KYaP%-Tu#&chexnKCoDfH*nK9nx#GwNDivBEGKI9 z=qeTpHdfqGV zv+9=keR`WCZCZ(F&N0i#s98pImC8MFvg)x|j$82uAP>L26|l$LXNcyxA5lo2Fg1Va zvfZD)Y{%6t<835%4RVfE_}nL*;t89ZFW<8H)2l`WGI$v?j6)xnP&Tb&Pm{nh-Qa}+){K7&GHSg1yD;8YT49U__Su4~9Y`?9P*?`=D_YoH3 z+`#vJRm!LV<{U~xc|=0$%NZ&0=&iSe#$~7f7&J&7n#E)n`pP!yN z*$>GnMANxkZ+%jd;G=!;MX9kQua!YI#Jj$;_2gRt6dBfG?1%Uyih?uVaFRJ`*{erv zT;d`ZUJ9W2c{`GuyAUsdXvBdi8QN1hwzP1H+vg{wkygFi*Mzuk-?nZZ_bvv(otyi% z*8-R_D6iTN$^OHB=HFnD^+_L1>=RCI8NI*vZvPCETJ|TQ6mq=f>61#I;Do24`rC&u z_s1OmjH~_FUVDJ=0Hkur&!tu?z3jDPHvegOfHPJBy9<2|L<0)Z;EaggR0}68q8jgg z+ci5Sv5jSaVvf)p<`iuCQLz2;>FclWKiu7a`2L??_#vDN@CWBJoi{U!8 zm+2ytL-wJ8^$qOKnYKpN@3m(XOwK{T+O<3+kc~NzO-N*uqmcdZ)8}8m{4|Z~w0e`E zW{&+?IkL!U;a{JUCpg^{C#OBnT&3gWRs=ha$dizfC!9;9Leq2GdN93{9u5 zp<544v7dRrRPC_TMhe`71KgCgT>MKPssdz@>ue8 z$&p&)?hQpDUqN+PEkIVg)RhuO*xXGluU-g{OrKO4J!N; zNTa*7KZrr|eBzOL;*L~nEzuof*b25E5>co|!P!xTg%}J>fLzmhsF`8I6=s)i*T~iL z5>3pM!vmzG2Z+w^0Y0^`ncg6xw)E+G_ugw&=uyZ`)h+7JoA&Rp$u0qH#^D1p(g#H6 z_W^e$1bJ|!2My5zn2&JVbzzH5FxPIVL^|#nN4U>Y3eh+|F6e*#^5OgKry~ykuyDV9 zN>4{UYG~X!ovbDN3f5l7a0Yp*gm29`+9EmG7D@awWBX3S?FvS#S~ZRCz&K573j!pV zJYX)7ndTg!Dkno#a$Kl-|MmM%A3ojQ93f5ge{YP$2n2je@==KeI0Nit^=3(U9aJ0dI!`qwi-Qj>fd^I@NKRn;EXxoBwI=8 zan^TwtHk%oR!N$j70la_ z91aZB+m!1~Gv=aN!WbD=V(o{Jxo0Mpdj=HM<|EWY|JD20q=oNT5HmA^qAWpq)#V;1@C~jkzB(n(Pkedtsk)z_jV55__Yx|i+u`L9rM1I5(exjU4PAvXRF2wx|O*s3q z>rp^M|D!a$n|ds@GMH&DB-(R6$JouM$8P?SgGzdKG`S1+%fSRoz1FkWuLVF$INV@D zyTL%t4NlX!Le^LSnJX&cI0Jmz^8zwM+@ygzNCMS>1JxInJp8kxdIwJzU|S=T1cYj> zKsQhsZzLfG9&!mlLk>VA8qnbEfPS>*xl%A7GGnlI6yv&k<-LdO$0hLB;7~z#xf6-u z2}f0)Bs93u*}+AcIAF=%wO*m%;RDP?yTgB!YiNPsVvYTeu6QE>EJs92=!g_17jUjN zu9pqA-Jxgv_qJ^MYVQ(Fa0&piKm*=SIoxVWyVdCYZuK+NJqRA|g6zEl)LP(Ghoz>xi|?mE`b&xPOB8eH+MNVs8AnLU=#Ugk?7>I#Np2oISX)8h z=`bqIyr%_34g7Eq@a$C~5#ciq3(RO=dE|8MNI3B_9ep8Q164RXg9g&hy!Gx|Zwq(S z*x_`WbuhpjnnJ>Ha!l8Jdb;K(^K*jx1up!bv@n3;dH)(SD1GQF!R?g+Kqc_x$e40E zV@g5^JcAb`2yRD;%?*rv7ef!Jz4Eq7!i5G5yzcfx=;l!(R(wV=rN3&!_{|nB07dF{ z`%`m3N5AM)Vx=vtT5d;jK;vk?q z#d7m<>g}7&VZlwi{##KR7*&`9@8hoRDgmBC3rEO-DP2S6^YdeB4RN8G(rhfM-OxNh z+js@J_+cxyXzQ{m+r~&d{ea`?2RUyugG`EILU!rTV@x)nIL^+4>9g}Q1BF{h7_R@c zvdM=SM*z|q~Q0sE~0(i|Hs0lmQz%;l2tsVn{8P`nhRyNaTN?pTj% zyv7}=z#!~tp#^J131njqWa*3N`Eje22m2y`jVH%8OB~xa?T=gju#JUFmrwha?P{ev zi8f>qad^)trE$&AjVrVw@e&25H}KxI*h*j!b0my$M6(=-O%&rv`iPAaFYoktAMHp- z!7gQBwEE#M@cn?BF7y4_-Fboz`U!VqSo2yVD|Bcfzoa9;D_31H23kb85LlHO z*qT>>tb}!D99`cmq=Aiu_EeKea)}kHcHMeAn`63*lXX=tT+b3{VN};MM8QUG(g<^|B>&heeVkjzM@p55j{Z4|h+&7L_G| z$E?uXu7usp8s9tSp6gDHo%WS_v|o_uwPhUfDW~Jpk^34a;CkaWgI=4qDwm+_wFYY8 z1Ivu{uFCq?W<3b3Yy=!z1p&QPU~^Tmh#yX#?ZTo4ZoWu>#!&<1bPW_|vJpOdf%4ip zN0gr`+PB_kcSP~y^_hg@%sFzWoX(w+`DKvBU7`}D1Zw-8D%f&?6yHfqjA)6f#Hz*$<%$`81U^&3y9ur!a7aR+v{_Zy&ztJJqa5si1?! zmcTGm6}Cccv~>&1UIOHd17zB+0)v`N?C~A8HT`# zK*%vw59z7;bM1R(Y~RCr$1o~442@0u|7qjaw$sb9MWL1wbAnppx<6!4XR;qcC#QKR zl(7Mc->Uy{wdVsHTT&)?3V5%LYYo zuC7r5DzjfLyyK>>A*{u7-HJSn1`V#Il;&|>+MDy^9J@=`s z^u7f0Y~+;~nw8C)Tu%=!G2n1uIW#CLzbOlCBp!Oik?Th^8?P9n$0Vx1ZD4=)Q6D_% z3}g!In@0){M}%5?h3)`V5nD|;P!%{{`wPia`T`a2zkUv8rE&{lA;)+*q{qwQvFZdb z(eR~HX=uAJx_eZ8*)~tqySO@QbI)>YN~7GREdwMl<#_Wk{pS7X%$QbX-&Y#NK~=R= zdo%Ja;O4wbOd%`1_Cz{TA;wM zTC^(x9iotfW+9|$7Q#U2{b&B9h6Z${aSOuH&}`bu2BW1-P8A$ocJO`2g$Z3t1Sk%k z^Y8_p^J5huUW9cjA?@3>#)8NzS3lH8j?<)Oy<3ikEP22^zZH$k`4!Q?PdYV9Pr3eO7W9gITY*Z`XP z_WP{|4EM{yR-v_P?rk+}MM;3kF)qpG6qwOj!30Xl<3`(6zLo-5`kY)|GK>re#}i)v_0XlH-YI`-X%0?ag)H_GE-)RNRvTr3oWC%i$PX?hQ z`O;32!~4>{b>#1j)`c#d=<=x9XlqVuoE6CGn62uU8xg72h~or4qE6t0W2JSDRl{2W z=Z`HoaTBlA-Rr7t;r(AppvUpHee!Kb^YcsN{V4fV;rbXVw@M($F))q-GVVlj`k|9D zd7pG|Z2e=Sb~XM=1iXL)JTjj=a&7s=Bxte>hgf_d>S;V}jIud;=k?0;So7Fy^Revu zK?cx>1JIZRG?lZ)XcE-%=-*qEZW$ECRc$V5`f)|XW|y@#*WQEHTO)yN#(^xEugCuR zk+oKO=(#&Wm4ofN%3$Mxe-zka>6mHM{q)N=po_3OLJzIhJ`IpOl=0Slsf z_WJc+Vq-kw;2elTGUJT%3;5X9$=thz@wcyEV{c^X2F4{emn@!d;o@5WR1V#OC?cIe z5}jYb^>hn?}jpCRT zN7SS^I94RC z6RkAdE43qC1{^9|NZs*GwULHgu6qdQQ-HAP!rLE4YA_@Obq>LrlPIJ|2X(8vn8 z*U5Ci(c~DdADo#Q5Fg%l8n{-g{TuMJk9sd;s~ofBh@K@MtEP7}qR)0}tWCP0wQ}A- z!Dt!OhnIg0z_x*54d$e(lE_{;w6UWsrO}m(Ta#*q2K3w48sk0GR7U?Xz*3%Gt@N@t zZ=8zrvTZ8~Qk{t7#6HStqdj)f@f27=W5T#2#zm>jxKuK9`r6Sz9Wn(^t*!A&Xmmw6 zN3oj6G_>jYp{>=@maA?3lOyHUn z)!ad6YNv5k$COJ@L4h`FKQy4q*V-JxEt;93TWN`%vY10SJDw*rs_A)AEmwdkwp7M4 z)_|97^wL^u+3&9{#@4OcuL%Ikp#l*5w3&uyHd9!9fE_(JbQlL#&;nfJ7*N4hRQJmJ zEP`glfhO%sj}$sP9?edzami7Y)wPq*-s9%uBW^V-IB5o|$6q_61R&*@^T+g@|5&ZF zqalUuvaQ042GCnD?vxqrRKdKuYquMHAYE^(LIPF}M;g$MG&;sMZ)i4ZyDcjla9k!jG?;3L{4vlg9rg2ImAn+wb?dH=@Gd#dHJt}QU z7-PbLBGF0@kGyPkKmLDyRP;M!fVC==#Bp`Zao83Bl|X90Q-^Kgl@w(~Ol)z1z2V$( zrJ;jsuDx5>NC5H*>j;-_I~KU>3}nv&WHoWlFoKNpfCM%EZ{)&tQ zb?*;r?Vuy^Rsyw@1GS7oEfA9qo?5(wyYt!q&)mB;w{axf!hfao4l>a9Zt+1uS+dQ& zWobT1Gm42F`=Nj?06lDUVfsQC=huIgSq(~_nNG@JW^13b!K_Z>4A3vTAhe>P6$30Hd}CYy{}N0ID1#)-)!c z%Shz8EQk(KhnuGmh>)P(TTk-UF8J&uN62(9RGm&D+#&Nlw-LnrIxGW zOINLZ(R~5662S89<2|@O9^Buklp+?SImb(ylP_r&iXF^w(r?StG1j>HTj9YRkD&yJ z1p}2bEdmn6L}bnzMbi?-wJuNR?267%p)Zke9f)48Wh=vvmO<@}22n zm3#*-m_RP=tp%5dF(j|;?`ykXi69wrAW2q|MId#t<7l$SegxkJJcEbU^!>@-=oc=V zJi1y)u9KOC3@>FCk}qYj6giveQ(!hjv#uS6U%Vi`%X?gDd9>%_=@*~j3#A@hI%V4K zg#^Gc2f*~$Vi`#QJk@>QpE^@-kT!@H-u;Dc+(Wu`cp}-?ujZV-!Yc6)aBS#gVM@a) z<|;l(C;aR_#66@yo%WhMH@=A6RR<9iQw|g}8pTB5a3)iApG8X=-CP3Qsa)!l*WN?rbYTC(L4w ziYN|f2#Yx(^qv@xt#$7oXj>xz9!J!U>8Krwb<&e;vXg#-N!dcJ?CA!obC~z2HE0!{ ztr!Pf3?2WI#LF0SgqMU4FQM4@Cz(nsZ_f(l(595AauSXwF`=KtNa9IMC+9jaet1+J zQ~Cfu$&CPX9BztPN=|WuIFx{HS{ENg#K41cW!nb1gA#W&<+!UEeOF_NR4|=tUHFcL z=e$5VxE*ELjqh8u_SlFN(;OnLSw=U35{V{Inp3gF%QB99f%VX1iDI@}RpGDpRau_V zHd;WBDa$$X?3~WCQ?U_PT2S_MkM>kY+nm>>I{V12?rgK|&P@!7#wEv4BBO^AK_*ed zWZ~qIu+p8NE)=Qr)L3f?z`M5?mvR&H#0Yg6| z?E=zQdB6~~@*regvA7V=&sP20UJxHnAqP$oef+XH;lfREcl=riTx9QT#u=w0w{;BnS>7a?5n;*#sK)x8I2Zy z?l5j((pB}I`7eDVJxmfcivWiY0Uwe8SYKM=p@lz&pAA0^8ATy@pyh<8+Tm$svk--F5~ZYyQ<9< z8uhtjyaD}Qi6aF@7y^ti3<>+k|yuHomK>Dd~E6|KN+sH~ho(0F_SoO z?a>`tha&!L@O18Vv$GZ+*`X7l7Zx0oje?$RM9byuxc;Rw?k}v&gK1ByGY#koudL^I znHS1yy8^N6WF)eBhX@C(wD!(2m>t&F=4i~pxA@k208~K{*KemB>S2AaPRPR+!8GB( zl$PFEM)N-bU|_yKK(KP(@LK)d=mkV5fOr&W2fPJHaz)J0(ktSSMzok6(KDqJUR0RL z0Tl^ef|uWHU`QNLj^SJp$FtW(*`!;F8C+2RR?hY9`_J-Pt_4RAzo2{gQCNs%^}%wA zX!ym{wI8`d?zw@238;n}Eg^AIWE?qYPAe70LS&j?nGz`|BuZu!9c_)vKP6b1MZV;~ zFJQgP&j1dMkN#B-g%2!_hmUT!M{zngW}kN;8LaMH7?IhUG`4`(AhVB}V9@_P&nCsw?eY0#uGCv7n#CBovA& z1sPS2?w?)?!sR(lFYzF9%qfb3_d&cIHlNx^z{GKLDI=8RT5Omz>A1Z9=isWm9{LgI zH52z3J_;`)vExyK6(Tb?u*q`yd_@=dkdy*8l30VBRI~lOJ1O0HmXT3gv=GG>h1q** zM{9Iv8+F{Fc!mI^&+q-fheRZ#V%1+5PYXN=X{zH-%K=$TK^9AFLWT*E)=|(J$=%F zM~@`mh5Bh|HGe_pe%>Tt04)hA(1g6v2_ZXZ5XwDvDaT_sEj@teEEU15nCAL;aa2EC z?M$z>gRA1O$vRG4Mo;P+0YEd3GnkQQFpOpe^jFl{chLbNM|ZIIE^NR=z!TCQZG(TZ zZFAIhEpbXSj>IraNl>#{LA@;>st#doQA$w)w1NS&>GmLi774|WsUY&E)yErf4&0+d zgxQ$U{1!0u+sFSLJk=NLWeHgGlmpg`gf*QRR_j|eqi|Z)0m;XVp_IrX~_fBot0r_XOc z`We(G(>}liYTPWb?Rv-W73@$bIO^nSCMg`kSm?2griadc+er`Ip;}i!Dc@IJ-(;s3Lwzd2x5jta1fJ?;0q0ko`vZm0v={j!=gQsBNGtckdZ{b+s|CB=8J5 z@FZ*WBA*q{U%`dM?!Tgm+q2~>kK@~Nt6LEuIo{8Nd_RMwVCGazlEUvBw0?4jbgxUj zf2n#X+pSeAT`tbQka#|mi~~}7Ub~d3mnIEZQDhNuTtHMh>T%24m7{ChbkH7_Kr-h* zvY?TSC9e6T=jwYq>iS~s-gv2u?G8c3){=`xdgCQ@UJ5{(a+IKHKtr0&3h8I-Ni0}o z{(kV=UoOgn<~)ugA$`Io$snNU0&s8?pD9^AwGsu}wnKnohs3we@H+~zo-v{co)b+4qKTmWMO`1eC6awZFg&QZ7| zI!ED!jJ2m6f`dt$Z(FKTqq6zfA~FlLX+hHJB?_ElHUxSi(DM{X)V~VwJ`2-`!t_FQ zo44;j6K8TVKli2^BB3SZm{^3=#3H=TL=GV7hUF8+JB5P#@G!z2jfhyP`{_f5L@^8l z3c@fHIB>yK`v+y=R|fPz8h3@)wcgv-YpYdouNSJ?_&#Q7n#xF!pTm&j5{Kj^4r7^@ zF``Z;3fO41ccoyDm~Kp6yXXxsBS5-9K?`^}TV2%>z;aypki760vI3tttyAwKBtIZT zw>K}8*R1s3)Td7AtyNvstYK2ww`g3ehJyg89J7j$npK3C?%+ImTBr6OZjbu(;%owS zHWdW^pncS<6?siLwjRPLC!x$G&Sy@Es2RWD-qjAx8_zI;sqc0$3;(+tPZk#N(?U2n zFfB+-i#ahx9056iR^k-K92Yv~HOYDMDimk)z53etkr6tejWKaEZT@3A4p~cZzXjp#R!~~NB+$LKM7_tO#O*!7u zlzdCmQ~=kAbTI0w_69-I&Gx*oqSc|T9;(`GMV^C{qfF1pGCh?DN)c(*(Sh86_CZPM z&X?tWT8SOhhkK{k#y?ccACn>fYUZyXnDA#*CgQ^+~PW;dFRj^+#Pb5@>Q1 zp&40(X2HCN6xy3-Ge=k5w-wBQdNnk)wH>6UdoYI^^#KpM>nbaPEJsF~kr`>0&57)- za^J&UZ&zR1QG>}GTs%7T)f)QndTU-t;K&h}axySwvj(P5?ydBTllznM|0{_3?#;aO zV_%J4>=J$BJm$bMp|H#&2`r203HsW)-{`h7-RSd(;zCVd9bDFQ5&)57nHcGtir5LQHMY~sOEFNUP8Zdd$>eiey*2BOiD%#?~^ZbW}|Siu{K z=W*TYO^=BB-`chv4p6e1Mq*1N;usJ`^nfV1P=odvkouIqZ%w~GyGfNp4>!N5)}}rQ z)J0Lifn-1<8AxPE@w7xLPCq=Oh{4*ZSjctAV7?y|D_uUH#{BjQb3L3v`Zv24i(e=Y>W!uI*m+K0YAkI76xF1dgT8_v>kLQ9Yog3QExUBxTG6<}>-lqXpLUSwP7|2ERKrV-`>RTgGF>gw7AqW-1jBPD3 zH;)RACVLT3a3*uY`Nl%u*Y;o}0UaTihW8q*T(8xaoxAW*GJ@Lz!^ZAb9-6+E#rY+WNG$`znj`SnkUE3k~ps)548$xl&(8G+wm_jm$1;py7hUSfd)zd5A5E7`XrX7 z`lSAAX#6RIs%4>s&Kg7c7spEqxJb;ZHkj&ueKeh|fkSOZ(mFIE_O^t8fnIm8O$B_m zqZVMY#2kIGI3Z7CoX)v4@!FiV+>qQiE}o$>iK|p<-5UuMa}E>>62)0pPkseDYSo=f z6xu17h_EO;O=-Oq1F_0v=(Ek zwdjzPpimGJcc+CEFE{4UZHaR-lg=WEbC(g;lz4MthZc5fyYu83t(Ds^k)jX zKar^M?I;u_S?zDW!)m5MB>;53~_g_;nR=d1O7?dofZswUy+ z#3oTNckws9-)Sw3rIc-i2qg(eBQ~KMv4LFkdJ?$1P90jk?!gexHudRR{Ze7G3>W9T zR)Z&tO5AFWR&7GJYJ&?M8=nK}dwX0sSY7qk^!4ebT2gVThA z8k$7(dwF3O{JWwMu~_4k`cZ5EX*{Sh)*q|iQKM4gm~seFjZ460*P83JmdFU5(n4?psJi=al1FOzCGa7E#-$)(TzOyc_!z z5LAFwTMoU%BrD-ye5!7?9)TbFFR63~?{_YO;7C$5YLoE+J8PG{GdSVB0t8T>yVtImD+|0?w!c7PY^quJ_4 zz!f9m(Dz6RI=WENG%t8Xy zoC8(*g)Ek{qYC7Ss(}=8T@N5?26&>8t?%KkY%Nd_rU3_)wS?;)HUvz|$wl$jd_Ngr<{<34Uj21)FZo+MvijWZ|8u0aIxB zSP^H?ltX}yM9k<@4grcZ%4kF{93_5u|Mue@ zktC(j^a1q*3m1amg!+mRhhJk6>9Qvg#jcb?jysJ*8c!(^v~(&ay*abY_Mj45yE;he z@_n#ehspqqT=#1dUxC;+2z&Dy*jrEGWm{09x zj%mUHD4jp$VzpDemSd|*kIPN4c%{Va4X-uQpG4%~*z_Zc)(0aWu zbY4Gy0Wj_)Zas%TW)_9CKtVP;qA0l!WG>%pYF)CA8nRbcNC1g9|a;cd_Fmke>AHH#!_ANeGMv!I~>O;6qbdJ0QcVx#vW=TfhtGR z6h}0w>8z;!q#N(Cac(Aey*-u^l~K%b$z%GGU%3DCbjCSpDr}YByZd|?T3kF60gjPlVp0SZ(xCDW7Z?|NUV`#F*y0*cKovnW;poXF!OZgH`IF1dlH1H# z%Fu4lQnKA1MN+fhBAZ@jMs@-W)tb)KeyDci+m{x2UT0O8R$_>eaX8v$*>dKiI0@&c zpWeQItM0DVE$sIE$DPM+ZJvo4$8t(Gy_^zV2iFo_SJRy!ivruNSwQ@)N(1si0}5=z zmj#G18Ha{YmeUYk7>mz70e@b^^fPWpUAZ*yYSY>)SW~I1br0X}ST%k%1?ZX*_n2d7 zmQ4@M5YSu-(5aQFU(YLgS6$x@>w8r-{}_bi)Utvjxh^6K!B9esDVuEbjHY$E!=^cE zwtxYX-KYvP?zMd|Z7BgIM=PR8NGRhOp#)EFps`NZ7Ht>?T6)EFVl?V zSh&ch7cLOfWJXLsBkg5W%5cYXS8aE%uC7MKf^LC0cgE~t`UspjfqrDpF?GzBB&gAx zpx%vhMt8-rLk|6M5YHctYJoef;VV@mK-S7RW;%I5zM%1(FX$cA*7_UgAP4KJ2Jsw? z=8DFY?z`SdAjxqq1M*zPiBvStX-m~!*Y|2Ow2)eQMuCjzL(Vb2$*0FR2%>~<%XG(L zTzzi$8d=sDd+?AVaTvxp0x*Ugw>l(mbrQ}9BMxgIA%eMgX>qUsn=IGr=L#frM*jgQ zxL-)X$#Jzq@@gj%At#u2^F6}Mt8_7DHF(KNv)Q0)>es;{OdA~L5^p7kuvi|FmCuDT z2NweRtF3G8`;zcRN<57mbJ%=(4m&4WZ~sMB5km7HMH=}~<2Y#%anizTvDx($e4qAJ z@9M(ZS26JRxiY)8{m_(Ee;T`wIMSAQ3^{x{^Ejap4MZe;C(!ibvwAc)Jyd-KTC}Db zbDhrMn4tk)mHT{&o6Rxh%Hy0wR7@r!n#>$~{W}I~7qh*`xv6nEsv9jKhUVV=yp1ap zB|;3xa!;P56sTc5H>jU1&b{EhJnrBT&>f~e*XqLy_`kmLZD5Ie&!H-oPpgU{poPG_ zr#inoqsvhgaHLn%Ko*cVk15BqnUc?D6wL_VCxi=a64$nE)Ve*nm?ObE%{k^>`SiRC zp_9{!peyT6pWu-Mj+sPg$s!KuVhXxg!uMgSy>q7QXt7|Naop34yr&`!v3zo*pu15Y z=d3#k8PBVc*XSD(wT0ezC9)5ibI4%jIf-Z@wk0yz*n#07%=-Nt!8B%%c_Z{BKDTDS zs?DgYb8Jn&-buWRIY)|ko*U1f52)AfT(9AB!ncJNZH z(`*ORi2%uQokQ|E7qebxSe{?$W7&=UGz)!Thv$0degqeW)M}_|iF~NwXrUKW3q88f z4gR}aBBo-Eb*JwJ8yZk#o|_u#^SQz9GWcrL#zEr<31AsIMMbitfW2@w@f>7#c5iOf z=#qDUloQ)-2YWQF(lz8tC+LUtuw{D`;1d)a+G9l$k+`O_;|gQ4a=14mBM|g%U3vr~ zw3Qjf^1yCT9gO?2+yh%m#CQ(1tRl%MXv5{~&?2L)>s#GyjqfzM#{sOB7wT=fch&q2 z=xLn%YzSzr?q_xR{Rtp1} zUgQAf z2gpP()MvQ%hux{G)(cl=?hiK-kQNM(21^Rk_|m-mmrF($|MLY0mjA2N&o1o&t2iJQ z>3ZW*^gn(9POfd$XDh%~cbEhmz=kBSA|21EDaKDwOhP?gHOj9%H$$_A0sFbN)E%l; zz_QuFz;W*b^4`a(#6&2fBm|*_RvdK6#)aCgN=*D$(=zYFYZ>sX! z$H5zuy9YwzEr>WyZA6~hG?R$`Q+eupeS%Q0+Oy}11_$2e-nat{1*tlM8xZ)(j<2r! zarY9sTEQ}2GGH5%&5~5izA7jtBbWPRm!mppt$SMcuK0Jq9qJx5^I$6mH!M$ILzqO` z8b=(^l0AS-j3ycq^1`FyeQl4h>jDdxs5t1?U%p~0a$Gsmf|yJTvUqk(KY9CT6!hqK z!&%tTo!fSO@@Ew|xtrQ_JBbH2;XpMZQI(Tx4-={~*gfX3@R&+~mvUV5l)UB_@^PNX zslut8$`1Y2LAQGE{?5jW6Mi1r`o z%}aG}%mM!^kV*t_%{a2CjLf1gG*-P7*H1mlq>MGIx2HV1ceHJQTYv2QF^1huP?dWr zfhorekdZHdO9jND(xjeGH?CiQBTNBJ>R0L~+koz2ixeFY;Dnj8fN@Z;%sE2V^mJ-= zOh3C1^>5||GtqSoq7|J4avVMWg6#1JflOQ~D7HxDFElD{ZYl%v6?L_8|I5DG!oPbI zBwm?q)kwfvaP&`$kcKsz6;_n2Fe~q8<9>YrGb?abZ2aU@nUfjWIPinQmn4AYxakEw zhYpHafyDq12^6}7xC9Df{Z69TEI6{Ig3OkJi>YCkfp?4204;V!cj|x%JU^i%2pAl| z+=q}YyWm30)F+^err1jzxTwJ=L&yFGl_4t-;;aq_S0o|Nq_57*Pyt8-hN~O|^i__E zSt0!u8Xnl>{A~9i^kGXFkEqVTxT&`8d!F3)6u8?#$dIuI;S(e=ky0p{>MEZ{@SW0E zkeQ3XmTa2oHFJ9@qEdsr`k-x+g{8z6QNc`F$_liY_S zH2H2RFq4lbr9k$e_d0+-uPbG2vp(B1-Rl46PN)O&SoNJZojoglc>yJXfku#q4B)0TOEeeB(vxX9*luse{Q|G5iE}XID}g7+ZKpO6k_&|I*>9DnijFb>wezb zY*F`J9}cbAxfh_aB9CanaXzQjLZnQC$UURKp=r>1r{Pa~|K5#m_ulYNm;bO;gY_l! z-gVd4Mqu~Ifx?kQQK}*7h2iOYQmA0EAE%r9%~02;>odC^^=!_XSCH$2^_rLRge?b& zGt1EyDGCZ%3EAzbuwU&Dy01*L9z7_xwgk&MSc}D|q|SP%64_|M(25V2%NgaPr(k^h zy9?}swsr2uOgXU1sB;%cFz8dlk9UVe`ICVOug@=cy8DAuhATI56V^625}0NjnC2v= z(TtdGaBkkA7FGENTsz~wJRr!ssmvK-5Ot2dc)5LKo&*!B~}kZjvjIt(&?qh9Ak0^>GK~)=Q};XkoPe5 z))!LQu*2rHKKNo(J8wp>vUP~;?gdEiP zkfO$?Li?NnML`@oRT^C*kggVzz>VXbjLCO0o_BTYvwtYf;jBgjXRiSVMhQP;_rr5! zK{1&H#o6rJM7M3Lt1WK4x`(pu`Wv)&_yy!ps~W0uT-8Ky_a_NhIWqQ`%-G|6c33S8 zgjQaW23^B;wsAiKv@ezJI#BLDEilgCSL=Jv=av9B=Kz;%ZN$aw;9?BNUNN3pE#rk1 zgb7EiNyu0uxIjGF)Wkkz1DR!Mnv<$}3G7l1>{1fDR3uJ^gpQNzy;U@x{Y zRWD+y;ePm#1Hp(yFq(b;=hM-c{%TxR>AW<&IjNOy@4D=SvLD7#UmHJGhSIApHB&ek1*rN#RY2jrA<&Hz`g|$o2 zhE>DCHh{FiMr6pbB^4HAQdBJGhZJ^F$`(arP*J;6Z(szmP@5Lo=?iuAeIXQ~+36Zm zchgJY%TWduWEoTh^W*y(R(+19#^DZRO^4R@X59lX%PS)eemQ#YGJVsEoLr74wjiI_ zBAp-EUqksG=z(2l$}=svtBpBy0;exp zG7Kc5B{`4?mf@V>;am(=+@ZJD^~k^6xu5P@0=|R;zLbVf(1au*Ss82mr#|YF2zCrv zP!ud_>}1x=(n;2URl0Urqw0pu1}vM-|3*fOSK0)*a)G{3#IXb!1!OZL2$r+r`KvvS zLOK|mZQJAMW`9x#T{WYRLt~E;aB@&uB8t+IT?ax$>R@sU(j7wh!(~;UkPhV6QamAb zH*_oT1O?TdBjo7Y7i*qF-PQ8gz0yT;stf zb6<5mWa<*>5eFk9q8J$t!wXkUKD>YX@$Q0MsGr?m9K@Rz?rAipA6Fvbf$S>k;PI5eE#b%}lbFOUof$VM4Y%0usX;~u^`wQf&?IhaeQOc1trex9>$#uvk zEouMSfQD@a0M@V^sykHD&@iC5gK9+!{WtZSw ztG`ustwCMvn-2NL{a1-4h$!W_;wgQ_<;FUb4BywMbM{^07UKf1x^HM~8@qC)Wa-YT z0H7SQ1yM#O=CR0|Imwy)WI+|HAJy$fvGBgtRd3rD5(owy2!(fW zoMiHzHyGQ6Hvp_n4-)_AQUL+Ic3G0w!27w?uHcqvVPqVkCnH18h4lTWft{58zeOV; z4Xby}#+0Vj>yxJ#0IaA*0D)AM3FSI>r_siWRkP>+N?E1sXKK5|lBw2BJHzh~u6f zX7}q|RhO-iP8#5I25e zh`W@kE#pZ8ilJ>r6*iZTo0F-*RqnxeHE+;^=I9S=SG&SU0#}aE9Y-{-`P{hvwdt$9 zsZU68>&ELowEau(*ts{p4|0UjgG$o zH>9=ufxJf=?gK0&kY%VVS$dtAOR@H-JYHa1E9s6fPOgoLpVClV5ewRJ3zZ@_1a}qU{K>DKeX%w z8uBs6=rW!jT>_#(I47jT|o3!f~1getfeH=Ybp3*imV1qvOR8_twAHc zs_#s_!I%wBd~J7qb@dw4dYHm3#!WMU_C^wLfEtjXCW1VgVp2T4ih8PTR+!IFyX8~?6x%KAdoU82}25+Bq3||{?t~` za#9oA3=)eJNs@7Zluw_z@H&!VTnCe4;K#*zg~Bt|F}l2x0FR;cPSPa>p3D+OI4Nh) zLy3(xT^qcmy4|0Ah7P^V+P#8C!l^6a@IXpZ@*D<22XU&>{vVWp0SBf3RZwj=Ho z=YU}7W@v>J1QU*AJfV_thi5u3o?mtqREw3DE`db68QBGX742AcAXsmGcsc5m1gsn} zB@0Pdvw30tO`p&M$tbhgm^IdmdVRl8=amb;G`VUqb(gsN9RA};9#f!RsHFZRsKhoJ zvV}|c$=~dwNt8Hw!hv2&qF2m|-UrlXRAmK=3h8HsQfJfBZrz!Qjj-0iss!t z8^wvxQTJ%ukvn+YRTEZG&&M$3z%U~*yzC<1zI%Q9{_lT&ed;GKSGxjViMBLtsn$Ss zaU~4=AGS3FUc@wDIE-mP9>ydR0dmsxxCxVe7Us5{>dSWGHgdh%9olK;|sQlkCc?y=`zo9BwzX z%QgmOhpyEZ7jb&zb5uQel?fmkEjbV+bMp(Sffpm{N}W-j5tTw=RAyJ^goz{g=t|sp z4w^<9lQ;gtF63{ZWChLd3tGD$4hIV|SbFQCOy>vOdfhL+HXnic;=*|;0cpemDVd31 z*nxZwq@TU<+qN~J^Nro08))rfmWf|9O{=#?=9H!!kdiskg(lh0f%I3<)i~6{`rdbo z^hQR@AmwmENE7m{EM%fjxSZ^VyK4>P3wI{5rUsJRD+%l}4(!ODS|LGTe{M^~n7oSb=mZTT$J9WsO@faA!_vn35&F)whaYM`5Y zucHd8LvT22`|zmvYmeoa7J)dH#C7Mex=%A+EAfi~m6{x;91G)V7XRNsX=Fv-jl9U8 zq3gI)YrQ|H23okd+9*MkOtY8+#^nFVVFPC(1uC|F)n5G~XAYclI7Xxyk={g?j;{ax zhyLCH>?gZ7p27#Op4s%O+8@B|Y2A;!2>~EE{3Oympny#01`_Bdcm_)_ifG4d22ySZ zXJ;E-tJd_eYI4*PJ)WE+hU5{2X)Yl#O{n~$mg4zXdVOiE{kHB2Y;`SB!EkJMrv-^( zkV_rSNhKF(Ia>EPLeJr)I_SQ_85hdq*cR5Cx*i6y5`c2#+C@PD8pd-2dJC6Yw{_kIqUjw_p2A9J?M*3=(BsFzPJ~3F)E^Wy>0ie#@{rc_bmZ$ zz!2H9fQ;;sgqP9eMC`5yey#^lx1Gd|4nhvh$e0u5b7JS3=3`qEUkY@5ciXKR~ z=kjXj2{t4(6b)^Mn2pNa$Ko-R$dW8UblPY0f#wEnHb$O$%p)aeBtvgu3f11 z9E(r3E-ND;yOwcic4yO?-It0DAP9e+ga7vT3Y5Rphs~y1e>qEqTC+E0OgV%YGD?Uceugi}g_yoG zo$uui%@zhT0HNLjVZ7^X?M)bkObxP>BbiL&nFDo14s5jg4>STk#8M8#GV%l_Lby$e zrn$p+-+)ksuL5rrY#JU~bI=fZYyfePTsF@?#gDNJ%5#j|?4oXr+p&@PQGZ^m6=EM~^7 z!(P|-GHAveXp%2yl+TK$H+?Y89}N~kWu}EZXz0`)bhWWh?*7O^0@RcP)QkdkcH1Fu z7U+#LWE=x?j>$q!O%~D%yO7@_*h3gLflXiqGr@&|AIy|5CBREKz)LCcf?#&^fNbK^ zox`rx-Q%pa_a+#Pr!kjR+4UkPlH(#r840S02;UUB=kM;XYWxFOnzeDcPx%sNUuUU9 zy>}63y#tn?z(!oov450P`$y@eo}f>u@-3fSX@>viYUkB z94kpVwUU%xtg`SudVJFj$sRftxR=yOXuangdOmqZp2JvB$S|YK2V6;GYTqHp49G8P zT3m!hl}Hc{kl^~{94y_OV(F&WNhWf;bE*y>(;jqadnExI!<;5BmK1EMh`RISPUfgB z^(aDoFzo^Mt=B`X+ZyBn>RKWPDmbonL0;=LnH9;;yAzIHKt*$3wR&BfYxM~}SDoA| ziEHf=4`jiSiWg)mo{A`BPp-OxZYI)su670*Yd4&CNm50&xyalHlQ4}lu7;AmtNPc$-? za($pErMu>MbRTTBme7nVI4Gq>yrjE8k=VhUDr}(Zb(V3MBuAp zuTB6~j)rkTH;jWclY%vw>c1m`jYscVVGkL<1bHZ~?zpVJGobf(#DLF^Y`A1-8@mso zpMgy58JIMqMRse4(l?MTL9OX0mDL`WPh5!7gL@xZSB}0^S_0RC0oQ;|obqUPTyNVw zkd53;Z}ql=Zr-8V?oVL0+UldHY91=%ekk|Ht_5%nIL>Q8pVxf;^ZFh%9}qpe*%)wg zY1~&9*nc|t-`pVSL$7N0G6>8<02K~s>9jOYW{38(@7M!NVdKKp0`=nC3PC=iRMxnJ zCbM`7kZ|A{(YU7b<7!=O()B2Mz8*T<9;gm3lKtZ4<=vZG>#oD_b|V37!T~H@1LVc* z!2V@$_uM@LD9CSZ?~;I>21Ap@_-~gKSdq6i=fIQhm;kasO}`Xk9g`$}YBb^wB#c6p zX`slu!5udE_CSsQDgrF=w1yl}E2N`V5zme+RI3PX*LxSJP1S=qeZ5!f zp;x0p{R#$7oy6N2b0kkOnLLGom|9~xrE~HN4DLF2aj&iM2>m!Ce3#Mm;7ryR5=v_?6$rn2Apl;^@%YgjD`6s|vym^Sfpa-@ zXRwQA+kR+Zbb*B+G}?z|rw@md>fIj#DMkTQ3yw^?pfl}sDTC_d`apFLQyvGPcSJYW zYFtx;@uhC}5_h}cNO%f5;gMNr$)|Yl{qa#Fd8gg8*r@+!Rc&GQv_o3g>f|cx2X}5! z##;o{j04r2Mm3!k)%P%h054z!7Cm-Arl>}L?;CY*%t6_~J*I0{Vn0}c9(uqrrVN%( zto9Z%mwqY@`T&rXL$lpgbuAEo0tO{&_aXFAEFy`cSOk*{O)waPgt1gd_b$3~h-y1_ zqd=0{RW&%`L3@tjaHvlLu*Mv)#yM-l@hLo~=rV6mO?iW?t&IRy2}24LBt#07T?exQ z*4a(3_Cr^#6?`}BPJGj;g@cFomM&^z&q5|I4>+0?0oAO?uH%^{l|fm@wB-!H;2R5Kz3<>{`MJW|}_Gq6~x!(5+h6)!|SskmV*aC=3|Lm+nJS@>WY&9K_QN zTUP@%>dvqCRsCo|b{fZ9%BMaONah?!&MhUMP==sJ{i`-O8(Mk9fL0z;=T1xnG?==( ze}gAaW<@vr$_sfGVq~1SkiP#Nh{c3#0f=y~fhFlJrh#{IgVDD}?g>c#R$V87C`a~3 zF?_R21p=Re=tpzV6;ySw7V%Ko8eB?tC_;-5A&8+L?O7vK0#%N8kP-!Ts3vox`YSNY z&isMA8?wzC13cc+3fOc54jf>TuVx(2emMQIjysGyU8+^p zWACBcVGj~%rCksF34B7a;V6MDLnRX~$x7zJ5!dss{mwp^dL-?^q3zs7A3Hm(-Gal( z#8-e2*GB}004+%+7^VvalxBh7THm+AV@#;^Aslymr77AR-Bmhk~03|ENM2uM) z6w`W_?!koW@YuqT0a#{GK)NqjSA5%X??g*%@Bthgn34f1iDt(XM~S-al~(Srj@EhL zY~-?g=w~3IZ)FFGU8s;_0U`{@Tc1eX`blN7PkjYCP@Vr5bb61KNCFy$9PouCe5n|G z(;gj2@>yUnXg|2*6J}udjWH7SdKktW7$#(2Qfz%RoQga@gHYDmjvTb%;Bt4|a6;d~ z9SW(Ro0p&=dLsdB#sMsufXb~oP6GRzfi(WUgFP{ycAojBK2sVOA6(#vNv!~^5yzd6 z$UC3qv%~rY_nYrP`CHYt+!|Gb(5UAOs5jQTQGj*{q)ZY52LK8OvSc}*6+hr50DIQX z$8oK2W_E|Q=)FIu;P@edCdc)U$m=h+H5%qmTBSf5`e>2j4kQ#uUN}>%XBS2}2c~4t zPHtUv5>sf}jYrgB3T}_^zgW26H0CkWmq_OsRN&l)1SFhNUU6YDZE?2NLuVk``(H_9 zO>x8l9XS^x1psmy(hGkP@u-BJWN4jMs7(+DnB8YL&WlL9)op63UujeaF@b;XFR1ob?%h*eT_ZML57$5mEHIpKr`kw*~^f`4cT!k zwnPG(D|ObkhAMNR-oE+mukYV16q->j&g3jJlCwV9x~$xZmVh|tIJ5cWnN6;POWoR^ zFy#a?EcXj?LvDgFaeGN zhO{yYVhXre#Hln4h!M~p7DC;{eK1Ys{=>~Tn|NF6AJswPd5kzjFrsM@41`m}z-O{K z{2Kkl@lD*Iovu$fA(StaJ(#hjffjQjhz1;ph9si-tcc!izDAgb3TT9<#YpLLXu4Q` zFhFV*ng2u#z6^CFXcAWBS1?=7sd_@7n#@R`;e`;F=E1v`duj_jR=T#Wtp`YJp*F z#38~GWkiw_UI$BwBqt%PN5L-~T9GJ}4syvp)p@0UGmWRZn5G+)74Z{*Nqi87*0iLPY=&D7QYYtvWtnEaqhHyE-%I!Jg;$(6xb zcO!sj&T+Z(fWlLXnjTInETL9Ej1M1WIVF(exW;)zA(zgK+|RZ}(mC{Rzz7D`PGIV_ z7|rW}2UNOqC=q2i)*GWdrr^wGhV!>mXX=f64S}0x>JEv~SDV%$s5TmYe-;r^_(h5L zl4CI{D#%kBh{dn|{J5w*ZzO6PA3p#PcahoIZHYc%6rXG;Sd0?Tl)99-OE8bU}jK_>W<*| zg!-PfG385N38C?eJG}i4(x={=lHwO75~VohKsF!hz(%zRi zD$`fpKZmO6MKI+^*wd86RD>ouxwHIp3!G@R8S46KQ`;kw`+B?A>m8V3HKx@f?a!p=)yXsNcNMPA4j^le+%*AQIR+0&$g8LS6rk~P`by)Df^IrooP~Xw zs*yk~=RmFazk!;+yU4v-DBb_-*;{}Gjw#2LPyM(Evhw>k?%WCh%pq@)L?q2B5E_WZ z@#L%lSg6&g>Z{8KcSLo25}=?a94;A2Otx>ox*)J}{Nky{@{Rk;SG~co?3a^NceL)1 zA|;?|%~fNLXF`iayiOSUJxLPNOqOs~OmF=@VsCYM)g5f#oAR7nUaL>~gydB9-ipA< zal;e(hNqcGmL5+vcVC04kV_@k{+QaKhx!payB)N6H=y&4lp)`}ymLtYhldiW1RrN2` zudbl<#2rFay492CG?}!OS9${}|IV~8-4QjND$TgwbECGfvj^hz5=-+5hk-|u(~0TDu6T5G zN+@aXgYHH@TNmbmtbVOrGN6u_>9;+;tP*f?-1wZn@kKl{oPZfDiu#9i%;?c-#=L?~ zJYb12YE_G5P#mL-gdSyl)wt(fkeW*Le?w=jri0queX)bKr~9_s!Kgu^VVrVk_@~Q| z#!#kyPbSsvRBKPV_6HC4&0d0M8LsN>SFOgR-xv`zLk=`)%KtK-7tMF5CDOL`=rZ@Z zLYt$V`z}33dob)#cM?!W98ktIl*PPIzNwH@>Cc}UM;9CLX>DIfK$vnsNKPihKqhxj zr*ijS-7!Sno3rbnXB_OS&a{;$ts`U5qxwn$)tm!Wda?B4c`q4t(vZ+{Iqpn@qM$ui zJ|7m3o@RL2mG=x^4QbEReHG7zVq96I{U;S62>PIHTai z+yMjI^bn;)VC4w!0Uh3hY<^geep%%JJtcIt2CBM0qL6gfAa7zM@Z<>a0Uh9jd{#U^ z;!ElI)(*6@z0r%Ss~)ubd*m@#SAJHTUINjW15tXJFI>)lLQ%r9wA=37`z&8#+36{U zoeN^CN&-&~{lGM&AJTB%hxEO58R*cO#i+sIuJ{3$&CeTZu#oEh#Cq*s(S-!29It3d zzoOy1ujrl9-F=CRJu7gN@yq)#p#zq-SCeqJ9vnR+0Od&TLpr$+i+OXXTCeZj3ANS* zCw-6MX>FTLU9AzxZa5rlE0Q~f9C?07=lPM0*hxA``ht_`|MWSh@BBjA-aZ(}rz9>q zhfHG{(T`^&Lv~MNLaW0Y$<#PRZjCNaa3Wn?>TLZW10=@d|$-t=4tl@mq>}AnQ)*5XT|Ny zuBtn5cm&DXRkekDa$V~^)RSwy$FitJKW*hZ(61DJ8fZ8+BG@sow9|A+V|Q5-bF?DS4FO*~Z8hAYIo?-0QvZ8jdw-R| z6o8atVK=20cEe1DfskcX7XFW++`=&Otkt?R?m{=+xj~E~qeBOqlzW*$Z<=z%@sy6^ z7aG1^4y|>`q(=@iNhBm4gz_K`Vb(OGgG?69eKZX!y*T7x*AFb zBcGyOd^A@ESEnB30>>SxvtS^m+)y(^x&vZuH|H&@pY#EQAbcf=cfA`&y6&$kfqTq> zJ9)#SWhAB6SS%+md8zJvHs0F?oIDUva{`(AySh|h-s&~~tputW2dX)ZYC1crpFAVj zVXHd@B#qs*`$i3t4KyyZxNm*6t##MkNT8Z?pjyzVX0xM;#8qInx(8#`dSU^jnEMI@ zO>=Nj zpj&1k$H5EfgBJ#3?_o}ups1?zs}ZiWId%OjkdIIgwptsULm&ybvl|J$tc+v2ozc_n zC`_ba4VFuS41DL+ioAlG09iHT@Y~8FI`fHAIq>4ifsKpEph@itZG0F1IaKTW8s^&e zrTUr|x&P9_y0kwXJW%M8{iX_5xu*?YR+QM^yJdGNOK)|r9HXGA|iY68+jvl~9NjfudXpi1oA39ple~{Q&%s7-YGFmw!O7fYp`xTa&_K(Wvd(&3E zDX-P7OLV;S{@HD(m+@xJQjSM3ec}-;W`6{sMA@2eoP)h~pidhC&yAIE4bC`Zr!!i1 zI!Z;d!%1QJ*DZ2Va3So*6)y*OMsaWheX@IrnmXfnCUg3k6dAS#AvHZbTKChmF0}zL zJ+0Zhh?ZVpzS&B=n;he>>`#xs-dWgkd#6`O;eKboT`2fdRvR%Xi}&-}k8keY-@bo? zMuc$N-|Gk6!q&*^yN@5qo5qybCF8gKyk-8`(c-#RE=UUZ})3#;b9)QKCL9I5N$mpumlO7`RA^hCSRZsuT>} zSx~*KI{&5fuA{&_CtotOGxB9XL7V(AXyMg$Ppr`owtd_i1M5;CwvA(+y>?~#a1wx) zqq&|3ws#K$7yztV-K=+5cUBUbZ#lBN5Ly6tnYb#cV`2{4vOWL51fU?ch6b6L^4}*Ch*wT~*u89(E^@ zvzl`tN+(~>%)T(!CzMMkDX?qztisjrP)!$d*h6dGE8A-@o>L&UCviw4j`$Uk@heJy z2&5pZ=aMAb3PHJb{3hgZa)s3sB0Il?XdA=V)x_8Tq_svd`<}wBVCnsI$-Xrt+$2E#z0AgXGey zQn&XY)rI~|64-LA%j7wk4&><%!gi0%La1Ta?wPHcLD%X~+p+{wJyOWr^DBWV$9c`k z^P2yl^ZFUnf24lbz;7(Q>>&=j#x+fUcqMuRImh#wlh11r{3u*CG+u2t+W#JPeeeAs ztk>K}y=VvZ36fih*i~>m1O@pJ6f^X-CP#_CLjG#XZrs;wM{9^4nD({lJGE`cWls2G zuDTTgIpzR4Awe!gPjEQJF8$fNv0|6I)+1{V_GLwI_O@3)?b@pA_pSs3O0?&}l%}ho zd!SnP4og6qazIMYX@lU$K>AZ%?N`d8uBQP>)DA1Kp{ecKYtz+L-`7TMb#Fw@D?_`W z2$nRsvi*WECC9X=M0w{ET3B3O>DK*U)$QFYVDCMbO8{7o-LN7EXke2c11zRpehD17 z1$LD7dFU#+=*R*!x`@1nFd;~5VMTN(N}96y6&g! zT!AYwI4C$oev2TXu`Pb!YhcHPP-t&=J*-DKOgpq8KLU{xCB?Kz_Em6*sTLtw-v*)V z!Hp(Or9d1VY5%@sc-%?YaJrwK148O=w<$7r#jM~gu$40Jjh+;<3GB}9z5UnFxo8GMFL+&#je0d}p1ubY$7qs6xbz8MF;IgM{2Uyj97jQOA3r|P!! zO@rgv82vG?T^aNT>%cJNMgm`s;vu7phkW@1@xAr_zGrUC;txHp$}h#cRH2oi9Tho8 zrjXN_f-s3APAEZWaIX?51fnIwkjs4ty>0N^IpR+rK7GFZc!^&!5MYOc^@XiVVfP~m z&V6$8Ra6pn=c>kc6eTduI55s>jAiLClkUks+jazZ1QTW8UkRWXN_m)yWPL?<>Quk^2yO4e_~?g73&%vnkTcIEF!+D_0xTrn7sa4!hG> z9e}p<4i}NGwzx7QfH6ZeD_YXctT0~wIE?Qb&{Heb*5$9Jc{#3llqhEB4zHglxYzfp zJ5(rPB7iYNkIQ`sz4ZCqhT)U1LpGJX{$?a1R?P9D#`KFCOTVa-zBxjeaolCPITa=| z+~uhT6>PVy>Z;qh`+R8ay4KYmba_iy(n7UaBx=Ko{8~3wz)j4-!;$kRbk3hh=loeg zE^4ZyY1TW5h|bW7avu`V``Pl!0{P@@6>E0`iBUf?gRl?P_1Eh4&|`kz>fOQ+3^@8%W3Q`H1Zs{JKu)&+p1TqAG}M#! zgKDQs)p}R^L#v@vy?1eJ=V9FseQ$lg^HgjAtJ-*u(G8qpevrSeT09G6dVhWy{4kI|{q*+zTXlDLtv+K<>p!wGyR~^HiUGqb z8wA8F8(s&`jAyrRKHlBF|DfKyRkt61yM6QF&o6j?*@5OdP~kh%RJMHu6wN<=Mc{-o z$P&2^iAZeo*|41|9vZu^8V&kGpj;;Lo(2qt_wGXi3drZmXZ;BvgXsk>JAm3--@AHZ zW!8G=&Kocys0JLUh9s)bY_tCM;q$K-EXKa`TSF62sxQzC+yKi>A9{(4A8}m#h`jjE z61T*7f<6Y|E!vNtxJ7cY(o znvfAR7LB0cR7CjI9z8P=IG||H+=4+_Z|hPb6-g2fAX5s+B#;C$S`wmN8aMA@g{d|U zRBx7`w(k1_jalsVOF3?HO5Wx~^fpg!GL~jon=4e}*xLa#BYG=>AV=+ylC?*Y{SX9Y z-b0SLLy(j2VK!eYVUp5qhu$SFx>Y|7hpN0*KiR#j)B1%1DgTu{z4Q~bEhwP_ElC3D zlmqFELi)L5v_FCLB=`6?U>|k3xBRPV*F$Z(7wR{xiHCk?p}D&N5&sroU*J}_1lSyD zWKO1$dGzDKhK)LGgD*zN_b0X9RkizlZN_Eim4O2d{4X$o6~MaS$OH;96L_u=+MmIC zs)@GNZF>TSGHAwh*9z;QszHr!m>EO+$Kn+8liqi>;n$ptLJo#_xFlceV!qcpp0wda z4NvT|t*g$|Cpf+MK(FooP@CT?D=~x*mk9^Frnf*=$(cnJ1Nuei zq-_K?>m3j|2b$!JA_(Ijf+j2^c}-KezU!Sa_Z=!~fQEEGvJWI6WuVD~lynI|n*0z* zy#+#}`|82qQAI@vdz2XDh7m_T6w&!mB--RlCwFCVBNm-eyQ*0mzvp%LXnk;0{pc;x zTlXADfXi|3>Dgo;JDg1C&4xHui^7<`)lo8AHk1aFgSKOJmWszTy&G2laM_S*%+aMr zAgBk@rlSSr9nj+h(B@b&3geJQJNxlyzlJW<9VqGeLf%)I1N>*Tt=jsGva9g#M?Xpl zv^i3$m`z|TV>ws9;sg$ezd z#52AolgrE~7z;seD*+?N{5hoO&w=a!I!&ju*A?`sF@Z(HROpYugw>S?2i=JjqX|bb zn$X2)@@zxIckc*1r@DF$Kn=nKuBtz;GL`ytb+mikT&th;Xgniz;S-JvpVAjTd1k)# zU$_6?U*Eoe`}y6!FbGQp3)O(t9A7(|EkAUa6q>)lN*#E;qP zL)BF{aB@Xe?-ll~%x+PbMjXh-G_tw;ft=ic7dns}#e7N^^XYO1*ro<_?@%Ut=Sufu z)%jTBey|r3P;!Klj1DE~451`TW<7x!N5>_nW^O=%yhF1+_(K9<=P?7=c|wCNz2%z66d4)ygx$CB4g_%DdvMUe9n6h^RI^*0 zQ%#8$NzU=2=Jbo26+a4M$j6~4iUxZ1Nwww(nl})NuLEEooyEJd@F&|O9-VMhr^g;J{V}zweSXj2nNhXK;Ke#X5r0C zC9qC7u%@s5j4Yf z30i$R=%&)3_}uD4C9-rJF}Ojw4@qdWvmcLkWBZq=NM2SQ>b%1-$7!m2R_fZ6zyQ9% zqwfBc0MH@Fu@32DJ);J}B+&0Z{O#>0_3rldhrfPw|8_}+1ehTQn9=`vFmHeQtnTjq z9YDSApNC)0f!}2D>vD$c=h~8d`1{+>#47Uix>W0ufDI_()}`m{f)~_iVRW=@?VeNE zn=*R={*?QF48TS)1#Iy{fPHO{hvF5;%4(}?;G==i5Ux+)lPZBHM|wL=`U%mj@P`2U zWoH^cT&}=tTelD15pru9(>iqVsDjpBRf+)1kjsbr(J>W-V(;tQGYY*$uDEB4PVz%nOvZ~6`Jr%gFn{oh~QNTXevhZ?X@AhDbGc@kI z98B9GacXUwje8s(?Mwl5Ax|wA(>Y3jG$PRzKeq8?a$s@mAG?aS2QAnRqgZW0Dj!XF zMIHl=xonh@`POp<^Pfg_ibM6^@DljR46Ia05LBX+7Q2@ygR?7 z`vvTy=>1C|SAa5Z+g5t}|15qjOA;|RFqY4FL}*sJK+VG+7B z99O-M(RN&rm(r5QqaZn|-T0iE;@X zvDJqVNL-NjRTf?jTQna;04=I}dq!RFe`*3C>NQNec(!@t(nl~T$zX7*@9U?JpKspN z;LgZX?yE*Sd%^<_r~q9z zo)X{$Z3_YoR~$!3D1C&4k_-u_+L)YxD@0p~Obz80*{}-$=@zQG!vbq1hHC2{*ktJ; z-Aa~Zx|OFF1J;R}Zosn$oL%9!!?Q2?0qO+k1q`BIO8drslu_Coq%l&w>Nm#0Rt~32k{XXz|ES!JwC@3jl`Yn2BwK?$M2l z1J%?As$@c2EH8#C`fM5CvaDn+t9xizDGk3LlooAGw$q|9942wevhV>cIoB@OTdv_8 z5&ll?Cvz=PceV}_eI*yz3*^8u^pIX9A(>vC?413`=ryA!Ew}cj@8nhR0mRf`GHA6H(=e%7LIE$8A0!xdV263$Uuvq2$-FH z3oM7(N0g0dGFHZJ`xcgjH28zp+l2Nsnpt2I@!*a%2edxCijtTtWlvU5{DI+iHrwj9 z!4}7@x(h=IKAaG8>p>UD_ zwTZ*xh&v0mKFZlRrLoN~hAnox9jGg9UodER9)2I?>m#JhWpObSUyTC{3u`cYl#{eF z+*oD=BG&VjYHN;~z=s4|5|=d9HN5QEL|rhG96V9RLmq<(xCGD zMMwFp%nIK2PWJ+*FAo@_78?hqK3tKKgr*KhOYS~)oDdgOtDtAKKCW>Of!U2v(7Hhv z_O|{tN&|vnh67?BG^~WCVV$hN_5;T@nYEH{rwJ@nWC%iitP?ub%Yy;>JImBC@j)g? zXfnacf-OHl9GvSBeq6f)>$YOClWkP67WUk($F>C?yaX-`i<^1kgH4doY=SW5ciK)e zYU6vS)nK1}8(@2w9ZZ961+MZ8grdX;hajOj1Sjje{J??DDOqL+sKWl!1#7K38*OFP z;D*tGXCa3GS`UtEQZFc4{&E04sWZ}$IvyUhpu7H58$kc0#pGH z+!kd&Ieg!4u`yN4N;Y3P=7Z@n^MNfLM)UG=*us`3PFjK0Hj%Lg6Ug5xFffKL7Bmpo z_Pv7s;tLLhJ=6thNY@1ge_fEylQ9km@V+ry_dmBz56_lcZs2YIqKZS0EDcj1(9#Lk z$-}MNPv47*{R!5&%j$De-5(_d;o9e@S<|ra0U+H7DB0_)Sv~d-_UvsBrl~*+*aR#! zY8v@Cgb{rRPwoA``TK{P+q)-d0e@~Zl>9p_4sa{kXbI&~J=q4fqDI?QSGU?f=_Log zKF;X8fB-YF#jHeDGjM?AI)DH1?&q6-+`fPR_6ef3x3H%UKkIZZzdw!k zAi|RSQGWsaYdFrMkH&sVH}+2!4SHnqpC|K^|DaPqsW6M*k*hfZrw^xvblz!!7eVT| z4*uN<_XnGgc$kzIfo)cF5n=m7s^kqZAFKT7Bdh!;`*zWbQpG$`Z(i;aU++%S$l@MIUPYX|}w` z(><##^>MwHdV=%5F#sgPj%n&cAU)0KlNm2rpYt-ESC{AxpwZ!k5TI$%aWI)u9~;mq zy#XD?yy;Du&$}FUu#5v1J7~dk)K0}Vg^_Kox}a@X#7|Nm+qx;ets9*>XnPFUlH%ci zHw@Z4!BqRJ?2j}9M9<0Cl;gpih!D3_UGE;?xQdRRyjZv zlLu))r`pjQ8D>JMk0EAC4>6-Ox)8YUP|Ft->7j$!3B9r3LYcIGjcSn7w5SvR%dt$B z`cVJQmb7?R#=Q5ioDB)nuA_~ywG*kgWjjMXp7~gH%$AP`b@4CfhI38Ko5Lc2A;un- z9FfGlQ7k0p%*O^^MsMJKvk+lAkMryKsBh|D;574Lqn*v$Xve4PaMC_-XZ6s|d~AJW z^IIQ)R>*7qIs+FN4T3PCy*3tsQJowb*htuFBp*RX5GdD%f}jM(5lW*eA8w-dv*`CnPvEGckt)Rl{(TM7G+takAXU9h8%IP{w)(MRNh*L(?}vvD~U2SnS8^ zUg=4<;g|s|Y}U?#tdDH7AhXS!HQS75-G?XA6&%dKwBY^v;7!(Oa2f}4y9hQThxBk( z_~^M6Aqi}J5ny@l_`=5>UyyhFsd8-pfrn5W5`rvpHxBmqbrRBd(f6vq{-!cKwk>#M zz|n;vFazB>^RaD_mE?_IuwF>%opS$bqkiJ1Ae0cTjmgKgW1hUi=VzZS*k8$^BXOYh~Y&0g^DR zT(~kHgcw>5-^|>{6ewSkH`1wcOg>V&qqDjF%z#lruofJBtK0{5K99*jeX`cT z(=q;{fZx>Gq--Vh#-38wHfWITSdD#;<11i880QMn0^AGZDPZREVn$C)hEYS4{)dg&p1=`s^p)#I%5!?o*!`?S&Ke{lx-~c%C z0dPzM9A64xmaanXV@V`W6B@JRe9wF~U-m*NwwLzWx9_HftvL`QwgGh*aN_|s;UNoX z>?;jC=QH(zbw*>IT^?&K&7f`ODs53viQUkA6$5;1e|68nE6;sMW99SGSm#6Zyi3S= z<|6^km^Kt2jg+%$0=T32`+UnEWIl?|oGw1o{8Gr>!F&o*qgyB|@8KecoJh-V1P5~1 z#JLJSefJrISV-=}fiTbMJn2+5wx>h<@mO3!N%Y==*t@0BwbDR5mC!cPHWTeP=7swL z2gE)e{G6^lvy>a+x%~cb4j1r1hU>jpdf0RJQ?Mn(#_CRi=c<@o(Ou_#e2R7 zQ#Y_EH-lKU99wyX4_B8Wr0c7)xD2XaAU80wZj?iWf=wg(;d#9mdc6qV*!t@A zxNB+_WPL=1kc)ub(!%Ee=Mpi5v&_(3o?kb{? zhBm!mz&#Q!EsT1nG|Gx%rpx6*RQOn@D(H2p=u`)XQy|^jw-GqkoECpe+kjnh;1;6o z=Ub(A&p3cBd;m+PvQZdc3|M4wh~x4=d7>N31``yVSs}x+Lj~0#va*?`w|Bu0YPl zo$Ez#Tw-4YC}QLOlYirw?hSh%gO_4{@RFRqS$)LlKi{qfkG++x8OEKn-VP)f7orb@ zeXrWyce`CvvD6N!j|?|0C|E;wk@uXCop8>jFM$bfZ!%{Ai-cr*UIlVrjIc37z2pGb zN4Yz%--Y02+=q50Hzdxr?P_{2QZxPgkujD*INO>2lZUH zzTu2ZZ5U>;C@Oqtdleb^{dX6JK4UhaVqQ7^s(oKu)CnZg0YXn zVSf097^fG*7_17M`6KRgsQn8YNB1_k>go_|lr&D_uWdPsT_3xK#r&=zLR(x6T2S)b z!zkMx;YF}(h68-s*4PPe9j&ld9KJ6_?jzC4$wcc^!r%$O-mbsH6%?spq%i4t8l2)B z0>gD?eQbUe1qp4;EU7d%4|}h4Z35*g2^&+vNz-uTRE3X}pdeF%gx#(1JA3*+F|$Q~ za9a9KNPk?_BWQdgq6~Lbx%AK|D3?scmLD*FoGYq6Nl`QGyOchrE#>^QCGoJK{m4Tc z&C&n0>TX&d&uB58JU%g?A-48==9V zKm{O(TG?M~F@EXNC;aAB@P%XXu=LTvE+aA#E#k|d3X6o$uYMWag70`+znBvIThN=; z5|t+(euM*C4^@5{lU06^Tn1a{u3iPG-U*lv(>mvGm945auHmZ1#=H!)T1mr@jg~$J z1Z7O7OedQQGPeB-g zO<Y0!^olLgtGtVr|+hwcKx;mZL9N`q+Xi z6Ef_EOXj#+&URjRHai%ELA56ld{Dj6)mFI?A?$3qVglZ7V0KC~OlnIXYcS>f8Vmv) za_?`)#QwH$Jp#3!HsB^6rwl3^i|gQ%G6Mc)j>DV!IJ_x+ctiFU%&bfd5|6=G!PdJr zO}LlNT%nb?vl+a`hBvmi?1|p9*hrQ>rn2SyRQ7V%s^HJ+_uf$RvD8uKWa}V|Vs7#O zBq3VY_W9mA>5Ic8l&gE=^fHWW*Eo*B89{H~GRMjEp-))mbYMMo?(zc|&l>Gcodd-2 zNXMAGRzx2t8(NJxOv3|#y)g!mee}3Xy2pL;lKdm-!K~Q8O%L#b795H>qrW74&T&|M z*wvIpb`k%ybbj+tj{WcuN4betW#QwxFX-z&=3bRcLvm+((6|@VDWC|oQW#VzhH>D^ zegi##*06dsFtCfu(npJ{jA;rMZ#6r+rfr}024%>Ah5>YVH4f90$G*`4KVj6VmeQTwO}F*77UL!(z(QsJ7W`t0rG^Zodn_F>pKpJlcfj6J^Lbb z>XmZqj%0H|;^QAl3??3+I?dRbA&8v@p z|78EQufqXh;se6;FACx3*KchWaC?iRLz|ucTPILc$x}g0eSnxH$>&pI`17aUHeUwlT z7iS3vv*b2CwieM3X!8)fQ>|J{-NPCI;=gO`KcI-IrAx3{j(jTe5p*Lm=!Pdo-QQm~ ze<}p#&;_0rwEl!Gr$!rcwXD^3FrbM&OlB(&uum~7@b&_S`1L1^3_|!Fm9}Eq1LqmIiiD0GF{WZ+6wqn@g zQ3mqXPV8Xs@EhXrBOD+{K0uC1kn@Xz3~pv6}f zz?DYPILyk>H)`@e0>uId8Tg%sLj%$xeM>~vKs zzb_hGgvIFr@;i;etxm}jV{;#UMv7n%U1iHNbQ&N^d1Z8oFk(24_qJfK`INtBZdqHN#H4%%R9 z^{cEvfv>40_Ih_aEw@mODPVbZYQPT|5H5Wb5G7ea~*cuvgs* z)ejpG=|zPj(bpUZ`^dUVGV99A3nC2F?Y#{NxD?i~G#X1E!L}rW?Ws$QKUn3?E-fF_ z_yXrU&;*}mXZGyc|H_%iNT?rdg=TBtcGxn29Qt5#giEs5Se#?hGrQ6VS6HvmiyoUa z(ALF;8;~uiCx1!(AZ-YG3AU?d!X*aal| z=g*xY7ietYHq%#&v}BNpNJ1aOw2&UAh0F7_bK|+G<;`JIp9hWtEQo>wxb9i%ve3tr zCwyeebE;C@j{-UueU)kO(N}vO2z@;CG5yeo*<~U8WeY;5K%yVEu&03KF4P4<+kBn2 zlwf@k)r>eW&U|2;)8pOcWih@1$N1+_d%rYmU<;6J5VChK8R_yCwpcu)46JQ3i& zn%dsKN_}qt)TaMxzi-pBm%(k<3_>?BsO+6q;tLLxJ#-hsbV;KeUl3)ZKr3!LEsTvI z?1LthPS6);4m*ioyO$D%?F=CM7&?UX&>=j>Y-iSt9T`j4K`r5))6VA;sSEZ%4+>G% z>L6OT>)?tx2AqAg&qKO>ezLLE58i)CG&>8{UuD}WlvQur$<|7OVK_$=E_`IZ1)ce3 zXNV8UTlMYj(szwe6mgDLp0u*!v$j%f25`wS06}z4N(+nmJZL^jvVCFu+WLm`kq2ows zNbsyRgg$0sAw3fd^W_Dh`wTsoTbolsuG$P3CWArQ@QCi|xI%98RR(B%3=zWlA;JYQ zb$dAIVX>Ij?OpoBfufIxx+K^e@fEL`&ur5bl%lKc;`wv@*L4JHxo%o;NOvDRv%rE3 zx_?|FAESea8Xd$}*+p>OY5Vdup37&!E2q2xg2xM&<|Fse{wtuUssjc|2n$Q@16%UU zhL<_CZlPuhr~u^)?6x$6qk#`NkpaDPTSe*Zp_3fwdT0Se;gUo*y-Y}OPCgQ5E}d*e zUu{);xC(x;h0_8z#t~&;$te3X4A}bEzKy8u+xUvvhbo*^NBwq9y$FEZxq%+{w&{Wm zj=t=P-Do8k9IOEmAFyT@@uHetWd>DFh@(x-@sx)?p7Mx%$|K$wI#0ehYL*S#vD?WS z42^b# z7TSEBQauJwoAj@3RUfQS9-RYSABQ(45AUf>>J!jK(LDz*XlXdT<6wZDTufpyIoM0N zV;BHLKIXC!HJ6P~-kv!D+BXV$uqz4s1bB7<)=AReU<1_x-f_@eqPXyZY)K)TL>EK$ zo!U>;KIBpNy>pM*=ti#1%iz|2z1C{yTGN;#Fd&@x2)YRwbWa_t`~bppO1-zvkRFPI zt=iejzzOfHq5HqL;bI3z*S_CQa->*3#;;LAp5FAt3+?^KyPt3Var^%L+b1l2-E`nm zZBM83Msy0Y;EJ}AvJdQm{dELVyWy_asr~BaO<*G%8-kr; zzn%#1=;+fJj;qLnBcFYdh=ew}Ahfq@SS{)#tRUaZNs1p9WF~$Jr2qTIaFkZ1kIrgI zc2)P2JbH@A0BpuFFhVBBHV6bM&aRkG#~FHT|~J(D=h$Tr`p9M;EhoYmI8fvJ=; ziM*Yxx(3~h-EM0S<}(g7b028ZE$LI~tWQSs4g|Lb73|uvx_5zdtyPEZlmS$?83>he zGCa*pj(J!u!7aj0*%-%wHB<@HSEMp&7CN!4Og|Pguv3FIy=!3WRrnj|` zlg8ly(nrvY=%5*0DrkNgbq|}uozjCiGRd4-9LEI|`*^@(`T>tG^??6m!Rv95v|h`; zp15Mr9ucVYTq6yY2iL*}t|g6Y&fW%zi`j~@4tnT`+N-?pp#x&E2JIUIEWJu~yM|>? zE%rh2j}!XgKUJIj6ku;4p?~If)a=o{4n79|Wq<24%tI${0^M*}8z!+2(WW@1gTWbk zceB_!O(75_f7NK!1IQ2)`Uk5b*Eeou&!zw6C0*T4(-dO1Fq#1x-ZhtL^itR?TeZFh@&$w7-ly?|yP>_b6$ z02!9xuy=@kboOGpvlkZGW#Ig%T`0wD)%kA&iDC!Efe5;$9|vGlG#r$^#D{N25+*e5 zEax_TN#^gXH)9{%)LL|+Zq(xUpI&hQTKE8ztg)g~Z66=2UDMe?GYmyso@#1YOg$_yA5A`u-|OYJvaa-bafKslyS<~^ucLG-5=0d}fH zpvPL`<8MIqP6i#AKdysY`>q!pxMn_Z&1qco%ixM_fSrw^-EIK0Z7DXbd=AytAnQOL zI4*x5EB#4IGkp_&E^1a%nEtO6M??7as1J_F-}E5QC~G&e>eZej4EWH&PEtCzN_cxK z`K-3+0tYLQvUZ1weO5!~3MZ?>=x(zfj_)%LXj321W;C?fWuScnDS#Z%%K>D7g0+B| zHE4rLjh_USJ+=275jOLIYewUmUI$NMcqnJUqhjl7aX|eK5#8) zT=|>WIpGg`Tu?g>2B8{QwW7L*b1YY?=jgU3xsMo|(=j$S07!i5aUd{} zs8CfH7AXK>7GQnk1_hlP&S>C%G&K)R$A0LqmA%$D;8y*)@TqrNR<1~&J)hMa5R1l)0~ z0Nw-p0F^{IAkKY2OqXG0!M}V_hVyM1Y;lVb*w@Wq%Q6cm5VWJ_{7C?NPF7EzIz85~dqeC#tP;;T@EMul5@jbbTCIdVL^X7MDTy=7Ii- zb=U#b8Ekm?s`hY$LCCEw{;kqA2k#~IF{@4KS#7*5FN5vvL?D#*n8Hlv0o;eR0*Jxj zCCh=V4fZ1KNm&Ho6S7@7w_e z?PX}pZZv)f1Ve}f2Fwa&+k&n*1F*4={3|B&uQ*CB9clLx?<}~)&;|oqGSF6ll}w(E z*VKpEKpNAEH_?R>gg2nKf_2veh(`VaUf{=b@C?$}M{W?)xj~d)23VWP?xnl2Isq&L z$O_Jp6!=(@N$Dk-IJ#iM)l7*2zYaFt9|(E$#uvc-A+z|LJY_j9=LI7L92-67fN3pJyy%M*?=>- zy{uMH+K%QSz_K73`#?0I5sfc*RxA6QLno^ljBM91`Ci-j>R24D*mFSYW8jt21FyI^ zgZ@o9w}ku|cMA7FkTt6PiW;nYr6$(wrqM0>1^lFit+hB(S057XX-QvN1@om

t@b z>f~P7sOmHtVU{3Df%oye2b?>MzpeRe1elliLjTcy2&7(7<+# z{bGx9!duxf1chwrp)kmnbYW03E4MFa$#Jj01poLmXrdZU!YuRTr7*C5 z1fC5|-*Z@BWIlSV*?f-`Kt8p5{X;Hnb87e9su>zJngtF4Hli8q1@)_~Qkx3M@?!G7 z+eizqXgL6meE^)00LPaD7$$KcjO4TBhV=0is( zi^*dgoxx#fjui)*4r-&tZhJrsp*aYz9MozY7Ql}|`9Vm=Al; zy$t>}f)=Ulo8ct~jy^(el3dOdt0c3rHy`hUn>U|sZ|*(@Z{7wspFZ5Y`M3x^eEjmx zU1)#WBKL=E?gQC^JfUZZ0O1^|=zqqEZmhM~E}Vude#~)9Qy&#W8j@h}4DpE^7kEgYpfn7ImZIN`Vk3=v#?7EwRL-*Z zePt5^!vbjH1JINLGzpm%Gs1MX`s&a&7}vO*_qE%Yg{NNHEMStyhQiE^4H!soS?1%; z&&WIfRLQqT&g|S>|4%ro2WhSY=P*)jr9oY%$#z`#Fn+xXewlW?1V<;!$HXwp$P=7~ zobX0-otal+5p)n?P1CjqFdUJ)qfaJ)dlmc>cyKV9MN7hoqQMa+avv92PF`eb&I;nbi$9{IN#KcgP9orY@zSXh{QheU$QB+}IkR#}A)BAUGCYpX zdLBz3c~eQ|P5Fs=)1T@c0=#)wd!aY-`Bsfa2Fm45gW5TL90_}}{UDm2<6QbM7|u$v zZYs`DH_a+NGo4ExW2mwuQA^KvE_2E~ym^R@_x6@H)76gVRy%ul8!!)InWW}R58aY{ zNj9jp<(x!0z97mhaW?m{E0{0I+o?>> z7iUW<&K@HyR-CrfhXAm#Khnxh^scqi9fGxhzLn4nC21adsQB}ctoTn|%=Ce_tvqXI z+%7sBc_;1srrUwB#xV%vB_}luXc>_9F?!7(8NG(f%R{}>(!jljzM{J6D{0Iz;#S+S zx?g;w5^=y>_<*^jVNNd(Gx+JC@hI#Oi0WS>=)6c=i$i>YPcR^{FaSa0f#ZVnVfviM zOB(C!@>o|IKt>jfFs3mBurnEYSGkW>xI8BFvM@SBVwTMH2{)o`ZM?M=M%#|SBOIi= z=CC7ZkMDQ4-%8qCm?K2^U=HLobKqp}t&>pxKJ;GO7y;HMXnkZ;5sv%Kc;1(_NyYR4occvL|_Mt4DCn1eU_phpfz~NkZb~X+Ne^cE~9`K6$SxXQ#;W^4aM&mg>8b8^-iykQ?>FmumnyvHW zwb7xsulDRg?huP;8#!#K=)lKI^c>hmKCq2xY|D#a%TpfvFecAavZ)XzF)Lu_?I)x@ zlGKb&Qj;@`VbbMUVat7_qB)U@Mpq}EvcG-0y?g!kGeriPUm6zm!3MXstpoTqgDXkv z2D$?^hcQv^W6YXUW7g;@xfGu7K_e3jPiLa*cH5mFG1@*ri|d|e-kz_%3ISkp?j;2^H%KHSOjyr6*1xKC_6 zEAi~G1TB5Y)t>=32+8c-SZyaA?LN@k151;t@DW@KGPs_)hVl5J&E}O|ZHC^1L-`8A zKqGBPbw_pEbk~8fp`djFPC9^YisX=W%zZe)I@QIg2!7en?lurI(r!(L1?Gc=oR+E^F(swr>!$oZxSOtBoTf_}G2V zOET(4F*~}m>jGau?h0C_0jLz$Lf^Ls*ZT)Lf!>Ur{ZR&7i_inEMM&bB@Z%cIC1F2- z2LyP+1n~9X6(j~CsMPN8967@rh-N+zC3D(@KdGHv#W)0D0ae2un_GPC4#7sXHR==( zHXnGwfobjoQ!*bowGD6rrXLp%TCS5OISdHh&X97hC2Adf6$j51o=nCw_)B3?a z{5J%w^V-?K%;=A{hVX`39G-ye1q@H#+q+79wfU^%II}($i3@6x*p^^R_8KgjR~CT< zHxzGl(l-FCs_vbPqtkUW9B#2i>><%A5;D=s3hrPKQ*wjYvbXgXD3Fi!LleJ~$1gy% z0Oxe5P;+dbyvFeaV5Jk2@

-bF>`qe95Y3gJ{v_hUzQHi_MW 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%0A5bk)*jrelJgq)&i$a6oCQw%emyZRFWSx{VE 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

!g!oE>=Crry^+Hd-?d8Idf`C}cSpk)J+( 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

EF^{%hSMI@F0{57BVcN}QFZOAXFVK2j0B7; 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

J9~tC1B+kRORkL)ph9mD;4 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 z

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
^XS; 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�sC;*}80@RYV>4(-HpY&bZ6obZ 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дecHsB#gxs4X(OcrgULj9CWbl7vg!|u=Z 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�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
vr(h-L_cd3jkN-=R_m(DC;u*apHfO#>U7 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±@w%!c6pxeC=fE={@l4N;r*)tAKwOH{ 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⁣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�pF>K#BcgLR>2+Y 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 z

b7AeDIJIh-Jqn7r=uNVL#kt^y*cT+?W{{k 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


I!L=;qC9l-Yd#M^LHh2iGb1o$W=RzT*?6r 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 subtitle={i18n.translate( 'xpack.enterpriseSearch.appSearch.engine.analytics.recentQueriesDescription', diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/query_detail.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/query_detail.tsx index f00c4e29a7190..83c83aa36f1bb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/query_detail.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/query_detail.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useValues } from 'kea'; -import { EuiSpacer } from '@elastic/eui'; +import { EuiPanel, EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { SetAppSearchChrome as SetPageChrome } from '../../../../shared/kibana_chrome'; @@ -56,17 +56,19 @@ export const QueryDetail: React.FC = ({ breadcrumbs }) => { /> - + + + { {shouldShowCredentialsForm && } - +

{i18n.translate('xpack.enterpriseSearch.appSearch.credentials.apiEndpoint', { @@ -116,7 +116,9 @@ export const Credentials: React.FC = () => { - {!!dataLoading ? : } + + {!!dataLoading ? : } + ); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_engine_access.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_engine_access.tsx index 0d6ebfe437927..7e40eb63338bb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_engine_access.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_engine_access.tsx @@ -104,7 +104,7 @@ export const EngineSelection: React.FC = () => { return ( <> - +

{i18n.translate( diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_read_write_access.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_read_write_access.tsx index 0b631089c3984..f363f6978db29 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_read_write_access.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_read_write_access.tsx @@ -22,7 +22,7 @@ export const FormKeyReadWriteAccess: React.FC = () => { return ( <> - +

{i18n.translate('xpack.enterpriseSearch.appSearch.credentials.formReadWrite.label', { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_creation.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_creation.tsx index b1bfc6c2ab7fa..10f1fc093e60f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_creation.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_creation.tsx @@ -25,7 +25,7 @@ export const CurationCreation: React.FC = () => { <> - +

{i18n.translate( diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx index a523a683c4f5b..624790c847167 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations.tsx @@ -54,7 +54,7 @@ export const Curations: React.FC = () => { , ]} /> - + diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.test.tsx index c111383816e36..8034b72d885da 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.test.tsx @@ -94,6 +94,14 @@ describe('DataPanel', () => { expect(wrapper.find(LoadingOverlay)).toHaveLength(1); }); + it('passes hasBorder', () => { + const wrapper = shallow(Test

} />); + expect(wrapper.prop('hasBorder')).toBeFalsy(); + + wrapper.setProps({ hasBorder: true }); + expect(wrapper.prop('hasBorder')).toBeTruthy(); + }); + it('passes class names', () => { const wrapper = shallow(Test

} className="testing" />); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.tsx index 825311fa1652a..ce878dc3cf29a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/data_panel/data_panel.tsx @@ -29,6 +29,7 @@ interface Props { iconType?: string; action?: React.ReactNode; filled?: boolean; + hasBorder?: boolean; isLoading?: boolean; className?: string; } @@ -39,6 +40,7 @@ export const DataPanel: React.FC = ({ iconType, action, filled, + hasBorder, isLoading, className, children, @@ -52,6 +54,7 @@ export const DataPanel: React.FC = ({ {

- + POST diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx index dd55c26b5b298..fefe983df3342 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/document_detail.tsx @@ -91,7 +91,7 @@ export const DocumentDetail: React.FC = ({ engineBreadcrumb }) => { , ]} /> - + diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx index bab31d0fccc40..4e1d7bc3e8e48 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx @@ -16,12 +16,11 @@ import { EuiFlexItem, EuiFieldText, EuiSelect, - EuiPageBody, EuiPageHeader, + EuiPageContent, EuiSpacer, EuiTitle, EuiButton, - EuiPanel, } from '@elastic/eui'; import { FlashMessages } from '../../../shared/flash_messages'; @@ -48,75 +47,73 @@ export const EngineCreation: React.FC = () => {
- - - - -
{ - e.preventDefault(); - submitEngine(); - }} - > - -

{ENGINE_CREATION_FORM_TITLE}

-
- - - - 0 && rawName !== name ? ( - <> - {SANITIZED_NAME_NOTE} {name} - - ) : ( - ALLOWED_CHARS_NOTE - ) - } + + + + { + e.preventDefault(); + submitEngine(); + }} + > + +

{ENGINE_CREATION_FORM_TITLE}

+
+ + + + 0 && rawName !== name ? ( + <> + {SANITIZED_NAME_NOTE} {name} + + ) : ( + ALLOWED_CHARS_NOTE + ) + } + fullWidth + > + setRawName(event.currentTarget.value)} + autoComplete="off" fullWidth - > - setRawName(event.currentTarget.value)} - autoComplete="off" - fullWidth - data-test-subj="EngineCreationNameInput" - placeholder={ENGINE_CREATION_FORM_ENGINE_NAME_PLACEHOLDER} - autoFocus - /> - - - - - setLanguage(event.currentTarget.value)} - /> - - - - - - {ENGINE_CREATION_FORM_SUBMIT_BUTTON_LABEL} - - -
-
-
+ data-test-subj="EngineCreationNameInput" + placeholder={ENGINE_CREATION_FORM_ENGINE_NAME_PLACEHOLDER} + autoFocus + /> + + + + + setLanguage(event.currentTarget.value)} + /> + + + + + + {ENGINE_CREATION_FORM_SUBMIT_BUTTON_LABEL} + + + +
); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx index e77a4ad7b0348..1a8e4703d7c2e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx @@ -34,6 +34,7 @@ export const RecentApiLogs: React.FC = () => { {VIEW_API_LOGS} } + hasBorder > TODO: API Logs Table {/* */} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/total_charts.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/total_charts.tsx index 77ba9ad0f9514..136c9c6603e5c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/total_charts.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/total_charts.tsx @@ -40,6 +40,7 @@ export const TotalCharts: React.FC = () => { {VIEW_ANALYTICS} } + hasBorder > { {VIEW_API_LOGS} } + hasBorder > { <> - + {canManageEngines ? ( { <> - + diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx index baf275fbe6c2c..a09f30035bafc 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx @@ -84,7 +84,7 @@ export const EnginesOverview: React.FC = () => { - + diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/error_connecting/error_connecting.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/error_connecting/error_connecting.tsx index d7fde0cd5dd25..b193e00c1d48d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/error_connecting/error_connecting.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/error_connecting/error_connecting.tsx @@ -19,7 +19,7 @@ export const ErrorConnecting: React.FC = () => { - + diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx index 5e268cc0fd214..ad693628d911e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/library/library.tsx @@ -86,7 +86,7 @@ export const Library: React.FC = () => { <> - +

Result

diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx index a3dbf7259975b..85c24f1e42368 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx @@ -87,7 +87,7 @@ export const MetaEngineCreation: React.FC = () => { } /> - + = ({ boost, index, name }) => { }; return ( - + + {getBoostForm()} - + = ({ name, type, boosts = [] }) => { ); return ( - + diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.scss b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.scss index 9795564da04d5..065effef9dded 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.scss +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.scss @@ -19,7 +19,6 @@ } .relevanceTuningAccordionItem { - border: none; border-top: $euiBorderThin; border-radius: 0; } diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.tsx index ab72f29a678c9..39200a699b3f7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_form/relevance_tuning_form.tsx @@ -73,7 +73,7 @@ export const RelevanceTuningForm: React.FC = () => { )} {filteredSchemaFields.map((fieldName) => ( - + { {filteredSchemaFieldsWithConflicts.map((fieldName) => ( - +

{fieldName}

diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_preview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_preview.tsx index 298b692ac7b80..5e5ee2ea8d0f0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_preview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_preview.tsx @@ -48,7 +48,7 @@ export const RelevanceTuningPreview: React.FC = () => { const { engineName, isMetaEngine } = useValues(EngineLogic); return ( - +

{i18n.translate('xpack.enterpriseSearch.appSearch.engine.relevanceTuning.preview.title', { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mapping.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mapping.tsx index bfa3fefb2732d..ebd034caaedb3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mapping.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mapping.tsx @@ -166,7 +166,7 @@ export const RoleMapping: React.FC = ({ isNew }) => { - +

{ROLE_TITLE}

@@ -175,7 +175,6 @@ export const RoleMapping: React.FC = ({ isNew }) => {

{FULL_ENGINE_ACCESS_TITLE}

- export{' '} {STANDARD_ROLE_TYPES.map(({ type, description }) => ( = ({ isNew }) => {
{hasAdvancedRoles && ( - +

{ENGINE_ACCESS_TITLE}

diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx index e31f5c04bdb45..2ec2b93d1e24f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx @@ -127,7 +127,7 @@ export const RoleMappings: React.FC = () => { pageTitle={ROLE_MAPPINGS_TITLE} description={ROLE_MAPPINGS_DESCRIPTION} /> - + {roleMappings.length === 0 ? roleMappingEmptyState : roleMappingsTable} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/sample_engine_creation_cta/sample_engine_creation_cta.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/sample_engine_creation_cta/sample_engine_creation_cta.tsx index 8de6b6030ef66..6f1ccd1ae2b53 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/sample_engine_creation_cta/sample_engine_creation_cta.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/sample_engine_creation_cta/sample_engine_creation_cta.tsx @@ -23,9 +23,9 @@ export const SampleEngineCreationCta: React.FC = () => { const { createSampleEngine } = useActions(SampleEngineCreationCtaLogic); return ( - - - + + +

{SAMPLE_ENGINE_CREATION_CTA_TITLE}

diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/settings.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/settings.tsx index 88b62b8ae83f7..2d5dd08f81288 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/settings.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/settings/settings.tsx @@ -21,7 +21,7 @@ export const Settings: React.FC = () => { <> - + diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/not_found/not_found.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/not_found/not_found.tsx index 5699568c40558..f288961b72de4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/not_found/not_found.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/not_found/not_found.tsx @@ -73,7 +73,7 @@ export const NotFound: React.FC = ({ product = {}, breadcrumbs }) - + } body={ diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.test.tsx index b5d1ebb899ba1..504acf9ae1c6a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.test.tsx @@ -41,14 +41,6 @@ describe('AttributeSelector', () => { expect(wrapper.find('[data-test-subj="AttributeSelector"]').exists()).toBe(true); }); - it('renders disabled panel with className', () => { - const wrapper = shallow(); - - expect(wrapper.find('[data-test-subj="AttributeSelector"]').prop('className')).toEqual( - 'euiPanel--disabled' - ); - }); - describe('Auth Providers', () => { const findAuthProvidersSelect = (wrapper: ShallowWrapper) => wrapper.find('[data-test-subj="AuthProviderSelect"]'); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.tsx index 48d1447e9bd0f..0417331be208d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/attribute_selector.tsx @@ -100,11 +100,7 @@ export const AttributeSelector: React.FC = ({ handleAuthProviderChange = () => null, }) => { return ( - +

{ATTRIBUTE_SELECTOR_TITLE}

diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/role_mappings/role_mapping.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/role_mappings/role_mapping.tsx index cf402f4525f9e..7db1e82d29449 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/role_mappings/role_mapping.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/role_mappings/role_mapping.tsx @@ -141,7 +141,7 @@ export const RoleMapping: React.FC = ({ isNew }) => { - +

{ROLE_LABEL}

@@ -158,7 +158,7 @@ export const RoleMapping: React.FC = ({ isNew }) => {
- +

{GROUP_ASSIGNMENT_TITLE}

From eae160c419a83231ba2b6138bbf8525b703856d1 Mon Sep 17 00:00:00 2001 From: James Rodewig <40268737+jrodewig@users.noreply.github.com> Date: Thu, 1 Apr 2021 18:52:07 -0400 Subject: [PATCH 064/106] Remove unneeded articles from button text (#96045) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../component_templates/component_template_list/table.tsx | 2 +- .../public/application/sections/pipelines_list/table.tsx | 2 +- .../sections/home/policy_list/policy_table/policy_table.tsx | 2 +- .../home/repository_list/repository_table/repository_table.tsx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx index f22e826a877ec..90cb48df4b8d9 100644 --- a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx +++ b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx @@ -100,7 +100,7 @@ export const ComponentTable: FunctionComponent = ({ {...reactRouterNavigate(history, '/create_component_template')} > {i18n.translate('xpack.idxMgmt.componentTemplatesList.table.createButtonLabel', { - defaultMessage: 'Create a component template', + defaultMessage: 'Create component template', })} , ], diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx index 95d4a8a653dc1..9cf807052fcb9 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx @@ -91,7 +91,7 @@ export const PipelineTable: FunctionComponent = ({ {...reactRouterNavigate(history, '/create')} > {i18n.translate('xpack.ingestPipelines.list.table.createPipelineButtonLabel', { - defaultMessage: 'Create a pipeline', + defaultMessage: 'Create pipeline', })} , ], diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx index 4ec510a5e69a7..830b9985f86fd 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx @@ -382,7 +382,7 @@ export const PolicyTable: React.FunctionComponent = ({ > , ], diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx index 45c62f7fc57c1..3e605ade5f3c3 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx @@ -261,7 +261,7 @@ export const RepositoryTable: React.FunctionComponent = ({ > , ], From 6868f183432ff74bfe00fc977b41d783eef39435 Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 1 Apr 2021 19:17:44 -0700 Subject: [PATCH 065/106] skip flaky suite (#95660) (#95706) --- test/functional/apps/management/_import_objects.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/functional/apps/management/_import_objects.ts b/test/functional/apps/management/_import_objects.ts index 13063e3cc83bd..cb4d46f02f56b 100644 --- a/test/functional/apps/management/_import_objects.ts +++ b/test/functional/apps/management/_import_objects.ts @@ -23,7 +23,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const testSubjects = getService('testSubjects'); const log = getService('log'); - describe('import objects', function describeIndexTests() { + // FLAKY: https://github.com/elastic/kibana/issues/95660 + // FLAKY: https://github.com/elastic/kibana/issues/95706 + describe.skip('import objects', function describeIndexTests() { describe('.ndjson file', () => { beforeEach(async function () { await esArchiver.load('management'); @@ -291,8 +293,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(isSuccessful).to.be(true); }); - // https://github.com/elastic/kibana/issues/95660 - it.skip('should allow the user to confirm overriding multiple duplicate saved objects', async function () { + it('should allow the user to confirm overriding multiple duplicate saved objects', async function () { // This data has already been loaded by the "visualize" esArchive. We'll load it again // so that we can override the existing visualization. await PageObjects.savedObjects.importFile( From bffded3ca725ab14b175543708801d9752ad703c Mon Sep 17 00:00:00 2001 From: Rudolf Meijering Date: Fri, 2 Apr 2021 10:24:27 +0200 Subject: [PATCH 066/106] migrations v2: Retry tasks that timeout (#95305) * Retry tasks that timeout with timeout_exception or receive_timeout_transport_exception * Integration test: assert waitForPickupUpdatedMappingsTask waitForReindexTask returns retryable error when task has not completed within the timeout * stateActionMachine: remove infinite loop failsafe * Introduce wait_for_task_completion_timeout and keep on retrying *_WAIT_FOR_TASK steps until the ES task completes * cloneIndex integration test if clone target exists but does not turn yellow within timeout * Try to stabilize waitForReindexTask test * Fix types * Make v2 migrations retryAttempts configurable * Improve type safety by narrowing left res types * Fix test description * Fix tests --- .../migrations/kibana/kibana_migrator.mock.ts | 5 +- .../migrations/kibana/kibana_migrator.test.ts | 3 +- .../migrations/kibana/kibana_migrator.ts | 23 +-- .../migrationsv2/actions/index.ts | 142 +++++++++++++----- .../saved_objects/migrationsv2/index.ts | 4 + .../integration_tests/actions.test.ts | 82 ++++++++++ .../migrations_state_action_machine.test.ts | 12 ++ .../saved_objects/migrationsv2/model.test.ts | 50 +++++- .../saved_objects/migrationsv2/model.ts | 137 ++++++++++------- .../migrationsv2/state_action_machine.test.ts | 8 - .../migrationsv2/state_action_machine.ts | 12 -- .../saved_objects/migrationsv2/types.ts | 17 +++ .../saved_objects/saved_objects_config.ts | 4 +- .../saved_objects/saved_objects_service.ts | 4 +- .../saved_objects/service/lib/repository.ts | 4 +- 15 files changed, 378 insertions(+), 129 deletions(-) diff --git a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.mock.ts b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.mock.ts index 61de31e825d33..530203e659086 100644 --- a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.mock.ts +++ b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.mock.ts @@ -35,13 +35,14 @@ const createMigrator = ( ) => { const mockMigrator: jest.Mocked = { kibanaVersion: '8.0.0-testing', - savedObjectsConfig: { + soMigrationsConfig: { batchSize: 100, scrollDuration: '15m', pollInterval: 1500, skip: false, - // TODO migrationsV2: remove/deprecate once we release migrations v2 + // TODO migrationsV2: remove/deprecate once we remove migrations v1 enableV2: false, + retryAttempts: 10, }, runMigrations: jest.fn(), getActiveMappings: jest.fn(), diff --git a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.test.ts b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.test.ts index 7ead37699980a..40d18c3b5063a 100644 --- a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.test.ts +++ b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.test.ts @@ -414,12 +414,13 @@ const mockOptions = ({ enableV2 }: { enableV2: boolean } = { enableV2: false }) enabled: true, index: '.my-index', } as KibanaMigratorOptions['kibanaConfig'], - savedObjectsConfig: { + soMigrationsConfig: { batchSize: 20, pollInterval: 20000, scrollDuration: '10m', skip: false, enableV2, + retryAttempts: 20, }, client: elasticsearchClientMock.createElasticsearchClient(), }; diff --git a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts index e5c64914e4c96..29852f8ac6445 100644 --- a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts +++ b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts @@ -41,7 +41,7 @@ import { MigrationLogger } from '../core/migration_logger'; export interface KibanaMigratorOptions { client: ElasticsearchClient; typeRegistry: ISavedObjectTypeRegistry; - savedObjectsConfig: SavedObjectsMigrationConfigType; + soMigrationsConfig: SavedObjectsMigrationConfigType; kibanaConfig: KibanaConfigType; kibanaVersion: string; logger: Logger; @@ -72,10 +72,10 @@ export class KibanaMigrator { }); private readonly activeMappings: IndexMapping; private migrationsRetryDelay?: number; - // TODO migrationsV2: make private once we release migrations v2 - public kibanaVersion: string; - // TODO migrationsV2: make private once we release migrations v2 - public readonly savedObjectsConfig: SavedObjectsMigrationConfigType; + // TODO migrationsV2: make private once we remove migrations v1 + public readonly kibanaVersion: string; + // TODO migrationsV2: make private once we remove migrations v1 + public readonly soMigrationsConfig: SavedObjectsMigrationConfigType; /** * Creates an instance of KibanaMigrator. @@ -84,14 +84,14 @@ export class KibanaMigrator { client, typeRegistry, kibanaConfig, - savedObjectsConfig, + soMigrationsConfig, kibanaVersion, logger, migrationsRetryDelay, }: KibanaMigratorOptions) { this.client = client; this.kibanaConfig = kibanaConfig; - this.savedObjectsConfig = savedObjectsConfig; + this.soMigrationsConfig = soMigrationsConfig; this.typeRegistry = typeRegistry; this.serializer = new SavedObjectsSerializer(this.typeRegistry); this.mappingProperties = mergeTypes(this.typeRegistry.getAllTypes()); @@ -175,7 +175,7 @@ export class KibanaMigrator { const migrators = Object.keys(indexMap).map((index) => { // TODO migrationsV2: remove old migrations algorithm - if (this.savedObjectsConfig.enableV2) { + if (this.soMigrationsConfig.enableV2) { return { migrate: (): Promise => { return runResilientMigrator({ @@ -193,20 +193,21 @@ export class KibanaMigrator { ), migrationVersionPerType: this.documentMigrator.migrationVersion, indexPrefix: index, + migrationsConfig: this.soMigrationsConfig, }); }, }; } else { return new IndexMigrator({ - batchSize: this.savedObjectsConfig.batchSize, + batchSize: this.soMigrationsConfig.batchSize, client: createMigrationEsClient(this.client, this.log, this.migrationsRetryDelay), documentMigrator: this.documentMigrator, index, kibanaVersion: this.kibanaVersion, log: this.log, mappingProperties: indexMap[index].typeMappings, - pollInterval: this.savedObjectsConfig.pollInterval, - scrollDuration: this.savedObjectsConfig.scrollDuration, + pollInterval: this.soMigrationsConfig.pollInterval, + scrollDuration: this.soMigrationsConfig.scrollDuration, serializer: this.serializer, // Only necessary for the migrator of the kibana index. obsoleteIndexTemplatePattern: diff --git a/src/core/server/saved_objects/migrationsv2/actions/index.ts b/src/core/server/saved_objects/migrationsv2/actions/index.ts index 22dfb03815052..52fa99b724873 100644 --- a/src/core/server/saved_objects/migrationsv2/actions/index.ts +++ b/src/core/server/saved_objects/migrationsv2/actions/index.ts @@ -9,7 +9,7 @@ import * as Either from 'fp-ts/lib/Either'; import * as TaskEither from 'fp-ts/lib/TaskEither'; import * as Option from 'fp-ts/lib/Option'; -import { ElasticsearchClientError } from '@elastic/elasticsearch/lib/errors'; +import { ElasticsearchClientError, ResponseError } from '@elastic/elasticsearch/lib/errors'; import { pipe } from 'fp-ts/lib/pipeable'; import { errors as EsErrors } from '@elastic/elasticsearch'; import { flow } from 'fp-ts/lib/function'; @@ -23,12 +23,6 @@ import { } from './catch_retryable_es_client_errors'; export type { RetryableEsClientError }; -export const isRetryableEsClientResponse = ( - res: Either.Either -): res is Either.Left => { - return Either.isLeft(res) && res.left.type === 'retryable_es_client_error'; -}; - /** * Batch size for updateByQuery, reindex & search operations. Smaller batches * reduce the memory pressure on Elasticsearch and Kibana so are less likely @@ -45,6 +39,27 @@ const INDEX_NUMBER_OF_SHARDS = 1; /** Wait for all shards to be active before starting an operation */ const WAIT_FOR_ALL_SHARDS_TO_BE_ACTIVE = 'all'; +// Map of left response 'type' string -> response interface +export interface ActionErrorTypeMap { + wait_for_task_completion_timeout: WaitForTaskCompletionTimeout; + retryable_es_client_error: RetryableEsClientError; + index_not_found_exception: IndexNotFound; + target_index_had_write_block: TargetIndexHadWriteBlock; + incompatible_mapping_exception: IncompatibleMappingException; + alias_not_found_exception: AliasNotFound; + remove_index_not_a_concrete_index: RemoveIndexNotAConcreteIndex; +} + +/** + * Type guard for narrowing the type of a left + */ +export function isLeftTypeof( + res: any, + typeString: T +): res is ActionErrorTypeMap[T] { + return res.type === typeString; +} + export type FetchIndexResponse = Record< string, { aliases: Record; mappings: IndexMapping; settings: unknown } @@ -74,6 +89,10 @@ export const fetchIndices = ( .catch(catchRetryableEsClientErrors); }; +export interface IndexNotFound { + type: 'index_not_found_exception'; + index: string; +} /** * Sets a write block in place for the given index. If the response includes * `acknowledged: true` all in-progress writes have drained and no further @@ -87,7 +106,7 @@ export const setWriteBlock = ( client: ElasticsearchClient, index: string ): TaskEither.TaskEither< - { type: 'index_not_found_exception' } | RetryableEsClientError, + IndexNotFound | RetryableEsClientError, 'set_write_block_succeeded' > => () => { return client.indices @@ -112,7 +131,7 @@ export const setWriteBlock = ( .catch((e: ElasticsearchClientError) => { if (e instanceof EsErrors.ResponseError) { if (e.message === 'index_not_found_exception') { - return Either.left({ type: 'index_not_found_exception' as const }); + return Either.left({ type: 'index_not_found_exception' as const, index }); } } throw e; @@ -170,10 +189,11 @@ export const removeWriteBlock = ( */ const waitForIndexStatusYellow = ( client: ElasticsearchClient, - index: string + index: string, + timeout: string ): TaskEither.TaskEither => () => { return client.cluster - .health({ index, wait_for_status: 'yellow', timeout: '30s' }) + .health({ index, wait_for_status: 'yellow', timeout }) .then(() => { return Either.right({}); }) @@ -189,19 +209,18 @@ export type CloneIndexResponse = AcknowledgeResponse; * This method adds some additional logic to the ES clone index API: * - it is idempotent, if it gets called multiple times subsequent calls will * wait for the first clone operation to complete (up to 60s) - * - the first call will wait up to 90s for the cluster state and all shards + * - the first call will wait up to 120s for the cluster state and all shards * to be updated. */ export const cloneIndex = ( client: ElasticsearchClient, source: string, - target: string -): TaskEither.TaskEither< - RetryableEsClientError | { type: 'index_not_found_exception'; index: string }, - CloneIndexResponse -> => { + target: string, + /** only used for testing */ + timeout = DEFAULT_TIMEOUT +): TaskEither.TaskEither => { const cloneTask: TaskEither.TaskEither< - RetryableEsClientError | { type: 'index_not_found_exception'; index: string }, + RetryableEsClientError | IndexNotFound, AcknowledgeResponse > = () => { return client.indices @@ -227,7 +246,7 @@ export const cloneIndex = ( }, }, }, - timeout: DEFAULT_TIMEOUT, + timeout, }, { maxRetries: 0 /** handle retry ourselves for now */ } ) @@ -277,7 +296,7 @@ export const cloneIndex = ( } else { // Otherwise, wait until the target index has a 'green' status. return pipe( - waitForIndexStatusYellow(client, target), + waitForIndexStatusYellow(client, target, timeout), TaskEither.map((value) => { /** When the index status is 'green' we know that all shards were started */ return { acknowledged: true, shardsAcknowledged: true }; @@ -295,6 +314,38 @@ interface WaitForTaskResponse { description?: string; } +/** + * After waiting for the specificed timeout, the task has not yet completed. + * + * When querying the tasks API we use `wait_for_completion=true` to block the + * request until the task completes. If after the `timeout`, the task still has + * not completed we return this error. This does not mean that the task itelf + * has reached a timeout, Elasticsearch will continue to run the task. + */ +export interface WaitForTaskCompletionTimeout { + /** After waiting for the specificed timeout, the task has not yet completed. */ + readonly type: 'wait_for_task_completion_timeout'; + readonly message: string; + readonly error?: Error; +} + +const catchWaitForTaskCompletionTimeout = ( + e: ResponseError +): Either.Either => { + if ( + e.body?.error?.type === 'timeout_exception' || + e.body?.error?.type === 'receive_timeout_transport_exception' + ) { + return Either.left({ + type: 'wait_for_task_completion_timeout' as const, + message: `[${e.body.error.type}] ${e.body.error.reason}`, + error: e, + }); + } else { + throw e; + } +}; + /** * Blocks for up to 60s or until a task completes. * @@ -304,7 +355,10 @@ const waitForTask = ( client: ElasticsearchClient, taskId: string, timeout: string -): TaskEither.TaskEither => () => { +): TaskEither.TaskEither< + RetryableEsClientError | WaitForTaskCompletionTimeout, + WaitForTaskResponse +> => () => { return client.tasks .get({ task_id: taskId, @@ -322,6 +376,7 @@ const waitForTask = ( description: body.task.description, }); }) + .catch(catchWaitForTaskCompletionTimeout) .catch(catchRetryableEsClientErrors); }; @@ -424,7 +479,15 @@ export const reindex = ( }; interface WaitForReindexTaskFailure { - cause: { type: string; reason: string }; + readonly cause: { type: string; reason: string }; +} + +export interface TargetIndexHadWriteBlock { + type: 'target_index_had_write_block'; +} + +export interface IncompatibleMappingException { + type: 'incompatible_mapping_exception'; } export const waitForReindexTask = flow( @@ -433,10 +496,11 @@ export const waitForReindexTask = flow( ( res ): TaskEither.TaskEither< - | { type: 'index_not_found_exception'; index: string } - | { type: 'target_index_had_write_block' } - | { type: 'incompatible_mapping_exception' } - | RetryableEsClientError, + | IndexNotFound + | TargetIndexHadWriteBlock + | IncompatibleMappingException + | RetryableEsClientError + | WaitForTaskCompletionTimeout, 'reindex_succeeded' > => { const failureIsAWriteBlock = ({ cause: { type, reason } }: WaitForReindexTaskFailure) => @@ -507,7 +571,12 @@ export const verifyReindex = ( export const waitForPickupUpdatedMappingsTask = flow( waitForTask, TaskEither.chain( - (res): TaskEither.TaskEither => { + ( + res + ): TaskEither.TaskEither< + RetryableEsClientError | WaitForTaskCompletionTimeout, + 'pickup_updated_mappings_succeeded' + > => { // We don't catch or type failures/errors because they should never // occur in our migration algorithm and we don't have any business logic // for dealing with it. If something happens we'll just crash and try @@ -529,6 +598,14 @@ export const waitForPickupUpdatedMappingsTask = flow( ) ); +export interface AliasNotFound { + type: 'alias_not_found_exception'; +} + +export interface RemoveIndexNotAConcreteIndex { + type: 'remove_index_not_a_concrete_index'; +} + export type AliasAction = | { remove_index: { index: string } } | { remove: { index: string; alias: string; must_exist: boolean } } @@ -541,10 +618,7 @@ export const updateAliases = ( client: ElasticsearchClient, aliasActions: AliasAction[] ): TaskEither.TaskEither< - | { type: 'index_not_found_exception'; index: string } - | { type: 'alias_not_found_exception' } - | { type: 'remove_index_not_a_concrete_index' } - | RetryableEsClientError, + IndexNotFound | AliasNotFound | RemoveIndexNotAConcreteIndex | RetryableEsClientError, 'update_aliases_succeeded' > => () => { return client.indices @@ -698,11 +772,11 @@ export const createIndex = ( // If the cluster state was updated and all shards ackd we're done return TaskEither.right('create_index_succeeded'); } else { - // Otherwise, wait until the target index has a 'green' status. + // Otherwise, wait until the target index has a 'yellow' status. return pipe( - waitForIndexStatusYellow(client, indexName), + waitForIndexStatusYellow(client, indexName, DEFAULT_TIMEOUT), TaskEither.map(() => { - /** When the index status is 'green' we know that all shards were started */ + /** When the index status is 'yellow' we know that all shards were started */ return 'create_index_succeeded'; }) ); diff --git a/src/core/server/saved_objects/migrationsv2/index.ts b/src/core/server/saved_objects/migrationsv2/index.ts index 0297aefdc7abd..6e65a2e700fd3 100644 --- a/src/core/server/saved_objects/migrationsv2/index.ts +++ b/src/core/server/saved_objects/migrationsv2/index.ts @@ -14,6 +14,7 @@ import { MigrationResult } from '../migrations/core'; import { next, TransformRawDocs } from './next'; import { createInitialState, model } from './model'; import { migrationStateActionMachine } from './migrations_state_action_machine'; +import { SavedObjectsMigrationConfigType } from '../saved_objects_config'; /** * Migrates the provided indexPrefix index using a resilient algorithm that is @@ -29,6 +30,7 @@ export async function runResilientMigrator({ transformRawDocs, migrationVersionPerType, indexPrefix, + migrationsConfig, }: { client: ElasticsearchClient; kibanaVersion: string; @@ -38,6 +40,7 @@ export async function runResilientMigrator({ transformRawDocs: TransformRawDocs; migrationVersionPerType: SavedObjectsMigrationVersion; indexPrefix: string; + migrationsConfig: SavedObjectsMigrationConfigType; }): Promise { const initialState = createInitialState({ kibanaVersion, @@ -45,6 +48,7 @@ export async function runResilientMigrator({ preMigrationScript, migrationVersionPerType, indexPrefix, + migrationsConfig, }); return migrationStateActionMachine({ initialState, diff --git a/src/core/server/saved_objects/migrationsv2/integration_tests/actions.test.ts b/src/core/server/saved_objects/migrationsv2/integration_tests/actions.test.ts index 2c052a87d028b..1824efa0ed8d4 100644 --- a/src/core/server/saved_objects/migrationsv2/integration_tests/actions.test.ts +++ b/src/core/server/saved_objects/migrationsv2/integration_tests/actions.test.ts @@ -33,6 +33,7 @@ import { } from '../actions'; import * as Either from 'fp-ts/lib/Either'; import * as Option from 'fp-ts/lib/Option'; +import { ResponseError } from '@elastic/elasticsearch/lib/errors'; const { startES } = kbnTestServer.createTestServers({ adjustTimeout: (t: number) => jest.setTimeout(t), @@ -162,6 +163,7 @@ describe('migration actions', () => { Object { "_tag": "Left", "left": Object { + "index": "no_such_index", "type": "index_not_found_exception", }, } @@ -291,6 +293,45 @@ describe('migration actions', () => { } `); }); + it('resolves left with a retryable_es_client_error if clone target already exists but takes longer than the specified timeout before turning yellow', async () => { + // Create a red index + await client.indices + .create({ + index: 'clone_red_index', + timeout: '5s', + body: { + mappings: { properties: {} }, + settings: { + // Allocate 1 replica so that this index stays yellow + number_of_replicas: '1', + // Disable all shard allocation so that the index status is red + 'index.routing.allocation.enable': 'none', + }, + }, + }) + .catch((e) => {}); + + // Call clone even though the index already exists + const cloneIndexPromise = cloneIndex( + client, + 'existing_index_with_write_block', + 'clone_red_index', + '0s' + )(); + + await cloneIndexPromise.then((res) => { + expect(res).toMatchInlineSnapshot(` + Object { + "_tag": "Left", + "left": Object { + "error": [ResponseError: Response Error], + "message": "Response Error", + "type": "retryable_es_client_error", + }, + } + `); + }); + }); }); // Reindex doesn't return any errors on it's own, so we have to test @@ -587,6 +628,28 @@ describe('migration actions', () => { } `); }); + it('resolves left wait_for_task_completion_timeout when the task does not finish within the timeout', async () => { + const res = (await reindex( + client, + 'existing_index_with_docs', + 'reindex_target', + Option.none, + false + )()) as Either.Right; + + const task = waitForReindexTask(client, res.right.taskId, '0s'); + + await expect(task()).resolves.toMatchObject({ + _tag: 'Left', + left: { + error: expect.any(ResponseError), + message: expect.stringMatching( + /\[timeout_exception\] Timed out waiting for completion of \[org.elasticsearch.index.reindex.BulkByScrollTask/ + ), + type: 'wait_for_task_completion_timeout', + }, + }); + }); }); describe('verifyReindex', () => { @@ -702,6 +765,25 @@ describe('migration actions', () => { {"type":"index_not_found_exception","reason":"no such index [no_such_index]","resource.type":"index_or_alias","resource.id":"no_such_index","index_uuid":"_na_","index":"no_such_index"}] `); }); + it('resolves left wait_for_task_completion_timeout when the task does not complete within the timeout', async () => { + const res = (await pickupUpdatedMappings( + client, + 'existing_index_with_docs' + )()) as Either.Right; + + const task = waitForPickupUpdatedMappingsTask(client, res.right.taskId, '0s'); + + await expect(task()).resolves.toMatchObject({ + _tag: 'Left', + left: { + error: expect.any(ResponseError), + message: expect.stringMatching( + /\[timeout_exception\] Timed out waiting for completion of \[org.elasticsearch.index.reindex.BulkByScrollTask/ + ), + type: 'wait_for_task_completion_timeout', + }, + }); + }); it('resolves right when successful', async () => { const res = (await pickupUpdatedMappings( client, diff --git a/src/core/server/saved_objects/migrationsv2/migrations_state_action_machine.test.ts b/src/core/server/saved_objects/migrationsv2/migrations_state_action_machine.test.ts index f7b9c4c368fa0..99c06c0a3586b 100644 --- a/src/core/server/saved_objects/migrationsv2/migrations_state_action_machine.test.ts +++ b/src/core/server/saved_objects/migrationsv2/migrations_state_action_machine.test.ts @@ -27,6 +27,14 @@ describe('migrationsStateActionMachine', () => { targetMappings: { properties: {} }, migrationVersionPerType: {}, indexPrefix: '.my-so-index', + migrationsConfig: { + batchSize: 1000, + pollInterval: 0, + scrollDuration: '0s', + skip: false, + enableV2: true, + retryAttempts: 5, + }, }); const next = jest.fn((s: State) => { @@ -221,6 +229,7 @@ describe('migrationsStateActionMachine', () => { "_tag": "None", }, "reason": "the fatal reason", + "retryAttempts": 5, "retryCount": 0, "retryDelay": 0, "targetIndexMappings": Object { @@ -280,6 +289,7 @@ describe('migrationsStateActionMachine', () => { "_tag": "None", }, "reason": "the fatal reason", + "retryAttempts": 5, "retryCount": 0, "retryDelay": 0, "targetIndexMappings": Object { @@ -424,6 +434,7 @@ describe('migrationsStateActionMachine', () => { "_tag": "None", }, "reason": "the fatal reason", + "retryAttempts": 5, "retryCount": 0, "retryDelay": 0, "targetIndexMappings": Object { @@ -478,6 +489,7 @@ describe('migrationsStateActionMachine', () => { "_tag": "None", }, "reason": "the fatal reason", + "retryAttempts": 5, "retryCount": 0, "retryDelay": 0, "targetIndexMappings": Object { diff --git a/src/core/server/saved_objects/migrationsv2/model.test.ts b/src/core/server/saved_objects/migrationsv2/model.test.ts index 5531f847f8bb4..2813f01093e95 100644 --- a/src/core/server/saved_objects/migrationsv2/model.test.ts +++ b/src/core/server/saved_objects/migrationsv2/model.test.ts @@ -35,6 +35,7 @@ import { SavedObjectsRawDoc } from '..'; import { AliasAction, RetryableEsClientError } from './actions'; import { createInitialState, model } from './model'; import { ResponseType } from './next'; +import { SavedObjectsMigrationConfigType } from '../saved_objects_config'; describe('migrations v2 model', () => { const baseState: BaseState = { @@ -44,6 +45,7 @@ describe('migrations v2 model', () => { logs: [], retryCount: 0, retryDelay: 0, + retryAttempts: 15, indexPrefix: '.kibana', outdatedDocumentsQuery: {}, targetIndexMappings: { @@ -160,15 +162,15 @@ describe('migrations v2 model', () => { expect(newState.retryDelay).toEqual(0); }); - test('terminates to FATAL after 10 retries', () => { + test('terminates to FATAL after retryAttempts retries', () => { const newState = model( - { ...state, ...{ retryCount: 10, retryDelay: 64000 } }, + { ...state, ...{ retryCount: 15, retryDelay: 64000 } }, Either.left(retryableError) ) as FatalState; expect(newState.controlState).toEqual('FATAL'); expect(newState.reason).toMatchInlineSnapshot( - `"Unable to complete the INIT step after 10 attempts, terminating."` + `"Unable to complete the INIT step after 15 attempts, terminating."` ); }); }); @@ -610,6 +612,7 @@ describe('migrations v2 model', () => { test('LEGACY_SET_WRITE_BLOCK -> LEGACY_CREATE_REINDEX_TARGET if action fails with index_not_found_exception', () => { const res: ResponseType<'LEGACY_SET_WRITE_BLOCK'> = Either.left({ type: 'index_not_found_exception', + index: 'legacy_index_name', }); const newState = model(legacySetWriteBlockState, res); expect(newState.controlState).toEqual('LEGACY_CREATE_REINDEX_TARGET'); @@ -707,6 +710,16 @@ describe('migrations v2 model', () => { expect(newState.retryCount).toEqual(0); expect(newState.retryDelay).toEqual(0); }); + test('LEGACY_REINDEX_WAIT_FOR_TASK -> LEGACY_REINDEX_WAIT_FOR_TASK if action fails with wait_for_task_completion_timeout', () => { + const res: ResponseType<'LEGACY_REINDEX_WAIT_FOR_TASK'> = Either.left({ + message: '[timeout_exception] Timeout waiting for ...', + type: 'wait_for_task_completion_timeout', + }); + const newState = model(legacyReindexWaitForTaskState, res); + expect(newState.controlState).toEqual('LEGACY_REINDEX_WAIT_FOR_TASK'); + expect(newState.retryCount).toEqual(1); + expect(newState.retryDelay).toEqual(2000); + }); }); describe('LEGACY_DELETE', () => { const legacyDeleteState: LegacyDeleteState = { @@ -846,6 +859,16 @@ describe('migrations v2 model', () => { expect(newState.retryCount).toEqual(0); expect(newState.retryDelay).toEqual(0); }); + test('REINDEX_SOURCE_TO_TEMP_WAIT_FOR_TASK -> REINDEX_SOURCE_TO_TEMP_WAIT_FOR_TASK when response is left wait_for_task_completion_timeout', () => { + const res: ResponseType<'REINDEX_SOURCE_TO_TEMP_WAIT_FOR_TASK'> = Either.left({ + message: '[timeout_exception] Timeout waiting for ...', + type: 'wait_for_task_completion_timeout', + }); + const newState = model(state, res); + expect(newState.controlState).toEqual('REINDEX_SOURCE_TO_TEMP_WAIT_FOR_TASK'); + expect(newState.retryCount).toEqual(1); + expect(newState.retryDelay).toEqual(2000); + }); }); describe('SET_TEMP_WRITE_BLOCK', () => { const state: SetTempWriteBlock = { @@ -1025,6 +1048,19 @@ describe('migrations v2 model', () => { expect(newState.retryCount).toEqual(0); expect(newState.retryDelay).toEqual(0); }); + test('UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK -> UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK when response is left wait_for_task_completion_timeout', () => { + const res: ResponseType<'UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK'> = Either.left({ + message: '[timeout_exception] Timeout waiting for ...', + type: 'wait_for_task_completion_timeout', + }); + const newState = model( + updateTargetMappingsWaitForTaskState, + res + ) as UpdateTargetMappingsWaitForTaskState; + expect(newState.controlState).toEqual('UPDATE_TARGET_MAPPINGS_WAIT_FOR_TASK'); + expect(newState.retryCount).toEqual(1); + expect(newState.retryDelay).toEqual(2000); + }); }); describe('CREATE_NEW_TARGET', () => { const aliasActions = Option.some([Symbol('alias action')] as unknown) as Option.Some< @@ -1144,6 +1180,9 @@ describe('migrations v2 model', () => { }); }); describe('createInitialState', () => { + const migrationsConfig = ({ + retryAttempts: 15, + } as unknown) as SavedObjectsMigrationConfigType; it('creates the initial state for the model based on the passed in paramaters', () => { expect( createInitialState({ @@ -1154,6 +1193,7 @@ describe('migrations v2 model', () => { }, migrationVersionPerType: {}, indexPrefix: '.kibana_task_manager', + migrationsConfig, }) ).toMatchInlineSnapshot(` Object { @@ -1171,6 +1211,7 @@ describe('migrations v2 model', () => { "preMigrationScript": Object { "_tag": "None", }, + "retryAttempts": 15, "retryCount": 0, "retryDelay": 0, "targetIndexMappings": Object { @@ -1214,6 +1255,7 @@ describe('migrations v2 model', () => { preMigrationScript, migrationVersionPerType: {}, indexPrefix: '.kibana_task_manager', + migrationsConfig, }); expect(Option.isSome(initialState.preMigrationScript)).toEqual(true); @@ -1233,6 +1275,7 @@ describe('migrations v2 model', () => { preMigrationScript: undefined, migrationVersionPerType: {}, indexPrefix: '.kibana_task_manager', + migrationsConfig, }).preMigrationScript ) ).toEqual(true); @@ -1248,6 +1291,7 @@ describe('migrations v2 model', () => { preMigrationScript: "ctx._id = ctx._source.type + ':' + ctx._id", migrationVersionPerType: { my_dashboard: '7.10.1', my_viz: '8.0.0' }, indexPrefix: '.kibana_task_manager', + migrationsConfig, }).outdatedDocumentsQuery ).toMatchInlineSnapshot(` Object { diff --git a/src/core/server/saved_objects/migrationsv2/model.ts b/src/core/server/saved_objects/migrationsv2/model.ts index 2e92f34429ea9..5bdba98026792 100644 --- a/src/core/server/saved_objects/migrationsv2/model.ts +++ b/src/core/server/saved_objects/migrationsv2/model.ts @@ -10,33 +10,13 @@ import { gt, valid } from 'semver'; import * as Either from 'fp-ts/lib/Either'; import * as Option from 'fp-ts/lib/Option'; import { cloneDeep } from 'lodash'; -import { AliasAction, FetchIndexResponse, RetryableEsClientError } from './actions'; +import { AliasAction, FetchIndexResponse, isLeftTypeof, RetryableEsClientError } from './actions'; import { AllActionStates, InitState, State } from './types'; import { IndexMapping } from '../mappings'; import { ResponseType } from './next'; import { SavedObjectsMigrationVersion } from '../types'; import { disableUnknownTypeMappingFields } from '../migrations/core/migration_context'; - -/** - * How many times to retry a failing step. - * - * Waiting for a task to complete will cause a failing step every time the - * wait_for_task action times out e.g. the following sequence has 3 retry - * attempts: - * LEGACY_REINDEX_WAIT_FOR_TASK (60s timeout) -> - * LEGACY_REINDEX_WAIT_FOR_TASK (2s delay, 60s timeout) -> - * LEGACY_REINDEX_WAIT_FOR_TASK (4s delay, 60s timeout) -> - * LEGACY_REINDEX_WAIT_FOR_TASK (success) -> ... - * - * This places an upper limit to how long we will wait for a task to complete. - * The duration of a step is the time it takes for the action to complete plus - * the exponential retry delay: - * max_task_runtime = 2+4+8+16+32+64*(MAX_RETRY_ATTEMPTS-5) + ACTION_DURATION*MAX_RETRY_ATTEMPTS - * - * For MAX_RETRY_ATTEMPTS=10, ACTION_DURATION=60 - * max_task_runtime = 16.46 minutes - */ -const MAX_RETRY_ATTEMPTS = 10; +import { SavedObjectsMigrationConfigType } from '../saved_objects_config'; /** * A helper function/type for ensuring that all control state's are handled. @@ -115,12 +95,17 @@ function getAliases(indices: FetchIndexResponse) { }, {} as Record); } -const delayRetryState = (state: S, left: RetryableEsClientError): S => { - if (state.retryCount === MAX_RETRY_ATTEMPTS) { +const delayRetryState = ( + state: S, + errorMessage: string, + /** How many times to retry a step that fails */ + maxRetryAttempts: number +): S => { + if (state.retryCount >= maxRetryAttempts) { return { ...state, controlState: 'FATAL', - reason: `Unable to complete the ${state.controlState} step after ${MAX_RETRY_ATTEMPTS} attempts, terminating.`, + reason: `Unable to complete the ${state.controlState} step after ${maxRetryAttempts} attempts, terminating.`, }; } else { const retryCount = state.retryCount + 1; @@ -134,9 +119,7 @@ const delayRetryState = (state: S, left: RetryableEsClientError ...state.logs, { level: 'error', - message: `Action failed with '${ - left.message - }'. Retrying attempt ${retryCount} out of ${MAX_RETRY_ATTEMPTS} in ${ + message: `Action failed with '${errorMessage}'. Retrying attempt ${retryCount} in ${ retryDelay / 1000 } seconds.`, }, @@ -175,9 +158,12 @@ export const model = (currentState: State, resW: ResponseType): // Handle retryable_es_client_errors. Other left values need to be handled // by the control state specific code below. - if (Either.isLeft(resW) && resW.left.type === 'retryable_es_client_error') { + if ( + Either.isLeft(resW) && + isLeftTypeof(resW.left, 'retryable_es_client_error') + ) { // Retry the same step after an exponentially increasing delay. - return delayRetryState(stateP, resW.left); + return delayRetryState(stateP, resW.left.message, stateP.retryAttempts); } else { // If the action didn't fail with a retryable_es_client_error, reset the // retry counter and retryDelay state @@ -333,7 +319,7 @@ export const model = (currentState: State, resW: ResponseType): // If the write block failed because the index doesn't exist, it means // another instance already completed the legacy pre-migration. Proceed // to the next step. - if (res.left.type === 'index_not_found_exception') { + if (isLeftTypeof(res.left, 'index_not_found_exception')) { return { ...stateP, controlState: 'LEGACY_CREATE_REINDEX_TARGET' }; } else { // @ts-expect-error TS doesn't correctly narrow this type to never @@ -376,8 +362,8 @@ export const model = (currentState: State, resW: ResponseType): } else { const left = res.left; if ( - (left.type === 'index_not_found_exception' && left.index === stateP.legacyIndex) || - left.type === 'target_index_had_write_block' + (isLeftTypeof(left, 'index_not_found_exception') && left.index === stateP.legacyIndex) || + isLeftTypeof(left, 'target_index_had_write_block') ) { // index_not_found_exception for the LEGACY_REINDEX source index: // another instance already complete the LEGACY_DELETE step. @@ -390,12 +376,23 @@ export const model = (currentState: State, resW: ResponseType): // step. However, by not skipping ahead we limit branches in the // control state progression and simplify the implementation. return { ...stateP, controlState: 'LEGACY_DELETE' }; - } else { + } else if (isLeftTypeof(left, 'wait_for_task_completion_timeout')) { + // After waiting for the specificed timeout, the task has not yet + // completed. Retry this step to see if the task has completed after an + // exponential delay. We will basically keep polling forever until the + // Elasticeasrch task succeeds or fails. + return delayRetryState(stateP, left.message, Number.MAX_SAFE_INTEGER); + } else if ( + isLeftTypeof(left, 'index_not_found_exception') || + isLeftTypeof(left, 'incompatible_mapping_exception') + ) { // We don't handle the following errors as the algorithm will never // run into these during the LEGACY_REINDEX_WAIT_FOR_TASK step: // - index_not_found_exception for the LEGACY_REINDEX target index - // - strict_dynamic_mapping_exception + // - incompatible_mapping_exception throwBadResponse(stateP, left as never); + } else { + throwBadResponse(stateP, left); } } } else if (stateP.controlState === 'LEGACY_DELETE') { @@ -405,8 +402,8 @@ export const model = (currentState: State, resW: ResponseType): } else if (Either.isLeft(res)) { const left = res.left; if ( - left.type === 'remove_index_not_a_concrete_index' || - (left.type === 'index_not_found_exception' && left.index === stateP.legacyIndex) + isLeftTypeof(left, 'remove_index_not_a_concrete_index') || + (isLeftTypeof(left, 'index_not_found_exception') && left.index === stateP.legacyIndex) ) { // index_not_found_exception, another Kibana instance already // deleted the legacy index @@ -419,13 +416,18 @@ export const model = (currentState: State, resW: ResponseType): // step. However, by not skipping ahead we limit branches in the // control state progression and simplify the implementation. return { ...stateP, controlState: 'SET_SOURCE_WRITE_BLOCK' }; - } else { + } else if ( + isLeftTypeof(left, 'index_not_found_exception') || + isLeftTypeof(left, 'alias_not_found_exception') + ) { // We don't handle the following errors as the migration algorithm // will never cause them to occur: // - alias_not_found_exception we're not using must_exist // - index_not_found_exception for source index into which we reindex // the legacy index throwBadResponse(stateP, left as never); + } else { + throwBadResponse(stateP, left); } } else { throwBadResponse(stateP, res); @@ -438,11 +440,13 @@ export const model = (currentState: State, resW: ResponseType): ...stateP, controlState: 'CREATE_REINDEX_TEMP', }; - } else { + } else if (isLeftTypeof(res.left, 'index_not_found_exception')) { // We don't handle the following errors as the migration algorithm // will never cause them to occur: // - index_not_found_exception - return throwBadResponse(stateP, res as never); + return throwBadResponse(stateP, res.left as never); + } else { + return throwBadResponse(stateP, res.left); } } else if (stateP.controlState === 'CREATE_REINDEX_TEMP') { const res = resW as ExcludeRetryableEsError>; @@ -477,8 +481,8 @@ export const model = (currentState: State, resW: ResponseType): } else { const left = res.left; if ( - left.type === 'target_index_had_write_block' || - (left.type === 'index_not_found_exception' && left.index === stateP.tempIndex) + isLeftTypeof(left, 'target_index_had_write_block') || + (isLeftTypeof(left, 'index_not_found_exception') && left.index === stateP.tempIndex) ) { // index_not_found_exception: // another instance completed the MARK_VERSION_INDEX_READY and @@ -493,10 +497,25 @@ export const model = (currentState: State, resW: ResponseType): ...stateP, controlState: 'SET_TEMP_WRITE_BLOCK', }; - } else { - // Don't handle incompatible_mapping_exception as we will never add a write - // block to the temp index or change the mappings. + } else if (isLeftTypeof(left, 'wait_for_task_completion_timeout')) { + // After waiting for the specificed timeout, the task has not yet + // completed. Retry this step to see if the task has completed after an + // exponential delay. We will basically keep polling forever until the + // Elasticeasrch task succeeds or fails. + return delayRetryState(stateP, left.message, Number.MAX_SAFE_INTEGER); + } else if ( + isLeftTypeof(left, 'index_not_found_exception') || + isLeftTypeof(left, 'incompatible_mapping_exception') + ) { + // Don't handle the following errors as the migration algorithm should + // never cause them to occur: + // - incompatible_mapping_exception the temp index has `dynamic: false` + // mappings + // - index_not_found_exception for the source index, we will never + // delete the source index throwBadResponse(stateP, left as never); + } else { + throwBadResponse(stateP, left); } } } else if (stateP.controlState === 'SET_TEMP_WRITE_BLOCK') { @@ -508,7 +527,7 @@ export const model = (currentState: State, resW: ResponseType): }; } else { const left = res.left; - if (left.type === 'index_not_found_exception') { + if (isLeftTypeof(left, 'index_not_found_exception')) { // index_not_found_exception: // another instance completed the MARK_VERSION_INDEX_READY and // removed the temp index. @@ -520,7 +539,6 @@ export const model = (currentState: State, resW: ResponseType): controlState: 'CLONE_TEMP_TO_TARGET', }; } else { - // @ts-expect-error TS doesn't correctly narrow this to never throwBadResponse(stateP, left); } } @@ -533,7 +551,7 @@ export const model = (currentState: State, resW: ResponseType): }; } else { const left = res.left; - if (left.type === 'index_not_found_exception') { + if (isLeftTypeof(left, 'index_not_found_exception')) { // index_not_found_exception means another instance alread completed // the MARK_VERSION_INDEX_READY step and removed the temp index // We still perform the OUTDATED_DOCUMENTS_* and @@ -543,8 +561,9 @@ export const model = (currentState: State, resW: ResponseType): ...stateP, controlState: 'OUTDATED_DOCUMENTS_SEARCH', }; + } else { + throwBadResponse(stateP, left); } - throwBadResponse(stateP, res as never); } } else if (stateP.controlState === 'OUTDATED_DOCUMENTS_SEARCH') { const res = resW as ExcludeRetryableEsError>; @@ -611,7 +630,16 @@ export const model = (currentState: State, resW: ResponseType): }; } } else { - throwBadResponse(stateP, res); + const left = res.left; + if (isLeftTypeof(left, 'wait_for_task_completion_timeout')) { + // After waiting for the specificed timeout, the task has not yet + // completed. Retry this step to see if the task has completed after an + // exponential delay. We will basically keep polling forever until the + // Elasticeasrch task succeeds or fails. + return delayRetryState(stateP, res.left.message, Number.MAX_SAFE_INTEGER); + } else { + throwBadResponse(stateP, left); + } } } else if (stateP.controlState === 'CREATE_NEW_TARGET') { const res = resW as ExcludeRetryableEsError>; @@ -632,13 +660,13 @@ export const model = (currentState: State, resW: ResponseType): return { ...stateP, controlState: 'DONE' }; } else { const left = res.left; - if (left.type === 'alias_not_found_exception') { + if (isLeftTypeof(left, 'alias_not_found_exception')) { // the versionIndexReadyActions checks that the currentAlias is still // pointing to the source index. If this fails with an // alias_not_found_exception another instance has completed a // migration from the same source. return { ...stateP, controlState: 'MARK_VERSION_INDEX_READY_CONFLICT' }; - } else if (left.type === 'index_not_found_exception') { + } else if (isLeftTypeof(left, 'index_not_found_exception')) { if (left.index === stateP.tempIndex) { // another instance has already completed the migration and deleted // the temporary index @@ -649,7 +677,7 @@ export const model = (currentState: State, resW: ResponseType): // index handled above. throwBadResponse(stateP, left as never); } - } else if (left.type === 'remove_index_not_a_concrete_index') { + } else if (isLeftTypeof(left, 'remove_index_not_a_concrete_index')) { // We don't handle this error as the migration algorithm will never // cause it to occur (this error is only relevant to the LEGACY_DELETE // step). @@ -708,12 +736,14 @@ export const createInitialState = ({ preMigrationScript, migrationVersionPerType, indexPrefix, + migrationsConfig, }: { kibanaVersion: string; targetMappings: IndexMapping; preMigrationScript?: string; migrationVersionPerType: SavedObjectsMigrationVersion; indexPrefix: string; + migrationsConfig: SavedObjectsMigrationConfigType; }): InitState => { const outdatedDocumentsQuery = { bool: { @@ -753,6 +783,7 @@ export const createInitialState = ({ outdatedDocumentsQuery, retryCount: 0, retryDelay: 0, + retryAttempts: migrationsConfig.retryAttempts, logs: [], }; return initialState; diff --git a/src/core/server/saved_objects/migrationsv2/state_action_machine.test.ts b/src/core/server/saved_objects/migrationsv2/state_action_machine.test.ts index 6625c446e2282..ebbb540c9b4fd 100644 --- a/src/core/server/saved_objects/migrationsv2/state_action_machine.test.ts +++ b/src/core/server/saved_objects/migrationsv2/state_action_machine.test.ts @@ -89,12 +89,4 @@ describe('state action machine', () => { } `); }); - - test("rejects if control state doesn't change after 50 steps", async () => { - await expect( - stateActionMachine(state, next, countUntilModel(51)) - ).rejects.toThrowErrorMatchingInlineSnapshot( - `"Control state didn't change after 50 steps aborting."` - ); - }); }); diff --git a/src/core/server/saved_objects/migrationsv2/state_action_machine.ts b/src/core/server/saved_objects/migrationsv2/state_action_machine.ts index c5aa4bf7c42c6..b011ab694e145 100644 --- a/src/core/server/saved_objects/migrationsv2/state_action_machine.ts +++ b/src/core/server/saved_objects/migrationsv2/state_action_machine.ts @@ -10,8 +10,6 @@ export interface ControlState { controlState: string; } -const MAX_STEPS_WITHOUT_CONTROL_STATE_CHANGE = 50; - /** * A state-action machine next function that returns the next action thunk * based on the passed in state. @@ -65,7 +63,6 @@ export async function stateActionMachine( model: Model ) { let state = initialState; - let controlStateStepCounter = 0; let nextAction = next(state); while (nextAction != null) { @@ -73,15 +70,6 @@ export async function stateActionMachine( const actionResponse = await nextAction(); const newState = model(state, actionResponse); - controlStateStepCounter = - newState.controlState === state.controlState ? controlStateStepCounter + 1 : 0; - if (controlStateStepCounter >= MAX_STEPS_WITHOUT_CONTROL_STATE_CHANGE) { - // This is just a fail-safe to ensure we don't get stuck in an infinite loop - throw new Error( - `Control state didn't change after ${MAX_STEPS_WITHOUT_CONTROL_STATE_CHANGE} steps aborting.` - ); - } - // Get ready for the next step state = newState; nextAction = next(state); diff --git a/src/core/server/saved_objects/migrationsv2/types.ts b/src/core/server/saved_objects/migrationsv2/types.ts index b8d67d04b3334..dbdd5774dfa62 100644 --- a/src/core/server/saved_objects/migrationsv2/types.ts +++ b/src/core/server/saved_objects/migrationsv2/types.ts @@ -37,6 +37,23 @@ export interface BaseState extends ControlState { readonly outdatedDocumentsQuery: Record; readonly retryCount: number; readonly retryDelay: number; + /** + * How many times to retry a step that fails with retryable_es_client_error + * such as a statusCode: 503 or a snapshot_in_progress_exception. + * + * We don't want to immediately crash Kibana and cause a reboot for these + * intermittent. However, if we're still receiving e.g. a 503 after 10 minutes + * this is probably not just a temporary problem so we stop trying and exit + * with a fatal error. + * + * Because of the exponential backoff the total time we will retry such errors + * is: + * max_retry_time = 2+4+8+16+32+64*(RETRY_ATTEMPTS-5) + ACTION_DURATION*RETRY_ATTEMPTS + * + * For RETRY_ATTEMPTS=15 (default), ACTION_DURATION=0 + * max_retry_time = 11.7 minutes + */ + readonly retryAttempts: number; readonly logs: Array<{ level: 'error' | 'info'; message: string }>; /** * The current alias e.g. `.kibana` which always points to the latest diff --git a/src/core/server/saved_objects/saved_objects_config.ts b/src/core/server/saved_objects/saved_objects_config.ts index 1806bb6e0c895..7228cb126d286 100644 --- a/src/core/server/saved_objects/saved_objects_config.ts +++ b/src/core/server/saved_objects/saved_objects_config.ts @@ -13,12 +13,14 @@ export type SavedObjectsMigrationConfigType = TypeOf Date: Fri, 2 Apr 2021 05:49:12 -0700 Subject: [PATCH 067/106] [App Search] API Logs: Add ApiLogsTable and NewApiEventsPrompt components (#96008) * Set up getStatusColor util for upcoming EuiHealth components * Add ApiLogsTable component * Add NewApiEventsPrompt component * Update ApiLogs view with new components + add EuiPageContent wrapper (missed this originally) * Update EngineOverview with new components * PR feedback: Comments + mock FormattedRelative * Fix type error --- .../components/api_logs/api_logs.test.tsx | 5 +- .../components/api_logs/api_logs.tsx | 43 ++++-- .../api_logs/components/api_logs_table.scss | 5 + .../components/api_logs_table.test.tsx | 113 +++++++++++++++ .../api_logs/components/api_logs_table.tsx | 132 ++++++++++++++++++ .../components/api_logs/components/index.ts | 9 ++ .../components/new_api_events_prompt.scss | 6 + .../components/new_api_events_prompt.test.tsx | 51 +++++++ .../components/new_api_events_prompt.tsx | 35 +++++ .../app_search/components/api_logs/index.ts | 1 + .../components/api_logs/utils.test.ts | 11 +- .../app_search/components/api_logs/utils.ts | 9 ++ .../components/recent_api_logs.test.tsx | 4 +- .../components/recent_api_logs.tsx | 20 ++- 14 files changed, 422 insertions(+), 22 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.scss create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/index.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.scss create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.tsx diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.test.tsx index 7bdfaf87a2b2f..1945dde84ec45 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.test.tsx @@ -17,6 +17,8 @@ import { EuiPageHeader } from '@elastic/eui'; import { Loading } from '../../../shared/loading'; import { LogRetentionCallout, LogRetentionTooltip } from '../log_retention'; +import { ApiLogsTable, NewApiEventsPrompt } from './components'; + import { ApiLogs } from './'; describe('ApiLogs', () => { @@ -41,7 +43,8 @@ describe('ApiLogs', () => { it('renders', () => { expect(wrapper.find(EuiPageHeader).prop('pageTitle')).toEqual('API Logs'); - // TODO: Check for ApiLogsTable + NewApiEventsPrompt when those get added + expect(wrapper.find(ApiLogsTable)).toHaveLength(1); + expect(wrapper.find(NewApiEventsPrompt)).toHaveLength(1); expect(wrapper.find(LogRetentionCallout).prop('type')).toEqual('api'); expect(wrapper.find(LogRetentionTooltip).prop('type')).toEqual('api'); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx index 2ffc9ea303b5c..8ca15906783f9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx @@ -9,7 +9,15 @@ import React, { useEffect } from 'react'; import { useValues, useActions } from 'kea'; -import { EuiPageHeader, EuiTitle, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { + EuiPageHeader, + EuiTitle, + EuiPageContent, + EuiPageContentBody, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, +} from '@elastic/eui'; import { FlashMessages } from '../../../shared/flash_messages'; import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome'; @@ -18,6 +26,7 @@ import { Loading } from '../../../shared/loading'; import { LogRetentionCallout, LogRetentionTooltip, LogRetentionOptions } from '../log_retention'; +import { ApiLogsTable, NewApiEventsPrompt } from './components'; import { API_LOGS_TITLE, RECENT_API_EVENTS } from './constants'; import { ApiLogsLogic } from './'; @@ -47,19 +56,27 @@ export const ApiLogs: React.FC = ({ engineBreadcrumb }) => { - - - -

{RECENT_API_EVENTS}

-
-
- - - - {/* TODO: NewApiEventsPrompt */} -
+ + + + + +

{RECENT_API_EVENTS}

+
+
+ + + + + + + +
+ - {/* TODO: ApiLogsTable */} + +
+
); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.scss b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.scss new file mode 100644 index 0000000000000..44834d81a13c6 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.scss @@ -0,0 +1,5 @@ +.apiLogDetailButton { + // More closely mimics the regular line height of an EuiLink / + // compresses table rows back to the standard height + height: $euiSizeL !important; +} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx new file mode 100644 index 0000000000000..99fce81ca348f --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx @@ -0,0 +1,113 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { setMockValues, setMockActions, mountWithIntl } from '../../../../__mocks__'; + +// NOTE: We're mocking FormattedRelative here because it (currently) has +// console warn issues, and it allows us to skip mocking dates +jest.mock('@kbn/i18n/react', () => ({ + ...(jest.requireActual('@kbn/i18n/react') as object), + FormattedRelative: jest.fn(() => '20 hours ago'), +})); + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { EuiBasicTable, EuiBadge, EuiHealth, EuiButtonEmpty, EuiEmptyPrompt } from '@elastic/eui'; + +import { DEFAULT_META } from '../../../../shared/constants'; + +import { ApiLogsTable } from './'; + +describe('ApiLogsTable', () => { + const apiLogs = [ + { + timestamp: '1970-01-01T00:00:00.000Z', + status: 404, + http_method: 'GET', + full_request_path: '/api/as/v1/test', + }, + { + timestamp: '1970-01-01T00:00:00.000Z', + status: 500, + http_method: 'DELETE', + full_request_path: '/api/as/v1/test', + }, + { + timestamp: '1970-01-01T00:00:00.000Z', + status: 200, + http_method: 'POST', + full_request_path: '/api/as/v1/engines/some-engine/search', + }, + ]; + + const values = { + dataLoading: false, + apiLogs, + meta: DEFAULT_META, + }; + const actions = { + onPaginate: jest.fn(), + }; + + beforeEach(() => { + jest.clearAllMocks(); + setMockValues(values); + setMockActions(actions); + }); + + it('renders', () => { + const wrapper = mountWithIntl(); + const tableContent = wrapper.find(EuiBasicTable).text(); + + expect(tableContent).toContain('Method'); + expect(tableContent).toContain('GET'); + expect(tableContent).toContain('DELETE'); + expect(tableContent).toContain('POST'); + expect(wrapper.find(EuiBadge)).toHaveLength(3); + + expect(tableContent).toContain('Time'); + expect(tableContent).toContain('20 hours ago'); + + expect(tableContent).toContain('Endpoint'); + expect(tableContent).toContain('/api/as/v1/test'); + expect(tableContent).toContain('/api/as/v1/engines/some-engine/search'); + + expect(tableContent).toContain('Status'); + expect(tableContent).toContain('404'); + expect(tableContent).toContain('500'); + expect(tableContent).toContain('200'); + expect(wrapper.find(EuiHealth)).toHaveLength(3); + + expect(wrapper.find(EuiButtonEmpty)).toHaveLength(3); + wrapper.find('[data-test-subj="ApiLogsTableDetailsButton"]').first().simulate('click'); + // TODO: API log details flyout + }); + + it('renders an empty prompt if no items are passed', () => { + setMockValues({ ...values, apiLogs: [] }); + const wrapper = mountWithIntl(); + const promptContent = wrapper.find(EuiEmptyPrompt).text(); + + expect(promptContent).toContain('No recent logs'); + }); + + describe('hasPagination', () => { + it('does not render with pagination by default', () => { + const wrapper = shallow(); + + expect(wrapper.find(EuiBasicTable).prop('pagination')).toBeFalsy(); + }); + + it('renders pagination if hasPagination is true', () => { + const wrapper = shallow(); + + expect(wrapper.find(EuiBasicTable).prop('pagination')).toBeTruthy(); + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx new file mode 100644 index 0000000000000..8ebcc4350f7fc --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx @@ -0,0 +1,132 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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 { useValues, useActions } from 'kea'; + +import { + EuiBasicTable, + EuiBasicTableColumn, + EuiBadge, + EuiHealth, + EuiButtonEmpty, + EuiEmptyPrompt, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedRelative } from '@kbn/i18n/react'; + +import { convertMetaToPagination, handlePageChange } from '../../../../shared/table_pagination'; + +import { ApiLogsLogic } from '../index'; +import { ApiLog } from '../types'; +import { getStatusColor } from '../utils'; + +import './api_logs_table.scss'; + +interface Props { + hasPagination?: boolean; +} +export const ApiLogsTable: React.FC = ({ hasPagination }) => { + const { dataLoading, apiLogs, meta } = useValues(ApiLogsLogic); + const { onPaginate } = useActions(ApiLogsLogic); + + const columns: Array> = [ + { + field: 'http_method', + name: i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.methodTableHeading', { + defaultMessage: 'Method', + }), + width: '100px', + render: (method: string) => {method}, + }, + { + field: 'timestamp', + name: i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.timeTableHeading', { + defaultMessage: 'Time', + }), + width: '20%', + render: (dateString: string) => , + }, + { + field: 'full_request_path', + name: i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.endpointTableHeading', { + defaultMessage: 'Endpoint', + }), + width: '50%', + truncateText: true, + mobileOptions: { + // @ts-ignore - EUI's typing is incorrect here + width: '100%', + }, + }, + { + field: 'status', + name: i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.statusTableHeading', { + defaultMessage: 'Status', + }), + dataType: 'number', + width: '100px', + render: (status: number) => {status}, + }, + { + width: '100px', + align: 'right', + render: (apiLog: ApiLog) => ( + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.detailsButtonLabel', { + defaultMessage: 'Details', + })} + + ), + }, + ]; + + const paginationProps = hasPagination + ? { + pagination: { + ...convertMetaToPagination(meta), + hidePerPageOptions: true, + }, + onChange: handlePageChange(onPaginate), + } + : {}; + + return ( + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.emptyTitle', { + defaultMessage: 'No recent logs', + })} +

+ } + body={ +

+ {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.emptyDescription', { + defaultMessage: "Check back after you've performed some API calls.", + })} +

+ } + /> + } + {...paginationProps} + /> + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/index.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/index.ts new file mode 100644 index 0000000000000..c0edc51d06228 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/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 { ApiLogsTable } from './api_logs_table'; +export { NewApiEventsPrompt } from './new_api_events_prompt'; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.scss b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.scss new file mode 100644 index 0000000000000..0f033bd37c61c --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.scss @@ -0,0 +1,6 @@ +.newApiEventsPrompt { + padding: $euiSizeXS; + padding-left: $euiSizeS; + display: flex; + align-items: center; +} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.test.tsx new file mode 100644 index 0000000000000..91d1962cd91db --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.test.tsx @@ -0,0 +1,51 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { setMockValues, setMockActions } from '../../../../__mocks__'; + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { EuiButtonEmpty } from '@elastic/eui'; + +import { NewApiEventsPrompt } from './'; + +describe('NewApiEventsPrompt', () => { + const values = { + hasNewData: true, + }; + const actions = { + onUserRefresh: jest.fn(), + }; + + beforeEach(() => { + jest.clearAllMocks(); + setMockValues(values); + setMockActions(actions); + }); + + it('renders', () => { + const wrapper = shallow(); + + expect(wrapper.isEmptyRender()).toBe(false); + }); + + it('does not render if no new data has been polled', () => { + setMockValues({ ...values, hasNewData: false }); + const wrapper = shallow(); + + expect(wrapper.isEmptyRender()).toBe(true); + }); + + it('calls onUserRefresh', () => { + const wrapper = shallow(); + + wrapper.find(EuiButtonEmpty).simulate('click'); + expect(actions.onUserRefresh).toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.tsx new file mode 100644 index 0000000000000..1f834e061bd2c --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/new_api_events_prompt.tsx @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { useValues, useActions } from 'kea'; + +import { EuiPanel, EuiButtonEmpty } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +import { ApiLogsLogic } from '../'; + +import './new_api_events_prompt.scss'; + +export const NewApiEventsPrompt: React.FC = () => { + const { hasNewData } = useValues(ApiLogsLogic); + const { onUserRefresh } = useActions(ApiLogsLogic); + + return hasNewData ? ( + + {i18n.translate('xpack.enterpriseSearch.appSearch.engines.apiLogs.newEventsMessage', { + defaultMessage: 'New events have been logged.', + })} + + {i18n.translate('xpack.enterpriseSearch.appSearch.engines.apiLogs.newEventsButtonLabel', { + defaultMessage: 'Refresh', + })} + + + ) : null; +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts index dc05fe3de0d5c..183956e51d8d4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts @@ -6,5 +6,6 @@ */ export { API_LOGS_TITLE } from './constants'; +export { ApiLogsTable, NewApiEventsPrompt } from './components'; export { ApiLogs } from './api_logs'; export { ApiLogsLogic } from './api_logs_logic'; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts index 53c210d595291..f9b6dcea2cbf3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { getDateString } from './utils'; +import { getDateString, getStatusColor } from './utils'; describe('getDateString', () => { const mockDate = jest @@ -23,3 +23,12 @@ describe('getDateString', () => { afterAll(() => mockDate.mockRestore()); }); + +describe('getStatusColor', () => { + it('returns a valid EUI badge color based on the status code', () => { + expect(getStatusColor(200)).toEqual('secondary'); + expect(getStatusColor(301)).toEqual('primary'); + expect(getStatusColor(404)).toEqual('warning'); + expect(getStatusColor(503)).toEqual('danger'); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts index 4e2dfc2cf701a..3217a1561ce76 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts @@ -10,3 +10,12 @@ export const getDateString = (offSetDays?: number) => { if (offSetDays) date.setDate(date.getDate() + offSetDays); return date.toISOString(); }; + +export const getStatusColor = (status: number) => { + let color = ''; + if (status >= 100 && status < 300) color = 'secondary'; + if (status >= 300 && status < 400) color = 'primary'; + if (status >= 400 && status < 500) color = 'warning'; + if (status >= 500) color = 'danger'; + return color; +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.test.tsx index 44e125221f674..6f3ec806a438d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.test.tsx @@ -13,6 +13,8 @@ import React from 'react'; import { shallow, ShallowWrapper } from 'enzyme'; +import { ApiLogsTable } from '../../api_logs'; + import { RecentApiLogs } from './recent_api_logs'; describe('RecentApiLogs', () => { @@ -31,7 +33,7 @@ describe('RecentApiLogs', () => { it('renders the recent API logs table', () => { expect(wrapper.prop('title')).toEqual(

Recent API events

); - // TODO: expect(wrapper.find(ApiLogsTable)).toHaveLength(1) + expect(wrapper.find(ApiLogsTable)).toHaveLength(1); }); it('calls fetchApiLogs on page load and starts pollForApiLogs', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx index 1a8e4703d7c2e..3686f380407e2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx @@ -9,9 +9,11 @@ import React, { useEffect } from 'react'; import { useActions } from 'kea'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; + import { EuiButtonEmptyTo } from '../../../../shared/react_router_helpers'; import { ENGINE_API_LOGS_PATH } from '../../../routes'; -import { ApiLogsLogic } from '../../api_logs'; +import { ApiLogsLogic, ApiLogsTable, NewApiEventsPrompt } from '../../api_logs'; import { RECENT_API_EVENTS } from '../../api_logs/constants'; import { DataPanel } from '../../data_panel'; import { generateEnginePath } from '../../engine'; @@ -30,14 +32,20 @@ export const RecentApiLogs: React.FC = () => { {RECENT_API_EVENTS}

} action={ - - {VIEW_API_LOGS} - + + + + + + + {VIEW_API_LOGS} + + + } hasBorder > - TODO: API Logs Table - {/* */} + ); }; From d2a484c5bd9801e3e6b89c3073bab241b82bb869 Mon Sep 17 00:00:00 2001 From: Stratoula Kalafateli Date: Fri, 2 Apr 2021 15:51:09 +0300 Subject: [PATCH 068/106] [TSVB] Enables url drilldowns for range selection (#95296) * Temp research code * Make it work * Cleanup * Convert series to datatable * Remove unecessary log * Minor * Fix types problem * Add unit tests * Take under consideration the override index pattern setting * Implement brush event for dual mode * Move indexpatterns fetch outside the loop Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../vis_type_timeseries/common/types.ts | 3 + .../lib/convert_series_to_datatable.test.ts | 185 ++++++++++++++++++ .../lib/convert_series_to_datatable.ts | 113 +++++++++++ .../components/timeseries_visualization.tsx | 42 ++-- .../application/components/vis_types/index.ts | 4 +- .../constants/{chart.js => chart.ts} | 0 .../constants/{icons.js => icons.ts} | 3 +- .../constants/{index.js => index.ts} | 0 .../visualizations/views/timeseries/index.js | 2 +- .../public/metrics_type.ts | 2 +- .../server/lib/vis_data/helpers/get_splits.js | 1 + .../lib/vis_data/helpers/get_splits.test.js | 2 + 12 files changed, 335 insertions(+), 22 deletions(-) create mode 100644 src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.test.ts create mode 100644 src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.ts rename src/plugins/vis_type_timeseries/public/application/visualizations/constants/{chart.js => chart.ts} (100%) rename src/plugins/vis_type_timeseries/public/application/visualizations/constants/{icons.js => icons.ts} (97%) rename src/plugins/vis_type_timeseries/public/application/visualizations/constants/{index.js => index.ts} (100%) diff --git a/src/plugins/vis_type_timeseries/common/types.ts b/src/plugins/vis_type_timeseries/common/types.ts index 4aa69be346608..74e247b7af06d 100644 --- a/src/plugins/vis_type_timeseries/common/types.ts +++ b/src/plugins/vis_type_timeseries/common/types.ts @@ -63,6 +63,9 @@ export interface PanelData { id: string; label: string; data: Array<[number, number]>; + seriesId: string; + splitByLabel: string; + isSplitByTerms: boolean; } export const isVisTableData = (data: TimeseriesVisData): data is TableData => diff --git a/src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.test.ts b/src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.test.ts new file mode 100644 index 0000000000000..df0874fdd73ec --- /dev/null +++ b/src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.test.ts @@ -0,0 +1,185 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { IndexPattern, IndexPatternField } from 'src/plugins/data/public'; +import { PanelData } from '../../../../common/types'; +import { TimeseriesVisParams } from '../../../types'; +import { convertSeriesToDataTable, addMetaToColumns } from './convert_series_to_datatable'; + +jest.mock('../../../services', () => { + return { + getDataStart: jest.fn(() => { + return { + indexPatterns: jest.fn(), + }; + }), + }; +}); + +describe('convert series to datatables', () => { + let indexPattern: IndexPattern; + + beforeEach(() => { + const fieldMap: Record = { + test1: { name: 'test1', spec: { type: 'date' } } as IndexPatternField, + test2: { name: 'test2' } as IndexPatternField, + test3: { name: 'test3', spec: { type: 'boolean' } } as IndexPatternField, + }; + + const getFieldByName = (name: string): IndexPatternField | undefined => fieldMap[name]; + indexPattern = { + id: 'index1', + title: 'index1', + timeFieldName: 'timestamp', + getFieldByName, + } as IndexPattern; + }); + + describe('addMetaColumns()', () => { + test('adds the correct meta to a date column', () => { + const columns = [{ id: 0, name: 'test1', isSplit: false }]; + const columnsWithMeta = addMetaToColumns(columns, indexPattern, 'count'); + expect(columnsWithMeta).toEqual([ + { + id: '0', + meta: { + field: 'test1', + index: 'index1', + source: 'esaggs', + sourceParams: { + enabled: true, + indexPatternId: 'index1', + type: 'date_histogram', + }, + type: 'date', + }, + name: 'test1', + }, + ]); + }); + + test('adds the correct meta to a non date column', () => { + const columns = [{ id: 1, name: 'Average of test2', isSplit: false }]; + const columnsWithMeta = addMetaToColumns(columns, indexPattern, 'avg'); + expect(columnsWithMeta).toEqual([ + { + id: '1', + meta: { + field: 'Average of test2', + index: 'index1', + source: 'esaggs', + sourceParams: { + enabled: true, + indexPatternId: 'index1', + type: 'avg', + }, + type: 'number', + }, + name: 'Average of test2', + }, + ]); + }); + + test('adds the correct meta for a split column', () => { + const columns = [{ id: 2, name: 'test3', isSplit: true }]; + const columnsWithMeta = addMetaToColumns(columns, indexPattern, 'avg'); + expect(columnsWithMeta).toEqual([ + { + id: '2', + meta: { + field: 'test3', + index: 'index1', + source: 'esaggs', + sourceParams: { + enabled: true, + indexPatternId: 'index1', + type: 'terms', + }, + type: 'boolean', + }, + name: 'test3', + }, + ]); + }); + }); + + describe('convertSeriesToDataTable()', () => { + const model = { + series: [ + { + formatter: 'number', + id: 'series1', + label: '', + line_width: 1, + metrics: [ + { + field: 'test2', + id: 'series1', + type: 'avg', + }, + ], + split_mode: 'terms', + terms_field: 'Cancelled', + type: 'timeseries', + }, + ], + } as TimeseriesVisParams; + const series = ([ + { + id: 'series1:0', + label: 0, + splitByLabel: 'Average of test2', + labelFormatted: 'false', + data: [ + [1616454000000, 0], + [1616457600000, 5], + [1616461200000, 7], + [1616464800000, 8], + ], + seriesId: 'series1', + isSplitByTerms: true, + }, + { + id: 'series1:1', + label: 1, + splitByLabel: 'Average of test2', + labelFormatted: 'true', + data: [ + [1616454000000, 10], + [1616457600000, 12], + [1616461200000, 1], + [1616464800000, 14], + ], + seriesId: 'series1', + isSplitByTerms: true, + }, + ] as unknown) as PanelData[]; + test('creates one table for one layer series with the correct columns', async () => { + const tables = await convertSeriesToDataTable(model, series, indexPattern); + expect(Object.keys(tables).sort()).toEqual([model.series[0].id].sort()); + + expect(tables.series1.columns.length).toEqual(3); + expect(tables.series1.rows.length).toEqual(8); + }); + + test('the table rows for a series with term aggregation should be a combination of the different terms', async () => { + const tables = await convertSeriesToDataTable(model, series, indexPattern); + expect(Object.keys(tables).sort()).toEqual([model.series[0].id].sort()); + + expect(tables.series1.rows.length).toEqual(8); + const expected1 = series[0].data.map((d) => { + d.push(parseInt(series[0].label, 10)); + return d; + }); + const expected2 = series[1].data.map((d) => { + d.push(parseInt(series[1].label, 10)); + return d; + }); + expect(tables.series1.rows).toEqual([...expected1, ...expected2]); + }); + }); +}); diff --git a/src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.ts b/src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.ts new file mode 100644 index 0000000000000..164d93e490db1 --- /dev/null +++ b/src/plugins/vis_type_timeseries/public/application/components/lib/convert_series_to_datatable.ts @@ -0,0 +1,113 @@ +/* + * Copyright 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 { IndexPattern } from 'src/plugins/data/public'; +import { + Datatable, + DatatableRow, + DatatableColumn, + DatatableColumnType, +} from 'src/plugins/expressions/public'; +import { TimeseriesVisParams } from '../../../types'; +import { PanelData } from '../../../../common/types'; +import { fetchIndexPattern } from '../../../../common/index_patterns_utils'; +import { getDataStart } from '../../../services'; +import { X_ACCESSOR_INDEX } from '../../visualizations/constants'; + +interface TSVBTables { + [key: string]: Datatable; +} + +interface TSVBColumns { + id: number; + name: string; + isSplit: boolean; +} + +export const addMetaToColumns = ( + columns: TSVBColumns[], + indexPattern: IndexPattern, + metricsType: string +): DatatableColumn[] => { + return columns.map((column) => { + const field = indexPattern.getFieldByName(column.name); + const type = (field?.spec.type as DatatableColumnType) || 'number'; + const cleanedColumn = { + id: column.id.toString(), + name: column.name, + meta: { + type, + field: column.name, + index: indexPattern.title, + source: 'esaggs', + sourceParams: { + enabled: true, + indexPatternId: indexPattern?.id, + type: type === 'date' ? 'date_histogram' : column.isSplit ? 'terms' : metricsType, + }, + }, + }; + return cleanedColumn; + }); +}; + +export const convertSeriesToDataTable = async ( + model: TimeseriesVisParams, + series: PanelData[], + initialIndexPattern: IndexPattern +) => { + const tables: TSVBTables = {}; + const { indexPatterns } = getDataStart(); + for (let layerIdx = 0; layerIdx < model.series.length; layerIdx++) { + const layer = model.series[layerIdx]; + let usedIndexPattern = initialIndexPattern; + // The user can overwrite the index pattern of a layer. + // In that case, the index pattern should be fetched again. + if (layer.override_index_pattern) { + const { indexPattern } = await fetchIndexPattern(layer.series_index_pattern, indexPatterns); + if (indexPattern) { + usedIndexPattern = indexPattern; + } + } + const isGroupedByTerms = layer.split_mode === 'terms'; + const seriesPerLayer = series.filter((s) => s.seriesId === layer.id); + let id = X_ACCESSOR_INDEX; + + const columns: TSVBColumns[] = [ + { id, name: usedIndexPattern.timeFieldName || '', isSplit: false }, + ]; + if (seriesPerLayer.length) { + id++; + columns.push({ id, name: seriesPerLayer[0].splitByLabel, isSplit: false }); + // Adds an extra column, if the layer is split by terms aggregation + if (isGroupedByTerms) { + id++; + columns.push({ id, name: layer.terms_field || '', isSplit: true }); + } + } + const columnsWithMeta = addMetaToColumns(columns, usedIndexPattern, layer.metrics[0].type); + + let rows: DatatableRow[] = []; + for (let j = 0; j < seriesPerLayer.length; j++) { + const data = seriesPerLayer[j].data.map((rowData) => { + const row: DatatableRow = [rowData[0], rowData[1]]; + // If the layer is split by terms aggregation, the data array should also contain the split value. + if (isGroupedByTerms) { + row.push(seriesPerLayer[j].label); + } + return row; + }); + rows = [...rows, ...data]; + } + tables[layer.id] = { + type: 'datatable', + rows, + columns: columnsWithMeta, + }; + } + return tables; +}; diff --git a/src/plugins/vis_type_timeseries/public/application/components/timeseries_visualization.tsx b/src/plugins/vis_type_timeseries/public/application/components/timeseries_visualization.tsx index ad4949259cfaf..7fba2e1cb701f 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/timeseries_visualization.tsx +++ b/src/plugins/vis_type_timeseries/public/application/components/timeseries_visualization.tsx @@ -21,8 +21,12 @@ import { PaletteRegistry } from 'src/plugins/charts/public'; // @ts-expect-error import { ErrorComponent } from './error'; import { TimeseriesVisTypes } from './vis_types'; +import { TimeseriesVisData, PanelData, isVisSeriesData } from '../../../common/types'; +import { fetchIndexPattern } from '../../../common/index_patterns_utils'; import { TimeseriesVisParams } from '../../types'; -import { isVisSeriesData, TimeseriesVisData } from '../../../common/types'; +import { getDataStart } from '../../services'; +import { convertSeriesToDataTable } from './lib/convert_series_to_datatable'; +import { X_ACCESSOR_INDEX } from '../visualizations/constants'; import { LastValueModeIndicator } from './last_value_mode_indicator'; import { getInterval } from './lib/get_interval'; import { AUTO_INTERVAL } from '../../../common/constants'; @@ -51,25 +55,29 @@ function TimeseriesVisualization({ palettesService, }: TimeseriesVisualizationProps) { const onBrush = useCallback( - (gte: string, lte: string) => { - handlers.event({ - name: 'applyFilter', + async (gte: string, lte: string, series: PanelData[]) => { + const indexPatternValue = model.index_pattern || ''; + const { indexPatterns } = getDataStart(); + const { indexPattern } = await fetchIndexPattern(indexPatternValue, indexPatterns); + + const tables = indexPattern + ? await convertSeriesToDataTable(model, series, indexPattern) + : null; + const table = tables?.[model.series[0].id]; + + const range: [number, number] = [parseInt(gte, 10), parseInt(lte, 10)]; + const event = { data: { - timeFieldName: '*', - filters: [ - { - range: { - '*': { - gte, - lte, - }, - }, - }, - ], + table, + column: X_ACCESSOR_INDEX, + range, + timeFieldName: indexPattern?.timeFieldName, }, - }); + name: 'brush', + }; + handlers.event(event); }, - [handlers] + [handlers, model] ); const handleUiState = useCallback( diff --git a/src/plugins/vis_type_timeseries/public/application/components/vis_types/index.ts b/src/plugins/vis_type_timeseries/public/application/components/vis_types/index.ts index 0e169c50e4db6..3447641352468 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/vis_types/index.ts +++ b/src/plugins/vis_type_timeseries/public/application/components/vis_types/index.ts @@ -13,7 +13,7 @@ import { PersistedState } from 'src/plugins/visualizations/public'; import { PaletteRegistry } from 'src/plugins/charts/public'; import { TimeseriesVisParams } from '../../../types'; -import { TimeseriesVisData } from '../../../../common/types'; +import { TimeseriesVisData, PanelData } from '../../../../common/types'; /** * Lazy load each visualization type, since the only one is presented on the screen at the same time. @@ -44,7 +44,7 @@ export const TimeseriesVisTypes: Record void; + onBrush: (gte: string, lte: string, series: PanelData[]) => Promise; onUiState: ( field: string, value: { diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/constants/chart.js b/src/plugins/vis_type_timeseries/public/application/visualizations/constants/chart.ts similarity index 100% rename from src/plugins/vis_type_timeseries/public/application/visualizations/constants/chart.js rename to src/plugins/vis_type_timeseries/public/application/visualizations/constants/chart.ts diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/constants/icons.js b/src/plugins/vis_type_timeseries/public/application/visualizations/constants/icons.ts similarity index 97% rename from src/plugins/vis_type_timeseries/public/application/visualizations/constants/icons.js rename to src/plugins/vis_type_timeseries/public/application/visualizations/constants/icons.ts index 1bc98c6c2a722..5fd6933fcef01 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/constants/icons.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/constants/icons.ts @@ -5,8 +5,9 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ - +// @ts-expect-error import { bombIcon } from '../../components/svg/bomb_icon'; +// @ts-expect-error import { fireIcon } from '../../components/svg/fire_icon'; export const ICON_NAMES = { diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/constants/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/constants/index.ts similarity index 100% rename from src/plugins/vis_type_timeseries/public/application/visualizations/constants/index.js rename to src/plugins/vis_type_timeseries/public/application/visualizations/constants/index.ts diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js index 537344a6da39a..a90faea50f22a 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js @@ -100,7 +100,7 @@ export const TimeSeries = ({ return; } const [min, max] = x; - onBrush(min, max); + onBrush(min, max, series); }; const getSeriesColor = useCallback( diff --git a/src/plugins/vis_type_timeseries/public/metrics_type.ts b/src/plugins/vis_type_timeseries/public/metrics_type.ts index 5d5e082b2b7bb..4e45ddf434771 100644 --- a/src/plugins/vis_type_timeseries/public/metrics_type.ts +++ b/src/plugins/vis_type_timeseries/public/metrics_type.ts @@ -74,7 +74,7 @@ export const metricsVisDefinition = { }, toExpressionAst, getSupportedTriggers: () => { - return [VIS_EVENT_TO_TRIGGER.applyFilter]; + return [VIS_EVENT_TO_TRIGGER.brush]; }, inspectorAdapters: {}, getUsedIndexPattern: async (params: VisParams) => { diff --git a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.js b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.js index f22226e03a5aa..268c26115233e 100644 --- a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.js +++ b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.js @@ -45,6 +45,7 @@ export async function getSplits(resp, panel, series, meta, extractFields) { const bucket = _.get(resp, `aggregations.${series.id}.buckets.${filter.id}`); bucket.id = `${series.id}:${filter.id}`; bucket.key = filter.id; + bucket.splitByLabel = splitByLabel; bucket.color = filter.color; bucket.label = filter.label || filter.filter.query || '*'; bucket.meta = meta; diff --git a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js index e2ae404d98970..d26bfa9be893e 100644 --- a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js +++ b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js @@ -257,6 +257,7 @@ describe('getSplits(resp, panel, series)', () => { key: 'filter-1', label: '200s', meta: { bucketSize: 10 }, + splitByLabel: 'Count', color: '#F00', timeseries: { buckets: [] }, }, @@ -264,6 +265,7 @@ describe('getSplits(resp, panel, series)', () => { id: 'SERIES:filter-2', key: 'filter-2', label: '300s', + splitByLabel: 'Count', meta: { bucketSize: 10 }, color: '#0F0', timeseries: { buckets: [] }, From f042ec8945b523d327ff6629e74d282933bad5a9 Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Fri, 2 Apr 2021 09:00:51 -0400 Subject: [PATCH 069/106] [SECURITY SOLUTIONS][Timeline] correlation bug (#96099) * fix pagination bug with correlation * fix close resolver to go back to prev tab --- .../public/common/mock/global_state.ts | 1 + .../public/common/mock/timeline_results.ts | 2 + .../components/alerts_table/actions.test.tsx | 1 + .../components/open_timeline/helpers.test.ts | 8 +++ .../timelines/containers/index.test.tsx | 31 ++++++++++ .../public/timelines/containers/index.tsx | 9 ++- .../timelines/store/timeline/defaults.ts | 1 + .../timelines/store/timeline/epic.test.ts | 1 + .../timelines/store/timeline/helpers.ts | 3 + .../public/timelines/store/timeline/model.ts | 2 + .../timelines/store/timeline/reducer.test.ts | 60 ++++++++++++++++++- .../timelines/store/timeline/reducer.ts | 1 + 12 files changed, 114 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/security_solution/public/common/mock/global_state.ts b/x-pack/plugins/security_solution/public/common/mock/global_state.ts index c933afc98856b..eac8fb7f6813e 100644 --- a/x-pack/plugins/security_solution/public/common/mock/global_state.ts +++ b/x-pack/plugins/security_solution/public/common/mock/global_state.ts @@ -204,6 +204,7 @@ export const mockGlobalState: State = { timelineById: { test: { activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.notes, deletedEventIds: [], id: 'test', savedObjectId: null, 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 a9214eed60b36..5aef3b97c81b7 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 @@ -2062,6 +2062,7 @@ export const mockTimelineResults: OpenTimelineResult[] = [ export const mockTimelineModel: TimelineModel = { activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.notes, columns: [ { columnHeaderType: 'not-filtered', @@ -2209,6 +2210,7 @@ export const defaultTimelineProps: CreateTimelineProps = { from: '2018-11-05T18:58:25.937Z', timeline: { activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', id: '@timestamp', type: 'number', width: 190 }, { columnHeaderType: 'not-filtered', id: 'message', width: 180 }, 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 a8aa42a3a59ff..6eccba954a175 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 @@ -108,6 +108,7 @@ describe('alert actions', () => { notes: null, timeline: { activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/helpers.test.ts b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/helpers.test.ts index 705ddd62470a7..4d1c9e8037455 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/helpers.test.ts @@ -240,6 +240,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', @@ -350,6 +351,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false, TimelineType.template); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', @@ -460,6 +462,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false, TimelineType.default); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', @@ -568,6 +571,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', @@ -676,6 +680,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, savedObjectId: 'savedObject-1', columns: [ { @@ -852,6 +857,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, savedObjectId: 'savedObject-1', columns: [ { @@ -1000,6 +1006,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false, TimelineType.template); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', @@ -1110,6 +1117,7 @@ describe('helpers', () => { const newTimeline = defaultTimelineToTimelineModel(timeline, false, TimelineType.default); expect(newTimeline).toEqual({ activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: [ { columnHeaderType: 'not-filtered', diff --git a/x-pack/plugins/security_solution/public/timelines/containers/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/containers/index.test.tsx index 7f38de0cebbd5..b24a50a516325 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/index.test.tsx @@ -208,4 +208,35 @@ describe('useTimelineEvents', () => { ]); }); }); + + test('Correlation pagination is calling search strategy when switching page', async () => { + await act(async () => { + const { result, waitForNextUpdate, rerender } = renderHook< + UseTimelineEventsProps, + [boolean, TimelineArgs] + >((args) => useTimelineEvents(args), { + initialProps: { + ...props, + language: 'eql', + eqlOptions: { + eventCategoryField: 'category', + tiebreakerField: '', + timestampField: '@timestamp', + query: 'find it EQL', + size: 100, + }, + }, + }); + + // useEffect on params request + await waitForNextUpdate(); + rerender({ ...props, startDate, endDate }); + // useEffect on params request + await waitForNextUpdate(); + expect(mockSearch).toHaveBeenCalledTimes(2); + result.current[1].loadPage(4); + await waitForNextUpdate(); + expect(mockSearch).toHaveBeenCalledTimes(3); + }); + }); }); 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 38fa81a4fb7c2..ab4b4358fd326 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/index.tsx @@ -143,7 +143,6 @@ export const useTimelineEvents = ({ activeTimeline.setExpandedDetail({}); activeTimeline.setActivePage(newActivePage); } - setActivePage(newActivePage); }, [clearSignalsState, id] @@ -294,22 +293,22 @@ export const useTimelineEvents = ({ querySize: prevRequest?.pagination.querySize ?? 0, sort: prevRequest?.sort ?? initSortDefault, timerange: prevRequest?.timerange ?? {}, - ...(prevEqlRequest?.eventCategoryField + ...(!isEmpty(prevEqlRequest?.eventCategoryField) ? { eventCategoryField: prevEqlRequest?.eventCategoryField, } : {}), - ...(prevEqlRequest?.size + ...(!isEmpty(prevEqlRequest?.size) ? { size: prevEqlRequest?.size, } : {}), - ...(prevEqlRequest?.tiebreakerField + ...(!isEmpty(prevEqlRequest?.tiebreakerField) ? { tiebreakerField: prevEqlRequest?.tiebreakerField, } : {}), - ...(prevEqlRequest?.timestampField + ...(!isEmpty(prevEqlRequest?.timestampField) ? { timestampField: prevEqlRequest?.timestampField, } diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/defaults.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/defaults.ts index 5f9e64843573f..df79ff1d2b309 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/defaults.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/defaults.ts @@ -18,6 +18,7 @@ const { from: start, to: end } = normalizeTimeRange({ from: '', to: '' }, false) export const timelineDefaults: SubsetTimelineModel & Pick = { activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.query, columns: defaultHeaders, dataProviders: [], dateRange: { start, end }, 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 57fa86f853c8d..0bc1c5d57fa33 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 @@ -16,6 +16,7 @@ describe('Epic Timeline', () => { test('should return a TimelineInput instead of TimelineModel ', () => { const timelineModel: TimelineModel = { activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.notes, columns: [ { columnHeaderType: 'not-filtered', 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 864e52fc377a0..135cbb3f73281 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 @@ -305,6 +305,9 @@ export const updateGraphEventId = ({ [id]: { ...timeline, graphEventId, + ...(graphEventId === '' && id === TimelineId.active + ? { activeTab: timeline.prevActiveTab, prevActiveTab: timeline.activeTab } + : {}), }, }; }; diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/model.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/model.ts index b1ff4a1e89729..a899994ad4aab 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/model.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/model.ts @@ -51,6 +51,7 @@ export interface ColumnHeaderOptions { export interface TimelineModel { /** The selected tab to displayed in the timeline */ activeTab: TimelineTabs; + prevActiveTab: TimelineTabs; /** The columns displayed in the timeline */ columns: ColumnHeaderOptions[]; /** Timeline saved object owner */ @@ -142,6 +143,7 @@ export type SubsetTimelineModel = Readonly< Pick< TimelineModel, | 'activeTab' + | 'prevActiveTab' | 'columns' | 'dataProviders' | 'deletedEventIds' 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 acdf064c2355f..e464637c469f8 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 @@ -6,7 +6,12 @@ */ import { cloneDeep } from 'lodash/fp'; -import { TimelineType, TimelineStatus, TimelineTabs } from '../../../../common/types/timeline'; +import { + TimelineType, + TimelineStatus, + TimelineTabs, + TimelineId, +} from '../../../../common/types/timeline'; import { IS_OPERATOR, @@ -39,6 +44,7 @@ import { updateTimelineSort, updateTimelineTitleAndDescription, upsertTimelineColumn, + updateGraphEventId, } from './helpers'; import { ColumnHeaderOptions, TimelineModel } from './model'; import { timelineDefaults } from './defaults'; @@ -69,6 +75,7 @@ const basicDataProvider: DataProvider = { }; const basicTimeline: TimelineModel = { activeTab: TimelineTabs.query, + prevActiveTab: TimelineTabs.graph, columns: [], dataProviders: [{ ...basicDataProvider }], dateRange: { @@ -1757,4 +1764,55 @@ describe('Timeline', () => { ]); }); }); + + describe('#updateGraphEventId', () => { + test('should return a new reference and not the same reference', () => { + const update = updateGraphEventId({ + id: 'foo', + graphEventId: '123', + timelineById: timelineByIdMock, + }); + expect(update).not.toBe(timelineByIdMock); + }); + + test('should empty graphEventId', () => { + const update = updateGraphEventId({ + id: 'foo', + graphEventId: '', + timelineById: timelineByIdMock, + }); + expect(update.foo.graphEventId).toEqual(''); + }); + + test('should empty graphEventId and not change activeTab and prevActiveTab because TimelineId !== TimelineId.active', () => { + const update = updateGraphEventId({ + id: 'foo', + graphEventId: '', + timelineById: timelineByIdMock, + }); + expect(update.foo.graphEventId).toEqual(''); + expect(update.foo.activeTab).toEqual(timelineByIdMock.foo.activeTab); + expect(update.foo.prevActiveTab).toEqual(timelineByIdMock.foo.prevActiveTab); + }); + + test('should empty graphEventId and return to the previous tab if TimelineId === TimelineId.active', () => { + const mock = cloneDeep(timelineByIdMock); + mock[TimelineId.active] = { + ...timelineByIdMock.foo, + activeTab: TimelineTabs.graph, + prevActiveTab: TimelineTabs.eql, + }; + delete mock.foo; + + const update = updateGraphEventId({ + id: TimelineId.active, + graphEventId: '', + timelineById: mock, + }); + + expect(update[TimelineId.active].graphEventId).toEqual(''); + expect(update[TimelineId.active].activeTab).toEqual(TimelineTabs.eql); + expect(update[TimelineId.active].prevActiveTab).toEqual(TimelineTabs.graph); + }); + }); }); diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.ts index 332d9ad4ba91b..80c6d83075719 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.ts @@ -526,6 +526,7 @@ export const timelineReducer = reducerWithInitialState(initialTimelineState) [id]: { ...state.timelineById[id], activeTab, + prevActiveTab: state.timelineById[id].activeTab, }, }, })) From 3237fd063765bc95a9b3b5db0f7fc672bcf495f1 Mon Sep 17 00:00:00 2001 From: Constance Date: Fri, 2 Apr 2021 06:05:53 -0700 Subject: [PATCH 070/106] [Enterprise Search] Fix eslint import rule not ordering sibling mocks with parent mocks (#96070) * Enterprise Search eslint import order rule fix - mocks in current folder should be grouped with mocks from parent folders * Run --fix/update instances of importing ./__mocks__ --- .eslintrc.js | 2 +- .../search_experience/search_experience_content.test.tsx | 2 +- .../shared/role_mapping/role_mappings_table.test.tsx | 4 ++-- .../workplace_search/views/groups/group_logic.test.ts | 2 +- .../workplace_search/views/groups/groups_logic.test.ts | 2 +- .../workplace_search/views/overview/onboarding_steps.test.tsx | 3 +-- .../views/overview/organization_stats.test.tsx | 2 +- .../workplace_search/views/overview/overview.test.tsx | 2 +- .../workplace_search/views/overview/overview_logic.test.ts | 2 +- .../workplace_search/views/overview/recent_activity.test.tsx | 3 +-- .../views/overview_mvp/onboarding_steps.test.tsx | 3 +-- .../views/overview_mvp/organization_stats.test.tsx | 2 +- .../workplace_search/views/overview_mvp/overview.test.tsx | 2 +- .../views/overview_mvp/overview_logic.test.ts | 2 +- .../views/overview_mvp/recent_activity.test.tsx | 3 +-- 15 files changed, 16 insertions(+), 20 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a7b45534391c0..65c8e8ee2e694 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1180,7 +1180,7 @@ module.exports = { pathGroups: [ { pattern: - '{../../../../../../,../../../../../,../../../../,../../../,../../,../}{common/,*}__mocks__{*,/**}', + '{../../../../../../,../../../../../,../../../../,../../../,../../,../,./}{common/,*}__mocks__{*,/**}', group: 'unknown', }, { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/search_experience_content.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/search_experience_content.test.tsx index 49f51c2010e3a..96fcd8997f674 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/search_experience_content.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/search_experience_content.test.tsx @@ -6,6 +6,7 @@ */ import { setMockValues } from '../../../../__mocks__/kea.mock'; +import { setMockSearchContextState } from './__mocks__/hooks.mock'; import React from 'react'; @@ -16,7 +17,6 @@ import { Results } from '@elastic/react-search-ui'; import { SchemaTypes } from '../../../../shared/types'; -import { setMockSearchContextState } from './__mocks__/hooks.mock'; import { Pagination } from './pagination'; import { SearchExperienceContent } from './search_experience_content'; import { ResultView } from './views'; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.test.tsx index 5589309d00ef8..e1c43dca581fe 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.test.tsx @@ -5,14 +5,14 @@ * 2.0. */ +import { wsRoleMapping, asRoleMapping } from './__mocks__/roles'; + import React from 'react'; import { shallow } from 'enzyme'; import { EuiFieldSearch, EuiTableRow } from '@elastic/eui'; -import { wsRoleMapping, asRoleMapping } from './__mocks__/roles'; - import { ALL_LABEL, ANY_AUTH_PROVIDER_OPTION_LABEL } from './constants'; import { RoleMappingsTable } from './role_mappings_table'; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/group_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/group_logic.test.ts index 836efa82995fc..9f12e8f202d50 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/group_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/group_logic.test.ts @@ -12,12 +12,12 @@ import { mockHttpValues, } from '../../../__mocks__'; import { groups } from '../../__mocks__/groups.mock'; +import { mockGroupValues } from './__mocks__/group_logic.mock'; import { nextTick } from '@kbn/test/jest'; import { GROUPS_PATH } from '../../routes'; -import { mockGroupValues } from './__mocks__/group_logic.mock'; import { GroupLogic } from './group_logic'; describe('GroupLogic', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups_logic.test.ts index 806c6e1c69f84..bb6e7c0c76faf 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups_logic.test.ts @@ -9,13 +9,13 @@ import { LogicMounter, mockFlashMessageHelpers, mockHttpValues } from '../../../ import { contentSources } from '../../__mocks__/content_sources.mock'; import { groups } from '../../__mocks__/groups.mock'; import { users } from '../../__mocks__/users.mock'; +import { mockGroupsValues } from './__mocks__/groups_logic.mock'; import { nextTick } from '@kbn/test/jest'; import { JSON_HEADER as headers } from '../../../../../common/constants'; import { DEFAULT_META } from '../../../shared/constants'; -import { mockGroupsValues } from './__mocks__/groups_logic.mock'; import { GroupsLogic } from './groups_logic'; // We need to mock out the debounced functionality diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_steps.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_steps.test.tsx index 7a368e7d384ea..5059533519a6f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_steps.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_steps.test.tsx @@ -6,7 +6,7 @@ */ import { mockTelemetryActions } from '../../../__mocks__'; - +import { setMockValues } from './__mocks__'; import './__mocks__/overview_logic.mock'; import React from 'react'; @@ -15,7 +15,6 @@ import { shallow } from 'enzyme'; import { SOURCES_PATH, USERS_PATH } from '../../routes'; -import { setMockValues } from './__mocks__'; import { OnboardingCard } from './onboarding_card'; import { OnboardingSteps, OrgNameOnboarding } from './onboarding_steps'; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.test.tsx index 412977f18fadf..110557ac4087a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/organization_stats.test.tsx @@ -5,6 +5,7 @@ * 2.0. */ +import { setMockValues } from './__mocks__'; import './__mocks__/overview_logic.mock'; import React from 'react'; @@ -13,7 +14,6 @@ import { shallow } from 'enzyme'; import { EuiFlexGrid } from '@elastic/eui'; -import { setMockValues } from './__mocks__'; import { OrganizationStats } from './organization_stats'; import { StatisticCard } from './statistic_card'; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview.test.tsx index 2ec2d949ff491..19c893bec81ea 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview.test.tsx @@ -7,6 +7,7 @@ import '../../../__mocks__/react_router_history.mock'; import './__mocks__/overview_logic.mock'; +import { mockActions, setMockValues } from './__mocks__'; import React from 'react'; @@ -15,7 +16,6 @@ import { shallow, mount } from 'enzyme'; import { Loading } from '../../../shared/loading'; import { ViewContentHeader } from '../../components/shared/view_content_header'; -import { mockActions, setMockValues } from './__mocks__'; import { OnboardingSteps } from './onboarding_steps'; import { OrganizationStats } from './organization_stats'; import { Overview } from './overview'; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview_logic.test.ts index 0e84315104343..75a41216ffbb7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/overview_logic.test.ts @@ -6,8 +6,8 @@ */ import { LogicMounter, mockHttpValues } from '../../../__mocks__'; - import { mockOverviewValues } from './__mocks__'; + import { OverviewLogic } from './overview_logic'; describe('OverviewLogic', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.test.tsx index 9ab7b908ad3cd..3a925f011cc18 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/recent_activity.test.tsx @@ -6,7 +6,7 @@ */ import { mockTelemetryActions } from '../../../__mocks__'; - +import { setMockValues } from './__mocks__'; import './__mocks__/overview_logic.mock'; import React from 'react'; @@ -18,7 +18,6 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { EuiLinkTo } from '../../../shared/react_router_helpers'; -import { setMockValues } from './__mocks__'; import { RecentActivity, RecentActivityItem } from './recent_activity'; const organization = { name: 'foo', defaultOrgName: 'bar' }; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/onboarding_steps.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/onboarding_steps.test.tsx index 7a368e7d384ea..5059533519a6f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/onboarding_steps.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/onboarding_steps.test.tsx @@ -6,7 +6,7 @@ */ import { mockTelemetryActions } from '../../../__mocks__'; - +import { setMockValues } from './__mocks__'; import './__mocks__/overview_logic.mock'; import React from 'react'; @@ -15,7 +15,6 @@ import { shallow } from 'enzyme'; import { SOURCES_PATH, USERS_PATH } from '../../routes'; -import { setMockValues } from './__mocks__'; import { OnboardingCard } from './onboarding_card'; import { OnboardingSteps, OrgNameOnboarding } from './onboarding_steps'; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/organization_stats.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/organization_stats.test.tsx index 412977f18fadf..110557ac4087a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/organization_stats.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/organization_stats.test.tsx @@ -5,6 +5,7 @@ * 2.0. */ +import { setMockValues } from './__mocks__'; import './__mocks__/overview_logic.mock'; import React from 'react'; @@ -13,7 +14,6 @@ import { shallow } from 'enzyme'; import { EuiFlexGrid } from '@elastic/eui'; -import { setMockValues } from './__mocks__'; import { OrganizationStats } from './organization_stats'; import { StatisticCard } from './statistic_card'; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview.test.tsx index 2ec2d949ff491..19c893bec81ea 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview.test.tsx @@ -7,6 +7,7 @@ import '../../../__mocks__/react_router_history.mock'; import './__mocks__/overview_logic.mock'; +import { mockActions, setMockValues } from './__mocks__'; import React from 'react'; @@ -15,7 +16,6 @@ import { shallow, mount } from 'enzyme'; import { Loading } from '../../../shared/loading'; import { ViewContentHeader } from '../../components/shared/view_content_header'; -import { mockActions, setMockValues } from './__mocks__'; import { OnboardingSteps } from './onboarding_steps'; import { OrganizationStats } from './organization_stats'; import { Overview } from './overview'; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview_logic.test.ts index 0e84315104343..75a41216ffbb7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/overview_logic.test.ts @@ -6,8 +6,8 @@ */ import { LogicMounter, mockHttpValues } from '../../../__mocks__'; - import { mockOverviewValues } from './__mocks__'; + import { OverviewLogic } from './overview_logic'; describe('OverviewLogic', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/recent_activity.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/recent_activity.test.tsx index 0b62207afc520..7213526c8864a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/recent_activity.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview_mvp/recent_activity.test.tsx @@ -6,7 +6,7 @@ */ import { mockTelemetryActions } from '../../../__mocks__'; - +import { setMockValues } from './__mocks__'; import './__mocks__/overview_logic.mock'; import React from 'react'; @@ -16,7 +16,6 @@ import { shallow } from 'enzyme'; import { EuiEmptyPrompt, EuiLink } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { setMockValues } from './__mocks__'; import { RecentActivity, RecentActivityItem } from './recent_activity'; const organization = { name: 'foo', defaultOrgName: 'bar' }; From fe3ec69f9e62f95ba370360603988591f74344d2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Apr 2021 16:01:06 +0200 Subject: [PATCH 071/106] Update dependency @elastic/charts to v27 (#95963) 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 deb8bc24319f6..34e044140d297 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,7 @@ "dependencies": { "@elastic/apm-rum": "^5.6.1", "@elastic/apm-rum-react": "^1.2.5", - "@elastic/charts": "26.1.0", + "@elastic/charts": "27.0.0", "@elastic/datemath": "link:bazel-bin/packages/elastic-datemath/npm_module", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@^8.0.0-canary.4", "@elastic/ems-client": "7.12.0", diff --git a/yarn.lock b/yarn.lock index a7e5b0bbfe4dd..832a8561bd71c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1359,10 +1359,10 @@ dependencies: object-hash "^1.3.0" -"@elastic/charts@26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-26.1.0.tgz#3c8677d84e52ac7209aee19484fb2b7e2a22e5cc" - integrity sha512-RiidG+9QIn17o5AW8cntrznH+MaOO8gIAwrkJW1EMInntZgEA66WhVs4Kg2Negp6hsPMMeArQVWbDhXE9ST3qg== +"@elastic/charts@27.0.0": + version "27.0.0" + resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-27.0.0.tgz#cc6ea80dc90d07cfad0a932200cad2f6b217f7b8" + integrity sha512-gnLT+htGgcYzPUpa3NTBQyD8bw7t+0aAxdpVnBL7fZ0TdbX0xQ7u1yPEI9ljMbGguiVJMKoI1KMVLI49E3f1bg== dependencies: "@popperjs/core" "^2.4.0" chroma-js "^2.1.0" From 8fef5fd9e1289b7e383f8ab7e39faa5f4126386b Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Fri, 2 Apr 2021 11:06:31 -0400 Subject: [PATCH 072/106] [ML] Data Frame Analytics: adds support for runtime fields (#95734) * add runtime mapping editor in wizard * ensure depVar is updated correctly with RF changes * remove old RF from includes * ensure cloning works with RF as depVar * ensure indexPattern RF work * scatterplot supports RTF. depVar options have indexPattern RTF on first load * remove unnecessary types * ensure supported fields included by default * update types in editor * use isRuntimeMappings * fix translations. ensure runtimeMappings persist when going back to step 1 * ensure histograms support runtime fields * update types --- .../ml/common/types/data_frame_analytics.ts | 3 + x-pack/plugins/ml/common/types/fields.ts | 4 +- .../components/data_grid/common.ts | 51 +-- .../application/components/data_grid/index.ts | 2 +- .../scatterplot_matrix/scatterplot_matrix.tsx | 14 + .../configuration_step/configuration_step.tsx | 14 +- .../configuration_step_form.tsx | 332 ++++++++++++------ .../form_options_validation.ts | 67 +++- .../components/runtime_mappings/index.ts | 8 + .../runtime_mappings/runtime_mappings.tsx | 237 +++++++++++++ .../runtime_mappings_editor.tsx | 82 +++++ .../hooks/use_index_data.ts | 83 ++++- .../pages/analytics_creation/page.tsx | 1 + .../action_clone/clone_action_name.tsx | 5 + .../use_create_analytics_form/reducer.ts | 8 +- .../hooks/use_create_analytics_form/state.ts | 12 + .../index_based/data_loader/data_loader.ts | 5 +- .../routes/schemas/data_analytics_schema.ts | 3 + .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 2 - 20 files changed, 767 insertions(+), 167 deletions(-) create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/index.ts create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings.tsx create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings_editor.tsx diff --git a/x-pack/plugins/ml/common/types/data_frame_analytics.ts b/x-pack/plugins/ml/common/types/data_frame_analytics.ts index 8686e3d64037e..d9632f4d4a83b 100644 --- a/x-pack/plugins/ml/common/types/data_frame_analytics.ts +++ b/x-pack/plugins/ml/common/types/data_frame_analytics.ts @@ -6,6 +6,8 @@ */ import Boom from '@hapi/boom'; +import { RuntimeMappings } from './fields'; + import { EsErrorBody } from '../util/errors'; import { ANALYSIS_CONFIG_TYPE } from '../constants/data_frame_analytics'; import { DATA_FRAME_TASK_STATE } from '../constants/data_frame_analytics'; @@ -74,6 +76,7 @@ export interface DataFrameAnalyticsConfig { source: { index: IndexName | IndexName[]; query?: any; + runtime_mappings?: RuntimeMappings; }; analysis: AnalysisConfig; analyzed_fields: { diff --git a/x-pack/plugins/ml/common/types/fields.ts b/x-pack/plugins/ml/common/types/fields.ts index f9f7f8fc7ead6..8dfe9d111ed38 100644 --- a/x-pack/plugins/ml/common/types/fields.ts +++ b/x-pack/plugins/ml/common/types/fields.ts @@ -109,8 +109,8 @@ export interface AggCardinality { export type RollupFields = Record]>; // Replace this with import once #88995 is merged -const RUNTIME_FIELD_TYPES = ['keyword', 'long', 'double', 'date', 'ip', 'boolean'] as const; -type RuntimeType = typeof RUNTIME_FIELD_TYPES[number]; +export const RUNTIME_FIELD_TYPES = ['keyword', 'long', 'double', 'date', 'ip', 'boolean'] as const; +export type RuntimeType = typeof RUNTIME_FIELD_TYPES[number]; export interface RuntimeField { type: RuntimeType; diff --git a/x-pack/plugins/ml/public/application/components/data_grid/common.ts b/x-pack/plugins/ml/public/application/components/data_grid/common.ts index 312776f0d6a07..d3e58c4d7bb0d 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/common.ts +++ b/x-pack/plugins/ml/public/application/components/data_grid/common.ts @@ -49,9 +49,8 @@ import { getNestedProperty } from '../../util/object_utils'; import { mlFieldFormatService } from '../../services/field_format_service'; import { DataGridItem, IndexPagination, RenderCellValue } from './types'; -import type { RuntimeField } from '../../../../../../../src/plugins/data/common/index_patterns'; -import { RuntimeMappings } from '../../../../common/types/fields'; -import { isPopulatedObject } from '../../../../common/util/object_utils'; +import { RuntimeMappings, RuntimeField } from '../../../../common/types/fields'; +import { isRuntimeMappings } from '../../../../common/util/runtime_field_utils'; export const INIT_MAX_COLUMNS = 10; export const COLUMN_CHART_DEFAULT_VISIBILITY_ROWS_THRESHOLED = 10000; @@ -94,34 +93,36 @@ export const getFieldsFromKibanaIndexPattern = (indexPattern: IndexPattern): str /** * Return a map of runtime_mappings for each of the index pattern field provided * to provide in ES search queries - * @param indexPatternFields * @param indexPattern - * @param clonedRuntimeMappings + * @param RuntimeMappings */ -export const getRuntimeFieldsMapping = ( - indexPatternFields: string[] | undefined, +export function getCombinedRuntimeMappings( indexPattern: IndexPattern | undefined, - clonedRuntimeMappings?: RuntimeMappings -) => { - if (!Array.isArray(indexPatternFields) || indexPattern === undefined) return {}; - const ipRuntimeMappings = indexPattern.getComputedFields().runtimeFields; - let combinedRuntimeMappings: RuntimeMappings = {}; - - if (isPopulatedObject(ipRuntimeMappings)) { - indexPatternFields.forEach((ipField) => { - if (ipRuntimeMappings.hasOwnProperty(ipField)) { - // @ts-expect-error - combinedRuntimeMappings[ipField] = ipRuntimeMappings[ipField]; + runtimeMappings?: RuntimeMappings +): RuntimeMappings | undefined { + let combinedRuntimeMappings = {}; + + // And runtime field mappings defined by index pattern + if (indexPattern) { + const computedFields = indexPattern?.getComputedFields(); + if (computedFields?.runtimeFields !== undefined) { + const indexPatternRuntimeMappings = computedFields.runtimeFields; + if (isRuntimeMappings(indexPatternRuntimeMappings)) { + combinedRuntimeMappings = { ...combinedRuntimeMappings, ...indexPatternRuntimeMappings }; } - }); + } } - if (isPopulatedObject(clonedRuntimeMappings)) { - combinedRuntimeMappings = { ...combinedRuntimeMappings, ...clonedRuntimeMappings }; + + // Use runtime field mappings defined inline from API + // and override fields with same name from index pattern + if (isRuntimeMappings(runtimeMappings)) { + combinedRuntimeMappings = { ...combinedRuntimeMappings, ...runtimeMappings }; } - return Object.keys(combinedRuntimeMappings).length > 0 - ? { runtime_mappings: combinedRuntimeMappings } - : {}; -}; + + if (isRuntimeMappings(combinedRuntimeMappings)) { + return combinedRuntimeMappings; + } +} export interface FieldTypes { [key: string]: ES_FIELD_TYPES; diff --git a/x-pack/plugins/ml/public/application/components/data_grid/index.ts b/x-pack/plugins/ml/public/application/components/data_grid/index.ts index be37e381d1bae..481ff432e0156 100644 --- a/x-pack/plugins/ml/public/application/components/data_grid/index.ts +++ b/x-pack/plugins/ml/public/application/components/data_grid/index.ts @@ -10,7 +10,7 @@ export { getDataGridSchemaFromESFieldType, getDataGridSchemaFromKibanaFieldType, getFieldsFromKibanaIndexPattern, - getRuntimeFieldsMapping, + getCombinedRuntimeMappings, multiColumnSortFactory, showDataGridColumnChartErrorMessageToast, useRenderCellValue, diff --git a/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx b/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx index 842d5fc1ae87a..bc76020d19649 100644 --- a/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx +++ b/x-pack/plugins/ml/public/application/components/scatterplot_matrix/scatterplot_matrix.tsx @@ -24,9 +24,13 @@ import { import { i18n } from '@kbn/i18n'; +import { IndexPattern } from '../../../../../../../src/plugins/data/public'; import { extractErrorMessage } from '../../../../common'; +import { isRuntimeMappings } from '../../../../common/util/runtime_field_utils'; import { stringHash } from '../../../../common/util/string_utils'; +import { RuntimeMappings } from '../../../../common/types/fields'; import type { ResultsSearchQuery } from '../../data_frame_analytics/common/analytics'; +import { getCombinedRuntimeMappings } from '../../components/data_grid'; import { useMlApiContext } from '../../contexts/kibana'; @@ -84,6 +88,8 @@ export interface ScatterplotMatrixProps { color?: string; legendType?: LegendType; searchQuery?: ResultsSearchQuery; + runtimeMappings?: RuntimeMappings; + indexPattern?: IndexPattern; } export const ScatterplotMatrix: FC = ({ @@ -93,6 +99,8 @@ export const ScatterplotMatrix: FC = ({ color, legendType, searchQuery, + runtimeMappings, + indexPattern, }) => { const { esSearch } = useMlApiContext(); @@ -185,6 +193,9 @@ export const ScatterplotMatrix: FC = ({ } : searchQuery; + const combinedRuntimeMappings = + indexPattern && getCombinedRuntimeMappings(indexPattern, runtimeMappings); + const resp: estypes.SearchResponse = await esSearch({ index, body: { @@ -193,6 +204,9 @@ export const ScatterplotMatrix: FC = ({ query, from: 0, size: fetchSize, + ...(isRuntimeMappings(combinedRuntimeMappings) + ? { runtime_mappings: combinedRuntimeMappings } + : {}), }, }); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step.tsx index 3b9c84e2fa51a..710fd49f72fb6 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step.tsx @@ -13,12 +13,17 @@ import { ConfigurationStepDetails } from './configuration_step_details'; import { ConfigurationStepForm } from './configuration_step_form'; import { ANALYTICS_STEPS } from '../../page'; -export const ConfigurationStep: FC = ({ +export interface ConfigurationStepProps extends CreateAnalyticsStepProps { + isClone: boolean; +} + +export const ConfigurationStep: FC = ({ actions, state, setCurrentStep, step, stepActivated, + isClone, }) => { const showForm = step === ANALYTICS_STEPS.CONFIGURATION; const showDetails = step !== ANALYTICS_STEPS.CONFIGURATION && stepActivated === true; @@ -30,7 +35,12 @@ export const ConfigurationStep: FC = ({ return ( {showForm && ( - + )} {showDetails && } diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx index 36d3de1376373..1046f1a8c3e92 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/configuration_step/configuration_step_form.tsx @@ -5,10 +5,9 @@ * 2.0. */ -import React, { FC, Fragment, useEffect, useMemo, useRef, useState } from 'react'; +import React, { FC, Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { EuiBadge, - EuiCallOut, EuiComboBox, EuiComboBoxOptionOption, EuiFormRow, @@ -18,11 +17,11 @@ import { EuiText, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { debounce } from 'lodash'; +import { debounce, cloneDeep } from 'lodash'; -import { FormattedMessage } from '@kbn/i18n/react'; import { newJobCapsService } from '../../../../../services/new_job_capabilities_service'; import { useMlContext } from '../../../../../contexts/ml'; +import { getCombinedRuntimeMappings } from '../../../../../components/data_grid/common'; import { ANALYSIS_CONFIG_TYPE, @@ -31,13 +30,18 @@ import { FieldSelectionItem, } from '../../../../common/analytics'; import { getScatterplotMatrixLegendType } from '../../../../common/get_scatterplot_matrix_legend_type'; -import { CreateAnalyticsStepProps } from '../../../analytics_management/hooks/use_create_analytics_form'; +import { RuntimeMappings as RuntimeMappingsType } from '../../../../../../../common/types/fields'; +import { + isRuntimeMappings, + isRuntimeField, +} from '../../../../../../../common/util/runtime_field_utils'; +import { AnalyticsJobType } from '../../../analytics_management/hooks/use_create_analytics_form/state'; import { Messages } from '../shared'; import { DEFAULT_MODEL_MEMORY_LIMIT, State, } from '../../../analytics_management/hooks/use_create_analytics_form/state'; -import { shouldAddAsDepVarOption } from './form_options_validation'; +import { handleExplainErrorMessage, shouldAddAsDepVarOption } from './form_options_validation'; import { getToastNotifications } from '../../../../../util/dependency_cache'; import { ANALYTICS_STEPS } from '../../page'; @@ -55,6 +59,18 @@ import { ExplorationQueryBarProps } from '../../../analytics_exploration/compone import { Query } from '../../../../../../../../../../src/plugins/data/common/query'; import { ScatterplotMatrix } from '../../../../../components/scatterplot_matrix'; +import { RuntimeMappings } from '../runtime_mappings'; +import { ConfigurationStepProps } from './configuration_step'; + +const runtimeMappingKey = 'runtime_mapping'; +const notIncludedReason = 'field not in includes list'; +const requiredFieldsErrorText = i18n.translate( + 'xpack.ml.dataframe.analytics.createWizard.requiredFieldsErrorMessage', + { + defaultMessage: + 'At least one field must be included in the analysis in addition to the dependent variable.', + } +); function getIndexDataQuery(savedSearchQuery: SavedSearchQuery, jobConfigQuery: any) { // Return `undefined` if savedSearchQuery itself is `undefined`, meaning it hasn't been initialized yet. @@ -65,18 +81,23 @@ function getIndexDataQuery(savedSearchQuery: SavedSearchQuery, jobConfigQuery: a return savedSearchQuery !== null ? savedSearchQuery : jobConfigQuery; } -const requiredFieldsErrorText = i18n.translate( - 'xpack.ml.dataframe.analytics.createWizard.requiredFieldsErrorMessage', - { - defaultMessage: - 'At least one field must be included in the analysis in addition to the dependent variable.', - } -); - -const maxRuntimeFieldsDisplayCount = 5; +function getRuntimeDepVarOptions(jobType: AnalyticsJobType, runtimeMappings: RuntimeMappingsType) { + const runtimeOptions: EuiComboBoxOptionOption[] = []; + Object.keys(runtimeMappings).forEach((id) => { + const field = runtimeMappings[id]; + if (isRuntimeField(field) && shouldAddAsDepVarOption(id, field.type, jobType)) { + runtimeOptions.push({ + label: id, + key: `runtime_mapping_${id}`, + }); + } + }); + return runtimeOptions; +} -export const ConfigurationStepForm: FC = ({ +export const ConfigurationStepForm: FC = ({ actions, + isClone, state, setCurrentStep, }) => { @@ -100,7 +121,7 @@ export const ConfigurationStepForm: FC = ({ >(); const { setEstimatedModelMemoryLimit, setFormState } = actions; - const { estimatedModelMemoryLimit, form, isJobCreated, requestMessages } = state; + const { cloneJob, estimatedModelMemoryLimit, form, isJobCreated, requestMessages } = state; const firstUpdate = useRef(true); const { dependentVariable, @@ -111,10 +132,22 @@ export const ConfigurationStepForm: FC = ({ modelMemoryLimit, previousJobType, requiredFieldsError, + runtimeMappings, + previousRuntimeMapping, + runtimeMappingsUpdated, sourceIndex, trainingPercent, useEstimatedMml, } = form; + + const isJobTypeWithDepVar = + jobType === ANALYSIS_CONFIG_TYPE.REGRESSION || jobType === ANALYSIS_CONFIG_TYPE.CLASSIFICATION; + const dependentVariableEmpty = isJobTypeWithDepVar && dependentVariable === ''; + const hasBasicRequiredFields = jobType !== undefined; + const hasRequiredAnalysisFields = + (isJobTypeWithDepVar && dependentVariable !== '') || + jobType === ANALYSIS_CONFIG_TYPE.OUTLIER_DETECTION; + const [query, setQuery] = useState({ query: jobConfigQueryString ?? '', language: SEARCH_QUERY_LANGUAGE.KUERY, @@ -132,7 +165,8 @@ export const ConfigurationStepForm: FC = ({ const indexData = useIndexData( currentIndexPattern, getIndexDataQuery(savedSearchQuery, jobConfigQuery), - toastNotifications + toastNotifications, + runtimeMappings ); const indexPreviewProps = { @@ -141,11 +175,6 @@ export const ConfigurationStepForm: FC = ({ toastNotifications, }; - const isJobTypeWithDepVar = - jobType === ANALYSIS_CONFIG_TYPE.REGRESSION || jobType === ANALYSIS_CONFIG_TYPE.CLASSIFICATION; - - const dependentVariableEmpty = isJobTypeWithDepVar && dependentVariable === ''; - const isStepInvalid = dependentVariableEmpty || jobType === undefined || @@ -155,20 +184,23 @@ export const ConfigurationStepForm: FC = ({ unsupportedFieldsError !== undefined || fetchingExplainData; - const loadDepVarOptions = async (formState: State['form']) => { + const loadDepVarOptions = async ( + formState: State['form'], + runtimeOptions: EuiComboBoxOptionOption[] = [] + ) => { setLoadingDepVarOptions(true); setMaxDistinctValuesError(undefined); try { if (currentIndexPattern !== undefined) { const depVarOptions = []; - let depVarUpdate = dependentVariable; + let depVarUpdate = formState.dependentVariable; // Get fields and filter for supported types for job type const { fields } = newJobCapsService; let resetDependentVariable = true; for (const field of fields) { - if (shouldAddAsDepVarOption(field, jobType)) { + if (shouldAddAsDepVarOption(field.id, field.type, jobType)) { depVarOptions.push({ label: field.id, }); @@ -179,10 +211,21 @@ export const ConfigurationStepForm: FC = ({ } } + if ( + isRuntimeMappings(formState.runtimeMappings) && + Object.keys(formState.runtimeMappings).includes(form.dependentVariable) + ) { + resetDependentVariable = false; + depVarOptions.push({ + label: form.dependentVariable, + key: `runtime_mapping_${form.dependentVariable}`, + }); + } + if (resetDependentVariable) { depVarUpdate = ''; } - setDependentVariableOptions(depVarOptions); + setDependentVariableOptions([...runtimeOptions, ...depVarOptions]); setLoadingDepVarOptions(false); setDependentVariableFetchFail(false); setFormState({ dependentVariable: depVarUpdate }); @@ -209,8 +252,23 @@ export const ConfigurationStepForm: FC = ({ if (jobTypeChanged) { setLoadingFieldOptions(true); } + // Ensure runtime field is in 'includes' table if it is set as dependent variable + const depVarIsRuntimeField = + isJobTypeWithDepVar && + runtimeMappings && + Object.keys(runtimeMappings).includes(dependentVariable) && + includes.length > 0 && + includes.includes(dependentVariable) === false; + let formToUse = form; + + if (depVarIsRuntimeField) { + formToUse = cloneDeep(form); + formToUse.includes = [...includes, dependentVariable]; + } - const { success, expectedMemory, fieldSelection, errorMessage } = await fetchExplainData(form); + const { success, expectedMemory, fieldSelection, errorMessage } = await fetchExplainData( + formToUse + ); if (success) { if (shouldUpdateEstimatedMml) { @@ -226,53 +284,33 @@ export const ConfigurationStepForm: FC = ({ setFieldOptionsFetchFail(false); setMaxDistinctValuesError(undefined); setUnsupportedFieldsError(undefined); - setIncludesTableItems(fieldSelection ? fieldSelection : []); setFormState({ ...(shouldUpdateModelMemoryLimit ? { modelMemoryLimit: expectedMemory } : {}), requiredFieldsError: !hasRequiredFields ? requiredFieldsErrorText : undefined, + includes: formToUse.includes, }); + setIncludesTableItems(fieldSelection ? fieldSelection : []); } else { setFormState({ ...(shouldUpdateModelMemoryLimit ? { modelMemoryLimit: expectedMemory } : {}), requiredFieldsError: !hasRequiredFields ? requiredFieldsErrorText : undefined, + includes: formToUse.includes, }); } setFetchingExplainData(false); } else { - let maxDistinctValuesErrorMessage; - let unsupportedFieldsErrorMessage; - if ( - jobType === ANALYSIS_CONFIG_TYPE.CLASSIFICATION && - (errorMessage.includes('must have at most') || errorMessage.includes('must have at least')) - ) { - maxDistinctValuesErrorMessage = errorMessage; - } else if ( - errorMessage.includes('status_exception') && - errorMessage.includes('unsupported type') - ) { - unsupportedFieldsErrorMessage = errorMessage; - } else if ( - errorMessage.includes('status_exception') && - errorMessage.includes('Unable to estimate memory usage as no documents') - ) { - toastNotifications.addWarning( - i18n.translate('xpack.ml.dataframe.analytics.create.allDocsMissingFieldsErrorMessage', { - defaultMessage: `Unable to estimate memory usage. There are mapped fields for source index [{index}] that do not exist in any indexed documents. You will have to switch to the JSON editor for explicit field selection and include only fields that exist in indexed documents.`, - values: { - index: sourceIndex, - }, - }) - ); - } else { - toastNotifications.addDanger({ - title: i18n.translate( - 'xpack.ml.dataframe.analytics.create.unableToFetchExplainDataMessage', - { - defaultMessage: 'An error occurred fetching analysis fields data.', - } - ), - text: errorMessage, - }); + const { + maxDistinctValuesErrorMessage, + unsupportedFieldsErrorMessage, + toastNotificationDanger, + toastNotificationWarning, + } = handleExplainErrorMessage(errorMessage, sourceIndex, jobType); + + if (toastNotificationDanger) { + toastNotifications.addDanger(toastNotificationDanger); + } + if (toastNotificationWarning) { + toastNotifications.addWarning(toastNotificationWarning); } const fallbackModelMemoryLimit = @@ -304,17 +342,126 @@ export const ConfigurationStepForm: FC = ({ useEffect(() => { if (isJobTypeWithDepVar) { - loadDepVarOptions(form); + const indexPatternRuntimeFields = getCombinedRuntimeMappings(currentIndexPattern); + let runtimeOptions; + + if (indexPatternRuntimeFields) { + runtimeOptions = getRuntimeDepVarOptions(jobType, indexPatternRuntimeFields); + } + + loadDepVarOptions(form, runtimeOptions); } }, [jobType]); - useEffect(() => { - const hasBasicRequiredFields = jobType !== undefined; + const handleRuntimeUpdate = useCallback(async () => { + if (runtimeMappingsUpdated) { + // Update dependent variable options + let resetDepVar = false; + if (isJobTypeWithDepVar) { + const filteredOptions = dependentVariableOptions.filter((option) => { + if (option.label === dependentVariable && option.key?.includes(runtimeMappingKey)) { + resetDepVar = true; + } + return !option.key?.includes(runtimeMappingKey); + }); + // Runtime mappings have been removed + if (runtimeMappings === undefined && runtimeMappingsUpdated === true) { + setDependentVariableOptions(filteredOptions); + } else if (runtimeMappings) { + // add to filteredOptions if it's the type supported + const runtimeOptions = getRuntimeDepVarOptions(jobType, runtimeMappings); + setDependentVariableOptions([...filteredOptions, ...runtimeOptions]); + } + } - const hasRequiredAnalysisFields = - (isJobTypeWithDepVar && dependentVariable !== '') || - jobType === ANALYSIS_CONFIG_TYPE.OUTLIER_DETECTION; + // Update includes - remove previous runtime mappings then add supported runtime fields to includes + const updatedIncludes = includes.filter((field) => { + const isRemovedRuntimeField = previousRuntimeMapping && previousRuntimeMapping[field]; + return !isRemovedRuntimeField; + }); + if (resetDepVar) { + setFormState({ + dependentVariable: '', + includes: updatedIncludes, + }); + setIncludesTableItems( + includesTableItems.filter(({ name }) => { + const isRemovedRuntimeField = previousRuntimeMapping && previousRuntimeMapping[name]; + return !isRemovedRuntimeField; + }) + ); + } + + if (!resetDepVar && hasBasicRequiredFields && hasRequiredAnalysisFields) { + const formCopy = cloneDeep(form); + // When switching back to step ensure runtime field is in 'includes' table if it is set as dependent variable + const depVarIsRuntimeField = + isJobTypeWithDepVar && + runtimeMappings && + Object.keys(runtimeMappings).includes(dependentVariable) && + formCopy.includes.length > 0 && + formCopy.includes.includes(dependentVariable) === false; + + formCopy.includes = depVarIsRuntimeField + ? [...updatedIncludes, dependentVariable] + : updatedIncludes; + + const { success, fieldSelection, errorMessage } = await fetchExplainData(formCopy); + if (success) { + // update the field selection table + const hasRequiredFields = fieldSelection.some( + (field) => field.is_included === true && field.is_required === false + ); + let updatedFieldSelection; + // Update field selection to select supported runtime fields by default. Add those fields to 'includes'. + if (isRuntimeMappings(runtimeMappings)) { + updatedFieldSelection = fieldSelection.map((field) => { + if ( + runtimeMappings[field.name] !== undefined && + field.is_included === false && + field.reason?.includes(notIncludedReason) + ) { + updatedIncludes.push(field.name); + field.is_included = true; + } + return field; + }); + } + setIncludesTableItems(updatedFieldSelection ? updatedFieldSelection : fieldSelection); + setMaxDistinctValuesError(undefined); + setUnsupportedFieldsError(undefined); + setFormState({ + includes: updatedIncludes, + requiredFieldsError: !hasRequiredFields ? requiredFieldsErrorText : undefined, + }); + } else { + const { + maxDistinctValuesErrorMessage, + unsupportedFieldsErrorMessage, + toastNotificationDanger, + toastNotificationWarning, + } = handleExplainErrorMessage(errorMessage, sourceIndex, jobType); + + if (toastNotificationDanger) { + toastNotifications.addDanger(toastNotificationDanger); + } + if (toastNotificationWarning) { + toastNotifications.addWarning(toastNotificationWarning); + } + + setMaxDistinctValuesError(maxDistinctValuesErrorMessage); + setUnsupportedFieldsError(unsupportedFieldsErrorMessage); + } + } + } + }, [JSON.stringify(runtimeMappings)]); + + useEffect(() => { + handleRuntimeUpdate(); + }, [JSON.stringify(runtimeMappings)]); + + useEffect(() => { if (hasBasicRequiredFields && hasRequiredAnalysisFields) { debouncedGetExplainData(); } @@ -324,15 +471,6 @@ export const ConfigurationStepForm: FC = ({ }; }, [jobType, dependentVariable, trainingPercent, JSON.stringify(includes), jobConfigQueryString]); - const unsupportedRuntimeFields = useMemo( - () => - currentIndexPattern.fields - .getAll() - .filter((f) => f.runtimeField) - .map((f) => `'${f.displayName}'`), - [currentIndexPattern.fields] - ); - const scatterplotMatrixProps = useMemo( () => ({ color: isJobTypeWithDepVar ? dependentVariable : undefined, @@ -342,6 +480,8 @@ export const ConfigurationStepForm: FC = ({ index: currentIndexPattern.title, legendType: getScatterplotMatrixLegendType(jobType), searchQuery: jobConfigQuery, + runtimeMappings, + indexPattern: currentIndexPattern, }), [ currentIndexPattern.title, @@ -388,6 +528,7 @@ export const ConfigurationStepForm: FC = ({ /> )} + {((isClone && cloneJob) || !isClone) && } @@ -476,11 +617,11 @@ export const ConfigurationStepForm: FC = ({ singleSelection={true} options={dependentVariableOptions} selectedOptions={dependentVariable ? [{ label: dependentVariable }] : []} - onChange={(selectedOptions) => + onChange={(selectedOptions) => { setFormState({ dependentVariable: selectedOptions[0].label || '', - }) - } + }); + }} isClearable={false} isInvalid={dependentVariable === ''} data-test-subj={`mlAnalyticsCreateJobWizardDependentVariableSelect${ @@ -500,35 +641,6 @@ export const ConfigurationStepForm: FC = ({ > - {Array.isArray(unsupportedRuntimeFields) && unsupportedRuntimeFields.length > 0 && ( - <> - - 0 ? ( - - ) : ( - '' - ), - unsupportedRuntimeFields: unsupportedRuntimeFields - .slice(0, maxRuntimeFieldsDisplayCount) - .join(', '), - }} - /> - - - - )} { - if (field.id === EVENT_RATE_FIELD_ID) return false; +export const shouldAddAsDepVarOption = ( + fieldId: string, + fieldType: ES_FIELD_TYPES | RuntimeType, + jobType: AnalyticsJobType +) => { + if (fieldId === EVENT_RATE_FIELD_ID) return false; - const isBasicNumerical = BASIC_NUMERICAL_TYPES.has(field.type); + const isBasicNumerical = BASIC_NUMERICAL_TYPES.has(fieldType as ES_FIELD_TYPES); const isSupportedByClassification = - isBasicNumerical || CATEGORICAL_TYPES.has(field.type) || field.type === ES_FIELD_TYPES.BOOLEAN; + isBasicNumerical || CATEGORICAL_TYPES.has(fieldType) || fieldType === ES_FIELD_TYPES.BOOLEAN; if (jobType === ANALYSIS_CONFIG_TYPE.REGRESSION) { - return isBasicNumerical || EXTENDED_NUMERICAL_TYPES.has(field.type); + return isBasicNumerical || EXTENDED_NUMERICAL_TYPES.has(fieldType as ES_FIELD_TYPES); } if (jobType === ANALYSIS_CONFIG_TYPE.CLASSIFICATION) return isSupportedByClassification; }; + +export const handleExplainErrorMessage = ( + errorMessage: string, + sourceIndex: string, + jobType: AnalyticsJobType +) => { + let maxDistinctValuesErrorMessage; + let unsupportedFieldsErrorMessage; + let toastNotificationWarning; + let toastNotificationDanger; + if ( + jobType === ANALYSIS_CONFIG_TYPE.CLASSIFICATION && + (errorMessage.includes('must have at most') || errorMessage.includes('must have at least')) + ) { + maxDistinctValuesErrorMessage = errorMessage; + } else if ( + errorMessage.includes('status_exception') && + errorMessage.includes('unsupported type') + ) { + unsupportedFieldsErrorMessage = errorMessage; + } else if ( + errorMessage.includes('status_exception') && + errorMessage.includes('Unable to estimate memory usage as no documents') + ) { + toastNotificationWarning = i18n.translate( + 'xpack.ml.dataframe.analytics.create.allDocsMissingFieldsErrorMessage', + { + defaultMessage: `Unable to estimate memory usage. There are mapped fields for source index [{index}] that do not exist in any indexed documents. You will have to switch to the JSON editor for explicit field selection and include only fields that exist in indexed documents.`, + values: { + index: sourceIndex, + }, + } + ); + } else { + toastNotificationDanger = { + title: i18n.translate('xpack.ml.dataframe.analytics.create.unableToFetchExplainDataMessage', { + defaultMessage: 'An error occurred fetching analysis fields data.', + }), + text: errorMessage, + }; + } + + return { + maxDistinctValuesErrorMessage, + unsupportedFieldsErrorMessage, + toastNotificationDanger, + toastNotificationWarning, + }; +}; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/index.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/index.ts new file mode 100644 index 0000000000000..8b93ddaa4a26a --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/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 { RuntimeMappings } from './runtime_mappings'; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings.tsx new file mode 100644 index 0000000000000..d9f1d78c302fd --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings.tsx @@ -0,0 +1,237 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, useState, useEffect } from 'react'; +import { + EuiButton, + EuiButtonIcon, + EuiCopy, + EuiFlexGroup, + EuiFlexItem, + EuiFormRow, + EuiSpacer, + EuiSwitch, + EuiText, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { XJsonMode } from '@kbn/ace'; +import { RuntimeField } from '../../../../../../../../../../src/plugins/data/common/index_patterns'; +import { useMlContext } from '../../../../../contexts/ml'; +import { CreateAnalyticsFormProps } from '../../../analytics_management/hooks/use_create_analytics_form'; +import { XJson } from '../../../../../../../../../../src/plugins/es_ui_shared/public'; +import { getCombinedRuntimeMappings } from '../../../../../components/data_grid/common'; +import { isPopulatedObject } from '../../../../../../../common/util/object_utils'; +import { RuntimeMappingsEditor } from './runtime_mappings_editor'; + +const advancedEditorsSidebarWidth = '220px'; +const COPY_TO_CLIPBOARD_RUNTIME_MAPPINGS = i18n.translate( + 'xpack.ml.dataframe.analytics.createWizard.indexPreview.copyRuntimeMappingsClipboardTooltip', + { + defaultMessage: 'Copy Dev Console statement of the runtime mappings to the clipboard.', + } +); + +const { useXJsonMode } = XJson; +const xJsonMode = new XJsonMode(); + +interface Props { + actions: CreateAnalyticsFormProps['actions']; + state: CreateAnalyticsFormProps['state']; +} + +type RuntimeMappings = Record; + +export const RuntimeMappings: FC = ({ actions, state }) => { + const [isRuntimeMappingsEditorEnabled, setIsRuntimeMappingsEditorEnabled] = useState( + false + ); + const [ + isRuntimeMappingsEditorApplyButtonEnabled, + setIsRuntimeMappingsEditorApplyButtonEnabled, + ] = useState(false); + const [ + advancedEditorRuntimeMappingsLastApplied, + setAdvancedEditorRuntimeMappingsLastApplied, + ] = useState(); + const [advancedEditorRuntimeMappings, setAdvancedEditorRuntimeMappings] = useState(); + + const { setFormState } = actions; + const { jobType, previousRuntimeMapping, runtimeMappings } = state.form; + + const { + convertToJson, + setXJson: setAdvancedRuntimeMappingsConfig, + xJson: advancedRuntimeMappingsConfig, + } = useXJsonMode(runtimeMappings || ''); + + const mlContext = useMlContext(); + const { currentIndexPattern } = mlContext; + + const applyChanges = () => { + const removeRuntimeMappings = advancedRuntimeMappingsConfig === ''; + const parsedRuntimeMappings = removeRuntimeMappings + ? undefined + : JSON.parse(advancedRuntimeMappingsConfig); + const prettySourceConfig = removeRuntimeMappings + ? '' + : JSON.stringify(parsedRuntimeMappings, null, 2); + const previous = + previousRuntimeMapping === undefined && runtimeMappings === undefined + ? parsedRuntimeMappings + : runtimeMappings; + setFormState({ + runtimeMappings: parsedRuntimeMappings, + runtimeMappingsUpdated: true, + previousRuntimeMapping: previous, + }); + setAdvancedEditorRuntimeMappings(prettySourceConfig); + setAdvancedEditorRuntimeMappingsLastApplied(prettySourceConfig); + setIsRuntimeMappingsEditorApplyButtonEnabled(false); + }; + + // If switching to KQL after updating via editor - reset search + const toggleEditorHandler = (reset = false) => { + if (reset === true) { + setFormState({ runtimeMappingsUpdated: false }); + } + if (isRuntimeMappingsEditorEnabled === false) { + setAdvancedEditorRuntimeMappingsLastApplied(advancedEditorRuntimeMappings); + } + + setIsRuntimeMappingsEditorEnabled(!isRuntimeMappingsEditorEnabled); + setIsRuntimeMappingsEditorApplyButtonEnabled(false); + }; + + useEffect(function getInitialRuntimeMappings() { + const combinedRuntimeMappings = getCombinedRuntimeMappings( + currentIndexPattern, + runtimeMappings + ); + + if (combinedRuntimeMappings) { + setAdvancedRuntimeMappingsConfig(JSON.stringify(combinedRuntimeMappings, null, 2)); + setFormState({ + runtimeMappings: combinedRuntimeMappings, + }); + } + }, []); + + return ( + <> + + + + + {isPopulatedObject(runtimeMappings) ? ( + + {Object.keys(runtimeMappings).join(',')} + + ) : ( + + )} + + {isRuntimeMappingsEditorEnabled && ( + <> + + + + )} + + + + + + + + toggleEditorHandler()} + data-test-subj="mlDataFrameAnalyticsRuntimeMappingsEditorSwitch" + /> + + + + {(copy: () => void) => ( + + )} + + + + + + {isRuntimeMappingsEditorEnabled && ( + + + + {i18n.translate( + 'xpack.ml.dataframe.analytics.createWizard.advancedRuntimeMappingsEditorHelpText', + { + defaultMessage: + 'The advanced editor allows you to edit the runtime mappings of the source.', + } + )} + + + + {i18n.translate( + 'xpack.ml.dataframe.analytics.createWizard.advancedSourceEditorApplyButtonText', + { + defaultMessage: 'Apply changes', + } + )} + + + )} + + + + + + + ); +}; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings_editor.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings_editor.tsx new file mode 100644 index 0000000000000..70544cc14ba08 --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/components/runtime_mappings/runtime_mappings_editor.tsx @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isEqual } from 'lodash'; +import React, { memo, FC } from 'react'; +import { EuiCodeEditor } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { isRuntimeMappings } from '../../../../../../../common/util/runtime_field_utils'; + +interface Props { + convertToJson: (data: string) => string; + setAdvancedRuntimeMappingsConfig: React.Dispatch; + setIsRuntimeMappingsEditorApplyButtonEnabled: React.Dispatch>; + advancedEditorRuntimeMappingsLastApplied: string | undefined; + advancedRuntimeMappingsConfig: string; + xJsonMode: any; +} + +export const RuntimeMappingsEditor: FC = memo( + ({ + convertToJson, + xJsonMode, + setAdvancedRuntimeMappingsConfig, + setIsRuntimeMappingsEditorApplyButtonEnabled, + advancedEditorRuntimeMappingsLastApplied, + advancedRuntimeMappingsConfig, + }) => { + return ( + { + setAdvancedRuntimeMappingsConfig(d); + + // Disable the "Apply"-Button if the config hasn't changed. + if (advancedEditorRuntimeMappingsLastApplied === d) { + setIsRuntimeMappingsEditorApplyButtonEnabled(false); + return; + } + + // Enable Apply button so user can remove previously created runtime field + if (d === '') { + setIsRuntimeMappingsEditorApplyButtonEnabled(true); + return; + } + + // Try to parse the string passed on from the editor. + // If parsing fails, the "Apply"-Button will be disabled + try { + const parsedJson = JSON.parse(convertToJson(d)); + setIsRuntimeMappingsEditorApplyButtonEnabled(isRuntimeMappings(parsedJson)); + } catch (e) { + setIsRuntimeMappingsEditorApplyButtonEnabled(false); + } + }} + setOptions={{ + fontSize: '12px', + }} + theme="textmate" + aria-label={i18n.translate( + 'xpack.ml.dataframe.analytics.createWizard.runtimeMappings.advancedEditorAriaLabel', + { + defaultMessage: 'Advanced runtime editor', + } + )} + /> + ); + }, + (prevProps, nextProps) => isEqual(pickProps(prevProps), pickProps(nextProps)) +); + +function pickProps(props: Props) { + return [props.advancedEditorRuntimeMappingsLastApplied, props.advancedRuntimeMappingsConfig]; +} diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts index 4552ca34ebbae..f48f4a62f5a7d 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/hooks/use_index_data.ts @@ -5,20 +5,23 @@ * 2.0. */ -import { useEffect, useMemo } from 'react'; +import { useEffect, useMemo, useState } from 'react'; import { estypes } from '@elastic/elasticsearch'; import { EuiDataGridColumn } from '@elastic/eui'; - import { CoreSetup } from 'src/core/public'; import { IndexPattern } from '../../../../../../../../../src/plugins/data/public'; +import { isRuntimeMappings } from '../../../../../../common/util/runtime_field_utils'; +import { RuntimeMappings, RuntimeField } from '../../../../../../common/types/fields'; +import { DEFAULT_SAMPLER_SHARD_SIZE } from '../../../../../../common/constants/field_histograms'; import { DataLoader } from '../../../../datavisualizer/index_based/data_loader'; import { getFieldType, getDataGridSchemaFromKibanaFieldType, + getDataGridSchemaFromESFieldType, getFieldsFromKibanaIndexPattern, showDataGridColumnChartErrorMessageToast, useDataGrid, @@ -26,31 +29,51 @@ import { EsSorting, UseIndexDataReturnType, getProcessedFields, + getCombinedRuntimeMappings, } from '../../../../components/data_grid'; import { extractErrorMessage } from '../../../../../../common/util/errors'; import { INDEX_STATUS } from '../../../common/analytics'; import { ml } from '../../../../services/ml_api_service'; -import { getRuntimeFieldsMapping } from '../../../../components/data_grid/common'; type IndexSearchResponse = estypes.SearchResponse; +interface MLEuiDataGridColumn extends EuiDataGridColumn { + isRuntimeFieldColumn?: boolean; +} + +function getRuntimeFieldColumns(runtimeMappings: RuntimeMappings) { + return Object.keys(runtimeMappings).map((id) => { + const field = runtimeMappings[id]; + const schema = getDataGridSchemaFromESFieldType(field.type as RuntimeField['type']); + return { id, schema, isExpandable: schema !== 'boolean', isRuntimeFieldColumn: true }; + }); +} + export const useIndexData = ( indexPattern: IndexPattern, query: Record | undefined, - toastNotifications: CoreSetup['notifications']['toasts'] + toastNotifications: CoreSetup['notifications']['toasts'], + runtimeMappings?: RuntimeMappings ): UseIndexDataReturnType => { const indexPatternFields = useMemo(() => getFieldsFromKibanaIndexPattern(indexPattern), [ indexPattern, ]); - // EuiDataGrid State - const columns: EuiDataGridColumn[] = [ + const [columns, setColumns] = useState([ ...indexPatternFields.map((id) => { const field = indexPattern.fields.getByName(id); - const schema = getDataGridSchemaFromKibanaFieldType(field); - return { id, schema, isExpandable: schema !== 'boolean' }; + const isRuntimeFieldColumn = field?.runtimeField !== undefined; + const schema = isRuntimeFieldColumn + ? getDataGridSchemaFromESFieldType(field?.type as RuntimeField['type']) + : getDataGridSchemaFromKibanaFieldType(field); + return { + id, + schema, + isExpandable: schema !== 'boolean', + isRuntimeFieldColumn, + }; }), - ]; + ]); const dataGrid = useDataGrid(columns); @@ -75,6 +98,8 @@ export const useIndexData = ( setErrorMessage(''); setStatus(INDEX_STATUS.LOADING); + const combinedRuntimeMappings = getCombinedRuntimeMappings(indexPattern, runtimeMappings); + const sort: EsSorting = sortingColumns.reduce((s, column) => { s[column.id] = { order: column.direction }; return s; @@ -88,14 +113,37 @@ export const useIndexData = ( fields: ['*'], _source: false, ...(Object.keys(sort).length > 0 ? { sort } : {}), - ...getRuntimeFieldsMapping(indexPatternFields, indexPattern), + ...(isRuntimeMappings(combinedRuntimeMappings) + ? { runtime_mappings: combinedRuntimeMappings } + : {}), }, }; try { const resp: IndexSearchResponse = await ml.esSearch(esSearchRequest); - const docs = resp.hits.hits.map((d) => getProcessedFields(d.fields ?? {})); + + if (isRuntimeMappings(runtimeMappings)) { + // remove old runtime field from columns + const updatedColumns = columns.filter((col) => col.isRuntimeFieldColumn === false); + setColumns([ + ...updatedColumns, + ...(combinedRuntimeMappings ? getRuntimeFieldColumns(combinedRuntimeMappings) : []), + ]); + } else { + setColumns([ + ...indexPatternFields.map((id) => { + const field = indexPattern.fields.getByName(id); + const schema = getDataGridSchemaFromKibanaFieldType(field); + return { + id, + schema, + isExpandable: schema !== 'boolean', + isRuntimeFieldColumn: field?.runtimeField !== undefined, + }; + }), + ]); + } setRowCount(typeof resp.hits.total === 'number' ? resp.hits.total : resp.hits.total.value); setRowCountRelation( typeof resp.hits.total === 'number' @@ -115,13 +163,18 @@ export const useIndexData = ( getIndexData(); } // custom comparison - }, [indexPattern.title, indexPatternFields, JSON.stringify([query, pagination, sortingColumns])]); + }, [ + indexPattern.title, + indexPatternFields, + JSON.stringify([query, pagination, sortingColumns, runtimeMappings]), + ]); const dataLoader = useMemo(() => new DataLoader(indexPattern, toastNotifications), [ indexPattern, ]); const fetchColumnChartsData = async function (fieldHistogramsQuery: Record) { + const combinedRuntimeMappings = getCombinedRuntimeMappings(indexPattern, runtimeMappings); try { const columnChartsData = await dataLoader.loadFieldHistograms( columns @@ -130,7 +183,9 @@ export const useIndexData = ( fieldName: cT.id, type: getFieldType(cT.schema), })), - fieldHistogramsQuery + fieldHistogramsQuery, + DEFAULT_SAMPLER_SHARD_SIZE, + combinedRuntimeMappings ); dataGrid.setColumnCharts(columnChartsData); } catch (e) { @@ -146,7 +201,7 @@ export const useIndexData = ( }, [ dataGrid.chartsVisible, indexPattern.title, - JSON.stringify([query, dataGrid.visibleColumns]), + JSON.stringify([query, dataGrid.visibleColumns, runtimeMappings]), ]); const renderCellValue = useRenderCellValue(indexPattern, pagination, tableItems); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx index 8fd0ae86d240c..830870cf1ca74 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_creation/page.tsx @@ -104,6 +104,7 @@ export const Page: FC = ({ jobId }) => { children: ( ({ requiredFieldsError: undefined, randomizeSeed: undefined, resultsField: undefined, + runtimeMappings: undefined, + runtimeMappingsUpdated: false, + previousRuntimeMapping: undefined, softTreeDepthLimit: undefined, softTreeDepthTolerance: undefined, sourceIndex: '', @@ -212,6 +220,9 @@ export const getJobConfigFromFormState = ( ? formState.sourceIndex.split(',').map((d) => d.trim()) : formState.sourceIndex, query: formState.jobConfigQuery, + ...(isRuntimeMappings(formState.runtimeMappings) + ? { runtime_mappings: formState.runtimeMappings } + : {}), }, dest: { index: formState.destinationIndex, @@ -340,6 +351,7 @@ export function getFormStateFromJobConfig( sourceIndex: Array.isArray(analyticsJobConfig.source.index) ? analyticsJobConfig.source.index.join(',') : analyticsJobConfig.source.index, + runtimeMappings: analyticsJobConfig.source.runtime_mappings, modelMemoryLimit: analyticsJobConfig.model_memory_limit, maxNumThreads: analyticsJobConfig.max_num_threads, includes: analyticsJobConfig.analyzed_fields?.includes ?? [], diff --git a/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts b/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts index 38b9aa2ce29f2..0da7d3d6b63d8 100644 --- a/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts +++ b/x-pack/plugins/ml/public/application/datavisualizer/index_based/data_loader/data_loader.ts @@ -110,14 +110,15 @@ export class DataLoader { async loadFieldHistograms( fields: FieldHistogramRequestConfig[], query: string | SavedSearchQuery, - samplerShardSize = DEFAULT_SAMPLER_SHARD_SIZE + samplerShardSize = DEFAULT_SAMPLER_SHARD_SIZE, + editorRuntimeMappings?: RuntimeMappings ): Promise { const stats = await ml.getVisualizerFieldHistograms({ indexPatternTitle: this._indexPatternTitle, query, fields, samplerShardSize, - runtimeMappings: this._runtimeMappings, + runtimeMappings: editorRuntimeMappings || this._runtimeMappings, }); return stats; diff --git a/x-pack/plugins/ml/server/routes/schemas/data_analytics_schema.ts b/x-pack/plugins/ml/server/routes/schemas/data_analytics_schema.ts index 70ffecd11c96c..1f5bcbc23423a 100644 --- a/x-pack/plugins/ml/server/routes/schemas/data_analytics_schema.ts +++ b/x-pack/plugins/ml/server/routes/schemas/data_analytics_schema.ts @@ -6,6 +6,7 @@ */ import { schema } from '@kbn/config-schema'; +import { runtimeMappingsSchema } from './runtime_mappings_schema'; export const dataAnalyticsJobConfigSchema = schema.object({ description: schema.maybe(schema.string()), @@ -16,6 +17,7 @@ export const dataAnalyticsJobConfigSchema = schema.object({ source: schema.object({ index: schema.oneOf([schema.string(), schema.arrayOf(schema.string())]), query: schema.maybe(schema.any()), + runtime_mappings: runtimeMappingsSchema, _source: schema.maybe( schema.object({ /** Fields to include in results */ @@ -51,6 +53,7 @@ export const dataAnalyticsExplainSchema = schema.object({ source: schema.object({ index: schema.oneOf([schema.string(), schema.arrayOf(schema.string())]), query: schema.maybe(schema.any()), + runtime_mappings: runtimeMappingsSchema, }), analysis: schema.any(), analyzed_fields: schema.maybe(schema.any()), diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 9602a324e5d51..133b4d0b6aaa8 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -13329,7 +13329,6 @@ "xpack.ml.dataframe.analytics.create.etaInputAriaLabel": "縮小が重みに適用されました。", "xpack.ml.dataframe.analytics.create.etaLabel": "Eta", "xpack.ml.dataframe.analytics.create.etaText": "縮小が重みに適用されました。0.001から1の範囲でなければなりません。", - "xpack.ml.dataframe.analytics.create.extraUnsupportedRuntimeFieldsMsg": "{count}以上", "xpack.ml.dataframe.analytics.create.featureBagFractionInputAriaLabel": "各候補分割のランダムなbagを選択したときに使用される特徴量の割合", "xpack.ml.dataframe.analytics.create.featureBagFractionLabel": "特徴量bag割合", "xpack.ml.dataframe.analytics.create.featureBagFractionText": "各候補分割のランダムなbagを選択したときに使用される特徴量の割合。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 12a3c8925cfc6..0f9d8b90a2578 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -13500,7 +13500,6 @@ "xpack.ml.dataframe.analytics.create.etaInputAriaLabel": "缩小量已应用于权重。", "xpack.ml.dataframe.analytics.create.etaLabel": "Eta", "xpack.ml.dataframe.analytics.create.etaText": "缩小量已应用于权重。必须介于 0.001 和 1 之间。", - "xpack.ml.dataframe.analytics.create.extraUnsupportedRuntimeFieldsMsg": "及另外 {count} 个", "xpack.ml.dataframe.analytics.create.featureBagFractionInputAriaLabel": "选择为每个候选拆分选择随机袋时使用的特征比例", "xpack.ml.dataframe.analytics.create.featureBagFractionLabel": "特征袋比例", "xpack.ml.dataframe.analytics.create.featureBagFractionText": "选择为每个候选拆分选择随机袋时使用的特征比例。", @@ -13604,7 +13603,6 @@ "xpack.ml.dataframe.analytics.create.trainingPercentLabel": "训练百分比", "xpack.ml.dataframe.analytics.create.unableToFetchExplainDataMessage": "提取分析字段数据时发生错误。", "xpack.ml.dataframe.analytics.create.unsupportedFieldsError": "无效。{message}", - "xpack.ml.dataframe.analytics.create.unsupportedRuntimeFieldsCallout": "不支持分析运行时{runtimeFieldsCount, plural, other {字段}} {unsupportedRuntimeFields} {extraCountMsg}。", "xpack.ml.dataframe.analytics.create.useEstimatedMmlLabel": "使用估计的模型内存限制", "xpack.ml.dataframe.analytics.create.UseResultsFieldDefaultLabel": "使用结果字段默认值“{defaultValue}”", "xpack.ml.dataframe.analytics.create.viewResultsCardDescription": "查看分析作业的结果。", From 59100b562686e7ac5fb3243c09ee6c8ba6a6e83c Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Fri, 2 Apr 2021 08:13:14 -0700 Subject: [PATCH 073/106] Fix autocomplete telemetry (#95724) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../ui/query_string_input/query_string_input.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/plugins/data/public/ui/query_string_input/query_string_input.tsx b/src/plugins/data/public/ui/query_string_input/query_string_input.tsx index 71ff09e81c567..16e1325b2b56b 100644 --- a/src/plugins/data/public/ui/query_string_input/query_string_input.tsx +++ b/src/plugins/data/public/ui/query_string_input/query_string_input.tsx @@ -379,14 +379,12 @@ export default class QueryStringInputUI extends Component { const newQueryString = value.substr(0, start) + text + value.substr(end); this.reportUiCounter?.( - METRIC_TYPE.LOADED, - `query_string:${type}:suggestions_select_position`, - listIndex + METRIC_TYPE.CLICK, + `query_string:${type}:suggestions_select_position_${listIndex}` ); this.reportUiCounter?.( - METRIC_TYPE.LOADED, - `query_string:${type}:suggestions_select_q_length`, - end - start + METRIC_TYPE.CLICK, + `query_string:${type}:suggestions_select_q_length_${end - start}` ); this.onQueryStringChange(newQueryString); From fb681d906241789f54889a6a3920108cde9400d7 Mon Sep 17 00:00:00 2001 From: Scotty Bollinger Date: Fri, 2 Apr 2021 11:41:27 -0500 Subject: [PATCH 074/106] [Workplace Search] Fix broken reauthenticate URLs and fix spelling (#96140) * Remove kebabCase Kibana routes are snake case, which matches the existing serviceType, so this is no longer needed * Fix route segment The word reauthenticate is not hyphenated * Fix all misspelling of reauthenticate Renames files too --- .../components/shared/source_row/source_row.tsx | 6 +----- .../components/add_source/add_source.test.tsx | 8 ++++---- .../content_sources/components/add_source/add_source.tsx | 6 +++--- .../components/add_source/add_source_logic.test.ts | 2 +- .../components/add_source/add_source_logic.ts | 4 ++-- .../{re_authenticate.test.tsx => reauthenticate.test.tsx} | 8 ++++---- .../{re_authenticate.tsx => reauthenticate.tsx} | 8 ++++---- .../views/content_sources/sources_router.tsx | 2 +- 8 files changed, 20 insertions(+), 24 deletions(-) rename x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/{re_authenticate.test.tsx => reauthenticate.test.tsx} (87%) rename x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/{re_authenticate.tsx => reauthenticate.tsx} (91%) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/source_row/source_row.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/source_row/source_row.tsx index 5d15196fba5a6..f9679bd42c07d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/source_row/source_row.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/source_row/source_row.tsx @@ -7,10 +7,6 @@ import React from 'react'; -// Prefer importing entire lodash library, e.g. import { get } from "lodash" -// eslint-disable-next-line no-restricted-imports -import _kebabCase from 'lodash/kebabCase'; - import { EuiFlexGroup, EuiFlexItem, @@ -72,7 +68,7 @@ export const SourceRow: React.FC = ({ const fixLink = ( diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.test.tsx index 41f53523bca4e..0ee872f7cfe8a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.test.tsx @@ -22,7 +22,7 @@ import { ConfigurationIntro } from './configuration_intro'; import { ConfigureCustom } from './configure_custom'; import { ConfigureOauth } from './configure_oauth'; import { ConnectInstance } from './connect_instance'; -import { ReAuthenticate } from './re_authenticate'; +import { Reauthenticate } from './reauthenticate'; import { SaveConfig } from './save_config'; import { SaveCustom } from './save_custom'; @@ -142,13 +142,13 @@ describe('AddSourceList', () => { expect(wrapper.find(SaveCustom)).toHaveLength(1); }); - it('renders ReAuthenticate step', () => { + it('renders Reauthenticate step', () => { setMockValues({ ...mockValues, - addSourceCurrentStep: AddSourceSteps.ReAuthenticateStep, + addSourceCurrentStep: AddSourceSteps.ReauthenticateStep, }); const wrapper = shallow(); - expect(wrapper.find(ReAuthenticate)).toHaveLength(1); + expect(wrapper.find(Reauthenticate)).toHaveLength(1); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.tsx index 30f5009ac0b3c..8186c43efef49 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source.tsx @@ -27,7 +27,7 @@ import { ConfigurationIntro } from './configuration_intro'; import { ConfigureCustom } from './configure_custom'; import { ConfigureOauth } from './configure_oauth'; import { ConnectInstance } from './connect_instance'; -import { ReAuthenticate } from './re_authenticate'; +import { Reauthenticate } from './reauthenticate'; import { SaveConfig } from './save_config'; import { SaveCustom } from './save_custom'; @@ -150,8 +150,8 @@ export const AddSource: React.FC = (props) => { header={header} /> )} - {addSourceCurrentStep === AddSourceSteps.ReAuthenticateStep && ( - + {addSourceCurrentStep === AddSourceSteps.ReauthenticateStep && ( + )} ); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.test.ts index 8ced90e7d7729..b52b354a6b115 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.test.ts @@ -276,7 +276,7 @@ describe('AddSourceLogic', () => { const addSourceProps = { sourceIndex: 1, reAuthenticate: true }; AddSourceLogic.actions.initializeAddSource(addSourceProps); - expect(setAddSourceStepSpy).toHaveBeenCalledWith(AddSourceSteps.ReAuthenticateStep); + expect(setAddSourceStepSpy).toHaveBeenCalledWith(AddSourceSteps.ReauthenticateStep); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.ts index 6ca7f6fa72e24..0bd37aed81c32 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/add_source_logic.ts @@ -42,7 +42,7 @@ export enum AddSourceSteps { ConfigureCustomStep = 'Configure Custom', ConfigureOauthStep = 'Configure Oauth', SaveCustomStep = 'Save Custom', - ReAuthenticateStep = 'ReAuthenticate', + ReauthenticateStep = 'Reauthenticate', } export interface OauthParams { @@ -577,6 +577,6 @@ const getFirstStep = (props: AddSourceProps): AddSourceSteps => { if (isCustom) return AddSourceSteps.ConfigureCustomStep; if (connect) return AddSourceSteps.ConnectInstanceStep; if (configure) return AddSourceSteps.ConfigureOauthStep; - if (reAuthenticate) return AddSourceSteps.ReAuthenticateStep; + if (reAuthenticate) return AddSourceSteps.ReauthenticateStep; return AddSourceSteps.ConfigIntroStep; }; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/re_authenticate.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/reauthenticate.test.tsx similarity index 87% rename from x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/re_authenticate.test.tsx rename to x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/reauthenticate.test.tsx index 38b6925008181..c38ab167b18de 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/re_authenticate.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/reauthenticate.test.tsx @@ -12,9 +12,9 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { ReAuthenticate } from './re_authenticate'; +import { Reauthenticate } from './reauthenticate'; -describe('ReAuthenticate', () => { +describe('Reauthenticate', () => { // Needed to mock redirect window.location.replace(oauthUrl) const mockReplace = jest.fn(); const mockWindow = { @@ -44,14 +44,14 @@ describe('ReAuthenticate', () => { }); it('renders', () => { - const wrapper = shallow(); + const wrapper = shallow(); expect(wrapper.find('form')).toHaveLength(1); }); it('handles form submission', () => { jest.spyOn(window.location, 'replace').mockImplementationOnce(mockReplace); - const wrapper = shallow(); + const wrapper = shallow(); const preventDefault = jest.fn(); wrapper.find('form').simulate('submit', { preventDefault }); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/re_authenticate.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/reauthenticate.tsx similarity index 91% rename from x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/re_authenticate.tsx rename to x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/reauthenticate.tsx index f57118b952eac..fa604ef758a44 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/re_authenticate.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/add_source/reauthenticate.tsx @@ -22,12 +22,12 @@ interface SourceQueryParams { sourceId: string; } -interface ReAuthenticateProps { +interface ReauthenticateProps { name: string; header: React.ReactNode; } -export const ReAuthenticate: React.FC = ({ name, header }) => { +export const Reauthenticate: React.FC = ({ name, header }) => { const { search } = useLocation() as Location; const { sourceId } = (parseQueryParams(search) as unknown) as SourceQueryParams; @@ -66,7 +66,7 @@ export const ReAuthenticate: React.FC = ({ name, header }) 'xpack.enterpriseSearch.workplaceSearch.contentSource.reAuthenticate.body', { defaultMessage: - 'Your {name} credentials are no longer valid. Please re-authenticate with the original credentials to resume content syncing.', + 'Your {name} credentials are no longer valid. Please reauthenticate with the original credentials to resume content syncing.', values: { name }, } )} @@ -79,7 +79,7 @@ export const ReAuthenticate: React.FC = ({ name, header }) {i18n.translate( 'xpack.enterpriseSearch.workplaceSearch.contentSource.reAuthenticate.button', { - defaultMessage: 'Re-authenticate {name}', + defaultMessage: 'Reauthenticate {name}', values: { name }, } )} diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources_router.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources_router.tsx index f4a56c8a0beaa..84bff65e62cef 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources_router.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources_router.tsx @@ -82,7 +82,7 @@ export const SourcesRouter: React.FC = () => { ))} {staticSourceData.map(({ addPath, name }, i) => ( - + From 1d5826655973be81a313c50c2f3784a5b8dffc9a Mon Sep 17 00:00:00 2001 From: Constance Date: Fri, 2 Apr 2021 09:50:39 -0700 Subject: [PATCH 075/106] [Enterprise Search] Add toasts support to FlashMessages component (#95981) * Add toasts to FlashMessagesLogic + Tests cleanup: - Group actions by their reducer blocks (since flashMessages has such specific logic) - recommend viewing with whitespace changes off for this - Do not reset context between each test, but instead by mount(), which allows tests to maintain state between adding/removing/resetting - Remove '()' from test names (feedback from previous PRs) * Add toast message helpers + refactor FLASH_MESSAGE_TYPES to constants, so that both callouts & toasts can use it effectively * Update FlashMessages to display toasts as well as callouts - This means we can automatically use toasts alongside callouts in all views that already have FlashMessages + a11y enhancement! update callouts to also announce new messages to screenreaders * [Example] Update ApiLogsLogic to flash an error toast on poll + update copy to better match EUI guidelines (shorter) * Fix test caused by new FlashMessages structure * PR suggestion - destructure Co-authored-by: Scotty Bollinger * PR feedback: implicit return * Fix color types - adding our own string enum fixes the typescript errors that both EuiCallout & EuiToast emit when passing color props to the base EUI types * PR feedback: Update flashToast API to match callout helper API - accepts a string title with optional args, creates a unique ID automatically if missing Co-authored-by: Scotty Bollinger --- .../__mocks__/flash_messages_logic.mock.ts | 2 + .../api_logs/api_logs_logic.test.ts | 9 +- .../components/api_logs/api_logs_logic.ts | 15 ++- .../components/api_logs/constants.ts | 11 +- .../shared/flash_messages/constants.ts | 19 +++ .../flash_messages/flash_messages.test.tsx | 106 +++++++++------ .../shared/flash_messages/flash_messages.tsx | 39 ++++-- .../flash_messages_logic.test.ts | 121 ++++++++++++------ .../flash_messages/flash_messages_logic.ts | 18 +++ .../shared/flash_messages/index.ts | 2 + .../set_message_helpers.test.ts | 80 ++++++++++++ .../flash_messages/set_message_helpers.ts | 20 +++ .../shared/flash_messages/types.ts | 14 +- .../views/groups/groups.test.tsx | 2 +- 14 files changed, 355 insertions(+), 103 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/constants.ts diff --git a/x-pack/plugins/enterprise_search/public/applications/__mocks__/flash_messages_logic.mock.ts b/x-pack/plugins/enterprise_search/public/applications/__mocks__/flash_messages_logic.mock.ts index ac2f4ba50d7f9..17e22e6f23daf 100644 --- a/x-pack/plugins/enterprise_search/public/applications/__mocks__/flash_messages_logic.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/__mocks__/flash_messages_logic.mock.ts @@ -24,6 +24,8 @@ export const mockFlashMessageHelpers = { setQueuedSuccessMessage: jest.fn(), setQueuedErrorMessage: jest.fn(), clearFlashMessages: jest.fn(), + flashSuccessToast: jest.fn(), + flashErrorToast: jest.fn(), }; jest.mock('../shared/flash_messages', () => ({ diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts index e7f3124a48e8c..7b3ee80668ac7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts @@ -12,14 +12,12 @@ import { nextTick } from '@kbn/test/jest'; import { DEFAULT_META } from '../../../shared/constants'; -import { POLLING_ERROR_MESSAGE } from './constants'; - import { ApiLogsLogic } from './'; describe('ApiLogsLogic', () => { const { mount, unmount } = new LogicMounter(ApiLogsLogic); const { http } = mockHttpValues; - const { flashAPIErrors, setErrorMessage } = mockFlashMessageHelpers; + const { flashAPIErrors, flashErrorToast } = mockFlashMessageHelpers; const DEFAULT_VALUES = { dataLoading: true, @@ -213,7 +211,10 @@ describe('ApiLogsLogic', () => { ApiLogsLogic.actions.fetchApiLogs({ isPoll: true }); await nextTick(); - expect(setErrorMessage).toHaveBeenCalledWith(POLLING_ERROR_MESSAGE); + expect(flashErrorToast).toHaveBeenCalledWith('Could not refresh API log data', { + text: expect.stringContaining('Please check your connection'), + toastLifeTimeMs: 3750, + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts index 2a2f55a0c8033..4d0d80cf2c24b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts @@ -8,12 +8,12 @@ import { kea, MakeLogicType } from 'kea'; import { DEFAULT_META } from '../../../shared/constants'; -import { flashAPIErrors, setErrorMessage } from '../../../shared/flash_messages'; +import { flashAPIErrors, flashErrorToast } from '../../../shared/flash_messages'; import { HttpLogic } from '../../../shared/http'; import { updateMetaPageIndex } from '../../../shared/table_pagination'; import { EngineLogic } from '../engine'; -import { POLLING_DURATION, POLLING_ERROR_MESSAGE } from './constants'; +import { POLLING_DURATION, POLLING_ERROR_TITLE, POLLING_ERROR_TEXT } from './constants'; import { ApiLogsData, ApiLog } from './types'; import { getDateString } from './utils'; @@ -117,14 +117,21 @@ export const ApiLogsLogic = kea>({ // while polls are stored in-state until the user manually triggers the 'Refresh' action if (isPoll) { actions.onPollInterval(response); + flashErrorToast(POLLING_ERROR_TITLE, { + text: POLLING_ERROR_TEXT, + toastLifeTimeMs: POLLING_DURATION * 0.75, + }); } else { actions.updateView(response); } } catch (e) { if (isPoll) { - // If polling fails, it will typically be due due to http connection - + // If polling fails, it will typically be due to http connection - // we should send a more human-readable message if so - setErrorMessage(POLLING_ERROR_MESSAGE); + flashErrorToast(POLLING_ERROR_TITLE, { + text: POLLING_ERROR_TEXT, + toastLifeTimeMs: POLLING_DURATION * 0.75, + }); } else { flashAPIErrors(e); } diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/constants.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/constants.ts index 9f64ec44e8b13..ac1fbff150723 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/constants.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/constants.ts @@ -19,10 +19,11 @@ export const RECENT_API_EVENTS = i18n.translate( export const POLLING_DURATION = 5000; -export const POLLING_ERROR_MESSAGE = i18n.translate( +export const POLLING_ERROR_TITLE = i18n.translate( 'xpack.enterpriseSearch.appSearch.engine.apiLogs.pollingErrorMessage', - { - defaultMessage: - 'Could not automatically refresh API logs data. Please check your connection or manually refresh the page.', - } + { defaultMessage: 'Could not refresh API log data' } +); +export const POLLING_ERROR_TEXT = i18n.translate( + 'xpack.enterpriseSearch.appSearch.engine.apiLogs.pollingErrorDescription', + { defaultMessage: 'Please check your connection or manually reload the page.' } ); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/constants.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/constants.ts new file mode 100644 index 0000000000000..35e1942bdc3de --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/constants.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. + */ + +import { FlashMessageColors } from './types'; + +export const FLASH_MESSAGE_TYPES = { + success: { color: 'success' as FlashMessageColors, iconType: 'check' }, + info: { color: 'primary' as FlashMessageColors, iconType: 'iInCircle' }, + warning: { color: 'warning' as FlashMessageColors, iconType: 'alert' }, + error: { color: 'danger' as FlashMessageColors, iconType: 'alert' }, +}; + +// This is the default amount of time (5 seconds) a toast will last before disappearing +// It can be overridden per-toast by passing the `toastLifetimeMs` property - @see types.ts +export const DEFAULT_TOAST_TIMEOUT = 5000; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.test.tsx index aa45ce58af86a..289dcc0137cb8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.test.tsx @@ -5,62 +5,96 @@ * 2.0. */ -import { setMockValues } from '../../__mocks__/kea.mock'; +import { setMockValues, setMockActions } from '../../__mocks__/kea.mock'; import React from 'react'; import { shallow } from 'enzyme'; -import { EuiCallOut } from '@elastic/eui'; +import { EuiCallOut, EuiGlobalToastList } from '@elastic/eui'; -import { FlashMessages } from './flash_messages'; +import { FlashMessages, Callouts, Toasts } from './flash_messages'; describe('FlashMessages', () => { beforeEach(() => { jest.clearAllMocks(); }); - it('does not render if no messages exist', () => { - setMockValues({ messages: [] }); - + it('renders callout and toast flash messages', () => { const wrapper = shallow(); - - expect(wrapper.isEmptyRender()).toBe(true); + expect(wrapper.find(Callouts)).toHaveLength(1); + expect(wrapper.find(Toasts)).toHaveLength(1); }); - it('renders an array of flash messages & types', () => { - const mockMessages = [ - { type: 'success', message: 'Hello world!!' }, - { - type: 'error', - message: 'Whoa nelly!', - description:
Something went wrong
, - }, - { type: 'info', message: 'Everything is fine, nothing is ruined' }, - { type: 'warning', message: 'Uh oh' }, - { type: 'info', message: 'Testing multiples of same type' }, - ]; - setMockValues({ messages: mockMessages }); + describe('callouts', () => { + it('renders an array of flash messages & types', () => { + const mockMessages = [ + { type: 'success', message: 'Hello world!!' }, + { + type: 'error', + message: 'Whoa nelly!', + description:
Something went wrong
, + }, + { type: 'info', message: 'Everything is fine, nothing is ruined' }, + { type: 'warning', message: 'Uh oh' }, + { type: 'info', message: 'Testing multiples of same type' }, + ]; + setMockValues({ messages: mockMessages }); - const wrapper = shallow(); + const wrapper = shallow(); + + expect(wrapper.find(EuiCallOut)).toHaveLength(5); + expect(wrapper.find(EuiCallOut).first().prop('color')).toEqual('success'); + expect(wrapper.find('[data-test-subj="error"]')).toHaveLength(1); + expect(wrapper.find(EuiCallOut).last().prop('iconType')).toEqual('iInCircle'); + }); - expect(wrapper.find(EuiCallOut)).toHaveLength(5); - expect(wrapper.find(EuiCallOut).first().prop('color')).toEqual('success'); - expect(wrapper.find('[data-test-subj="error"]')).toHaveLength(1); - expect(wrapper.find(EuiCallOut).last().prop('iconType')).toEqual('iInCircle'); + it('renders any children', () => { + setMockValues({ messages: [{ type: 'success' }] }); + + const wrapper = shallow( + + + + ); + + expect(wrapper.find('[data-test-subj="testing"]').text()).toContain('Some action'); + }); }); - it('renders any children', () => { - setMockValues({ messages: [{ type: 'success' }] }); + describe('toasts', () => { + const actions = { dismissToastMessage: jest.fn() }; + beforeAll(() => setMockActions(actions)); + + it('renders an EUI toast list', () => { + const mockToasts = [ + { id: 'test', title: 'Hello world!!' }, + { + color: 'success', + iconType: 'check', + title: 'Success!', + toastLifeTimeMs: 500, + id: 'successToastId', + }, + { + color: 'danger', + iconType: 'alert', + title: 'Oh no!', + text:
Something went wrong
, + id: 'errorToastId', + }, + ]; + setMockValues({ toastMessages: mockToasts }); - const wrapper = shallow( - - - - ); + const wrapper = shallow(); + const euiToastList = wrapper.find(EuiGlobalToastList); - expect(wrapper.find('[data-test-subj="testing"]').text()).toContain('Some action'); + expect(euiToastList).toHaveLength(1); + expect(euiToastList.prop('toasts')).toEqual(mockToasts); + expect(euiToastList.prop('dismissToast')).toEqual(actions.dismissToastMessage); + expect(euiToastList.prop('toastLifeTimeMs')).toEqual(5000); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.tsx index ef1a4a2d0be86..10f80d9a6345a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages.tsx @@ -7,32 +7,30 @@ import React, { Fragment } from 'react'; -import { useValues } from 'kea'; +import { useValues, useActions } from 'kea'; -import { EuiCallOut, EuiCallOutProps, EuiSpacer } from '@elastic/eui'; +import { EuiCallOut, EuiSpacer, EuiGlobalToastList } from '@elastic/eui'; +import { FLASH_MESSAGE_TYPES, DEFAULT_TOAST_TIMEOUT } from './constants'; import { FlashMessagesLogic } from './flash_messages_logic'; -const FLASH_MESSAGE_TYPES = { - success: { color: 'success' as EuiCallOutProps['color'], icon: 'check' }, - info: { color: 'primary' as EuiCallOutProps['color'], icon: 'iInCircle' }, - warning: { color: 'warning' as EuiCallOutProps['color'], icon: 'alert' }, - error: { color: 'danger' as EuiCallOutProps['color'], icon: 'alert' }, -}; +export const FlashMessages: React.FC = ({ children }) => ( + <> + {children} + + +); -export const FlashMessages: React.FC = ({ children }) => { +export const Callouts: React.FC = ({ children }) => { const { messages } = useValues(FlashMessagesLogic); - // If we have no messages to display, do not render the element at all - if (!messages.length) return null; - return ( -
+
{messages.map(({ type, message, description }, index) => ( {description} @@ -44,3 +42,16 @@ export const FlashMessages: React.FC = ({ children }) => {
); }; + +export const Toasts: React.FC = () => { + const { toastMessages } = useValues(FlashMessagesLogic); + const { dismissToastMessage } = useActions(FlashMessagesLogic); + + return ( + + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.test.ts index 7fc78c99fb242..c7dc658dada74 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.test.ts @@ -15,11 +15,13 @@ import { FlashMessagesLogic, mountFlashMessagesLogic } from './flash_messages_lo import { IFlashMessage } from './types'; describe('FlashMessagesLogic', () => { - const mount = () => mountFlashMessagesLogic(); + const mount = () => { + resetContext({}); + return mountFlashMessagesLogic(); + }; beforeEach(() => { jest.clearAllMocks(); - resetContext({}); }); it('has default values', () => { @@ -27,67 +29,112 @@ describe('FlashMessagesLogic', () => { expect(FlashMessagesLogic.values).toEqual({ messages: [], queuedMessages: [], + toastMessages: [], historyListener: expect.any(Function), }); }); - describe('setFlashMessages()', () => { - it('sets an array of messages', () => { - const messages: IFlashMessage[] = [ - { type: 'success', message: 'Hello world!!' }, - { type: 'error', message: 'Whoa nelly!', description: 'Uh oh' }, - { type: 'info', message: 'Everything is fine, nothing is ruined' }, - ]; - + describe('messages', () => { + beforeAll(() => { mount(); - FlashMessagesLogic.actions.setFlashMessages(messages); - - expect(FlashMessagesLogic.values.messages).toEqual(messages); }); - it('automatically converts to an array if a single message obj is passed in', () => { - const message = { type: 'success', message: 'I turn into an array!' } as IFlashMessage; + describe('setFlashMessages', () => { + it('sets an array of messages', () => { + const messages: IFlashMessage[] = [ + { type: 'success', message: 'Hello world!!' }, + { type: 'error', message: 'Whoa nelly!', description: 'Uh oh' }, + { type: 'info', message: 'Everything is fine, nothing is ruined' }, + ]; - mount(); - FlashMessagesLogic.actions.setFlashMessages(message); + FlashMessagesLogic.actions.setFlashMessages(messages); + + expect(FlashMessagesLogic.values.messages).toEqual(messages); + }); + + it('automatically converts to an array if a single message obj is passed in', () => { + const message = { type: 'success', message: 'I turn into an array!' } as IFlashMessage; + + FlashMessagesLogic.actions.setFlashMessages(message); - expect(FlashMessagesLogic.values.messages).toEqual([message]); + expect(FlashMessagesLogic.values.messages).toEqual([message]); + }); }); - }); - describe('clearFlashMessages()', () => { - it('sets messages back to an empty array', () => { - mount(); - FlashMessagesLogic.actions.setFlashMessages('test' as any); - FlashMessagesLogic.actions.clearFlashMessages(); + describe('clearFlashMessages', () => { + it('resets messages back to an empty array', () => { + FlashMessagesLogic.actions.clearFlashMessages(); - expect(FlashMessagesLogic.values.messages).toEqual([]); + expect(FlashMessagesLogic.values.messages).toEqual([]); + }); }); }); - describe('setQueuedMessages()', () => { - it('sets an array of messages', () => { - const queuedMessage: IFlashMessage = { type: 'error', message: 'You deleted a thing' }; - + describe('queuedMessages', () => { + beforeAll(() => { mount(); - FlashMessagesLogic.actions.setQueuedMessages(queuedMessage); + }); + + describe('setQueuedMessages', () => { + it('sets an array of messages', () => { + const queuedMessage: IFlashMessage = { type: 'error', message: 'You deleted a thing' }; - expect(FlashMessagesLogic.values.queuedMessages).toEqual([queuedMessage]); + FlashMessagesLogic.actions.setQueuedMessages(queuedMessage); + + expect(FlashMessagesLogic.values.queuedMessages).toEqual([queuedMessage]); + }); + }); + + describe('clearQueuedMessages', () => { + it('resets queued messages back to an empty array', () => { + FlashMessagesLogic.actions.clearQueuedMessages(); + + expect(FlashMessagesLogic.values.queuedMessages).toEqual([]); + }); }); }); - describe('clearQueuedMessages()', () => { - it('sets queued messages back to an empty array', () => { + describe('toastMessages', () => { + beforeAll(() => { mount(); - FlashMessagesLogic.actions.setQueuedMessages('test' as any); - FlashMessagesLogic.actions.clearQueuedMessages(); + }); - expect(FlashMessagesLogic.values.queuedMessages).toEqual([]); + describe('addToastMessage', () => { + it('appends a toast message to the current toasts array', () => { + FlashMessagesLogic.actions.addToastMessage({ id: 'hello' }); + FlashMessagesLogic.actions.addToastMessage({ id: 'world' }); + FlashMessagesLogic.actions.addToastMessage({ id: 'lorem ipsum' }); + + expect(FlashMessagesLogic.values.toastMessages).toEqual([ + { id: 'hello' }, + { id: 'world' }, + { id: 'lorem ipsum' }, + ]); + }); + }); + + describe('dismissToastMessage', () => { + it('removes a specific toast ID from the current toasts array', () => { + FlashMessagesLogic.actions.dismissToastMessage({ id: 'world' }); + + expect(FlashMessagesLogic.values.toastMessages).toEqual([ + { id: 'hello' }, + { id: 'lorem ipsum' }, + ]); + }); + }); + + describe('clearToastMessages', () => { + it('resets toast messages back to an empty array', () => { + FlashMessagesLogic.actions.clearToastMessages(); + + expect(FlashMessagesLogic.values.toastMessages).toEqual([]); + }); }); }); describe('history listener logic', () => { - describe('setHistoryListener()', () => { + describe('setHistoryListener', () => { it('sets the historyListener value', () => { mount(); FlashMessagesLogic.actions.setHistoryListener('test' as any); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.ts index 5993e67b28a39..f71897cc5a1d7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/flash_messages_logic.ts @@ -7,6 +7,8 @@ import { kea, MakeLogicType } from 'kea'; +import { EuiGlobalToastListToast as IToast } from '@elastic/eui'; + import { KibanaLogic } from '../kibana'; import { IFlashMessage } from './types'; @@ -14,6 +16,7 @@ import { IFlashMessage } from './types'; interface FlashMessagesValues { messages: IFlashMessage[]; queuedMessages: IFlashMessage[]; + toastMessages: IToast[]; historyListener: Function | null; } interface FlashMessagesActions { @@ -21,6 +24,9 @@ interface FlashMessagesActions { clearFlashMessages(): void; setQueuedMessages(messages: IFlashMessage | IFlashMessage[]): { messages: IFlashMessage[] }; clearQueuedMessages(): void; + addToastMessage(newToast: IToast): { newToast: IToast }; + dismissToastMessage(removedToast: IToast): { removedToast: IToast }; + clearToastMessages(): void; setHistoryListener(historyListener: Function): { historyListener: Function }; } @@ -34,6 +40,9 @@ export const FlashMessagesLogic = kea null, setQueuedMessages: (messages) => ({ messages: convertToArray(messages) }), clearQueuedMessages: () => null, + addToastMessage: (newToast) => ({ newToast }), + dismissToastMessage: (removedToast) => ({ removedToast }), + clearToastMessages: () => null, setHistoryListener: (historyListener) => ({ historyListener }), }, reducers: { @@ -51,6 +60,15 @@ export const FlashMessagesLogic = kea [], }, ], + toastMessages: [ + [], + { + addToastMessage: (toasts, { newToast }) => [...toasts, newToast], + dismissToastMessage: (toasts, { removedToast }) => + toasts.filter(({ id }) => id !== removedToast.id), + clearToastMessages: () => [], + }, + ], historyListener: [ null, { diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts index 40317eb390547..f08ac493f20b3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/index.ts @@ -14,5 +14,7 @@ export { setErrorMessage, setQueuedSuccessMessage, setQueuedErrorMessage, + flashSuccessToast, + flashErrorToast, clearFlashMessages, } from './set_message_helpers'; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.test.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.test.ts index 0261a5556a404..d22be32e038cb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.test.ts @@ -14,6 +14,8 @@ import { setQueuedSuccessMessage, setQueuedErrorMessage, clearFlashMessages, + flashSuccessToast, + flashErrorToast, } from './set_message_helpers'; describe('Flash Message Helpers', () => { @@ -72,4 +74,82 @@ describe('Flash Message Helpers', () => { expect(FlashMessagesLogic.values.messages).toEqual([]); }); + + describe('toast helpers', () => { + afterEach(() => { + FlashMessagesLogic.actions.clearToastMessages(); + }); + + describe('without optional args', () => { + beforeEach(() => { + jest.spyOn(global.Date, 'now').mockReturnValueOnce(1234567890); + }); + + it('flashSuccessToast', () => { + flashSuccessToast('You did a thing!'); + + expect(FlashMessagesLogic.values.toastMessages).toEqual([ + { + color: 'success', + iconType: 'check', + title: 'You did a thing!', + id: 'successToast-1234567890', + }, + ]); + }); + + it('flashErrorToast', () => { + flashErrorToast('Something went wrong'); + + expect(FlashMessagesLogic.values.toastMessages).toEqual([ + { + color: 'danger', + iconType: 'alert', + title: 'Something went wrong', + id: 'errorToast-1234567890', + }, + ]); + }); + }); + + describe('with optional args', () => { + it('flashSuccessToast', () => { + flashSuccessToast('You did a thing!', { + text: '', + toastLifeTimeMs: 50, + id: 'customId', + }); + + expect(FlashMessagesLogic.values.toastMessages).toEqual([ + { + color: 'success', + iconType: 'check', + title: 'You did a thing!', + text: '', + toastLifeTimeMs: 50, + id: 'customId', + }, + ]); + }); + + it('flashErrorToast', () => { + flashErrorToast('Something went wrong', { + text: "Here's some helpful advice on what to do", + toastLifeTimeMs: 50000, + id: 'specificErrorId', + }); + + expect(FlashMessagesLogic.values.toastMessages).toEqual([ + { + color: 'danger', + iconType: 'alert', + title: 'Something went wrong', + text: "Here's some helpful advice on what to do", + toastLifeTimeMs: 50000, + id: 'specificErrorId', + }, + ]); + }); + }); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.ts index 1f06d8cd95930..37f7256ad44a9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/set_message_helpers.ts @@ -5,7 +5,9 @@ * 2.0. */ +import { FLASH_MESSAGE_TYPES } from './constants'; import { FlashMessagesLogic } from './flash_messages_logic'; +import { ToastOptions } from './types'; export const setSuccessMessage = (message: string) => { FlashMessagesLogic.actions.setFlashMessages({ @@ -38,3 +40,21 @@ export const setQueuedErrorMessage = (message: string) => { export const clearFlashMessages = () => { FlashMessagesLogic.actions.clearFlashMessages(); }; + +export const flashSuccessToast = (message: string, toastOptions: ToastOptions = {}) => { + FlashMessagesLogic.actions.addToastMessage({ + ...FLASH_MESSAGE_TYPES.success, + ...toastOptions, + title: message, + id: toastOptions?.id || `successToast-${Date.now()}`, + }); +}; + +export const flashErrorToast = (message: string, toastOptions: ToastOptions = {}) => { + FlashMessagesLogic.actions.addToastMessage({ + ...FLASH_MESSAGE_TYPES.error, + ...toastOptions, + title: message, + id: toastOptions?.id || `errorToast-${Date.now()}`, + }); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/types.ts b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/types.ts index c1d2f8420198d..4c1b613bbc57f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/types.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/flash_messages/types.ts @@ -5,10 +5,20 @@ * 2.0. */ -import { ReactNode } from 'react'; +import { ReactNode, ReactChild } from 'react'; + +export type FlashMessageTypes = 'success' | 'info' | 'warning' | 'error'; +export type FlashMessageColors = 'success' | 'primary' | 'warning' | 'danger'; export interface IFlashMessage { - type: 'success' | 'info' | 'warning' | 'error'; + type: FlashMessageTypes; message: ReactNode; description?: ReactNode; } + +// @see EuiGlobalToastListToast for more props +export interface ToastOptions { + text?: ReactChild; // Additional text below the message/title, same as IFlashMessage['description'] + toastLifeTimeMs?: number; // Allows customing per-toast timeout + id?: string; +} diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.test.tsx index 8470c5d3e0f66..54f8580a8eab9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.test.tsx @@ -98,7 +98,7 @@ describe('GroupOverview', () => { messages: [mockSuccessMessage], }); const wrapper = shallow(); - const flashMessages = wrapper.find(FlashMessages).dive().shallow(); + const flashMessages = wrapper.find(FlashMessages).dive().childAt(0).dive(); expect(flashMessages.find('[data-test-subj="NewGroupManageButton"]')).toHaveLength(1); }); From 82f7b2127e233b6a6438c7021250f6a1a66943c5 Mon Sep 17 00:00:00 2001 From: Jason Stoltzfus Date: Fri, 2 Apr 2021 13:24:04 -0400 Subject: [PATCH 076/106] Move `tr`s to be under `tbody` in ResultSettings (#96132) This was causing console errors. I factored out the column headers to their own component, and moved all table rows to be under a tbody. This alleviates the console warnings. --- .../column_headers.test.tsx | 21 ++++++++ .../result_settings_table/column_headers.tsx | 52 +++++++++++++++++++ .../disabled_fields_body.tsx | 6 +-- .../disabled_fields_header.tsx | 2 +- .../non_text_fields_body.tsx | 12 ++--- .../non_text_fields_header.tsx | 2 +- .../result_settings_table.tsx | 16 +++--- .../text_fields_body.tsx | 12 ++--- .../text_fields_header.tsx | 38 +------------- 9 files changed, 94 insertions(+), 67 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.tsx diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.test.tsx new file mode 100644 index 0000000000000..a2ef43908776e --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.test.tsx @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { EuiTableHeaderCell } from '@elastic/eui'; + +import { ColumnHeaders } from './column_headers'; + +describe('ColumnHeaders', () => { + it('renders', () => { + const wrapper = shallow(); + expect(wrapper.find(EuiTableHeaderCell).length).toBe(3); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.tsx new file mode 100644 index 0000000000000..b36d71a49de13 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/column_headers.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 { EuiIconTip, EuiTableHeader, EuiTableHeaderCell } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +export const ColumnHeaders: React.FC = () => { + return ( + + + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.resultSettings.table.rawTitle', { + defaultMessage: 'Raw', + })} + + + + {i18n.translate( + 'xpack.enterpriseSearch.appSearch.engine.resultSettings.table.highlightingTitle', + { + defaultMessage: 'Highlighting', + } + )} + tags for highlighting. Fallback will look for a snippet match, but fallback to an escaped raw value if none is found. Range is between 20-1000. Defaults to 100.', + } + )} + /> + + + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_body.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_body.tsx index fd4646bf9a9f7..2f4ba0892784d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_body.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_body.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useValues } from 'kea'; -import { EuiTableBody, EuiTableRow, EuiTableRowCell, EuiText, EuiHealth } from '@elastic/eui'; +import { EuiTableRow, EuiTableRowCell, EuiText, EuiHealth } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { ResultSettingsLogic } from '..'; @@ -17,7 +17,7 @@ import { ResultSettingsLogic } from '..'; export const DisabledFieldsBody: React.FC = () => { const { schemaConflicts } = useValues(ResultSettingsLogic); return ( - + <> {Object.keys(schemaConflicts).map((fieldName) => ( @@ -35,6 +35,6 @@ export const DisabledFieldsBody: React.FC = () => { ))} - + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_header.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_header.tsx index 0c82477814dab..1c0c1da3e4ef2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_header.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/disabled_fields_header.tsx @@ -12,7 +12,7 @@ import { i18n } from '@kbn/i18n'; export const DisabledFieldsHeader: React.FC = () => { return ( - + {i18n.translate( 'xpack.enterpriseSearch.appSearch.engine.resultSettings.table.column.disabledFieldsTitle', diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx index 57dd2d5fdb974..145654be20461 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx @@ -9,13 +9,7 @@ import React, { useMemo } from 'react'; import { useValues, useActions } from 'kea'; -import { - EuiTableBody, - EuiTableRow, - EuiTableRowCell, - EuiCheckbox, - EuiTableRowCellCheckbox, -} from '@elastic/eui'; +import { EuiTableRow, EuiTableRowCell, EuiCheckbox, EuiTableRowCellCheckbox } from '@elastic/eui'; import { ResultSettingsLogic } from '..'; import { FieldResultSetting } from '../types'; @@ -31,7 +25,7 @@ export const NonTextFieldsBody: React.FC = () => { }, [nonTextResultFields]); return ( - + <> {resultSettingsArray.map(([fieldName, fieldSettings]) => ( @@ -50,6 +44,6 @@ export const NonTextFieldsBody: React.FC = () => { ))} - + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_header.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_header.tsx index 6024f736899de..b929187780e10 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_header.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_header.tsx @@ -12,7 +12,7 @@ import { i18n } from '@kbn/i18n'; export const NonTextFieldsHeader: React.FC = () => { return ( - + {i18n.translate( 'xpack.enterpriseSearch.appSearch.engine.resultSettings.table.column.nonTextFieldsTitle', diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/result_settings_table.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/result_settings_table.tsx index 2da334e1f2ae2..092a4beee0c8e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/result_settings_table.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/result_settings_table.tsx @@ -8,10 +8,11 @@ import React from 'react'; import { useValues } from 'kea'; -import { EuiTable } from '@elastic/eui'; +import { EuiTable, EuiTableBody } from '@elastic/eui'; import { ResultSettingsLogic } from '..'; +import { ColumnHeaders } from './column_headers'; import { DisabledFieldsBody } from './disabled_fields_body'; import { DisabledFieldsHeader } from './disabled_fields_header'; import { NonTextFieldsBody } from './non_text_fields_body'; @@ -28,23 +29,24 @@ export const ResultSettingsTable: React.FC = () => { // to alleviate the issue. return ( + {!!Object.keys(textResultFields).length && ( - <> + - + )} {!!Object.keys(nonTextResultFields).length && ( - <> + - + )} {!!Object.keys(schemaConflicts).length && ( - <> + - + )} ); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_body.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_body.tsx index af01ced81f7dd..0f7e6f5e0eb1d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_body.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_body.tsx @@ -9,13 +9,7 @@ import React, { useMemo } from 'react'; import { useValues, useActions } from 'kea'; -import { - EuiTableBody, - EuiTableRow, - EuiTableRowCell, - EuiTableRowCellCheckbox, - EuiCheckbox, -} from '@elastic/eui'; +import { EuiTableRow, EuiTableRowCell, EuiTableRowCellCheckbox, EuiCheckbox } from '@elastic/eui'; import { ResultSettingsLogic } from '../result_settings_logic'; import { FieldResultSetting } from '../types'; @@ -41,7 +35,7 @@ export const TextFieldsBody: React.FC = () => { }, [textResultFields]); return ( - + <> {resultSettingsArray.map(([fieldName, fieldSettings]) => ( @@ -100,6 +94,6 @@ export const TextFieldsBody: React.FC = () => { ))} - + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_header.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_header.tsx index 3810570b3e3a2..cf4dfa9462781 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_header.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/text_fields_header.tsx @@ -7,49 +7,13 @@ import React from 'react'; -import { EuiTableRow, EuiTableHeader, EuiTableHeaderCell, EuiIconTip } from '@elastic/eui'; +import { EuiTableRow, EuiTableHeaderCell } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; export const TextFieldsHeader: React.FC = () => { return ( <> - - - - {i18n.translate('xpack.enterpriseSearch.appSearch.engine.resultSettings.table.rawTitle', { - defaultMessage: 'Raw', - })} - - - - {i18n.translate( - 'xpack.enterpriseSearch.appSearch.engine.resultSettings.table.highlightingTitle', - { - defaultMessage: 'Highlighting', - } - )} - tags for highlighting. Fallback will look for a snippet match, but fallback to an escaped raw value if none is found. Range is between 20-1000. Defaults to 100.', - } - )} - /> - - {i18n.translate( From a0828c6797ad1eb82490f002a35998047d7021a0 Mon Sep 17 00:00:00 2001 From: James Rodewig <40268737+jrodewig@users.noreply.github.com> Date: Fri, 2 Apr 2021 16:15:16 -0400 Subject: [PATCH 077/106] [DOCS] Fix docker run code snippet (#96157) The current docker run code snippet is malformed and renders incorrectly. This fixes the rendering. --- docs/setup/docker.asciidoc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/setup/docker.asciidoc b/docs/setup/docker.asciidoc index 25883307e69f0..31e7b25eb66b1 100644 --- a/docs/setup/docker.asciidoc +++ b/docs/setup/docker.asciidoc @@ -39,11 +39,13 @@ docker pull {docker-repo}:{version} === Run Kibana on Docker for development Kibana can be quickly started and connected to a local Elasticsearch container for development or testing use with the following command: --------------------------------------------- + +[source,sh,subs="attributes"] +---- docker run --link YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID:elasticsearch -p 5601:5601 {docker-repo}:{version} --------------------------------------------- -endif::[] +---- +endif::[] [float] [[configuring-kibana-docker]] === Configure Kibana on Docker From c97c51876e4bcf1abd8a8ea60e771ec66e7049be Mon Sep 17 00:00:00 2001 From: Constance Date: Fri, 2 Apr 2021 14:28:18 -0700 Subject: [PATCH 078/106] Remove incorrect error toast on successful poll (#96159) --- .../app_search/components/api_logs/api_logs_logic.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts index 4d0d80cf2c24b..a9186bd4d66cf 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.ts @@ -117,10 +117,6 @@ export const ApiLogsLogic = kea>({ // while polls are stored in-state until the user manually triggers the 'Refresh' action if (isPoll) { actions.onPollInterval(response); - flashErrorToast(POLLING_ERROR_TITLE, { - text: POLLING_ERROR_TEXT, - toastLifeTimeMs: POLLING_DURATION * 0.75, - }); } else { actions.updateView(response); } From 8ccb0d4ca37b4ca655c399ab72b9f2cb51d608d4 Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Fri, 2 Apr 2021 18:02:54 -0500 Subject: [PATCH 079/106] [docker] Consistent timestamps across builds (#96081) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- src/dev/build/tasks/os_packages/create_os_package_tasks.ts | 7 +++++++ src/dev/build/tasks/os_packages/docker_generator/run.ts | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dev/build/tasks/os_packages/create_os_package_tasks.ts b/src/dev/build/tasks/os_packages/create_os_package_tasks.ts index e37a61582c6a8..2ae882000cae0 100644 --- a/src/dev/build/tasks/os_packages/create_os_package_tasks.ts +++ b/src/dev/build/tasks/os_packages/create_os_package_tasks.ts @@ -49,6 +49,7 @@ export const CreateRpmPackage: Task = { }, }; +const dockerBuildDate = new Date().toISOString(); export const CreateDockerCentOS: Task = { description: 'Creating Docker CentOS image', @@ -57,11 +58,13 @@ export const CreateDockerCentOS: Task = { architecture: 'x64', context: false, image: true, + dockerBuildDate, }); await runDockerGenerator(config, log, build, { architecture: 'aarch64', context: false, image: true, + dockerBuildDate, }); }, }; @@ -76,6 +79,7 @@ export const CreateDockerUBI: Task = { context: false, ubi: true, image: true, + dockerBuildDate, }); } }, @@ -88,6 +92,7 @@ export const CreateDockerContexts: Task = { await runDockerGenerator(config, log, build, { context: true, image: false, + dockerBuildDate, }); if (!build.isOss()) { @@ -95,11 +100,13 @@ export const CreateDockerContexts: Task = { ubi: true, context: true, image: false, + dockerBuildDate, }); await runDockerGenerator(config, log, build, { ironbank: true, context: true, image: false, + dockerBuildDate, }); } }, diff --git a/src/dev/build/tasks/os_packages/docker_generator/run.ts b/src/dev/build/tasks/os_packages/docker_generator/run.ts index 8bf876b558431..c72112b7b6b03 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/run.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/run.ts @@ -33,6 +33,7 @@ export async function runDockerGenerator( image: boolean; ubi?: boolean; ironbank?: boolean; + dockerBuildDate?: string; } ) { // UBI var config @@ -53,7 +54,7 @@ export async function runDockerGenerator( const artifactPrefix = `kibana${artifactFlavor}-${version}-linux`; const artifactTarball = `${artifactPrefix}-${artifactArchitecture}.tar.gz`; const artifactsDir = config.resolveFromTarget('.'); - const dockerBuildDate = new Date().toISOString(); + const dockerBuildDate = flags.dockerBuildDate || new Date().toISOString(); // That would produce oss, default and default-ubi7 const dockerBuildDir = config.resolveFromRepo( 'build', From 7d0920bbfa244c20c05ac94f9f9fb6ac1c19867b Mon Sep 17 00:00:00 2001 From: Larry Gregory Date: Fri, 2 Apr 2021 23:26:35 -0400 Subject: [PATCH 080/106] Replace lodash templates with static react renderer for field formatters (#96048) --- .../field_formats/converters/color.test.ts | 14 ++--- .../converters/{color.ts => color.tsx} | 23 +++++--- .../field_formats/converters/source.test.ts | 16 ++++++ .../converters/{source.ts => source.tsx} | 52 +++++++++---------- 4 files changed, 62 insertions(+), 43 deletions(-) rename src/plugins/data/common/field_formats/converters/{color.ts => color.tsx} (79%) rename src/plugins/data/common/field_formats/converters/{source.ts => source.tsx} (62%) diff --git a/src/plugins/data/common/field_formats/converters/color.test.ts b/src/plugins/data/common/field_formats/converters/color.test.ts index 9ce00db10b28d..4b7f2733f56fc 100644 --- a/src/plugins/data/common/field_formats/converters/color.test.ts +++ b/src/plugins/data/common/field_formats/converters/color.test.ts @@ -28,10 +28,10 @@ describe('Color Format', () => { expect(colorer.convert(99, HTML_CONTEXT_TYPE)).toBe('99'); expect(colorer.convert(100, HTML_CONTEXT_TYPE)).toBe( - '100' + '100' ); expect(colorer.convert(150, HTML_CONTEXT_TYPE)).toBe( - '150' + '150' ); expect(colorer.convert(151, HTML_CONTEXT_TYPE)).toBe('151'); }); @@ -74,22 +74,22 @@ describe('Color Format', () => { expect(converter('B', HTML_CONTEXT_TYPE)).toBe('B'); expect(converter('AAA', HTML_CONTEXT_TYPE)).toBe( - 'AAA' + 'AAA' ); expect(converter('AB', HTML_CONTEXT_TYPE)).toBe( - 'AB' + 'AB' ); expect(converter('a', HTML_CONTEXT_TYPE)).toBe('a'); expect(converter('B', HTML_CONTEXT_TYPE)).toBe('B'); expect(converter('AAA', HTML_CONTEXT_TYPE)).toBe( - 'AAA' + 'AAA' ); expect(converter('AB', HTML_CONTEXT_TYPE)).toBe( - 'AB' + 'AB' ); expect(converter('AB <', HTML_CONTEXT_TYPE)).toBe( - 'AB <' + 'AB <' ); expect(converter('a', HTML_CONTEXT_TYPE)).toBe('a'); }); diff --git a/src/plugins/data/common/field_formats/converters/color.ts b/src/plugins/data/common/field_formats/converters/color.tsx similarity index 79% rename from src/plugins/data/common/field_formats/converters/color.ts rename to src/plugins/data/common/field_formats/converters/color.tsx index f4603f32acc15..98f25fdf81811 100644 --- a/src/plugins/data/common/field_formats/converters/color.ts +++ b/src/plugins/data/common/field_formats/converters/color.tsx @@ -7,15 +7,15 @@ */ import { i18n } from '@kbn/i18n'; -import { findLast, cloneDeep, template, escape } from 'lodash'; +import React from 'react'; +import ReactDOM from 'react-dom/server'; +import { findLast, cloneDeep, escape } from 'lodash'; import { KBN_FIELD_TYPES } from '../../kbn_field_types/types'; import { FieldFormat } from '../field_format'; import { HtmlContextTypeConvert, FIELD_FORMAT_IDS } from '../types'; import { asPrettyString } from '../utils'; import { DEFAULT_CONVERTER_COLOR } from '../constants/color_default'; -const convertTemplate = template('<%- val %>'); - export class ColorFormat extends FieldFormat { static id = FIELD_FORMAT_IDS.COLOR; static title = i18n.translate('data.fieldFormats.color.title', { @@ -51,11 +51,18 @@ export class ColorFormat extends FieldFormat { htmlConvert: HtmlContextTypeConvert = (val) => { const color = this.findColorRuleForVal(val) as typeof DEFAULT_CONVERTER_COLOR; - if (!color) return escape(asPrettyString(val)); - let style = ''; - if (color.text) style += `color: ${color.text};`; - if (color.background) style += `background-color: ${color.background};`; - return convertTemplate({ val, style }); + const displayVal = escape(asPrettyString(val)); + if (!color) return displayVal; + + return ReactDOM.renderToStaticMarkup( + + ); }; } diff --git a/src/plugins/data/common/field_formats/converters/source.test.ts b/src/plugins/data/common/field_formats/converters/source.test.ts index f0576142892e2..655cf315a05a4 100644 --- a/src/plugins/data/common/field_formats/converters/source.test.ts +++ b/src/plugins/data/common/field_formats/converters/source.test.ts @@ -9,6 +9,7 @@ import { SourceFormat } from './source'; import { HtmlContextTypeConvert } from '../types'; import { HTML_CONTEXT_TYPE } from '../content_types'; +import { stubIndexPatternWithFields } from '../../index_patterns/index_pattern.stub'; describe('Source Format', () => { let convertHtml: Function; @@ -31,4 +32,19 @@ describe('Source Format', () => { '{"foo":"bar","number":42,"hello":"<h1>World</h1>","also":"with \\"quotes\\" or 'single quotes'"}' ); }); + + test('should render a description list if a field is passed', () => { + const hit = { + foo: 'bar', + number: 42, + hello: '

World

', + also: 'with "quotes" or \'single quotes\'', + }; + + const indexPattern = { ...stubIndexPatternWithFields, formatHit: (h: string) => h }; + + expect(convertHtml(hit, { field: 'field', indexPattern, hit })).toMatchInlineSnapshot( + `"
foo:
bar
number:
42
hello:

World

also:
with \\"quotes\\" or 'single quotes'
"` + ); + }); }); diff --git a/src/plugins/data/common/field_formats/converters/source.ts b/src/plugins/data/common/field_formats/converters/source.tsx similarity index 62% rename from src/plugins/data/common/field_formats/converters/source.ts rename to src/plugins/data/common/field_formats/converters/source.tsx index bacfc1ab4c737..d6176b321f3f3 100644 --- a/src/plugins/data/common/field_formats/converters/source.ts +++ b/src/plugins/data/common/field_formats/converters/source.tsx @@ -6,40 +6,34 @@ * Side Public License, v 1. */ -import { template, escape, keys } from 'lodash'; +import React, { Fragment } from 'react'; +import ReactDOM from 'react-dom/server'; +import { escape, keys } from 'lodash'; import { shortenDottedString } from '../../utils'; import { KBN_FIELD_TYPES } from '../../kbn_field_types/types'; import { FieldFormat } from '../field_format'; import { TextContextTypeConvert, HtmlContextTypeConvert, FIELD_FORMAT_IDS } from '../types'; import { UI_SETTINGS } from '../../constants'; -/** - * Remove all of the whitespace between html tags - * so that inline elements don't have extra spaces. - * - * If you have inline elements (span, a, em, etc.) and any - * amount of whitespace around them in your markup, then the - * browser will push them apart. This is ugly in certain - * scenarios and is only fixed by removing the whitespace - * from the html in the first place (or ugly css hacks). - * - * @param {string} html - the html to modify - * @return {string} - modified html - */ -function noWhiteSpace(html: string) { - const TAGS_WITH_WS = />\s+<'); +interface Props { + defPairs: Array<[string, string]>; } - -const templateHtml = ` -
- <% defPairs.forEach(function (def) { %> -
<%- def[0] %>:
-
<%= def[1] %>
- <%= ' ' %> - <% }); %> -
`; -const doTemplate = template(noWhiteSpace(templateHtml)); +const TemplateComponent = ({ defPairs }: Props) => { + return ( +
+ {defPairs.map((pair, idx) => ( + +
+
{' '} + + ))} +
+ ); +}; export class SourceFormat extends FieldFormat { static id = FIELD_FORMAT_IDS._SOURCE; @@ -70,6 +64,8 @@ export class SourceFormat extends FieldFormat { pairs.push([newField, val]); }, []); - return doTemplate({ defPairs: highlightPairs.concat(sourcePairs) }); + return ReactDOM.renderToStaticMarkup( + + ); }; } From f8a6ba223ac5d44c627458176859050ab3f4d200 Mon Sep 17 00:00:00 2001 From: Spencer Date: Sun, 4 Apr 2021 09:15:14 -0700 Subject: [PATCH 081/106] stop wrapping steps in runbld (#96195) Co-authored-by: spalger --- vars/runbld.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vars/runbld.groovy b/vars/runbld.groovy index e52bc244c65cb..1a8ebec18d485 100644 --- a/vars/runbld.groovy +++ b/vars/runbld.groovy @@ -1,8 +1,8 @@ def call(script, label, enableJunitProcessing = false) { - def extraConfig = enableJunitProcessing ? "" : "--config ${env.WORKSPACE}/kibana/.ci/runbld_no_junit.yml" + // def extraConfig = enableJunitProcessing ? "" : "--config ${env.WORKSPACE}/kibana/.ci/runbld_no_junit.yml" sh( - script: "/usr/local/bin/runbld -d '${pwd()}' ${extraConfig} ${script}", + script: script, label: label ?: script ) } From 763c0038ae965ce8633b8c247999469b321e3371 Mon Sep 17 00:00:00 2001 From: spalger Date: Sun, 4 Apr 2021 09:34:58 -0700 Subject: [PATCH 082/106] Revert "stop wrapping steps in runbld (#96195)" This reverts commit f8a6ba223ac5d44c627458176859050ab3f4d200. --- vars/runbld.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vars/runbld.groovy b/vars/runbld.groovy index 1a8ebec18d485..e52bc244c65cb 100644 --- a/vars/runbld.groovy +++ b/vars/runbld.groovy @@ -1,8 +1,8 @@ def call(script, label, enableJunitProcessing = false) { - // def extraConfig = enableJunitProcessing ? "" : "--config ${env.WORKSPACE}/kibana/.ci/runbld_no_junit.yml" + def extraConfig = enableJunitProcessing ? "" : "--config ${env.WORKSPACE}/kibana/.ci/runbld_no_junit.yml" sh( - script: script, + script: "/usr/local/bin/runbld -d '${pwd()}' ${extraConfig} ${script}", label: label ?: script ) } From cf22394807f0112dbe415acfdfdc75e3dc636e2e Mon Sep 17 00:00:00 2001 From: Spencer Date: Sun, 4 Apr 2021 11:40:42 -0700 Subject: [PATCH 083/106] pass script to bash to support scripts which aren't actually executable (#96198) Co-authored-by: spalger --- vars/runbld.groovy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vars/runbld.groovy b/vars/runbld.groovy index e52bc244c65cb..80416d4fa9a41 100644 --- a/vars/runbld.groovy +++ b/vars/runbld.groovy @@ -1,8 +1,8 @@ def call(script, label, enableJunitProcessing = false) { - def extraConfig = enableJunitProcessing ? "" : "--config ${env.WORKSPACE}/kibana/.ci/runbld_no_junit.yml" + // def extraConfig = enableJunitProcessing ? "" : "--config ${env.WORKSPACE}/kibana/.ci/runbld_no_junit.yml" sh( - script: "/usr/local/bin/runbld -d '${pwd()}' ${extraConfig} ${script}", + script: "bash ${script}", label: label ?: script ) } From 8c8323abfd5863825a001081ed090581b223d5b7 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Mon, 5 Apr 2021 14:01:24 +0200 Subject: [PATCH 084/106] [Search Sessions] fix updating deleting sessions from non-default space (#96123) * add spaces test * fix updating and deleting sessions in non-default space * revert back to batch update * Add space tests Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Liza K --- .../session/check_running_sessions.test.ts | 90 ++++++++++- .../search/session/check_running_sessions.ts | 43 ++++- .../api_integration/apis/search/session.ts | 153 ++++++++++++++++++ 3 files changed, 278 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts index f9c62069154b6..2611f6c9da19f 100644 --- a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts +++ b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.test.ts @@ -13,9 +13,13 @@ import { EQL_SEARCH_STRATEGY, } from '../../../common'; import { savedObjectsClientMock } from '../../../../../../src/core/server/mocks'; -import type { SavedObjectsClientContract } from 'kibana/server'; import { SearchSessionsConfig, SearchStatus } from './types'; import moment from 'moment'; +import { + SavedObjectsBulkUpdateObject, + SavedObjectsDeleteOptions, + SavedObjectsClientContract, +} from '../../../../../../src/core/server'; describe('getSearchStatus', () => { let mockClient: any; @@ -263,6 +267,45 @@ describe('getSearchStatus', () => { expect(savedObjectsClient.delete).not.toBeCalled(); }); + test('deletes in space', async () => { + savedObjectsClient.find.mockResolvedValue({ + saved_objects: [ + { + id: '123', + namespaces: ['awesome'], + attributes: { + persisted: false, + status: SearchSessionStatus.IN_PROGRESS, + created: moment().subtract(moment.duration(3, 'm')), + touched: moment().subtract(moment.duration(2, 'm')), + idMapping: { + 'map-key': { + strategy: ENHANCED_ES_SEARCH_STRATEGY, + id: 'async-id', + }, + }, + }, + }, + ], + total: 1, + } as any); + + await checkRunningSessions( + { + savedObjectsClient, + client: mockClient, + logger: mockLogger, + }, + config + ); + + expect(savedObjectsClient.delete).toBeCalled(); + + const [, id, opts] = savedObjectsClient.delete.mock.calls[0]; + expect(id).toBe('123'); + expect((opts as SavedObjectsDeleteOptions).namespace).toBe('awesome'); + }); + test('deletes a non persisted, abandoned session', async () => { savedObjectsClient.find.mockResolvedValue({ saved_objects: [ @@ -479,6 +522,50 @@ describe('getSearchStatus', () => { expect(savedObjectsClient.delete).not.toBeCalled(); }); + test('updates in space', async () => { + savedObjectsClient.bulkUpdate = jest.fn(); + const so = { + namespaces: ['awesome'], + attributes: { + status: SearchSessionStatus.IN_PROGRESS, + touched: '123', + idMapping: { + 'search-hash': { + id: 'search-id', + strategy: 'cool', + status: SearchStatus.IN_PROGRESS, + }, + }, + }, + }; + savedObjectsClient.find.mockResolvedValue({ + saved_objects: [so], + total: 1, + } as any); + + mockClient.asyncSearch.status.mockResolvedValue({ + body: { + is_partial: false, + is_running: false, + completion_status: 200, + }, + }); + + await checkRunningSessions( + { + savedObjectsClient, + client: mockClient, + logger: mockLogger, + }, + config + ); + + expect(mockClient.asyncSearch.status).toBeCalledWith({ id: 'search-id' }); + const [updateInput] = savedObjectsClient.bulkUpdate.mock.calls[0]; + const updatedAttributes = updateInput[0] as SavedObjectsBulkUpdateObject; + expect(updatedAttributes.namespace).toBe('awesome'); + }); + test('updates to complete if the search is done', async () => { savedObjectsClient.bulkUpdate = jest.fn(); const so = { @@ -563,7 +650,6 @@ describe('getSearchStatus', () => { config ); const [updateInput] = savedObjectsClient.bulkUpdate.mock.calls[0]; - const updatedAttributes = updateInput[0].attributes as SearchSessionSavedObjectAttributes; expect(updatedAttributes.status).toBe(SearchSessionStatus.ERROR); expect(updatedAttributes.idMapping['search-hash'].status).toBe(SearchStatus.ERROR); diff --git a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts index e521c39d7cfd3..6e52b17f36803 100644 --- a/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts +++ b/x-pack/plugins/data_enhanced/server/search/session/check_running_sessions.ts @@ -10,6 +10,7 @@ import { Logger, SavedObjectsClientContract, SavedObjectsFindResult, + SavedObjectsUpdateResponse, } from 'kibana/server'; import moment from 'moment'; import { EMPTY, from } from 'rxjs'; @@ -169,12 +170,20 @@ export async function checkRunningSessions( if (!session.attributes.persisted) { if (isSessionStale(session, config, logger)) { - deleted = true; // delete saved object to free up memory // TODO: there's a potential rare edge case of deleting an object and then receiving a new trackId for that same session! // Maybe we want to change state to deleted and cleanup later? logger.debug(`Deleting stale session | ${session.id}`); - await savedObjectsClient.delete(SEARCH_SESSION_TYPE, session.id); + try { + await savedObjectsClient.delete(SEARCH_SESSION_TYPE, session.id, { + namespace: session.namespaces?.[0], + }); + deleted = true; + } catch (e) { + logger.error( + `Error while deleting stale search session ${session.id}: ${e.message}` + ); + } // Send a delete request for each async search to ES Object.keys(session.attributes.idMapping).map(async (searchKey: string) => { @@ -183,8 +192,8 @@ export async function checkRunningSessions( try { await client.asyncSearch.delete({ id: searchInfo.id }); } catch (e) { - logger.debug( - `Error ignored while deleting async_search ${searchInfo.id}: ${e.message}` + logger.error( + `Error while deleting async_search ${searchInfo.id}: ${e.message}` ); } } @@ -202,9 +211,31 @@ export async function checkRunningSessions( if (updatedSessions.length) { // If there's an error, we'll try again in the next iteration, so there's no need to check the output. const updatedResponse = await savedObjectsClient.bulkUpdate( - updatedSessions + updatedSessions.map((session) => ({ + ...session, + namespace: session.namespaces?.[0], + })) + ); + + const success: Array< + SavedObjectsUpdateResponse + > = []; + const fail: Array> = []; + + updatedResponse.saved_objects.forEach((savedObjectResponse) => { + if ('error' in savedObjectResponse) { + fail.push(savedObjectResponse); + logger.error( + `Error while updating search session ${savedObjectResponse?.id}: ${savedObjectResponse.error?.message}` + ); + } else { + success.push(savedObjectResponse); + } + }); + + logger.debug( + `Updating search sessions: success: ${success.length}, fail: ${fail.length}` ); - logger.debug(`Updated ${updatedResponse.saved_objects.length} search sessions`); } }) ) diff --git a/x-pack/test/api_integration/apis/search/session.ts b/x-pack/test/api_integration/apis/search/session.ts index 50bc85ed1e793..63a6a842fd9f7 100644 --- a/x-pack/test/api_integration/apis/search/session.ts +++ b/x-pack/test/api_integration/apis/search/session.ts @@ -14,6 +14,7 @@ export default function ({ getService }: FtrProviderContext) { const supertestWithoutAuth = getService('supertestWithoutAuth'); const security = getService('security'); const retry = getService('retry'); + const spacesService = getService('spaces'); describe('search session', () => { describe('session management', () => { @@ -596,5 +597,157 @@ export default function ({ getService }: FtrProviderContext) { .expect(403); }); }); + + describe('in non-default space', () => { + const spaceId = 'foo-space'; + before(async () => { + try { + await spacesService.create({ + id: spaceId, + name: 'Foo Space', + }); + } catch { + // might already be created + } + }); + + after(async () => { + await spacesService.delete(spaceId); + }); + + it('should complete and delete non-persistent sessions', async () => { + const sessionId = `my-session-${Math.random()}`; + + // run search + const searchRes = await supertest + .post(`/s/${spaceId}/internal/search/ese`) + .set('kbn-xsrf', 'foo') + .send({ + sessionId, + params: { + body: { + query: { + term: { + agent: '1', + }, + }, + }, + wait_for_completion_timeout: '1ms', + }, + }) + .expect(200); + + const { id } = searchRes.body; + + await retry.waitForWithTimeout('searches persisted into session', 5000, async () => { + const resp = await supertest + .get(`/s/${spaceId}/internal/session/${sessionId}`) + .set('kbn-xsrf', 'foo') + .expect(200); + + const { touched, created, persisted, idMapping } = resp.body.attributes; + expect(persisted).to.be(false); + expect(touched).not.to.be(undefined); + expect(created).not.to.be(undefined); + + const idMappings = Object.values(idMapping).map((value: any) => value.id); + expect(idMappings).to.contain(id); + return true; + }); + + // not touched timeout in tests is 15s, wait to give a chance for status to update + await new Promise((resolve) => + setTimeout(() => { + resolve(void 0); + }, 15_000) + ); + + await retry.waitForWithTimeout( + 'searches eventually complete and session gets into the complete state', + 30_000, + async () => { + await supertest + .get(`/s/${spaceId}/internal/session/${sessionId}`) + .set('kbn-xsrf', 'foo') + .expect(404); + + return true; + } + ); + }); + + it('should complete persisten session', async () => { + const sessionId = `my-session-${Math.random()}`; + + // run search + const searchRes = await supertest + .post(`/s/${spaceId}/internal/search/ese`) + .set('kbn-xsrf', 'foo') + .send({ + sessionId, + params: { + body: { + query: { + term: { + agent: '1', + }, + }, + }, + wait_for_completion_timeout: '1ms', + }, + }) + .expect(200); + + const { id } = searchRes.body; + + // persist session + await supertest + .post(`/s/${spaceId}/internal/session`) + .set('kbn-xsrf', 'foo') + .send({ + sessionId, + name: 'My Session', + appId: 'discover', + expires: '123', + urlGeneratorId: 'discover', + }) + .expect(200); + + await retry.waitForWithTimeout('searches persisted into session', 5000, async () => { + const resp = await supertest + .get(`/s/${spaceId}/internal/session/${sessionId}`) + .set('kbn-xsrf', 'foo') + .expect(200); + + const { touched, created, persisted, idMapping } = resp.body.attributes; + expect(persisted).to.be(true); + expect(touched).not.to.be(undefined); + expect(created).not.to.be(undefined); + + const idMappings = Object.values(idMapping).map((value: any) => value.id); + expect(idMappings).to.contain(id); + return true; + }); + + // session refresh interval is 5 seconds, wait to give a chance for status to update + await new Promise((resolve) => setTimeout(resolve, 5000)); + + await retry.waitForWithTimeout( + 'searches eventually complete and session gets into the complete state', + 5000, + async () => { + const resp = await supertest + .get(`/s/${spaceId}/internal/session/${sessionId}`) + .set('kbn-xsrf', 'foo') + .expect(200); + + const { status } = resp.body.attributes; + + expect(status).to.be(SearchSessionStatus.COMPLETE); + return true; + } + ); + }); + }); }); } From 413477b788eeaf83edf6036603c120ffb3b2f4b7 Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 5 Apr 2021 13:36:28 +0100 Subject: [PATCH 085/106] skip flaky suite (#96113) --- test/functional/apps/discover/_huge_fields.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/functional/apps/discover/_huge_fields.ts b/test/functional/apps/discover/_huge_fields.ts index 8cb39feb2e6bb..b3e63e482e734 100644 --- a/test/functional/apps/discover/_huge_fields.ts +++ b/test/functional/apps/discover/_huge_fields.ts @@ -15,7 +15,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const kibanaServer = getService('kibanaServer'); const testSubjects = getService('testSubjects'); - describe('test large number of fields in sidebar', function () { + // FLAKY: https://github.com/elastic/kibana/issues/96113 + describe.skip('test large number of fields in sidebar', function () { before(async function () { await security.testUser.setRoles(['kibana_admin', 'test_testhuge_reader'], false); await esArchiver.loadIfNeeded('large_fields'); From b670ef29ae80f77d3bc2fa7dcc652d173efa985f Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Mon, 5 Apr 2021 15:57:42 +0300 Subject: [PATCH 086/106] [TSVB] fix wrong field list on overriding index pattern for series (#96204) --- .../public/application/components/aggs/agg.tsx | 6 +++--- .../public/application/components/aggs/filter_ratio.js | 5 +++-- .../public/application/components/aggs/percentile.js | 5 +++-- .../public/application/components/aggs/positive_rate.js | 6 +++--- .../public/application/components/aggs/std_agg.js | 5 +++-- .../public/application/components/aggs/std_deviation.js | 5 +++-- .../public/application/components/aggs/top_hit.js | 5 +++-- .../public/application/components/series_config.js | 7 +++---- .../public/application/components/split.js | 5 +++-- .../application/components/vis_types/timeseries/config.js | 7 +++---- 10 files changed, 30 insertions(+), 26 deletions(-) diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/agg.tsx b/src/plugins/vis_type_timeseries/public/application/components/aggs/agg.tsx index 25965d796e651..d02565717b247 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/aggs/agg.tsx +++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/agg.tsx @@ -48,9 +48,9 @@ export function Agg(props: AggProps) { ...props.style, }; - const indexPattern = - (props.series.override_index_pattern && props.series.series_index_pattern) || - props.panel.index_pattern; + const indexPattern = props.series.override_index_pattern + ? props.series.series_index_pattern + : props.panel.index_pattern; return (
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/filter_ratio.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/filter_ratio.js index 19d2b88c8d123..7f93567980b2d 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/aggs/filter_ratio.js +++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/filter_ratio.js @@ -51,8 +51,9 @@ export const FilterRatioAgg = (props) => { (query) => handleChange({ denominator: query }), [handleChange] ); - const indexPattern = - (series.override_index_pattern && series.series_index_pattern) || panel.index_pattern; + const indexPattern = series.override_index_pattern + ? series.series_index_pattern + : panel.index_pattern; const defaults = { numerator: getDataStart().query.queryString.getDefaultQuery(), diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/percentile.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/percentile.js index 505a2ff4f3c78..77b2e2f020307 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/aggs/percentile.js +++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/percentile.js @@ -39,8 +39,9 @@ export function PercentileAgg(props) { const handleSelectChange = createSelectHandler(handleChange); const handleNumberChange = createNumberHandler(handleChange); - const indexPattern = - (series.override_index_pattern && series.series_index_pattern) || panel.index_pattern; + const indexPattern = series.override_index_pattern + ? series.series_index_pattern + : panel.index_pattern; useEffect(() => { if (!checkModel(model)) { diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_rate.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_rate.js index a80194f72b7b2..4b1528ca27081 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_rate.js +++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_rate.js @@ -65,9 +65,9 @@ export const PositiveRateAgg = (props) => { const handleSelectChange = createSelectHandler(handleChange); const htmlId = htmlIdGenerator(); - const indexPattern = - (props.series.override_index_pattern && props.series.series_index_pattern) || - props.panel.index_pattern; + const indexPattern = props.series.override_index_pattern + ? props.series.series_index_pattern + : props.panel.index_pattern; const selectedUnitOptions = UNIT_OPTIONS.filter((o) => o.value === model.unit); diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/std_agg.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/std_agg.js index 4a4114f70f06a..74b441f446308 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/aggs/std_agg.js +++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/std_agg.js @@ -31,8 +31,9 @@ export function StandardAgg(props) { const handleSelectChange = createSelectHandler(handleChange); const restrictFields = getSupportedFieldsByMetricType(model.type); - const indexPattern = - (series.override_index_pattern && series.series_index_pattern) || panel.index_pattern; + const indexPattern = series.override_index_pattern + ? series.series_index_pattern + : panel.index_pattern; const htmlId = htmlIdGenerator(); return ( diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/std_deviation.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/std_deviation.js index c28cb294c3308..749a97fa79f28 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/aggs/std_deviation.js +++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/std_deviation.js @@ -72,8 +72,9 @@ const StandardDeviationAggUi = (props) => { const handleSelectChange = createSelectHandler(handleChange); const handleTextChange = createTextHandler(handleChange); - const indexPattern = - (series.override_index_pattern && series.series_index_pattern) || panel.index_pattern; + const indexPattern = series.override_index_pattern + ? series.series_index_pattern + : panel.index_pattern; const htmlId = htmlIdGenerator(); const selectedModeOption = modeOptions.find((option) => { return model.mode === option.value; diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/top_hit.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/top_hit.js index 9bea32b7cbd5b..92e754c1dcdaf 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/aggs/top_hit.js +++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/top_hit.js @@ -100,8 +100,9 @@ const TopHitAggUi = (props) => { order: 'desc', }; const model = { ...defaults, ...props.model }; - const indexPattern = - (series.override_index_pattern && series.series_index_pattern) || panel.index_pattern; + const indexPattern = series.override_index_pattern + ? series.series_index_pattern + : panel.index_pattern; const aggWithOptionsRestrictFields = [ PANEL_TYPES.TABLE, diff --git a/src/plugins/vis_type_timeseries/public/application/components/series_config.js b/src/plugins/vis_type_timeseries/public/application/components/series_config.js index 3185503acb569..8f3893feb89bd 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/series_config.js +++ b/src/plugins/vis_type_timeseries/public/application/components/series_config.js @@ -33,10 +33,9 @@ export const SeriesConfig = (props) => { const handleSelectChange = createSelectHandler(props.onChange); const handleTextChange = createTextHandler(props.onChange); const htmlId = htmlIdGenerator(); - const seriesIndexPattern = - props.model.override_index_pattern && props.model.series_index_pattern - ? props.model.series_index_pattern - : props.indexPatternForQuery; + const seriesIndexPattern = props.model.override_index_pattern + ? props.model.series_index_pattern + : props.indexPatternForQuery; return (
diff --git a/src/plugins/vis_type_timeseries/public/application/components/split.js b/src/plugins/vis_type_timeseries/public/application/components/split.js index 63aa717174a04..4990800acf6db 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/split.js +++ b/src/plugins/vis_type_timeseries/public/application/components/split.js @@ -63,8 +63,9 @@ export class Split extends Component { render() { const { model, panel, uiRestrictions, seriesQuantity } = this.props; - const indexPattern = - (model.override_index_pattern && model.series_index_pattern) || panel.index_pattern; + const indexPattern = model.override_index_pattern + ? model.series_index_pattern + : panel.index_pattern; const splitMode = get(this.props, 'model.split_mode', SPLIT_MODES.EVERYTHING); const Component = this.getComponent(splitMode, uiRestrictions); diff --git a/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js b/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js index 22bf2fa4ca708..1c3a0411998b0 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js +++ b/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js @@ -327,10 +327,9 @@ export const TimeseriesConfig = injectI18n(function (props) { const disableSeparateYaxis = model.separate_axis ? false : true; - const seriesIndexPattern = - props.model.override_index_pattern && props.model.series_index_pattern - ? props.model.series_index_pattern - : props.indexPatternForQuery; + const seriesIndexPattern = props.model.override_index_pattern + ? props.model.series_index_pattern + : props.indexPatternForQuery; const initialPalette = { ...model.palette, From 76acef0c2ceeeb38e76ac6979ee6bcbda099561c Mon Sep 17 00:00:00 2001 From: Caroline Horn <549577+cchaos@users.noreply.github.com> Date: Mon, 5 Apr 2021 09:05:30 -0400 Subject: [PATCH 087/106] [KQL] Fixed styles of KQL textarea for the K8 theme (#96190) * Fixed style of KQL textarea for K8 theme and some general heights and borders * Fix popover paddings --- .../ui/filter_bar/filter_editor/index.tsx | 2 +- .../public/ui/filter_bar/filter_options.tsx | 2 +- .../ui/query_string_input/_query_bar.scss | 17 +++++++++++++++-- .../ui/query_string_input/language_switcher.tsx | 2 +- .../saved_query_management_component.tsx | 4 ++-- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx b/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx index 5639229e1ff31..d2f04228ed396 100644 --- a/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx +++ b/src/plugins/data/public/ui/filter_bar/filter_editor/index.tsx @@ -85,7 +85,7 @@ class FilterEditorUI extends Component { public render() { return (
- + { panelPaddingSize="none" repositionOnScroll > - +
- +

- + {savedQueryPopoverTitleText} {savedQueries.length > 0 ? ( @@ -234,7 +234,7 @@ export function SavedQueryManagementComponent({ )} - + Date: Mon, 5 Apr 2021 15:26:48 +0200 Subject: [PATCH 088/106] [Observability] Exploratory View initial skeleton (#94426) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- tsconfig.json | 1 + x-pack/plugins/observability/kibana.json | 2 +- .../public/assets/kibana_dashboard_dark.svg | 116 ++++++ .../public/assets/kibana_dashboard_light.svg | 116 ++++++ .../public/components/app/header/index.tsx | 4 +- .../components/empty_view.tsx | 32 ++ .../components/filter_label.test.tsx | 138 +++++++ .../components/filter_label.tsx | 90 ++++ .../configurations/constants.ts | 73 ++++ .../configurations/cpu_usage_config.ts | 42 ++ .../data/elasticsearch_fieldnames.ts | 144 +++++++ .../configurations/data/sample_attribute.ts | 74 ++++ .../data/test_index_pattern.json | 11 + .../configurations/default_configs.ts | 52 +++ .../configurations/kpi_trends_config.ts | 73 ++++ .../configurations/lens_attributes.test.ts | 387 ++++++++++++++++++ .../configurations/lens_attributes.ts | 273 ++++++++++++ .../configurations/logs_frequency_config.ts | 39 ++ .../configurations/memory_usage_config.ts | 42 ++ .../configurations/monitor_duration_config.ts | 48 +++ .../configurations/monitor_pings_config.ts | 43 ++ .../configurations/network_activity_config.ts | 41 ++ .../configurations/performance_dist_config.ts | 86 ++++ .../configurations/service_latency_config.ts | 52 +++ .../service_throughput_config.ts | 55 +++ .../configurations/url_constants.ts | 15 + .../exploratory_view/configurations/utils.ts | 54 +++ .../exploratory_view.test.tsx | 93 +++++ .../exploratory_view/exploratory_view.tsx | 87 ++++ .../exploratory_view/header/header.test.tsx | 53 +++ .../shared/exploratory_view/header/header.tsx | 63 +++ .../hooks/use_default_index_pattern.tsx | 61 +++ .../hooks/use_init_exploratory_view.ts | 44 ++ .../hooks/use_lens_attributes.ts | 88 ++++ .../hooks/use_series_filters.ts | 100 +++++ .../hooks/use_url_strorage.tsx | 103 +++++ .../shared/exploratory_view/index.tsx | 64 +++ .../shared/exploratory_view/rtl_helpers.tsx | 318 ++++++++++++++ .../columns/data_types_col.test.tsx | 59 +++ .../series_builder/columns/data_types_col.tsx | 56 +++ .../columns/report_breakdowns.test.tsx | 75 ++++ .../columns/report_breakdowns.tsx | 15 + .../columns/report_definition_col.test.tsx | 75 ++++ .../columns/report_definition_col.tsx | 95 +++++ .../columns/report_filters.test.tsx | 28 ++ .../series_builder/columns/report_filters.tsx | 22 + .../columns/report_types_col.test.tsx | 65 +++ .../columns/report_types_col.tsx | 61 +++ .../series_builder/custom_report_field.tsx | 47 +++ .../series_builder/series_builder.tsx | 201 +++++++++ .../series_date_picker/index.tsx | 55 +++ .../series_date_picker.test.tsx | 76 ++++ .../series_editor/columns/actions_col.tsx | 31 ++ .../series_editor/columns/breakdowns.test.tsx | 49 +++ .../series_editor/columns/breakdowns.tsx | 65 +++ .../columns/chart_types.test.tsx | 56 +++ .../series_editor/columns/chart_types.tsx | 149 +++++++ .../series_editor/columns/date_picker_col.tsx | 20 + .../columns/filter_expanded.test.tsx | 93 +++++ .../series_editor/columns/filter_expanded.tsx | 100 +++++ .../columns/filter_value_btn.test.tsx | 238 +++++++++++ .../columns/filter_value_btn.tsx | 117 ++++++ .../columns/metric_selection.test.tsx | 112 +++++ .../columns/metric_selection.tsx | 86 ++++ .../series_editor/columns/remove_series.tsx | 35 ++ .../series_editor/columns/series_filter.tsx | 139 +++++++ .../series_editor/selected_filters.test.tsx | 33 ++ .../series_editor/selected_filters.tsx | 96 +++++ .../series_editor/series_editor.tsx | 139 +++++++ .../shared/exploratory_view/types.ts | 89 ++++ .../field_value_selection.tsx | 19 +- .../shared/field_value_suggestions/index.tsx | 24 +- .../public/context/has_data_context.test.tsx | 9 +- .../public/context/has_data_context.tsx | 46 ++- .../public/hooks/use_breadcrumbs.ts | 71 ++++ .../public/hooks/use_quick_time_ranges.tsx | 22 + .../public/hooks/use_values_list.ts | 46 ++- x-pack/plugins/observability/public/index.ts | 1 + .../observability/public/routes/index.tsx | 21 + .../utils/observability_index_patterns.ts | 64 +++ x-pack/plugins/observability/tsconfig.json | 9 +- x-pack/plugins/uptime/public/apps/plugin.ts | 27 +- 82 files changed, 6058 insertions(+), 55 deletions(-) create mode 100644 x-pack/plugins/observability/public/assets/kibana_dashboard_dark.svg create mode 100644 x-pack/plugins/observability/public/assets/kibana_dashboard_light.svg create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/components/empty_view.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/cpu_usage_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/elasticsearch_fieldnames.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/sample_attribute.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/test_index_pattern.json create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/kpi_trends_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/logs_frequency_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/memory_usage_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_duration_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_pings_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/network_activity_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/performance_dist_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_latency_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_throughput_config.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/url_constants.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_default_index_pattern.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_init_exploratory_view.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_series_filters.ts create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_url_strorage.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/index.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/custom_report_field.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/series_builder.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/index.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/series_date_picker.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/actions_col.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/remove_series.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_filter.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.test.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/series_editor.tsx create mode 100644 x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts create mode 100644 x-pack/plugins/observability/public/hooks/use_breadcrumbs.ts create mode 100644 x-pack/plugins/observability/public/hooks/use_quick_time_ranges.tsx create mode 100644 x-pack/plugins/observability/public/utils/observability_index_patterns.ts diff --git a/tsconfig.json b/tsconfig.json index 03597114333ca..30944ac71fcc8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -83,6 +83,7 @@ "x-pack/plugins/uptime/server/lib/requests/helper.ts", "x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx", "x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx", + "x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx", "x-pack/plugins/apm/server/utils/test_helpers.tsx", "x-pack/plugins/apm/public/utils/testHelpers.tsx", diff --git a/x-pack/plugins/observability/kibana.json b/x-pack/plugins/observability/kibana.json index 84aa1be9a8d87..5c47d0376581a 100644 --- a/x-pack/plugins/observability/kibana.json +++ b/x-pack/plugins/observability/kibana.json @@ -3,7 +3,7 @@ "version": "8.0.0", "kibanaVersion": "kibana", "configPath": ["xpack", "observability"], - "optionalPlugins": ["licensing", "home", "usageCollection"], + "optionalPlugins": ["licensing", "home", "usageCollection","lens"], "requiredPlugins": ["data"], "ui": true, "server": true, diff --git a/x-pack/plugins/observability/public/assets/kibana_dashboard_dark.svg b/x-pack/plugins/observability/public/assets/kibana_dashboard_dark.svg new file mode 100644 index 0000000000000..834dd98d60e4c --- /dev/null +++ b/x-pack/plugins/observability/public/assets/kibana_dashboard_dark.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/observability/public/assets/kibana_dashboard_light.svg b/x-pack/plugins/observability/public/assets/kibana_dashboard_light.svg new file mode 100644 index 0000000000000..958d25362c439 --- /dev/null +++ b/x-pack/plugins/observability/public/assets/kibana_dashboard_light.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/observability/public/components/app/header/index.tsx b/x-pack/plugins/observability/public/components/app/header/index.tsx index a41e3364d22b6..8b86e0b25379b 100644 --- a/x-pack/plugins/observability/public/components/app/header/index.tsx +++ b/x-pack/plugins/observability/public/components/app/header/index.tsx @@ -59,13 +59,13 @@ export function Header({ color, datePicker = null, restrictWidth }: Props) { - + - +

{i18n.translate('xpack.observability.home.title', { diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/components/empty_view.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/empty_view.tsx new file mode 100644 index 0000000000000..17f1b039667d0 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/empty_view.tsx @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiImage } from '@elastic/eui'; +import styled from 'styled-components'; +import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; + +export function EmptyView() { + const { + services: { http }, + } = useKibana(); + + return ( + + + + ); +} + +const Wrapper = styled.div` + text-align: center; + opacity: 0.4; + height: 550px; +`; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx new file mode 100644 index 0000000000000..37597e0ce513f --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.test.tsx @@ -0,0 +1,138 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen, waitFor } from '@testing-library/react'; +import { mockIndexPattern, render } from '../rtl_helpers'; +import { buildFilterLabel, FilterLabel } from './filter_label'; +import * as useSeriesHook from '../hooks/use_series_filters'; + +describe('FilterLabel', function () { + const invertFilter = jest.fn(); + jest.spyOn(useSeriesHook, 'useSeriesFilters').mockReturnValue({ + invertFilter, + } as any); + + it('should render properly', async function () { + render( + + ); + + await waitFor(() => { + screen.getByText('elastic-co'); + screen.getByText(/web application:/i); + screen.getByTitle('Delete Web Application: elastic-co'); + screen.getByRole('button', { + name: /delete web application: elastic-co/i, + }); + }); + }); + + it.skip('should delete filter', async function () { + const removeFilter = jest.fn(); + render( + + ); + + await waitFor(() => { + fireEvent.click(screen.getByLabelText('Filter actions')); + }); + + fireEvent.click(screen.getByTestId('deleteFilter')); + expect(removeFilter).toHaveBeenCalledTimes(1); + expect(removeFilter).toHaveBeenCalledWith('service.name', 'elastic-co', false); + }); + + it.skip('should invert filter', async function () { + const removeFilter = jest.fn(); + render( + + ); + + await waitFor(() => { + fireEvent.click(screen.getByLabelText('Filter actions')); + }); + + fireEvent.click(screen.getByTestId('negateFilter')); + expect(invertFilter).toHaveBeenCalledTimes(1); + expect(invertFilter).toHaveBeenCalledWith({ + field: 'service.name', + negate: false, + value: 'elastic-co', + }); + }); + + it('should display invert filter', async function () { + render( + + ); + + await waitFor(() => { + screen.getByText('elastic-co'); + screen.getByText(/web application:/i); + screen.getByTitle('Delete NOT Web Application: elastic-co'); + screen.getByRole('button', { + name: /delete not web application: elastic-co/i, + }); + }); + }); + + it('should build filter meta', function () { + expect( + buildFilterLabel({ + field: 'user_agent.name', + label: 'Browser family', + indexPattern: mockIndexPattern, + value: 'Firefox', + negate: false, + }) + ).toEqual({ + meta: { + alias: null, + disabled: false, + index: 'apm-*', + key: 'Browser family', + negate: false, + type: 'phrase', + value: 'Firefox', + }, + query: { + match_phrase: { + 'user_agent.name': 'Firefox', + }, + }, + }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.tsx new file mode 100644 index 0000000000000..3d6dc5b3f2bf5 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/components/filter_label.tsx @@ -0,0 +1,90 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { injectI18n } from '@kbn/i18n/react'; +import { esFilters, Filter, IndexPattern } from '../../../../../../../../src/plugins/data/public'; +import { useIndexPatternContext } from '../hooks/use_default_index_pattern'; +import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; +import { useSeriesFilters } from '../hooks/use_series_filters'; + +interface Props { + field: string; + label: string; + value: string; + seriesId: string; + negate: boolean; + definitionFilter?: boolean; + removeFilter: (field: string, value: string, notVal: boolean) => void; +} +export function buildFilterLabel({ + field, + value, + label, + indexPattern, + negate, +}: { + label: string; + value: string; + negate: boolean; + field: string; + indexPattern: IndexPattern; +}) { + const indexField = indexPattern.getFieldByName(field)!; + + const filter = esFilters.buildPhraseFilter(indexField, value, indexPattern); + + filter.meta.value = value; + filter.meta.key = label; + filter.meta.alias = null; + filter.meta.negate = negate; + filter.meta.disabled = false; + filter.meta.type = 'phrase'; + + return filter; +} +export function FilterLabel({ + label, + seriesId, + field, + value, + negate, + removeFilter, + definitionFilter, +}: Props) { + const FilterItem = injectI18n(esFilters.FilterItem); + + const { indexPattern } = useIndexPatternContext(); + + const filter = buildFilterLabel({ field, value, label, indexPattern, negate }); + + const { invertFilter } = useSeriesFilters({ seriesId }); + + const { + services: { uiSettings }, + } = useKibana(); + + return indexPattern ? ( + { + removeFilter(field, value, false); + }} + onUpdate={(filterN: Filter) => { + if (definitionFilter) { + // FIXME handle this use case + } else if (filterN.meta.negate !== negate) { + invertFilter({ field, value, negate }); + } + }} + uiSettings={uiSettings!} + hiddenPanelOptions={['pinFilter', 'editFilter', 'disableFilter']} + /> + ) : null; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants.ts new file mode 100644 index 0000000000000..aa3ac2fa64317 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants.ts @@ -0,0 +1,73 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { AppDataType, ReportViewTypeId } from '../types'; +import { + CLS_FIELD, + FCP_FIELD, + FID_FIELD, + LCP_FIELD, + TBT_FIELD, +} from './data/elasticsearch_fieldnames'; + +export const FieldLabels: Record = { + 'user_agent.name': 'Browser family', + 'user_agent.version': 'Browser version', + 'user_agent.os.name': 'Operating system', + 'client.geo.country_name': 'Location', + 'user_agent.device.name': 'Device', + 'observer.geo.name': 'Observer location', + 'service.name': 'Service Name', + 'service.environment': 'Environment', + + [LCP_FIELD]: 'Largest contentful paint', + [FCP_FIELD]: 'First contentful paint', + [TBT_FIELD]: 'Total blocking time', + [FID_FIELD]: 'First input delay', + [CLS_FIELD]: 'Cumulative layout shift', + + 'monitor.id': 'Monitor Id', + 'monitor.status': 'Monitor Status', + + 'agent.hostname': 'Agent host', + 'host.hostname': 'Host name', + 'monitor.name': 'Monitor name', + 'monitor.type': 'Monitor Type', + 'url.port': 'Port', + tags: 'Tags', + + // custom + + 'performance.metric': 'Metric', + 'Business.KPI': 'KPI', +}; + +export const DataViewLabels: Record = { + pld: 'Performance Distribution', + upd: 'Uptime monitor duration', + upp: 'Uptime pings', + svl: 'APM Service latency', + kpi: 'KPI over time', + tpt: 'APM Service throughput', + cpu: 'System CPU Usage', + logs: 'Logs Frequency', + mem: 'System Memory Usage', + nwk: 'Network Activity', +}; + +export const ReportToDataTypeMap: Record = { + upd: 'synthetics', + upp: 'synthetics', + tpt: 'apm', + svl: 'apm', + kpi: 'rum', + pld: 'rum', + nwk: 'metrics', + mem: 'metrics', + logs: 'logs', + cpu: 'metrics', +}; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/cpu_usage_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/cpu_usage_config.ts new file mode 100644 index 0000000000000..5a4fb2aa3a6a5 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/cpu_usage_config.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 { DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { OperationType } from '../../../../../../lens/public'; + +interface Props { + seriesId: string; +} + +export function getCPUUsageLensConfig({ seriesId }: Props): DataSeries { + return { + id: seriesId, + reportType: 'cpu-usage', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'avg' as OperationType, + sourceField: 'system.cpu.user.pct', + label: 'CPU Usage %', + }, + hasMetricType: true, + defaultFilters: [], + breakdowns: ['host.hostname'], + filters: [], + labels: { ...FieldLabels, 'host.hostname': 'Host name' }, + reportDefinitions: [ + { + field: 'agent.hostname', + required: true, + }, + ], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/elasticsearch_fieldnames.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/elasticsearch_fieldnames.ts new file mode 100644 index 0000000000000..3faf54fff3140 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/elasticsearch_fieldnames.ts @@ -0,0 +1,144 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor 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 CLOUD = 'cloud'; +export const CLOUD_AVAILABILITY_ZONE = 'cloud.availability_zone'; +export const CLOUD_PROVIDER = 'cloud.provider'; +export const CLOUD_REGION = 'cloud.region'; +export const CLOUD_MACHINE_TYPE = 'cloud.machine.type'; + +export const SERVICE = 'service'; +export const SERVICE_NAME = 'service.name'; +export const SERVICE_ENVIRONMENT = 'service.environment'; +export const SERVICE_FRAMEWORK_NAME = 'service.framework.name'; +export const SERVICE_FRAMEWORK_VERSION = 'service.framework.version'; +export const SERVICE_LANGUAGE_NAME = 'service.language.name'; +export const SERVICE_LANGUAGE_VERSION = 'service.language.version'; +export const SERVICE_RUNTIME_NAME = 'service.runtime.name'; +export const SERVICE_RUNTIME_VERSION = 'service.runtime.version'; +export const SERVICE_NODE_NAME = 'service.node.name'; +export const SERVICE_VERSION = 'service.version'; + +export const AGENT = 'agent'; +export const AGENT_NAME = 'agent.name'; +export const AGENT_VERSION = 'agent.version'; + +export const URL_FULL = 'url.full'; +export const HTTP_REQUEST_METHOD = 'http.request.method'; +export const HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code'; +export const USER_ID = 'user.id'; +export const USER_AGENT_ORIGINAL = 'user_agent.original'; +export const USER_AGENT_NAME = 'user_agent.name'; +export const USER_AGENT_VERSION = 'user_agent.version'; + +export const DESTINATION_ADDRESS = 'destination.address'; + +export const OBSERVER_HOSTNAME = 'observer.hostname'; +export const OBSERVER_VERSION_MAJOR = 'observer.version_major'; +export const OBSERVER_LISTENING = 'observer.listening'; +export const PROCESSOR_EVENT = 'processor.event'; + +export const TRANSACTION_DURATION = 'transaction.duration.us'; +export const TRANSACTION_DURATION_HISTOGRAM = 'transaction.duration.histogram'; +export const TRANSACTION_TYPE = 'transaction.type'; +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'; + +export const EVENT_OUTCOME = 'event.outcome'; + +export const TRACE_ID = 'trace.id'; + +export const SPAN_DURATION = 'span.duration.us'; +export const SPAN_TYPE = 'span.type'; +export const SPAN_SUBTYPE = 'span.subtype'; +export const SPAN_SELF_TIME_SUM = 'span.self_time.sum.us'; +export const SPAN_ACTION = 'span.action'; +export const SPAN_NAME = 'span.name'; +export const SPAN_ID = 'span.id'; +export const SPAN_DESTINATION_SERVICE_RESOURCE = 'span.destination.service.resource'; +export const SPAN_DESTINATION_SERVICE_RESPONSE_TIME_COUNT = + 'span.destination.service.response_time.count'; + +export const SPAN_DESTINATION_SERVICE_RESPONSE_TIME_SUM = + 'span.destination.service.response_time.sum.us'; + +// Parent ID for a transaction or span +export const PARENT_ID = 'parent.id'; + +export const ERROR_GROUP_ID = 'error.grouping_key'; +export const ERROR_CULPRIT = 'error.culprit'; +export const ERROR_LOG_LEVEL = 'error.log.level'; +export const ERROR_LOG_MESSAGE = 'error.log.message'; +export const ERROR_EXC_MESSAGE = 'error.exception.message'; // only to be used in es queries, since error.exception is now an array +export const ERROR_EXC_HANDLED = 'error.exception.handled'; // only to be used in es queries, since error.exception is now an array +export const ERROR_EXC_TYPE = 'error.exception.type'; +export const ERROR_PAGE_URL = 'error.page.url'; + +// METRICS +export const METRIC_SYSTEM_FREE_MEMORY = 'system.memory.actual.free'; +export const METRIC_SYSTEM_TOTAL_MEMORY = 'system.memory.total'; +export const METRIC_SYSTEM_CPU_PERCENT = 'system.cpu.total.norm.pct'; +export const METRIC_PROCESS_CPU_PERCENT = 'system.process.cpu.total.norm.pct'; +export const METRIC_CGROUP_MEMORY_LIMIT_BYTES = 'system.process.cgroup.memory.mem.limit.bytes'; +export const METRIC_CGROUP_MEMORY_USAGE_BYTES = 'system.process.cgroup.memory.mem.usage.bytes'; + +export const METRIC_JAVA_HEAP_MEMORY_MAX = 'jvm.memory.heap.max'; +export const METRIC_JAVA_HEAP_MEMORY_COMMITTED = 'jvm.memory.heap.committed'; +export const METRIC_JAVA_HEAP_MEMORY_USED = 'jvm.memory.heap.used'; +export const METRIC_JAVA_NON_HEAP_MEMORY_MAX = 'jvm.memory.non_heap.max'; +export const METRIC_JAVA_NON_HEAP_MEMORY_COMMITTED = 'jvm.memory.non_heap.committed'; +export const METRIC_JAVA_NON_HEAP_MEMORY_USED = 'jvm.memory.non_heap.used'; +export const METRIC_JAVA_THREAD_COUNT = 'jvm.thread.count'; +export const METRIC_JAVA_GC_COUNT = 'jvm.gc.count'; +export const METRIC_JAVA_GC_TIME = 'jvm.gc.time'; + +export const LABEL_NAME = 'labels.name'; + +export const HOST = 'host'; +export const HOST_NAME = 'host.hostname'; +export const HOST_OS_PLATFORM = 'host.os.platform'; +export const CONTAINER_ID = 'container.id'; +export const KUBERNETES = 'kubernetes'; +export const POD_NAME = 'kubernetes.pod.name'; + +export const CLIENT_GEO_COUNTRY_ISO_CODE = 'client.geo.country_iso_code'; +export const CLIENT_GEO_COUNTRY_NAME = 'client.geo.country_name'; + +// RUM Labels +export const TRANSACTION_URL = 'url.full'; +export const CLIENT_GEO = 'client.geo'; +export const USER_AGENT_DEVICE = 'user_agent.device.name'; +export const USER_AGENT_OS = 'user_agent.os.name'; + +export const TRANSACTION_TIME_TO_FIRST_BYTE = 'transaction.marks.agent.timeToFirstByte'; +export const TRANSACTION_DOM_INTERACTIVE = 'transaction.marks.agent.domInteractive'; + +export const FCP_FIELD = 'transaction.marks.agent.firstContentfulPaint'; +export const LCP_FIELD = 'transaction.marks.agent.largestContentfulPaint'; +export const TBT_FIELD = 'transaction.experience.tbt'; +export const FID_FIELD = 'transaction.experience.fid'; +export const CLS_FIELD = 'transaction.experience.cls'; + +export const PROFILE_ID = 'profile.id'; +export const PROFILE_DURATION = 'profile.duration'; +export const PROFILE_TOP_ID = 'profile.top.id'; +export const PROFILE_STACK = 'profile.stack'; + +export const PROFILE_SAMPLES_COUNT = 'profile.samples.count'; +export const PROFILE_CPU_NS = 'profile.cpu.ns'; +export const PROFILE_WALL_US = 'profile.wall.us'; + +export const PROFILE_ALLOC_OBJECTS = 'profile.alloc_objects.count'; +export const PROFILE_ALLOC_SPACE = 'profile.alloc_space.bytes'; +export const PROFILE_INUSE_OBJECTS = 'profile.inuse_objects.count'; +export const PROFILE_INUSE_SPACE = 'profile.inuse_space.bytes'; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/sample_attribute.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/sample_attribute.ts new file mode 100644 index 0000000000000..9b299e7d70bcc --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/sample_attribute.ts @@ -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. + */ +export const sampleAttribute = { + title: 'Prefilled from exploratory view app', + description: '', + visualizationType: 'lnsXY', + references: [ + { id: 'apm-*', name: 'indexpattern-datasource-current-indexpattern', type: 'index-pattern' }, + { id: 'apm-*', name: 'indexpattern-datasource-layer-layer1', type: 'index-pattern' }, + ], + state: { + datasourceStates: { + indexpattern: { + layers: { + layer1: { + columnOrder: ['x-axis-column', 'y-axis-column'], + columns: { + 'x-axis-column': { + sourceField: 'transaction.duration.us', + label: 'Page load time', + dataType: 'number', + operationType: 'range', + isBucketed: true, + scale: 'interval', + params: { + type: 'histogram', + ranges: [{ from: 0, to: 1000, label: '' }], + maxBars: 'auto', + }, + }, + 'y-axis-column': { + dataType: 'number', + isBucketed: false, + label: 'Pages loaded', + operationType: 'count', + scale: 'ratio', + sourceField: 'Records', + }, + }, + incompleteColumns: {}, + }, + }, + }, + }, + visualization: { + legend: { isVisible: true, position: 'right' }, + valueLabels: 'hide', + fittingFunction: 'Linear', + curveType: 'CURVE_MONOTONE_X', + axisTitlesVisibilitySettings: { x: true, yLeft: true, yRight: true }, + tickLabelsVisibilitySettings: { x: true, yLeft: true, yRight: true }, + gridlinesVisibilitySettings: { x: true, yLeft: true, yRight: true }, + preferredSeriesType: 'line', + layers: [ + { + accessors: ['y-axis-column'], + layerId: 'layer1', + seriesType: 'line', + yConfig: [{ forAccessor: 'y-axis-column', color: 'green' }], + xAccessor: 'x-axis-column', + }, + ], + }, + query: { query: '', language: 'kuery' }, + filters: [ + { meta: { index: 'apm-*' }, query: { match_phrase: { 'transaction.type': 'page-load' } } }, + { meta: { index: 'apm-*' }, query: { match_phrase: { 'processor.event': 'transaction' } } }, + ], + }, +}; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/test_index_pattern.json b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/test_index_pattern.json new file mode 100644 index 0000000000000..31fec1fe8d4f4 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/data/test_index_pattern.json @@ -0,0 +1,11 @@ +{ + "attributes": { + "fieldFormatMap": "{\"client.bytes\":{\"id\":\"bytes\"},\"client.nat.port\":{\"id\":\"string\"},\"client.port\":{\"id\":\"string\"},\"destination.bytes\":{\"id\":\"bytes\"},\"destination.nat.port\":{\"id\":\"string\"},\"destination.port\":{\"id\":\"string\"},\"event.duration\":{\"id\":\"duration\",\"params\":{\"inputFormat\":\"nanoseconds\",\"outputFormat\":\"asMilliseconds\",\"outputPrecision\":1}},\"event.sequence\":{\"id\":\"string\"},\"event.severity\":{\"id\":\"string\"},\"http.request.body.bytes\":{\"id\":\"bytes\"},\"http.request.bytes\":{\"id\":\"bytes\"},\"http.response.body.bytes\":{\"id\":\"bytes\"},\"http.response.bytes\":{\"id\":\"bytes\"},\"http.response.status_code\":{\"id\":\"string\"},\"log.syslog.facility.code\":{\"id\":\"string\"},\"log.syslog.priority\":{\"id\":\"string\"},\"network.bytes\":{\"id\":\"bytes\"},\"package.size\":{\"id\":\"string\"},\"process.parent.pgid\":{\"id\":\"string\"},\"process.parent.pid\":{\"id\":\"string\"},\"process.parent.ppid\":{\"id\":\"string\"},\"process.parent.thread.id\":{\"id\":\"string\"},\"process.pgid\":{\"id\":\"string\"},\"process.pid\":{\"id\":\"string\"},\"process.ppid\":{\"id\":\"string\"},\"process.thread.id\":{\"id\":\"string\"},\"server.bytes\":{\"id\":\"bytes\"},\"server.nat.port\":{\"id\":\"string\"},\"server.port\":{\"id\":\"string\"},\"source.bytes\":{\"id\":\"bytes\"},\"source.nat.port\":{\"id\":\"string\"},\"source.port\":{\"id\":\"string\"},\"system.cpu.total.norm.pct\":{\"id\":\"percent\"},\"system.memory.actual.free\":{\"id\":\"bytes\"},\"system.memory.total\":{\"id\":\"bytes\"},\"system.process.cgroup.memory.mem.limit.bytes\":{\"id\":\"bytes\"},\"system.process.cgroup.memory.mem.usage.bytes\":{\"id\":\"bytes\"},\"system.process.cpu.total.norm.pct\":{\"id\":\"percent\"},\"system.process.memory.rss.bytes\":{\"id\":\"bytes\"},\"system.process.memory.size\":{\"id\":\"bytes\"},\"url.port\":{\"id\":\"string\"}}", + "fields": "[{\"name\":\"@timestamp\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"agent.build.original\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"agent.ephemeral_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"agent.hostname\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"agent.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"agent.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"agent.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"agent.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"as.number\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"as.organization.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"as.organization.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"as.organization.name\"}}},{\"name\":\"child.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.address\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.as.number\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.as.organization.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.as.organization.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"client.as.organization.name\"}}},{\"name\":\"client.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.city_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.continent_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.country_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.country_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.location\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.region_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.geo.region_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.mac\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.nat.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.nat.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.packets\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.registered_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.subdomain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.top_level_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.email\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.full_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.full_name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"client.user.full_name\"}}},{\"name\":\"client.user.group.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.group.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.group.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"client.user.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"client.user.name\"}}},{\"name\":\"client.user.roles\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.account.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.account.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.availability_zone\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.image.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.instance.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.instance.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.machine.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.project.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.project.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.provider\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.region\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"cloud.service.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clr.gc.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clr.gc.gen0size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clr.gc.gen1size\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clr.gc.gen2size\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"clr.gc.gen3size\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"code_signature.exists\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"code_signature.status\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"code_signature.subject_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"code_signature.trusted\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"code_signature.valid\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"container.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"container.image.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"container.image.tag\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"container.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"container.runtime\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.address\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.as.number\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.as.organization.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.as.organization.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"destination.as.organization.name\"}}},{\"name\":\"destination.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.city_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.continent_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.country_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.country_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.location\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.region_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.geo.region_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.mac\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.nat.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.nat.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.packets\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.registered_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.subdomain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.top_level_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.email\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.full_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.full_name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"destination.user.full_name\"}}},{\"name\":\"destination.user.group.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.group.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.group.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"destination.user.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"destination.user.name\"}}},{\"name\":\"destination.user.roles\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.code_signature.exists\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.code_signature.status\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.code_signature.subject_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.code_signature.trusted\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.code_signature.valid\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.hash.md5\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.hash.sha1\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.hash.sha256\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.hash.sha512\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.path\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.pe.architecture\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.pe.company\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.pe.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.pe.file_version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.pe.imphash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.pe.original_file_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dll.pe.product\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.answers.class\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.answers.data\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.answers.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.answers.ttl\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.answers.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.header_flags\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.op_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.question.class\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.question.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.question.registered_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.question.subdomain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.question.top_level_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.question.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.resolved_ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.response_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"dns.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ecs.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.culprit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.exception.code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.exception.handled\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.exception.message\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"error.exception.module\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.exception.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.grouping_key\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.log.level\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.log.logger_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.log.message\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"error.log.param_message\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.message\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"error.stack_trace\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"error.stack_trace.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"error.stack_trace\"}}},{\"name\":\"error.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.action\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.category\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.created\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.dataset\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.duration\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.end\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.ingested\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.kind\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.module\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.original\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.outcome\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.provider\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.reason\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.reference\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.risk_score\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.risk_score_norm\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.sequence\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.severity\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.start\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.timezone\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"event.url\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.accessed\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.attributes\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.code_signature.exists\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.code_signature.status\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.code_signature.subject_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.code_signature.trusted\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.code_signature.valid\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.created\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.ctime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.device\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.directory\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.drive_letter\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.extension\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.gid\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.group\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.hash.md5\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.hash.sha1\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.hash.sha256\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.hash.sha512\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.inode\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.mime_type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.mode\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.mtime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.owner\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.path\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.path.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"file.path\"}}},{\"name\":\"file.pe.architecture\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.pe.company\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.pe.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.pe.file_version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.pe.imphash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.pe.original_file_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.pe.product\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.target_path\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.target_path.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"file.target_path\"}}},{\"name\":\"file.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.uid\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.alternative_names\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.issuer.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.issuer.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.issuer.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.issuer.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.issuer.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.issuer.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.issuer.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.not_after\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.not_before\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.public_key_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.public_key_curve\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.public_key_exponent\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.public_key_size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.serial_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.signature_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.subject.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.subject.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.subject.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.subject.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.subject.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.subject.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.subject.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"file.x509.version_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.city_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.continent_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.country_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.country_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.location\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.region_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"geo.region_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.goroutines\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.allocations.active\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.allocations.allocated\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.allocations.frees\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.allocations.idle\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.allocations.mallocs\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.allocations.objects\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.allocations.total\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.gc.cpu_fraction\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.gc.next_gc_limit\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.gc.total_count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.gc.total_pause.ns\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.system.obtained\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.system.released\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.system.stack\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"golang.heap.system.total\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"group.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"group.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"group.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"hash.md5\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"hash.sha1\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"hash.sha256\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"hash.sha512\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.architecture\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.containerized\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.city_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.continent_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.country_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.country_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.location\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.region_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.geo.region_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.hostname\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.mac\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.build\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.codename\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.family\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.full\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.full.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"host.os.full\"}}},{\"name\":\"host.os.kernel\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"host.os.name\"}}},{\"name\":\"host.os.platform\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.os.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.uptime\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.email\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.full_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.full_name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"host.user.full_name\"}}},{\"name\":\"host.user.group.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.group.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.group.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"host.user.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"host.user.name\"}}},{\"name\":\"host.user.roles\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.request.body.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.request.body.content\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.request.body.content.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"http.request.body.content\"}}},{\"name\":\"http.request.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.request.method\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.request.mime_type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.request.referrer\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.response.body.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.response.body.content\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.response.body.content.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"http.response.body.content\"}}},{\"name\":\"http.response.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.response.finished\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.response.mime_type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.response.status_code\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"http.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"interface.alias\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"interface.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"interface.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.gc.alloc\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.gc.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.gc.time\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.heap.committed\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.heap.max\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.heap.pool.committed\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.heap.pool.max\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.heap.pool.used\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.heap.used\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.non_heap.committed\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.non_heap.max\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.memory.non_heap.used\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"jvm.thread.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.container.image\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.container.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.deployment.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.namespace\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.node.hostname\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.node.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.pod.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.pod.uid\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.replicaset.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"kubernetes.statefulset.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.city\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.company\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.country_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.customer_email\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.customer_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.customer_tier\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.env\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.events_encoded\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.events_failed\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.events_original\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.events_published\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.foo\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.git_rev\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.hostname\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.in_eu\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.ip\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.kibana_uuid\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.lang\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.lorem\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.multi-line\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.plugin\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.productId\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.request_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.served_from_cache\",\"type\":\"conflict\",\"esTypes\":[\"boolean\",\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false,\"conflictDescriptions\":{\"boolean\":[\"apm-8.0.0-transaction-000001\"],\"keyword\":[\"apm-8.0.0-transaction-000002\"]}},{\"name\":\"labels.taskType\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.this-is-a-very-long-tag-name-without-any-spaces\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.u\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"labels.worker\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.file.path\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.level\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.logger\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.origin.file.line\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.origin.file.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.origin.function\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.original\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.syslog.facility.code\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.syslog.facility.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.syslog.priority\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.syslog.severity.code\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"log.syslog.severity.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"message\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"metricset.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"metricset.period\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.application\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.community_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.direction\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.forwarded_ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.iana_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.inner.vlan.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.inner.vlan.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.packets\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.protocol\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.transport\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.vlan.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"network.vlan.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.eventloop.delay.avg.ms\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.eventloop.delay.ns\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.handles.active\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.memory.arrayBuffers.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.memory.external.bytes\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.memory.heap.allocated.bytes\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.memory.heap.used.bytes\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"nodejs.requests.active\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.egress.interface.alias\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.egress.interface.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.egress.interface.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.egress.vlan.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.egress.vlan.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.egress.zone\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.city_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.continent_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.country_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.country_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.location\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.region_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.geo.region_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.hostname\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.ingress.interface.alias\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.ingress.interface.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.ingress.interface.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.ingress.vlan.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.ingress.vlan.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.ingress.zone\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.listening\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.mac\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.os.family\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.os.full\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.os.full.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"observer.os.full\"}}},{\"name\":\"observer.os.kernel\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.os.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.os.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"observer.os.name\"}}},{\"name\":\"observer.os.platform\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.os.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.product\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.serial_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.vendor\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"observer.version_major\",\"type\":\"number\",\"esTypes\":[\"byte\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"organization.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"organization.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"organization.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"organization.name\"}}},{\"name\":\"os.family\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"os.full\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"os.full.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"os.full\"}}},{\"name\":\"os.kernel\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"os.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"os.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"os.name\"}}},{\"name\":\"os.platform\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"os.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.architecture\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.build_version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.checksum\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.install_scope\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.installed\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.license\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.path\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.reference\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"package.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"parent.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"pe.architecture\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"pe.company\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"pe.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"pe.file_version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"pe.imphash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"pe.original_file_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"pe.product\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.args\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.args_count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.code_signature.exists\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.code_signature.status\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.code_signature.subject_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.code_signature.trusted\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.code_signature.valid\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.command_line\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.command_line.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.command_line\"}}},{\"name\":\"process.entity_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.executable\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.executable.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.executable\"}}},{\"name\":\"process.exit_code\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.hash.md5\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.hash.sha1\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.hash.sha256\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.hash.sha512\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.name\"}}},{\"name\":\"process.parent.args\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.args_count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.code_signature.exists\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.code_signature.status\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.code_signature.subject_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.code_signature.trusted\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.code_signature.valid\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.command_line\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.command_line.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.parent.command_line\"}}},{\"name\":\"process.parent.entity_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.executable\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.executable.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.parent.executable\"}}},{\"name\":\"process.parent.exit_code\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.hash.md5\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.hash.sha1\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.hash.sha256\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.hash.sha512\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.parent.name\"}}},{\"name\":\"process.parent.pe.architecture\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pe.company\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pe.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pe.file_version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pe.imphash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pe.original_file_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pe.product\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pgid\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.pid\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.ppid\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.start\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.thread.id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.thread.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.title\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.title.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.parent.title\"}}},{\"name\":\"process.parent.uptime\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.working_directory\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.parent.working_directory.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.parent.working_directory\"}}},{\"name\":\"process.pe.architecture\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pe.company\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pe.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pe.file_version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pe.imphash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pe.original_file_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pe.product\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pgid\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.pid\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.ppid\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.start\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.thread.id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.thread.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.title\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.uptime\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.working_directory\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"process.working_directory.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"process.working_directory\"}}},{\"name\":\"processor.event\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"processor.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.alloc_objects.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.alloc_space.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.cpu.ns\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.duration\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.inuse_objects.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.inuse_space.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.samples.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.stack.filename\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.stack.function\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.stack.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.stack.line\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.top.filename\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.top.function\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.top.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"profile.top.line\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"registry.data.bytes\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"registry.data.strings\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"registry.data.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"registry.hive\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"registry.key\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"registry.path\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"registry.value\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"related.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"related.hosts\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"related.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"related.user\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ruby.gc.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ruby.heap.allocations.total\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ruby.heap.slots.free\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ruby.heap.slots.live\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"ruby.threads\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.author\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.category\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.license\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.reference\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.ruleset\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.uuid\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"rule.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.address\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.as.number\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.as.organization.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.as.organization.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"server.as.organization.name\"}}},{\"name\":\"server.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.city_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.continent_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.country_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.country_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.location\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.region_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.geo.region_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.mac\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.nat.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.nat.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.packets\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.registered_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.subdomain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.top_level_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.email\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.full_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.full_name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"server.user.full_name\"}}},{\"name\":\"server.user.group.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.group.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.group.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"server.user.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"server.user.name\"}}},{\"name\":\"server.user.roles\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.environment\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.ephemeral_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.framework.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.framework.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.language.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.language.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.node.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.runtime.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.runtime.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.state\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"service.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.address\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.as.number\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.as.organization.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.as.organization.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"source.as.organization.name\"}}},{\"name\":\"source.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.city_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.continent_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.country_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.country_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.location\",\"type\":\"geo_point\",\"esTypes\":[\"geo_point\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.region_iso_code\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.geo.region_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.mac\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.nat.ip\",\"type\":\"ip\",\"esTypes\":[\"ip\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.nat.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.packets\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.registered_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.subdomain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.top_level_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.email\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.full_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.full_name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"source.user.full_name\"}}},{\"name\":\"source.user.group.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.group.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.group.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"source.user.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"source.user.name\"}}},{\"name\":\"source.user.roles\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"sourcemap.bundle_filepath\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"sourcemap.service.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"sourcemap.service.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.action\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.db.link\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.db.rows_affected\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.destination.service.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.destination.service.resource\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.destination.service.response_time.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.destination.service.response_time.sum.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.destination.service.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.duration.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.message.age.ms\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.message.queue.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.self_time.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.self_time.sum.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.start.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.subtype\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.sync\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"span.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.cpu.total.norm.pct\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.memory.actual.free\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.memory.total\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.cgroup.memory.mem.limit.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.cgroup.memory.mem.usage.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.cgroup.memory.stats.inactive_file.bytes\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.cpu.system.norm.pct\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.cpu.total.norm.pct\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.cpu.user.norm.pct\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.memory.rss.bytes\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"system.process.memory.size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tags\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.framework\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.tactic.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.tactic.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.tactic.reference\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.technique.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.technique.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.technique.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"threat.technique.name\"}}},{\"name\":\"threat.technique.reference\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.technique.subtechnique.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.technique.subtechnique.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"threat.technique.subtechnique.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"threat.technique.subtechnique.name\"}}},{\"name\":\"threat.technique.subtechnique.reference\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"timeseries.instance\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"timestamp.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.cipher\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.certificate\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.certificate_chain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.hash.md5\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.hash.sha1\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.hash.sha256\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.issuer\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.ja3\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.not_after\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.not_before\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.server_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.subject\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.supported_ciphers\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.alternative_names\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.issuer.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.issuer.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.issuer.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.issuer.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.issuer.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.issuer.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.issuer.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.not_after\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.not_before\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.public_key_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.public_key_curve\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.public_key_exponent\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.public_key_size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.serial_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.signature_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.subject.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.subject.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.subject.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.subject.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.subject.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.subject.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.subject.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.client.x509.version_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.curve\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.established\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.next_protocol\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.resumed\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.certificate\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.certificate_chain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.hash.md5\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.hash.sha1\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.hash.sha256\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.issuer\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.ja3s\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.not_after\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.not_before\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.subject\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.alternative_names\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.issuer.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.issuer.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.issuer.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.issuer.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.issuer.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.issuer.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.issuer.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.not_after\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.not_before\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.public_key_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.public_key_curve\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.public_key_exponent\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.public_key_size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.serial_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.signature_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.subject.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.subject.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.subject.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.subject.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.subject.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.subject.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.subject.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.server.x509.version_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"tls.version_protocol\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"trace.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.breakdown.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.duration.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.duration.histogram\",\"type\":\"histogram\",\"esTypes\":[\"histogram\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.duration.sum.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.duration.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.experience.cls\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.experience.fid\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.experience.longtask.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.experience.longtask.max\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.experience.longtask.sum\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.experience.tbt\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.agent.domComplete\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.agent.domInteractive\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.agent.firstContentfulPaint\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.agent.largestContentfulPaint\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.agent.timeToFirstByte\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.connectEnd\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.connectStart\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.domComplete\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.domContentLoadedEventEnd\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.domContentLoadedEventStart\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.domInteractive\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.domLoading\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.domainLookupEnd\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.domainLookupStart\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.fetchStart\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.loadEventEnd\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.loadEventStart\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.requestStart\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.responseEnd\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.marks.navigationTiming.responseStart\",\"type\":\"number\",\"esTypes\":[\"scaled_float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.message.age.ms\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.message.queue.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"transaction.name\"}}},{\"name\":\"transaction.result\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.root\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.sampled\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.self_time.count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.self_time.sum.us\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.span_count.dropped\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"transaction.type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.extension\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.fragment\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.full\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.original\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.original.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"url.original\"}}},{\"name\":\"url.password\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.path\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.port\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.query\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.registered_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.scheme\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.subdomain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.top_level_domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"url.username\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.email\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.full_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.full_name.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"user.full_name\"}}},{\"name\":\"user.group.domain\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.group.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.group.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.hash\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user.roles\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.device.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.original\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.original.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"user_agent.original\"}}},{\"name\":\"user_agent.os.family\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.os.full\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.os.kernel\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.os.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.os.platform\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.os.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"user_agent.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vlan.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vlan.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.category\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.classification\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.description\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.description.text\",\"type\":\"string\",\"esTypes\":[\"text\"],\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"vulnerability.description\"}}},{\"name\":\"vulnerability.enumeration\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.reference\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.report_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.scanner.vendor\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.score.base\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.score.environmental\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.score.temporal\",\"type\":\"number\",\"esTypes\":[\"float\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.score.version\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"vulnerability.severity\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.alternative_names\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.issuer.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.issuer.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.issuer.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.issuer.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.issuer.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.issuer.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.issuer.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.not_after\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.not_before\",\"type\":\"date\",\"esTypes\":[\"date\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.public_key_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.public_key_curve\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.public_key_exponent\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":false,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.public_key_size\",\"type\":\"number\",\"esTypes\":[\"long\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.serial_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.signature_algorithm\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.subject.common_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.subject.country\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.subject.distinguished_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.subject.locality\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.subject.organization\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.subject.organizational_unit\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.subject.state_or_province\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"name\":\"x509.version_number\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]", + "sourceFilters": "[{\"value\":\"sourcemap.sourcemap\"}]", + "timeFieldName": "@timestamp" + }, + "id": "apm-*", + "type": "index-pattern", + "version": "1" +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts new file mode 100644 index 0000000000000..85d48ef638d44 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.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 { ReportViewTypes } from '../types'; +import { getPerformanceDistLensConfig } from './performance_dist_config'; +import { getMonitorDurationConfig } from './monitor_duration_config'; +import { getServiceLatencyLensConfig } from './service_latency_config'; +import { getMonitorPingsConfig } from './monitor_pings_config'; +import { getServiceThroughputLensConfig } from './service_throughput_config'; +import { getKPITrendsLensConfig } from './kpi_trends_config'; +import { getCPUUsageLensConfig } from './cpu_usage_config'; +import { getMemoryUsageLensConfig } from './memory_usage_config'; +import { getNetworkActivityLensConfig } from './network_activity_config'; +import { getLogsFrequencyLensConfig } from './logs_frequency_config'; +import { IIndexPattern } from '../../../../../../../../src/plugins/data/common/index_patterns'; + +interface Props { + reportType: keyof typeof ReportViewTypes; + seriesId: string; + indexPattern: IIndexPattern; +} + +export const getDefaultConfigs = ({ reportType, seriesId, indexPattern }: Props) => { + switch (ReportViewTypes[reportType]) { + case 'page-load-dist': + return getPerformanceDistLensConfig({ seriesId, indexPattern }); + case 'kpi-trends': + return getKPITrendsLensConfig({ seriesId, indexPattern }); + case 'uptime-duration': + return getMonitorDurationConfig({ seriesId }); + case 'uptime-pings': + return getMonitorPingsConfig({ seriesId }); + case 'service-latency': + return getServiceLatencyLensConfig({ seriesId, indexPattern }); + case 'service-throughput': + return getServiceThroughputLensConfig({ seriesId, indexPattern }); + case 'cpu-usage': + return getCPUUsageLensConfig({ seriesId }); + case 'memory-usage': + return getMemoryUsageLensConfig({ seriesId }); + case 'network-activity': + return getNetworkActivityLensConfig({ seriesId }); + case 'logs-frequency': + return getLogsFrequencyLensConfig({ seriesId }); + default: + return getKPITrendsLensConfig({ seriesId, indexPattern }); + } +}; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/kpi_trends_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/kpi_trends_config.ts new file mode 100644 index 0000000000000..a967a8824bca7 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/kpi_trends_config.ts @@ -0,0 +1,73 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ConfigProps, DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { buildPhraseFilter } from './utils'; +import { + CLIENT_GEO_COUNTRY_NAME, + PROCESSOR_EVENT, + SERVICE_ENVIRONMENT, + SERVICE_NAME, + TRANSACTION_TYPE, + USER_AGENT_DEVICE, + USER_AGENT_NAME, + USER_AGENT_OS, + USER_AGENT_VERSION, +} from './data/elasticsearch_fieldnames'; + +export function getKPITrendsLensConfig({ seriesId, indexPattern }: ConfigProps): DataSeries { + return { + id: seriesId, + defaultSeriesType: 'bar_stacked', + reportType: 'kpi-trends', + seriesTypes: ['bar', 'bar_stacked'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'count', + label: 'Page views', + }, + hasMetricType: false, + defaultFilters: [ + USER_AGENT_OS, + CLIENT_GEO_COUNTRY_NAME, + USER_AGENT_DEVICE, + { + field: USER_AGENT_NAME, + nested: USER_AGENT_VERSION, + }, + ], + breakdowns: [USER_AGENT_NAME, USER_AGENT_OS, CLIENT_GEO_COUNTRY_NAME, USER_AGENT_DEVICE], + filters: [ + buildPhraseFilter(TRANSACTION_TYPE, 'page-load', indexPattern), + buildPhraseFilter(PROCESSOR_EVENT, 'transaction', indexPattern), + ], + labels: { ...FieldLabels, SERVICE_NAME: 'Web Application' }, + reportDefinitions: [ + { + field: SERVICE_NAME, + required: true, + }, + { + field: SERVICE_ENVIRONMENT, + }, + { + field: 'Business.KPI', + custom: true, + defaultValue: 'Records', + options: [ + { + field: 'Records', + label: 'Page views', + }, + ], + }, + ], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts new file mode 100644 index 0000000000000..dcfaed938cc0f --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.test.ts @@ -0,0 +1,387 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { LensAttributes } from './lens_attributes'; +import { mockIndexPattern } from '../rtl_helpers'; +import { getDefaultConfigs } from './default_configs'; +import { sampleAttribute } from './data/sample_attribute'; +import { LCP_FIELD, SERVICE_NAME } from './data/elasticsearch_fieldnames'; +import { USER_AGENT_NAME } from './data/elasticsearch_fieldnames'; + +describe('Lens Attribute', () => { + const reportViewConfig = getDefaultConfigs({ + reportType: 'pld', + indexPattern: mockIndexPattern, + seriesId: 'series-id', + }); + + let lnsAttr: LensAttributes; + + beforeEach(() => { + lnsAttr = new LensAttributes(mockIndexPattern, reportViewConfig, 'line', [], 'count', {}); + }); + + it('should return expected json', function () { + expect(lnsAttr.getJSON()).toEqual(sampleAttribute); + }); + + it('should return main y axis', function () { + expect(lnsAttr.getMainYAxis()).toEqual({ + dataType: 'number', + isBucketed: false, + label: 'Pages loaded', + operationType: 'count', + scale: 'ratio', + sourceField: 'Records', + }); + }); + + it('should return expected field type', function () { + expect(JSON.stringify(lnsAttr.getFieldMeta('transaction.type'))).toEqual( + JSON.stringify({ + count: 0, + name: 'transaction.type', + type: 'string', + esTypes: ['keyword'], + scripted: false, + searchable: true, + aggregatable: true, + readFromDocValues: true, + }) + ); + }); + + it('should return expected field type for custom field with default value', function () { + expect(JSON.stringify(lnsAttr.getFieldMeta('performance.metric'))).toEqual( + JSON.stringify({ + count: 0, + name: 'transaction.duration.us', + type: 'number', + esTypes: ['long'], + scripted: false, + searchable: true, + aggregatable: true, + readFromDocValues: true, + }) + ); + }); + + it('should return expected field type for custom field with passed value', function () { + lnsAttr = new LensAttributes(mockIndexPattern, reportViewConfig, 'line', [], 'count', { + 'performance.metric': LCP_FIELD, + }); + + expect(JSON.stringify(lnsAttr.getFieldMeta('performance.metric'))).toEqual( + JSON.stringify({ + count: 0, + name: LCP_FIELD, + type: 'number', + esTypes: ['scaled_float'], + scripted: false, + searchable: true, + aggregatable: true, + readFromDocValues: true, + }) + ); + }); + + it('should return expected number column', function () { + expect(lnsAttr.getNumberColumn('transaction.duration.us')).toEqual({ + dataType: 'number', + isBucketed: true, + label: 'Page load time', + operationType: 'range', + params: { + maxBars: 'auto', + ranges: [ + { + from: 0, + label: '', + to: 1000, + }, + ], + type: 'histogram', + }, + scale: 'interval', + sourceField: 'transaction.duration.us', + }); + }); + + it('should return expected date histogram column', function () { + expect(lnsAttr.getDateHistogramColumn('@timestamp')).toEqual({ + dataType: 'date', + isBucketed: true, + label: '@timestamp', + operationType: 'date_histogram', + params: { + interval: 'auto', + }, + scale: 'interval', + sourceField: '@timestamp', + }); + }); + + it('should return main x axis', function () { + expect(lnsAttr.getXAxis()).toEqual({ + dataType: 'number', + isBucketed: true, + label: 'Page load time', + operationType: 'range', + params: { + maxBars: 'auto', + ranges: [ + { + from: 0, + label: '', + to: 1000, + }, + ], + type: 'histogram', + }, + scale: 'interval', + sourceField: 'transaction.duration.us', + }); + }); + + it('should return first layer', function () { + expect(lnsAttr.getLayer()).toEqual({ + columnOrder: ['x-axis-column', 'y-axis-column'], + columns: { + 'x-axis-column': { + dataType: 'number', + isBucketed: true, + label: 'Page load time', + operationType: 'range', + params: { + maxBars: 'auto', + ranges: [ + { + from: 0, + label: '', + to: 1000, + }, + ], + type: 'histogram', + }, + scale: 'interval', + sourceField: 'transaction.duration.us', + }, + 'y-axis-column': { + dataType: 'number', + isBucketed: false, + label: 'Pages loaded', + operationType: 'count', + scale: 'ratio', + sourceField: 'Records', + }, + }, + incompleteColumns: {}, + }); + }); + + it('should return expected XYState', function () { + expect(lnsAttr.getXyState()).toEqual({ + axisTitlesVisibilitySettings: { x: true, yLeft: true, yRight: true }, + curveType: 'CURVE_MONOTONE_X', + fittingFunction: 'Linear', + gridlinesVisibilitySettings: { x: true, yLeft: true, yRight: true }, + layers: [ + { + accessors: ['y-axis-column'], + layerId: 'layer1', + palette: undefined, + seriesType: 'line', + xAccessor: 'x-axis-column', + yConfig: [{ color: 'green', forAccessor: 'y-axis-column' }], + }, + ], + legend: { isVisible: true, position: 'right' }, + preferredSeriesType: 'line', + tickLabelsVisibilitySettings: { x: true, yLeft: true, yRight: true }, + valueLabels: 'hide', + }); + }); + + describe('ParseFilters function', function () { + it('should parse default filters', function () { + expect(lnsAttr.parseFilters()).toEqual([ + { meta: { index: 'apm-*' }, query: { match_phrase: { 'transaction.type': 'page-load' } } }, + { meta: { index: 'apm-*' }, query: { match_phrase: { 'processor.event': 'transaction' } } }, + ]); + }); + + it('should parse default and ui filters', function () { + lnsAttr = new LensAttributes( + mockIndexPattern, + reportViewConfig, + 'line', + [ + { field: SERVICE_NAME, values: ['elastic-co', 'kibana-front'] }, + { field: USER_AGENT_NAME, values: ['Firefox'], notValues: ['Chrome'] }, + ], + 'count', + {} + ); + + expect(lnsAttr.parseFilters()).toEqual([ + { meta: { index: 'apm-*' }, query: { match_phrase: { 'transaction.type': 'page-load' } } }, + { meta: { index: 'apm-*' }, query: { match_phrase: { 'processor.event': 'transaction' } } }, + { + meta: { + index: 'apm-*', + key: 'service.name', + params: ['elastic-co', 'kibana-front'], + type: 'phrases', + value: 'elastic-co, kibana-front', + }, + query: { + bool: { + minimum_should_match: 1, + should: [ + { + match_phrase: { + 'service.name': 'elastic-co', + }, + }, + { + match_phrase: { + 'service.name': 'kibana-front', + }, + }, + ], + }, + }, + }, + { + meta: { + index: 'apm-*', + }, + query: { + match_phrase: { + 'user_agent.name': 'Firefox', + }, + }, + }, + { + meta: { + index: 'apm-*', + negate: true, + }, + query: { + match_phrase: { + 'user_agent.name': 'Chrome', + }, + }, + }, + ]); + }); + }); + + describe('Layer breakdowns', function () { + it('should add breakdown column', function () { + lnsAttr.addBreakdown(USER_AGENT_NAME); + + expect(lnsAttr.visualization.layers).toEqual([ + { + accessors: ['y-axis-column'], + layerId: 'layer1', + palette: undefined, + seriesType: 'line', + splitAccessor: 'break-down-column', + xAccessor: 'x-axis-column', + yConfig: [{ color: 'green', forAccessor: 'y-axis-column' }], + }, + ]); + + expect(lnsAttr.layers.layer1).toEqual({ + columnOrder: ['x-axis-column', 'break-down-column', 'y-axis-column'], + columns: { + 'break-down-column': { + dataType: 'string', + isBucketed: true, + label: 'Top values of Browser family', + operationType: 'terms', + params: { + missingBucket: false, + orderBy: { columnId: 'y-axis-column', type: 'column' }, + orderDirection: 'desc', + otherBucket: true, + size: 3, + }, + scale: 'ordinal', + sourceField: 'user_agent.name', + }, + 'x-axis-column': { + dataType: 'number', + isBucketed: true, + label: 'Page load time', + operationType: 'range', + params: { + maxBars: 'auto', + ranges: [{ from: 0, label: '', to: 1000 }], + type: 'histogram', + }, + scale: 'interval', + sourceField: 'transaction.duration.us', + }, + 'y-axis-column': { + dataType: 'number', + isBucketed: false, + label: 'Pages loaded', + operationType: 'count', + scale: 'ratio', + sourceField: 'Records', + }, + }, + incompleteColumns: {}, + }); + }); + + it('should remove breakdown column', function () { + lnsAttr.addBreakdown(USER_AGENT_NAME); + + lnsAttr.removeBreakdown(); + + expect(lnsAttr.visualization.layers).toEqual([ + { + accessors: ['y-axis-column'], + layerId: 'layer1', + palette: undefined, + seriesType: 'line', + xAccessor: 'x-axis-column', + yConfig: [{ color: 'green', forAccessor: 'y-axis-column' }], + }, + ]); + + expect(lnsAttr.layers.layer1.columnOrder).toEqual(['x-axis-column', 'y-axis-column']); + + expect(lnsAttr.layers.layer1.columns).toEqual({ + 'x-axis-column': { + dataType: 'number', + isBucketed: true, + label: 'Page load time', + operationType: 'range', + params: { + maxBars: 'auto', + ranges: [{ from: 0, label: '', to: 1000 }], + type: 'histogram', + }, + scale: 'interval', + sourceField: 'transaction.duration.us', + }, + 'y-axis-column': { + dataType: 'number', + isBucketed: false, + label: 'Pages loaded', + operationType: 'count', + scale: 'ratio', + sourceField: 'Records', + }, + }); + }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts new file mode 100644 index 0000000000000..589a93d160068 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts @@ -0,0 +1,273 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + CountIndexPatternColumn, + DateHistogramIndexPatternColumn, + LastValueIndexPatternColumn, + OperationType, + PersistedIndexPatternLayer, + RangeIndexPatternColumn, + SeriesType, + TypedLensByValueInput, + XYState, + XYCurveType, + DataType, +} from '../../../../../../lens/public'; +import { + buildPhraseFilter, + buildPhrasesFilter, + IndexPattern, +} from '../../../../../../../../src/plugins/data/common'; +import { FieldLabels } from './constants'; +import { DataSeries, UrlFilter } from '../types'; + +function getLayerReferenceName(layerId: string) { + return `indexpattern-datasource-layer-${layerId}`; +} + +export class LensAttributes { + indexPattern: IndexPattern; + layers: Record; + visualization: XYState; + filters: UrlFilter[]; + seriesType: SeriesType; + reportViewConfig: DataSeries; + reportDefinitions: Record; + + constructor( + indexPattern: IndexPattern, + reportViewConfig: DataSeries, + seriesType?: SeriesType, + filters?: UrlFilter[], + metricType?: OperationType, + reportDefinitions?: Record + ) { + this.indexPattern = indexPattern; + this.layers = {}; + this.filters = filters ?? []; + this.reportDefinitions = reportDefinitions ?? {}; + + if (typeof reportViewConfig.yAxisColumn.operationType !== undefined && metricType) { + reportViewConfig.yAxisColumn.operationType = metricType; + } + this.seriesType = seriesType ?? reportViewConfig.defaultSeriesType; + this.reportViewConfig = reportViewConfig; + this.layers.layer1 = this.getLayer(); + this.visualization = this.getXyState(); + } + + addBreakdown(sourceField: string) { + const fieldMeta = this.indexPattern.getFieldByName(sourceField); + + this.layers.layer1.columns['break-down-column'] = { + sourceField, + label: `Top values of ${FieldLabels[sourceField]}`, + dataType: fieldMeta?.type as DataType, + operationType: 'terms', + scale: 'ordinal', + isBucketed: true, + params: { + size: 3, + orderBy: { type: 'column', columnId: 'y-axis-column' }, + orderDirection: 'desc', + otherBucket: true, + missingBucket: false, + }, + }; + + this.layers.layer1.columnOrder = ['x-axis-column', 'break-down-column', 'y-axis-column']; + + this.visualization.layers[0].splitAccessor = 'break-down-column'; + } + + removeBreakdown() { + delete this.layers.layer1.columns['break-down-column']; + + this.layers.layer1.columnOrder = ['x-axis-column', 'y-axis-column']; + + this.visualization.layers[0].splitAccessor = undefined; + } + + getNumberColumn(sourceField: string): RangeIndexPatternColumn { + return { + sourceField, + label: this.reportViewConfig.labels[sourceField], + dataType: 'number', + operationType: 'range', + isBucketed: true, + scale: 'interval', + params: { + type: 'histogram', + ranges: [{ from: 0, to: 1000, label: '' }], + maxBars: 'auto', + }, + }; + } + + getDateHistogramColumn(sourceField: string): DateHistogramIndexPatternColumn { + return { + sourceField, + dataType: 'date', + isBucketed: true, + label: '@timestamp', + operationType: 'date_histogram', + params: { interval: 'auto' }, + scale: 'interval', + }; + } + + getXAxis(): + | LastValueIndexPatternColumn + | DateHistogramIndexPatternColumn + | RangeIndexPatternColumn { + const { xAxisColumn } = this.reportViewConfig; + + const { type: fieldType, name: fieldName } = this.getFieldMeta(xAxisColumn.sourceField)!; + + if (fieldType === 'date') { + return this.getDateHistogramColumn(fieldName); + } + if (fieldType === 'number') { + return this.getNumberColumn(fieldName); + } + + // FIXME review my approach again + return this.getDateHistogramColumn(fieldName); + } + + getFieldMeta(sourceField?: string) { + let xAxisField = sourceField; + + if (xAxisField) { + const rdf = this.reportViewConfig.reportDefinitions ?? []; + + const customField = rdf.find(({ field }) => field === xAxisField); + + if (customField) { + if (this.reportDefinitions[xAxisField]) { + xAxisField = this.reportDefinitions[xAxisField]; + } else if (customField.defaultValue) { + xAxisField = customField.defaultValue; + } else if (customField.options?.[0].field) { + xAxisField = customField.options?.[0].field; + } + } + + return this.indexPattern.getFieldByName(xAxisField); + } + } + + getMainYAxis() { + return { + dataType: 'number', + isBucketed: false, + label: 'Count of records', + operationType: 'count', + scale: 'ratio', + sourceField: 'Records', + ...this.reportViewConfig.yAxisColumn, + } as CountIndexPatternColumn; + } + + getLayer() { + return { + columnOrder: ['x-axis-column', 'y-axis-column'], + columns: { + 'x-axis-column': this.getXAxis(), + 'y-axis-column': this.getMainYAxis(), + }, + incompleteColumns: {}, + }; + } + + getXyState(): XYState { + return { + legend: { isVisible: true, position: 'right' }, + valueLabels: 'hide', + fittingFunction: 'Linear', + curveType: 'CURVE_MONOTONE_X' as XYCurveType, + axisTitlesVisibilitySettings: { x: true, yLeft: true, yRight: true }, + tickLabelsVisibilitySettings: { x: true, yLeft: true, yRight: true }, + gridlinesVisibilitySettings: { x: true, yLeft: true, yRight: true }, + preferredSeriesType: 'line', + layers: [ + { + accessors: ['y-axis-column'], + layerId: 'layer1', + seriesType: this.seriesType ?? 'line', + palette: this.reportViewConfig.palette, + yConfig: [{ forAccessor: 'y-axis-column', color: 'green' }], + xAccessor: 'x-axis-column', + }, + ], + }; + } + + parseFilters() { + const defaultFilters = this.reportViewConfig.filters ?? []; + const parsedFilters = this.reportViewConfig.filters ? [...defaultFilters] : []; + + this.filters.forEach(({ field, values = [], notValues = [] }) => { + const fieldMeta = this.indexPattern.fields.find((fieldT) => fieldT.name === field)!; + + if (values?.length > 0) { + if (values?.length > 1) { + const multiFilter = buildPhrasesFilter(fieldMeta, values, this.indexPattern); + parsedFilters.push(multiFilter); + } else { + const filter = buildPhraseFilter(fieldMeta, values[0], this.indexPattern); + parsedFilters.push(filter); + } + } + + if (notValues?.length > 0) { + if (notValues?.length > 1) { + const multiFilter = buildPhrasesFilter(fieldMeta, notValues, this.indexPattern); + multiFilter.meta.negate = true; + parsedFilters.push(multiFilter); + } else { + const filter = buildPhraseFilter(fieldMeta, notValues[0], this.indexPattern); + filter.meta.negate = true; + parsedFilters.push(filter); + } + } + }); + + return parsedFilters; + } + + getJSON(): TypedLensByValueInput['attributes'] { + return { + title: 'Prefilled from exploratory view app', + description: '', + visualizationType: 'lnsXY', + references: [ + { + id: this.indexPattern.id!, + name: 'indexpattern-datasource-current-indexpattern', + type: 'index-pattern', + }, + { + id: this.indexPattern.id!, + name: getLayerReferenceName('layer1'), + type: 'index-pattern', + }, + ], + state: { + datasourceStates: { + indexpattern: { + layers: this.layers, + }, + }, + visualization: this.visualization, + query: { query: '', language: 'kuery' }, + filters: this.parseFilters(), + }, + }; + } +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/logs_frequency_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/logs_frequency_config.ts new file mode 100644 index 0000000000000..68e5e697d2f9d --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/logs_frequency_config.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 { DataSeries } from '../types'; +import { FieldLabels } from './constants'; + +interface Props { + seriesId: string; +} + +export function getLogsFrequencyLensConfig({ seriesId }: Props): DataSeries { + return { + id: seriesId, + reportType: 'logs-frequency', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'count', + }, + hasMetricType: false, + defaultFilters: [], + breakdowns: ['agent.hostname'], + filters: [], + labels: { ...FieldLabels }, + reportDefinitions: [ + { + field: 'agent.hostname', + required: true, + }, + ], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/memory_usage_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/memory_usage_config.ts new file mode 100644 index 0000000000000..579372ed86fa7 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/memory_usage_config.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 { DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { OperationType } from '../../../../../../lens/public'; + +interface Props { + seriesId: string; +} + +export function getMemoryUsageLensConfig({ seriesId }: Props): DataSeries { + return { + id: seriesId, + reportType: 'memory-usage', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'avg' as OperationType, + sourceField: 'system.memory.used.pct', + label: 'Memory Usage %', + }, + hasMetricType: true, + defaultFilters: [], + breakdowns: ['host.hostname'], + filters: [], + labels: { ...FieldLabels, 'host.hostname': 'Host name' }, + reportDefinitions: [ + { + field: 'host.hostname', + required: true, + }, + ], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_duration_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_duration_config.ts new file mode 100644 index 0000000000000..aa9b8b94c6d86 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_duration_config.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 { DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { OperationType } from '../../../../../../lens/public'; + +interface Props { + seriesId: string; +} + +export function getMonitorDurationConfig({ seriesId }: Props): DataSeries { + return { + id: seriesId, + reportType: 'uptime-duration', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar_stacked'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'avg' as OperationType, + sourceField: 'monitor.duration.us', + label: 'Monitor duration (ms)', + }, + hasMetricType: true, + defaultFilters: ['monitor.type', 'observer.geo.name', 'tags'], + breakdowns: [ + 'observer.geo.name', + 'monitor.name', + 'monitor.id', + 'monitor.type', + 'tags', + 'url.port', + ], + filters: [], + reportDefinitions: [ + { + field: 'monitor.id', + }, + ], + labels: { ...FieldLabels }, + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_pings_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_pings_config.ts new file mode 100644 index 0000000000000..72968626e934b --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/monitor_pings_config.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DataSeries } from '../types'; +import { FieldLabels } from './constants'; + +interface Props { + seriesId: string; +} + +export function getMonitorPingsConfig({ seriesId }: Props): DataSeries { + return { + id: seriesId, + reportType: 'uptime-pings', + defaultSeriesType: 'bar_stacked', + seriesTypes: ['bar_stacked', 'bar'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'count', + label: 'Monitor pings', + }, + hasMetricType: false, + defaultFilters: ['observer.geo.name'], + breakdowns: ['monitor.status', 'observer.geo.name', 'monitor.type'], + filters: [], + palette: { type: 'palette', name: 'status' }, + reportDefinitions: [ + { + field: 'monitor.id', + }, + { + field: 'url.full', + }, + ], + labels: { ...FieldLabels }, + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/network_activity_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/network_activity_config.ts new file mode 100644 index 0000000000000..63cdd0ec8bd60 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/network_activity_config.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { OperationType } from '../../../../../../lens/public'; + +interface Props { + seriesId: string; +} + +export function getNetworkActivityLensConfig({ seriesId }: Props): DataSeries { + return { + id: seriesId, + reportType: 'network-activity', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'avg' as OperationType, + sourceField: 'system.memory.used.pct', + }, + hasMetricType: true, + defaultFilters: [], + breakdowns: ['host.hostname'], + filters: [], + labels: { ...FieldLabels, 'host.hostname': 'Host name' }, + reportDefinitions: [ + { + field: 'host.hostname', + required: true, + }, + ], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/performance_dist_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/performance_dist_config.ts new file mode 100644 index 0000000000000..41617304c9f3d --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/performance_dist_config.ts @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ConfigProps, DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { buildPhraseFilter } from './utils'; +import { + CLIENT_GEO_COUNTRY_NAME, + CLS_FIELD, + FCP_FIELD, + FID_FIELD, + LCP_FIELD, + PROCESSOR_EVENT, + SERVICE_ENVIRONMENT, + SERVICE_NAME, + TBT_FIELD, + TRANSACTION_DURATION, + TRANSACTION_TYPE, + USER_AGENT_DEVICE, + USER_AGENT_NAME, + USER_AGENT_OS, + USER_AGENT_VERSION, +} from './data/elasticsearch_fieldnames'; + +export function getPerformanceDistLensConfig({ seriesId, indexPattern }: ConfigProps): DataSeries { + return { + id: seriesId ?? 'unique-key', + reportType: 'page-load-dist', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar'], + xAxisColumn: { + sourceField: 'performance.metric', + }, + yAxisColumn: { + operationType: 'count', + label: 'Pages loaded', + }, + hasMetricType: false, + defaultFilters: [ + USER_AGENT_OS, + CLIENT_GEO_COUNTRY_NAME, + USER_AGENT_DEVICE, + { + field: USER_AGENT_NAME, + nested: USER_AGENT_VERSION, + }, + ], + breakdowns: [USER_AGENT_NAME, USER_AGENT_OS, CLIENT_GEO_COUNTRY_NAME, USER_AGENT_DEVICE], + reportDefinitions: [ + { + field: SERVICE_NAME, + required: true, + }, + { + field: SERVICE_ENVIRONMENT, + }, + { + field: 'performance.metric', + custom: true, + defaultValue: TRANSACTION_DURATION, + options: [ + { label: 'Page load time', field: TRANSACTION_DURATION }, + { label: 'First contentful paint', field: FCP_FIELD }, + { label: 'Total blocking time', field: TBT_FIELD }, + // FIXME, review if we need these descriptions + { label: 'Largest contentful paint', field: LCP_FIELD, description: 'Core web vital' }, + { label: 'First input delay', field: FID_FIELD, description: 'Core web vital' }, + { label: 'Cumulative layout shift', field: CLS_FIELD, description: 'Core web vital' }, + ], + }, + ], + filters: [ + buildPhraseFilter(TRANSACTION_TYPE, 'page-load', indexPattern), + buildPhraseFilter(PROCESSOR_EVENT, 'transaction', indexPattern), + ], + labels: { + ...FieldLabels, + [SERVICE_NAME]: 'Web Application', + [TRANSACTION_DURATION]: 'Page load time', + }, + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_latency_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_latency_config.ts new file mode 100644 index 0000000000000..a31679c61a4ab --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_latency_config.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 { ConfigProps, DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { buildPhraseFilter } from './utils'; +import { OperationType } from '../../../../../../lens/public'; + +export function getServiceLatencyLensConfig({ seriesId, indexPattern }: ConfigProps): DataSeries { + return { + id: seriesId, + reportType: 'service-latency', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'avg' as OperationType, + sourceField: 'transaction.duration.us', + label: 'Latency', + }, + hasMetricType: true, + defaultFilters: [ + 'user_agent.name', + 'user_agent.os.name', + 'client.geo.country_name', + 'user_agent.device.name', + ], + breakdowns: [ + 'user_agent.name', + 'user_agent.os.name', + 'client.geo.country_name', + 'user_agent.device.name', + ], + filters: [buildPhraseFilter('transaction.type', 'request', indexPattern)], + labels: { ...FieldLabels }, + reportDefinitions: [ + { + field: 'service.name', + required: true, + }, + { + field: 'service.environment', + }, + ], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_throughput_config.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_throughput_config.ts new file mode 100644 index 0000000000000..32cae2167ddf0 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/service_throughput_config.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 { ConfigProps, DataSeries } from '../types'; +import { FieldLabels } from './constants'; +import { buildPhraseFilter } from './utils'; +import { OperationType } from '../../../../../../lens/public'; + +export function getServiceThroughputLensConfig({ + seriesId, + indexPattern, +}: ConfigProps): DataSeries { + return { + id: seriesId, + reportType: 'service-latency', + defaultSeriesType: 'line', + seriesTypes: ['line', 'bar'], + xAxisColumn: { + sourceField: '@timestamp', + }, + yAxisColumn: { + operationType: 'avg' as OperationType, + sourceField: 'transaction.duration.us', + label: 'Throughput', + }, + hasMetricType: true, + defaultFilters: [ + 'user_agent.name', + 'user_agent.os.name', + 'client.geo.country_name', + 'user_agent.device.name', + ], + breakdowns: [ + 'user_agent.name', + 'user_agent.os.name', + 'client.geo.country_name', + 'user_agent.device.name', + ], + filters: [buildPhraseFilter('transaction.type', 'request', indexPattern)], + labels: { ...FieldLabels }, + reportDefinitions: [ + { + field: 'service.name', + required: true, + }, + { + field: 'service.environment', + }, + ], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/url_constants.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/url_constants.ts new file mode 100644 index 0000000000000..5b99c19dbabb7 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/url_constants.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 enum URL_KEYS { + METRIC_TYPE = 'mt', + REPORT_TYPE = 'rt', + SERIES_TYPE = 'st', + BREAK_DOWN = 'bd', + FILTERS = 'ft', + REPORT_DEFINITIONS = 'rdf', +} 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 new file mode 100644 index 0000000000000..38b8ce81b2acd --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.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 rison, { RisonValue } from 'rison-node'; +import type { AllSeries, AllShortSeries } from '../hooks/use_url_strorage'; +import type { SeriesUrl } from '../types'; +import { IIndexPattern } from '../../../../../../../../src/plugins/data/common/index_patterns'; +import { esFilters } from '../../../../../../../../src/plugins/data/public'; +import { URL_KEYS } from './url_constants'; + +export function convertToShortUrl(series: SeriesUrl) { + const { + metric, + seriesType, + reportType, + breakdown, + filters, + reportDefinitions, + ...restSeries + } = series; + + return { + [URL_KEYS.METRIC_TYPE]: metric, + [URL_KEYS.REPORT_TYPE]: reportType, + [URL_KEYS.SERIES_TYPE]: seriesType, + [URL_KEYS.BREAK_DOWN]: breakdown, + [URL_KEYS.FILTERS]: filters, + [URL_KEYS.REPORT_DEFINITIONS]: reportDefinitions, + ...restSeries, + }; +} + +export function createExploratoryViewUrl(allSeries: AllSeries, baseHref = '') { + const allSeriesIds = Object.keys(allSeries); + + const allShortSeries: AllShortSeries = {}; + + allSeriesIds.forEach((seriesKey) => { + allShortSeries[seriesKey] = convertToShortUrl(allSeries[seriesKey]); + }); + + return ( + baseHref + + `/app/observability/exploratory-view#?sr=${rison.encode(allShortSeries as RisonValue)}` + ); +} + +export function buildPhraseFilter(field: string, value: any, indexPattern: IIndexPattern) { + const fieldMeta = indexPattern.fields.find((fieldT) => fieldT.name === field)!; + return esFilters.buildPhraseFilter(fieldMeta, value, indexPattern); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx new file mode 100644 index 0000000000000..7e99874f557b3 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.test.tsx @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { within } from '@testing-library/react'; +import { fireEvent, screen, waitFor } from '@testing-library/dom'; +import { render, mockUrlStorage, mockCore } from './rtl_helpers'; +import { ExploratoryView } from './exploratory_view'; +import { getStubIndexPattern } from '../../../../../../../src/plugins/data/public/test_utils'; +import * as obsvInd from '../../../utils/observability_index_patterns'; + +describe('ExploratoryView', () => { + beforeEach(() => { + const indexPattern = getStubIndexPattern( + 'apm-*', + () => {}, + '@timestamp', + [ + { + name: '@timestamp', + type: 'date', + esTypes: ['date'], + searchable: true, + aggregatable: true, + readFromDocValues: true, + }, + ], + mockCore() as any + ); + + jest.spyOn(obsvInd, 'ObservabilityIndexPatterns').mockReturnValue({ + getIndexPattern: jest.fn().mockReturnValue(indexPattern), + } as any); + }); + + it('renders exploratory view', async () => { + render(); + + await waitFor(() => { + screen.getByText(/open in lens/i); + screen.getByRole('heading', { name: /exploratory view/i }); + screen.getByRole('img', { name: /visulization/i }); + screen.getByText(/add series/i); + screen.getByText(/no series found, please add a series\./i); + }); + }); + + it('can add, cancel new series', async () => { + render(); + + await fireEvent.click(screen.getByText(/add series/i)); + + await waitFor(() => { + screen.getByText(/open in lens/i); + screen.getByText(/select a data type to start building a series\./i); + screen.getByRole('table', { name: /this table contains 1 rows\./i }); + const button = screen.getByRole('button', { name: /add/i }); + within(button).getByText(/add/i); + }); + + await fireEvent.click(screen.getByText(/cancel/i)); + + await waitFor(() => { + screen.getByText(/add series/i); + }); + }); + + it('renders lens component when there is series', async () => { + mockUrlStorage({ + data: { + 'uptime-pings-histogram': { + reportType: 'upp', + breakdown: 'monitor.status', + time: { from: 'now-15m', to: 'now' }, + }, + }, + }); + + render(); + + await waitFor(() => { + screen.getByText(/open in lens/i); + screen.getByRole('heading', { name: /uptime pings/i }); + screen.getByText(/uptime-pings-histogram/i); + screen.getByText(/Lens Embeddable Component/i); + screen.getByRole('table', { name: /this table contains 1 rows\./i }); + }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx new file mode 100644 index 0000000000000..b3ad107bbe0e2 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/exploratory_view.tsx @@ -0,0 +1,87 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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 React, { useEffect, useState } from 'react'; +import styled from 'styled-components'; +import { EuiLoadingSpinner, EuiPanel, EuiTitle } from '@elastic/eui'; +import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; +import { ObservabilityPublicPluginsStart } from '../../../plugin'; +import { ExploratoryViewHeader } from './header/header'; +import { SeriesEditor } from './series_editor/series_editor'; +import { useUrlStorage } from './hooks/use_url_strorage'; +import { useLensAttributes } from './hooks/use_lens_attributes'; +import { EmptyView } from './components/empty_view'; +import { useIndexPatternContext } from './hooks/use_default_index_pattern'; +import { TypedLensByValueInput } from '../../../../../lens/public'; + +export function ExploratoryView() { + const { + services: { lens }, + } = useKibana(); + + const [lensAttributes, setLensAttributes] = useState( + null + ); + + const { indexPattern } = useIndexPatternContext(); + + const LensComponent = lens?.EmbeddableComponent; + + const { firstSeriesId: seriesId, firstSeries: series } = useUrlStorage(); + + const lensAttributesT = useLensAttributes({ + seriesId, + indexPattern, + }); + + useEffect(() => { + setLensAttributes(lensAttributesT); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [JSON.stringify(lensAttributesT ?? {}), series?.reportType, series?.time?.from]); + + return ( + + {lens ? ( + <> + + {!indexPattern && ( + + + + )} + {lensAttributes && seriesId && series?.reportType && series?.time ? ( + + ) : ( + + )} + + + ) : ( + +

+ {i18n.translate('xpack.observability.overview.exploratoryView.lensDisabled', { + defaultMessage: + 'Lens app is not available, please enable Lens to use exploratory view.', + })} +

+
+ )} +
+ ); +} + +const SpinnerWrap = styled.div` + height: 100vh; + display: flex; + justify-content: center; + align-items: center; +`; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.test.tsx new file mode 100644 index 0000000000000..de6912f256be7 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.test.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 React from 'react'; +import { mockUrlStorage, render } from '../rtl_helpers'; +import { ExploratoryViewHeader } from './header'; +import { fireEvent } from '@testing-library/dom'; + +describe('ExploratoryViewHeader', function () { + it('should render properly', function () { + const { getByText } = render( + + ); + getByText('Open in Lens'); + }); + + it('should be able to click open in lens', function () { + mockUrlStorage({ + data: { + 'uptime-pings-histogram': { + reportType: 'upp', + breakdown: 'monitor.status', + time: { from: 'now-15m', to: 'now' }, + }, + }, + }); + + const { getByText, core } = render( + + ); + fireEvent.click(getByText('Open in Lens')); + + expect(core?.lens?.navigateToPrefilledEditor).toHaveBeenCalledTimes(1); + expect(core?.lens?.navigateToPrefilledEditor).toHaveBeenCalledWith({ + attributes: { title: 'Performance distribution' }, + id: '', + timeRange: { + from: 'now-15m', + to: 'now', + }, + }); + }); +}); 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 new file mode 100644 index 0000000000000..bda3566c76602 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import { TypedLensByValueInput } from '../../../../../../lens/public'; +import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; +import { ObservabilityPublicPluginsStart } from '../../../../plugin'; +import { DataViewLabels } from '../configurations/constants'; +import { useUrlStorage } from '../hooks/use_url_strorage'; + +interface Props { + seriesId: string; + lensAttributes: TypedLensByValueInput['attributes'] | null; +} + +export function ExploratoryViewHeader({ seriesId, lensAttributes }: Props) { + const { + services: { lens }, + } = useKibana(); + + const { series } = useUrlStorage(seriesId); + + return ( + + + +

+ {DataViewLabels[series.reportType] ?? + i18n.translate('xpack.observability.expView.heading.label', { + defaultMessage: 'Exploratory view', + })} +

+
+
+ + { + if (lensAttributes) { + lens.navigateToPrefilledEditor({ + id: '', + timeRange: series.time, + attributes: lensAttributes, + }); + } + }} + > + {i18n.translate('xpack.observability.expView.heading.openInLens', { + defaultMessage: 'Open in Lens', + })} + + +
+ ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_default_index_pattern.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_default_index_pattern.tsx new file mode 100644 index 0000000000000..04cbb4a4ddb18 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_default_index_pattern.tsx @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { createContext, useContext, Context, useState, useEffect } from 'react'; +import { IndexPattern } from '../../../../../../../../src/plugins/data/common'; +import { AppDataType } from '../types'; +import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; +import { ObservabilityPublicPluginsStart } from '../../../../plugin'; +import { ObservabilityIndexPatterns } from '../../../../utils/observability_index_patterns'; + +export interface IIndexPatternContext { + indexPattern: IndexPattern; + loadIndexPattern: (dataType: AppDataType) => void; +} + +export const IndexPatternContext = createContext>({}); + +interface ProviderProps { + indexPattern?: IndexPattern; + children: JSX.Element; +} + +export function IndexPatternContextProvider({ + children, + indexPattern: initialIndexPattern, +}: ProviderProps) { + const [indexPattern, setIndexPattern] = useState(initialIndexPattern); + + useEffect(() => { + setIndexPattern(initialIndexPattern); + }, [initialIndexPattern]); + + const { + services: { data }, + } = useKibana(); + + const loadIndexPattern = async (dataType: AppDataType) => { + const obsvIndexP = new ObservabilityIndexPatterns(data); + const indPattern = await obsvIndexP.getIndexPattern(dataType); + setIndexPattern(indPattern!); + }; + + return ( + + {children} + + ); +} + +export const useIndexPatternContext = () => { + return useContext((IndexPatternContext as unknown) as Context); +}; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_init_exploratory_view.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_init_exploratory_view.ts new file mode 100644 index 0000000000000..9f462790e8d37 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_init_exploratory_view.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { useFetcher } from '../../../..'; +import { IKbnUrlStateStorage } from '../../../../../../../../src/plugins/kibana_utils/public'; +import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; +import { ObservabilityPublicPluginsStart } from '../../../../plugin'; +import { AllShortSeries } from './use_url_strorage'; +import { ReportToDataTypeMap } from '../configurations/constants'; +import { + DataType, + ObservabilityIndexPatterns, +} from '../../../../utils/observability_index_patterns'; + +export const useInitExploratoryView = (storage: IKbnUrlStateStorage) => { + const { + services: { data }, + } = useKibana(); + + const allSeriesKey = 'sr'; + + const allSeries = storage.get(allSeriesKey) ?? {}; + + const allSeriesIds = Object.keys(allSeries); + + const firstSeriesId = allSeriesIds?.[0]; + + const firstSeries = allSeries[firstSeriesId]; + + const { data: indexPattern } = useFetcher(() => { + const obsvIndexP = new ObservabilityIndexPatterns(data); + let reportType: DataType = 'apm'; + if (firstSeries?.rt) { + reportType = ReportToDataTypeMap[firstSeries?.rt]; + } + + return obsvIndexP.getIndexPattern(reportType); + }, [firstSeries?.rt, data]); + + return indexPattern; +}; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts new file mode 100644 index 0000000000000..1c735009f66f9 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_lens_attributes.ts @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; +import { TypedLensByValueInput } from '../../../../../../lens/public'; +import { LensAttributes } from '../configurations/lens_attributes'; +import { useUrlStorage } from './use_url_strorage'; +import { getDefaultConfigs } from '../configurations/default_configs'; + +import { IndexPattern } from '../../../../../../../../src/plugins/data/common'; +import { DataSeries, SeriesUrl, UrlFilter } from '../types'; + +interface Props { + seriesId: string; + indexPattern?: IndexPattern | null; +} + +export const getFiltersFromDefs = ( + reportDefinitions: SeriesUrl['reportDefinitions'], + dataViewConfig: DataSeries +) => { + const rdfFilters = Object.entries(reportDefinitions ?? {}).map(([field, value]) => { + return { + field, + values: [value], + }; + }) as UrlFilter[]; + + // let's filter out custom fields + return rdfFilters.filter(({ field }) => { + const rdf = dataViewConfig.reportDefinitions.find(({ field: fd }) => field === fd); + return !rdf?.custom; + }); +}; + +export const useLensAttributes = ({ + seriesId, + indexPattern, +}: Props): TypedLensByValueInput['attributes'] | null => { + const { series } = useUrlStorage(seriesId); + + const { breakdown, seriesType, metric: metricType, reportType, reportDefinitions = {} } = + series ?? {}; + + return useMemo(() => { + if (!indexPattern || !reportType) { + return null; + } + + const dataViewConfig = getDefaultConfigs({ + seriesId, + reportType, + indexPattern, + }); + + const filters: UrlFilter[] = (series.filters ?? []).concat( + getFiltersFromDefs(reportDefinitions, dataViewConfig) + ); + + const lensAttributes = new LensAttributes( + indexPattern, + dataViewConfig, + seriesType, + filters, + metricType, + reportDefinitions + ); + + if (breakdown) { + lensAttributes.addBreakdown(breakdown); + } + + return lensAttributes.getJSON(); + }, [ + indexPattern, + breakdown, + seriesType, + metricType, + reportType, + reportDefinitions, + seriesId, + series.filters, + ]); +}; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_series_filters.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_series_filters.ts new file mode 100644 index 0000000000000..35247180c2ee5 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_series_filters.ts @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useUrlStorage } from './use_url_strorage'; +import { UrlFilter } from '../types'; + +export interface UpdateFilter { + field: string; + value: string; + negate?: boolean; +} + +export const useSeriesFilters = ({ seriesId }: { seriesId: string }) => { + const { series, setSeries } = useUrlStorage(seriesId); + + const filters = series.filters ?? []; + + const removeFilter = ({ field, value, negate }: UpdateFilter) => { + const filtersN = filters.map((filter) => { + if (filter.field === field) { + if (negate) { + const notValuesN = filter.notValues?.filter((val) => val !== value); + return { ...filter, notValues: notValuesN }; + } else { + const valuesN = filter.values?.filter((val) => val !== value); + return { ...filter, values: valuesN }; + } + } + + return filter; + }); + setSeries(seriesId, { ...series, filters: filtersN }); + }; + + const addFilter = ({ field, value, negate }: UpdateFilter) => { + const currFilter: UrlFilter = { field }; + if (negate) { + currFilter.notValues = [value]; + } else { + currFilter.values = [value]; + } + if (filters.length === 0) { + setSeries(seriesId, { ...series, filters: [currFilter] }); + } else { + setSeries(seriesId, { + ...series, + filters: [currFilter, ...filters.filter((ft) => ft.field !== field)], + }); + } + }; + + const updateFilter = ({ field, value, negate }: UpdateFilter) => { + const currFilter: UrlFilter | undefined = filters.find(({ field: fd }) => field === fd) ?? { + field, + }; + + const currNotValues = currFilter.notValues ?? []; + const currValues = currFilter.values ?? []; + + const notValues = currNotValues.filter((val) => val !== value); + const values = currValues.filter((val) => val !== value); + + if (negate) { + notValues.push(value); + } else { + values.push(value); + } + + currFilter.notValues = notValues.length > 0 ? notValues : undefined; + currFilter.values = values.length > 0 ? values : undefined; + + const otherFilters = filters.filter(({ field: fd }) => fd !== field); + + if (notValues.length > 0 || values.length > 0) { + setSeries(seriesId, { ...series, filters: [...otherFilters, currFilter] }); + } else { + setSeries(seriesId, { ...series, filters: otherFilters }); + } + }; + + const setFilter = ({ field, value, negate }: UpdateFilter) => { + const currFilter: UrlFilter | undefined = filters.find(({ field: fd }) => field === fd); + + if (!currFilter) { + addFilter({ field, value, negate }); + } else { + updateFilter({ field, value, negate }); + } + }; + + const invertFilter = ({ field, value, negate }: UpdateFilter) => { + updateFilter({ field, value, negate: !negate }); + }; + + return { invertFilter, setFilter, removeFilter }; +}; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_url_strorage.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_url_strorage.tsx new file mode 100644 index 0000000000000..d38429703b709 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_url_strorage.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { createContext, useContext, Context } from 'react'; +import { IKbnUrlStateStorage } from '../../../../../../../../src/plugins/kibana_utils/public'; +import type { AppDataType, ReportViewTypeId, SeriesUrl, UrlFilter } from '../types'; +import { convertToShortUrl } from '../configurations/utils'; +import { OperationType, SeriesType } from '../../../../../../lens/public'; +import { URL_KEYS } from '../configurations/url_constants'; + +export const UrlStorageContext = createContext(null); + +interface ProviderProps { + storage: IKbnUrlStateStorage; +} + +export function UrlStorageContextProvider({ + children, + storage, +}: ProviderProps & { children: JSX.Element }) { + return {children}; +} + +function convertFromShortUrl(newValue: ShortUrlSeries): SeriesUrl { + const { mt, st, rt, bd, ft, time, rdf, ...restSeries } = newValue; + return { + metric: mt, + reportType: rt!, + seriesType: st, + breakdown: bd, + filters: ft!, + time: time!, + reportDefinitions: rdf, + ...restSeries, + }; +} + +interface ShortUrlSeries { + [URL_KEYS.METRIC_TYPE]?: OperationType; + [URL_KEYS.REPORT_TYPE]?: ReportViewTypeId; + [URL_KEYS.SERIES_TYPE]?: SeriesType; + [URL_KEYS.BREAK_DOWN]?: string; + [URL_KEYS.FILTERS]?: UrlFilter[]; + [URL_KEYS.REPORT_DEFINITIONS]?: Record; + time?: { + to: string; + from: string; + }; + dataType?: AppDataType; +} + +export type AllShortSeries = Record; +export type AllSeries = Record; + +export const NEW_SERIES_KEY = 'newSeriesKey'; + +export function useUrlStorage(seriesId?: string) { + const allSeriesKey = 'sr'; + const storage = useContext((UrlStorageContext as unknown) as Context); + let series: SeriesUrl = {} as SeriesUrl; + const allShortSeries = storage.get(allSeriesKey) ?? {}; + + const allSeriesIds = Object.keys(allShortSeries); + + const allSeries: AllSeries = {}; + + allSeriesIds.forEach((seriesKey) => { + allSeries[seriesKey] = convertFromShortUrl(allShortSeries[seriesKey]); + }); + + if (seriesId) { + series = allSeries?.[seriesId] ?? ({} as SeriesUrl); + } + + const setSeries = async (seriesIdN: string, newValue: SeriesUrl) => { + allShortSeries[seriesIdN] = convertToShortUrl(newValue); + allSeries[seriesIdN] = newValue; + return storage.set(allSeriesKey, allShortSeries); + }; + + const removeSeries = (seriesIdN: string) => { + delete allShortSeries[seriesIdN]; + delete allSeries[seriesIdN]; + storage.set(allSeriesKey, allShortSeries); + }; + + const firstSeriesId = allSeriesIds?.[0]; + + return { + storage, + setSeries, + removeSeries, + series, + firstSeriesId, + allSeries, + allSeriesIds, + firstSeries: allSeries?.[firstSeriesId], + }; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/index.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/index.tsx new file mode 100644 index 0000000000000..dc47a0f075fe6 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/index.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, { useContext } from 'react'; +import { i18n } from '@kbn/i18n'; +import { useHistory } from 'react-router-dom'; +import { ThemeContext } from 'styled-components'; +import { ExploratoryView } from './exploratory_view'; +import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; +import { ObservabilityPublicPluginsStart } from '../../../plugin'; +import { useBreadcrumbs } from '../../../hooks/use_breadcrumbs'; +import { IndexPatternContextProvider } from './hooks/use_default_index_pattern'; +import { + createKbnUrlStateStorage, + withNotifyOnErrors, +} from '../../../../../../../src/plugins/kibana_utils/public/'; +import { UrlStorageContextProvider } from './hooks/use_url_strorage'; +import { useInitExploratoryView } from './hooks/use_init_exploratory_view'; +import { WithHeaderLayout } from '../../app/layout/with_header'; + +export function ExploratoryViewPage() { + useBreadcrumbs([ + { + text: i18n.translate('xpack.observability.overview.exploratoryView', { + defaultMessage: 'Exploratory view', + }), + }, + ]); + + const theme = useContext(ThemeContext); + + const { + services: { uiSettings, notifications }, + } = useKibana(); + + const history = useHistory(); + + const kbnUrlStateStorage = createKbnUrlStateStorage({ + history, + useHash: uiSettings!.get('state:storeInSessionStorage'), + ...withNotifyOnErrors(notifications!.toasts), + }); + + const indexPattern = useInitExploratoryView(kbnUrlStateStorage); + + return ( + + {indexPattern ? ( + + + + + + ) : null} + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx new file mode 100644 index 0000000000000..112bfcc3ccb58 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx @@ -0,0 +1,318 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { of } from 'rxjs'; +import React, { ReactElement } from 'react'; +import { stringify } from 'query-string'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { render as reactTestLibRender, RenderOptions } from '@testing-library/react'; +import { Router } from 'react-router-dom'; +import { createMemoryHistory, History } from 'history'; +import { CoreStart } from 'kibana/public'; +import { I18nProvider } from '@kbn/i18n/react'; +import { coreMock } from 'src/core/public/mocks'; +import { + KibanaServices, + KibanaContextProvider, +} from '../../../../../../../src/plugins/kibana_react/public'; +import { ObservabilityPublicPluginsStart } from '../../../plugin'; +import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; +import { lensPluginMock } from '../../../../../lens/public/mocks'; +import { IndexPatternContextProvider } from './hooks/use_default_index_pattern'; +import { AllSeries, UrlStorageContextProvider } from './hooks/use_url_strorage'; +import { + withNotifyOnErrors, + createKbnUrlStateStorage, +} from '../../../../../../../src/plugins/kibana_utils/public'; +import * as fetcherHook from '../../../hooks/use_fetcher'; +import * as useUrlHook from './hooks/use_url_strorage'; +import * as useSeriesFilterHook from './hooks/use_series_filters'; +import * as useHasDataHook from '../../../hooks/use_has_data'; +import * as useValuesListHook from '../../../hooks/use_values_list'; + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getStubIndexPattern } from '../../../../../../../src/plugins/data/public/index_patterns/index_pattern.stub'; +import indexPatternData from './configurations/data/test_index_pattern.json'; + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { setIndexPatterns } from '../../../../../../../src/plugins/data/public/services'; +import { IndexPatternsContract } from '../../../../../../../src/plugins/data/common/index_patterns/index_patterns'; +import { UrlFilter } from './types'; +import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; + +interface KibanaProps { + services?: KibanaServices; +} + +export interface KibanaProviderOptions { + core?: ExtraCore & Partial; + kibanaProps?: KibanaProps; +} + +interface MockKibanaProviderProps> + extends KibanaProviderOptions { + children: ReactElement; + history: History; +} + +type MockRouterProps> = MockKibanaProviderProps; + +type Url = + | string + | { + path: string; + queryParams: Record; + }; + +interface RenderRouterOptions extends KibanaProviderOptions { + history?: History; + renderOptions?: Omit; + url?: Url; +} + +function getSetting(key: string): T { + if (key === 'timepicker:quickRanges') { + return ([ + { + display: 'Today', + from: 'now/d', + to: 'now/d', + }, + ] as unknown) as T; + } + return ('MMM D, YYYY @ HH:mm:ss.SSS' as unknown) as T; +} + +function setSetting$(key: string): T { + return (of('MMM D, YYYY @ HH:mm:ss.SSS') as unknown) as T; +} + +/* default mock core */ +const defaultCore = coreMock.createStart(); +export const mockCore: () => Partial = () => { + const core: Partial = { + ...defaultCore, + application: { + ...defaultCore.application, + getUrlForApp: () => '/app/observability', + navigateToUrl: jest.fn(), + capabilities: { + ...defaultCore.application.capabilities, + observability: { + 'alerting:save': true, + configureSettings: true, + save: true, + show: true, + }, + }, + }, + uiSettings: { + ...defaultCore.uiSettings, + get: getSetting, + get$: setSetting$, + }, + lens: lensPluginMock.createStartContract(), + data: dataPluginMock.createStartContract(), + }; + + return core; +}; + +/* Mock Provider Components */ +export function MockKibanaProvider>({ + children, + core, + history, + kibanaProps, +}: MockKibanaProviderProps) { + const { notifications } = core!; + + const kbnUrlStateStorage = createKbnUrlStateStorage({ + history, + useHash: false, + ...withNotifyOnErrors(notifications!.toasts), + }); + + const indexPattern = mockIndexPattern; + + setIndexPatterns(({ + ...[indexPattern], + get: async () => indexPattern, + } as unknown) as IndexPatternsContract); + + return ( + + + + + + {children} + + + + + + ); +} + +export function MockRouter({ + children, + core, + history = createMemoryHistory(), + kibanaProps, +}: MockRouterProps) { + return ( + + + {children} + + + ); +} + +/* Custom react testing library render */ +export function render( + ui: ReactElement, + { + history = createMemoryHistory(), + core: customCore, + kibanaProps, + renderOptions, + url, + }: RenderRouterOptions = {} +) { + if (url) { + history = getHistoryFromUrl(url); + } + + const core = { + ...mockCore(), + ...customCore, + }; + + return { + ...reactTestLibRender( + + {ui} + , + renderOptions + ), + history, + core, + }; +} + +const getHistoryFromUrl = (url: Url) => { + if (typeof url === 'string') { + return createMemoryHistory({ + initialEntries: [url], + }); + } + + return createMemoryHistory({ + initialEntries: [url.path + stringify(url.queryParams)], + }); +}; + +export const mockFetcher = (data: any) => { + return jest.spyOn(fetcherHook, 'useFetcher').mockReturnValue({ + data, + status: fetcherHook.FETCH_STATUS.SUCCESS, + refetch: jest.fn(), + }); +}; + +export const mockUseHasData = () => { + const onRefreshTimeRange = jest.fn(); + const spy = jest.spyOn(useHasDataHook, 'useHasData').mockReturnValue({ + onRefreshTimeRange, + } as any); + return { spy, onRefreshTimeRange }; +}; + +export const mockUseValuesList = (values?: string[]) => { + const onRefreshTimeRange = jest.fn(); + const spy = jest.spyOn(useValuesListHook, 'useValuesList').mockReturnValue({ + values: values ?? [], + } as any); + return { spy, onRefreshTimeRange }; +}; + +export const mockUrlStorage = ({ + data, + filters, + breakdown, +}: { + data?: AllSeries; + filters?: UrlFilter[]; + breakdown?: string; +}) => { + const mockDataSeries = data || { + 'performance-distribution': { + reportType: 'pld', + breakdown: breakdown || 'user_agent.name', + time: { from: 'now-15m', to: 'now' }, + ...(filters ? { filters } : {}), + }, + }; + const allSeriesIds = Object.keys(mockDataSeries); + const firstSeriesId = allSeriesIds?.[0]; + + const series = mockDataSeries[firstSeriesId]; + + const removeSeries = jest.fn(); + const setSeries = jest.fn(); + + const spy = jest.spyOn(useUrlHook, 'useUrlStorage').mockReturnValue({ + firstSeriesId, + allSeriesIds, + removeSeries, + setSeries, + series, + firstSeries: mockDataSeries[firstSeriesId], + allSeries: mockDataSeries, + } as any); + + return { spy, removeSeries, setSeries }; +}; + +export function mockUseSeriesFilter() { + const removeFilter = jest.fn(); + const invertFilter = jest.fn(); + const setFilter = jest.fn(); + const spy = jest.spyOn(useSeriesFilterHook, 'useSeriesFilters').mockReturnValue({ + removeFilter, + invertFilter, + setFilter, + }); + + return { + spy, + removeFilter, + invertFilter, + setFilter, + }; +} + +const hist = createMemoryHistory(); +export const mockHistory = { + ...hist, + createHref: jest.fn(({ pathname }) => `/observability${pathname}`), + push: jest.fn(), + location: { + ...hist.location, + pathname: '/current-path', + }, +}; + +export const mockIndexPattern = getStubIndexPattern( + 'apm-*', + () => {}, + '@timestamp', + JSON.parse(indexPatternData.attributes.fields), + mockCore() as any +); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.test.tsx new file mode 100644 index 0000000000000..d33d8515d3bee --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.test.tsx @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { mockUrlStorage, render } from '../../rtl_helpers'; +import { dataTypes, DataTypesCol } from './data_types_col'; +import { NEW_SERIES_KEY } from '../../hooks/use_url_strorage'; + +describe('DataTypesCol', function () { + it('should render properly', function () { + const { getByText } = render(); + + dataTypes.forEach(({ label }) => { + getByText(label); + }); + }); + + it('should set series on change', function () { + const { setSeries } = mockUrlStorage({}); + + render(); + + fireEvent.click(screen.getByText(/user experience\(rum\)/i)); + + expect(setSeries).toHaveBeenCalledTimes(1); + expect(setSeries).toHaveBeenCalledWith('newSeriesKey', { dataType: 'rum' }); + }); + + it('should set series on change on already selected', function () { + const { setSeries } = mockUrlStorage({ + data: { + [NEW_SERIES_KEY]: { + dataType: 'synthetics', + reportType: 'upp', + breakdown: 'monitor.status', + time: { from: 'now-15m', to: 'now' }, + }, + }, + }); + + render(); + + const button = screen.getByRole('button', { + name: /Synthetic Monitoring/i, + }); + + expect(button.classList).toContain('euiButton--fill'); + + fireEvent.click(button); + + // undefined on click selected + expect(setSeries).toHaveBeenCalledWith('newSeriesKey', { dataType: undefined }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.tsx new file mode 100644 index 0000000000000..7ea44e66a721a --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/data_types_col.tsx @@ -0,0 +1,56 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiButton, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { AppDataType } from '../../types'; +import { useIndexPatternContext } from '../../hooks/use_default_index_pattern'; +import { NEW_SERIES_KEY, useUrlStorage } from '../../hooks/use_url_strorage'; + +export const dataTypes: Array<{ id: AppDataType; label: string }> = [ + { id: 'synthetics', label: 'Synthetic Monitoring' }, + { id: 'rum', label: 'User Experience(RUM)' }, + { id: 'logs', label: 'Logs' }, + { id: 'metrics', label: 'Metrics' }, + { id: 'apm', label: 'APM' }, +]; + +export function DataTypesCol() { + const { series, setSeries } = useUrlStorage(NEW_SERIES_KEY); + + const { loadIndexPattern } = useIndexPatternContext(); + + const onDataTypeChange = (dataType?: AppDataType) => { + if (dataType) { + loadIndexPattern(dataType); + } + setSeries(NEW_SERIES_KEY, { dataType } as any); + }; + + const selectedDataType = series.dataType; + + return ( + + {dataTypes.map(({ id: dataTypeId, label }) => ( + + { + onDataTypeChange(dataTypeId === selectedDataType ? undefined : dataTypeId); + }} + > + {label} + + + ))} + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.test.tsx new file mode 100644 index 0000000000000..dba660fff9c36 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.test.tsx @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { render } from '../../../../../utils/test_helper'; +import { getDefaultConfigs } from '../../configurations/default_configs'; +import { mockIndexPattern, mockUrlStorage } from '../../rtl_helpers'; +import { NEW_SERIES_KEY } from '../../hooks/use_url_strorage'; +import { ReportBreakdowns } from './report_breakdowns'; +import { USER_AGENT_OS } from '../../configurations/data/elasticsearch_fieldnames'; + +describe('Series Builder ReportBreakdowns', function () { + const dataViewSeries = getDefaultConfigs({ + reportType: 'pld', + indexPattern: mockIndexPattern, + seriesId: NEW_SERIES_KEY, + }); + + it('should render properly', function () { + mockUrlStorage({}); + + render(); + + screen.getByText('Select an option: , is selected'); + screen.getAllByText('Browser family'); + }); + + it('should set new series breakdown on change', function () { + const { setSeries } = mockUrlStorage({}); + + render(); + + const btn = screen.getByRole('button', { + name: /select an option: Browser family , is selected/i, + hidden: true, + }); + + fireEvent.click(btn); + + fireEvent.click(screen.getByText(/operating system/i)); + + expect(setSeries).toHaveBeenCalledTimes(1); + expect(setSeries).toHaveBeenCalledWith('newSeriesKey', { + breakdown: USER_AGENT_OS, + reportType: 'pld', + time: { from: 'now-15m', to: 'now' }, + }); + }); + it('should set undefined on new series on no select breakdown', function () { + const { setSeries } = mockUrlStorage({}); + + render(); + + const btn = screen.getByRole('button', { + name: /select an option: Browser family , is selected/i, + hidden: true, + }); + + fireEvent.click(btn); + + fireEvent.click(screen.getByText(/no breakdown/i)); + + expect(setSeries).toHaveBeenCalledTimes(1); + expect(setSeries).toHaveBeenCalledWith('newSeriesKey', { + breakdown: undefined, + reportType: 'pld', + time: { from: 'now-15m', to: 'now' }, + }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.tsx new file mode 100644 index 0000000000000..7667cea417a52 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_breakdowns.tsx @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { Breakdowns } from '../../series_editor/columns/breakdowns'; +import { NEW_SERIES_KEY } from '../../hooks/use_url_strorage'; +import { DataSeries } from '../../types'; + +export function ReportBreakdowns({ dataViewSeries }: { dataViewSeries: DataSeries }) { + return ; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.test.tsx new file mode 100644 index 0000000000000..2fda581154166 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.test.tsx @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { getDefaultConfigs } from '../../configurations/default_configs'; +import { mockIndexPattern, mockUrlStorage, mockUseValuesList, render } from '../../rtl_helpers'; +import { NEW_SERIES_KEY } from '../../hooks/use_url_strorage'; +import { ReportDefinitionCol } from './report_definition_col'; +import { SERVICE_NAME } from '../../configurations/data/elasticsearch_fieldnames'; + +describe('Series Builder ReportDefinitionCol', function () { + const dataViewSeries = getDefaultConfigs({ + reportType: 'pld', + indexPattern: mockIndexPattern, + seriesId: NEW_SERIES_KEY, + }); + + const { setSeries } = mockUrlStorage({ + data: { + 'performance-dist': { + dataType: 'rum', + reportType: 'pld', + time: { from: 'now-30d', to: 'now' }, + reportDefinitions: { [SERVICE_NAME]: 'elastic-co' }, + }, + }, + }); + + it('should render properly', async function () { + render(); + + screen.getByText('Web Application'); + screen.getByText('Environment'); + screen.getByText('Select an option: Page load time, is selected'); + screen.getByText('Page load time'); + }); + + it('should render selected report definitions', function () { + render(); + + screen.getByText('elastic-co'); + }); + + it('should be able to remove selected definition', function () { + render(); + + const removeBtn = screen.getByText(/elastic-co/i); + + fireEvent.click(removeBtn); + + expect(setSeries).toHaveBeenCalledTimes(1); + expect(setSeries).toHaveBeenCalledWith('newSeriesKey', { + dataType: 'rum', + reportDefinitions: {}, + reportType: 'pld', + time: { from: 'now-30d', to: 'now' }, + }); + }); + + it('should be able to unselected selected definition', async function () { + mockUseValuesList(['elastic-co']); + render(); + + const definitionBtn = screen.getByText(/web application/i); + + fireEvent.click(definitionBtn); + + screen.getByText('Apply'); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.tsx new file mode 100644 index 0000000000000..ce11c869de0ab --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_definition_col.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 React from 'react'; +import { EuiBadge, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { useIndexPatternContext } from '../../hooks/use_default_index_pattern'; +import { NEW_SERIES_KEY, useUrlStorage } from '../../hooks/use_url_strorage'; +import { CustomReportField } from '../custom_report_field'; +import FieldValueSuggestions from '../../../field_value_suggestions'; +import { DataSeries } from '../../types'; + +export function ReportDefinitionCol({ dataViewSeries }: { dataViewSeries: DataSeries }) { + const { indexPattern } = useIndexPatternContext(); + + const { series, setSeries } = useUrlStorage(NEW_SERIES_KEY); + + const { reportDefinitions: rtd = {} } = series; + + const { reportDefinitions, labels, filters } = dataViewSeries; + + const onChange = (field: string, value?: string) => { + if (!value) { + delete rtd[field]; + setSeries(NEW_SERIES_KEY, { + ...series, + reportDefinitions: { ...rtd }, + }); + } else { + setSeries(NEW_SERIES_KEY, { + ...series, + reportDefinitions: { ...rtd, [field]: value }, + }); + } + }; + + const onRemove = (field: string) => { + delete rtd[field]; + setSeries(NEW_SERIES_KEY, { + ...series, + reportDefinitions: rtd, + }); + }; + + return ( + + {indexPattern && + reportDefinitions.map(({ field, custom, options, defaultValue }) => ( + + {!custom ? ( + + + onChange(field, val)} + filters={(filters ?? []).map(({ query }) => query)} + time={series.time} + width={200} + /> + + {rtd?.[field] && ( + + onRemove(field)} + iconOnClick={() => onRemove(field)} + iconOnClickAriaLabel={'Click to remove'} + onClickAriaLabel={'Click to remove'} + > + {rtd?.[field]} + + + )} + + ) : ( + + )} + + ))} + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.test.tsx new file mode 100644 index 0000000000000..674f5e6f49bde --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.test.tsx @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { screen } from '@testing-library/react'; +import { render } from '../../../../../utils/test_helper'; +import { ReportFilters } from './report_filters'; +import { getDefaultConfigs } from '../../configurations/default_configs'; +import { mockIndexPattern, mockUrlStorage } from '../../rtl_helpers'; +import { NEW_SERIES_KEY } from '../../hooks/use_url_strorage'; + +describe('Series Builder ReportFilters', function () { + const dataViewSeries = getDefaultConfigs({ + reportType: 'pld', + indexPattern: mockIndexPattern, + seriesId: NEW_SERIES_KEY, + }); + mockUrlStorage({}); + it('should render properly', function () { + render(); + + screen.getByText('Add filter'); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.tsx new file mode 100644 index 0000000000000..903dda549aeee --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_filters.tsx @@ -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 React from 'react'; +import { SeriesFilter } from '../../series_editor/columns/series_filter'; +import { NEW_SERIES_KEY } from '../../hooks/use_url_strorage'; +import { DataSeries } from '../../types'; + +export function ReportFilters({ dataViewSeries }: { dataViewSeries: DataSeries }) { + return ( + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.test.tsx new file mode 100644 index 0000000000000..567e2654130e8 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.test.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { mockUrlStorage, render } from '../../rtl_helpers'; +import { ReportTypesCol, SELECTED_DATA_TYPE_FOR_REPORT } from './report_types_col'; +import { ReportTypes } from '../series_builder'; + +describe('ReportTypesCol', function () { + it('should render properly', function () { + render(); + screen.getByText('Performance distribution'); + screen.getByText('KPI over time'); + }); + + it('should display empty message', function () { + render(); + screen.getByText(SELECTED_DATA_TYPE_FOR_REPORT); + }); + + it('should set series on change', function () { + const { setSeries } = mockUrlStorage({}); + render(); + + fireEvent.click(screen.getByText(/monitor duration/i)); + + expect(setSeries).toHaveBeenCalledWith('newSeriesKey', { + breakdown: 'user_agent.name', + reportDefinitions: {}, + reportType: 'upd', + time: { from: 'now-15m', to: 'now' }, + }); + expect(setSeries).toHaveBeenCalledTimes(1); + }); + + it('should set selected as filled', function () { + const { setSeries } = mockUrlStorage({ + data: { + newSeriesKey: { + dataType: 'synthetics', + reportType: 'upp', + breakdown: 'monitor.status', + time: { from: 'now-15m', to: 'now' }, + }, + }, + }); + + render(); + + const button = screen.getByRole('button', { + name: /pings histogram/i, + }); + + expect(button.classList).toContain('euiButton--fill'); + fireEvent.click(button); + + // undefined on click selected + expect(setSeries).toHaveBeenCalledWith('newSeriesKey', { dataType: 'synthetics' }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.tsx new file mode 100644 index 0000000000000..5c94a5bca60f8 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/columns/report_types_col.tsx @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import { ReportViewTypeId, SeriesUrl } from '../../types'; +import { NEW_SERIES_KEY, useUrlStorage } from '../../hooks/use_url_strorage'; + +interface Props { + reportTypes: Array<{ id: ReportViewTypeId; label: string }>; +} + +export function ReportTypesCol({ reportTypes }: Props) { + const { + series: { reportType: selectedReportType, ...restSeries }, + setSeries, + } = useUrlStorage(NEW_SERIES_KEY); + + return reportTypes?.length > 0 ? ( + + {reportTypes.map(({ id: reportType, label }) => ( + + { + if (reportType === selectedReportType) { + setSeries(NEW_SERIES_KEY, { + dataType: restSeries.dataType, + } as SeriesUrl); + } else { + setSeries(NEW_SERIES_KEY, { + ...restSeries, + reportType, + reportDefinitions: {}, + }); + } + }} + > + {label} + + + ))} + + ) : ( + {SELECTED_DATA_TYPE_FOR_REPORT} + ); +} + +export const SELECTED_DATA_TYPE_FOR_REPORT = i18n.translate( + 'xpack.observability.expView.reportType.noDataType', + { defaultMessage: 'Select a data type to start building a series.' } +); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/custom_report_field.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/custom_report_field.tsx new file mode 100644 index 0000000000000..6039fd4cba280 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/custom_report_field.tsx @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiSuperSelect } from '@elastic/eui'; +import { useUrlStorage } from '../hooks/use_url_strorage'; +import { ReportDefinition } from '../types'; + +interface Props { + field: string; + seriesId: string; + defaultValue?: string; + options: ReportDefinition['options']; +} + +export function CustomReportField({ field, seriesId, options: opts, defaultValue }: Props) { + const { series, setSeries } = useUrlStorage(seriesId); + + const { reportDefinitions: rtd = {} } = series; + + const onChange = (value: string) => { + setSeries(seriesId, { ...series, reportDefinitions: { ...rtd, [field]: value } }); + }; + + const { reportDefinitions } = series; + + const NO_SELECT = 'no_select'; + + const options = [{ label: 'Select metric', field: NO_SELECT }, ...(opts ?? [])]; + + return ( +
+ ({ + value: fd, + inputDisplay: label, + }))} + valueOfSelected={reportDefinitions?.[field] || defaultValue || NO_SELECT} + onChange={(value) => onChange(value)} + /> +
+ ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/series_builder.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/series_builder.tsx new file mode 100644 index 0000000000000..983c18af031d0 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_builder/series_builder.tsx @@ -0,0 +1,201 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState } from 'react'; + +import { i18n } from '@kbn/i18n'; +import { EuiButton, EuiBasicTable, EuiSpacer, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import styled from 'styled-components'; +import { AppDataType, ReportViewTypeId, ReportViewTypes, SeriesUrl } from '../types'; +import { DataTypesCol } from './columns/data_types_col'; +import { ReportTypesCol } from './columns/report_types_col'; +import { ReportDefinitionCol } from './columns/report_definition_col'; +import { ReportFilters } from './columns/report_filters'; +import { ReportBreakdowns } from './columns/report_breakdowns'; +import { NEW_SERIES_KEY, useUrlStorage } from '../hooks/use_url_strorage'; +import { useIndexPatternContext } from '../hooks/use_default_index_pattern'; +import { getDefaultConfigs } from '../configurations/default_configs'; + +export const ReportTypes: Record> = { + synthetics: [ + { id: 'upd', label: 'Monitor duration' }, + { id: 'upp', label: 'Pings histogram' }, + ], + rum: [ + { id: 'pld', label: 'Performance distribution' }, + { id: 'kpi', label: 'KPI over time' }, + ], + apm: [ + { id: 'svl', label: 'Latency' }, + { id: 'tpt', label: 'Throughput' }, + ], + logs: [ + { + id: 'logs', + label: 'Logs Frequency', + }, + ], + metrics: [ + { id: 'cpu', label: 'CPU usage' }, + { id: 'mem', label: 'Memory usage' }, + { id: 'nwk', label: 'Network activity' }, + ], +}; + +export function SeriesBuilder() { + const { series, setSeries, allSeriesIds, removeSeries } = useUrlStorage(NEW_SERIES_KEY); + + const { dataType, reportType, reportDefinitions = {}, filters = [] } = series; + + const [isFlyoutVisible, setIsFlyoutVisible] = useState(!!series.dataType); + + const { indexPattern } = useIndexPatternContext(); + + const getDataViewSeries = () => { + return getDefaultConfigs({ + indexPattern, + reportType: reportType!, + seriesId: NEW_SERIES_KEY, + }); + }; + + const columns = [ + { + name: i18n.translate('xpack.observability.expView.seriesBuilder.dataType', { + defaultMessage: 'Data Type', + }), + width: '20%', + render: (val: string) => , + }, + { + name: i18n.translate('xpack.observability.expView.seriesBuilder.report', { + defaultMessage: 'Report', + }), + width: '20%', + render: (val: string) => ( + + ), + }, + { + name: i18n.translate('xpack.observability.expView.seriesBuilder.definition', { + defaultMessage: 'Definition', + }), + width: '30%', + render: (val: string) => + reportType && indexPattern ? ( + + ) : null, + }, + { + name: i18n.translate('xpack.observability.expView.seriesBuilder.filters', { + defaultMessage: 'Filters', + }), + width: '25%', + render: (val: string) => + reportType && indexPattern ? : null, + }, + { + name: i18n.translate('xpack.observability.expView.seriesBuilder.breakdown', { + defaultMessage: 'Breakdowns', + }), + width: '25%', + field: 'id', + render: (val: string) => + reportType && indexPattern ? ( + + ) : null, + }, + ]; + + const addSeries = () => { + if (reportType) { + const newSeriesId = `${ + reportDefinitions?.['service.name'] || + reportDefinitions?.['monitor.id'] || + ReportViewTypes[reportType] + }`; + + const newSeriesN = { + reportType, + time: { from: 'now-30m', to: 'now' }, + filters, + reportDefinitions, + } as SeriesUrl; + + setSeries(newSeriesId, newSeriesN).then(() => { + removeSeries(NEW_SERIES_KEY); + setIsFlyoutVisible(false); + }); + } + }; + + const items = [{ id: NEW_SERIES_KEY }]; + + let flyout; + + if (isFlyoutVisible) { + flyout = ( + + + + + + + {i18n.translate('xpack.observability.expView.seriesBuilder.add', { + defaultMessage: 'Add', + })} + + + + { + removeSeries(NEW_SERIES_KEY); + setIsFlyoutVisible(false); + }} + > + {i18n.translate('xpack.observability.expView.seriesBuilder.cancel', { + defaultMessage: 'Cancel', + })} + + + + + ); + } + + return ( +
+ {!isFlyoutVisible && ( + <> + setIsFlyoutVisible((prevState) => !prevState)} + disabled={allSeriesIds.length > 0} + > + {i18n.translate('xpack.observability.expView.seriesBuilder.addSeries', { + defaultMessage: 'Add series', + })} + + + + )} + {flyout} +
+ ); +} + +const BottomFlyout = styled.div` + height: 300px; +`; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/index.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/index.tsx new file mode 100644 index 0000000000000..71e3317ad6db8 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/index.tsx @@ -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 { EuiSuperDatePicker } from '@elastic/eui'; +import React, { useEffect } from 'react'; +import { useHasData } from '../../../../hooks/use_has_data'; +import { useUrlStorage } from '../hooks/use_url_strorage'; +import { useQuickTimeRanges } from '../../../../hooks/use_quick_time_ranges'; + +export interface TimePickerTime { + from: string; + to: string; +} + +export interface TimePickerQuickRange extends TimePickerTime { + display: string; +} + +interface Props { + seriesId: string; +} + +export function SeriesDatePicker({ seriesId }: Props) { + const { onRefreshTimeRange } = useHasData(); + + const commonlyUsedRanges = useQuickTimeRanges(); + + const { series, setSeries } = useUrlStorage(seriesId); + + function onTimeChange({ start, end }: { start: string; end: string }) { + onRefreshTimeRange(); + setSeries(seriesId, { ...series, time: { from: start, to: end } }); + } + + useEffect(() => { + if (!series || !series.time) { + setSeries(seriesId, { ...series, time: { from: 'now-5h', to: 'now' } }); + } + }, [seriesId, series, setSeries]); + + return ( + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/series_date_picker.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/series_date_picker.test.tsx new file mode 100644 index 0000000000000..acc9ba9658a08 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_date_picker/series_date_picker.test.tsx @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { mockUrlStorage, mockUseHasData, render } from '../rtl_helpers'; +import { fireEvent, waitFor } from '@testing-library/react'; +import { SeriesDatePicker } from './index'; + +describe('SeriesDatePicker', function () { + it('should render properly', function () { + mockUrlStorage({ + data: { + 'uptime-pings-histogram': { + reportType: 'upp', + breakdown: 'monitor.status', + time: { from: 'now-30m', to: 'now' }, + }, + }, + }); + const { getByText } = render(); + + getByText('Last 30 minutes'); + }); + + it('should set defaults', async function () { + const { setSeries: setSeries1 } = mockUrlStorage({ + data: { + 'uptime-pings-histogram': { + reportType: 'upp', + breakdown: 'monitor.status', + }, + }, + } as any); + render(); + expect(setSeries1).toHaveBeenCalledTimes(1); + expect(setSeries1).toHaveBeenCalledWith('uptime-pings-histogram', { + breakdown: 'monitor.status', + reportType: 'upp', + time: { from: 'now-5h', to: 'now' }, + }); + }); + + it('should set series data', async function () { + const { setSeries } = mockUrlStorage({ + data: { + 'uptime-pings-histogram': { + reportType: 'upp', + breakdown: 'monitor.status', + time: { from: 'now-30m', to: 'now' }, + }, + }, + }); + + const { onRefreshTimeRange } = mockUseHasData(); + const { getByTestId } = render(); + + await waitFor(function () { + fireEvent.click(getByTestId('superDatePickerToggleQuickMenuButton')); + }); + + fireEvent.click(getByTestId('superDatePickerCommonlyUsed_Today')); + + expect(onRefreshTimeRange).toHaveBeenCalledTimes(1); + + expect(setSeries).toHaveBeenCalledWith('series-id', { + breakdown: 'monitor.status', + reportType: 'upp', + time: { from: 'now/d', to: 'now/d' }, + }); + expect(setSeries).toHaveBeenCalledTimes(1); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/actions_col.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/actions_col.tsx new file mode 100644 index 0000000000000..c6209381a4da1 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/actions_col.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 { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { DataSeries } from '../../types'; +import { SeriesChartTypes } from './chart_types'; +import { MetricSelection } from './metric_selection'; + +interface Props { + series: DataSeries; +} + +export function ActionsCol({ series }: Props) { + return ( + + + + + {series.hasMetricType && ( + + + + )} + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.test.tsx new file mode 100644 index 0000000000000..654a93a08a7c8 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.test.tsx @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { Breakdowns } from './breakdowns'; +import { mockIndexPattern, mockUrlStorage, render } from '../../rtl_helpers'; +import { NEW_SERIES_KEY } from '../../hooks/use_url_strorage'; +import { getDefaultConfigs } from '../../configurations/default_configs'; +import { USER_AGENT_OS } from '../../configurations/data/elasticsearch_fieldnames'; + +describe('Breakdowns', function () { + const dataViewSeries = getDefaultConfigs({ + reportType: 'pld', + indexPattern: mockIndexPattern, + seriesId: NEW_SERIES_KEY, + }); + + it('should render properly', async function () { + mockUrlStorage({}); + + render(); + + screen.getAllByText('Browser family'); + }); + + it('should call set series on change', function () { + const { setSeries } = mockUrlStorage({ breakdown: USER_AGENT_OS }); + + render(); + + screen.getAllByText('Operating system'); + + fireEvent.click(screen.getByTestId('seriesBreakdown')); + + fireEvent.click(screen.getByText('Browser family')); + + expect(setSeries).toHaveBeenCalledWith('series-id', { + breakdown: 'user_agent.name', + reportType: 'pld', + time: { from: 'now-15m', to: 'now' }, + }); + expect(setSeries).toHaveBeenCalledTimes(1); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.tsx new file mode 100644 index 0000000000000..0d34d7245725a --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/breakdowns.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiSuperSelect } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FieldLabels } from '../../configurations/constants'; +import { useUrlStorage } from '../../hooks/use_url_strorage'; + +interface Props { + seriesId: string; + breakdowns: string[]; +} + +export function Breakdowns({ seriesId, breakdowns = [] }: Props) { + const { setSeries, series } = useUrlStorage(seriesId); + + const selectedBreakdown = series.breakdown; + const NO_BREAKDOWN = 'no_breakdown'; + + const onOptionChange = (optionId: string) => { + if (optionId === NO_BREAKDOWN) { + setSeries(seriesId, { + ...series, + breakdown: undefined, + }); + } else { + setSeries(seriesId, { + ...series, + breakdown: selectedBreakdown === optionId ? undefined : optionId, + }); + } + }; + + const items = breakdowns.map((breakdown) => ({ id: breakdown, label: FieldLabels[breakdown] })); + items.push({ + id: NO_BREAKDOWN, + label: i18n.translate('xpack.observability.exp.breakDownFilter.noBreakdown', { + defaultMessage: 'No breakdown', + }), + }); + + const options = items.map(({ id, label }) => ({ + inputDisplay: id === NO_BREAKDOWN ? label : {label}, + value: id, + dropdownDisplay: label, + })); + + return ( +
+ onOptionChange(value)} + data-test-subj={'seriesBreakdown'} + /> +
+ ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.test.tsx new file mode 100644 index 0000000000000..f291d0de4dac0 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.test.tsx @@ -0,0 +1,56 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen, waitFor } from '@testing-library/react'; +import { SeriesChartTypes, XYChartTypes } from './chart_types'; +import { mockUrlStorage, render } from '../../rtl_helpers'; + +describe.skip('SeriesChartTypes', function () { + it('should render properly', async function () { + mockUrlStorage({}); + + render(); + + await waitFor(() => { + screen.getByText(/chart type/i); + }); + }); + + it('should call set series on change', async function () { + const { setSeries } = mockUrlStorage({}); + + render(); + + await waitFor(() => { + screen.getByText(/chart type/i); + }); + + fireEvent.click(screen.getByText(/chart type/i)); + fireEvent.click(screen.getByTestId('lnsXY_seriesType-bar_stacked')); + + expect(setSeries).toHaveBeenNthCalledWith(1, 'performance-distribution', { + breakdown: 'user_agent.name', + reportType: 'pld', + seriesType: 'bar_stacked', + time: { from: 'now-15m', to: 'now' }, + }); + expect(setSeries).toHaveBeenCalledTimes(3); + }); + + describe('XYChartTypes', function () { + it('should render properly', async function () { + mockUrlStorage({}); + + render(); + + await waitFor(() => { + screen.getByText(/chart type/i); + }); + }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.tsx new file mode 100644 index 0000000000000..017655053eef2 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/chart_types.tsx @@ -0,0 +1,149 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState } from 'react'; + +import { + EuiButton, + EuiButtonGroup, + EuiButtonIcon, + EuiLoadingSpinner, + EuiPopover, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import styled from 'styled-components'; +import { useKibana } from '../../../../../../../../../src/plugins/kibana_react/public'; +import { ObservabilityPublicPluginsStart } from '../../../../../plugin'; +import { useFetcher } from '../../../../..'; +import { useUrlStorage } from '../../hooks/use_url_strorage'; +import { SeriesType } from '../../../../../../../lens/public'; + +export function SeriesChartTypes({ + seriesId, + defaultChartType, +}: { + seriesId: string; + defaultChartType: SeriesType; +}) { + const { series, setSeries, allSeries } = useUrlStorage(seriesId); + + const seriesType = series?.seriesType ?? defaultChartType; + + const onChange = (value: SeriesType) => { + Object.keys(allSeries).forEach((seriesKey) => { + const seriesN = allSeries[seriesKey]; + + setSeries(seriesKey, { ...seriesN, seriesType: value }); + }); + }; + + return ( + + ); +} + +export interface XYChartTypesProps { + onChange: (value: SeriesType) => void; + value: SeriesType; + label?: string; + includeChartTypes?: string[]; + excludeChartTypes?: string[]; +} + +export function XYChartTypes({ + onChange, + value, + label, + includeChartTypes, + excludeChartTypes, +}: XYChartTypesProps) { + const [isOpen, setIsOpen] = useState(false); + + const { + services: { lens }, + } = useKibana(); + + const { data = [], loading } = useFetcher(() => lens.getXyVisTypes(), [lens]); + + let vizTypes = data ?? []; + + if ((excludeChartTypes ?? []).length > 0) { + vizTypes = vizTypes.filter(({ id }) => !excludeChartTypes?.includes(id)); + } + + if ((includeChartTypes ?? []).length > 0) { + vizTypes = vizTypes.filter(({ id }) => includeChartTypes?.includes(id)); + } + + return loading ? ( + + ) : ( + id === value)?.icon} + onClick={() => { + setIsOpen((prevState) => !prevState); + }} + > + {label} + + ) : ( + id === value)?.label} + iconType={vizTypes.find(({ id }) => id === value)?.icon!} + onClick={() => { + setIsOpen((prevState) => !prevState); + }} + /> + ) + } + closePopover={() => setIsOpen(false)} + > + ({ + id: t.id, + label: t.label, + title: t.label, + iconType: t.icon || 'empty', + 'data-test-subj': `lnsXY_seriesType-${t.id}`, + }))} + idSelected={value} + onChange={(valueN: string) => { + onChange(valueN as SeriesType); + }} + /> + + ); +} + +const ButtonGroup = styled(EuiButtonGroup)` + &&& { + .euiButtonGroupButton-isSelected { + background-color: #a5a9b1 !important; + } + } +`; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx new file mode 100644 index 0000000000000..8c99de51978a7 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/date_picker_col.tsx @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { SeriesDatePicker } from '../../series_date_picker'; + +interface Props { + seriesId: string; +} +export function DatePickerCol({ seriesId }: Props) { + return ( +
+ +
+ ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx new file mode 100644 index 0000000000000..edd5546f13940 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.test.tsx @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { FilterExpanded } from './filter_expanded'; +import { mockUrlStorage, mockUseValuesList, render } from '../../rtl_helpers'; +import { USER_AGENT_NAME } from '../../configurations/data/elasticsearch_fieldnames'; + +describe('FilterExpanded', function () { + it('should render properly', async function () { + mockUrlStorage({ filters: [{ field: USER_AGENT_NAME, values: ['Chrome'] }] }); + + render( + + ); + + screen.getByText('Browser Family'); + }); + it('should call go back on click', async function () { + mockUrlStorage({ filters: [{ field: USER_AGENT_NAME, values: ['Chrome'] }] }); + const goBack = jest.fn(); + + render( + + ); + + fireEvent.click(screen.getByText('Browser Family')); + + expect(goBack).toHaveBeenCalledTimes(1); + expect(goBack).toHaveBeenCalledWith(); + }); + + it('should call useValuesList on load', async function () { + mockUrlStorage({ filters: [{ field: USER_AGENT_NAME, values: ['Chrome'] }] }); + + const { spy } = mockUseValuesList(['Chrome', 'Firefox']); + + const goBack = jest.fn(); + + render( + + ); + + expect(spy).toHaveBeenCalledTimes(1); + expect(spy).toBeCalledWith( + expect.objectContaining({ + time: { from: 'now-15m', to: 'now' }, + sourceField: USER_AGENT_NAME, + }) + ); + }); + it('should filter display values', async function () { + mockUrlStorage({ filters: [{ field: USER_AGENT_NAME, values: ['Chrome'] }] }); + + mockUseValuesList(['Chrome', 'Firefox']); + + render( + + ); + + expect(screen.queryByText('Firefox')).toBeTruthy(); + + fireEvent.input(screen.getByRole('searchbox'), { target: { value: 'ch' } }); + + expect(screen.queryByText('Firefox')).toBeFalsy(); + expect(screen.getByText('Chrome')).toBeTruthy(); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.tsx new file mode 100644 index 0000000000000..280912dd0902f --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_expanded.tsx @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState, Fragment } from 'react'; +import { + EuiFieldSearch, + EuiSpacer, + EuiButtonEmpty, + EuiLoadingSpinner, + EuiFilterGroup, +} from '@elastic/eui'; +import { useIndexPatternContext } from '../../hooks/use_default_index_pattern'; +import { useUrlStorage } from '../../hooks/use_url_strorage'; +import { UrlFilter } from '../../types'; +import { FilterValueButton } from './filter_value_btn'; +import { useValuesList } from '../../../../../hooks/use_values_list'; + +interface Props { + seriesId: string; + label: string; + field: string; + goBack: () => void; + nestedField?: string; +} + +export function FilterExpanded({ seriesId, field, label, goBack, nestedField }: Props) { + const { indexPattern } = useIndexPatternContext(); + + const [value, setValue] = useState(''); + + const [isOpen, setIsOpen] = useState({ value: '', negate: false }); + + const { series } = useUrlStorage(seriesId); + + const { values, loading } = useValuesList({ + sourceField: field, + time: series.time, + indexPattern, + }); + + const filters = series?.filters ?? []; + + const currFilter: UrlFilter | undefined = filters.find(({ field: fd }) => field === fd); + + const displayValues = (values || []).filter((opt) => + opt.toLowerCase().includes(value.toLowerCase()) + ); + + return ( + <> + goBack()}> + {label} + + { + setValue(evt.target.value); + }} + /> + + {loading && ( +
+ +
+ )} + {displayValues.map((opt) => ( + + + + + + + + ))} + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.test.tsx new file mode 100644 index 0000000000000..7f76c9ea999ee --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.test.tsx @@ -0,0 +1,238 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { FilterValueButton } from './filter_value_btn'; +import { mockUrlStorage, mockUseSeriesFilter, mockUseValuesList, render } from '../../rtl_helpers'; +import { + USER_AGENT_NAME, + USER_AGENT_VERSION, +} from '../../configurations/data/elasticsearch_fieldnames'; + +describe('FilterValueButton', function () { + it('should render properly', async function () { + render( + + ); + + screen.getByText('Chrome'); + }); + + it('should render display negate state', async function () { + render( + + ); + + screen.getByText('Not Chrome'); + screen.getByTitle('Not Chrome'); + const btn = screen.getByRole('button'); + expect(btn.classList).toContain('euiButtonEmpty--danger'); + }); + + it('should call set filter on click', async function () { + const { setFilter, removeFilter } = mockUseSeriesFilter(); + + render( + + ); + + fireEvent.click(screen.getByText('Not Chrome')); + + expect(removeFilter).toHaveBeenCalledTimes(0); + expect(setFilter).toHaveBeenCalledTimes(1); + + expect(setFilter).toHaveBeenCalledWith({ + field: 'user_agent.name', + negate: true, + value: 'Chrome', + }); + }); + it('should remove filter on click if already selected', async function () { + mockUrlStorage({}); + const { removeFilter } = mockUseSeriesFilter(); + + render( + + ); + + fireEvent.click(screen.getByText('Chrome')); + + expect(removeFilter).toHaveBeenCalledWith({ + field: 'user_agent.name', + negate: false, + value: 'Chrome', + }); + }); + + it('should change filter on negated one', async function () { + const { removeFilter } = mockUseSeriesFilter(); + + render( + + ); + + fireEvent.click(screen.getByText('Not Chrome')); + + expect(removeFilter).toHaveBeenCalledWith({ + field: 'user_agent.name', + negate: true, + value: 'Chrome', + }); + }); + + it('should force open nested', async function () { + mockUseSeriesFilter(); + const { spy } = mockUseValuesList(); + + render( + + ); + + expect(spy).toHaveBeenCalledTimes(1); + expect(spy).toBeCalledWith( + expect.objectContaining({ + filters: [ + { + term: { + [USER_AGENT_NAME]: 'Chrome', + }, + }, + ], + sourceField: 'user_agent.version', + }) + ); + }); + it('should set isNestedOpen on click', async function () { + mockUseSeriesFilter(); + const { spy } = mockUseValuesList(); + + render( + + ); + + expect(spy).toHaveBeenCalledTimes(2); + expect(spy).toBeCalledWith( + expect.objectContaining({ + filters: [ + { + term: { + [USER_AGENT_NAME]: 'Chrome', + }, + }, + ], + sourceField: USER_AGENT_VERSION, + }) + ); + }); + + it('should set call setIsNestedOpen on click selected', async function () { + mockUseSeriesFilter(); + mockUseValuesList(); + + const setIsNestedOpen = jest.fn(); + + render( + + ); + + fireEvent.click(screen.getByText('Chrome')); + + expect(setIsNestedOpen).toHaveBeenCalledTimes(1); + expect(setIsNestedOpen).toHaveBeenCalledWith({ negate: false, value: '' }); + }); + + it('should set call setIsNestedOpen on click not selected', async function () { + mockUseSeriesFilter(); + mockUseValuesList(); + + const setIsNestedOpen = jest.fn(); + + render( + + ); + + fireEvent.click(screen.getByText('Not Chrome')); + + expect(setIsNestedOpen).toHaveBeenCalledTimes(1); + expect(setIsNestedOpen).toHaveBeenCalledWith({ negate: true, value: 'Chrome' }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.tsx new file mode 100644 index 0000000000000..42cdfd595e66b --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/filter_value_btn.tsx @@ -0,0 +1,117 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { i18n } from '@kbn/i18n'; +import React, { useMemo } from 'react'; +import { EuiFilterButton, hexToRgb } from '@elastic/eui'; +import { useIndexPatternContext } from '../../hooks/use_default_index_pattern'; +import { useUrlStorage } from '../../hooks/use_url_strorage'; +import { useSeriesFilters } from '../../hooks/use_series_filters'; +import { euiStyled } from '../../../../../../../../../src/plugins/kibana_react/common'; +import FieldValueSuggestions from '../../../field_value_suggestions'; + +interface Props { + value: string; + field: string; + allSelectedValues?: string[]; + negate: boolean; + nestedField?: string; + seriesId: string; + isNestedOpen: { + value: string; + negate: boolean; + }; + setIsNestedOpen: (val: { value: string; negate: boolean }) => void; +} + +export function FilterValueButton({ + isNestedOpen, + setIsNestedOpen, + value, + field, + negate, + seriesId, + nestedField, + allSelectedValues, +}: Props) { + const { series } = useUrlStorage(seriesId); + + const { indexPattern } = useIndexPatternContext(); + + const { setFilter, removeFilter } = useSeriesFilters({ seriesId }); + + const hasActiveFilters = (allSelectedValues ?? []).includes(value); + + const button = ( + { + if (hasActiveFilters) { + removeFilter({ field, value, negate }); + } else { + setFilter({ field, value, negate }); + } + if (!hasActiveFilters) { + setIsNestedOpen({ value, negate }); + } else { + setIsNestedOpen({ value: '', negate }); + } + }} + > + {negate + ? i18n.translate('xpack.observability.expView.filterValueButton.negate', { + defaultMessage: 'Not {value}', + values: { value }, + }) + : value} + + ); + + const onNestedChange = (val?: string) => { + setFilter({ field: nestedField!, value: val! }); + setIsNestedOpen({ value: '', negate }); + }; + + const forceOpenNested = isNestedOpen?.value === value && isNestedOpen.negate === negate; + + const filters = useMemo(() => { + return [ + { + term: { + [field]: value, + }, + }, + ]; + }, [field, value]); + + return nestedField && forceOpenNested ? ( + + ) : ( + button + ); +} + +const FilterButton = euiStyled(EuiFilterButton)` + background-color: rgba(${(props) => { + const color = props.hasActiveFilters + ? props.color === 'danger' + ? hexToRgb(props.theme.eui.euiColorDanger) + : hexToRgb(props.theme.eui.euiColorPrimary) + : 'initial'; + return `${color[0]}, ${color[1]}, ${color[2]}, 0.1`; + }}); +`; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.test.tsx new file mode 100644 index 0000000000000..ced04f0a59c8c --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.test.tsx @@ -0,0 +1,112 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { fireEvent, screen } from '@testing-library/react'; +import { mockUrlStorage, render } from '../../rtl_helpers'; +import { MetricSelection } from './metric_selection'; + +describe('MetricSelection', function () { + it('should render properly', function () { + render(); + + screen.getByText('Average'); + }); + + it('should display selected value', function () { + mockUrlStorage({ + data: { + 'performance-distribution': { + reportType: 'kpi', + metric: 'median', + time: { from: 'now-15m', to: 'now' }, + }, + }, + }); + + render(); + + screen.getByText('Median'); + }); + + it('should be disabled on disabled state', function () { + render(); + + const btn = screen.getByRole('button'); + + expect(btn.classList).toContain('euiButton-isDisabled'); + }); + + it('should call set series on change', function () { + const { setSeries } = mockUrlStorage({ + data: { + 'performance-distribution': { + reportType: 'kpi', + metric: 'median', + time: { from: 'now-15m', to: 'now' }, + }, + }, + }); + + render(); + + fireEvent.click(screen.getByText('Median')); + + screen.getByText('Chart metric group'); + + fireEvent.click(screen.getByText('95th Percentile')); + + expect(setSeries).toHaveBeenNthCalledWith(1, 'performance-distribution', { + metric: '95th', + reportType: 'kpi', + time: { from: 'now-15m', to: 'now' }, + }); + // FIXME This is a bug in EUI EuiButtonGroup calls on change multiple times + // This should be one https://github.com/elastic/eui/issues/4629 + expect(setSeries).toHaveBeenCalledTimes(3); + }); + + it('should call set series on change for all series', function () { + const { setSeries } = mockUrlStorage({ + data: { + 'page-views': { + reportType: 'kpi', + metric: 'median', + time: { from: 'now-15m', to: 'now' }, + }, + 'performance-distribution': { + reportType: 'kpi', + metric: 'median', + time: { from: 'now-15m', to: 'now' }, + }, + }, + }); + + render(); + + fireEvent.click(screen.getByText('Median')); + + screen.getByText('Chart metric group'); + + fireEvent.click(screen.getByText('95th Percentile')); + + expect(setSeries).toHaveBeenNthCalledWith(1, 'page-views', { + metric: '95th', + reportType: 'kpi', + time: { from: 'now-15m', to: 'now' }, + }); + + expect(setSeries).toHaveBeenNthCalledWith(2, 'performance-distribution', { + metric: '95th', + reportType: 'kpi', + time: { from: 'now-15m', to: 'now' }, + }); + // FIXME This is a bug in EUI EuiButtonGroup calls on change multiple times + // This should be one https://github.com/elastic/eui/issues/4629 + expect(setSeries).toHaveBeenCalledTimes(6); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.tsx new file mode 100644 index 0000000000000..e01e371b5eeeb --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/metric_selection.tsx @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState } from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiButton, EuiButtonGroup, EuiPopover } from '@elastic/eui'; +import { useUrlStorage } from '../../hooks/use_url_strorage'; +import { OperationType } from '../../../../../../../lens/public'; + +const toggleButtons = [ + { + id: `avg`, + label: i18n.translate('xpack.observability.expView.metricsSelect.average', { + defaultMessage: 'Average', + }), + }, + { + id: `median`, + label: i18n.translate('xpack.observability.expView.metricsSelect.median', { + defaultMessage: 'Median', + }), + }, + { + id: `95th`, + label: i18n.translate('xpack.observability.expView.metricsSelect.9thPercentile', { + defaultMessage: '95th Percentile', + }), + }, + { + id: `99th`, + label: i18n.translate('xpack.observability.expView.metricsSelect.99thPercentile', { + defaultMessage: '99th Percentile', + }), + }, +]; + +export function MetricSelection({ + seriesId, + isDisabled, +}: { + seriesId: string; + isDisabled: boolean; +}) { + const { series, setSeries, allSeries } = useUrlStorage(seriesId); + + const [isOpen, setIsOpen] = useState(false); + + const [toggleIdSelected, setToggleIdSelected] = useState(series?.metric ?? 'avg'); + + const onChange = (optionId: OperationType) => { + setToggleIdSelected(optionId); + + Object.keys(allSeries).forEach((seriesKey) => { + const seriesN = allSeries[seriesKey]; + + setSeries(seriesKey, { ...seriesN, metric: optionId }); + }); + }; + const button = ( + setIsOpen((prevState) => !prevState)} + size="s" + color="text" + isDisabled={isDisabled} + > + {toggleButtons.find(({ id }) => id === toggleIdSelected)!.label} + + ); + + return ( + setIsOpen(false)}> + onChange(id as OperationType)} + /> + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/remove_series.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/remove_series.tsx new file mode 100644 index 0000000000000..67aebed943326 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/remove_series.tsx @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { EuiButtonIcon } from '@elastic/eui'; +import { DataSeries } from '../../types'; +import { useUrlStorage } from '../../hooks/use_url_strorage'; + +interface Props { + series: DataSeries; +} + +export function RemoveSeries({ series }: Props) { + const { removeSeries } = useUrlStorage(); + + const onClick = () => { + removeSeries(series.id); + }; + return ( + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_filter.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_filter.tsx new file mode 100644 index 0000000000000..24b65d2adb38e --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_filter.tsx @@ -0,0 +1,139 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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 React, { useState, Fragment } from 'react'; +import { + EuiButton, + EuiPopover, + EuiSpacer, + EuiButtonEmpty, + EuiFlexItem, + EuiFlexGroup, +} from '@elastic/eui'; +import { FilterExpanded } from './filter_expanded'; +import { DataSeries } from '../../types'; +import { FieldLabels } from '../../configurations/constants'; +import { SelectedFilters } from '../selected_filters'; +import { NEW_SERIES_KEY, useUrlStorage } from '../../hooks/use_url_strorage'; + +interface Props { + seriesId: string; + defaultFilters: DataSeries['defaultFilters']; + series: DataSeries; + isNew?: boolean; +} + +export interface Field { + label: string; + field: string; + nested?: string; +} + +export function SeriesFilter({ series, isNew, seriesId, defaultFilters = [] }: Props) { + const [isPopoverVisible, setIsPopoverVisible] = useState(false); + + const [selectedField, setSelectedField] = useState(); + + const options = defaultFilters.map((field) => { + if (typeof field === 'string') { + return { label: FieldLabels[field], field }; + } + return { label: FieldLabels[field.field], field: field.field, nested: field.nested }; + }); + const disabled = seriesId === NEW_SERIES_KEY && !isNew; + + const { setSeries, series: urlSeries } = useUrlStorage(seriesId); + + const button = ( + { + setIsPopoverVisible(true); + }} + isDisabled={disabled} + size="s" + > + {i18n.translate('xpack.observability.expView.seriesEditor.addFilter', { + defaultMessage: 'Add filter', + })} + + ); + + const mainPanel = ( + <> + + {options.map((opt) => ( + + { + setSelectedField(opt); + }} + > + {opt.label} + + + + ))} + + ); + + const childPanel = selectedField ? ( + { + setSelectedField(undefined); + }} + /> + ) : null; + + const closePopover = () => { + setIsPopoverVisible(false); + setSelectedField(undefined); + }; + + return ( + + {!disabled && } + + + {!selectedField ? mainPanel : childPanel} + + + {(urlSeries.filters ?? []).length > 0 && ( + + { + setSeries(seriesId, { ...urlSeries, filters: undefined }); + }} + isDisabled={disabled} + size="s" + > + {i18n.translate('xpack.observability.expView.seriesEditor.clearFilter', { + defaultMessage: 'Clear filters', + })} + + + )} + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.test.tsx new file mode 100644 index 0000000000000..5770a7e209f06 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.test.tsx @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { screen, waitFor } from '@testing-library/react'; +import { mockIndexPattern, mockUrlStorage, render } from '../rtl_helpers'; +import { SelectedFilters } from './selected_filters'; +import { getDefaultConfigs } from '../configurations/default_configs'; +import { NEW_SERIES_KEY } from '../hooks/use_url_strorage'; +import { USER_AGENT_NAME } from '../configurations/data/elasticsearch_fieldnames'; + +describe('SelectedFilters', function () { + const dataViewSeries = getDefaultConfigs({ + reportType: 'pld', + indexPattern: mockIndexPattern, + seriesId: NEW_SERIES_KEY, + }); + + it('should render properly', async function () { + mockUrlStorage({ filters: [{ field: USER_AGENT_NAME, values: ['Chrome'] }] }); + + render(); + + await waitFor(() => { + screen.getByText('Chrome'); + screen.getByTitle('Filter: Browser family: Chrome. Select for more filter actions.'); + }); + }); +}); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.tsx new file mode 100644 index 0000000000000..be8b1feb4d723 --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/selected_filters.tsx @@ -0,0 +1,96 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { Fragment } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { NEW_SERIES_KEY, useUrlStorage } from '../hooks/use_url_strorage'; +import { FilterLabel } from '../components/filter_label'; +import { DataSeries, UrlFilter } from '../types'; +import { useIndexPatternContext } from '../hooks/use_default_index_pattern'; +import { useSeriesFilters } from '../hooks/use_series_filters'; +import { getFiltersFromDefs } from '../hooks/use_lens_attributes'; + +interface Props { + seriesId: string; + series: DataSeries; + isNew?: boolean; +} +export function SelectedFilters({ seriesId, isNew, series: dataSeries }: Props) { + const { series } = useUrlStorage(seriesId); + + const { reportDefinitions = {} } = series; + + const { labels } = dataSeries; + + const filters: UrlFilter[] = series.filters ?? []; + + let definitionFilters: UrlFilter[] = getFiltersFromDefs(reportDefinitions, dataSeries); + + // we don't want to display report definition filters in new series view + if (seriesId === NEW_SERIES_KEY && isNew) { + definitionFilters = []; + } + + const { removeFilter } = useSeriesFilters({ seriesId }); + + const { indexPattern } = useIndexPatternContext(); + + return (filters.length > 0 || definitionFilters.length > 0) && indexPattern ? ( + + + {filters.map(({ field, values, notValues }) => ( + + {(values ?? []).map((val) => ( + + removeFilter({ field, value: val, negate: false })} + negate={false} + /> + + ))} + {(notValues ?? []).map((val) => ( + + removeFilter({ field, value: val, negate: true })} + /> + + ))} + + ))} + + {definitionFilters.map(({ field, values }) => ( + + {(values ?? []).map((val) => ( + + { + // FIXME handle this use case + }} + negate={false} + definitionFilter={true} + /> + + ))} + + ))} + + + ) : null; +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/series_editor.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/series_editor.tsx new file mode 100644 index 0000000000000..2d423c9aee3fc --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/series_editor.tsx @@ -0,0 +1,139 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiBasicTable, EuiIcon, EuiSpacer, EuiText } from '@elastic/eui'; +import { SeriesFilter } from './columns/series_filter'; +import { ActionsCol } from './columns/actions_col'; +import { Breakdowns } from './columns/breakdowns'; +import { DataSeries } from '../types'; +import { SeriesBuilder } from '../series_builder/series_builder'; +import { NEW_SERIES_KEY, useUrlStorage } from '../hooks/use_url_strorage'; +import { getDefaultConfigs } from '../configurations/default_configs'; +import { DatePickerCol } from './columns/date_picker_col'; +import { RemoveSeries } from './columns/remove_series'; +import { useIndexPatternContext } from '../hooks/use_default_index_pattern'; + +export function SeriesEditor() { + const { allSeries, firstSeriesId } = useUrlStorage(); + + const columns = [ + { + name: i18n.translate('xpack.observability.expView.seriesEditor.name', { + defaultMessage: 'Name', + }), + field: 'id', + width: '15%', + render: (val: string) => ( + + {' '} + {val === NEW_SERIES_KEY ? 'new-series-preview' : val} + + ), + }, + ...(firstSeriesId !== NEW_SERIES_KEY + ? [ + { + name: i18n.translate('xpack.observability.expView.seriesEditor.filters', { + defaultMessage: 'Filters', + }), + field: 'defaultFilters', + width: '25%', + render: (defaultFilters: string[], series: DataSeries) => ( + + ), + }, + { + name: i18n.translate('xpack.observability.expView.seriesEditor.breakdowns', { + defaultMessage: 'Breakdowns', + }), + field: 'breakdowns', + width: '15%', + render: (val: string[], item: DataSeries) => ( + + ), + }, + { + name: '', + align: 'center' as const, + width: '15%', + field: 'id', + render: (val: string, item: DataSeries) => , + }, + ] + : []), + { + name: ( +
+ {i18n.translate('xpack.observability.expView.seriesEditor.time', { + defaultMessage: 'Time', + })} +
+ ), + width: '20%', + field: 'id', + align: 'right' as const, + render: (val: string, item: DataSeries) => , + }, + + ...(firstSeriesId !== NEW_SERIES_KEY + ? [ + { + name: i18n.translate('xpack.observability.expView.seriesEditor.actions', { + defaultMessage: 'Actions', + }), + align: 'center' as const, + width: '5%', + field: 'id', + render: (val: string, item: DataSeries) => , + }, + ] + : []), + ]; + + const allSeriesKeys = Object.keys(allSeries); + + const items: DataSeries[] = []; + + const { indexPattern } = useIndexPatternContext(); + + allSeriesKeys.forEach((seriesKey) => { + const series = allSeries[seriesKey]; + if (series.reportType && indexPattern) { + items.push( + getDefaultConfigs({ + indexPattern, + reportType: series.reportType, + seriesId: seriesKey, + }) + ); + } + }); + + return ( + <> + + (firstSeriesId === NEW_SERIES_KEY ? {} : { height: 100 })} + noItemsMessage={i18n.translate('xpack.observability.expView.seriesEditor.notFound', { + defaultMessage: 'No series found, please add a series.', + })} + cellProps={{ + style: { + verticalAlign: 'top', + }, + }} + /> + + + + ); +} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts new file mode 100644 index 0000000000000..444e0ddaecb4a --- /dev/null +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/types.ts @@ -0,0 +1,89 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PaletteOutput } from 'src/plugins/charts/public'; +import { + LastValueIndexPatternColumn, + DateHistogramIndexPatternColumn, + SeriesType, + OperationType, + IndexPatternColumn, +} from '../../../../../lens/public'; + +import { PersistableFilter } from '../../../../../lens/common'; +import { IIndexPattern } from '../../../../../../../src/plugins/data/common/index_patterns'; + +export const ReportViewTypes = { + pld: 'page-load-dist', + kpi: 'kpi-trends', + upd: 'uptime-duration', + upp: 'uptime-pings', + svl: 'service-latency', + tpt: 'service-throughput', + logs: 'logs-frequency', + cpu: 'cpu-usage', + mem: 'memory-usage', + nwk: 'network-activity', +} as const; + +type ValueOf = T[keyof T]; + +export type ReportViewTypeId = keyof typeof ReportViewTypes; + +export type ReportViewType = ValueOf; + +export interface ReportDefinition { + field: string; + required?: boolean; + custom?: boolean; + defaultValue?: string; + options?: Array<{ field: string; label: string; description?: string }>; +} + +export interface DataSeries { + reportType: ReportViewType; + id: string; + xAxisColumn: Partial | Partial; + yAxisColumn: Partial; + + breakdowns: string[]; + defaultSeriesType: SeriesType; + defaultFilters: Array; + seriesTypes: SeriesType[]; + filters?: PersistableFilter[]; + reportDefinitions: ReportDefinition[]; + labels: Record; + hasMetricType: boolean; + palette?: PaletteOutput; +} + +export interface SeriesUrl { + time: { + to: string; + from: string; + }; + breakdown?: string; + filters?: UrlFilter[]; + seriesType?: SeriesType; + reportType: ReportViewTypeId; + metric?: OperationType; + dataType?: AppDataType; + reportDefinitions?: Record; +} + +export interface UrlFilter { + field: string; + values?: string[]; + notValues?: string[]; +} + +export interface ConfigProps { + seriesId: string; + indexPattern: IIndexPattern; +} + +export type AppDataType = 'synthetics' | 'rum' | 'logs' | 'metrics' | 'apm'; diff --git a/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.tsx b/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.tsx index b2c682dc58937..a44aab2da85be 100644 --- a/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.tsx +++ b/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.tsx @@ -15,14 +15,19 @@ import { EuiSelectableOption, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { PopoverAnchorPosition } from '@elastic/eui/src/components/popover/popover'; export interface FieldValueSelectionProps { value?: string; label: string; - loading: boolean; + loading?: boolean; onChange: (val?: string) => void; values?: string[]; setQuery: Dispatch>; + anchorPosition?: PopoverAnchorPosition; + forceOpen?: boolean; + button?: JSX.Element; + width?: number; } const formatOptions = (values?: string[], value?: string): EuiSelectableOption[] => { @@ -38,6 +43,10 @@ export function FieldValueSelection({ loading, values, setQuery, + button, + width, + forceOpen, + anchorPosition, onChange: onSelectionChange, }: FieldValueSelectionProps) { const [options, setOptions] = useState(formatOptions(values, value)); @@ -63,8 +72,9 @@ export function FieldValueSelection({ setQuery((evt.target as HTMLInputElement).value); }; - const button = ( + const anchorButton = ( void; + filters: ESFilter[]; + anchorPosition?: PopoverAnchorPosition; + time?: { from: string; to: string }; + forceOpen?: boolean; + button?: JSX.Element; + width?: number; } export function FieldValueSuggestions({ @@ -25,12 +33,18 @@ export function FieldValueSuggestions({ label, indexPattern, value, + filters, + button, + time, + width, + forceOpen, + anchorPosition, onChange: onSelectionChange, }: FieldValueSuggestionsProps) { const [query, setQuery] = useState(''); const [debouncedValue, setDebouncedValue] = useState(''); - const { values, loading } = useValuesList({ indexPattern, query, sourceField }); + const { values, loading } = useValuesList({ indexPattern, query, sourceField, filters, time }); useDebounce( () => { @@ -48,6 +62,10 @@ export function FieldValueSuggestions({ setQuery={setDebouncedValue} loading={loading} value={value} + button={button} + forceOpen={forceOpen} + anchorPosition={anchorPosition} + width={width} /> ); } diff --git a/x-pack/plugins/observability/public/context/has_data_context.test.tsx b/x-pack/plugins/observability/public/context/has_data_context.test.tsx index 5e48860a9b049..01655c0d7b2d7 100644 --- a/x-pack/plugins/observability/public/context/has_data_context.test.tsx +++ b/x-pack/plugins/observability/public/context/has_data_context.test.tsx @@ -17,12 +17,19 @@ import { HasData, ObservabilityFetchDataPlugins } from '../typings/fetch_overvie import { HasDataContextProvider } from './has_data_context'; import * as pluginContext from '../hooks/use_plugin_context'; import { PluginContextValue } from './plugin_context'; +import { Router } from 'react-router-dom'; +import { createMemoryHistory } from 'history'; const relativeStart = '2020-10-08T06:00:00.000Z'; const relativeEnd = '2020-10-08T07:00:00.000Z'; function wrapper({ children }: { children: React.ReactElement }) { - return {children}; + const history = createMemoryHistory(); + return ( + + {children} + + ); } function unregisterAll() { diff --git a/x-pack/plugins/observability/public/context/has_data_context.tsx b/x-pack/plugins/observability/public/context/has_data_context.tsx index 085b7fd7ba028..a2628d37828a4 100644 --- a/x-pack/plugins/observability/public/context/has_data_context.tsx +++ b/x-pack/plugins/observability/public/context/has_data_context.tsx @@ -7,6 +7,7 @@ import { uniqueId } from 'lodash'; import React, { createContext, useEffect, useState } from 'react'; +import { useRouteMatch } from 'react-router-dom'; import { Alert } from '../../../alerting/common'; import { getDataHandler } from '../data_handler'; import { FETCH_STATUS } from '../hooks/use_fetcher'; @@ -41,35 +42,38 @@ export function HasDataContextProvider({ children }: { children: React.ReactNode const [hasData, setHasData] = useState({}); + const isExploratoryView = useRouteMatch('/exploratory-view'); + useEffect( () => { - apps.forEach(async (app) => { - try { - if (app !== 'alert') { - const params = - app === 'ux' - ? { absoluteTime: { start: absoluteStart, end: absoluteEnd } } - : undefined; - - const result = await getDataHandler(app)?.hasData(params); + if (!isExploratoryView) + apps.forEach(async (app) => { + try { + if (app !== 'alert') { + const params = + app === 'ux' + ? { absoluteTime: { start: absoluteStart, end: absoluteEnd } } + : undefined; + + const result = await getDataHandler(app)?.hasData(params); + setHasData((prevState) => ({ + ...prevState, + [app]: { + hasData: result, + status: FETCH_STATUS.SUCCESS, + }, + })); + } + } catch (e) { setHasData((prevState) => ({ ...prevState, [app]: { - hasData: result, - status: FETCH_STATUS.SUCCESS, + hasData: undefined, + status: FETCH_STATUS.FAILURE, }, })); } - } catch (e) { - setHasData((prevState) => ({ - ...prevState, - [app]: { - hasData: undefined, - status: FETCH_STATUS.FAILURE, - }, - })); - } - }); + }); }, // eslint-disable-next-line react-hooks/exhaustive-deps [] diff --git a/x-pack/plugins/observability/public/hooks/use_breadcrumbs.ts b/x-pack/plugins/observability/public/hooks/use_breadcrumbs.ts new file mode 100644 index 0000000000000..a354ac8a07f05 --- /dev/null +++ b/x-pack/plugins/observability/public/hooks/use_breadcrumbs.ts @@ -0,0 +1,71 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ChromeBreadcrumb } from 'kibana/public'; +import { i18n } from '@kbn/i18n'; +import { MouseEvent, useEffect } from 'react'; +import { EuiBreadcrumb } from '@elastic/eui'; +import { stringify } from 'query-string'; +import { useKibana } from '../../../../../src/plugins/kibana_react/public'; +import { useQueryParams } from './use_query_params'; + +const EMPTY_QUERY = '?'; + +function handleBreadcrumbClick( + breadcrumbs: ChromeBreadcrumb[], + navigateToHref?: (url: string) => Promise +) { + return breadcrumbs.map((bc) => ({ + ...bc, + ...(bc.href + ? { + onClick: (event: MouseEvent) => { + if (navigateToHref && bc.href) { + event.preventDefault(); + navigateToHref(bc.href); + } + }, + } + : {}), + })); +} + +export const makeBaseBreadcrumb = (href: string, params?: any): EuiBreadcrumb => { + if (params) { + const crumbParams = { ...params }; + + delete crumbParams.statusFilter; + const query = stringify(crumbParams, { skipEmptyString: true, skipNull: true }); + href += query === EMPTY_QUERY ? '' : query; + } + return { + text: i18n.translate('xpack.observability.breadcrumbs.observability', { + defaultMessage: 'Observability', + }), + href, + }; +}; + +export const useBreadcrumbs = (extraCrumbs: ChromeBreadcrumb[]) => { + const params = useQueryParams(); + + const { + services: { chrome, application }, + } = useKibana(); + + const setBreadcrumbs = chrome?.setBreadcrumbs; + const appPath = application?.getUrlForApp('observability-overview') ?? ''; + const navigate = application?.navigateToUrl; + + useEffect(() => { + if (setBreadcrumbs) { + setBreadcrumbs( + handleBreadcrumbClick([makeBaseBreadcrumb(appPath, params)].concat(extraCrumbs), navigate) + ); + } + }, [appPath, extraCrumbs, navigate, params, setBreadcrumbs]); +}; diff --git a/x-pack/plugins/observability/public/hooks/use_quick_time_ranges.tsx b/x-pack/plugins/observability/public/hooks/use_quick_time_ranges.tsx new file mode 100644 index 0000000000000..82a0fc39b8519 --- /dev/null +++ b/x-pack/plugins/observability/public/hooks/use_quick_time_ranges.tsx @@ -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 { useUiSetting } from '../../../../../src/plugins/kibana_react/public'; +import { UI_SETTINGS } from '../../../../../src/plugins/data/common'; +import { TimePickerQuickRange } from '../components/shared/exploratory_view/series_date_picker'; + +export function useQuickTimeRanges() { + const timePickerQuickRanges = useUiSetting( + UI_SETTINGS.TIMEPICKER_QUICK_RANGES + ); + + return timePickerQuickRanges.map(({ from, to, display }) => ({ + start: from, + end: to, + label: display, + })); +} diff --git a/x-pack/plugins/observability/public/hooks/use_values_list.ts b/x-pack/plugins/observability/public/hooks/use_values_list.ts index 25a12ab4a9ebd..e17f515ed6cb9 100644 --- a/x-pack/plugins/observability/public/hooks/use_values_list.ts +++ b/x-pack/plugins/observability/public/hooks/use_values_list.ts @@ -5,32 +5,58 @@ * 2.0. */ -import { IIndexPattern } from '../../../../../src/plugins/data/common'; +import { IndexPattern } from '../../../../../src/plugins/data/common'; import { useKibana } from '../../../../../src/plugins/kibana_react/public'; +import { DataPublicPluginStart } from '../../../../../src/plugins/data/public'; import { useFetcher } from './use_fetcher'; import { ESFilter } from '../../../../../typings/elasticsearch'; -import { DataPublicPluginStart } from '../../../../../src/plugins/data/public'; -interface Props { +export interface Props { sourceField: string; query?: string; - indexPattern: IIndexPattern; + indexPattern: IndexPattern; filters?: ESFilter[]; + time?: { from: string; to: string }; } -export const useValuesList = ({ sourceField, indexPattern, query, filters }: Props) => { +export const useValuesList = ({ + sourceField, + indexPattern, + query = '', + filters, + time, +}: Props): { values: string[]; loading?: boolean } => { const { services: { data }, } = useKibana<{ data: DataPublicPluginStart }>(); - const { data: values, status } = useFetcher(() => { + const { from, to } = time ?? {}; + + const { data: values, loading } = useFetcher(() => { + if (!sourceField || !indexPattern) { + return []; + } return data.autocomplete.getValueSuggestions({ indexPattern, query: query || '', - field: indexPattern.fields.find(({ name }) => name === sourceField)!, - boolFilter: filters ?? [], + useTimeRange: !(from && to), + field: indexPattern.getFieldByName(sourceField)!, + boolFilter: + from && to + ? [ + ...(filters || []), + { + range: { + '@timestamp': { + gte: from, + lte: to, + }, + }, + }, + ] + : filters || [], }); - }, [sourceField, query, data.autocomplete, indexPattern, filters]); + }, [query, sourceField, data.autocomplete, indexPattern, from, to, filters]); - return { values, loading: status === 'loading' || status === 'pending' }; + return { values: values as string[], loading }; }; diff --git a/x-pack/plugins/observability/public/index.ts b/x-pack/plugins/observability/public/index.ts index 35443ca090077..837404d273ee4 100644 --- a/x-pack/plugins/observability/public/index.ts +++ b/x-pack/plugins/observability/public/index.ts @@ -55,3 +55,4 @@ export * from './typings'; export { useChartTheme } from './hooks/use_chart_theme'; export { useTheme } from './hooks/use_theme'; export { getApmTraceUrl } from './utils/get_apm_trace_url'; +export { createExploratoryViewUrl } from './components/shared/exploratory_view/configurations/utils'; diff --git a/x-pack/plugins/observability/public/routes/index.tsx b/x-pack/plugins/observability/public/routes/index.tsx index 20817901dab82..49cc55832dcf2 100644 --- a/x-pack/plugins/observability/public/routes/index.tsx +++ b/x-pack/plugins/observability/public/routes/index.tsx @@ -14,6 +14,7 @@ import { OverviewPage } from '../pages/overview'; import { jsonRt } from './json_rt'; import { AlertsPage } from '../pages/alerts'; import { CasesPage } from '../pages/cases'; +import { ExploratoryViewPage } from '../components/shared/exploratory_view'; export type RouteParams = DecodeParams; @@ -115,4 +116,24 @@ export const routes = { }, ], }, + '/exploratory-view': { + handler: () => { + return ; + }, + params: { + query: t.partial({ + rangeFrom: t.string, + rangeTo: t.string, + refreshPaused: jsonRt.pipe(t.boolean), + refreshInterval: jsonRt.pipe(t.number), + }), + }, + breadcrumb: [ + { + text: i18n.translate('xpack.observability.overview.exploratoryView', { + defaultMessage: 'Exploratory view', + }), + }, + ], + }, }; diff --git a/x-pack/plugins/observability/public/utils/observability_index_patterns.ts b/x-pack/plugins/observability/public/utils/observability_index_patterns.ts new file mode 100644 index 0000000000000..b23a246105544 --- /dev/null +++ b/x-pack/plugins/observability/public/utils/observability_index_patterns.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DataPublicPluginStart, IndexPattern } from '../../../../../src/plugins/data/public'; + +export type DataType = 'synthetics' | 'apm' | 'logs' | 'metrics' | 'rum'; + +const indexPatternList: Record = { + synthetics: 'synthetics_static_index_pattern_id', + apm: 'apm_static_index_pattern_id', + rum: 'apm_static_index_pattern_id', + logs: 'logs_static_index_pattern_id', + metrics: 'metrics_static_index_pattern_id', +}; + +const appToPatternMap: Record = { + synthetics: 'heartbeat-*', + apm: 'apm-*', + rum: 'apm-*', + logs: 'logs-*,filebeat-*', + metrics: 'metrics-*,metricbeat-*', +}; + +export class ObservabilityIndexPatterns { + data?: DataPublicPluginStart; + + constructor(data: DataPublicPluginStart) { + this.data = data; + } + + async createIndexPattern(app: DataType) { + if (!this.data) { + throw new Error('data is not defined'); + } + + const pattern = appToPatternMap[app]; + + const fields = await this.data.indexPatterns.getFieldsForWildcard({ + pattern, + }); + + return await this.data.indexPatterns.createAndSave({ + fields, + title: pattern, + id: indexPatternList[app], + timeFieldName: '@timestamp', + }); + } + + async getIndexPattern(app: DataType): Promise { + if (!this.data) { + throw new Error('data is not defined'); + } + try { + return await this.data?.indexPatterns.get(indexPatternList[app]); + } catch (e) { + return await this.createIndexPattern(app || 'apm'); + } + } +} diff --git a/x-pack/plugins/observability/tsconfig.json b/x-pack/plugins/observability/tsconfig.json index 083c35a26c20b..cc6e298795e4a 100644 --- a/x-pack/plugins/observability/tsconfig.json +++ b/x-pack/plugins/observability/tsconfig.json @@ -7,7 +7,14 @@ "declaration": true, "declarationMap": true }, - "include": ["common/**/*", "public/**/*", "server/**/*", "typings/**/*"], + "include": [ + "common/**/*", + "public/**/*", + "public/**/*.json", + "server/**/*", + "typings/**/*", + "../../../typings/**/*" + ], "references": [ { "path": "../../../src/core/tsconfig.json" }, { "path": "../../../src/plugins/data/tsconfig.json" }, diff --git a/x-pack/plugins/uptime/public/apps/plugin.ts b/x-pack/plugins/uptime/public/apps/plugin.ts index e3457884594a9..7ea6b72547386 100644 --- a/x-pack/plugins/uptime/public/apps/plugin.ts +++ b/x-pack/plugins/uptime/public/apps/plugin.ts @@ -68,18 +68,21 @@ export class UptimePlugin return UptimeDataHelper(coreStart); }; - plugins.observability.dashboard.register({ - appName: 'uptime', - hasData: async () => { - const dataHelper = await getUptimeDataHelper(); - const status = await dataHelper.indexStatus(); - return status.docCount > 0; - }, - fetchData: async (params: FetchDataParams) => { - const dataHelper = await getUptimeDataHelper(); - return await dataHelper.overviewData(params); - }, - }); + + if (plugins.observability) { + plugins.observability.dashboard.register({ + appName: 'uptime', + hasData: async () => { + const dataHelper = await getUptimeDataHelper(); + const status = await dataHelper.indexStatus(); + return status.docCount > 0; + }, + fetchData: async (params: FetchDataParams) => { + const dataHelper = await getUptimeDataHelper(); + return await dataHelper.overviewData(params); + }, + }); + } core.application.register({ id: PLUGIN.ID, From 9cebff12980d7afe2e4b13fcb15c26c627f38498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Mon, 5 Apr 2021 10:51:56 -0400 Subject: [PATCH 089/106] [OBS]home page is showing incorrect value of APM throughput (tpm) (#95991) * fixing obs transaction per minute value * addressing PR comments * fixing unit test * addressing PR comments Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- ...pm_observability_overview_fetchers.test.ts | 20 ++-- .../apm_observability_overview_fetchers.ts | 12 +-- .../get_transaction_coordinates.ts | 64 ------------- .../get_transactions_per_minute.ts | 95 +++++++++++++++++++ .../server/routes/observability_overview.ts | 8 +- .../components/app/section/apm/index.test.tsx | 26 +++++ .../components/app/section/apm/index.tsx | 15 ++- .../typings/fetch_overview_data/index.ts | 2 +- .../observability_overview.ts | 19 ++-- 9 files changed, 166 insertions(+), 95 deletions(-) delete mode 100644 x-pack/plugins/apm/server/lib/observability_overview/get_transaction_coordinates.ts create mode 100644 x-pack/plugins/apm/server/lib/observability_overview/get_transactions_per_minute.ts diff --git a/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.test.ts b/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.test.ts index 1821e92ee5a78..29fabc51fd582 100644 --- a/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.test.ts +++ b/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.test.ts @@ -46,11 +46,14 @@ describe('Observability dashboard data', () => { callApmApiMock.mockImplementation(() => Promise.resolve({ serviceCount: 10, - transactionCoordinates: [ - { x: 1, y: 1 }, - { x: 2, y: 2 }, - { x: 3, y: 3 }, - ], + transactionPerMinute: { + value: 2, + timeseries: [ + { x: 1, y: 1 }, + { x: 2, y: 2 }, + { x: 3, y: 3 }, + ], + }, }) ); const response = await fetchObservabilityOverviewPageData(params); @@ -81,7 +84,7 @@ describe('Observability dashboard data', () => { callApmApiMock.mockImplementation(() => Promise.resolve({ serviceCount: 0, - transactionCoordinates: [], + transactionPerMinute: { value: null, timeseries: [] }, }) ); const response = await fetchObservabilityOverviewPageData(params); @@ -108,7 +111,10 @@ describe('Observability dashboard data', () => { callApmApiMock.mockImplementation(() => Promise.resolve({ serviceCount: 0, - transactionCoordinates: [{ x: 1 }, { x: 2 }, { x: 3 }], + transactionPerMinute: { + value: 0, + timeseries: [{ x: 1 }, { x: 2 }, { x: 3 }], + }, }) ); const response = await fetchObservabilityOverviewPageData(params); diff --git a/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.ts b/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.ts index 55ead8d942aca..3a02efd05e5a5 100644 --- a/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.ts +++ b/x-pack/plugins/apm/public/services/rest/apm_observability_overview_fetchers.ts @@ -5,7 +5,6 @@ * 2.0. */ -import { mean } from 'lodash'; import { ApmFetchDataResponse, FetchDataParams, @@ -31,7 +30,7 @@ export const fetchObservabilityOverviewPageData = async ({ }, }); - const { serviceCount, transactionCoordinates } = data; + const { serviceCount, transactionPerMinute } = data; return { appLink: `/app/apm/services?rangeFrom=${relativeTime.start}&rangeTo=${relativeTime.end}`, @@ -42,17 +41,12 @@ export const fetchObservabilityOverviewPageData = async ({ }, transactions: { type: 'number', - value: - mean( - transactionCoordinates - .map(({ y }) => y) - .filter((y) => y && isFinite(y)) - ) || 0, + value: transactionPerMinute.value || 0, }, }, series: { transactions: { - coordinates: transactionCoordinates, + coordinates: transactionPerMinute.timeseries, }, }, }; diff --git a/x-pack/plugins/apm/server/lib/observability_overview/get_transaction_coordinates.ts b/x-pack/plugins/apm/server/lib/observability_overview/get_transaction_coordinates.ts deleted file mode 100644 index aac18e2bdfe4c..0000000000000 --- a/x-pack/plugins/apm/server/lib/observability_overview/get_transaction_coordinates.ts +++ /dev/null @@ -1,64 +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 { rangeQuery } from '../../../server/utils/queries'; -import { Coordinates } from '../../../../observability/typings/common'; -import { Setup, SetupTimeRange } from '../helpers/setup_request'; -import { getProcessorEventForAggregatedTransactions } from '../helpers/aggregated_transactions'; -import { calculateThroughput } from '../helpers/calculate_throughput'; -import { withApmSpan } from '../../utils/with_apm_span'; - -export function getTransactionCoordinates({ - setup, - bucketSize, - searchAggregatedTransactions, -}: { - setup: Setup & SetupTimeRange; - bucketSize: string; - searchAggregatedTransactions: boolean; -}): Promise { - return withApmSpan( - 'observability_overview_get_transaction_distribution', - async () => { - const { apmEventClient, start, end } = setup; - - const { aggregations } = await apmEventClient.search({ - apm: { - events: [ - getProcessorEventForAggregatedTransactions( - searchAggregatedTransactions - ), - ], - }, - body: { - size: 0, - query: { - bool: { - filter: rangeQuery(start, end), - }, - }, - aggs: { - distribution: { - date_histogram: { - field: '@timestamp', - fixed_interval: bucketSize, - min_doc_count: 0, - }, - }, - }, - }, - }); - - return ( - aggregations?.distribution.buckets.map((bucket) => ({ - x: bucket.key, - y: calculateThroughput({ start, end, value: bucket.doc_count }), - })) || [] - ); - } - ); -} diff --git a/x-pack/plugins/apm/server/lib/observability_overview/get_transactions_per_minute.ts b/x-pack/plugins/apm/server/lib/observability_overview/get_transactions_per_minute.ts new file mode 100644 index 0000000000000..da8ac7c50b594 --- /dev/null +++ b/x-pack/plugins/apm/server/lib/observability_overview/get_transactions_per_minute.ts @@ -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 { + TRANSACTION_PAGE_LOAD, + TRANSACTION_REQUEST, +} from '../../../common/transaction_types'; +import { TRANSACTION_TYPE } from '../../../common/elasticsearch_fieldnames'; +import { rangeQuery } from '../../../server/utils/queries'; +import { Setup, SetupTimeRange } from '../helpers/setup_request'; +import { getProcessorEventForAggregatedTransactions } from '../helpers/aggregated_transactions'; +import { calculateThroughput } from '../helpers/calculate_throughput'; +import { withApmSpan } from '../../utils/with_apm_span'; + +export function getTransactionsPerMinute({ + setup, + bucketSize, + searchAggregatedTransactions, +}: { + setup: Setup & SetupTimeRange; + bucketSize: string; + searchAggregatedTransactions: boolean; +}) { + return withApmSpan( + 'observability_overview_get_transactions_per_minute', + async () => { + const { apmEventClient, start, end } = setup; + + const { aggregations } = await apmEventClient.search({ + apm: { + events: [ + getProcessorEventForAggregatedTransactions( + searchAggregatedTransactions + ), + ], + }, + body: { + size: 0, + query: { + bool: { + filter: rangeQuery(start, end), + }, + }, + aggs: { + transactionType: { + terms: { + field: TRANSACTION_TYPE, + }, + aggs: { + timeseries: { + date_histogram: { + field: '@timestamp', + fixed_interval: bucketSize, + min_doc_count: 0, + }, + aggs: { + throughput: { rate: { unit: 'minute' as const } }, + }, + }, + }, + }, + }, + }, + }); + + if (!aggregations || !aggregations.transactionType.buckets) { + return { value: undefined, timeseries: [] }; + } + + const topTransactionTypeBucket = + aggregations.transactionType.buckets.find( + ({ key: transactionType }) => + transactionType === TRANSACTION_REQUEST || + transactionType === TRANSACTION_PAGE_LOAD + ) || aggregations.transactionType.buckets[0]; + + return { + value: calculateThroughput({ + start, + end, + value: topTransactionTypeBucket?.doc_count || 0, + }), + timeseries: + topTransactionTypeBucket?.timeseries.buckets.map((bucket) => ({ + x: bucket.key, + y: bucket.throughput.value, + })) || [], + }; + } + ); +} diff --git a/x-pack/plugins/apm/server/routes/observability_overview.ts b/x-pack/plugins/apm/server/routes/observability_overview.ts index b9c0a76b6fb90..1aac2c09d01c5 100644 --- a/x-pack/plugins/apm/server/routes/observability_overview.ts +++ b/x-pack/plugins/apm/server/routes/observability_overview.ts @@ -8,7 +8,7 @@ import * as t from 'io-ts'; import { setupRequest } from '../lib/helpers/setup_request'; import { getServiceCount } from '../lib/observability_overview/get_service_count'; -import { getTransactionCoordinates } from '../lib/observability_overview/get_transaction_coordinates'; +import { getTransactionsPerMinute } from '../lib/observability_overview/get_transactions_per_minute'; import { getHasData } from '../lib/observability_overview/has_data'; import { createRoute } from './create_route'; import { rangeRt } from './default_api_types'; @@ -39,18 +39,18 @@ export const observabilityOverviewRoute = createRoute({ ); return withApmSpan('observability_overview', async () => { - const [serviceCount, transactionCoordinates] = await Promise.all([ + const [serviceCount, transactionPerMinute] = await Promise.all([ getServiceCount({ setup, searchAggregatedTransactions, }), - getTransactionCoordinates({ + getTransactionsPerMinute({ setup, bucketSize, searchAggregatedTransactions, }), ]); - return { serviceCount, transactionCoordinates }; + return { serviceCount, transactionPerMinute }; }); }, }); diff --git a/x-pack/plugins/observability/public/components/app/section/apm/index.test.tsx b/x-pack/plugins/observability/public/components/app/section/apm/index.test.tsx index e5f100be285e1..d29481a39eb72 100644 --- a/x-pack/plugins/observability/public/components/app/section/apm/index.test.tsx +++ b/x-pack/plugins/observability/public/components/app/section/apm/index.test.tsx @@ -56,6 +56,32 @@ describe('APMSection', () => { } as unknown) as ObservabilityPublicPluginsStart, })); }); + + it('renders transaction stat less then 1k', () => { + const resp = { + appLink: '/app/apm', + stats: { + services: { value: 11, type: 'number' }, + transactions: { value: 900, type: 'number' }, + }, + series: { + transactions: { coordinates: [] }, + }, + }; + jest.spyOn(fetcherHook, 'useFetcher').mockReturnValue({ + data: resp, + status: fetcherHook.FETCH_STATUS.SUCCESS, + refetch: jest.fn(), + }); + const { getByText, queryAllByTestId } = render(); + + expect(getByText('APM')).toBeInTheDocument(); + expect(getByText('View in app')).toBeInTheDocument(); + expect(getByText('Services 11')).toBeInTheDocument(); + expect(getByText('Throughput 900.0 tpm')).toBeInTheDocument(); + expect(queryAllByTestId('loading')).toEqual([]); + }); + it('renders with transaction series and stats', () => { jest.spyOn(fetcherHook, 'useFetcher').mockReturnValue({ data: response, diff --git a/x-pack/plugins/observability/public/components/app/section/apm/index.tsx b/x-pack/plugins/observability/public/components/app/section/apm/index.tsx index 91a536840ecbd..e71468d3b028c 100644 --- a/x-pack/plugins/observability/public/components/app/section/apm/index.tsx +++ b/x-pack/plugins/observability/public/components/app/section/apm/index.tsx @@ -31,6 +31,19 @@ function formatTpm(value?: number) { return numeral(value).format('0.00a'); } +function formatTpmStat(value?: number) { + if (!value || value === 0) { + return '0'; + } + if (value <= 0.1) { + return '< 0.1'; + } + if (value > 1000) { + return numeral(value).format('0.00a'); + } + return numeral(value).format('0,0.0'); +} + export function APMSection({ bucketSize }: Props) { const theme = useContext(ThemeContext); const chartTheme = useChartTheme(); @@ -93,7 +106,7 @@ export function APMSection({ bucketSize }: Props) { ({ x: new Date(x).toISOString(), @@ -67,23 +68,23 @@ export default function ApiTest({ getService }: FtrProviderContext) { Array [ Object { "x": "2020-12-08T13:57:00.000Z", - "y": 0.166666666666667, + "y": 2, }, Object { "x": "2020-12-08T13:58:00.000Z", - "y": 5.23333333333333, + "y": 61, }, Object { "x": "2020-12-08T13:59:00.000Z", - "y": 4.4, + "y": 36, }, Object { "x": "2020-12-08T14:00:00.000Z", - "y": 5.73333333333333, + "y": 75, }, Object { "x": "2020-12-08T14:01:00.000Z", - "y": 4.33333333333333, + "y": 36, }, ] `); From 123f3400a82f89a7be5a6c2d9526e62102530c47 Mon Sep 17 00:00:00 2001 From: Scotty Bollinger Date: Mon, 5 Apr 2021 10:19:32 -0500 Subject: [PATCH 090/106] [Workplace Search] Add sub nav and fix rendering bugs in Personal dashboard (#96100) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix route for private deferated source summary * Make schema types nullable Federated sources don’t have counts and the server returns null so our routes have to expect that sometimes these values will be null * Add SourceSubNav to Personal dashboard We are able to leverage the existing component with a couple a small change; the existing componet is a subnav in the larger Enterprise Search shared navigation component and does not include its styles. This caused the list items to render with bullet points next to them. Adding this class and displaying the nav items as block elements fixes this issue. Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../views/content_sources/components/source_sub_nav.tsx | 4 ++-- .../views/content_sources/private_sources_layout.test.tsx | 3 +++ .../views/content_sources/private_sources_layout.tsx | 3 +++ .../views/content_sources/source_logic.test.ts | 2 +- .../workplace_search/views/content_sources/source_logic.ts | 2 +- .../workplace_search/views/content_sources/sources.scss | 6 ++++++ .../server/routes/workplace_search/sources.ts | 6 +++--- 7 files changed, 19 insertions(+), 7 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_sub_nav.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_sub_nav.tsx index 99cebd5ded585..bf0c5471f7b57 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_sub_nav.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/source_sub_nav.tsx @@ -33,7 +33,7 @@ export const SourceSubNav: React.FC = () => { const isCustom = serviceType === CUSTOM_SERVICE_TYPE; return ( - <> +
{NAV.OVERVIEW} @@ -53,6 +53,6 @@ export const SourceSubNav: React.FC = () => { {NAV.SETTINGS} - +
); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.test.tsx index 488eb4b49853b..9e3b50ea083eb 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.test.tsx @@ -17,6 +17,8 @@ import { EuiCallOut } from '@elastic/eui'; import { ViewContentHeader } from '../../components/shared/view_content_header'; +import { SourceSubNav } from './components/source_sub_nav'; + import { PRIVATE_CAN_CREATE_PAGE_TITLE, PRIVATE_VIEW_ONLY_PAGE_TITLE, @@ -40,6 +42,7 @@ describe('PrivateSourcesLayout', () => { const wrapper = shallow({children}); expect(wrapper.find('[data-test-subj="TestChildren"]')).toHaveLength(1); + expect(wrapper.find(SourceSubNav)).toHaveLength(1); }); it('uses correct title and description when private sources are enabled', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.tsx index bdc2421432c8a..2a6281075dc40 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/private_sources_layout.tsx @@ -14,6 +14,8 @@ import { EuiPage, EuiPageSideBar, EuiPageBody, EuiCallOut } from '@elastic/eui'; import { AppLogic } from '../../app_logic'; import { ViewContentHeader } from '../../components/shared/view_content_header'; +import { SourceSubNav } from './components/source_sub_nav'; + import { PRIVATE_DASHBOARD_READ_ONLY_MODE_WARNING, PRIVATE_CAN_CREATE_PAGE_TITLE, @@ -49,6 +51,7 @@ export const PrivateSourcesLayout: React.FC = ({ + {readOnlyMode && ( diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts index d20d0576d11ce..a9712cc4e1dc0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.test.ts @@ -214,7 +214,7 @@ describe('SourceLogic', () => { SourceLogic.actions.initializeFederatedSummary(contentSource.id); expect(http.get).toHaveBeenCalledWith( - '/api/workplace_search/org/sources/123/federated_summary' + '/api/workplace_search/account/sources/123/federated_summary' ); await promise; expect(onUpdateSummarySpy).toHaveBeenCalledWith(contentSource.summary); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts index 72700ce42c75d..3da90c4fc7739 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_logic.ts @@ -156,7 +156,7 @@ export const SourceLogic = kea>({ } }, initializeFederatedSummary: async ({ sourceId }) => { - const route = `/api/workplace_search/org/sources/${sourceId}/federated_summary`; + const route = `/api/workplace_search/account/sources/${sourceId}/federated_summary`; try { const response = await HttpLogic.values.http.get(route); actions.onUpdateSummary(response.summary); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources.scss b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources.scss index f142567fb621f..abab139e32369 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources.scss +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/sources.scss @@ -30,3 +30,9 @@ margin-left: -$sideBarWidth; } } + +.sourcesSubNav { + li { + display: block; + } +} diff --git a/x-pack/plugins/enterprise_search/server/routes/workplace_search/sources.ts b/x-pack/plugins/enterprise_search/server/routes/workplace_search/sources.ts index 8257dd0dc52b0..1dd6d859d88ad 100644 --- a/x-pack/plugins/enterprise_search/server/routes/workplace_search/sources.ts +++ b/x-pack/plugins/enterprise_search/server/routes/workplace_search/sources.ts @@ -22,9 +22,9 @@ const schemaValuesSchema = schema.recordOf( ); const pageSchema = schema.object({ - current: schema.number(), - size: schema.number(), - total_pages: schema.number(), + current: schema.nullable(schema.number()), + size: schema.nullable(schema.number()), + total_pages: schema.nullable(schema.number()), total_results: schema.number(), }); From ea03eb1bab086b6e6e526d8c1eb11ffa877d7d52 Mon Sep 17 00:00:00 2001 From: Scotty Bollinger Date: Mon, 5 Apr 2021 10:27:05 -0500 Subject: [PATCH 091/106] [Enterprise Search] Expose core.chrome.setIsVisible for use in Workplace Search (#95984) * Hide chrome for Workplace Search by default The Workplace Search Personal dashboard needs the chrome hidden. We hide it globally here first to prevent a flash of chrome on the Personal dashboard and unhide it for admin routes, which will be in a future commit * Add core.chrome.setIsVisible to KibanaLogic * Toggle chrome visibility for Workplace Search * Add test * Refactor to set context and chrome when pathname changes Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../applications/__mocks__/kibana_logic.mock.ts | 1 + .../enterprise_search/public/applications/index.tsx | 1 + .../applications/shared/kibana/kibana_logic.ts | 2 ++ .../applications/workplace_search/index.test.tsx | 4 +++- .../public/applications/workplace_search/index.tsx | 12 +++++++----- x-pack/plugins/enterprise_search/public/plugin.ts | 3 +++ 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts b/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts index 133f704fd59a9..2325ddcf2b270 100644 --- a/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts +++ b/x-pack/plugins/enterprise_search/public/applications/__mocks__/kibana_logic.mock.ts @@ -19,6 +19,7 @@ export const mockKibanaValues = { history: mockHistory, navigateToUrl: jest.fn(), setBreadcrumbs: jest.fn(), + setChromeIsVisible: jest.fn(), setDocTitle: jest.fn(), renderHeaderActions: jest.fn(), }; diff --git a/x-pack/plugins/enterprise_search/public/applications/index.tsx b/x-pack/plugins/enterprise_search/public/applications/index.tsx index 155ff5b92ba27..c2bf77751528a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/index.tsx @@ -49,6 +49,7 @@ export const renderApp = ( history: params.history, navigateToUrl: core.application.navigateToUrl, setBreadcrumbs: core.chrome.setBreadcrumbs, + setChromeIsVisible: core.chrome.setIsVisible, setDocTitle: core.chrome.docTitle.change, renderHeaderActions: (HeaderActions) => params.setHeaderActionMenu((el) => renderHeaderActions(HeaderActions, store, el)), diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts b/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts index 8015d22f7c44a..2bef7d373f160 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts @@ -24,6 +24,7 @@ interface KibanaLogicProps { charts: ChartsPluginStart; navigateToUrl: ApplicationStart['navigateToUrl']; setBreadcrumbs(crumbs: ChromeBreadcrumb[]): void; + setChromeIsVisible(isVisible: boolean): void; setDocTitle(title: string): void; renderHeaderActions(HeaderActions: FC): void; } @@ -47,6 +48,7 @@ export const KibanaLogic = kea>({ {}, ], setBreadcrumbs: [props.setBreadcrumbs, {}], + setChromeIsVisible: [props.setChromeIsVisible, {}], setDocTitle: [props.setDocTitle, {}], renderHeaderActions: [props.renderHeaderActions, {}], }), 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 48bdcd6551b65..a2c0ec18def4b 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 @@ -57,11 +57,13 @@ describe('WorkplaceSearchConfigured', () => { setMockActions({ initializeAppData, setContext }); }); - it('renders layout and header actions', () => { + it('renders layout, chrome, and header actions', () => { const wrapper = shallow(); expect(wrapper.find(Layout).first().prop('readOnlyMode')).toBeFalsy(); expect(wrapper.find(OverviewMVP)).toHaveLength(1); + + expect(mockKibanaValues.setChromeIsVisible).toHaveBeenCalledWith(true); expect(mockKibanaValues.renderHeaderActions).toHaveBeenCalledWith(WorkplaceSearchHeaderActions); }); 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 c269a987dc092..7a76de43be41b 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 @@ -53,7 +53,7 @@ export const WorkplaceSearch: React.FC = (props) => { export const WorkplaceSearchConfigured: React.FC = (props) => { const { hasInitialized } = useValues(AppLogic); const { initializeAppData, setContext } = useActions(AppLogic); - const { renderHeaderActions } = useValues(KibanaLogic); + const { renderHeaderActions, setChromeIsVisible } = useValues(KibanaLogic); const { errorConnecting, readOnlyMode } = useValues(HttpLogic); const { pathname } = useLocation(); @@ -66,11 +66,13 @@ export const WorkplaceSearchConfigured: React.FC = (props) => { * Personal dashboard urls begin with /p/ * EX: http://localhost:5601/app/enterprise_search/workplace_search/p/sources */ - const personalSourceUrlRegex = /^\/p\//g; // matches '/p/*' + useEffect(() => { + const personalSourceUrlRegex = /^\/p\//g; // matches '/p/*' + const isOrganization = !pathname.match(personalSourceUrlRegex); // TODO: Once auth is figured out, we need to have a check for the equivilent of `isAdmin`. - // TODO: Once auth is figured out, we need to have a check for the equivilent of `isAdmin`. - const isOrganization = !pathname.match(personalSourceUrlRegex); - setContext(isOrganization); + setContext(isOrganization); + setChromeIsVisible(isOrganization); + }, [pathname]); useEffect(() => { if (!hasInitialized) { diff --git a/x-pack/plugins/enterprise_search/public/plugin.ts b/x-pack/plugins/enterprise_search/public/plugin.ts index f00e81a5accf7..dd1a62d243d03 100644 --- a/x-pack/plugins/enterprise_search/public/plugin.ts +++ b/x-pack/plugins/enterprise_search/public/plugin.ts @@ -114,6 +114,9 @@ export class EnterpriseSearchPlugin implements Plugin { const { chrome, http } = kibanaDeps.core; chrome.docTitle.change(WORKPLACE_SEARCH_PLUGIN.NAME); + // The Workplace Search Personal dashboard needs the chrome hidden. We hide it globally + // here first to prevent a flash of chrome on the Personal dashboard and unhide it for admin routes. + chrome.setIsVisible(false); await this.getInitialData(http); const pluginData = this.getPluginData(); From 95e45ddebc6e86bb3d63f04bd7c4e56ad8ef55bb Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Mon, 5 Apr 2021 18:00:13 +0200 Subject: [PATCH 092/106] Use plugin version in its publicPath (#95945) * Use plugin version in its publicPath * remove useless comment * fix types * update generated doc --- .../register_bundle_routes.test.ts | 15 +++++++------ .../bundle_routes/register_bundle_routes.ts | 8 +++---- src/core/server/legacy/legacy_service.test.ts | 1 + .../server/plugins/plugins_service.test.ts | 14 ++++++++++--- src/core/server/plugins/plugins_service.ts | 1 + src/core/server/plugins/plugins_system.ts | 1 + src/core/server/plugins/types.ts | 13 +++++++++--- .../bootstrap/get_plugin_bundle_paths.test.ts | 21 ++++++++++++------- .../bootstrap/get_plugin_bundle_paths.ts | 10 +++++++-- src/core/server/server.api.md | 8 +++---- 10 files changed, 63 insertions(+), 29 deletions(-) diff --git a/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts b/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts index d51c369146957..830f4a9a94364 100644 --- a/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts +++ b/src/core/server/core_app/bundle_routes/register_bundle_routes.test.ts @@ -10,7 +10,7 @@ import { registerRouteForBundleMock } from './register_bundle_routes.test.mocks' import { PackageInfo } from '@kbn/config'; import { httpServiceMock } from '../../http/http_service.mock'; -import { UiPlugins } from '../../plugins'; +import { InternalPluginInfo, UiPlugins } from '../../plugins'; import { registerBundleRoutes } from './register_bundle_routes'; import { FileHashCache } from './file_hash_cache'; @@ -29,9 +29,12 @@ const createUiPlugins = (...ids: string[]): UiPlugins => ({ internal: ids.reduce((map, id) => { map.set(id, { publicTargetDir: `/plugins/${id}/public-target-dir`, + publicAssetsDir: `/plugins/${id}/public-assets-dir`, + version: '8.0.0', + requiredBundles: [], }); return map; - }, new Map()), + }, new Map()), }); describe('registerBundleRoutes', () => { @@ -86,16 +89,16 @@ describe('registerBundleRoutes', () => { fileHashCache: expect.any(FileHashCache), isDist: true, bundlesPath: '/plugins/plugin-a/public-target-dir', - publicPath: '/server-base-path/42/bundles/plugin/plugin-a/', - routePath: '/42/bundles/plugin/plugin-a/', + publicPath: '/server-base-path/42/bundles/plugin/plugin-a/8.0.0/', + routePath: '/42/bundles/plugin/plugin-a/8.0.0/', }); expect(registerRouteForBundleMock).toHaveBeenCalledWith(router, { fileHashCache: expect.any(FileHashCache), isDist: true, bundlesPath: '/plugins/plugin-b/public-target-dir', - publicPath: '/server-base-path/42/bundles/plugin/plugin-b/', - routePath: '/42/bundles/plugin/plugin-b/', + publicPath: '/server-base-path/42/bundles/plugin/plugin-b/8.0.0/', + routePath: '/42/bundles/plugin/plugin-b/8.0.0/', }); }); }); diff --git a/src/core/server/core_app/bundle_routes/register_bundle_routes.ts b/src/core/server/core_app/bundle_routes/register_bundle_routes.ts index ee54f8ef34622..df46753747f5b 100644 --- a/src/core/server/core_app/bundle_routes/register_bundle_routes.ts +++ b/src/core/server/core_app/bundle_routes/register_bundle_routes.ts @@ -27,7 +27,7 @@ import { registerRouteForBundle } from './bundles_route'; */ export function registerBundleRoutes({ router, - serverBasePath, // serverBasePath + serverBasePath, uiPlugins, packageInfo, }: { @@ -57,10 +57,10 @@ export function registerBundleRoutes({ isDist, }); - [...uiPlugins.internal.entries()].forEach(([id, { publicTargetDir }]) => { + [...uiPlugins.internal.entries()].forEach(([id, { publicTargetDir, version }]) => { registerRouteForBundle(router, { - publicPath: `${serverBasePath}/${buildNum}/bundles/plugin/${id}/`, - routePath: `/${buildNum}/bundles/plugin/${id}/`, + publicPath: `${serverBasePath}/${buildNum}/bundles/plugin/${id}/${version}/`, + routePath: `/${buildNum}/bundles/plugin/${id}/${version}/`, bundlesPath: publicTargetDir, fileHashCache, isDist, diff --git a/src/core/server/legacy/legacy_service.test.ts b/src/core/server/legacy/legacy_service.test.ts index d0a02b9859960..67b5393f0b838 100644 --- a/src/core/server/legacy/legacy_service.test.ts +++ b/src/core/server/legacy/legacy_service.test.ts @@ -91,6 +91,7 @@ beforeEach(() => { 'plugin-id', { requiredBundles: [], + version: '8.0.0', publicTargetDir: 'path/to/target/public', publicAssetsDir: '/plugins/name/assets/', }, diff --git a/src/core/server/plugins/plugins_service.test.ts b/src/core/server/plugins/plugins_service.test.ts index 2d54648d22950..6bf7a1fadb4d3 100644 --- a/src/core/server/plugins/plugins_service.test.ts +++ b/src/core/server/plugins/plugins_service.test.ts @@ -562,12 +562,12 @@ describe('PluginsService', () => { plugin$: from([ createPlugin('plugin-1', { path: 'path-1', - version: 'some-version', + version: 'version-1', configPath: 'plugin1', }), createPlugin('plugin-2', { path: 'path-2', - version: 'some-version', + version: 'version-2', configPath: 'plugin2', }), ]), @@ -577,7 +577,7 @@ describe('PluginsService', () => { }); describe('uiPlugins.internal', () => { - it('includes disabled plugins', async () => { + it('contains internal properties for plugins', async () => { config$.next({ plugins: { initialize: true }, plugin1: { enabled: false } }); const { uiPlugins } = await pluginsService.discover({ environment: environmentSetup }); expect(uiPlugins.internal).toMatchInlineSnapshot(` @@ -586,15 +586,23 @@ describe('PluginsService', () => { "publicAssetsDir": /path-1/public/assets, "publicTargetDir": /path-1/target/public, "requiredBundles": Array [], + "version": "version-1", }, "plugin-2" => Object { "publicAssetsDir": /path-2/public/assets, "publicTargetDir": /path-2/target/public, "requiredBundles": Array [], + "version": "version-2", }, } `); }); + + it('includes disabled plugins', async () => { + config$.next({ plugins: { initialize: true }, plugin1: { enabled: false } }); + const { uiPlugins } = await pluginsService.discover({ environment: environmentSetup }); + expect([...uiPlugins.internal.keys()].sort()).toEqual(['plugin-1', 'plugin-2']); + }); }); describe('plugin initialization', () => { diff --git a/src/core/server/plugins/plugins_service.ts b/src/core/server/plugins/plugins_service.ts index 8b33e2cf4cc6b..09be40ecaf2a2 100644 --- a/src/core/server/plugins/plugins_service.ts +++ b/src/core/server/plugins/plugins_service.ts @@ -222,6 +222,7 @@ export class PluginsService implements CoreService(); diff --git a/src/core/server/plugins/types.ts b/src/core/server/plugins/types.ts index a6086bd6f17e8..3a01049c5e1fe 100644 --- a/src/core/server/plugins/types.ts +++ b/src/core/server/plugins/types.ts @@ -224,12 +224,15 @@ export interface DiscoveredPlugin { */ export interface InternalPluginInfo { /** - * Bundles that must be loaded for this plugoin + * Version of the plugin + */ + readonly version: string; + /** + * Bundles that must be loaded for this plugin */ readonly requiredBundles: readonly string[]; /** - * Path to the target/public directory of the plugin which should be - * served + * Path to the target/public directory of the plugin which should be served */ readonly publicTargetDir: string; /** @@ -250,7 +253,9 @@ export interface Plugin< TPluginsStart extends object = object > { setup(core: CoreSetup, plugins: TPluginsSetup): TSetup; + start(core: CoreStart, plugins: TPluginsStart): TStart; + stop?(): void; } @@ -267,7 +272,9 @@ export interface AsyncPlugin< TPluginsStart extends object = object > { setup(core: CoreSetup, plugins: TPluginsSetup): TSetup | Promise; + start(core: CoreStart, plugins: TPluginsStart): TStart | Promise; + stop?(): void; } diff --git a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.test.ts b/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.test.ts index ea3843884df31..0abd8fd5a0057 100644 --- a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.test.ts +++ b/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { UiPlugins } from '../../plugins'; +import { InternalPluginInfo, UiPlugins } from '../../plugins'; import { getPluginsBundlePaths } from './get_plugin_bundle_paths'; const createUiPlugins = (pluginDeps: Record) => { @@ -16,12 +16,13 @@ const createUiPlugins = (pluginDeps: Record) => { browserConfigs: new Map(), }; - Object.entries(pluginDeps).forEach(([pluginId, deps]) => { + const addPlugin = (pluginId: string, deps: string[]) => { uiPlugins.internal.set(pluginId, { requiredBundles: deps, + version: '8.0.0', publicTargetDir: '', publicAssetsDir: '', - } as any); + } as InternalPluginInfo); uiPlugins.public.set(pluginId, { id: pluginId, configPath: 'config-path', @@ -29,6 +30,12 @@ const createUiPlugins = (pluginDeps: Record) => { requiredPlugins: [], requiredBundles: deps, }); + + deps.forEach((dep) => addPlugin(dep, [])); + }; + + Object.entries(pluginDeps).forEach(([pluginId, deps]) => { + addPlugin(pluginId, deps); }); return uiPlugins; @@ -56,13 +63,13 @@ describe('getPluginsBundlePaths', () => { }); expect(pluginBundlePaths.get('a')).toEqual({ - bundlePath: '/regular-bundle-path/plugin/a/a.plugin.js', - publicPath: '/regular-bundle-path/plugin/a/', + bundlePath: '/regular-bundle-path/plugin/a/8.0.0/a.plugin.js', + publicPath: '/regular-bundle-path/plugin/a/8.0.0/', }); expect(pluginBundlePaths.get('b')).toEqual({ - bundlePath: '/regular-bundle-path/plugin/b/b.plugin.js', - publicPath: '/regular-bundle-path/plugin/b/', + bundlePath: '/regular-bundle-path/plugin/b/8.0.0/b.plugin.js', + publicPath: '/regular-bundle-path/plugin/b/8.0.0/', }); }); }); diff --git a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.ts b/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.ts index c8291b2720a92..86ffdcf835f7b 100644 --- a/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.ts +++ b/src/core/server/rendering/bootstrap/get_plugin_bundle_paths.ts @@ -25,9 +25,15 @@ export const getPluginsBundlePaths = ({ while (pluginsToProcess.length > 0) { const pluginId = pluginsToProcess.pop() as string; + const plugin = uiPlugins.internal.get(pluginId); + if (!plugin) { + continue; + } + const { version } = plugin; + pluginBundlePaths.set(pluginId, { - publicPath: `${regularBundlePath}/plugin/${pluginId}/`, - bundlePath: `${regularBundlePath}/plugin/${pluginId}/${pluginId}.plugin.js`, + publicPath: `${regularBundlePath}/plugin/${pluginId}/${version}/`, + bundlePath: `${regularBundlePath}/plugin/${pluginId}/${version}/${pluginId}.plugin.js`, }); const pluginBundleIds = uiPlugins.internal.get(pluginId)?.requiredBundles ?? []; diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md index de96c5ccfb81e..fb5fe3efd3e06 100644 --- a/src/core/server/server.api.md +++ b/src/core/server/server.api.md @@ -3259,9 +3259,9 @@ export const validBodyOutput: readonly ["data", "stream"]; // // src/core/server/elasticsearch/client/types.ts:94:7 - (ae-forgotten-export) The symbol "Explanation" needs to be exported by the entry point index.d.ts // src/core/server/http/router/response.ts:297:3 - (ae-forgotten-export) The symbol "KibanaResponse" needs to be exported by the entry point index.d.ts -// src/core/server/plugins/types.ts:286:3 - (ae-forgotten-export) The symbol "KibanaConfigType" needs to be exported by the entry point index.d.ts -// src/core/server/plugins/types.ts:286:3 - (ae-forgotten-export) The symbol "SharedGlobalConfigKeys" needs to be exported by the entry point index.d.ts -// src/core/server/plugins/types.ts:289:3 - (ae-forgotten-export) The symbol "SavedObjectsConfigType" needs to be exported by the entry point index.d.ts -// src/core/server/plugins/types.ts:394:5 - (ae-unresolved-link) The @link reference could not be resolved: The package "kibana" does not have an export "create" +// src/core/server/plugins/types.ts:293:3 - (ae-forgotten-export) The symbol "KibanaConfigType" needs to be exported by the entry point index.d.ts +// src/core/server/plugins/types.ts:293:3 - (ae-forgotten-export) The symbol "SharedGlobalConfigKeys" needs to be exported by the entry point index.d.ts +// src/core/server/plugins/types.ts:296:3 - (ae-forgotten-export) The symbol "SavedObjectsConfigType" needs to be exported by the entry point index.d.ts +// src/core/server/plugins/types.ts:401:5 - (ae-unresolved-link) The @link reference could not be resolved: The package "kibana" does not have an export "create" ``` From 8e11e2598e874d603e99bcfac407ef9e09784102 Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Mon, 5 Apr 2021 12:04:20 -0400 Subject: [PATCH 093/106] [Maps] Enable all zoom levels for all users (#96093) --- .github/CODEOWNERS | 1 - docs/developer/plugin-list.asciidoc | 4 - packages/kbn-optimizer/limits.yml | 1 - .../service_settings/service_settings.test.js | 50 ++------- .../service_settings/service_settings.ts | 17 +-- .../service_settings_types.ts | 2 - src/plugins/maps_legacy/kibana.json | 2 +- .../public/map/base_maps_visualization.js | 3 +- .../maps_legacy/public/map/kibana_map.js | 23 ---- .../maps_legacy/public/map/map_messages.js | 105 ------------------ test/functional/apps/visualize/_tile_map.ts | 59 ---------- tsconfig.json | 1 - tsconfig.refs.json | 1 - .../plugins/maps_legacy_licensing/README.md | 4 - .../plugins/maps_legacy_licensing/kibana.json | 8 -- .../maps_legacy_licensing/public/index.ts | 12 -- .../maps_legacy_licensing/public/plugin.ts | 48 -------- .../maps_legacy_licensing/tsconfig.json | 15 --- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 20 files changed, 12 insertions(+), 346 deletions(-) delete mode 100644 src/plugins/maps_legacy/public/map/map_messages.js delete mode 100644 x-pack/plugins/maps_legacy_licensing/README.md delete mode 100644 x-pack/plugins/maps_legacy_licensing/kibana.json delete mode 100644 x-pack/plugins/maps_legacy_licensing/public/index.ts delete mode 100644 x-pack/plugins/maps_legacy_licensing/public/plugin.ts delete mode 100644 x-pack/plugins/maps_legacy_licensing/tsconfig.json diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d14556ea1dabf..b9afc197bac9c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -146,7 +146,6 @@ /x-pack/test/visual_regression/tests/maps/index.js @elastic/kibana-gis #CC# /src/plugins/maps_legacy/ @elastic/kibana-gis #CC# /x-pack/plugins/file_upload @elastic/kibana-gis -#CC# /x-pack/plugins/maps_legacy_licensing @elastic/kibana-gis /src/plugins/tile_map/ @elastic/kibana-gis /src/plugins/region_map/ @elastic/kibana-gis diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index bcf74936077ec..691d7fb82f3bc 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -452,10 +452,6 @@ using the CURL scripts in the scripts folder. |Visualize geo data from Elasticsearch or 3rd party geo-services. -|{kib-repo}blob/{branch}/x-pack/plugins/maps_legacy_licensing/README.md[mapsLegacyLicensing] -|This plugin provides access to the detailed tile map services from Elastic. - - |{kib-repo}blob/{branch}/x-pack/plugins/ml/readme.md[ml] |This plugin provides access to the machine learning features provided by Elastic. diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index 3c9fd4f59a406..a027768ad66a0 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -51,7 +51,6 @@ pageLoadAssetSize: management: 46112 maps: 80000 mapsLegacy: 87859 - mapsLegacyLicensing: 20214 ml: 82187 monitoring: 80000 navigation: 37269 diff --git a/src/plugins/maps_ems/public/service_settings/service_settings.test.js b/src/plugins/maps_ems/public/service_settings/service_settings.test.js index 5bd371aace79b..eb67997c253b9 100644 --- a/src/plugins/maps_ems/public/service_settings/service_settings.test.js +++ b/src/plugins/maps_ems/public/service_settings/service_settings.test.js @@ -103,43 +103,8 @@ describe('service_settings (FKA tile_map test)', function () { expect(tmsService.attribution.includes('OpenStreetMap')).toEqual(true); }); - describe('modify - url', function () { - let tilemapServices; - + describe('tms mods', function () { let serviceSettings; - async function assertQuery(expected) { - const attrs = await serviceSettings.getAttributesForTMSLayer(tilemapServices[0]); - const urlObject = url.parse(attrs.url, true); - Object.keys(expected).forEach((key) => { - expect(urlObject.query[key]).toEqual(expected[key]); - }); - } - - it('accepts an object', async () => { - serviceSettings = makeServiceSettings(); - serviceSettings.setQueryParams({ foo: 'bar' }); - tilemapServices = await serviceSettings.getTMSServices(); - await assertQuery({ foo: 'bar' }); - }); - - it('merged additions with previous values', async () => { - // ensure that changes are always additive - serviceSettings = makeServiceSettings(); - serviceSettings.setQueryParams({ foo: 'bar' }); - serviceSettings.setQueryParams({ bar: 'stool' }); - tilemapServices = await serviceSettings.getTMSServices(); - await assertQuery({ foo: 'bar', bar: 'stool' }); - }); - - it('overwrites conflicting previous values', async () => { - serviceSettings = makeServiceSettings(); - // ensure that conflicts are overwritten - serviceSettings.setQueryParams({ foo: 'bar' }); - serviceSettings.setQueryParams({ bar: 'stool' }); - serviceSettings.setQueryParams({ foo: 'tstool' }); - tilemapServices = await serviceSettings.getTMSServices(); - await assertQuery({ foo: 'tstool', bar: 'stool' }); - }); it('should merge in tilemap url', async () => { serviceSettings = makeServiceSettings( @@ -161,7 +126,7 @@ describe('service_settings (FKA tile_map test)', function () { id: 'road_map', name: 'Road Map - Bright', url: - 'https://tiles.foobar/raster/styles/osm-bright/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3', + 'https://tiles.foobar/raster/styles/osm-bright/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3&license=sspl', minZoom: 0, maxZoom: 10, attribution: @@ -208,19 +173,19 @@ describe('service_settings (FKA tile_map test)', function () { ); expect(desaturationFalse.url).toEqual( - 'https://tiles.foobar/raster/styles/osm-bright/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3' + 'https://tiles.foobar/raster/styles/osm-bright/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3&license=sspl' ); expect(desaturationFalse.maxZoom).toEqual(10); expect(desaturationTrue.url).toEqual( - 'https://tiles.foobar/raster/styles/osm-bright-desaturated/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3' + 'https://tiles.foobar/raster/styles/osm-bright-desaturated/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3&license=sspl' ); expect(desaturationTrue.maxZoom).toEqual(18); expect(darkThemeDesaturationFalse.url).toEqual( - 'https://tiles.foobar/raster/styles/dark-matter/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3' + 'https://tiles.foobar/raster/styles/dark-matter/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3&license=sspl' ); expect(darkThemeDesaturationFalse.maxZoom).toEqual(22); expect(darkThemeDesaturationTrue.url).toEqual( - 'https://tiles.foobar/raster/styles/dark-matter/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3' + 'https://tiles.foobar/raster/styles/dark-matter/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana&my_app_version=1.2.3&license=sspl' ); expect(darkThemeDesaturationTrue.maxZoom).toEqual(22); }); @@ -264,14 +229,13 @@ describe('service_settings (FKA tile_map test)', function () { describe('File layers', function () { it('should load manifest (all props)', async function () { const serviceSettings = makeServiceSettings(); - serviceSettings.setQueryParams({ foo: 'bar' }); const fileLayers = await serviceSettings.getFileLayers(); expect(fileLayers.length).toEqual(19); const assertions = fileLayers.map(async function (fileLayer) { expect(fileLayer.origin).toEqual(ORIGIN.EMS); const fileUrl = await serviceSettings.getUrlForRegionLayer(fileLayer); const urlObject = url.parse(fileUrl, true); - Object.keys({ foo: 'bar', elastic_tile_service_tos: 'agree' }).forEach((key) => { + Object.keys({ elastic_tile_service_tos: 'agree' }).forEach((key) => { expect(typeof urlObject.query[key]).toEqual('string'); }); }); diff --git a/src/plugins/maps_ems/public/service_settings/service_settings.ts b/src/plugins/maps_ems/public/service_settings/service_settings.ts index f7c735b6c3037..412db42a1570c 100644 --- a/src/plugins/maps_ems/public/service_settings/service_settings.ts +++ b/src/plugins/maps_ems/public/service_settings/service_settings.ts @@ -22,7 +22,6 @@ export class ServiceSettings implements IServiceSettings { private readonly _mapConfig: MapsEmsConfig; private readonly _tilemapsConfig: TileMapConfig; private readonly _hasTmsConfigured: boolean; - private _showZoomMessage: boolean; private readonly _emsClient: EMSClient; private readonly tmsOptionsFromConfig: any; @@ -31,7 +30,6 @@ export class ServiceSettings implements IServiceSettings { this._tilemapsConfig = tilemapsConfig; this._hasTmsConfigured = typeof tilemapsConfig.url === 'string' && tilemapsConfig.url !== ''; - this._showZoomMessage = true; this._emsClient = new EMSClient({ language: i18n.getLocale(), appVersion: getKibanaVersion(), @@ -45,6 +43,9 @@ export class ServiceSettings implements IServiceSettings { return fetch(...args); }, }); + // any kibana user, regardless of distribution, should get all zoom levels + // use `sspl` license to indicate this + this._emsClient.addQueryParams({ license: 'sspl' }); const markdownIt = new MarkdownIt({ html: false, @@ -58,18 +59,6 @@ export class ServiceSettings implements IServiceSettings { }); } - shouldShowZoomMessage({ origin }: { origin: string }): boolean { - return origin === ORIGIN.EMS && this._showZoomMessage; - } - - enableZoomMessage(): void { - this._showZoomMessage = true; - } - - disableZoomMessage(): void { - this._showZoomMessage = false; - } - __debugStubManifestCalls(manifestRetrieval: () => Promise): { removeStub: () => void } { const oldGetManifest = this._emsClient.getManifest; diff --git a/src/plugins/maps_ems/public/service_settings/service_settings_types.ts b/src/plugins/maps_ems/public/service_settings/service_settings_types.ts index 80a9aae835844..6b04bd200eba8 100644 --- a/src/plugins/maps_ems/public/service_settings/service_settings_types.ts +++ b/src/plugins/maps_ems/public/service_settings/service_settings_types.ts @@ -46,8 +46,6 @@ export interface IServiceSettings { getFileLayers(): Promise; getUrlForRegionLayer(layer: FileLayer): Promise; setQueryParams(params: { [p: string]: string }): void; - enableZoomMessage(): void; - disableZoomMessage(): void; getAttributesForTMSLayer( tmsServiceConfig: TmsLayer, isDesaturated: boolean, diff --git a/src/plugins/maps_legacy/kibana.json b/src/plugins/maps_legacy/kibana.json index 8e283288e34b2..f321274791a3b 100644 --- a/src/plugins/maps_legacy/kibana.json +++ b/src/plugins/maps_legacy/kibana.json @@ -5,5 +5,5 @@ "ui": true, "server": true, "requiredPlugins": ["mapsEms"], - "requiredBundles": ["kibanaReact", "visDefaultEditor", "mapsEms"] + "requiredBundles": ["visDefaultEditor", "mapsEms"] } diff --git a/src/plugins/maps_legacy/public/map/base_maps_visualization.js b/src/plugins/maps_legacy/public/map/base_maps_visualization.js index 9cd574c5246e8..a261bcf6edd80 100644 --- a/src/plugins/maps_legacy/public/map/base_maps_visualization.js +++ b/src/plugins/maps_legacy/public/map/base_maps_visualization.js @@ -193,13 +193,12 @@ export function BaseMapsVisualizationProvider() { isDesaturated, isDarkMode ); - const showZoomMessage = serviceSettings.shouldShowZoomMessage(tmsLayer); const options = { ...tmsLayer }; delete options.id; delete options.subdomains; this._kibanaMap.setBaseLayer({ baseLayerType: 'tms', - options: { ...options, showZoomMessage, ...meta }, + options: { ...options, ...meta }, }); } diff --git a/src/plugins/maps_legacy/public/map/kibana_map.js b/src/plugins/maps_legacy/public/map/kibana_map.js index eea8315419289..62dbbda2588a5 100644 --- a/src/plugins/maps_legacy/public/map/kibana_map.js +++ b/src/plugins/maps_legacy/public/map/kibana_map.js @@ -7,13 +7,11 @@ */ import { EventEmitter } from 'events'; -import { createZoomWarningMsg } from './map_messages'; import $ from 'jquery'; import { get, isEqual, escape } from 'lodash'; import { zoomToPrecision } from './zoom_to_precision'; import { i18n } from '@kbn/i18n'; import { ORIGIN } from '../../../maps_ems/common'; -import { getToasts } from '../kibana_services'; import { L } from '../leaflet'; function makeFitControl(fitContainer, kibanaMap) { @@ -479,22 +477,6 @@ export class KibanaMap extends EventEmitter { this._updateLegend(); } - _addMaxZoomMessage = (layer) => { - const zoomWarningMsg = createZoomWarningMsg( - getToasts(), - this.getZoomLevel, - this.getMaxZoomLevel - ); - - this._leafletMap.on('zoomend', zoomWarningMsg); - this._containerNode.setAttribute('data-test-subj', 'zoomWarningEnabled'); - - layer.on('remove', () => { - this._leafletMap.off('zoomend', zoomWarningMsg); - this._containerNode.removeAttribute('data-test-subj'); - }); - }; - setLegendPosition(position) { if (this._legendPosition === position) { if (!this._leafletLegendControl) { @@ -572,11 +554,6 @@ export class KibanaMap extends EventEmitter { }); this._leafletBaseLayer = baseLayer; - if (settings.options.showZoomMessage) { - baseLayer.on('add', () => { - this._addMaxZoomMessage(baseLayer); - }); - } this._leafletBaseLayer.addTo(this._leafletMap); this._leafletBaseLayer.bringToBack(); if (settings.options.minZoom > this._leafletMap.getZoom()) { diff --git a/src/plugins/maps_legacy/public/map/map_messages.js b/src/plugins/maps_legacy/public/map/map_messages.js deleted file mode 100644 index f60d819f0b390..0000000000000 --- a/src/plugins/maps_legacy/public/map/map_messages.js +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ - -import React from 'react'; -import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiSpacer, EuiButtonEmpty } from '@elastic/eui'; -import { toMountPoint } from '../../../kibana_react/public'; - -export const createZoomWarningMsg = (function () { - let disableZoomMsg = false; - const setZoomMsg = (boolDisableMsg) => (disableZoomMsg = boolDisableMsg); - - class ZoomWarning extends React.Component { - constructor(props) { - super(props); - this.state = { - disabled: false, - }; - } - - render() { - return ( -
-

- - {`default distribution `} - - ), - ems: ( - - {`Elastic Maps Service`} - - ), - wms: ( - - {`Custom WMS Configuration`} - - ), - configSettings: ( - - {`Custom TMS Using Config Settings`} - - ), - }} - /> -

- - { - this.setState( - { - disabled: true, - }, - () => this.props.onChange(this.state.disabled) - ); - }} - data-test-subj="suppressZoomWarnings" - > - {`Don't show again`} - -
- ); - } - } - - const zoomToast = { - title: 'No additional zoom levels', - text: toMountPoint(), - 'data-test-subj': 'maxZoomWarning', - }; - - return (toastService, getZoomLevel, getMaxZoomLevel) => { - return () => { - const zoomLevel = getZoomLevel(); - const maxMapZoom = getMaxZoomLevel(); - if (!disableZoomMsg && zoomLevel === maxMapZoom) { - toastService.addDanger(zoomToast); - } - }; - }; -})(); diff --git a/test/functional/apps/visualize/_tile_map.ts b/test/functional/apps/visualize/_tile_map.ts index 668aec6ac5783..3af467affa1fb 100644 --- a/test/functional/apps/visualize/_tile_map.ts +++ b/test/functional/apps/visualize/_tile_map.ts @@ -15,7 +15,6 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); const inspector = getService('inspector'); const filterBar = getService('filterBar'); - const testSubjects = getService('testSubjects'); const browser = getService('browser'); const PageObjects = getPageObjects([ 'common', @@ -221,63 +220,5 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); }); - - describe('zoom warning behavior', function describeIndexTests() { - // Zoom warning is only applicable to OSS - this.tags(['skipCloud', 'skipFirefox']); - - const waitForLoading = false; - let zoomWarningEnabled; - let last = false; - const toastDefaultLife = 6000; - - before(async function () { - await browser.setWindowSize(1280, 1000); - - log.debug('navigateToApp visualize'); - await PageObjects.visualize.navigateToNewAggBasedVisualization(); - log.debug('clickTileMap'); - await PageObjects.visualize.clickTileMap(); - await PageObjects.visualize.clickNewSearch(); - - zoomWarningEnabled = await testSubjects.exists('zoomWarningEnabled'); - log.debug(`Zoom warning enabled: ${zoomWarningEnabled}`); - - const zoomLevel = 9; - for (let i = 0; i < zoomLevel; i++) { - await PageObjects.tileMap.clickMapZoomIn(); - } - }); - - beforeEach(async function () { - await PageObjects.tileMap.clickMapZoomIn(waitForLoading); - }); - - afterEach(async function () { - if (!last) { - await PageObjects.common.sleep(toastDefaultLife); - await PageObjects.tileMap.clickMapZoomOut(waitForLoading); - } - }); - - it('should show warning at zoom 10', async () => { - await testSubjects.existOrFail('maxZoomWarning'); - }); - - it('should continue providing zoom warning if left alone', async () => { - await testSubjects.existOrFail('maxZoomWarning'); - }); - - it('should suppress zoom warning if suppress warnings button clicked', async () => { - last = true; - await PageObjects.visChart.waitForVisualization(); - await testSubjects.click('suppressZoomWarnings'); - await PageObjects.tileMap.clickMapZoomOut(waitForLoading); - await testSubjects.waitForDeleted('suppressZoomWarnings'); - await PageObjects.tileMap.clickMapZoomIn(waitForLoading); - - await testSubjects.missingOrFail('maxZoomWarning'); - }); - }); }); } diff --git a/tsconfig.json b/tsconfig.json index 30944ac71fcc8..7c06e80858640 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -181,7 +181,6 @@ { "path": "./x-pack/plugins/license_management/tsconfig.json" }, { "path": "./x-pack/plugins/licensing/tsconfig.json" }, { "path": "./x-pack/plugins/logstash/tsconfig.json" }, - { "path": "./x-pack/plugins/maps_legacy_licensing/tsconfig.json" }, { "path": "./x-pack/plugins/maps/tsconfig.json" }, { "path": "./x-pack/plugins/ml/tsconfig.json" }, { "path": "./x-pack/plugins/monitoring/tsconfig.json" }, diff --git a/tsconfig.refs.json b/tsconfig.refs.json index 2d9ddc1b9e568..f13455a14b4df 100644 --- a/tsconfig.refs.json +++ b/tsconfig.refs.json @@ -85,7 +85,6 @@ { "path": "./x-pack/plugins/license_management/tsconfig.json" }, { "path": "./x-pack/plugins/licensing/tsconfig.json" }, { "path": "./x-pack/plugins/logstash/tsconfig.json" }, - { "path": "./x-pack/plugins/maps_legacy_licensing/tsconfig.json" }, { "path": "./x-pack/plugins/maps/tsconfig.json" }, { "path": "./x-pack/plugins/ml/tsconfig.json" }, { "path": "./x-pack/plugins/monitoring/tsconfig.json" }, diff --git a/x-pack/plugins/maps_legacy_licensing/README.md b/x-pack/plugins/maps_legacy_licensing/README.md deleted file mode 100644 index 7c2ce84d848d4..0000000000000 --- a/x-pack/plugins/maps_legacy_licensing/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Tile Map Plugin - -This plugin provides access to the detailed tile map services from Elastic. - diff --git a/x-pack/plugins/maps_legacy_licensing/kibana.json b/x-pack/plugins/maps_legacy_licensing/kibana.json deleted file mode 100644 index 7a49e0aaa7be1..0000000000000 --- a/x-pack/plugins/maps_legacy_licensing/kibana.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "mapsLegacyLicensing", - "version": "8.0.0", - "kibanaVersion": "kibana", - "server": false, - "ui": true, - "requiredPlugins": ["licensing", "mapsEms"] -} diff --git a/x-pack/plugins/maps_legacy_licensing/public/index.ts b/x-pack/plugins/maps_legacy_licensing/public/index.ts deleted file mode 100644 index 9105919eaa635..0000000000000 --- a/x-pack/plugins/maps_legacy_licensing/public/index.ts +++ /dev/null @@ -1,12 +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 { MapsLegacyLicensing } from './plugin'; - -export function plugin() { - return new MapsLegacyLicensing(); -} diff --git a/x-pack/plugins/maps_legacy_licensing/public/plugin.ts b/x-pack/plugins/maps_legacy_licensing/public/plugin.ts deleted file mode 100644 index f8118575cd6a2..0000000000000 --- a/x-pack/plugins/maps_legacy_licensing/public/plugin.ts +++ /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 { CoreSetup, CoreStart, Plugin } from 'kibana/public'; -import { LicensingPluginSetup, ILicense } from '../../licensing/public'; -import { IServiceSettings, MapsEmsPluginSetup } from '../../../../src/plugins/maps_ems/public'; - -/** - * These are the interfaces with your public contracts. You should export these - * for other plugins to use in _their_ `SetupDeps`/`StartDeps` interfaces. - * @public - */ - -export interface MapsLegacyLicensingSetupDependencies { - licensing: LicensingPluginSetup; - mapsEms: MapsEmsPluginSetup; -} -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface MapsLegacyLicensingStartDependencies {} - -export type MapsLegacyLicensingSetup = ReturnType; -export type MapsLegacyLicensingStart = ReturnType; - -export class MapsLegacyLicensing - implements Plugin { - public setup(core: CoreSetup, plugins: MapsLegacyLicensingSetupDependencies) { - const { licensing, mapsEms } = plugins; - if (licensing) { - licensing.license$.subscribe(async (license: ILicense) => { - const serviceSettings: IServiceSettings = await mapsEms.getServiceSettings(); - const { uid, isActive } = license; - if (isActive && license.hasAtLeast('basic')) { - serviceSettings.setQueryParams({ license: uid || '' }); - serviceSettings.disableZoomMessage(); - } else { - serviceSettings.setQueryParams({ license: '' }); - serviceSettings.enableZoomMessage(); - } - }); - } - } - - public start(core: CoreStart, plugins: MapsLegacyLicensingStartDependencies) {} -} diff --git a/x-pack/plugins/maps_legacy_licensing/tsconfig.json b/x-pack/plugins/maps_legacy_licensing/tsconfig.json deleted file mode 100644 index 3b8102b5205a8..0000000000000 --- a/x-pack/plugins/maps_legacy_licensing/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../../tsconfig.project.json", - "compilerOptions": { - "composite": true, - "outDir": "./target/types", - "emitDeclarationOnly": true, - "declaration": true, - "declarationMap": true - }, - "include": ["public/**/*"], - "references": [ - { "path": "../licensing/tsconfig.json" }, - { "path": "../../../src/plugins/maps_ems/tsconfig.json" } - ] -} diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 133b4d0b6aaa8..6dc490b4ffc53 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -3080,7 +3080,6 @@ "maps_legacy.baseMapsVisualization.childShouldImplementMethodErrorMessage": "子はdata-updateに対応できるようこのメソッドを導入する必要があります", "maps_legacy.defaultDistributionMessage": "Mapsを入手するには、ElasticsearchとKibanaの{defaultDistribution}にアップグレードしてください。", "maps_legacy.kibanaMap.leaflet.fitDataBoundsAriaLabel": "データバウンドを合わせる", - "maps_legacy.kibanaMap.zoomWarning": "ズームレベルが最大に達しました。完全にズームインするには、ElasticsearchとKibanaの{defaultDistribution}にアップグレードしてください。{ems}ではより多くのズームレベルを無料で利用できます。または、独自のマップサーバーを構成できます。詳細は、{ wms }または{ configSettings}をご覧ください。", "maps_legacy.legacyMapDeprecationMessage": "Mapsを使用すると、複数のレイヤーとインデックスを追加する、個別のドキュメントをプロットする、データ値から特徴を表現する、ヒートマップ、グリッド、クラスターを追加するなど、さまざまなことが可能です。{getMapsMessage}", "maps_legacy.legacyMapDeprecationTitle": "{label}は8.0でMapsに移行されます。", "maps_legacy.openInMapsButtonLabel": "Mapsで表示", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 0f9d8b90a2578..32574690b13f2 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -3101,7 +3101,6 @@ "maps_legacy.baseMapsVisualization.childShouldImplementMethodErrorMessage": "子对象应实现此方法以响应数据更新", "maps_legacy.defaultDistributionMessage": "要获取 Maps,请升级到 {defaultDistribution} 版的 Elasticsearch 和 Kibana。", "maps_legacy.kibanaMap.leaflet.fitDataBoundsAriaLabel": "适应数据边界", - "maps_legacy.kibanaMap.zoomWarning": "已达到缩放级别数目上限。要一直放大,请升级到 Elasticsearch 和 Kibana 的{defaultDistribution}。您可以通过 {ems} 免费使用其他缩放级别。或者,您可以配置自己的地图服务器。请前往 { wms } 或 { configSettings} 以获取详细信息。", "maps_legacy.legacyMapDeprecationMessage": "使用 Maps,可以添加多个图层和索引,绘制单个文档,使用数据值表示特征,添加热图、网格和集群,等等。{getMapsMessage}", "maps_legacy.legacyMapDeprecationTitle": "在 8.0 中,{label} 将迁移到 Maps。", "maps_legacy.openInMapsButtonLabel": "在 Maps 中查看", From bcb72c596a438f6a223e875395380afe1efc291c Mon Sep 17 00:00:00 2001 From: Andrew Goldstein Date: Mon, 5 Apr 2021 11:39:09 -0600 Subject: [PATCH 094/106] [RAC][Alert Triage][TGrid] Update the Alerts Table (TGrid) API to implement `renderCellValue` (#96098) ### [RAC][Alert Triage][TGrid] Update the Alerts Table (TGrid) API to implement `renderCellValue` - This PR implements a superset of the `renderCellValue` API from [EuiDataGrid](https://elastic.github.io/eui/#/tabular-content/data-grid) in the `TGrid` (Timeline grid) API - The TGrid API was also updated to accept a collection of `RowRenderer`s as a prop The API changes are summarized by the following screenshot: render-cell-value The following screenshot shows the `signal.rule.risk_score` column in the Alerts table being rendered with a green background color, using the same technique illustrated by `EuiDataGrid`'s [codesandbox example](https://codesandbox.io/s/nsmzs): alerts Note: In the screenshot above, the values in the Alerts table are also _not_ rendered as draggables. Related (RAC) issue: https://github.com/elastic/kibana/issues/94520 ### Details The `StatefulEventsViewer` has been updated to accept `renderCellValue` as a (required) prop: ``` renderCellValue: (props: CellValueElementProps) => React.ReactNode; ``` The type definition of `CellValueElementProps` is: ``` export type CellValueElementProps = EuiDataGridCellValueElementProps & { data: TimelineNonEcsData[]; eventId: string; // _id header: ColumnHeaderOptions; linkValues: string[] | undefined; timelineId: string; }; ``` The `CellValueElementProps` type above is a _superset_ of `EuiDataGridCellValueElementProps`. The additional properties above include the `data` returned by the TGrid when it performs IO to retrieve alerts and events. ### Using `renderCellValue` to control rendering The internal implementation of TGrid's cell rendering didn't change with this PR; it moved to `x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx` as shown below: ``` export const DefaultCellRenderer: React.FC = ({ columnId, data, eventId, header, linkValues, setCellProps, timelineId, }) => ( <> {getColumnRenderer(header.id, columnRenderers, data).renderColumn({ columnName: header.id, eventId, field: header, linkValues, timelineId, truncate: true, values: getMappedNonEcsValue({ data, fieldName: header.id, }), })} ); ``` Any usages of TGrid were updated to pass `DefaultCellRenderer` as the value of the `renderCellValue` prop, as shown in the screenshot below: render-cell-value The `EuiDataGrid` [codesandbox example](https://codesandbox.io/s/nsmzs) provides the following example `renderCellValue` implementation, which highlights a cell green based on it's numeric value: ``` const renderCellValue = useMemo(() => { return ({ rowIndex, columnId, setCellProps }) => { const data = useContext(DataContext); useEffect(() => { if (columnId === 'amount') { if (data.hasOwnProperty(rowIndex)) { const numeric = parseFloat( data[rowIndex][columnId].match(/\d+\.\d+/)[0], 10 ); setCellProps({ style: { backgroundColor: `rgba(0, 255, 0, ${numeric * 0.0002})`, }, }); } } }, [rowIndex, columnId, setCellProps, data]); function getFormatted() { return data[rowIndex][columnId].formatted ? data[rowIndex][columnId].formatted : data[rowIndex][columnId]; } return data.hasOwnProperty(rowIndex) ? getFormatted(rowIndex, columnId) : null; }; }, []); ``` The sample code above formats the `amount` column in the example `EuiDataGrid` with a green `backgroundColor` based on the value of the data, as shown in the screenshot below: datagrid-cell-formatting To demonstrate that similar styling can be applied to TGrid using the same technique illustrated by `EuiDataGrid`'s [codesandbox example](https://codesandbox.io/s/nsmzs), we can update the `DefaultCellRenderer` in `x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx` to apply a similar technique: ``` export const DefaultCellRenderer: React.FC = ({ columnId, data, eventId, header, linkValues, setCellProps, timelineId, }) => { useEffect(() => { if (columnId === 'signal.rule.risk_score') { const value = getMappedNonEcsValue({ data, fieldName: columnId, }); if (Array.isArray(value) && value.length > 0) { const numeric = parseFloat(value[0]); setCellProps({ style: { backgroundColor: `rgba(0, 255, 0, ${numeric * 0.002})`, }, }); } } }, [columnId, data, setCellProps]); return ( <> {getMappedNonEcsValue({ data, fieldName: columnId, })} ); }; ``` The example code above renders the `signal.rule.risk_score` column in the Alerts table with a green `backgroundColor` based on the value of the data, as shown in the screenshot below: alerts Note: In the screenshot above, the values in the Alerts table are not rendered as draggables. --- .../components/alerts_viewer/alerts_table.tsx | 4 + .../events_viewer/events_viewer.test.tsx | 6 + .../events_viewer/events_viewer.tsx | 14 +- .../components/events_viewer/index.test.tsx | 4 + .../common/components/events_viewer/index.tsx | 13 +- .../components/alerts_table/index.tsx | 4 + .../navigation/events_query_tab_body.tsx | 4 + .../components/flyout/pane/index.tsx | 8 +- .../__snapshots__/index.test.tsx.snap | 553 ++++++++-- .../body/data_driven_columns/index.test.tsx | 4 +- .../body/data_driven_columns/index.tsx | 30 +- .../stateful_cell.test.tsx | 171 +++ .../data_driven_columns/stateful_cell.tsx | 63 ++ .../body/events/event_column_view.test.tsx | 2 + .../body/events/event_column_view.tsx | 8 +- .../components/timeline/body/events/index.tsx | 8 +- .../timeline/body/events/stateful_event.tsx | 10 +- .../components/timeline/body/index.test.tsx | 8 +- .../components/timeline/body/index.tsx | 13 +- .../body/renderers/get_row_renderer.test.tsx | 16 +- .../timeline/body/renderers/index.ts | 2 +- .../default_cell_renderer.test.tsx | 107 ++ .../cell_rendering/default_cell_renderer.tsx | 39 + .../timeline/cell_rendering/index.tsx | 20 + .../__snapshots__/index.test.tsx.snap | 980 ++++++++++++++++++ .../timeline/eql_tab_content/index.test.tsx | 4 + .../timeline/eql_tab_content/index.tsx | 8 + .../components/timeline/index.test.tsx | 4 + .../timelines/components/timeline/index.tsx | 14 +- .../__snapshots__/index.test.tsx.snap | 980 ++++++++++++++++++ .../pinned_tab_content/index.test.tsx | 5 +- .../timeline/pinned_tab_content/index.tsx | 8 + .../__snapshots__/index.test.tsx.snap | 980 ++++++++++++++++++ .../timeline/query_tab_content/index.test.tsx | 4 + .../timeline/query_tab_content/index.tsx | 8 + .../timeline/tabs_content/index.tsx | 64 +- .../timeline/epic_local_storage.test.tsx | 5 +- 37 files changed, 4047 insertions(+), 128 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.test.tsx create mode 100644 x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.tsx create mode 100644 x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.test.tsx create mode 100644 x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx create mode 100644 x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/index.tsx 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 af90d17fe62b8..43d5c66655808 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 @@ -12,6 +12,8 @@ import { TimelineIdLiteral } from '../../../../common/types/timeline'; import { StatefulEventsViewer } from '../events_viewer'; import { alertsDefaultModel } from './default_headers'; import { useManageTimeline } from '../../../timelines/components/manage_timeline'; +import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers'; +import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer'; import * as i18n from './translations'; import { useKibana } from '../../lib/kibana'; import { SourcererScopeName } from '../../store/sourcerer/model'; @@ -91,6 +93,8 @@ const AlertsTableComponent: React.FC = ({ defaultModel={alertsDefaultModel} end={endDate} id={timelineId} + renderCellValue={DefaultCellRenderer} + rowRenderers={defaultRowRenderers} scopeId={SourcererScopeName.default} start={startDate} /> diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.test.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.test.tsx index 3ecc17589fe08..8962f5e6c5146 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.test.tsx @@ -26,6 +26,8 @@ import { KqlMode } from '../../../timelines/store/timeline/model'; import { SortDirection } from '../../../timelines/components/timeline/body/sort'; import { AlertsTableFilterGroup } from '../../../detections/components/alerts_table/alerts_filter_group'; import { SourcererScopeName } from '../../store/sourcerer/model'; +import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers'; +import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer'; import { useTimelineEvents } from '../../../timelines/containers'; jest.mock('../../../timelines/components/graph_overlay', () => ({ @@ -99,6 +101,8 @@ const eventsViewerDefaultProps = { query: '', language: 'kql', }, + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, start: from, sort: [ { @@ -118,6 +122,8 @@ describe('EventsViewer', () => { defaultModel: eventsDefaultModel, end: to, id: TimelineId.test, + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, start: from, scopeId: SourcererScopeName.timeline, }; diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx index 050cd92b0556e..e6e868f1a7365 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx @@ -4,7 +4,6 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - import { EuiFlexGroup, EuiFlexItem, EuiPanel } from '@elastic/eui'; import { isEmpty } from 'lodash/fp'; import React, { useEffect, useMemo, useState } from 'react'; @@ -41,7 +40,9 @@ import { useManageTimeline } from '../../../timelines/components/manage_timeline import { ExitFullScreen } from '../exit_full_screen'; import { useGlobalFullScreen } from '../../containers/use_full_screen'; import { TimelineId, TimelineTabs } from '../../../../common/types/timeline'; +import { RowRenderer } from '../../../timelines/components/timeline/body/renderers/row_renderer'; import { GraphOverlay } from '../../../timelines/components/graph_overlay'; +import { CellValueElementProps } from '../../../timelines/components/timeline/cell_rendering'; import { SELECTOR_TIMELINE_GLOBAL_CONTAINER } from '../../../timelines/components/timeline/styles'; export const EVENTS_VIEWER_HEADER_HEIGHT = 90; // px @@ -122,6 +123,8 @@ interface Props { kqlMode: KqlMode; query: Query; onRuleChange?: () => void; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; start: string; sort: Sort[]; utilityBar?: (refetch: inputsModel.Refetch, totalCount: number) => React.ReactNode; @@ -146,8 +149,10 @@ const EventsViewerComponent: React.FC = ({ itemsPerPage, itemsPerPageOptions, kqlMode, - query, onRuleChange, + query, + renderCellValue, + rowRenderers, start, sort, utilityBar, @@ -310,6 +315,8 @@ const EventsViewerComponent: React.FC = ({ isEventViewer={true} onRuleChange={onRuleChange} refetch={refetch} + renderCellValue={renderCellValue} + rowRenderers={rowRenderers} sort={sort} tabType={TimelineTabs.query} totalPages={calculateTotalPages({ @@ -343,6 +350,7 @@ const EventsViewerComponent: React.FC = ({ export const EventsViewer = React.memo( EventsViewerComponent, + // eslint-disable-next-line complexity (prevProps, nextProps) => deepEqual(prevProps.browserFields, nextProps.browserFields) && prevProps.columns === nextProps.columns && @@ -359,6 +367,8 @@ export const EventsViewer = React.memo( prevProps.itemsPerPageOptions === nextProps.itemsPerPageOptions && prevProps.kqlMode === nextProps.kqlMode && deepEqual(prevProps.query, nextProps.query) && + prevProps.renderCellValue === nextProps.renderCellValue && + prevProps.rowRenderers === nextProps.rowRenderers && prevProps.start === nextProps.start && deepEqual(prevProps.sort, nextProps.sort) && prevProps.utilityBar === nextProps.utilityBar && diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx index 5004c23f9111c..cd27177643b44 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.test.tsx @@ -18,7 +18,9 @@ import { StatefulEventsViewer } from '.'; import { eventsDefaultModel } from './default_model'; import { TimelineId } from '../../../../common/types/timeline'; import { SourcererScopeName } from '../../store/sourcerer/model'; +import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer'; import { useTimelineEvents } from '../../../timelines/containers'; +import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers'; jest.mock('../../../timelines/containers', () => ({ useTimelineEvents: jest.fn(), @@ -38,6 +40,8 @@ const testProps = { end: to, indexNames: [], id: TimelineId.test, + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, scopeId: SourcererScopeName.default, start: from, }; 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 59dc756bb2b3e..b58aa2236d292 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 @@ -22,6 +22,8 @@ import { useGlobalFullScreen } from '../../containers/use_full_screen'; import { SourcererScopeName } from '../../store/sourcerer/model'; import { useSourcererScope } from '../../containers/sourcerer'; import { DetailsPanel } from '../../../timelines/components/side_panel'; +import { RowRenderer } from '../../../timelines/components/timeline/body/renderers/row_renderer'; +import { CellValueElementProps } from '../../../timelines/components/timeline/cell_rendering'; const DEFAULT_EVENTS_VIEWER_HEIGHT = 652; @@ -41,6 +43,8 @@ export interface OwnProps { headerFilterGroup?: React.ReactNode; pageFilters?: Filter[]; onRuleChange?: () => void; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; utilityBar?: (refetch: inputsModel.Refetch, totalCount: number) => React.ReactNode; } @@ -67,8 +71,10 @@ const StatefulEventsViewerComponent: React.FC = ({ itemsPerPageOptions, kqlMode, pageFilters, - query, onRuleChange, + query, + renderCellValue, + rowRenderers, start, scopeId, showCheckboxes, @@ -129,6 +135,8 @@ const StatefulEventsViewerComponent: React.FC = ({ kqlMode={kqlMode} query={query} onRuleChange={onRuleChange} + renderCellValue={renderCellValue} + rowRenderers={rowRenderers} start={start} sort={sort} utilityBar={utilityBar} @@ -201,6 +209,7 @@ type PropsFromRedux = ConnectedProps; export const StatefulEventsViewer = connector( React.memo( StatefulEventsViewerComponent, + // eslint-disable-next-line complexity (prevProps, nextProps) => prevProps.id === nextProps.id && prevProps.scopeId === nextProps.scopeId && @@ -215,6 +224,8 @@ export const StatefulEventsViewer = connector( deepEqual(prevProps.itemsPerPageOptions, nextProps.itemsPerPageOptions) && prevProps.kqlMode === nextProps.kqlMode && deepEqual(prevProps.query, nextProps.query) && + prevProps.renderCellValue === nextProps.renderCellValue && + prevProps.rowRenderers === nextProps.rowRenderers && deepEqual(prevProps.sort, nextProps.sort) && prevProps.start === nextProps.start && deepEqual(prevProps.pageFilters, nextProps.pageFilters) && 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 6c88b8e29800b..cf6db52d0cece 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 @@ -48,6 +48,8 @@ import { import { SourcererScopeName } from '../../../common/store/sourcerer/model'; import { useSourcererScope } from '../../../common/containers/sourcerer'; import { buildTimeRangeFilter } from './helpers'; +import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer'; +import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers'; interface OwnProps { timelineId: TimelineIdLiteral; @@ -336,6 +338,8 @@ export const AlertsTableComponent: React.FC = ({ headerFilterGroup={headerFilterGroup} id={timelineId} onRuleChange={onRuleChange} + renderCellValue={DefaultCellRenderer} + rowRenderers={defaultRowRenderers} scopeId={SourcererScopeName.detections} start={from} utilityBar={utilityBarCallback} diff --git a/x-pack/plugins/security_solution/public/hosts/pages/navigation/events_query_tab_body.tsx b/x-pack/plugins/security_solution/public/hosts/pages/navigation/events_query_tab_body.tsx index 922d52b6cfe5a..f88709e6e95ac 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/navigation/events_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/navigation/events_query_tab_body.tsx @@ -21,6 +21,8 @@ import { useGlobalFullScreen } from '../../../common/containers/use_full_screen' import * as i18n from '../translations'; import { MatrixHistogramType } from '../../../../common/search_strategy/security_solution'; import { useManageTimeline } from '../../../timelines/components/manage_timeline'; +import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers'; +import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer'; import { SourcererScopeName } from '../../../common/store/sourcerer/model'; const EVENTS_HISTOGRAM_ID = 'eventsHistogramQuery'; @@ -96,6 +98,8 @@ const EventsQueryTabBodyComponent: React.FC = ({ defaultModel={eventsDefaultModel} end={endDate} id={TimelineId.hostsPageEvents} + renderCellValue={DefaultCellRenderer} + rowRenderers={defaultRowRenderers} scopeId={SourcererScopeName.default} start={startDate} pageFilters={pageFilters} diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/pane/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/pane/index.tsx index e63ffedf3da7c..459706de36569 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/pane/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/flyout/pane/index.tsx @@ -14,6 +14,8 @@ import { StatefulTimeline } from '../../timeline'; import { TimelineId } from '../../../../../common/types/timeline'; import * as i18n from './translations'; import { timelineActions } from '../../../store/timeline'; +import { defaultRowRenderers } from '../../timeline/body/renderers'; +import { DefaultCellRenderer } from '../../timeline/cell_rendering/default_cell_renderer'; import { focusActiveTimelineButton } from '../../timeline/helpers'; interface FlyoutPaneComponentProps { @@ -46,7 +48,11 @@ const FlyoutPaneComponent: React.FC = ({ timelineId }) onClose={handleClose} size="l" > - + ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap index 72d2956bd4086..91d039a19495c 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap @@ -22,26 +22,77 @@ exports[`Columns it renders the expected columns 1`] = ` You are in a table cell. row: 2, column: 2

- @@ -63,15 +114,77 @@ exports[`Columns it renders the expected columns 1`] = ` You are in a table cell. row: 2, column: 3

- @@ -93,15 +206,77 @@ exports[`Columns it renders the expected columns 1`] = ` You are in a table cell. row: 2, column: 4

- @@ -123,15 +298,77 @@ exports[`Columns it renders the expected columns 1`] = ` You are in a table cell. row: 2, column: 5

- @@ -153,15 +390,77 @@ exports[`Columns it renders the expected columns 1`] = ` You are in a table cell. row: 2, column: 6

- @@ -183,15 +482,77 @@ exports[`Columns it renders the expected columns 1`] = ` You are in a table cell. row: 2, column: 7

- @@ -213,15 +574,77 @@ exports[`Columns it renders the expected columns 1`] = ` You are in a table cell. row: 2, column: 8

- diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.test.tsx index f20978c6ba726..234e28e6231c5 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.test.tsx @@ -9,10 +9,10 @@ import { shallow } from 'enzyme'; import React from 'react'; +import { DefaultCellRenderer } from '../../cell_rendering/default_cell_renderer'; import '../../../../../common/mock/match_media'; import { mockTimelineData } from '../../../../../common/mock'; import { defaultHeaders } from '../column_headers/default_headers'; -import { columnRenderers } from '../renderers'; import { DataDrivenColumns } from '.'; @@ -25,11 +25,11 @@ describe('Columns', () => { ariaRowindex={2} _id={mockTimelineData[0]._id} columnHeaders={headersSansTimestamp} - columnRenderers={columnRenderers} data={mockTimelineData[0].data} ecsData={mockTimelineData[0].ecs} hasRowRenderers={false} notesCount={0} + renderCellValue={DefaultCellRenderer} timelineId="test" /> ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.tsx index 5aba562749f01..aeb9af46ea2ec 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/index.tsx @@ -9,6 +9,7 @@ import { EuiScreenReaderOnly } from '@elastic/eui'; import React from 'react'; import { getOr } from 'lodash/fp'; +import { CellValueElementProps } from '../../cell_rendering'; import { DRAGGABLE_KEYBOARD_WRAPPER_CLASS_NAME } from '../../../../../common/components/drag_and_drop/helpers'; import { Ecs } from '../../../../../../common/ecs'; import { TimelineNonEcsData } from '../../../../../../common/search_strategy/timeline'; @@ -16,20 +17,19 @@ import { TimelineTabs } from '../../../../../../common/types/timeline'; import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; import { ARIA_COLUMN_INDEX_OFFSET } from '../../helpers'; import { EventsTd, EVENTS_TD_CLASS_NAME, EventsTdContent, EventsTdGroupData } from '../../styles'; -import { ColumnRenderer } from '../renderers/column_renderer'; -import { getColumnRenderer } from '../renderers/get_column_renderer'; +import { StatefulCell } from './stateful_cell'; import * as i18n from './translations'; interface Props { _id: string; ariaRowindex: number; columnHeaders: ColumnHeaderOptions[]; - columnRenderers: ColumnRenderer[]; data: TimelineNonEcsData[]; ecsData: Ecs; hasRowRenderers: boolean; notesCount: number; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; tabType?: TimelineTabs; timelineId: string; } @@ -82,11 +82,11 @@ export const DataDrivenColumns = React.memo( _id, ariaRowindex, columnHeaders, - columnRenderers, data, ecsData, hasRowRenderers, notesCount, + renderCellValue, tabType, timelineId, }) => ( @@ -105,18 +105,16 @@ export const DataDrivenColumns = React.memo(

{i18n.YOU_ARE_IN_A_TABLE_CELL({ row: ariaRowindex, column: i + 2 })}

- {getColumnRenderer(header.id, columnRenderers, data).renderColumn({ - columnName: header.id, - eventId: _id, - field: header, - linkValues: getOr([], header.linkField ?? '', ecsData), - timelineId: tabType != null ? `${timelineId}-${tabType}` : timelineId, - truncate: true, - values: getMappedNonEcsValue({ - data, - fieldName: header.id, - }), - })} + {hasRowRenderers ? ( diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.test.tsx new file mode 100644 index 0000000000000..3c75bc7fb2649 --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.test.tsx @@ -0,0 +1,171 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { mount } from 'enzyme'; +import { cloneDeep } from 'lodash/fp'; +import React, { useEffect } from 'react'; + +import { CellValueElementProps } from '../../cell_rendering'; +import { defaultHeaders, mockTimelineData } from '../../../../../common/mock'; +import { TimelineNonEcsData } from '../../../../../../common/search_strategy/timeline'; +import { TimelineTabs } from '../../../../../../common/types/timeline'; +import { ColumnHeaderOptions } from '../../../../store/timeline/model'; + +import { StatefulCell } from './stateful_cell'; +import { getMappedNonEcsValue } from '.'; + +/** + * This (test) component implement's `EuiDataGrid`'s `renderCellValue` interface, + * as documented here: https://elastic.github.io/eui/#/tabular-content/data-grid + * + * Its `CellValueElementProps` props are a superset of `EuiDataGridCellValueElementProps`. + * The `setCellProps` function, defined by the `EuiDataGridCellValueElementProps` interface, + * is typically called in a `useEffect`, as illustrated by `EuiDataGrid`'s code sandbox example: + * https://codesandbox.io/s/zhxmo + */ +const RenderCellValue: React.FC = ({ columnId, data, setCellProps }) => { + useEffect(() => { + // branching logic that conditionally renders a specific cell green: + if (columnId === defaultHeaders[0].id) { + const value = getMappedNonEcsValue({ + data, + fieldName: columnId, + }); + + if (value?.length) { + setCellProps({ + style: { + backgroundColor: 'green', + }, + }); + } + } + }, [columnId, data, setCellProps]); + + return ( +
+ {getMappedNonEcsValue({ + data, + fieldName: columnId, + })} +
+ ); +}; + +describe('StatefulCell', () => { + const ariaRowindex = 123; + const eventId = '_id-123'; + const linkValues = ['foo', 'bar', '@baz']; + const tabType = TimelineTabs.query; + const timelineId = 'test'; + + let header: ColumnHeaderOptions; + let data: TimelineNonEcsData[]; + beforeEach(() => { + data = cloneDeep(mockTimelineData[0].data); + header = cloneDeep(defaultHeaders[0]); + }); + + test('it invokes renderCellValue with the expected arguments when tabType is specified', () => { + const renderCellValue = jest.fn(); + + mount( + + ); + + expect(renderCellValue).toBeCalledWith( + expect.objectContaining({ + columnId: header.id, + eventId, + data, + header, + isExpandable: true, + isExpanded: false, + isDetails: false, + linkValues, + rowIndex: ariaRowindex - 1, + timelineId: `${timelineId}-${tabType}`, + }) + ); + }); + + test('it invokes renderCellValue with the expected arguments when tabType is NOT specified', () => { + const renderCellValue = jest.fn(); + + mount( + + ); + + expect(renderCellValue).toBeCalledWith( + expect.objectContaining({ + columnId: header.id, + eventId, + data, + header, + isExpandable: true, + isExpanded: false, + isDetails: false, + linkValues, + rowIndex: ariaRowindex - 1, + timelineId, + }) + ); + }); + + test('it renders the React.Node returned by renderCellValue', () => { + const renderCellValue = () =>
; + + const wrapper = mount( + + ); + + expect(wrapper.find('[data-test-subj="renderCellValue"]').exists()).toBe(true); + }); + + test("it renders a div with the styles set by `renderCellValue`'s `setCellProps` argument", () => { + const wrapper = mount( + + ); + + expect( + wrapper.find('[data-test-subj="statefulCell"]').getDOMNode().getAttribute('style') + ).toEqual('background-color: green;'); + }); +}); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.tsx new file mode 100644 index 0000000000000..83f603364ba8c --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/data_driven_columns/stateful_cell.tsx @@ -0,0 +1,63 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license 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, { HTMLAttributes, useState } from 'react'; + +import { CellValueElementProps } from '../../cell_rendering'; +import { TimelineNonEcsData } from '../../../../../../common/search_strategy/timeline'; +import { TimelineTabs } from '../../../../../../common/types/timeline'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; + +export interface CommonProps { + className?: string; + 'aria-label'?: string; + 'data-test-subj'?: string; +} + +const StatefulCellComponent = ({ + ariaRowindex, + data, + header, + eventId, + linkValues, + renderCellValue, + tabType, + timelineId, +}: { + ariaRowindex: number; + data: TimelineNonEcsData[]; + header: ColumnHeaderOptions; + eventId: string; + linkValues: string[] | undefined; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + tabType?: TimelineTabs; + timelineId: string; +}) => { + const [cellProps, setCellProps] = useState>({}); + + return ( +
+ {renderCellValue({ + columnId: header.id, + eventId, + data, + header, + isExpandable: true, + isExpanded: false, + isDetails: false, + linkValues, + rowIndex: ariaRowindex - 1, + setCellProps, + timelineId: tabType != null ? `${timelineId}-${tabType}` : timelineId, + })} +
+ ); +}; + +StatefulCellComponent.displayName = 'StatefulCellComponent'; + +export const StatefulCell = React.memo(StatefulCellComponent); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.test.tsx index abdfda3272d6a..74724dedf4d11 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.test.tsx @@ -14,6 +14,7 @@ import { DEFAULT_ACTIONS_COLUMN_WIDTH } from '../constants'; import * as i18n from '../translations'; import { EventColumnView } from './event_column_view'; +import { DefaultCellRenderer } from '../../cell_rendering/default_cell_renderer'; import { TimelineTabs, TimelineType, TimelineId } from '../../../../../../common/types/timeline'; import { useShallowEqualSelector } from '../../../../../common/hooks/use_selector'; @@ -56,6 +57,7 @@ describe('EventColumnView', () => { onRowSelected: jest.fn(), onUnPinEvent: jest.fn(), refetch: jest.fn(), + renderCellValue: DefaultCellRenderer, selectedEventIds: {}, showCheckboxes: false, showNotes: false, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx index c6caf0a7b5b15..a0a0aeb23e8f7 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/event_column_view.tsx @@ -7,6 +7,7 @@ import React, { useCallback, useMemo } from 'react'; +import { CellValueElementProps } from '../../cell_rendering'; import { useShallowEqualSelector } from '../../../../../common/hooks/use_selector'; import { Ecs } from '../../../../../../common/ecs'; import { TimelineNonEcsData } from '../../../../../../common/search_strategy/timeline'; @@ -21,7 +22,6 @@ import { getPinOnClick, InvestigateInResolverAction, } from '../helpers'; -import { ColumnRenderer } from '../renderers/column_renderer'; import { AlertContextMenu } from '../../../../../detections/components/alerts_table/timeline_actions/alert_context_menu'; import { InvestigateInTimelineAction } from '../../../../../detections/components/alerts_table/timeline_actions/investigate_in_timeline_action'; import { AddEventNoteAction } from '../actions/add_note_icon_item'; @@ -38,7 +38,6 @@ interface Props { actionsColumnWidth: number; ariaRowindex: number; columnHeaders: ColumnHeaderOptions[]; - columnRenderers: ColumnRenderer[]; data: TimelineNonEcsData[]; ecsData: Ecs; eventIdToNoteIds: Readonly>; @@ -51,6 +50,7 @@ interface Props { onRowSelected: OnRowSelected; onUnPinEvent: OnUnPinEvent; refetch: inputsModel.Refetch; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; onRuleChange?: () => void; hasRowRenderers: boolean; selectedEventIds: Readonly>; @@ -69,7 +69,6 @@ export const EventColumnView = React.memo( actionsColumnWidth, ariaRowindex, columnHeaders, - columnRenderers, data, ecsData, eventIdToNoteIds, @@ -84,6 +83,7 @@ export const EventColumnView = React.memo( refetch, hasRowRenderers, onRuleChange, + renderCellValue, selectedEventIds, showCheckboxes, showNotes, @@ -227,11 +227,11 @@ export const EventColumnView = React.memo( _id={id} ariaRowindex={ariaRowindex} columnHeaders={columnHeaders} - columnRenderers={columnRenderers} data={data} ecsData={ecsData} hasRowRenderers={hasRowRenderers} notesCount={notesCount} + renderCellValue={renderCellValue} tabType={tabType} timelineId={timelineId} /> diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/index.tsx index d76b5834c233e..7f8a3a92fb5ba 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/index.tsx @@ -8,6 +8,7 @@ import React from 'react'; import { isEmpty } from 'lodash'; +import { CellValueElementProps } from '../../cell_rendering'; import { inputsModel } from '../../../../../common/store'; import { BrowserFields } from '../../../../../common/containers/source'; import { @@ -18,7 +19,6 @@ import { TimelineTabs } from '../../../../../../common/types/timeline'; import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; import { OnRowSelected } from '../../events'; import { EventsTbody } from '../../styles'; -import { ColumnRenderer } from '../renderers/column_renderer'; import { RowRenderer } from '../renderers/row_renderer'; import { StatefulEvent } from './stateful_event'; import { eventIsPinned } from '../helpers'; @@ -30,7 +30,6 @@ interface Props { actionsColumnWidth: number; browserFields: BrowserFields; columnHeaders: ColumnHeaderOptions[]; - columnRenderers: ColumnRenderer[]; containerRef: React.MutableRefObject; data: TimelineItem[]; eventIdToNoteIds: Readonly>; @@ -41,6 +40,7 @@ interface Props { onRowSelected: OnRowSelected; pinnedEventIds: Readonly>; refetch: inputsModel.Refetch; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; onRuleChange?: () => void; rowRenderers: RowRenderer[]; selectedEventIds: Readonly>; @@ -52,7 +52,6 @@ const EventsComponent: React.FC = ({ actionsColumnWidth, browserFields, columnHeaders, - columnRenderers, containerRef, data, eventIdToNoteIds, @@ -64,6 +63,7 @@ const EventsComponent: React.FC = ({ pinnedEventIds, refetch, onRuleChange, + renderCellValue, rowRenderers, selectedEventIds, showCheckboxes, @@ -76,7 +76,6 @@ const EventsComponent: React.FC = ({ ariaRowindex={i + ARIA_ROW_INDEX_OFFSET} browserFields={browserFields} columnHeaders={columnHeaders} - columnRenderers={columnRenderers} containerRef={containerRef} event={event} eventIdToNoteIds={eventIdToNoteIds} @@ -88,6 +87,7 @@ const EventsComponent: React.FC = ({ lastFocusedAriaColindex={lastFocusedAriaColindex} loadingEventIds={loadingEventIds} onRowSelected={onRowSelected} + renderCellValue={renderCellValue} refetch={refetch} rowRenderers={rowRenderers} onRuleChange={onRuleChange} diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx index 4191badd6b03f..97ab088b61583 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/events/stateful_event.tsx @@ -8,6 +8,7 @@ import React, { useCallback, useMemo, useRef, useState } from 'react'; import { useDispatch } from 'react-redux'; +import { CellValueElementProps } from '../../cell_rendering'; import { useDeepEqualSelector } from '../../../../../common/hooks/use_selector'; import { TimelineExpandedDetailType, @@ -23,7 +24,6 @@ import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/mod import { OnPinEvent, OnRowSelected } from '../../events'; import { STATEFUL_EVENT_CSS_CLASS_NAME } from '../../helpers'; import { EventsTrGroup, EventsTrSupplement, EventsTrSupplementContainer } from '../../styles'; -import { ColumnRenderer } from '../renderers/column_renderer'; import { RowRenderer } from '../renderers/row_renderer'; import { isEventBuildingBlockType, getEventType, isEvenEqlSequence } from '../helpers'; import { NoteCards } from '../../../notes/note_cards'; @@ -45,7 +45,6 @@ interface Props { containerRef: React.MutableRefObject; browserFields: BrowserFields; columnHeaders: ColumnHeaderOptions[]; - columnRenderers: ColumnRenderer[]; event: TimelineItem; eventIdToNoteIds: Readonly>; isEventViewer?: boolean; @@ -56,6 +55,7 @@ interface Props { refetch: inputsModel.Refetch; ariaRowindex: number; onRuleChange?: () => void; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; rowRenderers: RowRenderer[]; selectedEventIds: Readonly>; showCheckboxes: boolean; @@ -77,7 +77,6 @@ const StatefulEventComponent: React.FC = ({ browserFields, containerRef, columnHeaders, - columnRenderers, event, eventIdToNoteIds, isEventViewer = false, @@ -86,8 +85,9 @@ const StatefulEventComponent: React.FC = ({ loadingEventIds, onRowSelected, refetch, - onRuleChange, + renderCellValue, rowRenderers, + onRuleChange, ariaRowindex, selectedEventIds, showCheckboxes, @@ -259,7 +259,6 @@ const StatefulEventComponent: React.FC = ({ actionsColumnWidth={actionsColumnWidth} ariaRowindex={ariaRowindex} columnHeaders={columnHeaders} - columnRenderers={columnRenderers} data={event.data} ecsData={event.ecs} eventIdToNoteIds={eventIdToNoteIds} @@ -273,6 +272,7 @@ const StatefulEventComponent: React.FC = ({ onRowSelected={onRowSelected} onUnPinEvent={onUnPinEvent} refetch={refetch} + renderCellValue={renderCellValue} onRuleChange={onRuleChange} selectedEventIds={selectedEventIds} showCheckboxes={showCheckboxes} diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.test.tsx index 723e4c3de5c27..76dbfc553d228 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.test.tsx @@ -8,6 +8,7 @@ import React from 'react'; import { waitFor } from '@testing-library/react'; +import { DefaultCellRenderer } from '../cell_rendering/default_cell_renderer'; import '../../../../common/mock/match_media'; import { mockBrowserFields } from '../../../../common/containers/source/mock'; import { Direction } from '../../../../../common/search_strategy'; @@ -19,6 +20,7 @@ import { Sort } from './sort'; import { useMountAppended } from '../../../../common/utils/use_mount_appended'; import { timelineActions } from '../../../store/timeline'; import { TimelineTabs } from '../../../../../common/types/timeline'; +import { defaultRowRenderers } from './renderers'; const mockSort: Sort[] = [ { @@ -39,8 +41,8 @@ jest.mock('react-redux', () => { }); jest.mock('../../../../common/hooks/use_selector', () => ({ - useShallowEqualSelector: jest.fn().mockReturnValue(mockTimelineModel), - useDeepEqualSelector: jest.fn().mockReturnValue(mockTimelineModel), + useShallowEqualSelector: () => mockTimelineModel, + useDeepEqualSelector: () => mockTimelineModel, })); jest.mock('../../../../common/components/link_to'); @@ -76,6 +78,8 @@ describe('Body', () => { loadingEventIds: [], pinnedEventIds: {}, refetch: jest.fn(), + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, selectedEventIds: {}, setSelected: (jest.fn() as unknown) as StatefulBodyProps['setSelected'], sort: mockSort, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.tsx index 4df6eb16ccb62..59c0610c544e9 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/index.tsx @@ -11,6 +11,7 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; +import { CellValueElementProps } from '../cell_rendering'; import { RowRendererId, TimelineId, TimelineTabs } from '../../../../../common/types/timeline'; import { FIRST_ARIA_INDEX, @@ -28,9 +29,9 @@ import { timelineActions, timelineSelectors } from '../../../store/timeline'; import { OnRowSelected, OnSelectAll } from '../events'; import { getActionsColumnWidth, getColumnHeaders } from './column_headers/helpers'; import { getEventIdToDataMapping } from './helpers'; -import { columnRenderers, rowRenderers } from './renderers'; import { Sort } from './sort'; import { plainRowRenderer } from './renderers/plain_row_renderer'; +import { RowRenderer } from './renderers/row_renderer'; import { EventsTable, TimelineBody, TimelineBodyGlobalStyle } from '../styles'; import { ColumnHeaders } from './column_headers'; import { Events } from './events'; @@ -44,6 +45,8 @@ interface OwnProps { isEventViewer?: boolean; sort: Sort[]; refetch: inputsModel.Refetch; + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; tabType: TimelineTabs; totalPages: number; onRuleChange?: () => void; @@ -83,6 +86,8 @@ export const BodyComponent = React.memo( onRuleChange, showCheckboxes, refetch, + renderCellValue, + rowRenderers, sort, tabType, totalPages, @@ -141,7 +146,7 @@ export const BodyComponent = React.memo( if (!excludedRowRendererIds) return rowRenderers; return rowRenderers.filter((rowRenderer) => !excludedRowRendererIds.includes(rowRenderer.id)); - }, [excludedRowRendererIds]); + }, [excludedRowRendererIds, rowRenderers]); const actionsColumnWidth = useMemo( () => @@ -209,7 +214,6 @@ export const BodyComponent = React.memo( actionsColumnWidth={actionsColumnWidth} browserFields={browserFields} columnHeaders={columnHeaders} - columnRenderers={columnRenderers} data={data} eventIdToNoteIds={eventIdToNoteIds} id={id} @@ -219,6 +223,7 @@ export const BodyComponent = React.memo( onRowSelected={onRowSelected} pinnedEventIds={pinnedEventIds} refetch={refetch} + renderCellValue={renderCellValue} rowRenderers={enabledRowRenderers} onRuleChange={onRuleChange} selectedEventIds={selectedEventIds} @@ -244,6 +249,8 @@ export const BodyComponent = React.memo( prevProps.id === nextProps.id && prevProps.isEventViewer === nextProps.isEventViewer && prevProps.isSelectAllChecked === nextProps.isSelectAllChecked && + prevProps.renderCellValue === nextProps.renderCellValue && + prevProps.rowRenderers === nextProps.rowRenderers && prevProps.showCheckboxes === nextProps.showCheckboxes && prevProps.tabType === nextProps.tabType ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/get_row_renderer.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/get_row_renderer.test.tsx index 6e36102da2de9..b92a4381d837b 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/get_row_renderer.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/get_row_renderer.test.tsx @@ -17,7 +17,7 @@ import { mockTimelineData } from '../../../../../common/mock'; import { TestProviders } from '../../../../../common/mock/test_providers'; import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; -import { rowRenderers } from '.'; +import { defaultRowRenderers } from '.'; import { getRowRenderer } from './get_row_renderer'; jest.mock('@elastic/eui', () => { @@ -48,7 +48,7 @@ describe('get_column_renderer', () => { }); test('renders correctly against snapshot', () => { - const rowRenderer = getRowRenderer(nonSuricata, rowRenderers); + const rowRenderer = getRowRenderer(nonSuricata, defaultRowRenderers); const row = rowRenderer?.renderRow({ browserFields: mockBrowserFields, data: nonSuricata, @@ -60,7 +60,7 @@ describe('get_column_renderer', () => { }); test('should render plain row data when it is a non suricata row', () => { - const rowRenderer = getRowRenderer(nonSuricata, rowRenderers); + const rowRenderer = getRowRenderer(nonSuricata, defaultRowRenderers); const row = rowRenderer?.renderRow({ browserFields: mockBrowserFields, data: nonSuricata, @@ -75,7 +75,7 @@ describe('get_column_renderer', () => { }); test('should render a suricata row data when it is a suricata row', () => { - const rowRenderer = getRowRenderer(suricata, rowRenderers); + const rowRenderer = getRowRenderer(suricata, defaultRowRenderers); const row = rowRenderer?.renderRow({ browserFields: mockBrowserFields, data: suricata, @@ -93,7 +93,7 @@ describe('get_column_renderer', () => { test('should render a suricata row data if event.category is network_traffic', () => { suricata.event = { ...suricata.event, ...{ category: ['network_traffic'] } }; - const rowRenderer = getRowRenderer(suricata, rowRenderers); + const rowRenderer = getRowRenderer(suricata, defaultRowRenderers); const row = rowRenderer?.renderRow({ browserFields: mockBrowserFields, data: suricata, @@ -111,7 +111,7 @@ describe('get_column_renderer', () => { test('should render a zeek row data if event.category is network_traffic', () => { zeek.event = { ...zeek.event, ...{ category: ['network_traffic'] } }; - const rowRenderer = getRowRenderer(zeek, rowRenderers); + const rowRenderer = getRowRenderer(zeek, defaultRowRenderers); const row = rowRenderer?.renderRow({ browserFields: mockBrowserFields, data: zeek, @@ -129,7 +129,7 @@ describe('get_column_renderer', () => { test('should render a system row data if event.category is network_traffic', () => { system.event = { ...system.event, ...{ category: ['network_traffic'] } }; - const rowRenderer = getRowRenderer(system, rowRenderers); + const rowRenderer = getRowRenderer(system, defaultRowRenderers); const row = rowRenderer?.renderRow({ browserFields: mockBrowserFields, data: system, @@ -147,7 +147,7 @@ describe('get_column_renderer', () => { test('should render a auditd row data if event.category is network_traffic', () => { auditd.event = { ...auditd.event, ...{ category: ['network_traffic'] } }; - const rowRenderer = getRowRenderer(auditd, rowRenderers); + const rowRenderer = getRowRenderer(auditd, defaultRowRenderers); const row = rowRenderer?.renderRow({ browserFields: mockBrowserFields, data: auditd, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/index.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/index.ts index 671d183c62e6d..209a9414f62f1 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/index.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/index.ts @@ -23,7 +23,7 @@ import { systemRowRenderers } from './system/generic_row_renderer'; // Suricata and Zeek which is why Suricata and Zeek are above it. The // plainRowRenderer always returns true to everything which is why it always // should be last. -export const rowRenderers: RowRenderer[] = [ +export const defaultRowRenderers: RowRenderer[] = [ ...auditdRowRenderers, ...systemRowRenderers, suricataRowRenderer, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.test.tsx new file mode 100644 index 0000000000000..5ac1dcf8805cf --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.test.tsx @@ -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 { mount } from 'enzyme'; +import { cloneDeep } from 'lodash/fp'; +import React from 'react'; + +import { columnRenderers } from '../body/renderers'; +import { getColumnRenderer } from '../body/renderers/get_column_renderer'; +import { DragDropContextWrapper } from '../../../../common/components/drag_and_drop/drag_drop_context_wrapper'; +import { DroppableWrapper } from '../../../../common/components/drag_and_drop/droppable_wrapper'; +import { mockBrowserFields } from '../../../../common/containers/source/mock'; +import { defaultHeaders, mockTimelineData, TestProviders } from '../../../../common/mock'; +import { DefaultCellRenderer } from './default_cell_renderer'; + +jest.mock('../body/renderers/get_column_renderer'); +const getColumnRendererMock = getColumnRenderer as jest.Mock; +const mockImplementation = { + renderColumn: jest.fn(), +}; + +describe('DefaultCellRenderer', () => { + const columnId = 'signal.rule.risk_score'; + const eventId = '_id-123'; + const isDetails = true; + const isExpandable = true; + const isExpanded = true; + const linkValues = ['foo', 'bar', '@baz']; + const rowIndex = 3; + const setCellProps = jest.fn(); + const timelineId = 'test'; + + beforeEach(() => { + jest.clearAllMocks(); + getColumnRendererMock.mockImplementation(() => mockImplementation); + }); + + test('it invokes `getColumnRenderer` with the expected arguments', () => { + const data = cloneDeep(mockTimelineData[0].data); + const header = cloneDeep(defaultHeaders[0]); + + mount( + + + + + + + + ); + + expect(getColumnRenderer).toBeCalledWith(header.id, columnRenderers, data); + }); + + test('it invokes `renderColumn` with the expected arguments', () => { + const data = cloneDeep(mockTimelineData[0].data); + const header = cloneDeep(defaultHeaders[0]); + + mount( + + + + + + + + ); + + expect(mockImplementation.renderColumn).toBeCalledWith({ + columnName: header.id, + eventId, + field: header, + linkValues, + timelineId, + truncate: true, + values: ['2018-11-05T19:03:25.937Z'], + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx new file mode 100644 index 0000000000000..8d8f821107e7b --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { getMappedNonEcsValue } from '../body/data_driven_columns'; +import { columnRenderers } from '../body/renderers'; +import { getColumnRenderer } from '../body/renderers/get_column_renderer'; + +import { CellValueElementProps } from '.'; + +export const DefaultCellRenderer: React.FC = ({ + columnId, + data, + eventId, + header, + linkValues, + setCellProps, + timelineId, +}) => ( + <> + {getColumnRenderer(header.id, columnRenderers, data).renderColumn({ + columnName: header.id, + eventId, + field: header, + linkValues, + timelineId, + truncate: true, + values: getMappedNonEcsValue({ + data, + fieldName: header.id, + }), + })} + +); diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/index.tsx new file mode 100644 index 0000000000000..03e444e3a9afd --- /dev/null +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/index.tsx @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiDataGridCellValueElementProps } from '@elastic/eui'; + +import { TimelineNonEcsData } from '../../../../../common/search_strategy/timeline'; +import { ColumnHeaderOptions } from '../../../store/timeline/model'; + +/** The following props are provided to the function called by `renderCellValue` */ +export type CellValueElementProps = EuiDataGridCellValueElementProps & { + data: TimelineNonEcsData[]; + eventId: string; // _id + header: ColumnHeaderOptions; + linkValues: string[] | undefined; + timelineId: string; +}; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/__snapshots__/index.test.tsx.snap index 2595f29144b80..7d237ecaf92df 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/__snapshots__/index.test.tsx.snap @@ -140,6 +140,986 @@ In other use cases the message field can be used to concatenate different values ] } onEventClosed={[MockFunction]} + renderCellValue={[Function]} + rowRenderers={ + Array [ + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_dns", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "library", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "registry", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "suricata", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "zeek", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "netflow", + "isInstance": [Function], + "renderRow": [Function], + }, + ] + } showExpandedDetails={false} start="2018-03-23T18:49:23.132Z" timelineId="test" diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.test.tsx index 7b77a915f2f05..e13bed1e2eff6 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.test.tsx @@ -9,6 +9,8 @@ import { shallow } from 'enzyme'; import React from 'react'; import useResizeObserver from 'use-resize-observer/polyfilled'; +import { defaultRowRenderers } from '../body/renderers'; +import { DefaultCellRenderer } from '../cell_rendering/default_cell_renderer'; import { defaultHeaders, mockTimelineData } from '../../../../common/mock'; import '../../../../common/mock/match_media'; import { TestProviders } from '../../../../common/mock/test_providers'; @@ -94,6 +96,8 @@ describe('Timeline', () => { itemsPerPage: 5, itemsPerPageOptions: [5, 10, 20], onEventClosed: jest.fn(), + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, showExpandedDetails: false, start: startDate, timerangeKind: 'absolute', diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.tsx index 51f8db4e796e5..6bb19ce5a6852 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/eql_tab_content/index.tsx @@ -22,10 +22,12 @@ import deepEqual from 'fast-deep-equal'; import { InPortal } from 'react-reverse-portal'; import { timelineActions, timelineSelectors } from '../../../store/timeline'; +import { CellValueElementProps } from '../cell_rendering'; import { TimelineItem } from '../../../../../common/search_strategy'; import { useTimelineEvents } from '../../../containers/index'; import { defaultHeaders } from '../body/column_headers/default_headers'; import { StatefulBody } from '../body'; +import { RowRenderer } from '../body/renderers/row_renderer'; import { Footer, footerHeight } from '../footer'; import { calculateTotalPages } from '../helpers'; import { TimelineRefetch } from '../refetch_timeline'; @@ -133,6 +135,8 @@ const isTimerangeSame = (prevProps: Props, nextProps: Props) => prevProps.timerangeKind === nextProps.timerangeKind; interface OwnProps { + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; timelineId: string; } @@ -154,6 +158,8 @@ export const EqlTabContentComponent: React.FC = ({ itemsPerPage, itemsPerPageOptions, onEventClosed, + renderCellValue, + rowRenderers, showExpandedDetails, start, timerangeKind, @@ -284,6 +290,8 @@ export const EqlTabContentComponent: React.FC = ({ data={isBlankTimeline ? EMPTY_EVENTS : events} id={timelineId} refetch={refetch} + renderCellValue={renderCellValue} + rowRenderers={rowRenderers} sort={NO_SORTING} tabType={TimelineTabs.eql} totalPages={calculateTotalPages({ 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 ee2ce8cf8103b..db7a3cc3c9900 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 @@ -17,7 +17,9 @@ import { mockIndexNames, mockIndexPattern, TestProviders } from '../../../common 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'; jest.mock('../../containers/index', () => ({ useTimelineEvents: jest.fn(), @@ -63,6 +65,8 @@ jest.mock('../../../common/containers/sourcerer', () => { }); describe('StatefulTimeline', () => { const props: StatefulTimelineOwnProps = { + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, timelineId: TimelineId.test, }; 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 6d2374dd8eef7..367357511c9c8 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 @@ -14,6 +14,8 @@ import styled from 'styled-components'; import { timelineActions, timelineSelectors } from '../../store/timeline'; import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { defaultHeaders } from './body/column_headers/default_headers'; +import { RowRenderer } from './body/renderers/row_renderer'; +import { CellValueElementProps } from './cell_rendering'; import { isTab } from '../../../common/components/accessibility/helpers'; import { useSourcererScope } from '../../../common/containers/sourcerer'; import { SourcererScopeName } from '../../../common/store/sourcerer/model'; @@ -36,10 +38,12 @@ const TimelineTemplateBadge = styled.div` `; export interface Props { + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; timelineId: TimelineId; } -const TimelineSavingProgressComponent: React.FC = ({ timelineId }) => { +const TimelineSavingProgressComponent: React.FC<{ timelineId: TimelineId }> = ({ timelineId }) => { const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); const isSaving = useShallowEqualSelector( (state) => (getTimeline(state, timelineId) ?? timelineDefaults).isSaving @@ -50,7 +54,11 @@ const TimelineSavingProgressComponent: React.FC = ({ timelineId }) => { const TimelineSavingProgress = React.memo(TimelineSavingProgressComponent); -const StatefulTimelineComponent: React.FC = ({ timelineId }) => { +const StatefulTimelineComponent: React.FC = ({ + renderCellValue, + rowRenderers, + timelineId, +}) => { const dispatch = useDispatch(); const containerElement = useRef(null); const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); @@ -131,6 +139,8 @@ const StatefulTimelineComponent: React.FC = ({ timelineId }) => { { timelineId: TimelineId.test, itemsPerPage: 5, itemsPerPageOptions: [5, 10, 20], + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, sort, pinnedEventIds: {}, showExpandedDetails: false, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/pinned_tab_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/pinned_tab_content/index.tsx index a19a61d8268ff..dfc14747dacf3 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/pinned_tab_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/pinned_tab_content/index.tsx @@ -14,10 +14,12 @@ import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; import { timelineActions, timelineSelectors } from '../../../store/timeline'; +import { CellValueElementProps } from '../cell_rendering'; import { Direction } from '../../../../../common/search_strategy'; import { useTimelineEvents } from '../../../containers/index'; import { defaultHeaders } from '../body/column_headers/default_headers'; import { StatefulBody } from '../body'; +import { RowRenderer } from '../body/renderers/row_renderer'; import { Footer, footerHeight } from '../footer'; import { requiredFieldsForActions } from '../../../../detections/components/alerts_table/default_config'; import { EventDetailsWidthProvider } from '../../../../common/components/events_viewer/event_details_width_context'; @@ -87,6 +89,8 @@ const VerticalRule = styled.div` VerticalRule.displayName = 'VerticalRule'; interface OwnProps { + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; timelineId: string; } @@ -106,6 +110,8 @@ export const PinnedTabContentComponent: React.FC = ({ itemsPerPageOptions, pinnedEventIds, onEventClosed, + renderCellValue, + rowRenderers, showExpandedDetails, sort, }) => { @@ -217,6 +223,8 @@ export const PinnedTabContentComponent: React.FC = ({ data={events} id={timelineId} refetch={refetch} + renderCellValue={renderCellValue} + rowRenderers={rowRenderers} sort={sort} tabType={TimelineTabs.pinned} totalPages={calculateTotalPages({ diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/__snapshots__/index.test.tsx.snap index 0688a10b31eef..46c85f634ff6b 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/__snapshots__/index.test.tsx.snap @@ -276,6 +276,986 @@ In other use cases the message field can be used to concatenate different values kqlMode="search" kqlQueryExpression="" onEventClosed={[MockFunction]} + renderCellValue={[Function]} + rowRenderers={ + Array [ + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "auditd", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_dns", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "alerts", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "library", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "registry", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_fim", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_security_event", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_file", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system_socket", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "system", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "suricata", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "zeek", + "isInstance": [Function], + "renderRow": [Function], + }, + Object { + "id": "netflow", + "isInstance": [Function], + "renderRow": [Function], + }, + ] + } show={true} showCallOutUnauthorizedMsg={false} showExpandedDetails={false} diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.test.tsx index c7d27da64c650..ede473acbfb2a 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.test.tsx @@ -10,11 +10,13 @@ import React from 'react'; import useResizeObserver from 'use-resize-observer/polyfilled'; import { Direction } from '../../../../graphql/types'; +import { DefaultCellRenderer } from '../cell_rendering/default_cell_renderer'; import { defaultHeaders, mockTimelineData } from '../../../../common/mock'; import '../../../../common/mock/match_media'; import { TestProviders } from '../../../../common/mock/test_providers'; import { QueryTabContentComponent, Props as QueryTabContentComponentProps } from './index'; +import { defaultRowRenderers } from '../body/renderers'; import { Sort } from '../body/sort'; import { mockDataProviders } from '../data_providers/mock/mock_data_providers'; import { useMountAppended } from '../../../../common/utils/use_mount_appended'; @@ -106,6 +108,8 @@ describe('Timeline', () => { kqlMode: 'search' as QueryTabContentComponentProps['kqlMode'], kqlQueryExpression: '', onEventClosed: jest.fn(), + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, showCallOutUnauthorizedMsg: false, showExpandedDetails: false, sort, 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 28fec7ded9ca2..74a0f02354219 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 @@ -22,6 +22,8 @@ import deepEqual from 'fast-deep-equal'; import { InPortal } from 'react-reverse-portal'; import { timelineActions, timelineSelectors } from '../../../store/timeline'; +import { RowRenderer } from '../body/renderers/row_renderer'; +import { CellValueElementProps } from '../cell_rendering'; import { Direction, TimelineItem } from '../../../../../common/search_strategy'; import { useTimelineEvents } from '../../../containers/index'; import { useKibana } from '../../../../common/lib/kibana'; @@ -142,6 +144,8 @@ const compareQueryProps = (prevProps: Props, nextProps: Props) => deepEqual(prevProps.filters, nextProps.filters); interface OwnProps { + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; timelineId: string; } @@ -164,6 +168,8 @@ export const QueryTabContentComponent: React.FC = ({ kqlMode, kqlQueryExpression, onEventClosed, + renderCellValue, + rowRenderers, show, showCallOutUnauthorizedMsg, showExpandedDetails, @@ -330,6 +336,8 @@ export const QueryTabContentComponent: React.FC = ({ data={isBlankTimeline ? EMPTY_EVENTS : events} id={timelineId} refetch={refetch} + renderCellValue={renderCellValue} + rowRenderers={rowRenderers} sort={sort} tabType={TimelineTabs.query} totalPages={calculateTotalPages({ diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx index f29211d519841..76a2ad0960322 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx @@ -20,6 +20,8 @@ import { TimelineEventsCountBadge, } from '../../../../common/hooks/use_timeline_events_count'; import { timelineActions } from '../../../store/timeline'; +import { RowRenderer } from '../body/renderers/row_renderer'; +import { CellValueElementProps } from '../cell_rendering'; import { getActiveTabSelector, getNoteIdsSelector, @@ -46,6 +48,8 @@ const NotesTabContent = lazy(() => import('../notes_tab_content')); const PinnedTabContent = lazy(() => import('../pinned_tab_content')); interface BasicTimelineTab { + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; setTimelineFullScreen?: (fullScreen: boolean) => void; timelineFullScreen?: boolean; timelineId: TimelineId; @@ -53,16 +57,32 @@ interface BasicTimelineTab { graphEventId?: string; } -const QueryTab: React.FC<{ timelineId: TimelineId }> = memo(({ timelineId }) => ( +const QueryTab: React.FC<{ + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; + timelineId: TimelineId; +}> = memo(({ renderCellValue, rowRenderers, timelineId }) => ( }> - + )); QueryTab.displayName = 'QueryTab'; -const EqlTab: React.FC<{ timelineId: TimelineId }> = memo(({ timelineId }) => ( +const EqlTab: React.FC<{ + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; + timelineId: TimelineId; +}> = memo(({ renderCellValue, rowRenderers, timelineId }) => ( }> - + )); EqlTab.displayName = 'EqlTab'; @@ -81,9 +101,17 @@ const NotesTab: React.FC<{ timelineId: TimelineId }> = memo(({ timelineId }) => )); NotesTab.displayName = 'NotesTab'; -const PinnedTab: React.FC<{ timelineId: TimelineId }> = memo(({ timelineId }) => ( +const PinnedTab: React.FC<{ + renderCellValue: (props: CellValueElementProps) => React.ReactNode; + rowRenderers: RowRenderer[]; + timelineId: TimelineId; +}> = memo(({ renderCellValue, rowRenderers, timelineId }) => ( }> - + )); PinnedTab.displayName = 'PinnedTab'; @@ -91,7 +119,7 @@ PinnedTab.displayName = 'PinnedTab'; type ActiveTimelineTabProps = BasicTimelineTab & { activeTimelineTab: TimelineTabs }; const ActiveTimelineTab = memo( - ({ activeTimelineTab, timelineId, timelineType }) => { + ({ activeTimelineTab, renderCellValue, rowRenderers, timelineId, timelineType }) => { const getTab = useCallback( (tab: TimelineTabs) => { switch (tab) { @@ -119,14 +147,26 @@ const ActiveTimelineTab = memo( return ( <> - + - + {timelineType === TimelineType.default && ( - + )} @@ -160,6 +200,8 @@ const StyledEuiTab = styled(EuiTab)` `; const TabsContentComponent: React.FC = ({ + renderCellValue, + rowRenderers, timelineId, timelineFullScreen, timelineType, @@ -300,6 +342,8 @@ const TabsContentComponent: React.FC = ({ diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx index 3d92397f4ab50..0b70ba8991686 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic_local_storage.test.tsx @@ -30,11 +30,12 @@ import { updateItemsPerPage, updateSort, } from './actions'; - +import { DefaultCellRenderer } from '../../components/timeline/cell_rendering/default_cell_renderer'; import { QueryTabContentComponent, Props as QueryTabContentComponentProps, } from '../../components/timeline/query_tab_content'; +import { defaultRowRenderers } from '../../components/timeline/body/renderers'; import { mockDataProviders } from '../../components/timeline/data_providers/mock/mock_data_providers'; import { Sort } from '../../components/timeline/body/sort'; import { Direction } from '../../../graphql/types'; @@ -90,6 +91,8 @@ describe('epicLocalStorage', () => { kqlMode: 'search' as QueryTabContentComponentProps['kqlMode'], kqlQueryExpression: '', onEventClosed: jest.fn(), + renderCellValue: DefaultCellRenderer, + rowRenderers: defaultRowRenderers, showCallOutUnauthorizedMsg: false, showExpandedDetails: false, start: startDate, From 1fad3175f9526882f4eab02829d73b75194e6b4e Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Mon, 5 Apr 2021 13:42:46 -0400 Subject: [PATCH 095/106] [Maps] Safe-erase text-field (#94873) --- .../properties/dynamic_text_property.test.tsx | 109 ++++++++++++++++++ .../properties/dynamic_text_property.ts | 4 +- .../properties/static_text_property.test.ts | 70 +++++++++++ .../vector/properties/static_text_property.ts | 4 +- 4 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx create mode 100644 x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.test.ts diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx new file mode 100644 index 0000000000000..4550a27ac2d9a --- /dev/null +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.test.tsx @@ -0,0 +1,109 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +jest.mock('../components/vector_style_editor', () => ({ + VectorStyleEditor: () => { + return
mockVectorStyleEditor
; + }, +})); + +import React from 'react'; + +// @ts-ignore +import { DynamicTextProperty } from './dynamic_text_property'; +import { RawValue, VECTOR_STYLES } from '../../../../../common/constants'; +import { IField } from '../../../fields/field'; +import { Map as MbMap } from 'mapbox-gl'; +import { mockField, MockLayer, MockStyle } from './test_helpers/test_util'; +import { IVectorLayer } from '../../../layers/vector_layer'; + +export class MockMbMap { + _paintPropertyCalls: unknown[]; + _lastTextFieldValue: unknown | undefined; + + constructor(lastTextFieldValue?: unknown) { + this._paintPropertyCalls = []; + this._lastTextFieldValue = lastTextFieldValue; + } + setLayoutProperty(layerId: string, propName: string, value: undefined | 'string') { + if (propName !== 'text-field') { + throw new Error('should only use to test `text-field`'); + } + this._lastTextFieldValue = value; + this._paintPropertyCalls.push([layerId, value]); + } + + getLayoutProperty(layername: string, propName: string): unknown | undefined { + if (propName !== 'text-field') { + throw new Error('should only use to test `text-field`'); + } + return this._lastTextFieldValue; + } + + getPaintPropertyCalls(): unknown[] { + return this._paintPropertyCalls; + } +} + +const makeProperty = (mockStyle: MockStyle, field: IField | null) => { + return new DynamicTextProperty( + {}, + VECTOR_STYLES.LABEL_TEXT, + field, + (new MockLayer(mockStyle) as unknown) as IVectorLayer, + () => { + return (value: RawValue) => value + '_format'; + } + ); +}; + +describe('syncTextFieldWithMb', () => { + describe('with field', () => { + test('Should set', async () => { + const dynamicTextProperty = makeProperty(new MockStyle({ min: 0, max: 100 }), mockField); + const mockMbMap = (new MockMbMap() as unknown) as MbMap; + + dynamicTextProperty.syncTextFieldWithMb('foobar', mockMbMap); + + // @ts-expect-error + expect(mockMbMap.getPaintPropertyCalls()).toEqual([ + ['foobar', ['coalesce', ['get', '__kbn__dynamic__foobar__labelText'], '']], + ]); + }); + }); + + describe('without field', () => { + test('Should clear', async () => { + const dynamicTextProperty = makeProperty(new MockStyle({ min: 0, max: 100 }), null); + const mockMbMap = (new MockMbMap([ + 'foobar', + ['coalesce', ['get', '__kbn__dynamic__foobar__labelText'], ''], + ]) as unknown) as MbMap; + + dynamicTextProperty.syncTextFieldWithMb('foobar', mockMbMap); + + // @ts-expect-error + expect(mockMbMap.getPaintPropertyCalls()).toEqual([['foobar', undefined]]); + }); + + test('Should not clear when already cleared', async () => { + // This verifies a weird edge-case in mapbox-gl, where setting the `text-field` layout-property to null causes tiles to be invalidated. + // This triggers a refetch of the tile during panning and zooming + // This affects vector-tile rendering in tiled_vector_layers with custom vector_styles + // It does _not_ affect EMS, since that does not have a code-path where a `text-field` need to be resynced. + // Do not remove this logic without verifying that mapbox-gl does not re-issue tile-requests for previously requested tiles + + const dynamicTextProperty = makeProperty(new MockStyle({ min: 0, max: 100 }), null); + const mockMbMap = (new MockMbMap(undefined) as unknown) as MbMap; + + dynamicTextProperty.syncTextFieldWithMb('foobar', mockMbMap); + + // @ts-expect-error + expect(mockMbMap.getPaintPropertyCalls()).toEqual([]); + }); + }); +}); diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts index 22ea3067b1748..e8612388a5ae1 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.ts @@ -20,7 +20,9 @@ export class DynamicTextProperty extends DynamicStyleProperty { + return new StaticTextProperty({ value }, VECTOR_STYLES.LABEL_TEXT); +}; + +describe('syncTextFieldWithMb', () => { + test('Should set with value', async () => { + const dynamicTextProperty = makeProperty('foo'); + const mockMbMap = (new MockMbMap() as unknown) as MbMap; + + dynamicTextProperty.syncTextFieldWithMb('foobar', mockMbMap); + + // @ts-expect-error + expect(mockMbMap.getPaintPropertyCalls()).toEqual([['foobar', 'foo']]); + }); + + test('Should not clear when already cleared', async () => { + // This verifies a weird edge-case in mapbox-gl, where setting the `text-field` layout-property to null causes tiles to be invalidated. + // This triggers a refetch of the tile during panning and zooming + // This affects vector-tile rendering in tiled_vector_layers with custom vector_styles + // It does _not_ affect EMS, since that does not have a code-path where a `text-field` need to be resynced. + // Do not remove this logic without verifying that mapbox-gl does not re-issue tile-requests for previously requested tiles + + const dynamicTextProperty = makeProperty(''); + const mockMbMap = (new MockMbMap(undefined) as unknown) as MbMap; + + dynamicTextProperty.syncTextFieldWithMb('foobar', mockMbMap); + + // @ts-expect-error + expect(mockMbMap.getPaintPropertyCalls()).toEqual([]); + }); +}); diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts index b0016106b8c31..fb05fa052db21 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.ts @@ -18,7 +18,9 @@ export class StaticTextProperty extends StaticStyleProperty if (this.getOptions().value.length) { mbMap.setLayoutProperty(mbLayerId, 'text-field', this.getOptions().value); } else { - mbMap.setLayoutProperty(mbLayerId, 'text-field', null); + if (typeof mbMap.getLayoutProperty(mbLayerId, 'text-field') !== 'undefined') { + mbMap.setLayoutProperty(mbLayerId, 'text-field', undefined); + } } } } From ad5f83a36230abeff79d01bfff0a104f5fd615d2 Mon Sep 17 00:00:00 2001 From: Jason Stoltzfus Date: Mon, 5 Apr 2021 13:49:54 -0400 Subject: [PATCH 096/106] [App Search] Added Sample Response section to Result Settings (#95971) --- .../result_settings/result_settings.tsx | 4 +- .../non_text_fields_body.tsx | 5 + .../text_fields_body.tsx | 13 ++ .../result_settings/sample_response/index.ts | 8 + .../sample_response/sample_response.test.tsx | 75 ++++++ .../sample_response/sample_response.tsx | 72 ++++++ .../sample_response_logic.test.ts | 214 ++++++++++++++++++ .../sample_response/sample_response_logic.ts | 100 ++++++++ .../components/result_settings/types.ts | 4 + .../routes/app_search/result_settings.test.ts | 44 ++++ .../routes/app_search/result_settings.ts | 18 ++ 11 files changed, 556 insertions(+), 1 deletion(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/index.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.test.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.ts diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings.tsx index 38db5c60e98a9..7f4373835f8d5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings.tsx @@ -17,6 +17,8 @@ import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chro import { RESULT_SETTINGS_TITLE } from './constants'; import { ResultSettingsTable } from './result_settings_table'; +import { SampleResponse } from './sample_response'; + import { ResultSettingsLogic } from '.'; interface Props { @@ -40,7 +42,7 @@ export const ResultSettings: React.FC = ({ engineBreadcrumb }) => { -
TODO
+
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx index 145654be20461..dc91b5039a3c9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/result_settings_table/non_text_fields_body.tsx @@ -10,6 +10,7 @@ import React, { useMemo } from 'react'; import { useValues, useActions } from 'kea'; import { EuiTableRow, EuiTableRowCell, EuiCheckbox, EuiTableRowCellCheckbox } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { ResultSettingsLogic } from '..'; import { FieldResultSetting } from '../types'; @@ -33,6 +34,10 @@ export const NonTextFieldsBody: React.FC = () => { { { { { + const actions = { + queryChanged: jest.fn(), + getSearchResults: jest.fn(), + }; + + const values = { + reducedServerResultFields: {}, + query: 'foo', + response: { + bar: 'baz', + }, + }; + + beforeEach(() => { + jest.clearAllMocks(); + setMockActions(actions); + setMockValues(values); + }); + + it('renders a text box with the current user "query" value from state', () => { + const wrapper = shallow(); + expect(wrapper.find(EuiFieldSearch).prop('value')).toEqual('foo'); + }); + + it('updates the "query" value in state when a user updates the text in the text box', () => { + const wrapper = shallow(); + wrapper.find(EuiFieldSearch).simulate('change', { target: { value: 'bar' } }); + expect(actions.queryChanged).toHaveBeenCalledWith('bar'); + }); + + it('will call getSearchResults with the current value of query and reducedServerResultFields in a useEffect, which updates the displayed response', () => { + const wrapper = shallow(); + expect(wrapper.find(EuiFieldSearch).prop('value')).toEqual('foo'); + }); + + it('renders the response from the given user "query" in a code block', () => { + const wrapper = shallow(); + expect(wrapper.find(EuiCodeBlock).prop('children')).toEqual('{\n "bar": "baz"\n}'); + }); + + it('renders a plain old string in the code block if the response is a string', () => { + setMockValues({ + response: 'No results.', + }); + const wrapper = shallow(); + expect(wrapper.find(EuiCodeBlock).prop('children')).toEqual('No results.'); + }); + + it('will not render a code block at all if there is no response yet', () => { + setMockValues({ + response: null, + }); + const wrapper = shallow(); + expect(wrapper.find(EuiCodeBlock).exists()).toEqual(false); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response.tsx new file mode 100644 index 0000000000000..ae91b9648356c --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response.tsx @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useEffect } from 'react'; + +import { useActions, useValues } from 'kea'; + +import { + EuiCodeBlock, + EuiFieldSearch, + EuiFlexGroup, + EuiFlexItem, + EuiPanel, + EuiSpacer, + EuiTitle, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +import { ResultSettingsLogic } from '../result_settings_logic'; + +import { SampleResponseLogic } from './sample_response_logic'; + +export const SampleResponse: React.FC = () => { + const { reducedServerResultFields } = useValues(ResultSettingsLogic); + + const { query, response } = useValues(SampleResponseLogic); + const { queryChanged, getSearchResults } = useActions(SampleResponseLogic); + + useEffect(() => { + getSearchResults(query, reducedServerResultFields); + }, [query, reducedServerResultFields]); + + return ( + + + + +

+ {i18n.translate( + 'xpack.enterpriseSearch.appSearch.engine.resultSettings.sampleResponseTitle', + { defaultMessage: 'Sample response' } + )} +

+
+
+ + {/* TODO */} + +
+ + queryChanged(e.target.value)} + placeholder={i18n.translate( + 'xpack.enterpriseSearch.appSearch.engine.resultSettings.sampleResponse.inputPlaceholder', + { defaultMessage: 'Type a search query to test a response...' } + )} + data-test-subj="ResultSettingsQuerySampleResponse" + /> + + {!!response && ( + + {typeof response === 'string' ? response : JSON.stringify(response, null, 2)} + + )} +
+ ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.test.ts new file mode 100644 index 0000000000000..79379306c1618 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.test.ts @@ -0,0 +1,214 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { LogicMounter, mockHttpValues } from '../../../../__mocks__'; +import '../../../__mocks__/engine_logic.mock'; + +import { nextTick } from '@kbn/test/jest'; + +import { flashAPIErrors } from '../../../../shared/flash_messages'; + +import { SampleResponseLogic } from './sample_response_logic'; + +describe('SampleResponseLogic', () => { + const { mount } = new LogicMounter(SampleResponseLogic); + const { http } = mockHttpValues; + + const DEFAULT_VALUES = { + query: '', + response: null, + }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('has expected default values', () => { + mount(); + expect(SampleResponseLogic.values).toEqual({ + ...DEFAULT_VALUES, + }); + }); + + describe('actions', () => { + describe('queryChanged', () => { + it('updates the query', () => { + mount({ + query: '', + }); + + SampleResponseLogic.actions.queryChanged('foo'); + + expect(SampleResponseLogic.values).toEqual({ + ...DEFAULT_VALUES, + query: 'foo', + }); + }); + }); + + describe('getSearchResultsSuccess', () => { + it('sets the response from a search API request', () => { + mount({ + response: null, + }); + + SampleResponseLogic.actions.getSearchResultsSuccess({}); + + expect(SampleResponseLogic.values).toEqual({ + ...DEFAULT_VALUES, + response: {}, + }); + }); + }); + + describe('getSearchResultsFailure', () => { + it('sets a string response from a search API request', () => { + mount({ + response: null, + }); + + SampleResponseLogic.actions.getSearchResultsFailure('An error occured.'); + + expect(SampleResponseLogic.values).toEqual({ + ...DEFAULT_VALUES, + response: 'An error occured.', + }); + }); + }); + }); + + describe('listeners', () => { + describe('getSearchResults', () => { + beforeAll(() => jest.useFakeTimers()); + afterAll(() => jest.useRealTimers()); + + it('makes a search API request and calls getSearchResultsSuccess with the first result of the response', async () => { + mount(); + jest.spyOn(SampleResponseLogic.actions, 'getSearchResultsSuccess'); + + http.post.mockReturnValue( + Promise.resolve({ + results: [ + { id: { raw: 'foo' }, _meta: {} }, + { id: { raw: 'bar' }, _meta: {} }, + { id: { raw: 'baz' }, _meta: {} }, + ], + }) + ); + + SampleResponseLogic.actions.getSearchResults('foo', { foo: { raw: true } }); + jest.runAllTimers(); + await nextTick(); + + expect(SampleResponseLogic.actions.getSearchResultsSuccess).toHaveBeenCalledWith({ + // Note that the _meta field was stripped from the result + id: { raw: 'foo' }, + }); + }); + + it('calls getSearchResultsSuccess with a "No Results." message if there are no results', async () => { + mount(); + jest.spyOn(SampleResponseLogic.actions, 'getSearchResultsSuccess'); + + http.post.mockReturnValue( + Promise.resolve({ + results: [], + }) + ); + + SampleResponseLogic.actions.getSearchResults('foo', { foo: { raw: true } }); + jest.runAllTimers(); + await nextTick(); + + expect(SampleResponseLogic.actions.getSearchResultsSuccess).toHaveBeenCalledWith( + 'No results.' + ); + }); + + it('handles 500 errors by setting a generic error response and showing a flash message error', async () => { + mount(); + jest.spyOn(SampleResponseLogic.actions, 'getSearchResultsFailure'); + + const error = { + response: { + status: 500, + }, + }; + + http.post.mockReturnValueOnce(Promise.reject(error)); + + SampleResponseLogic.actions.getSearchResults('foo', { foo: { raw: true } }); + jest.runAllTimers(); + await nextTick(); + + expect(flashAPIErrors).toHaveBeenCalledWith(error); + expect(SampleResponseLogic.actions.getSearchResultsFailure).toHaveBeenCalledWith( + 'An error occured.' + ); + }); + + it('handles 400 errors by setting the response, but does not show a flash error message', async () => { + mount(); + jest.spyOn(SampleResponseLogic.actions, 'getSearchResultsFailure'); + + http.post.mockReturnValueOnce( + Promise.reject({ + response: { + status: 400, + }, + body: { + attributes: { + errors: ['A validation error occurred.'], + }, + }, + }) + ); + + SampleResponseLogic.actions.getSearchResults('foo', { foo: { raw: true } }); + jest.runAllTimers(); + await nextTick(); + + expect(SampleResponseLogic.actions.getSearchResultsFailure).toHaveBeenCalledWith({ + errors: ['A validation error occurred.'], + }); + }); + + it('sets a generic message on a 400 error if no custom message is provided in the response', async () => { + mount(); + jest.spyOn(SampleResponseLogic.actions, 'getSearchResultsFailure'); + + http.post.mockReturnValueOnce( + Promise.reject({ + response: { + status: 400, + }, + }) + ); + + SampleResponseLogic.actions.getSearchResults('foo', { foo: { raw: true } }); + jest.runAllTimers(); + await nextTick(); + + expect(SampleResponseLogic.actions.getSearchResultsFailure).toHaveBeenCalledWith( + 'An error occured.' + ); + }); + + it('does nothing if an empty object is passed for the resultFields parameter', async () => { + mount(); + jest.spyOn(SampleResponseLogic.actions, 'getSearchResultsSuccess'); + + SampleResponseLogic.actions.getSearchResults('foo', {}); + + jest.runAllTimers(); + await nextTick(); + + expect(SampleResponseLogic.actions.getSearchResultsSuccess).not.toHaveBeenCalled(); + }); + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.ts new file mode 100644 index 0000000000000..808a7ec9c65dc --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/sample_response/sample_response_logic.ts @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { kea, MakeLogicType } from 'kea'; + +import { i18n } from '@kbn/i18n'; + +import { flashAPIErrors } from '../../../../shared/flash_messages'; + +import { HttpLogic } from '../../../../shared/http'; +import { EngineLogic } from '../../engine'; + +import { SampleSearchResponse, ServerFieldResultSettingObject } from '../types'; + +const NO_RESULTS_MESSAGE = i18n.translate( + 'xpack.enterpriseSearch.appSearch.engine.resultSettings.sampleResponse.noResultsMessage', + { defaultMessage: 'No results.' } +); + +const ERROR_MESSAGE = i18n.translate( + 'xpack.enterpriseSearch.appSearch.engine.resultSettings.sampleResponse.errorMessage', + { defaultMessage: 'An error occured.' } +); + +interface SampleResponseValues { + query: string; + response: SampleSearchResponse | string | null; +} + +interface SampleResponseActions { + queryChanged: (query: string) => { query: string }; + getSearchResultsSuccess: ( + response: SampleSearchResponse | string + ) => { response: SampleSearchResponse | string }; + getSearchResultsFailure: (response: string) => { response: string }; + getSearchResults: ( + query: string, + resultFields: ServerFieldResultSettingObject + ) => { query: string; resultFields: ServerFieldResultSettingObject }; +} + +export const SampleResponseLogic = kea>({ + path: ['enterprise_search', 'app_search', 'sample_response_logic'], + actions: { + queryChanged: (query) => ({ query }), + getSearchResultsSuccess: (response) => ({ response }), + getSearchResultsFailure: (response) => ({ response }), + getSearchResults: (query, resultFields) => ({ query, resultFields }), + }, + reducers: { + query: ['', { queryChanged: (_, { query }) => query }], + response: [ + null, + { + getSearchResultsSuccess: (_, { response }) => response, + getSearchResultsFailure: (_, { response }) => response, + }, + ], + }, + listeners: ({ actions }) => ({ + getSearchResults: async ({ query, resultFields }, breakpoint) => { + if (Object.keys(resultFields).length < 1) return; + await breakpoint(250); + + const { http } = HttpLogic.values; + const { engineName } = EngineLogic.values; + + const url = `/api/app_search/engines/${engineName}/sample_response_search`; + + try { + const response = await http.post(url, { + body: JSON.stringify({ + query, + result_fields: resultFields, + }), + }); + + const result = response.results?.[0]; + actions.getSearchResultsSuccess( + result ? { ...result, _meta: undefined } : NO_RESULTS_MESSAGE + ); + } catch (e) { + if (e.response.status >= 500) { + // 4XX Validation errors are expected, as a user could enter something like 2 as a size, which is out of valid range. + // In this case, we simply render the message from the server as the response. + // + // 5xx Server errors are unexpected, and need to be reported in a flash message. + flashAPIErrors(e); + actions.getSearchResultsFailure(ERROR_MESSAGE); + } else { + actions.getSearchResultsFailure(e.body?.attributes || ERROR_MESSAGE); + } + } + }, + }), +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/types.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/types.ts index 96bf277314a7b..18843112f46bf 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/types.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/types.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { FieldValue } from '../result/types'; + export enum OpenModal { None, ConfirmResetModal, @@ -35,3 +37,5 @@ export interface FieldResultSetting { } export type FieldResultSettingObject = Record; + +export type SampleSearchResponse = Record; diff --git a/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.test.ts b/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.test.ts index 8d1a7e3ead37b..e38380d60c6e9 100644 --- a/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.test.ts +++ b/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.test.ts @@ -88,4 +88,48 @@ describe('result settings routes', () => { }); }); }); + + describe('POST /api/app_search/engines/{name}/sample_response_search', () => { + const mockRouter = new MockRouter({ + method: 'post', + path: '/api/app_search/engines/{engineName}/sample_response_search', + }); + + beforeEach(() => { + registerResultSettingsRoutes({ + ...mockDependencies, + router: mockRouter.router, + }); + }); + + it('creates a request to enterprise search', () => { + mockRouter.callRoute({ + params: { engineName: 'some-engine' }, + body: { + query: 'test', + result_fields: resultFields, + }, + }); + + expect(mockRequestHandler.createRequest).toHaveBeenCalledWith({ + path: '/as/engines/:engineName/sample_response_search', + }); + }); + + describe('validates', () => { + it('correctly', () => { + const request = { + body: { + query: 'test', + result_fields: resultFields, + }, + }; + mockRouter.shouldValidate(request); + }); + it('missing required fields', () => { + const request = { body: {} }; + mockRouter.shouldThrow(request); + }); + }); + }); }); diff --git a/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.ts b/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.ts index 38cb4aa922738..b091ae7a539c2 100644 --- a/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.ts +++ b/x-pack/plugins/enterprise_search/server/routes/app_search/result_settings.ts @@ -45,4 +45,22 @@ export function registerResultSettingsRoutes({ path: '/as/engines/:engineName/result_settings', }) ); + + router.post( + { + path: '/api/app_search/engines/{engineName}/sample_response_search', + validate: { + params: schema.object({ + engineName: schema.string(), + }), + body: schema.object({ + query: schema.string(), + result_fields: schema.recordOf(schema.string(), schema.object({}, { unknowns: 'allow' })), + }), + }, + }, + enterpriseSearchRequestHandler.createRequest({ + path: '/as/engines/:engineName/sample_response_search', + }) + ); } From e457f212c4e513b467fc9fd540b76d4a6949111f Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Mon, 5 Apr 2021 20:59:26 +0200 Subject: [PATCH 097/106] Revert "TS Incremental build exclude test files (#95610)" (#96223) This reverts commit b6e582c53ebb9c496c232408066b128d2ca2f92c. --- packages/kbn-storybook/tsconfig.json | 2 +- src/core/tsconfig.json | 2 +- src/dev/typescript/project.ts | 37 ++------ src/plugins/advanced_settings/tsconfig.json | 2 +- src/plugins/apm_oss/tsconfig.json | 2 +- src/plugins/bfetch/tsconfig.json | 2 +- src/plugins/charts/tsconfig.json | 2 +- src/plugins/console/tsconfig.json | 2 +- src/plugins/dashboard/tsconfig.json | 2 +- .../search/expressions/exists_filter.test.ts | 2 +- .../search/expressions/kibana_filter.test.ts | 2 +- .../search/expressions/phrase_filter.test.ts | 2 +- .../search/expressions/range_filter.test.ts | 2 +- src/plugins/data/tsconfig.json | 2 +- src/plugins/dev_tools/tsconfig.json | 2 +- src/plugins/discover/tsconfig.json | 2 +- src/plugins/embeddable/tsconfig.json | 2 +- src/plugins/es_ui_shared/tsconfig.json | 2 +- src/plugins/expressions/common/mocks.ts | 2 - src/plugins/expressions/common/util/index.ts | 1 + src/plugins/expressions/tsconfig.json | 2 +- src/plugins/home/tsconfig.json | 2 +- .../index_pattern_field_editor/tsconfig.json | 2 +- .../index_pattern_management/tsconfig.json | 2 +- src/plugins/input_control_vis/tsconfig.json | 2 +- src/plugins/inspector/tsconfig.json | 2 +- src/plugins/kibana_legacy/tsconfig.json | 2 +- src/plugins/kibana_overview/tsconfig.json | 2 +- src/plugins/kibana_react/tsconfig.json | 2 +- .../kibana_usage_collection/tsconfig.json | 2 +- src/plugins/kibana_utils/tsconfig.json | 2 +- src/plugins/legacy_export/tsconfig.json | 2 +- src/plugins/management/tsconfig.json | 2 +- src/plugins/maps_ems/tsconfig.json | 2 +- src/plugins/maps_legacy/tsconfig.json | 2 +- src/plugins/navigation/tsconfig.json | 2 +- src/plugins/newsfeed/tsconfig.json | 2 +- src/plugins/presentation_util/tsconfig.json | 2 +- src/plugins/region_map/tsconfig.json | 2 +- src/plugins/saved_objects/tsconfig.json | 2 +- .../saved_objects_management/tsconfig.json | 2 +- .../saved_objects_tagging_oss/tsconfig.json | 2 +- src/plugins/security_oss/tsconfig.json | 2 +- src/plugins/share/tsconfig.json | 2 +- src/plugins/spaces_oss/tsconfig.json | 2 +- src/plugins/telemetry/tsconfig.json | 2 +- .../tsconfig.json | 2 +- .../tsconfig.json | 2 +- src/plugins/tile_map/tsconfig.json | 2 +- src/plugins/timelion/tsconfig.json | 2 +- src/plugins/ui_actions/tsconfig.json | 2 +- src/plugins/url_forwarding/tsconfig.json | 2 +- src/plugins/usage_collection/tsconfig.json | 2 +- src/plugins/vis_default_editor/tsconfig.json | 2 +- src/plugins/vis_type_markdown/tsconfig.json | 2 +- src/plugins/vis_type_metric/tsconfig.json | 2 +- src/plugins/vis_type_table/tsconfig.json | 2 +- src/plugins/vis_type_tagcloud/tsconfig.json | 2 +- src/plugins/vis_type_timelion/tsconfig.json | 2 +- src/plugins/vis_type_timeseries/tsconfig.json | 2 +- src/plugins/vis_type_vega/tsconfig.json | 2 +- src/plugins/vis_type_vislib/tsconfig.json | 2 +- src/plugins/vis_type_xy/tsconfig.json | 2 +- src/plugins/visualizations/tsconfig.json | 2 +- src/plugins/visualize/tsconfig.json | 2 +- tsconfig.base.json | 3 +- tsconfig.json | 73 ---------------- tsconfig.project.json | 65 -------------- x-pack/plugins/actions/tsconfig.json | 2 +- x-pack/plugins/alerting/tsconfig.json | 2 +- x-pack/plugins/apm/e2e/tsconfig.json | 2 +- x-pack/plugins/apm/ftr_e2e/tsconfig.json | 4 +- .../apm/scripts/optimize-tsconfig/optimize.js | 2 +- .../apm/scripts/optimize-tsconfig/paths.js | 2 +- x-pack/plugins/apm/tsconfig.json | 2 +- x-pack/plugins/banners/tsconfig.json | 2 +- x-pack/plugins/beats_management/tsconfig.json | 2 +- .../canvas/storybook/addon/tsconfig.json | 2 +- x-pack/plugins/canvas/tsconfig.json | 2 +- x-pack/plugins/cloud/tsconfig.json | 2 +- .../plugins/console_extensions/tsconfig.json | 2 +- .../cross_cluster_replication/tsconfig.json | 2 +- .../plugins/dashboard_enhanced/tsconfig.json | 2 +- x-pack/plugins/dashboard_mode/tsconfig.json | 2 +- x-pack/plugins/data_enhanced/tsconfig.json | 2 +- .../plugins/discover_enhanced/tsconfig.json | 2 +- .../drilldowns/url_drilldown/tsconfig.json | 2 +- .../plugins/embeddable_enhanced/tsconfig.json | 2 +- .../encrypted_saved_objects/tsconfig.json | 2 +- .../plugins/enterprise_search/tsconfig.json | 2 +- x-pack/plugins/event_log/tsconfig.json | 2 +- x-pack/plugins/features/tsconfig.json | 2 +- x-pack/plugins/file_upload/tsconfig.json | 2 +- x-pack/plugins/fleet/tsconfig.json | 2 +- x-pack/plugins/global_search/tsconfig.json | 2 +- .../plugins/global_search_bar/tsconfig.json | 2 +- .../global_search_providers/tsconfig.json | 2 +- x-pack/plugins/graph/tsconfig.json | 4 +- x-pack/plugins/grokdebugger/tsconfig.json | 2 +- .../index_lifecycle_management/tsconfig.json | 3 +- x-pack/plugins/index_management/tsconfig.json | 4 +- .../infra/public/utils/enzyme_helpers.tsx | 87 +++++++++++++++++++ .../queries/metrics_hosts_anomalies.ts | 2 +- .../infra_ml/queries/metrics_k8s_anomalies.ts | 2 +- x-pack/plugins/infra/tsconfig.json | 2 +- x-pack/plugins/ingest_pipelines/tsconfig.json | 3 +- x-pack/plugins/lens/tsconfig.json | 4 +- .../plugins/license_management/tsconfig.json | 2 +- x-pack/plugins/licensing/tsconfig.json | 2 +- x-pack/plugins/logstash/tsconfig.json | 2 +- .../components/validated_number_input.tsx | 4 +- x-pack/plugins/maps/tsconfig.json | 2 +- .../routes/apidoc_scripts/tsconfig.json | 2 +- x-pack/plugins/ml/tsconfig.json | 2 +- x-pack/plugins/monitoring/tsconfig.json | 2 +- x-pack/plugins/observability/tsconfig.json | 2 +- x-pack/plugins/osquery/tsconfig.json | 2 +- x-pack/plugins/painless_lab/tsconfig.json | 2 +- x-pack/plugins/remote_clusters/tsconfig.json | 2 +- x-pack/plugins/reporting/tsconfig.json | 2 +- x-pack/plugins/rollup/tsconfig.json | 2 +- x-pack/plugins/runtime_fields/tsconfig.json | 2 +- .../saved_objects_tagging/tsconfig.json | 2 +- x-pack/plugins/searchprofiler/tsconfig.json | 2 +- x-pack/plugins/security/tsconfig.json | 2 +- .../security_solution/cypress/tsconfig.json | 2 +- x-pack/plugins/snapshot_restore/tsconfig.json | 4 +- x-pack/plugins/spaces/tsconfig.json | 2 +- x-pack/plugins/stack_alerts/tsconfig.json | 2 +- .../server/monitoring/workload_statistics.ts | 3 +- x-pack/plugins/task_manager/tsconfig.json | 2 +- .../telemetry_collection_xpack/tsconfig.json | 2 +- x-pack/plugins/transform/tsconfig.json | 2 +- .../plugins/triggers_actions_ui/tsconfig.json | 2 +- .../plugins/ui_actions_enhanced/tsconfig.json | 2 +- .../plugins/upgrade_assistant/tsconfig.json | 2 +- .../certificates/cert_monitors.test.tsx | 2 +- .../certificates/cert_search.test.tsx | 2 +- .../certificates/cert_status.test.tsx | 2 +- .../certificates/certificates_list.test.tsx | 2 +- .../certificates/fingerprint_col.test.tsx | 2 +- .../common/charts/duration_charts.test.tsx | 2 +- .../common/charts/monitor_bar_series.test.tsx | 3 +- .../common/header/page_header.test.tsx | 2 +- .../components/common/monitor_tags.test.tsx | 2 +- .../common/uptime_date_picker.test.tsx | 4 +- .../monitor/ml/ml_integerations.test.tsx | 2 +- .../monitor/ml/ml_manage_job.test.tsx | 2 +- .../monitor/monitor_charts.test.tsx | 2 +- .../components/monitor/monitor_title.test.tsx | 2 +- .../monitor_status.bar.test.tsx | 2 +- .../status_details/ssl_certificate.test.tsx | 6 +- .../overview/empty_state/empty_state.test.tsx | 2 +- .../columns/enable_alert.test.tsx | 2 +- .../filter_status_button.test.tsx | 3 +- .../monitor_list/monitor_list.test.tsx | 2 +- .../monitor_list_drawer.test.tsx | 2 +- .../monitor_list/status_filter.test.tsx | 4 +- .../settings/certificate_form.test.tsx | 2 +- .../components/settings/indices_form.test.tsx | 2 +- .../public/hooks/use_breadcrumbs.test.tsx | 5 +- .../public/hooks/use_url_params.test.tsx | 3 +- .../plugins/uptime/public/lib/helper/index.ts | 1 + x-pack/plugins/uptime/public/lib/index.ts | 9 ++ .../uptime/public/pages/certificates.test.tsx | 2 +- .../uptime/public/pages/monitor.test.tsx | 2 +- .../uptime/public/pages/not_found.test.tsx | 2 +- .../uptime/public/pages/overview.test.tsx | 2 +- x-pack/plugins/uptime/tsconfig.json | 3 +- x-pack/plugins/watcher/tsconfig.json | 2 +- x-pack/plugins/xpack_legacy/tsconfig.json | 2 +- 171 files changed, 281 insertions(+), 351 deletions(-) delete mode 100644 tsconfig.project.json create mode 100644 x-pack/plugins/infra/public/utils/enzyme_helpers.tsx create mode 100644 x-pack/plugins/uptime/public/lib/index.ts diff --git a/packages/kbn-storybook/tsconfig.json b/packages/kbn-storybook/tsconfig.json index 5c81c9100e601..db10d4630ff9c 100644 --- a/packages/kbn-storybook/tsconfig.json +++ b/packages/kbn-storybook/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../tsconfig.json", "compilerOptions": { "incremental": false, "outDir": "target", diff --git a/src/core/tsconfig.json b/src/core/tsconfig.json index f19e379482d3c..855962070457e 100644 --- a/src/core/tsconfig.json +++ b/src/core/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.project.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/dev/typescript/project.ts b/src/dev/typescript/project.ts index 04a5de945619b..8d92284e49637 100644 --- a/src/dev/typescript/project.ts +++ b/src/dev/typescript/project.ts @@ -7,7 +7,7 @@ */ import { basename, dirname, relative, resolve } from 'path'; -import { memoize } from 'lodash'; + import { IMinimatch, Minimatch } from 'minimatch'; import { REPO_ROOT } from '@kbn/utils'; @@ -26,10 +26,6 @@ function testMatchers(matchers: IMinimatch[], path: string) { return matchers.some((matcher) => matcher.match(path)); } -const parentProjectFactory = memoize(function (parentConfigPath: string) { - return new Project(parentConfigPath); -}); - export class Project { public directory: string; public name: string; @@ -38,7 +34,6 @@ export class Project { private readonly include: IMinimatch[]; private readonly exclude: IMinimatch[]; - private readonly parent?: Project; constructor( public tsConfigPath: string, @@ -46,16 +41,15 @@ export class Project { ) { this.config = parseTsConfig(tsConfigPath); - const { files, include, exclude = [], extends: extendsPath } = this.config as { + const { files, include, exclude = [] } = this.config as { files?: string[]; include?: string[]; exclude?: string[]; - extends?: string; }; if (files || !include) { throw new Error( - `[${tsConfigPath}]: tsconfig.json files in the Kibana repo must use "include" keys and not "files"` + 'tsconfig.json files in the Kibana repo must use "include" keys and not "files"' ); } @@ -64,30 +58,9 @@ export class Project { this.name = options.name || relative(REPO_ROOT, this.directory) || basename(this.directory); this.include = makeMatchers(this.directory, include); this.exclude = makeMatchers(this.directory, exclude); - - if (extendsPath !== undefined) { - const parentConfigPath = resolve(this.directory, extendsPath); - this.parent = parentProjectFactory(parentConfigPath); - } - } - - public isAbsolutePathSelected(path: string): boolean { - return this.isExcluded(path) ? false : this.isIncluded(path); } - public isExcluded(path: string): boolean { - if (testMatchers(this.exclude, path)) return true; - if (this.parent) { - return this.parent.isExcluded(path); - } - return false; - } - - public isIncluded(path: string): boolean { - if (testMatchers(this.include, path)) return true; - if (this.parent) { - return this.parent.isIncluded(path); - } - return false; + public isAbsolutePathSelected(path: string) { + return testMatchers(this.exclude, path) ? false : testMatchers(this.include, path); } } diff --git a/src/plugins/advanced_settings/tsconfig.json b/src/plugins/advanced_settings/tsconfig.json index 97a855959903d..4d62e410326b6 100644 --- a/src/plugins/advanced_settings/tsconfig.json +++ b/src/plugins/advanced_settings/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/apm_oss/tsconfig.json b/src/plugins/apm_oss/tsconfig.json index ccb123aaec83b..aeb6837c69a99 100644 --- a/src/plugins/apm_oss/tsconfig.json +++ b/src/plugins/apm_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/bfetch/tsconfig.json b/src/plugins/bfetch/tsconfig.json index 6c01479f1929e..173ff725d07d0 100644 --- a/src/plugins/bfetch/tsconfig.json +++ b/src/plugins/bfetch/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/charts/tsconfig.json b/src/plugins/charts/tsconfig.json index 99edb2ffe3c16..a4f65d5937204 100644 --- a/src/plugins/charts/tsconfig.json +++ b/src/plugins/charts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/console/tsconfig.json b/src/plugins/console/tsconfig.json index d9f49036be8f8..34aca5021bac4 100644 --- a/src/plugins/console/tsconfig.json +++ b/src/plugins/console/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/dashboard/tsconfig.json b/src/plugins/dashboard/tsconfig.json index 452208b39af60..dd99119cfb457 100644 --- a/src/plugins/dashboard/tsconfig.json +++ b/src/plugins/dashboard/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/data/common/search/expressions/exists_filter.test.ts b/src/plugins/data/common/search/expressions/exists_filter.test.ts index 60e8a9c7a09ce..e3b53b2281398 100644 --- a/src/plugins/data/common/search/expressions/exists_filter.test.ts +++ b/src/plugins/data/common/search/expressions/exists_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common/mocks'; +import { createMockContext } from '../../../../expressions/common'; import { functionWrapper } from './utils'; import { existsFilterFunction } from './exists_filter'; diff --git a/src/plugins/data/common/search/expressions/kibana_filter.test.ts b/src/plugins/data/common/search/expressions/kibana_filter.test.ts index 56a9e1ce660cd..ac8ae55492cc0 100644 --- a/src/plugins/data/common/search/expressions/kibana_filter.test.ts +++ b/src/plugins/data/common/search/expressions/kibana_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common/mocks'; +import { createMockContext } from '../../../../expressions/common'; import { functionWrapper } from './utils'; import { kibanaFilterFunction } from './kibana_filter'; diff --git a/src/plugins/data/common/search/expressions/phrase_filter.test.ts b/src/plugins/data/common/search/expressions/phrase_filter.test.ts index 90e471e166f5e..39bd907513a0d 100644 --- a/src/plugins/data/common/search/expressions/phrase_filter.test.ts +++ b/src/plugins/data/common/search/expressions/phrase_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common/mocks'; +import { createMockContext } from '../../../../expressions/common'; import { functionWrapper } from './utils'; import { phraseFilterFunction } from './phrase_filter'; diff --git a/src/plugins/data/common/search/expressions/range_filter.test.ts b/src/plugins/data/common/search/expressions/range_filter.test.ts index 129e6bd82e16a..92670f8a044ba 100644 --- a/src/plugins/data/common/search/expressions/range_filter.test.ts +++ b/src/plugins/data/common/search/expressions/range_filter.test.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { createMockContext } from '../../../../expressions/common/mocks'; +import { createMockContext } from '../../../../expressions/common'; import { functionWrapper } from './utils'; import { rangeFilterFunction } from './range_filter'; diff --git a/src/plugins/data/tsconfig.json b/src/plugins/data/tsconfig.json index b99a2f6f85904..9c95878af631e 100644 --- a/src/plugins/data/tsconfig.json +++ b/src/plugins/data/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/dev_tools/tsconfig.json b/src/plugins/dev_tools/tsconfig.json index f369396b17fbe..c17b2341fd42f 100644 --- a/src/plugins/dev_tools/tsconfig.json +++ b/src/plugins/dev_tools/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/discover/tsconfig.json b/src/plugins/discover/tsconfig.json index 96765d76a340b..ec98199c3423e 100644 --- a/src/plugins/discover/tsconfig.json +++ b/src/plugins/discover/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/embeddable/tsconfig.json b/src/plugins/embeddable/tsconfig.json index eacfa831ecee5..27a887500fb68 100644 --- a/src/plugins/embeddable/tsconfig.json +++ b/src/plugins/embeddable/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/es_ui_shared/tsconfig.json b/src/plugins/es_ui_shared/tsconfig.json index 3d102daaf3aaf..9bcda2e0614de 100644 --- a/src/plugins/es_ui_shared/tsconfig.json +++ b/src/plugins/es_ui_shared/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/expressions/common/mocks.ts b/src/plugins/expressions/common/mocks.ts index 20bdbca07f008..eaeebd8e53492 100644 --- a/src/plugins/expressions/common/mocks.ts +++ b/src/plugins/expressions/common/mocks.ts @@ -34,5 +34,3 @@ export const createMockExecutionContext = ...extraContext, }; }; - -export { createMockContext } from './util/test_utils'; diff --git a/src/plugins/expressions/common/util/index.ts b/src/plugins/expressions/common/util/index.ts index 5f83d962d5aea..470dfc3c2d436 100644 --- a/src/plugins/expressions/common/util/index.ts +++ b/src/plugins/expressions/common/util/index.ts @@ -10,3 +10,4 @@ export * from './create_error'; export * from './get_by_alias'; export * from './tables_adapter'; export * from './expressions_inspector_adapter'; +export * from './test_utils'; diff --git a/src/plugins/expressions/tsconfig.json b/src/plugins/expressions/tsconfig.json index fe76ba3050a3b..cce71013cefa5 100644 --- a/src/plugins/expressions/tsconfig.json +++ b/src/plugins/expressions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/home/tsconfig.json b/src/plugins/home/tsconfig.json index 19ab5a8e6efec..b15e1fc011b92 100644 --- a/src/plugins/home/tsconfig.json +++ b/src/plugins/home/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/index_pattern_field_editor/tsconfig.json b/src/plugins/index_pattern_field_editor/tsconfig.json index c638fd34c6bbb..559b1aaf0fc26 100644 --- a/src/plugins/index_pattern_field_editor/tsconfig.json +++ b/src/plugins/index_pattern_field_editor/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/index_pattern_management/tsconfig.json b/src/plugins/index_pattern_management/tsconfig.json index 3c8fdb1cf6597..37bd3e4aa5bbb 100644 --- a/src/plugins/index_pattern_management/tsconfig.json +++ b/src/plugins/index_pattern_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/input_control_vis/tsconfig.json b/src/plugins/input_control_vis/tsconfig.json index c2f8d8783e822..bef7bc394a6cc 100644 --- a/src/plugins/input_control_vis/tsconfig.json +++ b/src/plugins/input_control_vis/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/inspector/tsconfig.json b/src/plugins/inspector/tsconfig.json index 0e42e577428c6..2a9c41464532c 100644 --- a/src/plugins/inspector/tsconfig.json +++ b/src/plugins/inspector/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_legacy/tsconfig.json b/src/plugins/kibana_legacy/tsconfig.json index 0b3f42cd3b57b..709036c9e82f4 100644 --- a/src/plugins/kibana_legacy/tsconfig.json +++ b/src/plugins/kibana_legacy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_overview/tsconfig.json b/src/plugins/kibana_overview/tsconfig.json index 3396861cb9179..ac3ac109cb35f 100644 --- a/src/plugins/kibana_overview/tsconfig.json +++ b/src/plugins/kibana_overview/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_react/tsconfig.json b/src/plugins/kibana_react/tsconfig.json index 857b8cf83645c..eb9a24ca141f6 100644 --- a/src/plugins/kibana_react/tsconfig.json +++ b/src/plugins/kibana_react/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_usage_collection/tsconfig.json b/src/plugins/kibana_usage_collection/tsconfig.json index 100f1f03955d0..d664d936f6667 100644 --- a/src/plugins/kibana_usage_collection/tsconfig.json +++ b/src/plugins/kibana_usage_collection/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/kibana_utils/tsconfig.json b/src/plugins/kibana_utils/tsconfig.json index d9572707e8662..ae5e9b90af807 100644 --- a/src/plugins/kibana_utils/tsconfig.json +++ b/src/plugins/kibana_utils/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/legacy_export/tsconfig.json b/src/plugins/legacy_export/tsconfig.json index d6689ea1067db..ec006d492499e 100644 --- a/src/plugins/legacy_export/tsconfig.json +++ b/src/plugins/legacy_export/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/management/tsconfig.json b/src/plugins/management/tsconfig.json index 3423299a53df7..ba3661666631a 100644 --- a/src/plugins/management/tsconfig.json +++ b/src/plugins/management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/maps_ems/tsconfig.json b/src/plugins/maps_ems/tsconfig.json index 7f44da00d47a4..b85c3da66b83a 100644 --- a/src/plugins/maps_ems/tsconfig.json +++ b/src/plugins/maps_ems/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/maps_legacy/tsconfig.json b/src/plugins/maps_legacy/tsconfig.json index c600024cc4a74..f757e35f785af 100644 --- a/src/plugins/maps_legacy/tsconfig.json +++ b/src/plugins/maps_legacy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/navigation/tsconfig.json b/src/plugins/navigation/tsconfig.json index bb86142e1c443..07cfe10d7d81f 100644 --- a/src/plugins/navigation/tsconfig.json +++ b/src/plugins/navigation/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/newsfeed/tsconfig.json b/src/plugins/newsfeed/tsconfig.json index 84626b2f3a6a8..66244a22336c7 100644 --- a/src/plugins/newsfeed/tsconfig.json +++ b/src/plugins/newsfeed/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/presentation_util/tsconfig.json b/src/plugins/presentation_util/tsconfig.json index cb39c5fb36f56..37b9380f6f2b9 100644 --- a/src/plugins/presentation_util/tsconfig.json +++ b/src/plugins/presentation_util/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/region_map/tsconfig.json b/src/plugins/region_map/tsconfig.json index 385c31e6bd2d6..899611d027465 100644 --- a/src/plugins/region_map/tsconfig.json +++ b/src/plugins/region_map/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/saved_objects/tsconfig.json b/src/plugins/saved_objects/tsconfig.json index 46b3f9a5afcb6..d9045b91b9dfa 100644 --- a/src/plugins/saved_objects/tsconfig.json +++ b/src/plugins/saved_objects/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/saved_objects_management/tsconfig.json b/src/plugins/saved_objects_management/tsconfig.json index cb74b06179225..99849dea38618 100644 --- a/src/plugins/saved_objects_management/tsconfig.json +++ b/src/plugins/saved_objects_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/saved_objects_tagging_oss/tsconfig.json b/src/plugins/saved_objects_tagging_oss/tsconfig.json index ae566d9626895..b0059c71424bf 100644 --- a/src/plugins/saved_objects_tagging_oss/tsconfig.json +++ b/src/plugins/saved_objects_tagging_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/security_oss/tsconfig.json b/src/plugins/security_oss/tsconfig.json index 156e4ffee9d79..530e01a034b00 100644 --- a/src/plugins/security_oss/tsconfig.json +++ b/src/plugins/security_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/share/tsconfig.json b/src/plugins/share/tsconfig.json index 62c0b3739f4b7..985066915f1dd 100644 --- a/src/plugins/share/tsconfig.json +++ b/src/plugins/share/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/spaces_oss/tsconfig.json b/src/plugins/spaces_oss/tsconfig.json index 96584842ec32b..0cc82d7e5d124 100644 --- a/src/plugins/spaces_oss/tsconfig.json +++ b/src/plugins/spaces_oss/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/telemetry/tsconfig.json b/src/plugins/telemetry/tsconfig.json index 40370082f99e2..bdced01d9eb6f 100644 --- a/src/plugins/telemetry/tsconfig.json +++ b/src/plugins/telemetry/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/telemetry_collection_manager/tsconfig.json b/src/plugins/telemetry_collection_manager/tsconfig.json index 8bbc440fb1a54..1bba81769f0dd 100644 --- a/src/plugins/telemetry_collection_manager/tsconfig.json +++ b/src/plugins/telemetry_collection_manager/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/telemetry_management_section/tsconfig.json b/src/plugins/telemetry_management_section/tsconfig.json index c6a21733b2d6b..48e40814b8570 100644 --- a/src/plugins/telemetry_management_section/tsconfig.json +++ b/src/plugins/telemetry_management_section/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/tile_map/tsconfig.json b/src/plugins/tile_map/tsconfig.json index 385c31e6bd2d6..899611d027465 100644 --- a/src/plugins/tile_map/tsconfig.json +++ b/src/plugins/tile_map/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/timelion/tsconfig.json b/src/plugins/timelion/tsconfig.json index bb8a48339d44e..5b96d69a878ea 100644 --- a/src/plugins/timelion/tsconfig.json +++ b/src/plugins/timelion/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/ui_actions/tsconfig.json b/src/plugins/ui_actions/tsconfig.json index 89b66d18705c2..a871d7215cdc5 100644 --- a/src/plugins/ui_actions/tsconfig.json +++ b/src/plugins/ui_actions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/url_forwarding/tsconfig.json b/src/plugins/url_forwarding/tsconfig.json index f1916e4ce5957..8e867a6bad14f 100644 --- a/src/plugins/url_forwarding/tsconfig.json +++ b/src/plugins/url_forwarding/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/usage_collection/tsconfig.json b/src/plugins/usage_collection/tsconfig.json index b4a0721ef3672..96b2c4d37e17c 100644 --- a/src/plugins/usage_collection/tsconfig.json +++ b/src/plugins/usage_collection/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_default_editor/tsconfig.json b/src/plugins/vis_default_editor/tsconfig.json index 54a84e08224a8..27bb775c2d0e8 100644 --- a/src/plugins/vis_default_editor/tsconfig.json +++ b/src/plugins/vis_default_editor/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_markdown/tsconfig.json b/src/plugins/vis_type_markdown/tsconfig.json index f940c295e7cee..d5ab89b98081b 100644 --- a/src/plugins/vis_type_markdown/tsconfig.json +++ b/src/plugins/vis_type_markdown/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_metric/tsconfig.json b/src/plugins/vis_type_metric/tsconfig.json index 8cee918a3dc82..7441848d5a430 100644 --- a/src/plugins/vis_type_metric/tsconfig.json +++ b/src/plugins/vis_type_metric/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_table/tsconfig.json b/src/plugins/vis_type_table/tsconfig.json index 4f2e80575497b..ccff3c349cf21 100644 --- a/src/plugins/vis_type_table/tsconfig.json +++ b/src/plugins/vis_type_table/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_tagcloud/tsconfig.json b/src/plugins/vis_type_tagcloud/tsconfig.json index f7f3688183a48..18bbad2257466 100644 --- a/src/plugins/vis_type_tagcloud/tsconfig.json +++ b/src/plugins/vis_type_tagcloud/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_timelion/tsconfig.json b/src/plugins/vis_type_timelion/tsconfig.json index d29fb25b15315..77f97de28366d 100644 --- a/src/plugins/vis_type_timelion/tsconfig.json +++ b/src/plugins/vis_type_timelion/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_timeseries/tsconfig.json b/src/plugins/vis_type_timeseries/tsconfig.json index edc2d25b867d1..7b2dd4b608c1c 100644 --- a/src/plugins/vis_type_timeseries/tsconfig.json +++ b/src/plugins/vis_type_timeseries/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_vega/tsconfig.json b/src/plugins/vis_type_vega/tsconfig.json index f375a2483e24f..4091dafcbe357 100644 --- a/src/plugins/vis_type_vega/tsconfig.json +++ b/src/plugins/vis_type_vega/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_vislib/tsconfig.json b/src/plugins/vis_type_vislib/tsconfig.json index 845628a6b86f9..74bc1440d9dbc 100644 --- a/src/plugins/vis_type_vislib/tsconfig.json +++ b/src/plugins/vis_type_vislib/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/vis_type_xy/tsconfig.json b/src/plugins/vis_type_xy/tsconfig.json index 7e23b07bd80f6..5cb0bc8d0bc8e 100644 --- a/src/plugins/vis_type_xy/tsconfig.json +++ b/src/plugins/vis_type_xy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/visualizations/tsconfig.json b/src/plugins/visualizations/tsconfig.json index 65de6908228b3..d7c5e6a4b4366 100644 --- a/src/plugins/visualizations/tsconfig.json +++ b/src/plugins/visualizations/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/src/plugins/visualize/tsconfig.json b/src/plugins/visualize/tsconfig.json index 046202d82d1aa..bc0891f391746 100644 --- a/src/plugins/visualize/tsconfig.json +++ b/src/plugins/visualize/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/tsconfig.base.json b/tsconfig.base.json index c28ed0d8c8750..da4de5ef3712b 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -56,6 +56,5 @@ "jest-styled-components", "@testing-library/jest-dom" ] - }, - "include": [] + } } diff --git a/tsconfig.json b/tsconfig.json index 7c06e80858640..40763ede1bbdd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,79 +19,6 @@ "x-pack/plugins/cases/**/*", "x-pack/plugins/lists/**/*", "x-pack/plugins/security_solution/**/*", - - // tests - "src/**/*.test.ts", - "src/**/*.test.tsx", - "src/**/integration_tests/*", - "src/**/tests/*", - // mocks - "src/**/__mocks__/*", - "src/**/mock/*", - "src/**/mocks/*", - "src/**/*/mock.ts", - "src/**/*/mocks.ts", - "src/**/*/mocks.tsx", - "src/**/*.mock.ts", - "src/**/*.mock.tsx", - "src/**/*.mocks.ts", - "src/**/*.mocks.tsx", - - // test helpers - "src/**/test_helpers/*", - "src/**/test_utils/*", - "src/**/*/test_utils.ts", - "src/**/*/test_helpers.ts", - "src/**/*/test_helper.tsx", - - // stubs - "src/**/*/stubs.ts", - "src/**/*.stub.ts", - "src/**/*.stories.tsx", - "src/**/*/_mock_handler_arguments.ts", - - // tests - "x-pack/plugins/**/*.test.ts", - "x-pack/plugins/**/*.test.tsx", - "x-pack/plugins/**/test/**/*", - "x-pack/plugins/**/tests/*", - "x-pack/plugins/**/integration_tests/*", - "x-pack/plugins/**/tests_client_integration/*", - "x-pack/plugins/**/__fixtures__/*", - "x-pack/plugins/**/__stories__/*", - "x-pack/plugins/**/__jest__/**/*", - - // mocks - "x-pack/plugins/**/__mocks__/*", - "x-pack/plugins/**/mock/*", - "x-pack/plugins/**/mocks/*", - "x-pack/plugins/**/*/mock.ts", - "x-pack/plugins/**/*/mocks.ts", - "x-pack/plugins/**/*/mocks.tsx", - "x-pack/plugins/**/*.mock.ts", - "x-pack/plugins/**/*.mock.tsx", - "x-pack/plugins/**/*.mocks.ts", - "x-pack/plugins/**/*.mocks.tsx", - - // test helpers - "x-pack/plugins/**/test_helpers/*", - "x-pack/plugins/**/test_utils/*", - "x-pack/plugins/**/*/test_utils.ts", - "x-pack/plugins/**/*/test_helper.tsx", - "x-pack/plugins/**/*/test_helpers.ts", - "x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/test_data.tsx", - "x-pack/plugins/uptime/server/lib/requests/helper.ts", - "x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx", - "x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx", - "x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx", - "x-pack/plugins/apm/server/utils/test_helpers.tsx", - "x-pack/plugins/apm/public/utils/testHelpers.tsx", - - // stubs - "x-pack/plugins/**/*/stubs.ts", - "x-pack/plugins/**/*.stub.ts", - "x-pack/plugins/**/*.stories.tsx", - "x-pack/plugins/**/*/_mock_handler_arguments.ts" ], "exclude": [ "x-pack/plugins/security_solution/cypress/**/*" diff --git a/tsconfig.project.json b/tsconfig.project.json deleted file mode 100644 index 174c3fdf0fd54..0000000000000 --- a/tsconfig.project.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "composite": true, - "emitDeclarationOnly": true, - "declaration": true, - "declarationMap": true - }, - "exclude": [ - // tests - "**/*.test.ts", - "**/*.test.tsx", - "**/integration_tests/*", - "**/test/**/*", - "**/test/*", - "**/tests/*", - "**/tests_client_integration/*", - "**/__fixtures__/*", - "**/__stories__/*", - "**/__jest__/**", - - // mocks - "**/__mocks__/*", - "**/mock/*", - "**/mocks/*", - "**/*/mock.ts", - "**/*/mocks.ts", - "**/*/mocks.tsx", - "**/*.mock.ts", - "**/*.mock.tsx", - "**/*.mocks.ts", - "**/*.mocks.tsx", - - // test helpers - "**/test_helpers/*", - "**/test_utils/*", - "**/*/test_utils.ts", - "**/*/test_helper.tsx", - "**/*/test_helpers.ts", - // x-pack/plugins/ui_actions_enhanced/public/components/action_wizard/test_data.tsx - "**/*/test_data.tsx", - "**/*/shared_columns_tests.tsx", - // x-pack/plugins/uptime/server/lib/requests/helper.ts - "**/*/requests/helper.ts", - // x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx - "**/*/rtl_helpers.tsx", - // x-pack/plugins/uptime/public/lib/helper/enzyme_helpers.tsx - "**/*/enzyme_helpers.tsx", - // x-pack/plugins/apm/server/utils/test_helpers.tsx - "**/*/test_helpers.tsx", - // x-pack/plugins/apm/public/utils/testHelpers.tsx - "**/*/testHelpers.tsx", - - // stubs - "**/*/stubs.ts", - "**/*.stub.ts", - "**/*.stories.tsx", - "**/*/_mock_handler_arguments.ts" - ], - "include": [], - "types": [ - "node", - "flot" - ] -} diff --git a/x-pack/plugins/actions/tsconfig.json b/x-pack/plugins/actions/tsconfig.json index 10ebd09235236..d5c1105c99ad0 100644 --- a/x-pack/plugins/actions/tsconfig.json +++ b/x-pack/plugins/actions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/alerting/tsconfig.json b/x-pack/plugins/alerting/tsconfig.json index 4010688746901..86ab00faeb5ad 100644 --- a/x-pack/plugins/alerting/tsconfig.json +++ b/x-pack/plugins/alerting/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/apm/e2e/tsconfig.json b/x-pack/plugins/apm/e2e/tsconfig.json index 0c13dd717991c..c4587349c7ad7 100644 --- a/x-pack/plugins/apm/e2e/tsconfig.json +++ b/x-pack/plugins/apm/e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.project.json", + "extends": "../../../../tsconfig.base.json", "exclude": ["tmp"], "include": ["./**/*"], "compilerOptions": { diff --git a/x-pack/plugins/apm/ftr_e2e/tsconfig.json b/x-pack/plugins/apm/ftr_e2e/tsconfig.json index f699943a254fa..168801f782607 100644 --- a/x-pack/plugins/apm/ftr_e2e/tsconfig.json +++ b/x-pack/plugins/apm/ftr_e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.project.json", + "extends": "../../../../tsconfig.base.json", "exclude": [ "tmp" ], @@ -12,4 +12,4 @@ "node" ] } -} +} \ No newline at end of file diff --git a/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js b/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js index 613435fe186bf..fed938119c4a6 100644 --- a/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js +++ b/x-pack/plugins/apm/scripts/optimize-tsconfig/optimize.js @@ -22,7 +22,7 @@ const { kibanaRoot, tsconfigTpl, filesToIgnore } = require('./paths'); const { unoptimizeTsConfig } = require('./unoptimize'); async function prepareBaseTsConfig() { - const baseConfigFilename = path.resolve(kibanaRoot, 'tsconfig.project.json'); + const baseConfigFilename = path.resolve(kibanaRoot, 'tsconfig.base.json'); const config = json5.parse(await readFile(baseConfigFilename, 'utf-8')); await writeFile( diff --git a/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js b/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js index b501ec3a8eedf..dbc207c9e6d26 100644 --- a/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js +++ b/x-pack/plugins/apm/scripts/optimize-tsconfig/paths.js @@ -12,7 +12,7 @@ const tsconfigTpl = path.resolve(__dirname, './tsconfig.json'); const filesToIgnore = [ path.resolve(kibanaRoot, 'tsconfig.json'), - path.resolve(kibanaRoot, 'tsconfig.project.json'), + path.resolve(kibanaRoot, 'tsconfig.base.json'), path.resolve(kibanaRoot, 'x-pack/plugins/apm', 'tsconfig.json'), ]; diff --git a/x-pack/plugins/apm/tsconfig.json b/x-pack/plugins/apm/tsconfig.json index ae2085dc24003..ffbf11c23f63a 100644 --- a/x-pack/plugins/apm/tsconfig.json +++ b/x-pack/plugins/apm/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/banners/tsconfig.json b/x-pack/plugins/banners/tsconfig.json index 6c4c80173208b..85608a8a78ad5 100644 --- a/x-pack/plugins/banners/tsconfig.json +++ b/x-pack/plugins/banners/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/beats_management/tsconfig.json b/x-pack/plugins/beats_management/tsconfig.json index 398438712b26b..ad68cc900e638 100644 --- a/x-pack/plugins/beats_management/tsconfig.json +++ b/x-pack/plugins/beats_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/canvas/storybook/addon/tsconfig.json b/x-pack/plugins/canvas/storybook/addon/tsconfig.json index b115d1c46546c..2ab1856de661a 100644 --- a/x-pack/plugins/canvas/storybook/addon/tsconfig.json +++ b/x-pack/plugins/canvas/storybook/addon/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../../tsconfig.project.json", + "extends": "../../../../../tsconfig.base.json", "include": [ "src/**/*.ts", "src/**/*.tsx" diff --git a/x-pack/plugins/canvas/tsconfig.json b/x-pack/plugins/canvas/tsconfig.json index 679165f0a1b76..487b68ba3542b 100644 --- a/x-pack/plugins/canvas/tsconfig.json +++ b/x-pack/plugins/canvas/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/cloud/tsconfig.json b/x-pack/plugins/cloud/tsconfig.json index f6edb9fb7ccae..46e81aa7fa086 100644 --- a/x-pack/plugins/cloud/tsconfig.json +++ b/x-pack/plugins/cloud/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/console_extensions/tsconfig.json b/x-pack/plugins/console_extensions/tsconfig.json index edcd46c4fafc5..5ad28f230a0bb 100644 --- a/x-pack/plugins/console_extensions/tsconfig.json +++ b/x-pack/plugins/console_extensions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/cross_cluster_replication/tsconfig.json b/x-pack/plugins/cross_cluster_replication/tsconfig.json index 156a851abb8db..9c7590b9c2553 100644 --- a/x-pack/plugins/cross_cluster_replication/tsconfig.json +++ b/x-pack/plugins/cross_cluster_replication/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/dashboard_enhanced/tsconfig.json b/x-pack/plugins/dashboard_enhanced/tsconfig.json index f6acdddc6f997..567c390edfa5a 100644 --- a/x-pack/plugins/dashboard_enhanced/tsconfig.json +++ b/x-pack/plugins/dashboard_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/dashboard_mode/tsconfig.json b/x-pack/plugins/dashboard_mode/tsconfig.json index c4a11959ec3e3..6e4ed11ffa7ff 100644 --- a/x-pack/plugins/dashboard_mode/tsconfig.json +++ b/x-pack/plugins/dashboard_mode/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/data_enhanced/tsconfig.json b/x-pack/plugins/data_enhanced/tsconfig.json index 5538a2db3e4cd..047b9b06516ba 100644 --- a/x-pack/plugins/data_enhanced/tsconfig.json +++ b/x-pack/plugins/data_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/discover_enhanced/tsconfig.json b/x-pack/plugins/discover_enhanced/tsconfig.json index 2a055bd0e0710..38a55e557909b 100644 --- a/x-pack/plugins/discover_enhanced/tsconfig.json +++ b/x-pack/plugins/discover_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json b/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json index 99aea16a9aaba..50fe41c49b0c8 100644 --- a/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json +++ b/x-pack/plugins/drilldowns/url_drilldown/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.project.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/embeddable_enhanced/tsconfig.json b/x-pack/plugins/embeddable_enhanced/tsconfig.json index 32754f2fd5524..6e9eb69585cbc 100644 --- a/x-pack/plugins/embeddable_enhanced/tsconfig.json +++ b/x-pack/plugins/embeddable_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/encrypted_saved_objects/tsconfig.json b/x-pack/plugins/encrypted_saved_objects/tsconfig.json index 9eae8b7366bea..2b51b313d34fc 100644 --- a/x-pack/plugins/encrypted_saved_objects/tsconfig.json +++ b/x-pack/plugins/encrypted_saved_objects/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/enterprise_search/tsconfig.json b/x-pack/plugins/enterprise_search/tsconfig.json index a4f1c55463e75..6b4c50770b49f 100644 --- a/x-pack/plugins/enterprise_search/tsconfig.json +++ b/x-pack/plugins/enterprise_search/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/event_log/tsconfig.json b/x-pack/plugins/event_log/tsconfig.json index e21dbc93b7b47..9b7cde10da3d6 100644 --- a/x-pack/plugins/event_log/tsconfig.json +++ b/x-pack/plugins/event_log/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/features/tsconfig.json b/x-pack/plugins/features/tsconfig.json index 11e2dbc8f093f..1260af55fbff6 100644 --- a/x-pack/plugins/features/tsconfig.json +++ b/x-pack/plugins/features/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/file_upload/tsconfig.json b/x-pack/plugins/file_upload/tsconfig.json index 8a982f83632aa..887a05af31174 100644 --- a/x-pack/plugins/file_upload/tsconfig.json +++ b/x-pack/plugins/file_upload/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/fleet/tsconfig.json b/x-pack/plugins/fleet/tsconfig.json index 66849e017395b..a20d82de3c859 100644 --- a/x-pack/plugins/fleet/tsconfig.json +++ b/x-pack/plugins/fleet/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/global_search/tsconfig.json b/x-pack/plugins/global_search/tsconfig.json index 2571f7c2e2935..2d05328f445df 100644 --- a/x-pack/plugins/global_search/tsconfig.json +++ b/x-pack/plugins/global_search/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/global_search_bar/tsconfig.json b/x-pack/plugins/global_search_bar/tsconfig.json index 595d55c3c5a0d..266eecc35c84b 100644 --- a/x-pack/plugins/global_search_bar/tsconfig.json +++ b/x-pack/plugins/global_search_bar/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/global_search_providers/tsconfig.json b/x-pack/plugins/global_search_providers/tsconfig.json index 9be9a681ee7c5..f2759954a6845 100644 --- a/x-pack/plugins/global_search_providers/tsconfig.json +++ b/x-pack/plugins/global_search_providers/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/graph/tsconfig.json b/x-pack/plugins/graph/tsconfig.json index ae0d143455d52..741c603e3aae4 100644 --- a/x-pack/plugins/graph/tsconfig.json +++ b/x-pack/plugins/graph/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -27,4 +27,4 @@ { "path": "../../../src/plugins/kibana_utils/tsconfig.json" }, { "path": "../../../src/plugins/kibana_react/tsconfig.json" } ] - } + } \ No newline at end of file diff --git a/x-pack/plugins/grokdebugger/tsconfig.json b/x-pack/plugins/grokdebugger/tsconfig.json index 3e9e2f7870814..51d2d0b6db0ea 100644 --- a/x-pack/plugins/grokdebugger/tsconfig.json +++ b/x-pack/plugins/grokdebugger/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/index_lifecycle_management/tsconfig.json b/x-pack/plugins/index_lifecycle_management/tsconfig.json index bf43817cbc407..75bd775a36749 100644 --- a/x-pack/plugins/index_lifecycle_management/tsconfig.json +++ b/x-pack/plugins/index_lifecycle_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -8,6 +8,7 @@ "declarationMap": true }, "include": [ + "__jest__/**/*", "common/**/*", "public/**/*", "server/**/*", diff --git a/x-pack/plugins/index_management/tsconfig.json b/x-pack/plugins/index_management/tsconfig.json index 0766839a230b9..81a96a77cef83 100644 --- a/x-pack/plugins/index_management/tsconfig.json +++ b/x-pack/plugins/index_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -8,9 +8,11 @@ "declarationMap": true }, "include": [ + "__jest__/**/*", "common/**/*", "public/**/*", "server/**/*", + "test/**/*", "../../../typings/**/*", ], "references": [ diff --git a/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx b/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx new file mode 100644 index 0000000000000..33fbbd03d790a --- /dev/null +++ b/x-pack/plugins/infra/public/utils/enzyme_helpers.tsx @@ -0,0 +1,87 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +import { mount, ReactWrapper } from 'enzyme'; +import React from 'react'; +import { act as reactAct } from 'react-dom/test-utils'; +/** + * A wrapper object to provide access to the state of a hook under test and to + * enable interaction with that hook. + */ +interface ReactHookWrapper { + /* Ensures that async React operations have settled before and after the + * given actor callback is called. The actor callback arguments provide easy + * access to the last hook value and allow for updating the arguments passed + * to the hook body to trigger reevaluation. + */ + act: (actor: (lastHookValue: HookValue, setArgs: (args: Args) => void) => void) => void; + /* The enzyme wrapper around the test component. */ + component: ReactWrapper; + /* The most recent value return the by test harness of the hook. */ + getLastHookValue: () => HookValue; + /* The jest Mock function that receives the hook values for introspection. */ + hookValueCallback: jest.Mock; +} + +/** + * Allows for execution of hooks inside of a test component which records the + * returned values. + * + * @param body A function that calls the hook and returns data derived from it + * @param WrapperComponent A component that, if provided, will be wrapped + * around the test component. This can be useful to provide context values. + * @return {ReactHookWrapper} An object providing access to the hook state and + * functions to interact with it. + */ +export const mountHook = ( + body: (args: Args) => HookValue, + WrapperComponent?: React.ComponentType, + initialArgs: Args = {} as Args +): ReactHookWrapper => { + const hookValueCallback = jest.fn(); + let component!: ReactWrapper; + + const act: ReactHookWrapper['act'] = (actor) => { + reactAct(() => { + actor(getLastHookValue(), (args: Args) => component.setProps(args)); + component.update(); + }); + }; + + const getLastHookValue = () => { + const calls = hookValueCallback.mock.calls; + if (calls.length <= 0) { + throw Error('No recent hook value present.'); + } + return calls[calls.length - 1][0]; + }; + + const HookComponent = (props: Args) => { + hookValueCallback(body(props)); + return null; + }; + const TestComponent: React.FunctionComponent = (args) => + WrapperComponent ? ( + + + + ) : ( + + ); + + reactAct(() => { + component = mount(); + }); + + return { + act, + component, + getLastHookValue, + hookValueCallback, + }; +}; diff --git a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts index b9bfcd302fb83..ab50986c3b3d5 100644 --- a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts +++ b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_hosts_anomalies.ts @@ -84,7 +84,7 @@ export const createMetricsHostsAnomaliesQuery = ({ const sortOptions = [ { [sortToMlFieldMap[field]]: querySortDirection }, { [TIEBREAKER_FIELD]: querySortDirection }, // Tiebreaker - ] as const; + ]; const resultsQuery = { ...defaultRequestParameters, diff --git a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts index 8dadcfe87c6f9..8fb8df5eef3d7 100644 --- a/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts +++ b/x-pack/plugins/infra/server/lib/infra_ml/queries/metrics_k8s_anomalies.ts @@ -83,7 +83,7 @@ export const createMetricsK8sAnomaliesQuery = ({ const sortOptions = [ { [sortToMlFieldMap[field]]: querySortDirection }, { [TIEBREAKER_FIELD]: querySortDirection }, // Tiebreaker - ] as const; + ]; const resultsQuery = { ...defaultRequestParameters, diff --git a/x-pack/plugins/infra/tsconfig.json b/x-pack/plugins/infra/tsconfig.json index b684e1866282f..765af7974a2f1 100644 --- a/x-pack/plugins/infra/tsconfig.json +++ b/x-pack/plugins/infra/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/ingest_pipelines/tsconfig.json b/x-pack/plugins/ingest_pipelines/tsconfig.json index 5917b94caf76b..a248bc9f337fe 100644 --- a/x-pack/plugins/ingest_pipelines/tsconfig.json +++ b/x-pack/plugins/ingest_pipelines/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -11,6 +11,7 @@ "common/**/*", "public/**/*", "server/**/*", + "__jest__/**/*", "../../../typings/**/*" ], "references": [ diff --git a/x-pack/plugins/lens/tsconfig.json b/x-pack/plugins/lens/tsconfig.json index 69ef52535dd9d..134f0b4185b84 100644 --- a/x-pack/plugins/lens/tsconfig.json +++ b/x-pack/plugins/lens/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -38,4 +38,4 @@ { "path": "../../../src/plugins/embeddable/tsconfig.json"}, { "path": "../../../src/plugins/presentation_util/tsconfig.json"}, ] - } + } \ No newline at end of file diff --git a/x-pack/plugins/license_management/tsconfig.json b/x-pack/plugins/license_management/tsconfig.json index 925049ca924cf..e6cb0101ee838 100644 --- a/x-pack/plugins/license_management/tsconfig.json +++ b/x-pack/plugins/license_management/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/licensing/tsconfig.json b/x-pack/plugins/licensing/tsconfig.json index 2d744e57c1895..6118bcd81d342 100644 --- a/x-pack/plugins/licensing/tsconfig.json +++ b/x-pack/plugins/licensing/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/logstash/tsconfig.json b/x-pack/plugins/logstash/tsconfig.json index 6430248e46396..6f21cfdb0b191 100644 --- a/x-pack/plugins/logstash/tsconfig.json +++ b/x-pack/plugins/logstash/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/maps/public/components/validated_number_input.tsx b/x-pack/plugins/maps/public/components/validated_number_input.tsx index 942f31074000f..cd525cf1ee2c9 100644 --- a/x-pack/plugins/maps/public/components/validated_number_input.tsx +++ b/x-pack/plugins/maps/public/components/validated_number_input.tsx @@ -6,8 +6,8 @@ */ import React, { Component, ChangeEvent, ReactNode } from 'react'; -import { EuiFieldNumber, EuiFormRow } from '@elastic/eui'; -import type { EuiFormRowDisplayKeys } from '@elastic/eui/src/components/form/form_row/form_row'; +// @ts-expect-error +import { EuiFieldNumber, EuiFormRow, EuiFormRowDisplayKeys } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import _ from 'lodash'; diff --git a/x-pack/plugins/maps/tsconfig.json b/x-pack/plugins/maps/tsconfig.json index 59af94bea0b68..1b74b7ee7566a 100644 --- a/x-pack/plugins/maps/tsconfig.json +++ b/x-pack/plugins/maps/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json b/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json index 599dee1e56c0f..6d01a853698b8 100644 --- a/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json +++ b/x-pack/plugins/ml/server/routes/apidoc_scripts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../../../tsconfig.project.json", + "extends": "../../../../../../tsconfig.base.json", "compilerOptions": { "outDir": "./target", "target": "es6", diff --git a/x-pack/plugins/ml/tsconfig.json b/x-pack/plugins/ml/tsconfig.json index b1135b867dc08..6b396b1c59642 100644 --- a/x-pack/plugins/ml/tsconfig.json +++ b/x-pack/plugins/ml/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/monitoring/tsconfig.json b/x-pack/plugins/monitoring/tsconfig.json index b1999101f7c12..d0fb7e1a88dcf 100644 --- a/x-pack/plugins/monitoring/tsconfig.json +++ b/x-pack/plugins/monitoring/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/observability/tsconfig.json b/x-pack/plugins/observability/tsconfig.json index cc6e298795e4a..f55ae640a8026 100644 --- a/x-pack/plugins/observability/tsconfig.json +++ b/x-pack/plugins/observability/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/osquery/tsconfig.json b/x-pack/plugins/osquery/tsconfig.json index 03c9e451f3b52..291b0f7c607cf 100644 --- a/x-pack/plugins/osquery/tsconfig.json +++ b/x-pack/plugins/osquery/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/painless_lab/tsconfig.json b/x-pack/plugins/painless_lab/tsconfig.json index 2519206b0fcdb..a869b21e06d4d 100644 --- a/x-pack/plugins/painless_lab/tsconfig.json +++ b/x-pack/plugins/painless_lab/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/remote_clusters/tsconfig.json b/x-pack/plugins/remote_clusters/tsconfig.json index b48933bc9f1ec..0bee6300cf0b2 100644 --- a/x-pack/plugins/remote_clusters/tsconfig.json +++ b/x-pack/plugins/remote_clusters/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/reporting/tsconfig.json b/x-pack/plugins/reporting/tsconfig.json index 4f252743ed078..88e8d343f4700 100644 --- a/x-pack/plugins/reporting/tsconfig.json +++ b/x-pack/plugins/reporting/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/rollup/tsconfig.json b/x-pack/plugins/rollup/tsconfig.json index bf589c62713d6..9b994d1710ffc 100644 --- a/x-pack/plugins/rollup/tsconfig.json +++ b/x-pack/plugins/rollup/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/runtime_fields/tsconfig.json b/x-pack/plugins/runtime_fields/tsconfig.json index e1ad141f1c702..a1efe4c9cf2dd 100644 --- a/x-pack/plugins/runtime_fields/tsconfig.json +++ b/x-pack/plugins/runtime_fields/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/saved_objects_tagging/tsconfig.json b/x-pack/plugins/saved_objects_tagging/tsconfig.json index 5c37481f982d9..d00156ad1277c 100644 --- a/x-pack/plugins/saved_objects_tagging/tsconfig.json +++ b/x-pack/plugins/saved_objects_tagging/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/searchprofiler/tsconfig.json b/x-pack/plugins/searchprofiler/tsconfig.json index 57cd882422b39..f8ac3a61f7812 100644 --- a/x-pack/plugins/searchprofiler/tsconfig.json +++ b/x-pack/plugins/searchprofiler/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/security/tsconfig.json b/x-pack/plugins/security/tsconfig.json index 4ace497dbd5ad..6c3fd1851a8cb 100644 --- a/x-pack/plugins/security/tsconfig.json +++ b/x-pack/plugins/security/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/security_solution/cypress/tsconfig.json b/x-pack/plugins/security_solution/cypress/tsconfig.json index bd8d9aa058bc3..270d877a362a6 100644 --- a/x-pack/plugins/security_solution/cypress/tsconfig.json +++ b/x-pack/plugins/security_solution/cypress/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../../tsconfig.project.json", + "extends": "../../../../tsconfig.base.json", "exclude": [], "include": [ "./**/*" diff --git a/x-pack/plugins/snapshot_restore/tsconfig.json b/x-pack/plugins/snapshot_restore/tsconfig.json index c496847e4dd9b..39beda02977e1 100644 --- a/x-pack/plugins/snapshot_restore/tsconfig.json +++ b/x-pack/plugins/snapshot_restore/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -8,9 +8,11 @@ "declarationMap": true }, "include": [ + "__jest__/**/*", "common/**/*", "public/**/*", "server/**/*", + "test/**/*", "../../../typings/**/*", ], "references": [ diff --git a/x-pack/plugins/spaces/tsconfig.json b/x-pack/plugins/spaces/tsconfig.json index 4c67cbe8912bd..95fbecaa90936 100644 --- a/x-pack/plugins/spaces/tsconfig.json +++ b/x-pack/plugins/spaces/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/stack_alerts/tsconfig.json b/x-pack/plugins/stack_alerts/tsconfig.json index 97eb9a9a05b86..c83935945c67b 100644 --- a/x-pack/plugins/stack_alerts/tsconfig.json +++ b/x-pack/plugins/stack_alerts/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts b/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts index 70b4ba55c2393..c79b310822c3e 100644 --- a/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts +++ b/x-pack/plugins/task_manager/server/monitoring/workload_statistics.ts @@ -56,7 +56,7 @@ export interface WorkloadAggregation { scheduleDensity: { range: { field: string; - ranges: [{ from: number; to: number }]; + ranges: [{ from: string; to: string }]; }; aggs: { histogram: { @@ -86,6 +86,7 @@ export interface WorkloadAggregation { // The type of a bucket in the scheduleDensity range aggregation type ScheduleDensityResult = AggregationResultOf< + // @ts-expect-error AggregationRange reqires from: number WorkloadAggregation['aggs']['idleTasks']['aggs']['scheduleDensity'], {} >['buckets'][0]; diff --git a/x-pack/plugins/task_manager/tsconfig.json b/x-pack/plugins/task_manager/tsconfig.json index 95a098e54619e..a72b678da1f7c 100644 --- a/x-pack/plugins/task_manager/tsconfig.json +++ b/x-pack/plugins/task_manager/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/telemetry_collection_xpack/tsconfig.json b/x-pack/plugins/telemetry_collection_xpack/tsconfig.json index 80488bd74617d..476f5926f757a 100644 --- a/x-pack/plugins/telemetry_collection_xpack/tsconfig.json +++ b/x-pack/plugins/telemetry_collection_xpack/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/transform/tsconfig.json b/x-pack/plugins/transform/tsconfig.json index 30da887cc1c43..2717f92c7a4df 100644 --- a/x-pack/plugins/transform/tsconfig.json +++ b/x-pack/plugins/transform/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/triggers_actions_ui/tsconfig.json b/x-pack/plugins/triggers_actions_ui/tsconfig.json index b7a63d7043f49..8202449b22298 100644 --- a/x-pack/plugins/triggers_actions_ui/tsconfig.json +++ b/x-pack/plugins/triggers_actions_ui/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/ui_actions_enhanced/tsconfig.json b/x-pack/plugins/ui_actions_enhanced/tsconfig.json index 1513669cdc1ad..39318770126e5 100644 --- a/x-pack/plugins/ui_actions_enhanced/tsconfig.json +++ b/x-pack/plugins/ui_actions_enhanced/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/upgrade_assistant/tsconfig.json b/x-pack/plugins/upgrade_assistant/tsconfig.json index 08e45bebf125b..0d65c8ddd8fed 100644 --- a/x-pack/plugins/upgrade_assistant/tsconfig.json +++ b/x-pack/plugins/upgrade_assistant/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx b/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx index 719c90574b088..5dfc11837b72d 100644 --- a/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/cert_monitors.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { CertMonitors } from './cert_monitors'; -import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../lib'; describe('CertMonitors', () => { const certMons = [ diff --git a/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx b/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx index a0166fc573754..a991634de22a6 100644 --- a/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/cert_search.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../lib'; import { CertificateSearch } from './cert_search'; describe('CertificatesSearch', () => { diff --git a/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx b/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx index 999d76f690867..e331a6e5c34fe 100644 --- a/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/cert_status.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../lib'; import { CertStatus } from './cert_status'; import * as redux from 'react-redux'; import moment from 'moment'; diff --git a/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx b/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx index 8ae0cdb791d9b..ec6a5d91a67c3 100644 --- a/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/certificates_list.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../../lib'; import { CertificateList, CertSort } from './certificates_list'; describe('CertificateList', () => { diff --git a/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx b/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx index 550b7f75623f0..1affd1f990f90 100644 --- a/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx +++ b/x-pack/plugins/uptime/public/components/certificates/fingerprint_col.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../lib'; import { FingerprintCol } from './fingerprint_col'; import moment from 'moment'; diff --git a/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx b/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx index 72b1145a9f34e..d7ae92a0e7654 100644 --- a/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/charts/duration_charts.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import DateMath from '@elastic/datemath'; import { DurationChartComponent } from './duration_chart'; import { MonitorDurationResult } from '../../../../common/types'; -import { shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../../../lib'; describe('MonitorCharts component', () => { let dateMathSpy: any; diff --git a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx index b11595eafae4f..792b357b3baba 100644 --- a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.test.tsx @@ -7,8 +7,7 @@ import React from 'react'; import { MonitorBarSeries, MonitorBarSeriesProps } from './monitor_bar_series'; -import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; -import { MountWithReduxProvider } from '../../../lib/helper/helper_with_redux'; +import { renderWithRouter, shallowWithRouter, MountWithReduxProvider } from '../../../lib'; import { HistogramPoint } from '../../../../common/runtime_types'; describe('MonitorBarSeries component', () => { diff --git a/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx b/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx index bede71b8ba03d..6e04648a817f0 100644 --- a/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/header/page_header.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import moment from 'moment'; import { PageHeader } from './page_header'; import { Ping } from '../../../../common/runtime_types'; -import { renderWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { renderWithRouter } from '../../../lib'; import { mockReduxHooks } from '../../../lib/helper/test_helpers'; describe('PageHeader', () => { diff --git a/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx b/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx index 63465aefcdd43..fdb5498969d39 100644 --- a/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/monitor_tags.test.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { MemoryRouter } from 'react-router-dom'; import { MonitorTags } from './monitor_tags'; import * as hooks from '../../hooks/use_url_params'; -import { renderWithRouter, shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../lib'; describe('MonitorTags component', () => { const summaryPing = { diff --git a/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx b/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx index d433e7fccd1b8..4bfe7de33cba5 100644 --- a/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/uptime_date_picker.test.tsx @@ -10,9 +10,9 @@ import { UptimeDatePicker } from './uptime_date_picker'; import { renderWithRouter, shallowWithRouter, + MountWithReduxProvider, mountWithRouterRedux, -} from '../../lib/helper/enzyme_helpers'; -import { MountWithReduxProvider } from '../../lib/helper/helper_with_redux'; +} from '../../lib'; import { UptimeStartupPluginsContextProvider } from '../../contexts'; import { startPlugins } from '../../lib/__mocks__/uptime_plugin_start_mock'; import { ClientPluginsStart } from '../../apps/plugin'; diff --git a/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx b/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx index 16d96148af340..f29be50633fab 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ml/ml_integerations.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { MLIntegrationComponent } from './ml_integeration'; -import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../../lib'; import * as redux from 'react-redux'; import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public'; import { coreMock } from 'src/core/public/mocks'; diff --git a/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx b/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx index 6bff0b61d7349..15a537a49ccf3 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ml/ml_manage_job.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { coreMock } from 'src/core/public/mocks'; import { ManageMLJobComponent } from './manage_ml_job'; import * as redux from 'react-redux'; -import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../../lib'; import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public'; const core = coreMock.createStart(); diff --git a/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx b/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx index a1be391833bc3..3f107581c1eea 100644 --- a/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/monitor_charts.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import DateMath from '@elastic/datemath'; import { MonitorCharts } from './monitor_charts'; -import { shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../../lib'; describe('MonitorCharts component', () => { let dateMathSpy: any; diff --git a/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx b/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx index 682be99b9b418..dabc0021898eb 100644 --- a/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/monitor_title.test.tsx @@ -10,7 +10,7 @@ import moment from 'moment'; import * as reactRouterDom from 'react-router-dom'; import { Ping } from '../../../common/runtime_types'; import { MonitorPageTitle } from './monitor_title'; -import { renderWithRouter } from '../../lib/helper/enzyme_helpers'; +import { renderWithRouter } from '../../lib'; import { mockReduxHooks } from '../../lib/helper/test_helpers'; jest.mock('react-router-dom', () => { diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx index ba0853b5b1b60..af3c47b9caf30 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/monitor_status.bar.test.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { MonitorStatusBar } from './status_bar'; import { Ping } from '../../../../common/runtime_types'; import * as redux from 'react-redux'; -import { renderWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { renderWithRouter } from '../../../lib'; import { createMemoryHistory } from 'history'; describe('MonitorStatusBar component', () => { diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx index 0cb7ff7168404..03ce292e63621 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/ssl_certificate.test.tsx @@ -11,11 +11,7 @@ import { EuiIcon } from '@elastic/eui'; import { Tls } from '../../../../common/runtime_types'; import { MonitorSSLCertificate } from './status_bar'; import * as redux from 'react-redux'; -import { - mountWithRouter, - renderWithRouter, - shallowWithRouter, -} from '../../../lib/helper/enzyme_helpers'; +import { mountWithRouter, renderWithRouter, shallowWithRouter } from '../../../lib'; import { DYNAMIC_SETTINGS_DEFAULTS } from '../../../../common/constants'; describe('SSL Certificate component', () => { diff --git a/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx b/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx index c751e6a0c24fa..a617ba0db1eb3 100644 --- a/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/empty_state/empty_state.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { EmptyStateComponent } from './empty_state'; import { StatesIndexStatus } from '../../../../common/runtime_types'; import { HttpFetchError, IHttpFetchError } from 'src/core/public'; -import { mountWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { mountWithRouter, shallowWithRouter } from '../../../lib'; describe('EmptyState component', () => { let statesIndexStatus: StatesIndexStatus; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx index a4e7f10d97bfc..a325edc243129 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/enable_alert.test.tsx @@ -12,7 +12,7 @@ import { mountWithRouterRedux, renderWithRouterRedux, shallowWithRouterRedux, -} from '../../../../lib/helper/enzyme_helpers'; +} from '../../../../lib'; import { EuiPopover, EuiText } from '@elastic/eui'; import { DYNAMIC_SETTINGS_DEFAULTS } from '../../../../../common/constants'; import { ReactRouterEuiLink } from '../../../common/react_router_helpers'; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx index c95e3cd61c5fd..4d0e82dc8a296 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/filter_status_button.test.tsx @@ -7,8 +7,7 @@ import React from 'react'; import { FilterStatusButton, FilterStatusButtonProps } from './filter_status_button'; -import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; -import { MountWithReduxProvider } from '../../../lib/helper/helper_with_redux'; +import { renderWithRouter, shallowWithRouter, MountWithReduxProvider } from '../../../lib'; describe('FilterStatusButton', () => { let props: FilterStatusButtonProps; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx index f7a2ad9a536bd..39f9b20624b63 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list.test.tsx @@ -15,7 +15,7 @@ import { MonitorSummary, } from '../../../../common/runtime_types'; import { MonitorListComponent, noItemsMessage } from './monitor_list'; -import { renderWithRouter, shallowWithRouter } from '../../../lib/helper/enzyme_helpers'; +import { renderWithRouter, shallowWithRouter } from '../../../lib'; import * as redux from 'react-redux'; import moment from 'moment'; import { IHttpFetchError } from '../../../../../../../src/core/public'; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx index 39c6d6bd9215d..d044ad4e6a3a2 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_list_drawer.test.tsx @@ -9,7 +9,7 @@ import 'jest'; import React from 'react'; import { MonitorListDrawerComponent } from './monitor_list_drawer'; import { MonitorDetails, MonitorSummary, makePing } from '../../../../../common/runtime_types'; -import { shallowWithRouter } from '../../../../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../../../../lib'; describe('MonitorListDrawer component', () => { let summary: MonitorSummary; diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx index c2515ab55b126..bbc4e13c9eca2 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/status_filter.test.tsx @@ -10,8 +10,8 @@ import { mountWithRouter, renderWithRouter, shallowWithRouter, -} from '../../../lib/helper/enzyme_helpers'; -import { MountWithReduxProvider } from '../../../lib/helper/helper_with_redux'; + MountWithReduxProvider, +} from '../../../lib'; import { createMemoryHistory } from 'history'; import { StatusFilter } from './status_filter'; import { FilterStatusButton } from './filter_status_button'; diff --git a/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx b/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx index 051c4166d0fdd..84c9923bfc419 100644 --- a/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx +++ b/x-pack/plugins/uptime/public/components/settings/certificate_form.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { CertificateExpirationForm } from './certificate_form'; -import { shallowWithRouter, mountWithRouter } from '../../lib/helper/enzyme_helpers'; +import { shallowWithRouter, mountWithRouter } from '../../lib'; describe('CertificateForm', () => { it('shallow renders expected elements for valid props', () => { diff --git a/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx b/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx index fc2567ea98c45..67ca142d8a8ea 100644 --- a/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx +++ b/x-pack/plugins/uptime/public/components/settings/indices_form.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { IndicesForm } from './indices_form'; -import { shallowWithRouter } from '../../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../../lib'; describe('CertificateForm', () => { it('shallow renders expected elements for valid props', () => { diff --git a/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx b/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx index 7aeac9706af58..6fc98fbaf1f5b 100644 --- a/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx +++ b/x-pack/plugins/uptime/public/hooks/use_breadcrumbs.test.tsx @@ -8,11 +8,10 @@ import { ChromeBreadcrumb } from 'kibana/public'; import React from 'react'; import { Route } from 'react-router-dom'; -import { mountWithRouter } from '../lib/helper/enzyme_helpers'; +import { mountWithRouter } from '../lib'; import { OVERVIEW_ROUTE } from '../../common/constants'; import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; -import { UptimeUrlParams, getSupportedUrlParams } from '../lib/helper'; -import { MountWithReduxProvider } from '../lib/helper/helper_with_redux'; +import { UptimeUrlParams, getSupportedUrlParams, MountWithReduxProvider } from '../lib/helper'; import { makeBaseBreadcrumb, useBreadcrumbs } from './use_breadcrumbs'; describe('useBreadcrumbs', () => { diff --git a/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx b/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx index 31580ec22d48c..3ce112b1cb835 100644 --- a/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx +++ b/x-pack/plugins/uptime/public/hooks/use_url_params.test.tsx @@ -9,8 +9,7 @@ import DateMath from '@elastic/datemath'; import React, { useState, Fragment } from 'react'; import { useUrlParams, UptimeUrlParamsHook } from './use_url_params'; import { UptimeRefreshContext } from '../contexts'; -import { MountWithReduxProvider } from '../lib/helper/helper_with_redux'; -import { mountWithRouter } from '../lib/helper/enzyme_helpers'; +import { mountWithRouter, MountWithReduxProvider } from '../lib'; import { createMemoryHistory } from 'history'; interface MockUrlParamsComponentProps { diff --git a/x-pack/plugins/uptime/public/lib/helper/index.ts b/x-pack/plugins/uptime/public/lib/helper/index.ts index 6546b5f9ae6c4..2fce3cc0e54dc 100644 --- a/x-pack/plugins/uptime/public/lib/helper/index.ts +++ b/x-pack/plugins/uptime/public/lib/helper/index.ts @@ -10,3 +10,4 @@ export * from './observability_integration'; export { getChartDateLabel } from './charts'; export { seriesHasDownValues } from './series_has_down_values'; export { UptimeUrlParams, getSupportedUrlParams } from './url_params'; +export { MountWithReduxProvider } from './helper_with_redux'; diff --git a/x-pack/plugins/uptime/public/lib/index.ts b/x-pack/plugins/uptime/public/lib/index.ts new file mode 100644 index 0000000000000..9added9af6592 --- /dev/null +++ b/x-pack/plugins/uptime/public/lib/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 { MountWithReduxProvider } from './helper'; +export * from './helper/enzyme_helpers'; diff --git a/x-pack/plugins/uptime/public/pages/certificates.test.tsx b/x-pack/plugins/uptime/public/pages/certificates.test.tsx index 1218a1882b3bf..ff5f1afcaa290 100644 --- a/x-pack/plugins/uptime/public/pages/certificates.test.tsx +++ b/x-pack/plugins/uptime/public/pages/certificates.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../lib'; import { CertificatesPage } from './certificates'; describe('CertificatesPage', () => { diff --git a/x-pack/plugins/uptime/public/pages/monitor.test.tsx b/x-pack/plugins/uptime/public/pages/monitor.test.tsx index 2664f73d26075..80fcfcc271964 100644 --- a/x-pack/plugins/uptime/public/pages/monitor.test.tsx +++ b/x-pack/plugins/uptime/public/pages/monitor.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { MonitorPage } from './monitor'; -import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../lib'; describe('MonitorPage', () => { it('shallow renders expected elements for valid props', () => { diff --git a/x-pack/plugins/uptime/public/pages/not_found.test.tsx b/x-pack/plugins/uptime/public/pages/not_found.test.tsx index cc9ea1a62cd0f..8d5b20e45303d 100644 --- a/x-pack/plugins/uptime/public/pages/not_found.test.tsx +++ b/x-pack/plugins/uptime/public/pages/not_found.test.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../lib'; import { NotFoundPage } from './not_found'; describe('NotFoundPage', () => { diff --git a/x-pack/plugins/uptime/public/pages/overview.test.tsx b/x-pack/plugins/uptime/public/pages/overview.test.tsx index b4949a84a6e36..cfc140e6b22a3 100644 --- a/x-pack/plugins/uptime/public/pages/overview.test.tsx +++ b/x-pack/plugins/uptime/public/pages/overview.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { OverviewPageComponent } from './overview'; -import { shallowWithRouter } from '../lib/helper/enzyme_helpers'; +import { shallowWithRouter } from '../lib'; describe('MonitorPage', () => { const indexPattern = { diff --git a/x-pack/plugins/uptime/tsconfig.json b/x-pack/plugins/uptime/tsconfig.json index 0b98204001753..531ee2ecd8d2b 100644 --- a/x-pack/plugins/uptime/tsconfig.json +++ b/x-pack/plugins/uptime/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", @@ -12,6 +12,7 @@ "public/**/*", "public/components/monitor/status_details/location_map/embeddables/low_poly_layer.json", "server/**/*", + "server/lib/requests/__fixtures__/monitor_charts_mock.json", "../../../typings/**/*" ], "references": [ diff --git a/x-pack/plugins/watcher/tsconfig.json b/x-pack/plugins/watcher/tsconfig.json index 41bcb015d2d94..e8dabe8cd40a9 100644 --- a/x-pack/plugins/watcher/tsconfig.json +++ b/x-pack/plugins/watcher/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", diff --git a/x-pack/plugins/xpack_legacy/tsconfig.json b/x-pack/plugins/xpack_legacy/tsconfig.json index fdac21a391313..3bfc78b72cb3e 100644 --- a/x-pack/plugins/xpack_legacy/tsconfig.json +++ b/x-pack/plugins/xpack_legacy/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.project.json", + "extends": "../../../tsconfig.base.json", "compilerOptions": { "composite": true, "outDir": "./target/types", From 2eae0969cbfe81ceb42b4d5e1146a2f172062ecd Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Mon, 5 Apr 2021 13:39:15 -0600 Subject: [PATCH 098/106] [file upload] document file upload privileges and provide actionable UI when failures occur (#95883) * [file upload] document file upload privileges and provide actionable UI when failures occur * doc link * call hasImportPermission * docs tweeks * tslint * Update docs/maps/import-geospatial-data.asciidoc Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update docs/maps/import-geospatial-data.asciidoc Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update docs/maps/import-geospatial-data.asciidoc Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * Update docs/maps/import-geospatial-data.asciidoc Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * review feedback * fix bullet list format * clean-up i18n ids * Update docs/maps/import-geospatial-data.asciidoc Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> * documenation review feedback * add period to last privilege bullet item Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- docs/maps/import-geospatial-data.asciidoc | 24 ++++ .../public/doc_links/doc_links_service.ts | 1 + x-pack/plugins/file_upload/common/types.ts | 5 +- .../components/import_complete_view.tsx | 133 +++++++++++++----- .../components/json_upload_and_parse.tsx | 26 ++++ .../file_upload/public/kibana_services.ts | 1 + .../translations/translations/ja-JP.json | 4 - .../translations/translations/zh-CN.json | 4 - 8 files changed, 154 insertions(+), 44 deletions(-) diff --git a/docs/maps/import-geospatial-data.asciidoc b/docs/maps/import-geospatial-data.asciidoc index fb4250368086e..0218bac58815a 100644 --- a/docs/maps/import-geospatial-data.asciidoc +++ b/docs/maps/import-geospatial-data.asciidoc @@ -6,6 +6,30 @@ To import geospatical data into the Elastic Stack, the data must be indexed as { Geospatial data comes in many formats. Choose an import tool based on the format of your geospatial data. +[discrete] +[[import-geospatial-privileges]] +=== Security privileges + +The {stack-security-features} provide roles and privileges that control which users can upload files. +You can manage your roles, privileges, and +spaces in **{stack-manage-app}** in {kib}. For more information, see +{ref}/security-privileges.html[Security privileges], +<>, and <>. + +To upload GeoJSON files in {kib} with *Maps*, you must have: + +* The `all` {kib} privilege for *Maps*. +* The `all` {kib} privilege for *Index Pattern Management*. +* The `create` and `create_index` index privileges for destination indices. +* To use the index in *Maps*, you must also have the `read` and `view_index_metadata` index privileges for destination indices. + +To upload CSV files in {kib} with the *{file-data-viz}*, you must have privileges to upload GeoJSON files and: + +* The `manage_pipeline` cluster privilege. +* The `read` {kib} privilege for *Machine Learning*. +* The `machine_learning_admin` or `machine_learning_user` role. + + [discrete] === Upload CSV with latitude and longitude columns diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index a946640f58b0d..b179c998f1126 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -216,6 +216,7 @@ export class DocLinksService { }, maps: { guide: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/maps.html`, + importGeospatialPrivileges: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/import-geospatial-data.html#import-geospatial-privileges`, }, monitoring: { alertsKibana: `${ELASTIC_WEBSITE_URL}guide/en/kibana/${DOC_LINK_VERSION}/kibana-alerts.html`, diff --git a/x-pack/plugins/file_upload/common/types.ts b/x-pack/plugins/file_upload/common/types.ts index 0fc59e2b525a8..11cf4ac3615bf 100644 --- a/x-pack/plugins/file_upload/common/types.ts +++ b/x-pack/plugins/file_upload/common/types.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { estypes } from '@elastic/elasticsearch'; import { ES_FIELD_TYPES } from '../../../../src/plugins/data/common'; export interface HasImportPermission { @@ -83,7 +84,9 @@ export interface ImportResponse { pipelineId?: string; docCount: number; failures: ImportFailure[]; - error?: any; + error?: { + error: estypes.ErrorCause; + }; ingestError?: boolean; } diff --git a/x-pack/plugins/file_upload/public/components/import_complete_view.tsx b/x-pack/plugins/file_upload/public/components/import_complete_view.tsx index 29aed0cd52f7e..a3bc2ed082b1a 100644 --- a/x-pack/plugins/file_upload/public/components/import_complete_view.tsx +++ b/x-pack/plugins/file_upload/public/components/import_complete_view.tsx @@ -7,19 +7,20 @@ import React, { Component, Fragment } from 'react'; import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; import { EuiButtonIcon, EuiCallOut, EuiCopy, EuiFlexGroup, EuiFlexItem, + EuiLink, EuiSpacer, EuiText, EuiTitle, } from '@elastic/eui'; -import { FormattedMessage } from '@kbn/i18n/react'; import { CodeEditor, KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; -import { getHttp, getUiSettings } from '../kibana_services'; +import { getDocLinks, getHttp, getUiSettings } from '../kibana_services'; import { ImportResults } from '../importer'; const services = { @@ -27,8 +28,10 @@ const services = { }; interface Props { + failedPermissionCheck: boolean; importResults?: ImportResults; indexPatternResp?: object; + indexName: string; } export class ImportCompleteView extends Component { @@ -57,9 +60,12 @@ export class ImportCompleteView extends Component { iconType="copy" color="text" data-test-subj={copyButtonDataTestSubj} - aria-label={i18n.translate('xpack.fileUpload.copyButtonAriaLabel', { - defaultMessage: 'Copy to clipboard', - })} + aria-label={i18n.translate( + 'xpack.fileUpload.importComplete.copyButtonAriaLabel', + { + defaultMessage: 'Copy to clipboard', + } + )} /> )} @@ -90,21 +96,65 @@ export class ImportCompleteView extends Component { } _getStatusMsg() { + if (this.props.failedPermissionCheck) { + return ( + +

+ {i18n.translate('xpack.fileUpload.importComplete.permissionFailureMsg', { + defaultMessage: + 'You do not have permission to create or import data into index "{indexName}".', + values: { indexName: this.props.indexName }, + })} +

+ + {i18n.translate('xpack.fileUpload.importComplete.permission.docLink', { + defaultMessage: 'View file import permissions', + })} + +
+ ); + } + if (!this.props.importResults || !this.props.importResults.success) { - return i18n.translate('xpack.fileUpload.uploadFailureMsg', { - defaultMessage: 'File upload failed.', - }); + const errorMsg = + this.props.importResults && this.props.importResults.error + ? i18n.translate('xpack.fileUpload.importComplete.uploadFailureMsgErrorBlock', { + defaultMessage: 'Error: {reason}', + values: { reason: this.props.importResults.error.error.reason }, + }) + : ''; + return ( + +

{errorMsg}

+
+ ); } - const successMsg = i18n.translate('xpack.fileUpload.uploadSuccessMsg', { - defaultMessage: 'File upload complete: indexed {numFeatures} features.', + const successMsg = i18n.translate('xpack.fileUpload.importComplete.uploadSuccessMsg', { + defaultMessage: 'Indexed {numFeatures} features.', values: { numFeatures: this.props.importResults.docCount, }, }); const failedFeaturesMsg = this.props.importResults.failures?.length - ? i18n.translate('xpack.fileUpload.failedFeaturesMsg', { + ? i18n.translate('xpack.fileUpload.importComplete.failedFeaturesMsg', { defaultMessage: 'Unable to index {numFailures} features.', values: { numFailures: this.props.importResults.failures.length, @@ -112,47 +162,60 @@ export class ImportCompleteView extends Component { }) : ''; - return `${successMsg} ${failedFeaturesMsg}`; + return ( + +

{`${successMsg} ${failedFeaturesMsg}`}

+
+ ); + } + + _renderIndexManagementMsg() { + return this.props.importResults && this.props.importResults.success ? ( + +

+ + + + +

+
+ ) : null; } render() { return ( - -

{this._getStatusMsg()}

-
+ {this._getStatusMsg()} + {this._renderCodeEditor( this.props.importResults, - i18n.translate('xpack.fileUpload.jsonImport.indexingResponse', { + i18n.translate('xpack.fileUpload.importComplete.indexingResponse', { defaultMessage: 'Import response', }), 'indexRespCopyButton' )} {this._renderCodeEditor( this.props.indexPatternResp, - i18n.translate('xpack.fileUpload.jsonImport.indexPatternResponse', { + i18n.translate('xpack.fileUpload.importComplete.indexPatternResponse', { defaultMessage: 'Index pattern response', }), 'indexPatternRespCopyButton' )} - -
- - - - -
-
+ {this._renderIndexManagementMsg()}
); } diff --git a/x-pack/plugins/file_upload/public/components/json_upload_and_parse.tsx b/x-pack/plugins/file_upload/public/components/json_upload_and_parse.tsx index 371d68443bc2c..d73c6e9c5fb3a 100644 --- a/x-pack/plugins/file_upload/public/components/json_upload_and_parse.tsx +++ b/x-pack/plugins/file_upload/public/components/json_upload_and_parse.tsx @@ -16,6 +16,7 @@ import { FileUploadComponentProps } from '../lazy_load_bundle'; import { ImportResults } from '../importer'; import { GeoJsonImporter } from '../importer/geojson_importer'; import { Settings } from '../../common'; +import { hasImportPermission } from '../api'; enum PHASE { CONFIGURE = 'CONFIGURE', @@ -31,6 +32,7 @@ function getWritingToIndexMsg(progress: number) { } interface State { + failedPermissionCheck: boolean; geoFieldType: ES_FIELD_TYPES.GEO_POINT | ES_FIELD_TYPES.GEO_SHAPE; importStatus: string; importResults?: ImportResults; @@ -45,6 +47,7 @@ export class JsonUploadAndParse extends Component ); } diff --git a/x-pack/plugins/file_upload/public/kibana_services.ts b/x-pack/plugins/file_upload/public/kibana_services.ts index a604136ca34e4..dfe2785e7a2bc 100644 --- a/x-pack/plugins/file_upload/public/kibana_services.ts +++ b/x-pack/plugins/file_upload/public/kibana_services.ts @@ -15,6 +15,7 @@ export function setStartServices(core: CoreStart, plugins: FileUploadStartDepend pluginsStart = plugins; } +export const getDocLinks = () => coreStart.docLinks; export const getIndexPatternService = () => pluginsStart.data.indexPatterns; export const getHttp = () => coreStart.http; export const getSavedObjectsClient = () => coreStart.savedObjects.client; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 6dc490b4ffc53..dc038c1a7959d 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -8169,10 +8169,6 @@ "xpack.fileUpload.indexSettings.indexNameAlreadyExistsErrorMessage": "インデックス名またはパターンはすでに存在します。", "xpack.fileUpload.indexSettings.indexNameContainsIllegalCharactersErrorMessage": "インデックス名に許可されていない文字が含まれています。", "xpack.fileUpload.indexSettings.indexNameGuidelines": "インデックス名ガイドライン", - "xpack.fileUpload.jsonImport.indexingResponse": "インデックス応答", - "xpack.fileUpload.jsonImport.indexMgmtLink": "インデックス管理", - "xpack.fileUpload.jsonImport.indexModsMsg": "次を使用すると、その他のインデックス修正を行うことができます。\n", - "xpack.fileUpload.jsonImport.indexPatternResponse": "インデックスパターン応答", "xpack.fileUpload.jsonUploadAndParse.dataIndexingError": "データインデックスエラー", "xpack.fileUpload.jsonUploadAndParse.indexPatternError": "インデックスパターンエラー", "xpack.fleet.agentBulkActions.clearSelection": "選択した項目をクリア", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 32574690b13f2..117c33a286d88 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -8242,10 +8242,6 @@ "xpack.fileUpload.indexSettings.indexNameAlreadyExistsErrorMessage": "索引名称或模式已存在。", "xpack.fileUpload.indexSettings.indexNameContainsIllegalCharactersErrorMessage": "索引名称包含非法字符。", "xpack.fileUpload.indexSettings.indexNameGuidelines": "索引名称指引", - "xpack.fileUpload.jsonImport.indexingResponse": "索引响应", - "xpack.fileUpload.jsonImport.indexMgmtLink": "索引管理", - "xpack.fileUpload.jsonImport.indexModsMsg": "要进一步做索引修改,可以使用\n", - "xpack.fileUpload.jsonImport.indexPatternResponse": "索引模式响应", "xpack.fileUpload.jsonUploadAndParse.dataIndexingError": "数据索引错误", "xpack.fileUpload.jsonUploadAndParse.indexPatternError": "索引模式错误", "xpack.fleet.agentBulkActions.agentsSelected": "已选择 {count, plural, other {# 个代理}}", From f9917a6c8a9d8cf41642e696e959e07ca4455f28 Mon Sep 17 00:00:00 2001 From: Clint Andrew Hall Date: Mon, 5 Apr 2021 15:28:15 -0500 Subject: [PATCH 099/106] Add Input Controls project configuration (#96238) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .github/workflows/project-assigner.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/project-assigner.yml b/.github/workflows/project-assigner.yml index d9d2d6d1ddb8b..37d04abda7530 100644 --- a/.github/workflows/project-assigner.yml +++ b/.github/workflows/project-assigner.yml @@ -11,7 +11,7 @@ jobs: uses: elastic/github-actions/project-assigner@v2.0.0 id: project_assigner with: - issue-mappings: '[{"label": "Feature:Lens", "projectNumber": 32, "columnName": "Long-term goals"}, {"label": "Feature:Canvas", "projectNumber": 38, "columnName": "Inbox"}, {"label": "Feature:Dashboard", "projectNumber": 68, "columnName": "Inbox"}, {"label": "Feature:Drilldowns", "projectNumber": 68, "columnName": "Inbox"}]' + issue-mappings: '[{"label": "Feature:Lens", "projectNumber": 32, "columnName": "Long-term goals"}, {"label": "Feature:Canvas", "projectNumber": 38, "columnName": "Inbox"}, {"label": "Feature:Dashboard", "projectNumber": 68, "columnName": "Inbox"}, {"label": "Feature:Drilldowns", "projectNumber": 68, "columnName": "Inbox"}], {"label": "Feature:Input Controls", "projectNumber": 72, "columnName": "Inbox"}]' ghToken: ${{ secrets.PROJECT_ASSIGNER_TOKEN }} From 5667435c382a49fa92df0a2acbc27fdb07b49192 Mon Sep 17 00:00:00 2001 From: Clint Andrew Hall Date: Mon, 5 Apr 2021 15:32:29 -0500 Subject: [PATCH 100/106] [tech-debt] Remove defunct opacity parameters from EUI shadow functions (#96191) Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../canvas/public/components/page_manager/page_manager.scss | 2 +- .../canvas/public/components/workpad_page/workpad_page.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/canvas/public/components/page_manager/page_manager.scss b/x-pack/plugins/canvas/public/components/page_manager/page_manager.scss index 2ed6884542b18..620e0eb113d36 100644 --- a/x-pack/plugins/canvas/public/components/page_manager/page_manager.scss +++ b/x-pack/plugins/canvas/public/components/page_manager/page_manager.scss @@ -66,7 +66,7 @@ text-decoration: none; .canvasPageManager__pagePreview { - @include euiBottomShadowMedium($opacity: .3); + @include euiBottomShadowMedium; } .canvasPageManager__controls { diff --git a/x-pack/plugins/canvas/public/components/workpad_page/workpad_page.scss b/x-pack/plugins/canvas/public/components/workpad_page/workpad_page.scss index 9266273406b84..e770f10927552 100644 --- a/x-pack/plugins/canvas/public/components/workpad_page/workpad_page.scss +++ b/x-pack/plugins/canvas/public/components/workpad_page/workpad_page.scss @@ -1,5 +1,5 @@ .canvasPage { - @include euiBottomShadowFlat($opacity: .4); + @include euiBottomShadowFlat; z-index: initial; position: absolute; top: 0; From 56d9f3d96832f67283ee4a35e306f89fa59ad2f4 Mon Sep 17 00:00:00 2001 From: Constance Date: Mon, 5 Apr 2021 13:48:00 -0700 Subject: [PATCH 101/106] [App Search] API logs: Add log detail flyout (#96162) * Set up helper for showing JSON request/response bodies * Set up mock API log obj for tests to use * Add ApiLogLogic file for flyout handling * Add ApiLogFlyout component * Update views to load flyout * Update table to open flyout * Update x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts * PR feedback: comments Co-authored-by: Byron Hulcher Co-authored-by: Byron Hulcher Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../api_logs/__mocks__/api_log.mock.ts | 17 +++ .../api_logs/api_log/api_log_flyout.test.tsx | 62 ++++++++ .../api_logs/api_log/api_log_flyout.tsx | 137 ++++++++++++++++++ .../api_logs/api_log/api_log_logic.test.tsx | 57 ++++++++ .../api_logs/api_log/api_log_logic.ts | 44 ++++++ .../components/api_logs/api_log/index.ts | 9 ++ .../components/api_logs/api_logs.tsx | 2 + .../api_logs/api_logs_logic.test.ts | 13 +- .../components/api_logs_table.test.tsx | 3 +- .../api_logs/components/api_logs_table.tsx | 4 +- .../app_search/components/api_logs/index.ts | 1 + .../components/api_logs/utils.test.ts | 21 ++- .../app_search/components/api_logs/utils.ts | 10 ++ .../components/recent_api_logs.tsx | 3 +- 14 files changed, 368 insertions(+), 15 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/__mocks__/api_log.mock.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.ts create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/index.ts diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/__mocks__/api_log.mock.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/__mocks__/api_log.mock.ts new file mode 100644 index 0000000000000..6106cb049c7a1 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/__mocks__/api_log.mock.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const mockApiLog = { + timestamp: '1970-01-01T12:00:00.000Z', + http_method: 'POST', + status: 200, + user_agent: 'Mozilla/5.0', + full_request_path: '/api/as/v1/engines/national-parks-demo/search.json', + request_body: '{"query":"test search"}', + response_body: + '{"meta":{"page":{"current":1,"total_pages":0,"total_results":0,"size":20}},"results":[]}', +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.test.tsx new file mode 100644 index 0000000000000..6bebeee80465c --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.test.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 { setMockValues, setMockActions } from '../../../../__mocks__'; +import { mockApiLog } from '../__mocks__/api_log.mock'; + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { EuiFlyout, EuiBadge } from '@elastic/eui'; + +import { ApiLogFlyout, ApiLogHeading } from './api_log_flyout'; + +describe('ApiLogFlyout', () => { + const values = { + isFlyoutOpen: true, + apiLog: mockApiLog, + }; + const actions = { + closeFlyout: jest.fn(), + }; + + beforeEach(() => { + jest.clearAllMocks(); + setMockValues(values); + setMockActions(actions); + }); + + it('renders', () => { + const wrapper = shallow(); + + expect(wrapper.find('h2').text()).toEqual('Request details'); + expect(wrapper.find(ApiLogHeading).last().dive().find('h3').text()).toEqual('Response body'); + expect(wrapper.find(EuiBadge).prop('children')).toEqual('POST'); + }); + + it('closes the flyout', () => { + const wrapper = shallow(); + + wrapper.find(EuiFlyout).simulate('close'); + expect(actions.closeFlyout).toHaveBeenCalled(); + }); + + it('does not render if the flyout is not open', () => { + setMockValues({ ...values, isFlyoutOpen: false }); + const wrapper = shallow(); + + expect(wrapper.isEmptyRender()).toBe(true); + }); + + it('does not render if a current apiLog has not been set', () => { + setMockValues({ ...values, apiLog: null }); + const wrapper = shallow(); + + expect(wrapper.isEmptyRender()).toBe(true); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.tsx new file mode 100644 index 0000000000000..dd53e997da0f7 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_flyout.tsx @@ -0,0 +1,137 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.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 { useActions, useValues } from 'kea'; + +import { + EuiPortal, + EuiFlyout, + EuiFlyoutHeader, + EuiTitle, + EuiFlyoutBody, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiBadge, + EuiHealth, + EuiText, + EuiCode, + EuiCodeBlock, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +import { getStatusColor, attemptToFormatJson } from '../utils'; + +import { ApiLogLogic } from './'; + +export const ApiLogFlyout: React.FC = () => { + const { isFlyoutOpen, apiLog } = useValues(ApiLogLogic); + const { closeFlyout } = useActions(ApiLogLogic); + + if (!isFlyoutOpen) return null; + if (!apiLog) return null; + + return ( + + + + +

+ {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.flyout.title', { + defaultMessage: 'Request details', + })} +

+
+
+ + + + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.methodTitle', { + defaultMessage: 'Method', + })} + +
+ {apiLog.http_method} +
+
+ + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.statusTitle', { + defaultMessage: 'Status', + })} + + {apiLog.status} + + + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.timestampTitle', { + defaultMessage: 'Timestamp', + })} + + {apiLog.timestamp} + +
+ + + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.userAgentTitle', { + defaultMessage: 'User agent', + })} + + + {apiLog.user_agent} + + + + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.requestPathTitle', { + defaultMessage: 'Request path', + })} + + + {apiLog.full_request_path} + + + + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.requestBodyTitle', { + defaultMessage: 'Request body', + })} + + + {attemptToFormatJson(apiLog.request_body)} + + + + + {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.responseBodyTitle', { + defaultMessage: 'Response body', + })} + + + {attemptToFormatJson(apiLog.response_body)} + +
+
+
+ ); +}; + +export const ApiLogHeading: React.FC = ({ children }) => ( + +

{children}

+
+); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.test.tsx new file mode 100644 index 0000000000000..2b7ca7510e8e1 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { LogicMounter } from '../../../../__mocks__'; +import { mockApiLog } from '../__mocks__/api_log.mock'; + +import { ApiLogLogic } from './'; + +describe('ApiLogLogic', () => { + const { mount } = new LogicMounter(ApiLogLogic); + + const DEFAULT_VALUES = { + isFlyoutOpen: false, + apiLog: null, + }; + + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('has expected default values', () => { + mount(); + expect(ApiLogLogic.values).toEqual(DEFAULT_VALUES); + }); + + describe('actions', () => { + describe('openFlyout', () => { + it('sets isFlyoutOpen to true & sets the current apiLog', () => { + mount({ isFlyoutOpen: false, apiLog: null }); + ApiLogLogic.actions.openFlyout(mockApiLog); + + expect(ApiLogLogic.values).toEqual({ + ...DEFAULT_VALUES, + isFlyoutOpen: true, + apiLog: mockApiLog, + }); + }); + }); + + describe('closeFlyout', () => { + it('sets isFlyoutOpen to false & resets the current apiLog', () => { + mount({ isFlyoutOpen: true, apiLog: mockApiLog }); + ApiLogLogic.actions.closeFlyout(); + + expect(ApiLogLogic.values).toEqual({ + ...DEFAULT_VALUES, + isFlyoutOpen: false, + apiLog: null, + }); + }); + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.ts new file mode 100644 index 0000000000000..8b7c5f70f605c --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/api_log_logic.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { kea, MakeLogicType } from 'kea'; + +import { ApiLog } from '../types'; + +interface ApiLogValues { + isFlyoutOpen: boolean; + apiLog: ApiLog | null; +} + +interface ApiLogActions { + openFlyout(apiLog: ApiLog): { apiLog: ApiLog }; + closeFlyout(): void; +} + +export const ApiLogLogic = kea>({ + path: ['enterprise_search', 'app_search', 'api_log_logic'], + actions: () => ({ + openFlyout: (apiLog) => ({ apiLog }), + closeFlyout: true, + }), + reducers: () => ({ + isFlyoutOpen: [ + false, + { + openFlyout: () => true, + closeFlyout: () => false, + }, + ], + apiLog: [ + null, + { + openFlyout: (_, { apiLog }) => apiLog, + closeFlyout: () => null, + }, + ], + }), +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/index.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/index.ts new file mode 100644 index 0000000000000..dcf949d9bf222 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_log/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 { ApiLogFlyout } from './api_log_flyout'; +export { ApiLogLogic } from './api_log_logic'; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx index 8ca15906783f9..4690911fad772 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs.tsx @@ -26,6 +26,7 @@ import { Loading } from '../../../shared/loading'; import { LogRetentionCallout, LogRetentionTooltip, LogRetentionOptions } from '../log_retention'; +import { ApiLogFlyout } from './api_log'; import { ApiLogsTable, NewApiEventsPrompt } from './components'; import { API_LOGS_TITLE, RECENT_API_EVENTS } from './constants'; @@ -75,6 +76,7 @@ export const ApiLogs: React.FC = ({ engineBreadcrumb }) => { + diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts index 7b3ee80668ac7..2eda4c6323fa5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/api_logs_logic.test.ts @@ -6,6 +6,7 @@ */ import { LogicMounter, mockHttpValues, mockFlashMessageHelpers } from '../../../__mocks__'; +import { mockApiLog } from './__mocks__/api_log.mock'; import '../../__mocks__/engine_logic.mock'; import { nextTick } from '@kbn/test/jest'; @@ -29,17 +30,7 @@ describe('ApiLogsLogic', () => { }; const MOCK_API_RESPONSE = { - results: [ - { - timestamp: '1970-01-01T12:00:00.000Z', - http_method: 'POST', - status: 200, - user_agent: 'some browser agent string', - full_request_path: '/api/as/v1/engines/national-parks-demo/search.json', - request_body: '{"someMockRequest":"hello"}', - response_body: '{"someMockResponse":"world"}', - }, - ], + results: [mockApiLog, mockApiLog], meta: { page: { current: 1, diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx index 99fce81ca348f..768295ec1389c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.test.tsx @@ -53,6 +53,7 @@ describe('ApiLogsTable', () => { }; const actions = { onPaginate: jest.fn(), + openFlyout: jest.fn(), }; beforeEach(() => { @@ -86,7 +87,7 @@ describe('ApiLogsTable', () => { expect(wrapper.find(EuiButtonEmpty)).toHaveLength(3); wrapper.find('[data-test-subj="ApiLogsTableDetailsButton"]').first().simulate('click'); - // TODO: API log details flyout + expect(actions.openFlyout).toHaveBeenCalled(); }); it('renders an empty prompt if no items are passed', () => { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx index 8ebcc4350f7fc..5ecf8e1ba3330 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/api_logs_table.tsx @@ -22,6 +22,7 @@ import { FormattedRelative } from '@kbn/i18n/react'; import { convertMetaToPagination, handlePageChange } from '../../../../shared/table_pagination'; +import { ApiLogLogic } from '../api_log'; import { ApiLogsLogic } from '../index'; import { ApiLog } from '../types'; import { getStatusColor } from '../utils'; @@ -34,6 +35,7 @@ interface Props { export const ApiLogsTable: React.FC = ({ hasPagination }) => { const { dataLoading, apiLogs, meta } = useValues(ApiLogsLogic); const { onPaginate } = useActions(ApiLogsLogic); + const { openFlyout } = useActions(ApiLogLogic); const columns: Array> = [ { @@ -81,7 +83,7 @@ export const ApiLogsTable: React.FC = ({ hasPagination }) => { size="s" className="apiLogDetailButton" data-test-subj="ApiLogsTableDetailsButton" - // TODO: flyout onclick + onClick={() => openFlyout(apiLog)} > {i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.detailsButtonLabel', { defaultMessage: 'Details', diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts index 183956e51d8d4..568026dab231f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/index.ts @@ -7,5 +7,6 @@ export { API_LOGS_TITLE } from './constants'; export { ApiLogsTable, NewApiEventsPrompt } from './components'; +export { ApiLogFlyout } from './api_log'; export { ApiLogs } from './api_logs'; export { ApiLogsLogic } from './api_logs_logic'; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts index f9b6dcea2cbf3..ac464e2af353d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts @@ -5,7 +5,9 @@ * 2.0. */ -import { getDateString, getStatusColor } from './utils'; +import dedent from 'dedent'; + +import { getDateString, getStatusColor, attemptToFormatJson } from './utils'; describe('getDateString', () => { const mockDate = jest @@ -32,3 +34,20 @@ describe('getStatusColor', () => { expect(getStatusColor(503)).toEqual('danger'); }); }); + +describe('attemptToFormatJson', () => { + it('takes an unformatted JSON string and correctly newlines/indents it', () => { + expect(attemptToFormatJson('{"hello":"world","lorem":{"ipsum":"dolor","sit":"amet"}}')) + .toEqual(dedent`{ + "hello": "world", + "lorem": { + "ipsum": "dolor", + "sit": "amet" + } + }`); + }); + + it('returns the original content if it is not properly formatted JSON', () => { + expect(attemptToFormatJson('{invalid json}')).toEqual('{invalid json}'); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts index 3217a1561ce76..7e5f19686f13b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts @@ -19,3 +19,13 @@ export const getStatusColor = (status: number) => { if (status >= 500) color = 'danger'; return color; }; + +export const attemptToFormatJson = (possibleJson: string) => { + try { + // it is JSON, we can format it with newlines/indentation + return JSON.stringify(JSON.parse(possibleJson), null, 2); + } catch { + // if it's not JSON, we return the original content + return possibleJson; + } +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx index 3686f380407e2..18f27c3a1e834 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/components/recent_api_logs.tsx @@ -13,7 +13,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { EuiButtonEmptyTo } from '../../../../shared/react_router_helpers'; import { ENGINE_API_LOGS_PATH } from '../../../routes'; -import { ApiLogsLogic, ApiLogsTable, NewApiEventsPrompt } from '../../api_logs'; +import { ApiLogsLogic, ApiLogsTable, NewApiEventsPrompt, ApiLogFlyout } from '../../api_logs'; import { RECENT_API_EVENTS } from '../../api_logs/constants'; import { DataPanel } from '../../data_panel'; import { generateEnginePath } from '../../engine'; @@ -46,6 +46,7 @@ export const RecentApiLogs: React.FC = () => { hasBorder > + ); }; From 7da1b82b7ee07d94bee2dc2540a7161731e4c513 Mon Sep 17 00:00:00 2001 From: Rashmi Kulkarni Date: Mon, 5 Apr 2021 15:24:22 -0700 Subject: [PATCH 102/106] fixes a skipped management x-pack test (#96178) * fixes a skipped management x-pack test * modified the test to incoroporate the review comments Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../management/users/edit_user/user_form.tsx | 5 ++++ .../functional/apps/security/management.js | 29 ++++++++++--------- .../functional/page_objects/security_page.ts | 5 ++++ 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/security/public/management/users/edit_user/user_form.tsx b/x-pack/plugins/security/public/management/users/edit_user/user_form.tsx index 8433f54a73343..29d87e31797cc 100644 --- a/x-pack/plugins/security/public/management/users/edit_user/user_form.tsx +++ b/x-pack/plugins/security/public/management/users/edit_user/user_form.tsx @@ -262,6 +262,7 @@ export const UserForm: FunctionComponent = ({ > = ({ > = ({ > = ({ > = ({ > { - // await PageObjects.security.login('elastic', 'changeme'); await PageObjects.security.initTests(); await kibanaServer.uiSettings.update({ defaultIndex: 'logstash-*', @@ -43,20 +44,26 @@ export default function ({ getService, getPageObjects }) { await PageObjects.settings.navigateTo(); }); + after(async () => { + await security.role.delete('logstash-readonly'); + await security.user.delete('dashuser', 'new-user'); + await PageObjects.security.forceLogout(); + }); + describe('Security', () => { describe('navigation', () => { it('Can navigate to create user section', async () => { await PageObjects.security.clickElasticsearchUsers(); await PageObjects.security.clickCreateNewUser(); const currentUrl = await browser.getCurrentUrl(); - expect(currentUrl).to.contain(EDIT_USERS_PATH); + expect(currentUrl).to.contain(CREATE_USERS_PATH); }); it('Clicking cancel in create user section brings user back to listing', async () => { await PageObjects.security.clickCancelEditUser(); const currentUrl = await browser.getCurrentUrl(); expect(currentUrl).to.contain(USERS_PATH); - expect(currentUrl).to.not.contain(EDIT_USERS_PATH); + expect(currentUrl).to.not.contain(CREATE_USERS_PATH); }); it('Clicking save in create user section brings user back to listing', async () => { @@ -67,12 +74,11 @@ export default function ({ getService, getPageObjects }) { await testSubjects.setValue('passwordConfirmationInput', '123456'); await testSubjects.setValue('userFormFullNameInput', 'Full User Name'); await testSubjects.setValue('userFormEmailInput', 'example@example.com'); - - await PageObjects.security.clickSaveEditUser(); + await PageObjects.security.clickSaveCreateUser(); const currentUrl = await browser.getCurrentUrl(); expect(currentUrl).to.contain(USERS_PATH); - expect(currentUrl).to.not.contain(EDIT_USERS_PATH); + expect(currentUrl).to.not.contain(CREATE_USERS_PATH); }); it('Can navigate to edit user section', async () => { @@ -143,14 +149,11 @@ export default function ({ getService, getPageObjects }) { await testSubjects.setValue('passwordConfirmationInput', '123456'); await testSubjects.setValue('userFormFullNameInput', 'dashuser'); await testSubjects.setValue('userFormEmailInput', 'example@example.com'); - await PageObjects.security.assignRoleToUser('kibana_dashboard_only_user'); await PageObjects.security.assignRoleToUser('logstash-readonly'); - - await PageObjects.security.clickSaveEditUser(); - + await PageObjects.security.clickSaveCreateUser(); await PageObjects.settings.navigateTo(); await testSubjects.click('users'); - await PageObjects.settings.clickLinkText('kibana_dashboard_only_user'); + await find.clickByButtonText('logstash-readonly'); const currentUrl = await browser.getCurrentUrl(); expect(currentUrl).to.contain(EDIT_ROLES_PATH); }); diff --git a/x-pack/test/functional/page_objects/security_page.ts b/x-pack/test/functional/page_objects/security_page.ts index f153050018609..97a5c517db794 100644 --- a/x-pack/test/functional/page_objects/security_page.ts +++ b/x-pack/test/functional/page_objects/security_page.ts @@ -290,6 +290,11 @@ export function SecurityPageProvider({ getService, getPageObjects }: FtrProvider await PageObjects.header.waitUntilLoadingHasFinished(); } + async clickSaveCreateUser() { + await find.clickByButtonText('Create user'); + await PageObjects.header.waitUntilLoadingHasFinished(); + } + async clickSaveEditRole() { const saveButton = await retry.try(() => testSubjects.find('roleFormSaveButton')); await saveButton.moveMouseTo(); From d4b0f92c84ea44c2de3e95385f666ca4c9feb61f Mon Sep 17 00:00:00 2001 From: Nick Partridge Date: Mon, 5 Apr 2021 18:02:13 -0500 Subject: [PATCH 103/106] [Dashboard] Fix Lens and TSVB chart tooltip positioning relative to global headers (#94247) --- src/core/public/rendering/_base.scss | 14 ++++++++++++++ src/core/public/rendering/rendering_service.tsx | 1 + .../visualizations/views/timeseries/index.js | 1 + .../vis_type_xy/public/components/xy_settings.tsx | 4 +++- .../public/pie_visualization/render_function.tsx | 2 ++ .../__snapshots__/expression.test.tsx.snap | 7 +++++++ .../lens/public/xy_visualization/expression.tsx | 2 +- 7 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/core/public/rendering/_base.scss b/src/core/public/rendering/_base.scss index de13785a17f5b..ed2d9bc0b3917 100644 --- a/src/core/public/rendering/_base.scss +++ b/src/core/public/rendering/_base.scss @@ -11,6 +11,16 @@ min-height: 100%; } +#app-fixed-viewport { + pointer-events: none; + visibility: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + .app-wrapper { display: flex; flex-flow: column nowrap; @@ -35,6 +45,10 @@ @mixin kbnAffordForHeader($headerHeight) { padding-top: $headerHeight; + #app-fixed-viewport { + top: $headerHeight; + } + .euiFlyout, .euiCollapsibleNav { top: $headerHeight; diff --git a/src/core/public/rendering/rendering_service.tsx b/src/core/public/rendering/rendering_service.tsx index 843f2a253f33e..787fa475c7d5f 100644 --- a/src/core/public/rendering/rendering_service.tsx +++ b/src/core/public/rendering/rendering_service.tsx @@ -52,6 +52,7 @@ export class RenderingService { {chromeHeader}
+
{bannerComponent}
{appComponent}
diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js index a90faea50f22a..2911a9ee5d6e9 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js @@ -149,6 +149,7 @@ export const TimeSeries = ({ tooltip={{ snap: true, type: tooltipMode === 'show_focused' ? TooltipType.Follow : TooltipType.VerticalCursor, + boundary: document.getElementById('app-fixed-viewport') ?? undefined, headerFormatter: tooltipFormatter, }} externalPointerEvents={{ tooltip: { visible: false } }} diff --git a/src/plugins/vis_type_xy/public/components/xy_settings.tsx b/src/plugins/vis_type_xy/public/components/xy_settings.tsx index 59bed0060a6a6..8922f512522a0 100644 --- a/src/plugins/vis_type_xy/public/components/xy_settings.tsx +++ b/src/plugins/vis_type_xy/public/components/xy_settings.tsx @@ -148,13 +148,15 @@ export const XYSettings: FC = ({ : headerValueFormatter && (tooltip.detailedTooltip ? undefined : ({ value }: any) => headerValueFormatter(value)); + const boundary = document.getElementById('app-fixed-viewport') ?? undefined; const tooltipProps: TooltipProps = tooltip.detailedTooltip ? { ...tooltip, + boundary, customTooltip: tooltip.detailedTooltip(headerFormatter), headerFormatter: undefined, } - : { ...tooltip, headerFormatter }; + : { ...tooltip, boundary, headerFormatter }; return (

gI$Y}{e@6R#pmQ*DAL5CAu{04|&D2a%lB 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�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
amB&qN^Uz$qFmx2JqnYY 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�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�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

NE7ueJu8z@{I9ooTg% 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 literal 0 HcmV?d00001 diff --git a/x-pack/test/functional/es_archives/getting_started/shakespeare/mappings.json b/x-pack/test/functional/es_archives/getting_started/shakespeare/mappings.json new file mode 100644 index 0000000000000..0e030c54d4912 --- /dev/null +++ b/x-pack/test/functional/es_archives/getting_started/shakespeare/mappings.json @@ -0,0 +1,28 @@ +{ + "type": "index", + "value": { + "index": "shakespeare", + "mappings": { + "properties": { + "line_id": { + "type": "integer" + }, + "play_name": { + "type": "keyword" + }, + "speaker": { + "type": "keyword" + }, + "speech_number": { + "type": "integer" + } + } + }, + "settings": { + "index": { + "number_of_replicas": "1", + "number_of_shards": "5" + } + } + } +} \ No newline at end of file From 91b7770b3ac04cc91bdf6a387518719b9ab5fce1 Mon Sep 17 00:00:00 2001 From: Alison Goryachev Date: Thu, 1 Apr 2021 15:36:05 -0400 Subject: [PATCH 058/106] [Rollups] Update API integration test (#96071) --- .../apis/management/rollup/rollup.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/x-pack/test/api_integration/apis/management/rollup/rollup.js b/x-pack/test/api_integration/apis/management/rollup/rollup.js index a556c8071ca80..699592fd99920 100644 --- a/x-pack/test/api_integration/apis/management/rollup/rollup.js +++ b/x-pack/test/api_integration/apis/management/rollup/rollup.js @@ -24,8 +24,7 @@ export default function ({ getService }) { cleanUp, } = registerHelpers(getService); - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/96002 - describe.skip('jobs', () => { + describe('jobs', () => { after(() => cleanUp()); describe('indices', () => { @@ -57,10 +56,16 @@ export default function ({ getService }) { expect(body.doesMatchIndices).to.be(true); expect(body.doesMatchRollupIndices).to.be(false); expect(body.dateFields).to.eql(['testCreatedField']); - expect(body.keywordFields).to.eql(['testTagField']); - - // Allowing the test to account for future addition of doc_count - expect(body.numericFields.indexOf('testTotalField')).to.be.greaterThan(-1); + // '_tier' is an expected metadata field from ES + // Order is not guaranteed, so we assert against individual field names + ['_tier', 'testTagField'].forEach((keywordField) => { + expect(body.keywordFields.includes(keywordField)).to.be(true); + }); + // '_doc_count' is an expected metadata field from ES + // Order is not guaranteed, so we assert against individual field names + ['_doc_count', 'testTotalField'].forEach((numericField) => { + expect(body.numericFields.includes(numericField)).to.be(true); + }); }); it("should not return any fields when the index pattern doesn't match any indices", async () => { From 9683d32fa55a71a038861bfbd9f2a2c761d72d4f Mon Sep 17 00:00:00 2001 From: Gabriel Landau <42078554+gabriellandau@users.noreply.github.com> Date: Thu, 1 Apr 2021 15:43:37 -0400 Subject: [PATCH 059/106] Standardize process fields in Endpoint Security Telemetry (#95836) * Standardize process fields across process and Target.process * Lint * Bug fix * Typo fix * Add new fields to unit test, fix 0 truthiness bug, and exercise 0 truthiness bug in unit test * Add a PR-requested unit test case * Use Yoda Conditions, Kibana does not Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .../server/lib/telemetry/sender.test.ts | 27 +++ .../server/lib/telemetry/sender.ts | 162 +++++------------- 2 files changed, 67 insertions(+), 122 deletions(-) diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts b/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts index d5edd4678a9a2..b32d2a6542f4a 100644 --- a/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts +++ b/x-pack/plugins/security_solution/server/lib/telemetry/sender.test.ts @@ -41,6 +41,7 @@ describe('TelemetryEventsSender', () => { }, file: { size: 3, + created: 0, path: 'X', test: 'me', another: 'nope', @@ -66,6 +67,20 @@ describe('TelemetryEventsSender', () => { }, something_else: 'nope', }, + process: { + name: 'foo.exe', + nope: 'nope', + executable: null, // null fields are never allowlisted + }, + Target: { + process: { + name: 'bar.exe', + nope: 'nope', + thread: { + id: 1234, + }, + }, + }, }, ]; @@ -85,6 +100,7 @@ describe('TelemetryEventsSender', () => { }, file: { size: 3, + created: 0, path: 'X', Ext: { code_signature: { @@ -106,6 +122,17 @@ describe('TelemetryEventsSender', () => { name: 'windows', }, }, + process: { + name: 'foo.exe', + }, + Target: { + process: { + name: 'bar.exe', + thread: { + id: 1234, + }, + }, + }, }, ]); }); diff --git a/x-pack/plugins/security_solution/server/lib/telemetry/sender.ts b/x-pack/plugins/security_solution/server/lib/telemetry/sender.ts index 114cf5d2d3425..7d723c578e3d0 100644 --- a/x-pack/plugins/security_solution/server/lib/telemetry/sender.ts +++ b/x-pack/plugins/security_solution/server/lib/telemetry/sender.ts @@ -293,10 +293,46 @@ interface AllowlistFields { [key: string]: boolean | AllowlistFields; } +// Allow list process fields within events. This includes "process" and "Target.process".' +/* eslint-disable @typescript-eslint/naming-convention */ +const allowlistProcessFields: AllowlistFields = { + name: true, + executable: true, + command_line: true, + hash: true, + pid: true, + uptime: true, + Ext: { + architecture: true, + code_signature: true, + dll: true, + token: { + integrity_level_name: true, + }, + }, + parent: { + name: true, + executable: true, + command_line: true, + hash: true, + Ext: { + architecture: true, + code_signature: true, + dll: true, + token: { + integrity_level_name: true, + }, + }, + uptime: true, + pid: true, + ppid: true, + }, + thread: true, +}; + // Allow list for the data we include in the events. True means that it is deep-cloned // blindly. Object contents means that we only copy the fields that appear explicitly in // the sub-object. -/* eslint-disable @typescript-eslint/naming-convention */ const allowlistEventFields: AllowlistFields = { '@timestamp': true, agent: true, @@ -332,127 +368,9 @@ const allowlistEventFields: AllowlistFields = { host: { os: true, }, - process: { - name: true, - executable: true, - command_line: true, - hash: true, - pid: true, - uptime: true, - Ext: { - architecture: true, - code_signature: true, - dll: true, - token: { - integrity_level_name: true, - }, - }, - parent: { - name: true, - executable: true, - command_line: true, - hash: true, - Ext: { - architecture: true, - code_signature: true, - dll: true, - token: { - integrity_level_name: true, - }, - }, - uptime: true, - pid: true, - ppid: true, - }, - token: { - integrity_level_name: true, - }, - thread: true, - }, + process: allowlistProcessFields, Target: { - process: { - Ext: { - architecture: true, - code_signature: true, - dll: true, - token: { - integrity_level_name: true, - }, - }, - parent: { - process: { - Ext: { - architecture: true, - code_signature: true, - dll: true, - token: { - integrity_level_name: true, - }, - }, - }, - }, - thread: { - Ext: { - call_stack: true, - start_address: true, - start_address_allocation_offset: true, - start_address_bytes: true, - start_address_bytes_disasm: true, - start_address_bytes_disasm_hash: true, - start_address_details: { - allocation_base: true, - allocation_protection: true, - allocation_size: true, - allocation_type: true, - bytes_address: true, - bytes_allocation_offset: true, - bytes_compressed: true, - bytes_compressed_present: true, - mapped_pe: { - Ext: { - code_signature: { - status: true, - subject_name: true, - trusted: true, - }, - legal_copyright: true, - product_version: true, - }, - company: true, - description: true, - file_version: true, - imphash: true, - original_file_name: true, - product: true, - }, - mapped_pe_path: true, - memory_pe: { - Ext: { - code_signature: { - status: true, - subject_name: true, - trusted: true, - }, - legal_copyright: true, - product_version: true, - }, - company: true, - description: true, - file_version: true, - imphash: true, - original_file_name: true, - product: true, - }, - memory_pe_detected: true, - region_base: true, - region_protection: true, - region_size: true, - region_state: true, - strings: true, - }, - }, - }, - }, + process: allowlistProcessFields, }, }; @@ -462,7 +380,7 @@ export function copyAllowlistedFields( ): TelemetryEvent { return Object.entries(allowlist).reduce((newEvent, [allowKey, allowValue]) => { const eventValue = event[allowKey]; - if (eventValue) { + if (eventValue !== null && eventValue !== undefined) { if (allowValue === true) { return { ...newEvent, [allowKey]: eventValue }; } else if (typeof allowValue === 'object' && typeof eventValue === 'object') { From 8f2db91cc5dcb2f6572982e6e518a9e675c90b74 Mon Sep 17 00:00:00 2001 From: spalger Date: Thu, 1 Apr 2021 13:17:56 -0700 Subject: [PATCH 060/106] add bazel directory back to .gitignore so it doesn't end up committed --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 70ed1bfb24f86..ce8fd38b18a92 100644 --- a/.gitignore +++ b/.gitignore @@ -75,5 +75,6 @@ report.asciidoc .yarn-local-mirror # Bazel +bazel bazel-* .bazelrc.user From 32f2409396be15d7126a6f44d2da67310a431a98 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Thu, 1 Apr 2021 14:21:42 -0700 Subject: [PATCH 061/106] Adds ingest pipeline links to documentation link service (#95837) --- ...-plugin-core-public.doclinksstart.links.md | 1 + ...kibana-plugin-core-public.doclinksstart.md | 2 +- .../public/doc_links/doc_links_service.ts | 43 ++++++++++++++++++- src/core/public/public.api.md | 1 + 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md index 6ca7a83ac0a03..860f7c3c74892 100644 --- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md +++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md @@ -144,6 +144,7 @@ readonly links: { putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putWatch: string; + simulatePipeline: string; updateTransform: string; }>; readonly observability: Record; diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md index 3847ab0c6183a..a9cb6729b214e 100644 --- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md +++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md @@ -17,5 +17,5 @@ export interface DocLinksStart | --- | --- | --- | | [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinksstart.doc_link_version.md) | string | | | [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinksstart.elastic_website_url.md) | string | | -| [links](./kibana-plugin-core-public.doclinksstart.links.md) | {
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
readonly drilldownsTriggerPicker: string;
readonly urlDrilldownTemplateSyntax: string;
readonly urlDrilldownVariables: string;
};
readonly discover: Record<string, string>;
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: 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 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 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 indexPatterns: {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
};
readonly addData: string;
readonly kibana: string;
readonly elasticsearch: Record<string, string>;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly eql: string;
readonly luceneQuerySyntax: string;
readonly queryDsl: string;
readonly kueryQuerySyntax: string;
};
readonly date: {
readonly dateMath: string;
readonly dateMathIndexNames: string;
};
readonly management: Record<string, string>;
readonly ml: Record<string, string>;
readonly transforms: Record<string, string>;
readonly visualize: Record<string, string>;
readonly apis: Readonly<{
createIndex: string;
createSnapshotLifecyclePolicy: string;
createRoleMapping: string;
createRoleMappingTemplates: 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;
putWatch: string;
updateTransform: string;
}>;
readonly observability: Record<string, string>;
readonly alerting: Record<string, string>;
readonly maps: Record<string, string>;
readonly monitoring: Record<string, string>;
readonly security: Readonly<{
apiKeyServiceSettings: string;
clusterPrivileges: string;
elasticsearchSettings: string;
elasticsearchEnableSecurity: string;
indicesPrivileges: string;
kibanaTLS: string;
kibanaPrivileges: string;
mappingRoles: string;
mappingRolesFieldRules: string;
runAsPrivilege: string;
}>;
readonly watcher: Record<string, string>;
readonly ccs: Record<string, string>;
readonly plugins: Record<string, string>;
readonly snapshotRestore: Record<string, string>;
readonly ingest: Record<string, string>;
} | | +| [links](./kibana-plugin-core-public.doclinksstart.links.md) | {
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
readonly drilldownsTriggerPicker: string;
readonly urlDrilldownTemplateSyntax: string;
readonly urlDrilldownVariables: string;
};
readonly discover: Record<string, string>;
readonly filebeat: {
readonly base: string;
readonly installation: string;
readonly configuration: string;
readonly elasticsearchOutput: string;
readonly elasticsearchModule: string;
readonly startup: string;
readonly exportedFields: string;
};
readonly auditbeat: {
readonly base: 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 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 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 indexPatterns: {
readonly introduction: string;
readonly fieldFormattersNumber: string;
readonly fieldFormattersString: string;
};
readonly addData: string;
readonly kibana: string;
readonly elasticsearch: Record<string, string>;
readonly siem: {
readonly guide: string;
readonly gettingStarted: string;
};
readonly query: {
readonly eql: string;
readonly luceneQuerySyntax: string;
readonly queryDsl: string;
readonly kueryQuerySyntax: string;
};
readonly date: {
readonly dateMath: string;
readonly dateMathIndexNames: string;
};
readonly management: Record<string, string>;
readonly ml: Record<string, string>;
readonly transforms: Record<string, string>;
readonly visualize: Record<string, string>;
readonly apis: Readonly<{
createIndex: string;
createSnapshotLifecyclePolicy: string;
createRoleMapping: string;
createRoleMappingTemplates: 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;
putWatch: string;
simulatePipeline: string;
updateTransform: string;
}>;
readonly observability: Record<string, string>;
readonly alerting: Record<string, string>;
readonly maps: Record<string, string>;
readonly monitoring: Record<string, string>;
readonly security: Readonly<{
apiKeyServiceSettings: string;
clusterPrivileges: string;
elasticsearchSettings: string;
elasticsearchEnableSecurity: string;
indicesPrivileges: string;
kibanaTLS: string;
kibanaPrivileges: string;
mappingRoles: string;
mappingRolesFieldRules: string;
runAsPrivilege: string;
}>;
readonly watcher: Record<string, string>;
readonly ccs: Record<string, string>;
readonly plugins: Record<string, string>;
readonly snapshotRestore: Record<string, string>;
readonly ingest: Record<string, string>;
} | | diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index ef3172b620b23..a946640f58b0d 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -271,8 +271,10 @@ export class DocLinksService { painlessExecute: `${ELASTIC_WEBSITE_URL}guide/en/elasticsearch/painless/${DOC_LINK_VERSION}/painless-execute-api.html`, painlessExecuteAPIContexts: `${ELASTIC_WEBSITE_URL}guide/en/elasticsearch/painless/${DOC_LINK_VERSION}/painless-execute-api.html#_contexts`, putComponentTemplateMetadata: `${ELASTICSEARCH_DOCS}indices-component-template.html#component-templates-metadata`, + putEnrichPolicy: `${ELASTICSEARCH_DOCS}put-enrich-policy-api.html`, putSnapshotLifecyclePolicy: `${ELASTICSEARCH_DOCS}slm-api-put-policy.html`, - putWatch: `${ELASTICSEARCH_DOCS}/watcher-api-put-watch.html`, + putWatch: `${ELASTICSEARCH_DOCS}watcher-api-put-watch.html`, + simulatePipeline: `${ELASTICSEARCH_DOCS}simulate-pipeline-api.html`, updateTransform: `${ELASTICSEARCH_DOCS}update-transform.html`, }, plugins: { @@ -293,9 +295,47 @@ export class DocLinksService { restoreSnapshotApi: `${ELASTICSEARCH_DOCS}restore-snapshot-api.html#restore-snapshot-api-request-body`, }, ingest: { + append: `${ELASTICSEARCH_DOCS}append-processor.html`, + bytes: `${ELASTICSEARCH_DOCS}bytes-processor.html`, + circle: `${ELASTICSEARCH_DOCS}ingest-circle-processor.html`, + convert: `${ELASTICSEARCH_DOCS}convert-processor.html`, + csv: `${ELASTICSEARCH_DOCS}csv-processor.html`, + date: `${ELASTICSEARCH_DOCS}date-processor.html`, + dateIndexName: `${ELASTICSEARCH_DOCS}date-index-name-processor.html`, + dissect: `${ELASTICSEARCH_DOCS}dissect-processor.html`, + dissectKeyModifiers: `${ELASTICSEARCH_DOCS}dissect-processor.html#dissect-key-modifiers`, + dotExpander: `${ELASTICSEARCH_DOCS}dot-expand-processor.html`, + drop: `${ELASTICSEARCH_DOCS}drop-processor.html`, + enrich: `${ELASTICSEARCH_DOCS}ingest-enriching-data.html`, + fail: `${ELASTICSEARCH_DOCS}fail-processor.html`, + foreach: `${ELASTICSEARCH_DOCS}foreach-processor.html`, + geoIp: `${ELASTICSEARCH_DOCS}geoip-processor.html`, + grok: `${ELASTICSEARCH_DOCS}grok-processor.html`, + gsub: `${ELASTICSEARCH_DOCS}gsub-processor.html`, + htmlString: `${ELASTICSEARCH_DOCS}htmlstrip-processor.html`, + inference: `${ELASTICSEARCH_DOCS}inference-processor.html`, + inferenceClassification: `${ELASTICSEARCH_DOCS}inference-processor.html#inference-processor-classification-opt`, + inferenceRegression: `${ELASTICSEARCH_DOCS}inference-processor.html#inference-processor-regression-opt`, + join: `${ELASTICSEARCH_DOCS}join-processor.html`, + json: `${ELASTICSEARCH_DOCS}json-processor.html`, + kv: `${ELASTICSEARCH_DOCS}kv-processor.html`, + lowercase: `${ELASTICSEARCH_DOCS}lowercase-processor.html`, + pipeline: `${ELASTICSEARCH_DOCS}pipeline-processor.html`, pipelines: `${ELASTICSEARCH_DOCS}ingest.html`, pipelineFailure: `${ELASTICSEARCH_DOCS}ingest.html#handling-pipeline-failures`, processors: `${ELASTICSEARCH_DOCS}processors.html`, + remove: `${ELASTICSEARCH_DOCS}remove-processor.html`, + rename: `${ELASTICSEARCH_DOCS}rename-processor.html`, + script: `${ELASTICSEARCH_DOCS}script-processor.html`, + set: `${ELASTICSEARCH_DOCS}set-processor.html`, + setSecurityUser: `${ELASTICSEARCH_DOCS}ingest-node-set-security-user-processor.html`, + sort: `${ELASTICSEARCH_DOCS}sort-processor.html`, + split: `${ELASTICSEARCH_DOCS}split-processor.html`, + trim: `${ELASTICSEARCH_DOCS}trim-processor.html`, + uppercase: `${ELASTICSEARCH_DOCS}uppercase-processor.html`, + uriParts: `${ELASTICSEARCH_DOCS}uri-parts-processor.html`, + urlDecode: `${ELASTICSEARCH_DOCS}urldecode-processor.html`, + userAgent: `${ELASTICSEARCH_DOCS}user-agent-processor.html`, }, }, }); @@ -443,6 +483,7 @@ export interface DocLinksStart { putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putWatch: string; + simulatePipeline: string; updateTransform: string; }>; readonly observability: Record; diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md index 0a1c7a9b0fa36..8327428991e13 100644 --- a/src/core/public/public.api.md +++ b/src/core/public/public.api.md @@ -627,6 +627,7 @@ export interface DocLinksStart { putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putWatch: string; + simulatePipeline: string; updateTransform: string; }>; readonly observability: Record; From f424b9cbb2950bf420b941d8b97278bc5781ce3d Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Thu, 1 Apr 2021 22:51:32 +0100 Subject: [PATCH 062/106] chore(NA): moving @elastic/datemath into bazel (#94665) * chore(NA): majority of the changes needed to build elastic-datemath with bazel * chore(NA): add missing bits on elastic-datemath package * chore(NA): add missing build and watch scripts * chore(NA): remove build scripts for elastic datemah * chore(NA): remove typo from build baze production projects logs * chore(NA): force install on CI * chore(NA): introduce custom preserve symlinks resolver for jest * chore(NA): update jest integration snapshot * chore(NA): fix build for bazel packages * chore(NA): correctly copy bazel built packages into final distributable build * chore(NA): update kbn pm dist * chore(NA): experimental new logic to handle bazel yarn rule rerun using yarn-integrity file * chore(NA): update snapshots * refact(NA): ensure yarn integrity exists into two methods * chore(NA): fix ts error * chore(NA): update snapshots * chore(NA): update elastic-datemath build file to include ts_project rule * chore(NA): update basic optimization test snapshots * chore(NA): merge and solve conflicts cherry-pick from #96066 * chore(NA): update package.json and yarn.lock file * chore(NA): update bazel/bin into bazel-bin on kbn-pm build bazel packages Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> --- .bazelrc.common | 2 +- BUILD.bazel | 1 + package.json | 3 +- packages/BUILD.bazel | 4 +- packages/elastic-datemath/.npmignore | 3 +- packages/elastic-datemath/BUILD.bazel | 76 ++++++++++++ packages/elastic-datemath/package.json | 5 +- packages/elastic-datemath/tsconfig.json | 4 +- packages/kbn-pm/dist/index.js | 69 ++++++++--- packages/kbn-pm/src/cli.ts | 2 +- packages/kbn-pm/src/commands/bootstrap.ts | 18 ++- .../build_bazel_production_projects.ts | 8 +- .../link_project_executables.test.ts.snap | 2 + .../bazel/ensure_yarn_integrity_exists.ts | 18 --- packages/kbn-pm/src/utils/bazel/index.ts | 2 +- .../kbn-pm/src/utils/bazel/yarn_integrity.ts | 41 +++++++ packages/kbn-pm/src/utils/fs.ts | 15 +++ packages/kbn-pm/src/utils/package_json.ts | 2 +- packages/kbn-pm/src/utils/project.ts | 7 +- packages/kbn-test/jest-preset.js | 3 + .../jest/setup/preserve_symlinks_resolver.js | 30 +++++ x-pack/package.json | 1 - x-pack/scripts/jest.js | 1 + yarn.lock | 111 +++++++++++++++++- 24 files changed, 368 insertions(+), 60 deletions(-) create mode 100644 packages/elastic-datemath/BUILD.bazel delete mode 100644 packages/kbn-pm/src/utils/bazel/ensure_yarn_integrity_exists.ts create mode 100644 packages/kbn-pm/src/utils/bazel/yarn_integrity.ts create mode 100644 packages/kbn-test/src/jest/setup/preserve_symlinks_resolver.js diff --git a/.bazelrc.common b/.bazelrc.common index 448fafd6946b3..20a41c4cde9a0 100644 --- a/.bazelrc.common +++ b/.bazelrc.common @@ -82,7 +82,7 @@ test:debug --test_output=streamed --test_strategy=exclusive --test_timeout=9999 run:debug --define=VERBOSE_LOGS=1 -- --node_options=--inspect-brk # The following option will change the build output of certain rules such as terser and may not be desirable in all cases # It will also output both the repo cache and action cache to a folder inside the repo -build:debug --compilation_mode=dbg --show_result=1 --disk_cache=bazel/disk-cache --repository_cache=bazel/repository-cache +build:debug --compilation_mode=dbg --show_result=1 # Turn off legacy external runfiles # This prevents accidentally depending on this feature, which Bazel will remove. diff --git a/BUILD.bazel b/BUILD.bazel index 38a478565a4af..4502daeaacb59 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -2,6 +2,7 @@ # other packages builds and need to be included as inputs exports_files( [ + "tsconfig.base.json", "tsconfig.json", "package.json" ], diff --git a/package.json b/package.json index 05a8e450793d6..deb8bc24319f6 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "@elastic/apm-rum": "^5.6.1", "@elastic/apm-rum-react": "^1.2.5", "@elastic/charts": "26.1.0", - "@elastic/datemath": "link:packages/elastic-datemath", + "@elastic/datemath": "link:bazel-bin/packages/elastic-datemath/npm_module", "@elastic/elasticsearch": "npm:@elastic/elasticsearch-canary@^8.0.0-canary.4", "@elastic/ems-client": "7.12.0", "@elastic/eui": "31.10.0", @@ -441,6 +441,7 @@ "@babel/traverse": "^7.12.12", "@babel/types": "^7.12.12", "@bazel/ibazel": "^0.14.0", + "@bazel/typescript": "^3.2.3", "@cypress/snapshot": "^2.1.7", "@cypress/webpack-preprocessor": "^5.5.0", "@elastic/apm-rum": "^5.6.1", diff --git a/packages/BUILD.bazel b/packages/BUILD.bazel index 1f1eba0747ab7..31894fcb1bb5d 100644 --- a/packages/BUILD.bazel +++ b/packages/BUILD.bazel @@ -2,5 +2,7 @@ # targets so we can build them all at once filegroup( name = "build", - srcs = [], + srcs = [ + "//packages/elastic-datemath:build" + ], ) diff --git a/packages/elastic-datemath/.npmignore b/packages/elastic-datemath/.npmignore index 591be7afd1669..cb8c40d17ea04 100644 --- a/packages/elastic-datemath/.npmignore +++ b/packages/elastic-datemath/.npmignore @@ -1,2 +1,3 @@ +/index.test.js +/jest.config.js /tsconfig.json -/__tests__ diff --git a/packages/elastic-datemath/BUILD.bazel b/packages/elastic-datemath/BUILD.bazel new file mode 100644 index 0000000000000..6a80556d4eed5 --- /dev/null +++ b/packages/elastic-datemath/BUILD.bazel @@ -0,0 +1,76 @@ +load("@npm//@bazel/typescript:index.bzl", "ts_config", "ts_project") +load("@build_bazel_rules_nodejs//:index.bzl", "js_library", "pkg_npm") + +PKG_BASE_NAME = "elastic-datemath" +PKG_REQUIRE_NAME = "@elastic/datemath" + +SOURCE_FILES = [ + "src/index.ts", +] + +SRCS = SOURCE_FILES + +filegroup( + name = "srcs", + srcs = glob(SOURCE_FILES), +) + +NPM_MODULE_EXTRA_FILES = [ + "package.json", + "README.md", +] + +SRC_DEPS = [ + "@npm//moment", +] + +TYPES_DEPS = [ + "@npm//@types/node", +] + +DEPS = SRC_DEPS + TYPES_DEPS + +ts_config( + name = "tsconfig", + src = "tsconfig.json", + deps = [ + "//:tsconfig.base.json", + ], +) + +ts_project( + name = "tsc", + srcs = SRCS, + deps = DEPS, + declaration = True, + declaration_map = True, + incremental = True, + out_dir = "target", + source_map = True, + root_dir = "src", + tsconfig = ":tsconfig", +) + +js_library( + name = PKG_BASE_NAME, + srcs = [], + deps = [":tsc"] + DEPS, + package_name = PKG_REQUIRE_NAME, + visibility = ["//visibility:public"], +) + +pkg_npm( + name = "npm_module", + srcs = NPM_MODULE_EXTRA_FILES, + deps = [ + ":%s" % PKG_BASE_NAME, + ] +) + +filegroup( + name = "build", + srcs = [ + ":npm_module", + ], + visibility = ["//visibility:public"], +) diff --git a/packages/elastic-datemath/package.json b/packages/elastic-datemath/package.json index 4dc9c4f24d567..67fbb74eb223c 100644 --- a/packages/elastic-datemath/package.json +++ b/packages/elastic-datemath/package.json @@ -5,8 +5,7 @@ "license": "Apache-2.0", "main": "./target/index.js", "types": "./target/index.d.ts", - "scripts": { - "build": "../../node_modules/.bin/tsc", - "kbn:bootstrap": "yarn build" + "peerDependencies": { + "moment": "^2.24.0" } } \ No newline at end of file diff --git a/packages/elastic-datemath/tsconfig.json b/packages/elastic-datemath/tsconfig.json index 6f04bee983a9e..d0fa806ed411b 100644 --- a/packages/elastic-datemath/tsconfig.json +++ b/packages/elastic-datemath/tsconfig.json @@ -1,10 +1,10 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "incremental": false, - "outDir": "./target", "declaration": true, "declarationMap": true, + "outDir": "target", + "rootDir": "src", "sourceMap": true, "sourceRoot": "../../../../packages/elastic-datemath/src", "types": [ diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index 919608c45157d..509ce89f8c02c 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -209,7 +209,7 @@ async function run(argv) { }, default: { cache: true, - 'force-install': true, + 'force-install': false, offline: false, validate: true }, @@ -8910,8 +8910,11 @@ const BootstrapCommand = { const nonBazelProjectsOnly = await Object(_utils_projects__WEBPACK_IMPORTED_MODULE_4__["getNonBazelProjectsOnly"])(projects); const batchedNonBazelProjects = Object(_utils_projects__WEBPACK_IMPORTED_MODULE_4__["topologicallyBatchProjects"])(nonBazelProjectsOnly, projectGraph); const kibanaProjectPath = ((_projects$get = projects.get('kibana')) === null || _projects$get === void 0 ? void 0 : _projects$get.path) || ''; - const runOffline = (options === null || options === void 0 ? void 0 : options.offline) === true; - const forceInstall = !!options && options['force-install'] === true; // Ensure we have a `node_modules/.yarn-integrity` file as we depend on it + const runOffline = (options === null || options === void 0 ? void 0 : options.offline) === true; // Force install is set in case a flag is passed or + // if the `.yarn-integrity` file is not found which + // will be indicated by the return of yarnIntegrityFileExists. + + const forceInstall = !!options && options['force-install'] === true || !(await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["yarnIntegrityFileExists"])(Object(path__WEBPACK_IMPORTED_MODULE_0__["resolve"])(kibanaProjectPath, 'node_modules'))); // Ensure we have a `node_modules/.yarn-integrity` file as we depend on it // for bazel to know it has to re-install the node_modules after a reset or a clean await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["ensureYarnIntegrityFileExists"])(Object(path__WEBPACK_IMPORTED_MODULE_0__["resolve"])(kibanaProjectPath, 'node_modules')); // Install bazel machinery tools if needed @@ -8925,9 +8928,6 @@ const BootstrapCommand = { // That way non bazel projects could depend on bazel projects but not the other way around // That is only intended during the migration process while non Bazel projects are not removed at all. // - // Until we have our first package build within Bazel we will always need to directly call the yarn rule - // otherwise yarn install won't trigger as we don't have any npm dependency within Bazel - // TODO: Change CLI default in order to not force install as soon as we have our first Bazel package being built if (forceInstall) { await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["runBazel"])(['run', '@nodejs//:yarn'], runOffline); @@ -9105,6 +9105,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDirectory", function() { return isDirectory; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFile", function() { return isFile; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSymlink", function() { return createSymlink; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryRealpath", function() { return tryRealpath; }); /* harmony import */ var cmd_shim__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(132); /* harmony import */ var cmd_shim__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cmd_shim__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(143); @@ -9137,6 +9138,7 @@ const symlink = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPA const chmod = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_2___default.a.chmod); const cmdShim = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(cmd_shim__WEBPACK_IMPORTED_MODULE_0___default.a); const mkdir = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_2___default.a.mkdir); +const realpathNative = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_2___default.a.realpath.native); const mkdirp = async path => await mkdir(path, { recursive: true }); @@ -9220,6 +9222,20 @@ async function forceCreate(src, dest, type) { await symlink(src, dest, type); } +async function tryRealpath(path) { + let calculatedPath = path; + + try { + calculatedPath = await realpathNative(path); + } catch (error) { + if (error.code !== 'ENOENT') { + throw error; + } + } + + return calculatedPath; +} + /***/ }), /* 132 */ /***/ (function(module, exports, __webpack_require__) { @@ -22981,11 +22997,11 @@ class Project { ensureValidProjectDependency(project) { const relativePathToProject = normalizePath(path__WEBPACK_IMPORTED_MODULE_1___default.a.relative(this.path, project.path)); - const relativePathToProjectIfBazelPkg = normalizePath(path__WEBPACK_IMPORTED_MODULE_1___default.a.relative(this.path, `bazel-bin/packages/${path__WEBPACK_IMPORTED_MODULE_1___default.a.basename(project.path)}`)); + const relativePathToProjectIfBazelPkg = normalizePath(path__WEBPACK_IMPORTED_MODULE_1___default.a.relative(this.path, `${__dirname}/../../../bazel-bin/packages/${path__WEBPACK_IMPORTED_MODULE_1___default.a.basename(project.path)}/npm_module`)); const versionInPackageJson = this.allDependencies[project.name]; const expectedVersionInPackageJson = `link:${relativePathToProject}`; const expectedVersionInPackageJsonIfBazelPkg = `link:${relativePathToProjectIfBazelPkg}`; // TODO: after introduce bazel to build all the packages and completely remove the support for kbn packages - // do not allow child projects to hold dependencies + // do not allow child projects to hold dependencies, unless they are meant to be published externally if (versionInPackageJson === expectedVersionInPackageJson || versionInPackageJson === expectedVersionInPackageJsonIfBazelPkg) { return; @@ -23170,7 +23186,7 @@ function transformDependencies(dependencies = {}) { } if (isBazelPackageDependency(depVersion)) { - newDeps[name] = depVersion.replace('link:bazel-bin/', 'file:'); + newDeps[name] = depVersion.replace('link:bazel-bin/', 'file:').replace('/npm_module', ''); continue; } @@ -48065,8 +48081,10 @@ function addProjectToTree(tree, pathParts, project) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _ensure_yarn_integrity_exists__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(373); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ensureYarnIntegrityFileExists", function() { return _ensure_yarn_integrity_exists__WEBPACK_IMPORTED_MODULE_0__["ensureYarnIntegrityFileExists"]; }); +/* harmony import */ var _yarn_integrity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(373); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "yarnIntegrityFileExists", function() { return _yarn_integrity__WEBPACK_IMPORTED_MODULE_0__["yarnIntegrityFileExists"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ensureYarnIntegrityFileExists", function() { return _yarn_integrity__WEBPACK_IMPORTED_MODULE_0__["ensureYarnIntegrityFileExists"]; }); /* harmony import */ var _get_cache_folders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(374); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBazelDiskCacheFolder", function() { return _get_cache_folders__WEBPACK_IMPORTED_MODULE_1__["getBazelDiskCacheFolder"]; }); @@ -48099,6 +48117,7 @@ __webpack_require__.r(__webpack_exports__); "use strict"; __webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "yarnIntegrityFileExists", function() { return yarnIntegrityFileExists; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ensureYarnIntegrityFileExists", function() { return ensureYarnIntegrityFileExists; }); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); @@ -48112,9 +48131,27 @@ __webpack_require__.r(__webpack_exports__); */ +async function yarnIntegrityFileExists(nodeModulesPath) { + try { + const nodeModulesRealPath = await Object(_fs__WEBPACK_IMPORTED_MODULE_1__["tryRealpath"])(nodeModulesPath); + const yarnIntegrityFilePath = Object(path__WEBPACK_IMPORTED_MODULE_0__["join"])(nodeModulesRealPath, '.yarn-integrity'); // check if the file already exists + + if (await Object(_fs__WEBPACK_IMPORTED_MODULE_1__["isFile"])(yarnIntegrityFilePath)) { + return true; + } + } catch {// no-op + } + + return false; +} async function ensureYarnIntegrityFileExists(nodeModulesPath) { try { - await Object(_fs__WEBPACK_IMPORTED_MODULE_1__["writeFile"])(Object(path__WEBPACK_IMPORTED_MODULE_0__["join"])(nodeModulesPath, '.yarn-integrity'), '', { + const nodeModulesRealPath = await Object(_fs__WEBPACK_IMPORTED_MODULE_1__["tryRealpath"])(nodeModulesPath); + const yarnIntegrityFilePath = Object(path__WEBPACK_IMPORTED_MODULE_0__["join"])(nodeModulesRealPath, '.yarn-integrity'); // ensure node_modules folder is created + + await Object(_fs__WEBPACK_IMPORTED_MODULE_1__["mkdirp"])(nodeModulesRealPath); // write a blank file in case it doesn't exists + + await Object(_fs__WEBPACK_IMPORTED_MODULE_1__["writeFile"])(yarnIntegrityFilePath, '', { flag: 'wx' }); } catch {// no-op @@ -63656,7 +63693,7 @@ async function buildBazelProductionProjects({ const projectNames = [...projects.values()].map(project => project.name); _utils_log__WEBPACK_IMPORTED_MODULE_6__["log"].info(`Preparing Bazel projects production build for [${projectNames.join(', ')}]`); await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_4__["runBazel"])(['build', '//packages:build']); - _utils_log__WEBPACK_IMPORTED_MODULE_6__["log"].info(`All Bazel projects production builds for [${projectNames.join(', ')}] are complete}]`); + _utils_log__WEBPACK_IMPORTED_MODULE_6__["log"].info(`All Bazel projects production builds for [${projectNames.join(', ')}] are complete`); for (const project of projects.values()) { await copyToBuild(project, kibanaRoot, buildRoot); @@ -63680,7 +63717,7 @@ async function copyToBuild(project, kibanaRoot, buildRoot) { const relativeProjectPath = Object(path__WEBPACK_IMPORTED_MODULE_2__["relative"])(kibanaRoot, project.path); const buildProjectPath = Object(path__WEBPACK_IMPORTED_MODULE_2__["resolve"])(buildRoot, relativeProjectPath); await cpy__WEBPACK_IMPORTED_MODULE_0___default()(['**/*'], buildProjectPath, { - cwd: Object(path__WEBPACK_IMPORTED_MODULE_2__["join"])(kibanaRoot, 'bazel', 'bin', 'packages', Object(path__WEBPACK_IMPORTED_MODULE_2__["basename"])(buildProjectPath), 'npm_module'), + cwd: Object(path__WEBPACK_IMPORTED_MODULE_2__["join"])(kibanaRoot, 'bazel-bin', 'packages', Object(path__WEBPACK_IMPORTED_MODULE_2__["basename"])(buildProjectPath), 'npm_module'), dot: true, onlyFiles: true, parents: true @@ -63702,12 +63739,12 @@ async function applyCorrectPermissions(project, kibanaRoot, buildRoot) { const buildProjectPath = Object(path__WEBPACK_IMPORTED_MODULE_2__["resolve"])(buildRoot, relativeProjectPath); const allPluginPaths = await globby__WEBPACK_IMPORTED_MODULE_1___default()([`**/*`], { onlyFiles: false, - cwd: Object(path__WEBPACK_IMPORTED_MODULE_2__["join"])(kibanaRoot, 'bazel', 'bin', 'packages', Object(path__WEBPACK_IMPORTED_MODULE_2__["basename"])(buildProjectPath), 'npm_module'), + cwd: buildProjectPath, dot: true }); for (const pluginPath of allPluginPaths) { - const resolvedPluginPath = Object(path__WEBPACK_IMPORTED_MODULE_2__["resolve"])(buildRoot, pluginPath); + const resolvedPluginPath = Object(path__WEBPACK_IMPORTED_MODULE_2__["resolve"])(buildProjectPath, pluginPath); if (await Object(_utils_fs__WEBPACK_IMPORTED_MODULE_5__["isFile"])(resolvedPluginPath)) { await Object(_utils_fs__WEBPACK_IMPORTED_MODULE_5__["chmod"])(resolvedPluginPath, 0o644); diff --git a/packages/kbn-pm/src/cli.ts b/packages/kbn-pm/src/cli.ts index 6d033b4121d99..f6ea4d7124ab2 100644 --- a/packages/kbn-pm/src/cli.ts +++ b/packages/kbn-pm/src/cli.ts @@ -75,7 +75,7 @@ export async function run(argv: string[]) { }, default: { cache: true, - 'force-install': true, + 'force-install': false, offline: false, validate: true, }, diff --git a/packages/kbn-pm/src/commands/bootstrap.ts b/packages/kbn-pm/src/commands/bootstrap.ts index 4a6a43ff2d91f..b383a52be63f5 100644 --- a/packages/kbn-pm/src/commands/bootstrap.ts +++ b/packages/kbn-pm/src/commands/bootstrap.ts @@ -17,7 +17,12 @@ import { getAllChecksums } from '../utils/project_checksums'; import { BootstrapCacheFile } from '../utils/bootstrap_cache_file'; import { readYarnLock } from '../utils/yarn_lock'; import { validateDependencies } from '../utils/validate_dependencies'; -import { ensureYarnIntegrityFileExists, installBazelTools, runBazel } from '../utils/bazel'; +import { + ensureYarnIntegrityFileExists, + installBazelTools, + runBazel, + yarnIntegrityFileExists, +} from '../utils/bazel'; export const BootstrapCommand: ICommand = { description: 'Install dependencies and crosslink projects', @@ -33,7 +38,13 @@ export const BootstrapCommand: ICommand = { const batchedNonBazelProjects = topologicallyBatchProjects(nonBazelProjectsOnly, projectGraph); const kibanaProjectPath = projects.get('kibana')?.path || ''; const runOffline = options?.offline === true; - const forceInstall = !!options && options['force-install'] === true; + + // Force install is set in case a flag is passed or + // if the `.yarn-integrity` file is not found which + // will be indicated by the return of yarnIntegrityFileExists. + const forceInstall = + (!!options && options['force-install'] === true) || + !(await yarnIntegrityFileExists(resolve(kibanaProjectPath, 'node_modules'))); // Ensure we have a `node_modules/.yarn-integrity` file as we depend on it // for bazel to know it has to re-install the node_modules after a reset or a clean @@ -51,9 +62,6 @@ export const BootstrapCommand: ICommand = { // That way non bazel projects could depend on bazel projects but not the other way around // That is only intended during the migration process while non Bazel projects are not removed at all. // - // Until we have our first package build within Bazel we will always need to directly call the yarn rule - // otherwise yarn install won't trigger as we don't have any npm dependency within Bazel - // TODO: Change CLI default in order to not force install as soon as we have our first Bazel package being built if (forceInstall) { await runBazel(['run', '@nodejs//:yarn'], runOffline); } diff --git a/packages/kbn-pm/src/production/build_bazel_production_projects.ts b/packages/kbn-pm/src/production/build_bazel_production_projects.ts index 313622d44276a..07c0b651f5ad1 100644 --- a/packages/kbn-pm/src/production/build_bazel_production_projects.ts +++ b/packages/kbn-pm/src/production/build_bazel_production_projects.ts @@ -37,7 +37,7 @@ export async function buildBazelProductionProjects({ log.info(`Preparing Bazel projects production build for [${projectNames.join(', ')}]`); await runBazel(['build', '//packages:build']); - log.info(`All Bazel projects production builds for [${projectNames.join(', ')}] are complete}]`); + log.info(`All Bazel projects production builds for [${projectNames.join(', ')}] are complete`); for (const project of projects.values()) { await copyToBuild(project, kibanaRoot, buildRoot); @@ -62,7 +62,7 @@ async function copyToBuild(project: Project, kibanaRoot: string, buildRoot: stri const buildProjectPath = resolve(buildRoot, relativeProjectPath); await copy(['**/*'], buildProjectPath, { - cwd: join(kibanaRoot, 'bazel', 'bin', 'packages', basename(buildProjectPath), 'npm_module'), + cwd: join(kibanaRoot, 'bazel-bin', 'packages', basename(buildProjectPath), 'npm_module'), dot: true, onlyFiles: true, parents: true, @@ -88,12 +88,12 @@ async function applyCorrectPermissions(project: Project, kibanaRoot: string, bui const buildProjectPath = resolve(buildRoot, relativeProjectPath); const allPluginPaths = await globby([`**/*`], { onlyFiles: false, - cwd: join(kibanaRoot, 'bazel', 'bin', 'packages', basename(buildProjectPath), 'npm_module'), + cwd: buildProjectPath, dot: true, }); for (const pluginPath of allPluginPaths) { - const resolvedPluginPath = resolve(buildRoot, pluginPath); + const resolvedPluginPath = resolve(buildProjectPath, pluginPath); if (await isFile(resolvedPluginPath)) { await chmod(resolvedPluginPath, 0o644); } diff --git a/packages/kbn-pm/src/utils/__snapshots__/link_project_executables.test.ts.snap b/packages/kbn-pm/src/utils/__snapshots__/link_project_executables.test.ts.snap index c037c2a4976b4..8aeae04c265cf 100644 --- a/packages/kbn-pm/src/utils/__snapshots__/link_project_executables.test.ts.snap +++ b/packages/kbn-pm/src/utils/__snapshots__/link_project_executables.test.ts.snap @@ -11,6 +11,7 @@ Object { "mkdirp": Array [], "readFile": Array [], "rmdirp": Array [], + "tryRealpath": Array [], "unlink": Array [], "writeFile": Array [], } @@ -27,6 +28,7 @@ Object { "mkdirp": Array [], "readFile": Array [], "rmdirp": Array [], + "tryRealpath": Array [], "unlink": Array [], "writeFile": Array [], } diff --git a/packages/kbn-pm/src/utils/bazel/ensure_yarn_integrity_exists.ts b/packages/kbn-pm/src/utils/bazel/ensure_yarn_integrity_exists.ts deleted file mode 100644 index 90786bc0ea55e..0000000000000 --- a/packages/kbn-pm/src/utils/bazel/ensure_yarn_integrity_exists.ts +++ /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 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 { join } from 'path'; -import { writeFile } from '../fs'; - -export async function ensureYarnIntegrityFileExists(nodeModulesPath: string) { - try { - await writeFile(join(nodeModulesPath, '.yarn-integrity'), '', { flag: 'wx' }); - } catch { - // no-op - } -} diff --git a/packages/kbn-pm/src/utils/bazel/index.ts b/packages/kbn-pm/src/utils/bazel/index.ts index 0b755ba2446a0..a3651039161b8 100644 --- a/packages/kbn-pm/src/utils/bazel/index.ts +++ b/packages/kbn-pm/src/utils/bazel/index.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -export * from './ensure_yarn_integrity_exists'; +export * from './yarn_integrity'; export * from './get_cache_folders'; export * from './install_tools'; export * from './run'; diff --git a/packages/kbn-pm/src/utils/bazel/yarn_integrity.ts b/packages/kbn-pm/src/utils/bazel/yarn_integrity.ts new file mode 100644 index 0000000000000..3a72f5ca080b8 --- /dev/null +++ b/packages/kbn-pm/src/utils/bazel/yarn_integrity.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 { join } from 'path'; +import { isFile, mkdirp, tryRealpath, writeFile } from '../fs'; + +export async function yarnIntegrityFileExists(nodeModulesPath: string) { + try { + const nodeModulesRealPath = await tryRealpath(nodeModulesPath); + const yarnIntegrityFilePath = join(nodeModulesRealPath, '.yarn-integrity'); + + // check if the file already exists + if (await isFile(yarnIntegrityFilePath)) { + return true; + } + } catch { + // no-op + } + + return false; +} + +export async function ensureYarnIntegrityFileExists(nodeModulesPath: string) { + try { + const nodeModulesRealPath = await tryRealpath(nodeModulesPath); + const yarnIntegrityFilePath = join(nodeModulesRealPath, '.yarn-integrity'); + + // ensure node_modules folder is created + await mkdirp(nodeModulesRealPath); + + // write a blank file in case it doesn't exists + await writeFile(yarnIntegrityFilePath, '', { flag: 'wx' }); + } catch { + // no-op + } +} diff --git a/packages/kbn-pm/src/utils/fs.ts b/packages/kbn-pm/src/utils/fs.ts index dd961b8321446..5739d319e08e7 100644 --- a/packages/kbn-pm/src/utils/fs.ts +++ b/packages/kbn-pm/src/utils/fs.ts @@ -20,6 +20,7 @@ const symlink = promisify(fs.symlink); export const chmod = promisify(fs.chmod); const cmdShim = promisify(cmdShimCb); const mkdir = promisify(fs.mkdir); +const realpathNative = promisify(fs.realpath.native); export const mkdirp = async (path: string) => await mkdir(path, { recursive: true }); export const rmdirp = async (path: string) => await del(path, { force: true }); export const unlink = promisify(fs.unlink); @@ -96,3 +97,17 @@ async function forceCreate(src: string, dest: string, type: string) { await symlink(src, dest, type); } + +export async function tryRealpath(path: string): Promise { + let calculatedPath = path; + + try { + calculatedPath = await realpathNative(path); + } catch (error) { + if (error.code !== 'ENOENT') { + throw error; + } + } + + return calculatedPath; +} diff --git a/packages/kbn-pm/src/utils/package_json.ts b/packages/kbn-pm/src/utils/package_json.ts index a50d8994b5720..e635c2566e65a 100644 --- a/packages/kbn-pm/src/utils/package_json.ts +++ b/packages/kbn-pm/src/utils/package_json.ts @@ -61,7 +61,7 @@ export function transformDependencies(dependencies: IPackageDependencies = {}) { } if (isBazelPackageDependency(depVersion)) { - newDeps[name] = depVersion.replace('link:bazel-bin/', 'file:'); + newDeps[name] = depVersion.replace('link:bazel-bin/', 'file:').replace('/npm_module', ''); continue; } diff --git a/packages/kbn-pm/src/utils/project.ts b/packages/kbn-pm/src/utils/project.ts index 068065c01f649..5d2a0547b2577 100644 --- a/packages/kbn-pm/src/utils/project.ts +++ b/packages/kbn-pm/src/utils/project.ts @@ -92,7 +92,10 @@ export class Project { public ensureValidProjectDependency(project: Project) { const relativePathToProject = normalizePath(Path.relative(this.path, project.path)); const relativePathToProjectIfBazelPkg = normalizePath( - Path.relative(this.path, `bazel-bin/packages/${Path.basename(project.path)}`) + Path.relative( + this.path, + `${__dirname}/../../../bazel-bin/packages/${Path.basename(project.path)}/npm_module` + ) ); const versionInPackageJson = this.allDependencies[project.name]; @@ -100,7 +103,7 @@ export class Project { const expectedVersionInPackageJsonIfBazelPkg = `link:${relativePathToProjectIfBazelPkg}`; // TODO: after introduce bazel to build all the packages and completely remove the support for kbn packages - // do not allow child projects to hold dependencies + // do not allow child projects to hold dependencies, unless they are meant to be published externally if ( versionInPackageJson === expectedVersionInPackageJson || versionInPackageJson === expectedVersionInPackageJsonIfBazelPkg diff --git a/packages/kbn-test/jest-preset.js b/packages/kbn-test/jest-preset.js index 4949d6d1f9fad..225f93d487823 100644 --- a/packages/kbn-test/jest-preset.js +++ b/packages/kbn-test/jest-preset.js @@ -107,4 +107,7 @@ module.exports = { '!**/*.d.ts', '!**/index.{js,ts}', ], + + // A custom resolver to preserve symlinks by default + resolver: '/packages/kbn-test/target/jest/setup/preserve_symlinks_resolver.js', }; diff --git a/packages/kbn-test/src/jest/setup/preserve_symlinks_resolver.js b/packages/kbn-test/src/jest/setup/preserve_symlinks_resolver.js new file mode 100644 index 0000000000000..711bf2c9aa189 --- /dev/null +++ b/packages/kbn-test/src/jest/setup/preserve_symlinks_resolver.js @@ -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. + */ + +// Inspired in a discussion found at https://github.com/facebook/jest/issues/5356 as Jest currently doesn't +// offer any other option to preserve symlinks. +// +// It would be available once https://github.com/facebook/jest/pull/9976 got merged. + +const resolve = require('resolve'); + +module.exports = (request, options) => { + try { + return resolve.sync(request, { + basedir: options.basedir, + extensions: options.extensions, + preserveSymlinks: true, + }); + } catch (error) { + if (error.code === 'MODULE_NOT_FOUND') { + return options.defaultResolver(request, options); + } + + throw error; + } +}; diff --git a/x-pack/package.json b/x-pack/package.json index 14c59cf89a74e..9e96388145038 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -37,7 +37,6 @@ "@kbn/utility-types": "link:../packages/kbn-utility-types" }, "dependencies": { - "@elastic/datemath": "link:../packages/elastic-datemath", "@elastic/safer-lodash-set": "link:../packages/elastic-safer-lodash-set", "@kbn/config-schema": "link:../packages/kbn-config-schema", "@kbn/i18n": "link:../packages/kbn-i18n", diff --git a/x-pack/scripts/jest.js b/x-pack/scripts/jest.js index 4c83073a559a4..2ea950e075c8c 100644 --- a/x-pack/scripts/jest.js +++ b/x-pack/scripts/jest.js @@ -5,4 +5,5 @@ * 2.0. */ +require('../../src/setup_node_env/ensure_node_preserve_symlinks'); require('@kbn/test').runJest(); diff --git a/yarn.lock b/yarn.lock index ea663207aafa5..a7e5b0bbfe4dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1197,6 +1197,16 @@ resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244" integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg== +"@bazel/typescript@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.3.tgz#6e40bdb7c5294e588bac3b7d1269e58b98a1856c" + integrity sha512-Q1Yin/AYdh9yrkSJo3H6nVn6mMaohr5syjLd0Df0w7WI4zerdJTxrY5nhoWZwO/S1rPj8/MedDwZudCqPDeDMA== + dependencies: + protobufjs "6.8.8" + semver "5.6.0" + source-map-support "0.5.9" + tsutils "2.27.2" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1375,7 +1385,7 @@ utility-types "^3.10.0" uuid "^3.3.2" -"@elastic/datemath@link:packages/elastic-datemath": +"@elastic/datemath@link:bazel-bin/packages/elastic-datemath/npm_module": version "0.0.0" uid "" @@ -3441,6 +3451,59 @@ dependencies: "@babel/runtime" "^7.0.0" +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= + "@reach/router@^1.3.3": version "1.3.4" resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" @@ -5181,6 +5244,11 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.159.tgz#61089719dc6fdd9c5cb46efc827f2571d1517065" integrity sha512-gF7A72f7WQN33DpqOWw9geApQPh4M3PxluMtaHxWHXEGSN12/WbcEk/eNSqWNQcQhF66VSZ06vCF94CrHwXJDg== +"@types/long@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/lru-cache@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03" @@ -5330,7 +5398,7 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@14.14.14", "@types/node@8.10.54", "@types/node@>= 8", "@types/node@>=8.9.0", "@types/node@^12.0.2": +"@types/node@*", "@types/node@14.14.14", "@types/node@8.10.54", "@types/node@>= 8", "@types/node@>=8.9.0", "@types/node@^10.1.0", "@types/node@^12.0.2": version "14.14.14" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.14.tgz#f7fd5f3cc8521301119f63910f0fb965c7d761ae" integrity sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ== @@ -22915,6 +22983,25 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= +protobufjs@6.8.8: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + integrity sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + protocol-buffers-schema@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz#00434f608b4e8df54c59e070efeefc37fb4bb859" @@ -25437,6 +25524,11 @@ semver-greatest-satisfied-range@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" @@ -25924,6 +26016,14 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" +source-map-support@0.5.9: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-support@^0.3.2: version "0.3.3" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.3.3.tgz#34900977d5ba3f07c7757ee72e73bb1a9b53754f" @@ -27859,6 +27959,13 @@ tslib@~2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== +tsutils@2.27.2: + version "2.27.2" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.2.tgz#60ba88a23d6f785ec4b89c6e8179cac9b431f1c7" + integrity sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg== + dependencies: + tslib "^1.8.1" + tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" From df8166f20eb7b393ff4f43b19e2adcf8fd265ae8 Mon Sep 17 00:00:00 2001 From: Constance Date: Thu, 1 Apr 2021 14:54:53 -0700 Subject: [PATCH 063/106] [App Search] Update instances of EuiPanel/EuiPageContent to bordered or filled panels (#96090) * Add hasBorder to all EuiPageContent panels * EngineCreation: switch EuiPageBody to EuiPageContent + add hasBorder * Credentials: update EuiPanels w/ hasBorder * ApiCodeExample: switch to hasBorder * DataPanel: update to take & pass hasBorder prop * Analytics & EngineOverview: use hasBorder * Relevance Tuning: update EuiPanels - switch to hasBorder for top level panels - switch to color="subdued" for boost accordion - tweak padding of boost panel - CSS cleanup * Role Mappings: switch to hasBorder + remove unused class - `euiPanel--disabled` was not applying any styles + remove random 'export' string * Sample engine CTA: switch to subdued panel + fix sizing - when loading button pops in, it was causing text to overflow --- .../components/analytics/views/analytics.tsx | 4 +- .../analytics/views/query_detail.tsx | 26 ++-- .../components/credentials/credentials.tsx | 6 +- .../form_components/key_engine_access.tsx | 2 +- .../form_components/key_read_write_access.tsx | 2 +- .../curations/views/curation_creation.tsx | 2 +- .../components/curations/views/curations.tsx | 2 +- .../components/data_panel/data_panel.test.tsx | 8 + .../components/data_panel/data_panel.tsx | 3 + .../api_code_example.tsx | 2 +- .../components/documents/document_detail.tsx | 2 +- .../engine_creation/engine_creation.tsx | 137 +++++++++--------- .../components/recent_api_logs.tsx | 1 + .../components/total_charts.tsx | 2 + .../engines/components/empty_state.tsx | 2 +- .../engines/components/loading_state.tsx | 2 +- .../components/engines/engines_overview.tsx | 2 +- .../error_connecting/error_connecting.tsx | 2 +- .../app_search/components/library/library.tsx | 2 +- .../meta_engine_creation.tsx | 2 +- .../boost_item_content/boost_item_content.tsx | 5 +- .../relevance_tuning/boosts/boosts.tsx | 2 +- .../relevance_tuning_form.scss | 1 - .../relevance_tuning_form.tsx | 4 +- .../relevance_tuning_preview.tsx | 2 +- .../components/role_mappings/role_mapping.tsx | 5 +- .../role_mappings/role_mappings.tsx | 2 +- .../sample_engine_creation_cta.tsx | 6 +- .../components/settings/settings.tsx | 2 +- .../shared/not_found/not_found.tsx | 2 +- .../role_mapping/attribute_selector.test.tsx | 8 - .../role_mapping/attribute_selector.tsx | 6 +- .../views/role_mappings/role_mapping.tsx | 4 +- 33 files changed, 131 insertions(+), 129 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/analytics.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/analytics.tsx index 82b0d9a318f1d..0eef9b0c688c0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/analytics.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/analytics/views/analytics.tsx @@ -83,8 +83,7 @@ export const Analytics: React.FC = () => { /> - {/* TODO: Update this panel to use the bordered version once available */} - + { {RECENT_QUERIES}

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 z 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 z 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 W!mhS$Sk|ywhsG7^M;oeBD)Q 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