feat: Add default user from config (#682)

<!-- .github/pull_request_template.md -->

## Description
<!-- Provide a clear description of the changes in this PR -->

## 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 <borisarzentar@gmail.com>
This commit is contained in:
Vasilije 2025-04-02 14:48:10 +02:00 committed by GitHub
parent 0f8bec1f07
commit 67e980f22e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 14 additions and 7 deletions

View file

@ -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"

View file

@ -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:

View file

@ -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,

View file

@ -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()