🐛 fix(__main__.py): import correct function for get_db_manager and get_settings_manager in langflow/__main__.py

🐛 fix(api_key.py): import correct function for get_session in langflow/api/v1/api_key.py
🐛 fix(chat.py): import correct function for get_chat_manager and get_session in langflow/api/v1/chat.py
🐛 fix(components.py): import correct function for get_session in langflow/api/v1/components.py
🐛 fix(endpoints.py): import correct function for get_session and get_settings_manager in langflow/api/v1/endpoints.py
🐛 fix(flows.py): import correct function for get_session and get_settings_manager in langflow/api/v1/flows.py
🐛 fix(login.py): import correct function for get_session and get_settings_manager in langflow/api/v1/login.py
🐛 fix(users.py): import correct function for get_session in langflow/api/v1/users.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/agents/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/chains/base.py
🐛 fix(custom_component.py): import correct function for get_db_manager in langflow/interface/custom/custom_component.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/document_loaders/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/embeddings/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/llms/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/memories/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/output_parsers/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/prompts/base.py
🐛 fix(base.py): import correct function for get_settings_manager in langflow/interface/retrievers/base.py

🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect new module location
🐛 fix(base.py): update import statement for get_settings_manager function to reflect

🔧 fix(test_user.py): update import statement for get_settings_manager to reflect new module structure
🔧 fix(test_user.py): update variable names for superuser and superuser password to match new naming convention
🔧 fix(test_user.py): update variable names for superuser and superuser password to match new naming convention
🔧 fix(test_vectorstore_template.py): update import statement for get_settings_manager to reflect new module structure
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-09-18 15:42:39 -03:00
commit 0c3d59a804
39 changed files with 91 additions and 55 deletions

View file

@ -3,7 +3,7 @@ import time
import httpx import httpx
from langflow.services.database.utils import session_getter from langflow.services.database.utils import session_getter
from langflow.services.manager import initialize_services, initialize_settings_manager from langflow.services.manager import initialize_services, initialize_settings_manager
from langflow.services.utils import get_db_manager, get_settings_manager from langflow.services.getters import get_db_manager, get_settings_manager
from multiprocess import Process, cpu_count # type: ignore from multiprocess import Process, cpu_count # type: ignore
import platform import platform
@ -360,8 +360,8 @@ def superuser(
# Verify that the superuser was created # Verify that the superuser was created
from langflow.services.database.models.user.user import User from langflow.services.database.models.user.user import User
user = session.query(User).filter(User.username == username).first() user: User = session.query(User).filter(User.username == username).first()
if user is None: if user is None or not user.is_superuser:
typer.echo("Superuser creation failed.") typer.echo("Superuser creation failed.")
return return

View file

@ -14,7 +14,7 @@ from langflow.services.database.models.api_key.crud import (
delete_api_key, delete_api_key,
) )
from langflow.services.database.models.user.user import User from langflow.services.database.models.user.user import User
from langflow.services.utils import get_session from langflow.services.getters import get_session
from sqlmodel import Session from sqlmodel import Session

View file

@ -14,7 +14,7 @@ from langflow.api.v1.schemas import BuildStatus, BuiltResponse, InitResponse, St
from langflow.graph.graph.base import Graph from langflow.graph.graph.base import Graph
from langflow.services.auth.utils import get_current_active_user, get_current_user from langflow.services.auth.utils import get_current_active_user, get_current_user
from loguru import logger from loguru import logger
from langflow.services.utils import get_chat_manager, get_session from langflow.services.getters import get_chat_manager, get_session
from cachetools import LRUCache from cachetools import LRUCache
from sqlmodel import Session from sqlmodel import Session
from langflow.services.chat.manager import ChatManager from langflow.services.chat.manager import ChatManager

View file

@ -2,7 +2,7 @@ from datetime import timezone
from typing import List from typing import List
from uuid import UUID from uuid import UUID
from langflow.services.database.models.component import Component, ComponentModel from langflow.services.database.models.component import Component, ComponentModel
from langflow.services.utils import get_session from langflow.services.getters import get_session
from sqlmodel import Session, select from sqlmodel import Session, select
from fastapi import APIRouter, Depends, HTTPException from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError

View file

@ -6,7 +6,7 @@ from langflow.services.cache.utils import save_uploaded_file
from langflow.services.database.models.flow import Flow from langflow.services.database.models.flow import Flow
from langflow.processing.process import process_graph_cached, process_tweaks from langflow.processing.process import process_graph_cached, process_tweaks
from langflow.services.database.models.user.user import User from langflow.services.database.models.user.user import User
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from loguru import logger from loguru import logger
from fastapi import APIRouter, Depends, HTTPException, UploadFile, Body, status from fastapi import APIRouter, Depends, HTTPException, UploadFile, Body, status
import sqlalchemy as sa import sqlalchemy as sa
@ -27,7 +27,7 @@ from langflow.interface.types import (
build_langchain_custom_component_list_from_path, build_langchain_custom_component_list_from_path,
) )
from langflow.services.utils import get_session from langflow.services.getters import get_session
from sqlmodel import Session from sqlmodel import Session
# build router # build router

View file

@ -12,8 +12,8 @@ from langflow.services.database.models.flow import (
FlowUpdate, FlowUpdate,
) )
from langflow.services.database.models.user.user import User from langflow.services.database.models.user.user import User
from langflow.services.utils import get_session from langflow.services.getters import get_session
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
import orjson import orjson
from sqlmodel import Session from sqlmodel import Session
from fastapi import APIRouter, Depends, HTTPException from fastapi import APIRouter, Depends, HTTPException

View file

