feat(ingest/elasticsearch): add api_key auth (#11475)

This commit is contained in:
Martin Thøgersen 2024-09-30 00:26:40 +02:00 committed by GitHub
parent efcc918cfe
commit 0187fc6c0f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5,7 +5,7 @@ import time
from collections import defaultdict from collections import defaultdict
from dataclasses import dataclass, field from dataclasses import dataclass, field
from hashlib import md5 from hashlib import md5
from typing import Any, Dict, Generator, Iterable, List, Optional, Tuple, Type from typing import Any, Dict, Generator, Iterable, List, Optional, Tuple, Type, Union
from elasticsearch import Elasticsearch from elasticsearch import Elasticsearch
from pydantic import validator from pydantic import validator
@ -249,6 +249,10 @@ class ElasticsearchSourceConfig(PlatformInstanceConfigMixin, EnvConfigMixin):
password: Optional[str] = Field( password: Optional[str] = Field(
default=None, description="The password credential." default=None, description="The password credential."
) )
api_key: Optional[Union[Any, str]] = Field(
default=None,
description="API Key authentication. Accepts either a list with id and api_key (UTF-8 representation), or a base64 encoded string of id and api_key combined by ':'.",
)
use_ssl: bool = Field( use_ssl: bool = Field(
default=False, description="Whether to use SSL for the connection or not." default=False, description="Whether to use SSL for the connection or not."
@ -346,6 +350,7 @@ class ElasticsearchSource(Source):
self.client = Elasticsearch( self.client = Elasticsearch(
self.source_config.host, self.source_config.host,
http_auth=self.source_config.http_auth, http_auth=self.source_config.http_auth,
api_key=self.source_config.api_key,
use_ssl=self.source_config.use_ssl, use_ssl=self.source_config.use_ssl,
verify_certs=self.source_config.verify_certs, verify_certs=self.source_config.verify_certs,
ca_certs=self.source_config.ca_certs, ca_certs=self.source_config.ca_certs,