Skip to main content

Elasticsearch Store

An API for managing an elasticsearch index, with versioning and migration support.

Installation

# Using yarn
yarn add elasticsearch-store
# Using npm
npm install --save elasticsearch-store

Connectors

Elasticsearch-next Connector

Configuration:

The Elasticsearch-next connector configuration, in your Teraslice configuration file, includes the following parameters:

ConfigurationDescriptionTypeNotes
nodeA list of hosts to connect to.String | String[]optional, defaults to ['http://127.0.0.1:9200']
sniffOnStartSniff hosts on start upBooleanoptional, defaults to false
caCertificateA string containing a single or multiple ca certificatesStringoptional, defaults to undefined
usernameUsername for authenticating with clusterStringoptional, required if authentication is enabled, defaults to undefined
passwordPassword for authenticating with cluster.Stringoptional, required if used in conjunction with the username, defaults to undefined
sniffOnConnectionFaultSniff hosts on connection failureBooleanoptional, defaults to false
requestTimeoutRequest timeoutdurationoptional, defaults to 120000
maxRetriesMaximum retries for a failed requestnumberoptional, defaults to 3
suggestCompressionAdds accept-encoding: \'gzip,deflate\' header to every request. This enables HTTP compression for responses from the OpenSearch cluster to reduce network bandwidth usage.Booleanoptional, defaults to false
pingTimeoutMax ping request timeout in milliseconds for each request. If undefined will use the client's default, usually 3000Numberoptional, defaults to undefined
sniffIntervalPerform a sniff operation every n milliseconds. If undefined will use the client's default, usually falseNumber | falseoptional, defaults to undefined
sniffEndpointEndpoint to ping during a sniff. If undefined will use the client's default, usually _nodes/_all/http.Stringoptional, defaults to undefined
authYour authentication data. Does not support "ApiKey" or "Bearer" token authentication.'{ username: string, password: string }optional, defaults to undefined

Note: The Elasticsearch and OpenSearch clients have several more configuration options available, e.g., ssl. These fields can be added to the connector configuration and will be passed directly to the client. Warning: If an option is not listed in the table above it is untested, will not be validated, and may cause unexpected behavior.

Terafoundation Elasticsearch-next configuration example:

terafoundation:
connectors:
elasticsearch-next:
default:
node:
- "http://localhost:9200"

Terafoundation Elasticsearch-next ssl configuration examples:

terafoundation:
connectors:
elasticsearch-next:
default:
node:
- "https://localhost:9200"
username: admin
password: mypassword
caCertificate: |
-----BEGIN CERTIFICATE-----
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQs
...
DXZDjC5Ty3zfDBeWUA==
-----END CERTIFICATE-----