From 67e980f22e4d0859a699810c9e34bb0e58d0ff82 Mon Sep 17 00:00:00 2001 From: Vasilije <8619304+Vasilije1990@users.noreply.github.com> Date: Wed, 2 Apr 2025 14:48:10 +0200 Subject: [PATCH] feat: Add default user from config (#682) ## Description ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin. --------- Co-authored-by: Boris Arzentar --- .env.template | 4 ++++ cognee/base_config.py | 2 ++ cognee/modules/users/methods/create_default_user.py | 6 ++++-- cognee/modules/users/methods/get_default_user.py | 9 ++++----- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.env.template b/.env.template index 894a8ea3b..ba7126182 100644 --- a/.env.template +++ b/.env.template @@ -1,6 +1,10 @@ ENV="local" TOKENIZERS_PARALLELISM="false" +# Default User Configuration +DEFAULT_USER_EMAIL="" +DEFAULT_USER_PASSWORD="" + # LLM Configuration LLM_API_KEY="" LLM_MODEL="openai/gpt-4o-mini" diff --git a/cognee/base_config.py b/cognee/base_config.py index 6b1b8811e..c5693d18f 100644 --- a/cognee/base_config.py +++ b/cognee/base_config.py @@ -14,6 +14,8 @@ class BaseConfig(BaseSettings): langfuse_public_key: Optional[str] = os.getenv("LANGFUSE_PUBLIC_KEY") langfuse_secret_key: Optional[str] = os.getenv("LANGFUSE_SECRET_KEY") langfuse_host: Optional[str] = os.getenv("LANGFUSE_HOST") + default_user_email: Optional[str] = os.getenv("DEFAULT_USER_EMAIL") + default_user_password: Optional[str] = os.getenv("DEFAULT_USER_PASSWORD") model_config = SettingsConfigDict(env_file=".env", extra="allow") def to_dict(self) -> dict: diff --git a/cognee/modules/users/methods/create_default_user.py b/cognee/modules/users/methods/create_default_user.py index 7af4ade81..c19092b3a 100644 --- a/cognee/modules/users/methods/create_default_user.py +++ b/cognee/modules/users/methods/create_default_user.py @@ -1,9 +1,11 @@ from .create_user import create_user +from cognee.base_config import get_base_config async def create_default_user(): - default_user_email = "default_user@example.com" - default_user_password = "default_password" + base_config = get_base_config() + default_user_email = base_config.default_user_email or "default_user@example.com" + default_user_password = base_config.default_user_password or "default_password" user = await create_user( email=default_user_email, diff --git a/cognee/modules/users/methods/get_default_user.py b/cognee/modules/users/methods/get_default_user.py index bfaa82acc..cb49b2c24 100644 --- a/cognee/modules/users/methods/get_default_user.py +++ b/cognee/modules/users/methods/get_default_user.py @@ -4,17 +4,16 @@ from sqlalchemy.future import select from cognee.modules.users.models import User from cognee.infrastructure.databases.relational import get_relational_engine from cognee.modules.users.methods.create_default_user import create_default_user +from cognee.base_config import get_base_config async def get_default_user() -> SimpleNamespace: db_engine = get_relational_engine() + base_config = get_base_config() + default_email = base_config.default_user_email or "default_user@example.com" async with db_engine.get_async_session() as session: - query = ( - select(User) - .options(selectinload(User.roles)) - .where(User.email == "default_user@example.com") - ) + query = select(User).options(selectinload(User.roles)).where(User.email == default_email) result = await session.execute(query) user = result.scalars().first()