From 9ec0aef9120dcd96acf52e08fa619860891b5c8f Mon Sep 17 00:00:00 2001 From: Maksym Tykhenko Date: Thu, 28 Nov 2024 20:20:26 -0500 Subject: [PATCH 1/2] Fix database connection URL to ensure: special characters in passwords and other elements of connection string are escaped + sensitive objects are not exposed in logs in clear text --- backend/rag_solution/file_management/database.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/backend/rag_solution/file_management/database.py b/backend/rag_solution/file_management/database.py index 1827857a..a61954ea 100644 --- a/backend/rag_solution/file_management/database.py +++ b/backend/rag_solution/file_management/database.py @@ -2,7 +2,7 @@ import logging import os -from sqlalchemy import create_engine +from sqlalchemy import create_engine, URL from sqlalchemy.orm import declarative_base, sessionmaker from sqlalchemy.exc import SQLAlchemyError from core.config import settings @@ -18,14 +18,19 @@ host = 'localhost' # Synchronous database URL -DATABASE_URL = ( - f"postgresql://{settings.collectiondb_user}:{settings.collectiondb_pass}@{settings.collectiondb_host}:{settings.collectiondb_port}/{settings.collectiondb_name}" +database_url = URL.create( + drivername="postgresql", + username=settings.collectiondb_user, + password=settings.collectiondb_pass, + host=settings.collectiondb_host, + port=settings.collectiondb_port, + database=settings.collectiondb_name ) -logger.debug(f"Database URL: {DATABASE_URL}") +logger.debug(f"Database URL: {database_url}") # Create synchronous engine and session -engine = create_engine(DATABASE_URL, echo=True) +engine = create_engine(database_url, echo=True) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() From e77971158015c5d8741f292350f14d32251005ff Mon Sep 17 00:00:00 2001 From: Maksym Tykhenko Date: Thu, 28 Nov 2024 20:45:48 -0500 Subject: [PATCH 2/2] Set elastic port to default in app settings to tmp fix ElasticStore non-laziness --- backend/core/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/core/config.py b/backend/core/config.py index b84efa23..2489584a 100644 --- a/backend/core/config.py +++ b/backend/core/config.py @@ -64,7 +64,7 @@ class Settings(BaseSettings): # Elasticsearch credentials elastic_host: Optional[str] = None - elastic_port: Optional[int] = None + elastic_port: Optional[int] = 9200 elastic_password: Optional[str] = None elastic_cacert_path: Optional[str] = None elastic_cloud_id: Optional[str] = None