@ -2,7 +2,7 @@ from sqlmodel import Session
from fastapi import APIRouter, Depends, HTTPException, status from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2PasswordRequestForm from fastapi.security import OAuth2PasswordRequestForm
from langflow.services.utils import get_session from langflow.services.getters import get_session
from langflow.api.v1.schemas import Token from langflow.api.v1.schemas import Token
from langflow.services.auth.utils import ( from langflow.services.auth.utils import (
authenticate_user, authenticate_user,
@ -12,7 +12,7 @@ from langflow.services.auth.utils import (
get_current_active_user, get_current_active_user,
) )
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
router = APIRouter(tags=["Login"]) router = APIRouter(tags=["Login"])

View file

@ -13,7 +13,7 @@ from sqlalchemy.exc import IntegrityError
from sqlmodel import Session, select from sqlmodel import Session, select
from fastapi import APIRouter, Depends, HTTPException from fastapi import APIRouter, Depends, HTTPException
from langflow.services.utils import get_session from langflow.services.getters import get_session
from langflow.services.auth.utils import ( from langflow.services.auth.utils import (
get_current_active_superuser, get_current_active_superuser,
get_current_active_user, get_current_active_user,

View file

@ -5,7 +5,7 @@ from langchain.agents import types
from langflow.custom.customs import get_custom_nodes from langflow.custom.customs import get_custom_nodes
from langflow.interface.agents.custom import CUSTOM_AGENTS from langflow.interface.agents.custom import CUSTOM_AGENTS
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.agents import AgentFrontendNode from langflow.template.frontend_node.agents import AgentFrontendNode
from loguru import logger from loguru import logger

View file

@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
from typing import Any, Dict, List, Optional, Type, Union from typing import Any, Dict, List, Optional, Type, Union
from langchain.chains.base import Chain from langchain.chains.base import Chain
from langchain.agents import AgentExecutor from langchain.agents import AgentExecutor
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from pydantic import BaseModel from pydantic import BaseModel
from langflow.template.field.base import TemplateField from langflow.template.field.base import TemplateField

View file

@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional, Type
from langflow.custom.customs import get_custom_nodes from langflow.custom.customs import get_custom_nodes
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.importing.utils import import_class from langflow.interface.importing.utils import import_class
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.chains import ChainFrontendNode from langflow.template.frontend_node.chains import ChainFrontendNode
from loguru import logger from loguru import logger

View file

@ -4,7 +4,7 @@ from fastapi import HTTPException
from langflow.interface.custom.constants import CUSTOM_COMPONENT_SUPPORTED_TYPES from langflow.interface.custom.constants import CUSTOM_COMPONENT_SUPPORTED_TYPES
from langflow.interface.custom.component import Component from langflow.interface.custom.component import Component
from langflow.interface.custom.directory_reader import DirectoryReader from langflow.interface.custom.directory_reader import DirectoryReader
from langflow.services.utils import get_db_manager from langflow.services.getters import get_db_manager
from langflow.interface.custom.utils import extract_inner_type from langflow.interface.custom.utils import extract_inner_type
from langflow.utils import validate from langflow.utils import validate

View file

@ -1,7 +1,7 @@
from typing import Dict, List, Optional, Type from typing import Dict, List, Optional, Type
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.documentloaders import DocumentLoaderFrontNode from langflow.template.frontend_node.documentloaders import DocumentLoaderFrontNode
from langflow.interface.custom_lists import documentloaders_type_to_cls_dict from langflow.interface.custom_lists import documentloaders_type_to_cls_dict

View file

@ -2,7 +2,7 @@ from typing import Dict, List, Optional, Type
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.custom_lists import embedding_type_to_cls_dict from langflow.interface.custom_lists import embedding_type_to_cls_dict
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.base import FrontendNode from langflow.template.frontend_node.base import FrontendNode
from langflow.template.frontend_node.embeddings import EmbeddingFrontendNode from langflow.template.frontend_node.embeddings import EmbeddingFrontendNode

View file

@ -2,7 +2,7 @@ from typing import Dict, List, Optional, Type
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.custom_lists import llm_type_to_cls_dict from langflow.interface.custom_lists import llm_type_to_cls_dict
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.llms import LLMFrontendNode from langflow.template.frontend_node.llms import LLMFrontendNode
from loguru import logger from loguru import logger

View file

@ -2,7 +2,7 @@ from typing import Dict, List, Optional, Type
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.custom_lists import memory_type_to_cls_dict from langflow.interface.custom_lists import memory_type_to_cls_dict
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.base import FrontendNode from langflow.template.frontend_node.base import FrontendNode
from langflow.template.frontend_node.memories import MemoryFrontendNode from langflow.template.frontend_node.memories import MemoryFrontendNode

View file

@ -4,7 +4,7 @@ from langchain import output_parsers
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.importing.utils import import_class from langflow.interface.importing.utils import import_class
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.output_parsers import OutputParserFrontendNode from langflow.template.frontend_node.output_parsers import OutputParserFrontendNode
from loguru import logger from loguru import logger

View file

@ -5,7 +5,7 @@ from langchain import prompts
from langflow.custom.customs import get_custom_nodes from langflow.custom.customs import get_custom_nodes
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.importing.utils import import_class from langflow.interface.importing.utils import import_class
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.prompts import PromptFrontendNode from langflow.template.frontend_node.prompts import PromptFrontendNode
from loguru import logger from loguru import logger

View file

@ -4,7 +4,7 @@ from langchain import retrievers
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.importing.utils import import_class from langflow.interface.importing.utils import import_class
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.retrievers import RetrieverFrontendNode from langflow.template.frontend_node.retrievers import RetrieverFrontendNode
from loguru import logger from loguru import logger

View file

@ -1,7 +1,7 @@
from typing import Dict, List, Optional, Type from typing import Dict, List, Optional, Type
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.textsplitters import TextSplittersFrontendNode from langflow.template.frontend_node.textsplitters import TextSplittersFrontendNode
from langflow.interface.custom_lists import textsplitter_type_to_cls_dict from langflow.interface.custom_lists import textsplitter_type_to_cls_dict

View file

@ -4,7 +4,7 @@ from langchain.agents import agent_toolkits
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.importing.utils import import_class, import_module from langflow.interface.importing.utils import import_class, import_module
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from loguru import logger from loguru import logger
from langflow.utils.util import build_template_from_class from langflow.utils.util import build_template_from_class

View file

@ -15,7 +15,7 @@ from langflow.interface.tools.constants import (
OTHER_TOOLS, OTHER_TOOLS,
) )
from langflow.interface.tools.util import get_tool_params from langflow.interface.tools.util import get_tool_params
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.field.base import TemplateField from langflow.template.field.base import TemplateField
from langflow.template.template.base import Template from langflow.template.template.base import Template

View file

@ -5,7 +5,7 @@ from langchain import SQLDatabase, utilities
from langflow.custom.customs import get_custom_nodes from langflow.custom.customs import get_custom_nodes
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.importing.utils import import_class from langflow.interface.importing.utils import import_class
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.utilities import UtilitiesFrontendNode from langflow.template.frontend_node.utilities import UtilitiesFrontendNode
from loguru import logger from loguru import logger

View file

@ -10,7 +10,7 @@ from langchain.base_language import BaseLanguageModel
from PIL.Image import Image from PIL.Image import Image
from loguru import logger from loguru import logger
from langflow.services.chat.config import ChatConfig from langflow.services.chat.config import ChatConfig
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
def load_file_into_dict(file_path: str) -> dict: def load_file_into_dict(file_path: str) -> dict:

View file

@ -4,7 +4,7 @@ from langchain import vectorstores
from langflow.interface.base import LangChainTypeCreator from langflow.interface.base import LangChainTypeCreator
from langflow.interface.importing.utils import import_class from langflow.interface.importing.utils import import_class
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.template.frontend_node.vectorstores import VectorStoreFrontendNode from langflow.template.frontend_node.vectorstores import VectorStoreFrontendNode
from loguru import logger from loguru import logger

View file

@ -40,9 +40,11 @@ def create_app():
app.on_event("startup")(initialize_services) app.on_event("startup")(initialize_services)
app.on_event("startup")(initialize_database) app.on_event("startup")(initialize_database)
app.on_event("startup")(setup_superuser)
app.on_event("startup")(setup_llm_caching) app.on_event("startup")(setup_llm_caching)
app.on_event("shutdown")(teardown_services)
app.on_event("startup")(LangfuseInstance.update) app.on_event("startup")(LangfuseInstance.update)
app.on_event("shutdown")(teardown_services)
app.on_event("shutdown")(LangfuseInstance.teardown) app.on_event("shutdown")(LangfuseInstance.teardown)
return app return app

View file

@ -12,7 +12,7 @@ from langflow.services.database.models.user.crud import (
get_user_by_username, get_user_by_username,
update_user_last_login_at, update_user_last_login_at,
) )
from langflow.services.utils import get_session, get_settings_manager from langflow.services.getters import get_session, get_settings_manager
from sqlmodel import Session from sqlmodel import Session
oauth2_login = OAuth2PasswordBearer(tokenUrl="api/v1/login") oauth2_login = OAuth2PasswordBearer(tokenUrl="api/v1/login")
@ -37,15 +37,13 @@ async def api_key_security(
result: Optional[Union[ApiKey, User]] = None result: Optional[Union[ApiKey, User]] = None
if settings_manager.auth_settings.AUTO_LOGIN: if settings_manager.auth_settings.AUTO_LOGIN:
# Get the first user # Get the first user
if not settings_manager.auth_settings.FIRST_SUPERUSER: if not settings_manager.auth_settings.SUPERUSER:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST, status_code=status.HTTP_400_BAD_REQUEST,
detail="Missing first superuser credentials", detail="Missing first superuser credentials",
) )
result = get_user_by_username( result = get_user_by_username(db, settings_manager.auth_settings.SUPERUSER)
db, settings_manager.auth_settings.FIRST_SUPERUSER
)
elif not query_param and not header_param: elif not query_param and not header_param:
raise HTTPException( raise HTTPException(
@ -182,8 +180,8 @@ def create_super_user(
def create_user_longterm_token(db: Session = Depends(get_session)) -> dict: def create_user_longterm_token(db: Session = Depends(get_session)) -> dict:
settings_manager = get_settings_manager() settings_manager = get_settings_manager()
username = settings_manager.auth_settings.FIRST_SUPERUSER username = settings_manager.auth_settings.SUPERUSER
password = settings_manager.auth_settings.FIRST_SUPERUSER_PASSWORD password = settings_manager.auth_settings.SUPERUSER_PASSWORD
if not username or not password: if not username or not password:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST, status_code=status.HTTP_400_BAD_REQUEST,

View file

@ -3,7 +3,7 @@ from typing import TYPE_CHECKING
from langflow.services.base import Service from langflow.services.base import Service
from langflow.services.database.models.user.crud import get_user_by_username from langflow.services.database.models.user.crud import get_user_by_username
from langflow.services.database.utils import Result, TableResults from langflow.services.database.utils import Result, TableResults
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from sqlalchemy import inspect from sqlalchemy import inspect
import sqlalchemy as sa import sqlalchemy as sa
from sqlmodel import SQLModel, Session, create_engine from sqlmodel import SQLModel, Session, create_engine
@ -169,7 +169,7 @@ class DatabaseManager(Service):
# using the FIRST_SUPERUSER to get the user # using the FIRST_SUPERUSER to get the user
if settings_manager.auth_settings.AUTO_LOGIN: if settings_manager.auth_settings.AUTO_LOGIN:
logger.debug("Removing default superuser") logger.debug("Removing default superuser")
username = settings_manager.auth_settings.FIRST_SUPERUSER username = settings_manager.auth_settings.SUPERUSER
with Session(self.engine) as session: with Session(self.engine) as session:
user = get_user_by_username(session, username) user = get_user_by_username(session, username)
session.delete(user) session.delete(user)

View file

@ -3,7 +3,7 @@ from typing import Union
from uuid import UUID from uuid import UUID
from fastapi import Depends, HTTPException, status from fastapi import Depends, HTTPException, status
from langflow.services.database.models.user.user import User, UserUpdate from langflow.services.database.models.user.user import User, UserUpdate
from langflow.services.utils import get_session from langflow.services.getters import get_session
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
from sqlmodel import Session from sqlmodel import Session
from typing import Optional from typing import Optional

View file

@ -0,0 +1,26 @@
from langflow.services import ServiceType, service_manager
from typing import TYPE_CHECKING, Generator
if TYPE_CHECKING:
from langflow.services.database.manager import DatabaseManager
from langflow.services.settings.manager import SettingsManager
from langflow.services.chat.manager import ChatManager
from sqlmodel import Session
def get_settings_manager() -> "SettingsManager":
return service_manager.get(ServiceType.SETTINGS_MANAGER)
def get_db_manager() -> "DatabaseManager":
return service_manager.get(ServiceType.DATABASE_MANAGER)
def get_session() -> Generator["Session", None, None]:
db_manager = service_manager.get(ServiceType.DATABASE_MANAGER)
yield from db_manager.get_session()
def get_chat_manager() -> "ChatManager":
return service_manager.get(ServiceType.CHAT_MANAGER)

View file

@ -1,4 +1,4 @@
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
from langflow.utils.logger import logger from langflow.utils.logger import logger
### Temporary implementation ### Temporary implementation

View file

@ -1,6 +1,10 @@
from pathlib import Path from pathlib import Path
from typing import Optional from typing import Optional
import secrets import secrets
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 from langflow.services.settings.utils import read_secret_from_file, write_secret_to_file
from pydantic import BaseSettings, Field, validator from pydantic import BaseSettings, Field, validator
@ -31,8 +35,8 @@ class AuthSettings(BaseSettings):
# If AUTO_LOGIN = True # If AUTO_LOGIN = True
# > The application does not request login and logs in automatically as a super user. # > The application does not request login and logs in automatically as a super user.
AUTO_LOGIN: bool = False AUTO_LOGIN: bool = False
FIRST_SUPERUSER: str = "langflow" SUPERUSER: str = DEFAULT_SUPERUSER
FIRST_SUPERUSER_PASSWORD: str = "langflow" SUPERUSER_PASSWORD: str = DEFAULT_SUPERUSER_PASSWORD
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
@ -41,6 +45,10 @@ class AuthSettings(BaseSettings):
extra = "ignore" extra = "ignore"
env_prefix = "LANGFLOW_" env_prefix = "LANGFLOW_"
def reset_credentials(self):
self.SUPERUSER = DEFAULT_SUPERUSER
self.SUPERUSER_PASSWORD = DEFAULT_SUPERUSER_PASSWORD
@validator("SECRET_KEY", pre=True) @validator("SECRET_KEY", pre=True)
def get_secret_key(cls, value, values): def get_secret_key(cls, value, values):
config_dir = values.get("CONFIG_DIR") config_dir = values.get("CONFIG_DIR")

View file

@ -0,0 +1,2 @@
DEFAULT_SUPERUSER = "langflow"
DEFAULT_SUPERUSER_PASSWORD = "langflow"

View file

@ -3,7 +3,7 @@ from tempfile import tempdir
from langflow.__main__ import app from langflow.__main__ import app
import pytest import pytest
from langflow.services import utils from langflow.services import getters
@pytest.fixture(scope="module") @pytest.fixture(scope="module")
@ -26,7 +26,7 @@ def test_components_path(runner, client, default_settings):
["run", "--components-path", str(temp_dir), *default_settings], ["run", "--components-path", str(temp_dir), *default_settings],
) )
assert result.exit_code == 0, result.stdout assert result.exit_code == 0, result.stdout
settings_manager = utils.get_settings_manager() settings_manager = getters.get_settings_manager()
assert str(temp_dir) in settings_manager.settings.COMPONENTS_PATH assert str(temp_dir) in settings_manager.settings.COMPONENTS_PATH

View file

@ -1,7 +1,7 @@
import uuid import uuid
from langflow.services.auth.utils import get_password_hash from langflow.services.auth.utils import get_password_hash
from langflow.services.database.models.api_key.api_key import ApiKey from langflow.services.database.models.api_key.api_key import ApiKey
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
import pytest import pytest
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from langflow.interface.tools.constants import CUSTOM_TOOLS from langflow.interface.tools.constants import CUSTOM_TOOLS

View file

@ -1,5 +1,5 @@
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
def test_llms_settings(client: TestClient, logged_in_headers): def test_llms_settings(client: TestClient, logged_in_headers):

View file

@ -1,5 +1,5 @@
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
def test_prompts_settings(client: TestClient, logged_in_headers): def test_prompts_settings(client: TestClient, logged_in_headers):

View file

@ -2,7 +2,7 @@ from datetime import datetime
from langflow.services.auth.utils import create_super_user, get_password_hash from langflow.services.auth.utils import create_super_user, get_password_hash
from langflow.services.database.models.user.user import User from langflow.services.database.models.user.user import User
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
import pytest import pytest
from langflow.services.database.models.user import UserUpdate from langflow.services.database.models.user import UserUpdate
@ -13,8 +13,8 @@ def super_user(client, session):
auth_settings = settings_manager.auth_settings auth_settings = settings_manager.auth_settings
return create_super_user( return create_super_user(
db=session, db=session,
username=auth_settings.FIRST_SUPERUSER, username=auth_settings.SUPERUSER,
password=auth_settings.FIRST_SUPERUSER_PASSWORD, password=auth_settings.SUPERUSER_PASSWORD,
) )
@ -23,8 +23,8 @@ def super_user_headers(client, super_user):
settings_manager = get_settings_manager() settings_manager = get_settings_manager()
auth_settings = settings_manager.auth_settings auth_settings = settings_manager.auth_settings
login_data = { login_data = {
"username": auth_settings.FIRST_SUPERUSER, "username": auth_settings.SUPERUSER,
"password": auth_settings.FIRST_SUPERUSER_PASSWORD, "password": auth_settings.SUPERUSER_PASSWORD,
} }
response = client.post("/api/v1/login", data=login_data) response = client.post("/api/v1/login", data=login_data)
assert response.status_code == 200 assert response.status_code == 200

View file

@ -1,5 +1,5 @@
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from langflow.services.utils import get_settings_manager from langflow.services.getters import get_settings_manager
# check that all agents are in settings.agents # check that all agents are in settings.agents