kibana/x-pack/plugins/global_search
Mikhail Shustov b53b2cdc35
[Elasticsearch] remove legacy es client (#107619)
* remove legacy es client

* update docs

* uninstall elasticsearch package

* fix global_search tests

* ad-hoc fix to address bazel failure. authored by Tiago

* update docs

* remove elasticsearch import. errors are muted with @ts-ignore

* Update WORKSPACE.bazel

Co-authored-by: Tiago Costa <tiagoffcc@hotmail.com>

* update docs

* fix problem when dev mock already mocked client

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Tiago Costa <tiagoffcc@hotmail.com>
2021-08-18 19:18:05 +02:00
..
common
public
server [Elasticsearch] remove legacy es client (#107619) 2021-08-18 19:18:05 +02:00
jest.config.js
kibana.json
README.md
tsconfig.json

Kibana GlobalSearch plugin

The GlobalSearch plugin provides an easy way to search for various objects, such as applications or dashboards from the Kibana instance, from both server and client-side plugins

Consuming the globalSearch API

startDeps.globalSearch.find('some term').subscribe({
  next: ({ results }) => {
    addNewResultsToList(results);
  },
  error: () => {},
  complete: () => {
    showAsyncSearchIndicator(false);
  }
});

Registering custom result providers

The GlobalSearch API allows to extend provided results by registering your own provider.

setupDeps.globalSearch.registerResultProvider({
  id: 'my_provider',
  find: (term, options, context) => {
    const resultPromise = myService.search(term, context.core.savedObjects.client);
    return from(resultPromise).pipe(takeUntil(options.aborted$);
  },
});

Known limitations

Client-side registered providers

Results from providers registered from the client-side registerResultProvider API will not be available when performing a search from the server-side. For this reason, prefer registering providers using the server-side API when possible.

Refer to the RFC for more details

Search completion cause

There is currently no way to identify globalSearch.find observable completion cause: searches completing because all providers returned all their results and searches completing because the consumer aborted the search using the aborted$ option or because the internal timout period has been reaches will both complete the same way.