feat: Support Password Access for ElasticSearch (#1072)

### What problem does this PR solve?

Using password authentication to access ElasticSearch is essential,
especially in a production environment.

This PR will enable password access support.

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
CKLogic 2024-06-06 13:19:26 +08:00 committed by GitHub
parent 4454ba7a1e
commit 195498daaa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 13 additions and 6 deletions

View File

@ -15,6 +15,8 @@ minio:
host: 'minio:9000'
es:
hosts: 'http://es01:9200'
username: 'elastic'
password: 'infini_rag_flow'
redis:
db: 1
password: 'infini_rag_flow'

View File

@ -1,12 +1,13 @@
# Version of Elastic products
STACK_VERSION=8.11.3
# Set the cluster name
CLUSTER_NAME=rag_flow
# Port to expose Elasticsearch HTTP API to the host
ES_PORT=1200
# Set the Elasticsearch password
ELASTIC_PASSWORD=infini_rag_flow
# Port to expose Kibana to the host
KIBANA_PORT=6601

View File

@ -8,12 +8,12 @@ services:
- ${ES_PORT}:9200
environment:
- node.name=es01
- cluster.name=${CLUSTER_NAME}
- cluster.initial_master_nodes=es01
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
- bootstrap.memory_lock=false
- xpack.security.enabled=false
- cluster.max_shards_per_node=4096
- discovery.type=single-node
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=false
- xpack.security.transport.ssl.enabled=false
- TZ=${TIMEZONE}
mem_limit: ${MEM_LIMIT}
ulimits:

View File

@ -15,6 +15,8 @@ minio:
host: 'minio:9000'
es:
hosts: 'http://es01:9200'
username: 'elastic'
password: 'infini_rag_flow'
redis:
db: 1
password: 'infini_rag_flow'

View File

@ -28,6 +28,8 @@ class ESConnection:
try:
self.es = Elasticsearch(
settings.ES["hosts"].split(","),
basic_auth=(settings.ES["username"], settings.ES["password"]) if "username" in settings.ES and "password" in settings.ES else None,
verify_certs=False,
timeout=600
)
if self.es: