Skip to content

Commit 3a36d6e

Browse files
committed
chore(es): support cert connection for opensearch backend
1 parent 93c2171 commit 3a36d6e

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

veadk/configs/database_configs.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ class OpensearchConfig(BaseSettings):
2828

2929
port: int = 9200
3030

31+
cert_path: str = ""
32+
3133
username: str = ""
3234

3335
password: str = ""

veadk/knowledgebase/backends/opensearch_backend.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,13 @@
2727

2828
import veadk.config # noqa E401
2929
from veadk.configs.database_configs import OpensearchConfig
30-
from veadk.configs.model_configs import EmbeddingModelConfig, NormalEmbeddingModelConfig
30+
from veadk.configs.model_configs import (
31+
EmbeddingModelConfig,
32+
NormalEmbeddingModelConfig,
33+
)
3134
from veadk.knowledgebase.backends.base_backend import BaseKnowledgebaseBackend
3235
from veadk.knowledgebase.backends.utils import get_llama_index_splitter
36+
from veadk.utils.logger import get_logger
3337

3438
try:
3539
from llama_index.vector_stores.opensearch import (
@@ -42,6 +46,9 @@
4246
)
4347

4448

49+
logger = get_logger(__name__)
50+
51+
4552
class OpensearchKnowledgeBackend(BaseKnowledgebaseBackend):
4653
"""Opensearch-based backend for knowledgebase.
4754
@@ -79,6 +86,12 @@ class OpensearchKnowledgeBackend(BaseKnowledgebaseBackend):
7986

8087
def model_post_init(self, __context: Any) -> None:
8188
self.precheck_index_naming()
89+
90+
if not self.opensearch_config.cert_path:
91+
logger.warning(
92+
"OpenSearch cert_path is not set, which may lead to security risks"
93+
)
94+
8295
self._opensearch_client = OpensearchVectorClient(
8396
endpoint=self.opensearch_config.host,
8497
port=self.opensearch_config.port,
@@ -87,7 +100,8 @@ def model_post_init(self, __context: Any) -> None:
87100
self.opensearch_config.password,
88101
),
89102
use_ssl=True,
90-
verify_certs=False,
103+
verify_certs=False if not self.opensearch_config.cert_path else True,
104+
cert_path=self.opensearch_config.cert_path,
91105
dim=self.embedding_config.dim,
92106
index=self.index, # collection name
93107
)

veadk/memory/long_term_memory_backends/opensearch_backend.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@
2222

2323
import veadk.config # noqa E401
2424
from veadk.configs.database_configs import OpensearchConfig
25-
from veadk.configs.model_configs import EmbeddingModelConfig, NormalEmbeddingModelConfig
25+
from veadk.configs.model_configs import (
26+
EmbeddingModelConfig,
27+
NormalEmbeddingModelConfig,
28+
)
2629
from veadk.knowledgebase.backends.utils import get_llama_index_splitter
2730
from veadk.memory.long_term_memory_backends.base_backend import (
2831
BaseLongTermMemoryBackend,
@@ -74,6 +77,11 @@ def _create_vector_index(self, index: str) -> VectorStoreIndex:
7477

7578
self.precheck_index_naming(index)
7679

80+
if not self.opensearch_config.cert_path:
81+
logger.warning(
82+
"OpenSearch cert_path is not set, which may lead to security risks"
83+
)
84+
7785
opensearch_client = OpensearchVectorClient(
7886
endpoint=self.opensearch_config.host,
7987
port=self.opensearch_config.port,
@@ -82,7 +90,8 @@ def _create_vector_index(self, index: str) -> VectorStoreIndex:
8290
self.opensearch_config.password,
8391
),
8492
use_ssl=True,
85-
verify_certs=False,
93+
verify_certs=False if not self.opensearch_config.cert_path else True,
94+
cert_path=self.opensearch_config.cert_path,
8695
dim=self.embedding_config.dim,
8796
index=index,
8897
)

0 commit comments

Comments
 (0)