Core
Elasticsearch 8 v1.x
2

Configuration #

Every key of services.storageEngine is handed to the driver, as it was to Kuzzle's embedded Elasticsearch code. None is specific to this driver:

KeyDefaultWhat it does
client{ "node": "http://localhost:9200" }The Elasticsearch client options: nodes, authentication, TLS...
commonMapping_kuzzle_info fields, dynamic: "false"The mapping merged into every collection's mapping.
defaultSettings1 shard, 1 replicaThe settings of a new collection's index, unless the request sets them.
internalIndexkuzzle, with its collectionsThe name, settings and mappings of Kuzzle's internal index.
maxScrollDuration"1m"The longest scroll a request may ask for.
defaults.onUpdateConflictRetries0How many times an update is retried on a version conflict.
defaults.scrollTTL"15s"How long a paginated search's cursor lives.
generateMissingAliasestrueCreates the aliases of the collections that have none, at startup (data created before Kuzzle 2.14).

The full reference, with comments, is Kuzzle's .kuzzlerc.sample.jsonc. Each key can also be set through an environment variable, for example kuzzle_services__storageEngine__client__node.

Authentication and TLS #

client goes to the Elasticsearch client as it is:

{
  "services": {
    "storageEngine": {
      "majorVersion": "8",
      "client": {
        "node": "https://elasticsearch.example.com:9200",
        "auth": { "username": "kuzzle", "password": "<password>" },
        "tls": { "rejectUnauthorized": true },
      },
    },
  },
}

Keep secrets out of .kuzzlerc: use Kuzzle's vault or environment variables.