Skip to content

Commit

Permalink
[7.x] Revert "use index patterns and search services for autocomplete (
Browse files Browse the repository at this point in the history
…#92861)" (#95335) (#95360)

* Revert "use index patterns and search services for autocomplete (#92861)" (#95335)

This reverts commit 2ef7f3b.

* es

Co-authored-by: Liza Katz <[email protected]>
Co-authored-by: Liza K <[email protected]>
  • Loading branch information
3 people authored Apr 4, 2021
1 parent 5ea2cf6 commit 966063a
Show file tree
Hide file tree
Showing 15 changed files with 50 additions and 86 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,6 @@
| [KibanaContext](./kibana-plugin-plugins-data-server.kibanacontext.md) | |
| [ParsedInterval](./kibana-plugin-plugins-data-server.parsedinterval.md) | |
| [Query](./kibana-plugin-plugins-data-server.query.md) | |
| [SearchRequestHandlerContext](./kibana-plugin-plugins-data-server.searchrequesthandlercontext.md) | |
| [TimeRange](./kibana-plugin-plugins-data-server.timerange.md) | |

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [kibana-plugin-plugins-data-server](./kibana-plugin-plugins-data-server.md) &gt; [SearchRequestHandlerContext](./kibana-plugin-plugins-data-server.searchrequesthandlercontext.md)

## SearchRequestHandlerContext type

<b>Signature:</b>

```typescript
export declare type SearchRequestHandlerContext = IScopedSearchClient;
```
3 changes: 1 addition & 2 deletions src/plugins/data/server/autocomplete/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@
import { Observable } from 'rxjs';
import { CoreSetup, SharedGlobalConfig } from 'kibana/server';
import { registerValueSuggestionsRoute } from './value_suggestions_route';
import { DataRequestHandlerContext } from '../types';

export function registerRoutes({ http }: CoreSetup, config$: Observable<SharedGlobalConfig>): void {
const router = http.createRouter<DataRequestHandlerContext>();
const router = http.createRouter();

registerValueSuggestionsRoute(router, config$);
}
36 changes: 10 additions & 26 deletions src/plugins/data/server/autocomplete/value_suggestions_route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ import { IRouter, SharedGlobalConfig } from 'kibana/server';
import { Observable } from 'rxjs';
import { first } from 'rxjs/operators';
import type { estypes } from '@elastic/elasticsearch';
import { IFieldType, ES_SEARCH_STRATEGY, IEsSearchRequest } from '../index';
import { IFieldType } from '../index';
import { findIndexPatternById, getFieldByName } from '../index_patterns';
import { getRequestAbortedSignal } from '../lib';
import { DataRequestHandlerContext } from '../types';

export function registerValueSuggestionsRoute(
router: IRouter<DataRequestHandlerContext>,
router: IRouter,
config$: Observable<SharedGlobalConfig>
) {
router.post(
Expand All @@ -45,40 +45,24 @@ export function registerValueSuggestionsRoute(
const config = await config$.pipe(first()).toPromise();
const { field: fieldName, query, filters } = request.body;
const { index } = request.params;
const { client } = context.core.elasticsearch.legacy;
const signal = getRequestAbortedSignal(request.events.aborted$);

if (!context.indexPatterns) {
return response.badRequest();
}

const autocompleteSearchOptions = {
timeout: `${config.kibana.autocompleteTimeout.asMilliseconds()}ms`,
terminate_after: config.kibana.autocompleteTerminateAfter.asMilliseconds(),
};

const indexPatterns = await context.indexPatterns.find(index, 1);
if (!indexPatterns || indexPatterns.length === 0) {
return response.notFound();
}
const field = indexPatterns[0].getFieldByName(fieldName);
const indexPattern = await findIndexPatternById(context.core.savedObjects.client, index);

const field = indexPattern && getFieldByName(fieldName, indexPattern);
const body = await getBody(autocompleteSearchOptions, field || fieldName, query, filters);

const searchRequest: IEsSearchRequest = {
params: {
index,
body,
},
};
const { rawResponse } = await context.search
.search(searchRequest, {
strategy: ES_SEARCH_STRATEGY,
abortSignal: signal,
})
.toPromise();
const result = await client.callAsCurrentUser('search', { index, body }, { signal });

const buckets: any[] =
get(rawResponse, 'aggregations.suggestions.buckets') ||
get(rawResponse, 'aggregations.nestedSuggestions.suggestions.buckets');
get(result, 'aggregations.suggestions.buckets') ||
get(result, 'aggregations.nestedSuggestions.suggestions.buckets');

return response.ok({ body: map(buckets || [], 'key') });
}
Expand Down
4 changes: 2 additions & 2 deletions src/plugins/data/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,10 +236,10 @@ export {
SearchUsage,
SearchSessionService,
ISearchSessionService,
SearchRequestHandlerContext,
DataRequestHandlerContext,
} from './search';

export { DataRequestHandlerContext } from './types';

// Search namespace
export const search = {
aggs: {
Expand Down
4 changes: 0 additions & 4 deletions src/plugins/data/server/index_patterns/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
* Side Public License, v 1.
*/

import { IndexPatternsService } from '../../common/index_patterns';

export * from './utils';
export {
IndexPatternsFetcher,
Expand All @@ -17,5 +15,3 @@ export {
getCapabilitiesForRollupIndices,
} from './fetcher';
export { IndexPatternsServiceProvider, IndexPatternsServiceStart } from './index_patterns_service';

export type IndexPatternsHandlerContext = IndexPatternsService;
17 changes: 0 additions & 17 deletions src/plugins/data/server/index_patterns/index_patterns_service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ 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 { DataRequestHandlerContext } from '../types';
import { registerIndexPatternsUsageCollector } from './register_index_pattern_usage_collection';

export interface IndexPatternsServiceStart {
Expand Down Expand Up @@ -90,22 +89,6 @@ export class IndexPatternsServiceProvider implements Plugin<void, IndexPatternsS
core.savedObjects.registerType(indexPatternSavedObjectType);
core.capabilities.registerProvider(capabilitiesProvider);

core.http.registerRouteHandlerContext<DataRequestHandlerContext, 'indexPatterns'>(
'indexPatterns',
async (context, request) => {
const [coreStart, , dataStart] = await core.getStartServices();
try {
return await dataStart.indexPatterns.indexPatternsServiceFactory(
coreStart.savedObjects.getScopedClient(request),
coreStart.elasticsearch.client.asScoped(request).asCurrentUser
);
} catch (e) {
logger.error(e);
return undefined;
}
}
);

registerRoutes(core.http, core.getStartServices);

expressions.registerFunction(getIndexPatternLoad({ getStartServices: core.getStartServices }));
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/data/server/mocks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
} from './search/mocks';
import { createFieldFormatsSetupMock, createFieldFormatsStartMock } from './field_formats/mocks';
import { createIndexPatternsStartMock } from './index_patterns/mocks';
import { DataRequestHandlerContext } from './types';
import { DataRequestHandlerContext } from './search';

function createSetupContract() {
return {
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/data/server/search/routes/msearch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { SearchRouteDependencies } from '../search_service';

import { getCallMsearch } from './call_msearch';
import { reportServerError } from '../../../../kibana_utils/server';
import type { DataPluginRouter } from '../../types';
import type { DataPluginRouter } from '../types';
/**
* The msearch route takes in an array of searches, each consisting of header
* and body json, and reformts them into a single request for the _msearch API.
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/data/server/search/routes/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { first } from 'rxjs/operators';
import { schema } from '@kbn/config-schema';
import { getRequestAbortedSignal } from '../../lib';
import { reportServerError } from '../../../../kibana_utils/server';
import type { DataPluginRouter } from '../../types';
import type { DataPluginRouter } from '../types';

export function registerSearchRoute(router: DataPluginRouter): void {
router.post(
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/data/server/search/search_service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import type {
ISearchStrategy,
SearchEnhancements,
SearchStrategyDependencies,
DataRequestHandlerContext,
} from './types';

import { AggsService } from './aggs';
Expand Down Expand Up @@ -74,7 +75,6 @@ import { ConfigSchema } from '../../config';
import { ISearchSessionService, SearchSessionService } from './session';
import { KbnServerError } from '../../../kibana_utils/server';
import { registerBsearchRoute } from './routes/bsearch';
import { DataRequestHandlerContext } from '../types';
import { getKibanaContext } from './expressions/kibana_context';

type StrategyMap = Record<string, ISearchStrategy<any, any>>;
Expand Down
11 changes: 11 additions & 0 deletions src/plugins/data/server/search/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@

import { Observable } from 'rxjs';
import type {
IRouter,
IScopedClusterClient,
IUiSettingsClient,
SavedObjectsClientContract,
KibanaRequest,
RequestHandlerContext,
} from 'src/core/server';
import {
ISearchOptions,
Expand Down Expand Up @@ -114,3 +116,12 @@ export interface ISearchStart<
}

export type SearchRequestHandlerContext = IScopedSearchClient;

/**
* @internal
*/
export interface DataRequestHandlerContext extends RequestHandlerContext {
search: SearchRequestHandlerContext;
}

export type DataPluginRouter = IRouter<DataRequestHandlerContext>;
13 changes: 6 additions & 7 deletions src/plugins/data/server/server.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -321,12 +321,6 @@ export const config: PluginConfigDescriptor<ConfigSchema>;

// @internal (undocumented)
export interface DataRequestHandlerContext extends RequestHandlerContext {
// Warning: (ae-forgotten-export) The symbol "IndexPatternsHandlerContext" needs to be exported by the entry point index.d.ts
//
// (undocumented)
indexPatterns?: IndexPatternsHandlerContext;
// Warning: (ae-forgotten-export) The symbol "SearchRequestHandlerContext" needs to be exported by the entry point index.d.ts
//
// (undocumented)
search: SearchRequestHandlerContext;
}
Expand Down Expand Up @@ -1343,6 +1337,11 @@ export const search: {
tabifyGetColumns: typeof tabifyGetColumns;
};

// Warning: (ae-missing-release-tag) "SearchRequestHandlerContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SearchRequestHandlerContext = IScopedSearchClient;

// @internal
export class SearchSessionService implements ISearchSessionService {
constructor();
Expand Down Expand Up @@ -1530,7 +1529,7 @@ export function usageProvider(core: CoreSetup_2): SearchUsage;
// 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: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:112:5 - (ae-forgotten-export) The symbol "ISearchStartSearchSource" 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)

Expand Down
22 changes: 0 additions & 22 deletions src/plugins/data/server/types.ts

This file was deleted.

6 changes: 4 additions & 2 deletions x-pack/plugins/infra/server/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
* 2.0.
*/

import type { DataRequestHandlerContext } from '../../../../src/plugins/data/server';
import type { RequestHandlerContext } from 'src/core/server';
import type { SearchRequestHandlerContext } from '../../../../src/plugins/data/server';
import { MlPluginSetup } from '../../ml/server';

export type MlSystem = ReturnType<MlPluginSetup['mlSystemProvider']>;
Expand All @@ -26,6 +27,7 @@ export type InfraRequestHandlerContext = InfraMlRequestHandlerContext &
/**
* @internal
*/
export interface InfraPluginRequestHandlerContext extends DataRequestHandlerContext {
export interface InfraPluginRequestHandlerContext extends RequestHandlerContext {
infra: InfraRequestHandlerContext;
search: SearchRequestHandlerContext;
}

0 comments on commit 966063a

Please sign in to comment.