diff --git a/src/plugins/data_views/common/data_views/data_views.test.ts b/src/plugins/data_views/common/data_views/data_views.test.ts index e5e9b2d83faf7..7714a96b15b9e 100644 --- a/src/plugins/data_views/common/data_views/data_views.test.ts +++ b/src/plugins/data_views/common/data_views/data_views.test.ts @@ -164,6 +164,19 @@ describe('IndexPatterns', () => { expect(apiClient.getFieldsForWildcard).toBeCalledTimes(2); }); + test('getFieldsForWildcard called with allowNoIndex set to true as default ', async () => { + const id = '1'; + await indexPatterns.get(id); + expect(apiClient.getFieldsForWildcard).toBeCalledWith({ + allowNoIndex: true, + indexFilter: undefined, + metaFields: false, + pattern: 'something', + rollupIndex: undefined, + type: undefined, + }); + }); + test('does cache ad-hoc data views', async () => { const id = '1'; @@ -608,9 +621,8 @@ describe('IndexPatterns', () => { expect(indexPattern.fields.length).toBe(1); }); - test('refreshFields properly includes allowNoIndex', async () => { + test('refreshFields defaults allowNoIndex to true', async () => { const indexPatternSpec: DataViewSpec = { - allowNoIndex: true, title: 'test', }; diff --git a/src/plugins/data_views/common/data_views/data_views.ts b/src/plugins/data_views/common/data_views/data_views.ts index afccfdcee79fc..864c4ec2df3b3 100644 --- a/src/plugins/data_views/common/data_views/data_views.ts +++ b/src/plugins/data_views/common/data_views/data_views.ts @@ -515,12 +515,12 @@ export class DataViewsService { */ getFieldsForIndexPattern = async ( indexPattern: DataView | DataViewSpec, - options?: GetFieldsOptions + options?: Omit ) => this.getFieldsForWildcard({ type: indexPattern.type, rollupIndex: indexPattern?.typeMeta?.params?.rollup_index, - allowNoIndex: indexPattern.allowNoIndex, + allowNoIndex: true, ...options, pattern: indexPattern.title as string, }); @@ -530,7 +530,7 @@ export class DataViewsService { return this.apiClient.getFieldsForWildcard({ type: dataView.type, rollupIndex: dataView?.typeMeta?.params?.rollup_index, - allowNoIndex: dataView.allowNoIndex, + allowNoIndex: true, pattern: dataView.getIndexPattern(), metaFields, }); @@ -538,12 +538,12 @@ export class DataViewsService { private getFieldsAndIndicesForWildcard = async (options: GetFieldsOptions) => { const metaFields = await this.config.get(META_FIELDS); - return await this.apiClient.getFieldsForWildcard({ + return this.apiClient.getFieldsForWildcard({ pattern: options.pattern, metaFields, type: options.type, rollupIndex: options.rollupIndex, - allowNoIndex: options.allowNoIndex, + allowNoIndex: true, indexFilter: options.indexFilter, }); }; diff --git a/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts b/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts index 4ec808c756873..73e550ebd68ce 100644 --- a/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts +++ b/src/plugins/data_views/server/fetcher/lib/field_capabilities/field_capabilities.ts @@ -50,12 +50,13 @@ export async function getFieldCapabilities(params: FieldCapabilitiesParams) { indexFilter, fields, }); - const fieldsFromFieldCapsByName = keyBy(readFieldCapsResponse(esFieldCaps.body), 'name'); + const fieldCapsArr = readFieldCapsResponse(esFieldCaps.body); + const fieldsFromFieldCapsByName = keyBy(fieldCapsArr, 'name'); const allFieldsUnsorted = Object.keys(fieldsFromFieldCapsByName) // not all meta fields are provided, so remove and manually add .filter((name) => !fieldsFromFieldCapsByName[name].metadata_field) - .concat(metaFields) + .concat(fieldCapsArr.length ? metaFields : []) .reduce<{ names: string[]; map: Map }>( (agg, value) => { // This is intentionally using a Map to be highly optimized with very large indexes AND be safe for user provided data diff --git a/test/functional/apps/discover/group3/_sidebar.ts b/test/functional/apps/discover/group3/_sidebar.ts index f295f4ce241be..0e0aa51db2c0a 100644 --- a/test/functional/apps/discover/group3/_sidebar.ts +++ b/test/functional/apps/discover/group3/_sidebar.ts @@ -426,9 +426,9 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { await PageObjects.discover.waitUntilSidebarHasLoaded(); expect(await PageObjects.discover.getSidebarAriaDescription()).to.be( - '0 available fields. 0 meta fields.' + '0 available fields. 0 empty fields. 0 meta fields.' ); - await testSubjects.existOrFail( + await testSubjects.missingOrFail( `${PageObjects.discover.getSidebarSectionSelector('available')}-fetchWarning` ); await testSubjects.existOrFail(