From bcb9f8cb1e75b16fb0c72f6b47b7f4d4f4ef0874 Mon Sep 17 00:00:00 2001 From: shahzad31 Date: Thu, 2 Mar 2023 11:46:10 +0100 Subject: [PATCH 01/10] fix query --- .../data_views/server/fetcher/index_patterns_fetcher.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index df18a5d506f1..6449f7a481df 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -8,6 +8,7 @@ import { ElasticsearchClient } from '@kbn/core/server'; import { keyBy } from 'lodash'; +import { DataViewMissingIndices } from '../../common'; import type { QueryDslQueryContainer } from '../../common/types'; import { @@ -72,6 +73,9 @@ export class IndexPatternsFetcher { // if only one pattern, don't bother with validation. We let getFieldCapabilities fail if the single pattern is bad regardless if (patternList.length > 1 && !allowNoIndices) { patternListActive = await this.validatePatternListActive(patternList); + if (patternListActive.length === 0) { + throw new DataViewMissingIndices(patternList.join(',')); + } } const fieldCapsResponse = await getFieldCapabilities({ callCluster: this.elasticsearchClient, From b246027acc93714e62e2c834e0942009f3391add Mon Sep 17 00:00:00 2001 From: shahzad31 Date: Thu, 2 Mar 2023 12:02:12 +0100 Subject: [PATCH 02/10] fix type --- src/plugins/data_views/common/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/data_views/common/index.ts b/src/plugins/data_views/common/index.ts index 5f7b3a544db9..68d558925a9f 100644 --- a/src/plugins/data_views/common/index.ts +++ b/src/plugins/data_views/common/index.ts @@ -79,3 +79,4 @@ export type { IndexPatternLoadExpressionFunctionDefinition, } from './expressions'; export { getIndexPatternLoadMeta } from './expressions'; +export { DataViewMissingIndices } from './lib'; From 3fad229764254bea023945f8059398302b7beda6 Mon Sep 17 00:00:00 2001 From: Matt Kime Date: Thu, 2 Mar 2023 09:44:53 -0600 Subject: [PATCH 03/10] add integration test --- .../data_views/server/fetcher/index_patterns_fetcher.ts | 2 ++ .../apis/data_views/fields_for_wildcard_route/response.js | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index 6449f7a481df..dbd053b7dcd9 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -73,9 +73,11 @@ export class IndexPatternsFetcher { // if only one pattern, don't bother with validation. We let getFieldCapabilities fail if the single pattern is bad regardless if (patternList.length > 1 && !allowNoIndices) { patternListActive = await this.validatePatternListActive(patternList); + /* if (patternListActive.length === 0) { throw new DataViewMissingIndices(patternList.join(',')); } + */ } const fieldCapsResponse = await getFieldCapabilities({ callCluster: this.elasticsearchClient, diff --git a/test/api_integration/apis/data_views/fields_for_wildcard_route/response.js b/test/api_integration/apis/data_views/fields_for_wildcard_route/response.js index 9a7968d2c253..e120a43875c8 100644 --- a/test/api_integration/apis/data_views/fields_for_wildcard_route/response.js +++ b/test/api_integration/apis/data_views/fields_for_wildcard_route/response.js @@ -201,6 +201,14 @@ export default function ({ getService }) { indices: ['basic_index'], }); }); + + it('returns 404 when neither exists', async () => { + await supertest + .get('/api/index_patterns/_fields_for_wildcard') + .query({ pattern: 'bad_index,bad_index_2' }) + .expect(404); + }); + it('returns 404 when no patterns exist', async () => { await supertest .get('/api/index_patterns/_fields_for_wildcard') From 8665168ed93ef6701dd9b3be23b64c73ff691e97 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 2 Mar 2023 15:50:01 +0000 Subject: [PATCH 04/10] [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix' --- src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index dbd053b7dcd9..e420da4371e4 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -8,7 +8,6 @@ import { ElasticsearchClient } from '@kbn/core/server'; import { keyBy } from 'lodash'; -import { DataViewMissingIndices } from '../../common'; import type { QueryDslQueryContainer } from '../../common/types'; import { From ce77cfe79ce08de3a4e964bbb2b13aa8b9d29af7 Mon Sep 17 00:00:00 2001 From: Matt Kime Date: Thu, 2 Mar 2023 11:30:55 -0600 Subject: [PATCH 05/10] fix failure to match use cases --- src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index dbd053b7dcd9..6449f7a481df 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -73,11 +73,9 @@ export class IndexPatternsFetcher { // if only one pattern, don't bother with validation. We let getFieldCapabilities fail if the single pattern is bad regardless if (patternList.length > 1 && !allowNoIndices) { patternListActive = await this.validatePatternListActive(patternList); - /* if (patternListActive.length === 0) { throw new DataViewMissingIndices(patternList.join(',')); } - */ } const fieldCapsResponse = await getFieldCapabilities({ callCluster: this.elasticsearchClient, From 3ba5abb7c85963b2eff21031665cd9caaddc551f Mon Sep 17 00:00:00 2001 From: shahzad31 Date: Mon, 6 Mar 2023 08:54:47 +0100 Subject: [PATCH 06/10] fix type --- src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index f87db214cd0d..6449f7a481df 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -8,6 +8,7 @@ import { ElasticsearchClient } from '@kbn/core/server'; import { keyBy } from 'lodash'; +import { DataViewMissingIndices } from '../../common'; import type { QueryDslQueryContainer } from '../../common/types'; import { From 5ffe582d1a6ebe90b4e908783001ad8873e4b9f3 Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Mon, 20 Mar 2023 11:38:15 -0500 Subject: [PATCH 07/10] Update src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts Co-authored-by: Matthias Wilhelm --- src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index 6449f7a481df..c7aecc4018f5 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -74,7 +74,7 @@ export class IndexPatternsFetcher { if (patternList.length > 1 && !allowNoIndices) { patternListActive = await this.validatePatternListActive(patternList); if (patternListActive.length === 0) { - throw new DataViewMissingIndices(patternList.join(',')); + return { fields: [], indices: [] }; } } const fieldCapsResponse = await getFieldCapabilities({ From 00227b4de85b2c1c72438477bfb15083a6b4bbd7 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Mon, 20 Mar 2023 16:43:43 +0000 Subject: [PATCH 08/10] [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix' --- src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts index c7aecc4018f5..bc0a33d8f957 100644 --- a/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts +++ b/src/plugins/data_views/server/fetcher/index_patterns_fetcher.ts @@ -8,7 +8,6 @@ import { ElasticsearchClient } from '@kbn/core/server'; import { keyBy } from 'lodash'; -import { DataViewMissingIndices } from '../../common'; import type { QueryDslQueryContainer } from '../../common/types'; import { From 35299c24cd3800d47d49dbc5f73c034cf4c7bcab Mon Sep 17 00:00:00 2001 From: Matt Kime Date: Mon, 20 Mar 2023 13:17:24 -0500 Subject: [PATCH 09/10] fix REST api --- src/plugins/data_views/server/routes/fields_for.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plugins/data_views/server/routes/fields_for.ts b/src/plugins/data_views/server/routes/fields_for.ts index 415077258966..6ef5c7ac4a2e 100644 --- a/src/plugins/data_views/server/routes/fields_for.ts +++ b/src/plugins/data_views/server/routes/fields_for.ts @@ -16,6 +16,7 @@ import { } from '@kbn/core/server'; import { IndexPatternsFetcher } from '../fetcher'; import type { DataViewsServerPluginStart, DataViewsServerPluginStartDependencies } from '../types'; +import { DataViewMissingIndices } from '../../common'; const parseMetaFields = (metaFields: string | string[]) => { let parsedFields: string[] = []; @@ -91,6 +92,10 @@ const handler: RequestHandler<{}, IQuery, IBody> = async (context, request, resp fields: request.query.fields, }); + if (indices.length === 0) { + throw new DataViewMissingIndices(pattern); + } + return response.ok({ body: { fields, indices }, headers: { From c98dc741e9fbb9a437e3628822d89f5111a93052 Mon Sep 17 00:00:00 2001 From: Matt Kime Date: Mon, 20 Mar 2023 14:45:06 -0500 Subject: [PATCH 10/10] fix REST api --- src/plugins/data_views/server/routes/fields_for.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/data_views/server/routes/fields_for.ts b/src/plugins/data_views/server/routes/fields_for.ts index 6ef5c7ac4a2e..d6610fa1b0f3 100644 --- a/src/plugins/data_views/server/routes/fields_for.ts +++ b/src/plugins/data_views/server/routes/fields_for.ts @@ -92,7 +92,7 @@ const handler: RequestHandler<{}, IQuery, IBody> = async (context, request, resp fields: request.query.fields, }); - if (indices.length === 0) { + if (indices.length === 0 && allowNoIndex !== true) { throw new DataViewMissingIndices(pattern); }