TypeScript icon, indicating that this package has built-in type declarations

1.21.5 • Public • Published


Part of the Search UI project.

This Connector is used to connect Search UI directly to Elasticsearch.

⚠️ Elasticsearch connector for Search UI is currently in technical preview status. It is not ready for production use. ⚠️


npm install --save @elastic/search-ui-elasticsearch-connector
import ElasticsearchAPIConnector from "@elastic/search-ui-elasticsearch-connector";

const connector = new ElasticsearchAPIConnector({
  cloud: {
    id: "<elastic-cloud-id>"
  index: "search-ui-examples", // index name where the search documents are contained
  apiKey: "apiKeyExample" // Optional. apiKey used to authorize a connection to Elasticsearch instance.
  // This key will be visible to everyone so ensure its setup with restricted privileges.
  // See Authentication section for more details.


Kind: global class

new ElasticsearchAPIConnector(options)

Param Type
options Options


Kind: global typedef

Param Type Default Description
cloud Object { id: string } Elastic cloud configuration. Can be found in your cloud deployment dashboard.
host string Elasticsearch host.
index string Index name for where the search documents are contained in
apiKey string Optional. Credential thats setup within Kibana's UI. see kibana API keys guide.

Query Configuration Requirements

  • search_fields object is required with all fields you want to search by.

Connection & Authentication

This connector will talk to the elasticsearch instance directly from the browser. This requires further additional steps to keep your Elasticsearch instance secure as possible. You have the following options available to you to keep any sensitive data protected

Proxy the _search API call through your API

This envolves building an API route that will proxy the elasticsearch call through your API. During the proxy, you are able to:

  • Ability to add any additional authentication headers / keys as you proxy the request through the API and to Elasticsearch.
  • Update the elasticsearch query request to add any filters to filter restricted documents
  • Application performance monitoring of functionality
  • Your own user based authentication for your API
  • Add a caching layer between the API and Elasticsearch

To do this, provide the host to be the location of the API. Example host: "https://search.acme.co/search", index: "movies". In this example, you would need to implement a POST endpoint for https://search.acme.co/search/movies/_search . When the connector performs a network request, the Elasticsearch Query DSL will be contained within the body.

Use an Elasticsearch api-key

You can restrict access to indices via an api-key. See kibana API keys guide




Package Sidebar


npm i @elastic/search-ui-elasticsearch-connector

Weekly Downloads






Unpacked Size

163 kB

Total Files


Last publish


  • obltmachine
  • kc13greiner
  • elena-shostak
  • miguel-elastic
  • lenegadewoll
  • cbishopewc
  • cindy_c
  • asnyder-elastic
  • lgestc
  • patryk.kopycinski
  • banerjeesoham004
  • legrego
  • bradtimmerman
  • devcorpio
  • yan.savitski
  • jeramysoucy
  • tkajtoch
  • johnwcambra
  • colleen.mcginnis
  • kyrspl
  • phoey1
  • verogo
  • breehall
  • trevorpierce
  • jen-huang
  • delvedor
  • lukasolson
  • ccowan
  • jbudz
  • thomasneirynck
  • weltenwort
  • pugnascotia
  • zinckiwi
  • brandon.kobel
  • nreese
  • mgreau
  • jonahbull
  • jarpy
  • leathekd
  • lukeelmers
  • ddillinger
  • joshdover
  • jasonstoltz
  • bamieh
  • markov00
  • joshmock
  • vignesh.shanmugam
  • watson
  • rhodesjason
  • jmlrt
  • mattkime
  • constancecchen
  • afoucret
  • nickpeihl
  • axw
  • mistic
  • elasticmachine
  • gtback
  • pickypg
  • trentm
  • andrewvc-elastic
  • jorge.sanz
  • stratoula
  • nkammah
  • streamich
  • nickofthyme
  • chloeruka