diff --git a/src/backend/base/langflow/__main__.py b/src/backend/base/langflow/__main__.py index f07caac33..c1351fdea 100644 --- a/src/backend/base/langflow/__main__.py +++ b/src/backend/base/langflow/__main__.py @@ -1,5 +1,6 @@ import asyncio import inspect +import os import platform import signal import socket @@ -167,6 +168,11 @@ def run( set_var_for_macos_issue() settings_service = get_settings_service() + for key, value in os.environ.items(): + new_key = key.replace("LANGFLOW_", "") + if hasattr(settings_service.auth_settings, new_key): + setattr(settings_service.auth_settings, new_key, value) + frame = inspect.currentframe() valid_args: list = [] values: dict = {} @@ -179,6 +185,8 @@ def run( settings_service.settings.update_settings(components_path=components_path) elif hasattr(settings_service.settings, arg): settings_service.set(arg, values[arg]) + elif hasattr(settings_service.auth_settings, arg): + settings_service.auth_settings.set(arg, values[arg]) logger.debug(f"Loading config from cli parameter '{arg}': '{values[arg]}'") host = settings_service.settings.host diff --git a/src/backend/base/langflow/services/settings/auth.py b/src/backend/base/langflow/services/settings/auth.py index feceaacb6..25dd338ab 100644 --- a/src/backend/base/langflow/services/settings/auth.py +++ b/src/backend/base/langflow/services/settings/auth.py @@ -5,7 +5,7 @@ from typing import Literal from loguru import logger from passlib.context import CryptContext from pydantic import Field, SecretStr, field_validator -from pydantic_settings import BaseSettings +from pydantic_settings import BaseSettings, SettingsConfigDict from langflow.services.settings.constants import DEFAULT_SUPERUSER, DEFAULT_SUPERUSER_PASSWORD from langflow.services.settings.utils import read_secret_from_file, write_secret_to_file @@ -52,10 +52,7 @@ class AuthSettings(BaseSettings): pwd_context: CryptContext = CryptContext(schemes=["bcrypt"], deprecated="auto") - class Config: - validate_assignment = True - extra = "ignore" - env_prefix = "LANGFLOW_" + model_config = SettingsConfigDict(validate_assignment=True, extra="ignore", env_prefix="LANGFLOW_") def reset_credentials(self) -> None: self.SUPERUSER = DEFAULT_SUPERUSER