diff --git a/aleph/core.py b/aleph/core.py index c97e2db37..6e77744b6 100644 --- a/aleph/core.py +++ b/aleph/core.py @@ -140,6 +140,7 @@ def get_es(): "verify_certs": SETTINGS.ELASTICSEARCH_TLS_VERIFY_CERTS, "client_cert": SETTINGS.ELASTICSEARCH_TLS_CLIENT_CERT, "client_key": SETTINGS.ELASTICSEARCH_TLS_CLIENT_KEY, + "api_key": SETTINGS.ELASTICSEARCH_API_KEY, } ) for attempt in service_retries(): @@ -150,12 +151,24 @@ def get_es(): if sls.LOG_FORMAT == LOG_FORMAT_JSON: es = Elasticsearch( url, + api_key=( + SETTINGS.ELASTICSEARCH_API_ID, + SETTINGS.ELASTICSEARCH_API_KEY, + ), transport_class=LoggingTransport, timeout=timeout, **con_opts, ) else: - es = Elasticsearch(url, timeout=timeout, **con_opts) + es = Elasticsearch( + url, + api_key=( + SETTINGS.ELASTICSEARCH_API_ID, + SETTINGS.ELASTICSEARCH_API_KEY, + ), + timeout=timeout, + **con_opts, + ) es.info() SETTINGS._es_instance = es return SETTINGS._es_instance diff --git a/aleph/settings.py b/aleph/settings.py index bacaef255..b5079d897 100644 --- a/aleph/settings.py +++ b/aleph/settings.py @@ -193,6 +193,8 @@ def __init__(self) -> None: ) self.ELASTICSEARCH_TLS_CLIENT_CERT = env.get("ELASTICSEARCH_TLS_CLIENT_CERT") self.ELASTICSEARCH_TLS_CLIENT_KEY = env.get("ELASTICSEARCH_TLS_CLIENT_KEY") + self.ELASTICSEARCH_API_ID = env.get("ELASTICSEARCH_API_ID", None) + self.ELASTICSEARCH_API_KEY = env.get("ELASTICSEARCH_API_KEY", None) self.ELASTICSEARCH_TIMEOUT = env.to_int("ELASTICSEARCH_TIMEOUT", 60) self.XREF_SCROLL = env.get("ALEPH_XREF_SCROLL", "5m") self.XREF_SCROLL_SIZE = env.get("ALEPH_XREF_SCROLL_SIZE", "1000") diff --git a/docs/src/pages/developers/reference/configuration-options/_options.yml b/docs/src/pages/developers/reference/configuration-options/_options.yml index f2fe16610..dffe13a41 100644 --- a/docs/src/pages/developers/reference/configuration-options/_options.yml +++ b/docs/src/pages/developers/reference/configuration-options/_options.yml @@ -120,6 +120,12 @@ services: - name: 'ALEPH_ELASTICSEARCH_URI' description: 'ElasticSearch API endpoint' defaultValue: 'http://elasticsearch:9200' + - name: 'ELASTICSEARCH_API_ID' + description: 'Elasticsearch Api Id for Aleph indexes.' + defaultValue: '' + - name: 'ELASTICSEARCH_API_KEY' + description: 'Elasticsearch Api Id for Aleph indexes.' + defaultValue: '' - name: 'ELASTICSEARCH_TIMEOUT' description: 'Timeout for ElasticSearch requests in seconds.' defaultValue: '60'