- Rename volume `./pgadmin` to `pgadmin-data` for better naming convention and clarity.
- Rename volumes for RabbitMQ:
- `./.docker/rabbitmq/etc/` to `rabbitmq_data` for consistency and clarity.
- `./.docker/rabbitmq/data/` to `rabbitmq_data` for consistency and clarity.
- `./.docker/rabbitmq/logs/` to `rabbitmq_log` for consistency and clarity.
No functional changes, only volume name updates.
📝 docs(login.mdx): explain the purpose of login functionality and introduce enhanced login mechanism in Langflow
📝 docs(login.mdx): document the crucial environment variables for configuring the login settings in Langflow
📝 docs(login.mdx): provide information on how to disable automatic login and enforce user authentication in Langflow
📝 docs(login.mdx): explain the usage of LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD environment variables for setting up a superuser in Langflow
📝 docs(login.mdx): document the usage of LANGFLOW_SECRET_KEY environment variable for encrypting the superuser's password in Langflow
📝 docs(login.mdx): explain the purpose of LANGFLOW_NEW_USER_IS_ACTIVE environment variable for automatically activating new users in Langflow
📝 docs(login.mdx): provide information on the command-line interface for managing superusers in Langflow
📝 docs(login.mdx): document the sign-up process in Langflow and provide an image of the sign-up page
📝 docs(login.mdx): explain how users can change their profile settings in Langflow and provide an image of the profile settings page
📝 docs(login.mdx): explain how the superuser can access the admin page in Langflow and provide an image of the admin page
📝 docs(superuser.mdx): add guide for superuser permissions in Langflow
🔧 fix(cache/manager.py): add warning log message to inform users that RedisCache is experimental and may not work as expected
🔧 fix(settings/auth.py): add NEW_USER_IS_ACTIVE setting to determine if new users should be active by default
🔧 refactor(schemas.py): make the backend field in ProcessResponse schema optional to handle cases where backend is not provided
🔧 refactor(utils.py): add type hint ignore comment to import statement for Celery to avoid type checking error
✨ feat(manager.py): add debug logs to check Celery availability and backend being used
🔧 fix(manager.py): move check_celery_availability function definition above its usage to improve code readability
✨ feat(manager.py): add debug logs to show task launch details and backend being used
The `add_super_user_for_testing_purposes_delete_me_before_merge_into_dev` endpoint was added for testing purposes and is no longer needed. It has been removed to clean up the codebase.
🔧 fix(endpoints.py): generate session ID if it is None to ensure a valid session ID is used
🔧 fix(endpoints.py): add backend information to the ProcessResponse to provide additional context
🔧 fix(schemas.py): add backend field to the ProcessResponse schema to match the changes in the endpoints.py file
🐛 fix(conftest.py): update LANGFLOW_REDIS_HOST and BROKER_URL environment variables to use "result_backend" instead of "queue" for better clarity and accuracy
- Update RabbitMQ configuration by setting the default username and password to "langflow"
- Add OpenAI API key for integration with OpenAI services
- Add superuser credentials for the Langflow application
🐛 fix(locustfile.py): remove unused import and fix incorrect variable name
✨ feat(locustfile.py): add support for authentication and flow creation in on_start method
🔧 fix(endpoints.py): move import statement to the top of the file for better organization and readability
🔧 fix(getters.py): change service type from DATABASE_MANAGER to DATABASE_SERVICE for consistency and clarity
🔧 fix(getters.py): change service type from CACHE_MANAGER to CACHE_SERVICE for consistency and clarity
🔧 fix(getters.py): change service type from SESSION_MANAGER to SESSION_SERVICE for consistency and clarity
🔧 fix(getters.py): change service type from TASK_MANAGER to TASK_SERVICE for consistency and clarity
🔧 fix(getters.py): remove unused function get_chat_service() to improve code cleanliness and maintainability
🔧 fix(getters.py): remove duplicate function get_settings_service() to improve code cleanliness and maintainability
🔧 fix(getters.py): remove duplicate function get_db_service() to improve code cleanliness and maintainability
🔧 fix(getters.py): remove duplicate function get_session() to improve code cleanliness and maintainability
🔧 fix(utils.py): remove unused import statement to improve code cleanliness and maintainability
🔧 fix(utils.py): remove unused function setup_superuser() to improve code cleanliness and maintainability
🔧 fix(utils.py): remove unused function teardown_superuser() to improve code cleanliness and maintainability
🔧 fix(utils.py): remove unused function teardown_services() to improve code cleanliness and maintainability
🔧 fix(utils.py): remove unused function initialize_settings_manager() to improve code cleanliness and maintainability
🔧 fix(utils.py): remove unused function initialize_session_manager() to improve code cleanliness and maintainability
🔧 fix(utils.py): remove unused function initialize_services() to improve code cleanliness and maintainability
🔧 fix(conftest.py): remove unused import statement to improve code cleanliness and maintainability
🔧 fix(conftest.py): remove unused function get_session_override() to improve code cleanliness and maintainability
🔧 fix(conftest.py): remove unused function distributed_client_fixture() to improve code cleanliness and maintainability
🔧 fix(conftest.py): remove unused function client_fixture() to improve code cleanliness and maintainability
🔧 fix(conftest.py): remove unused function test_user() to improve code cleanliness and maintainability
🔧 fix(conftest.py): remove unused function active_user
🐛 fix(test_endpoints.py): update import statements to use get_db_service instead of get_db_manager to improve code semantics
🐛 fix(test_login.py): update import statements to use get_db_service instead of get_db_manager to improve code semantics
🐛 fix(test_setup_superuser.py): update import statements to use get_db_service instead of get_db_manager to improve code semantics
🐛 fix(test_user.py): update import statements to use get_db_service instead of get_db_manager to improve code semantics
🔧 fix(endpoints.py): update import statement to reflect changes in module structure
🔧 fix(flows.py): update import statements to reflect changes in module structure
🔧 fix(login.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(custom_component.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(base.py): update import statement to reflect changes in module structure
🔧 fix(process.py): update import statement for get_session_service in langflow.processing.process module to reflect correct module location
🔧 fix(utils.py): update import statement for get_session and get_settings_service in langflow.services.auth.utils module to reflect correct module location
🔧 fix(manager.py): update import statement for ServiceType.CACHE_MANAGER in langflow.services.chat.manager module to reflect correct module location
🔧 fix(manager.py): update import statement for ServiceType.DATABASE_MANAGER in langflow.services.chat.manager module to reflect correct module location
🔧 fix(utils.py): update import statement for get_settings_service in langflow.services.database.manager module to reflect correct module location
🔧 fix(utils.py): update import statement for get_settings_service in langflow.services.database.utils module to reflect correct module location
🔧 fix(getters.py): update import statement for DatabaseManager, SettingsManager, ChatManager in langflow.services.getters module to reflect correct module location
🔧 fix(getters.py): update import statement for get_settings_manager in langflow.services.getters module to reflect correct function name change
🔧 fix(getters.py): update import statement for get_db_manager in langflow.services.getters module to reflect correct function name change
🔧 fix(getters.py): update import statement for get_chat_manager in langflow.services.getters module to reflect correct function name change
🔧 fix(getters.py): update import statement for get_settings_manager in langflow.services.getters module to reflect correct function name change
🔧 fix(getters.py): update import statement for get_db_manager in langflow.services.getters module to reflect correct function name change
🔧 fix(getters.py): update import statement for get_session in langflow.services.getters module to reflect correct function name change
🔧 fix(getters.py): update import statement for get_chat_manager in langflow.services.getters module to reflect correct function name change
🔧 fix(langfuse.py): update import statement for get_settings_service in langflow.services.plugins.langfuse module to reflect correct module location
🔧 fix(schema.py): update import statement for ServiceType.AUTH_MANAGER, ServiceType.CACHE_MANAGER, ServiceType.SETTINGS_MANAGER, ServiceType.DATABASE_MANAGER, ServiceType.CHAT_MANAGER, ServiceType.SESSION_MANAGER, ServiceType.TASK_MANAGER in langflow.services.schema module to reflect correct module location
🔧 fix
🔀 merge(types.py): merge changes from listing.py to consolidate all type dictionaries into a single function for better maintainability and readability
🔧 refactor(endpoints.py): remove unused imports and functions build_langchain_types_dict, build_langchain_template_custom_component, and build_langchain_custom_component_list_from_path to improve code readability and maintainability
✨ feat(endpoints.py): add error handling to get_all endpoint to return a 500 status code with the exception message if an error occurs during the retrieval of langchain types dict
🐛 fix(manager.py): rename service_service to service_manager for better semantics
🐛 fix(manager.py): rename ServiceService class to ServiceManager for better semantics
🐛 fix(manager.py): rename service_service variable to service_manager for better semantics
🐛 fix(utils.py): rename service_service to service_manager for better semantics
✨ feat(manager.py): add support for service_manager to manage creation of different services
✨ feat(manager.py): add support for service_manager to update services
✨ feat(manager.py): add support for service_manager to teardown services
✨ feat(manager.py): add support for service_manager to register and update factories
✨ feat(manager.py): add support for service_manager to initialize and reinitialize services
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py): add support for service_manager to get services by type
✨ feat(manager.py
✅ test(test_user.py): add test to create a super user for testing purposes and ensure it returns the correct response
🔥 chore(utils.py): remove unused functions run_post and poll_task_status to clean up code
🔧 chore(test_graph.py): add missing imports for AgentVertex and VectorStoreVertex to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.agents.AgentExecutor to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.graph.Graph to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.processing.process.get_result_and_thought to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.utils.payload.get_root_node to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.llms.fake.FakeListLLM to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.chains.base.Chain to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.graph.edge.base.Edge to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.graph.vertex.base.Vertex to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.graph.vertex.types.ToolkitVertex to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.graph.vertex.types.FileToolVertex to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.graph.vertex.types.LLMVertex to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.graph.vertex.types.AgentVertex to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.graph.vertex.types.VectorStoreVertex to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.agents.AgentExecutor to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.graph.Graph to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.processing.process.get_result_and_thought to fix NameError
🔧 chore(test_graph.py): add missing import for langflow.utils.payload.get_root_node to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.llms.fake.FakeListLLM to fix NameError
🔧 chore(test_graph.py): add missing import for langchain.chains.base.Chain to
✨ feat(test_endpoints.py): add helper functions run_post and poll_task_status to improve code modularity and reusability
🔧 fix(test_endpoints.py): fix typo in test_basic_chat_with_two_session_ids_and_names function to improve code readability
✨ feat(test_endpoints.py): add async_test marker to test_vector_store_in_process function to indicate it is an asynchronous test
✨ feat(test_endpoints.py): add distributed_client parameter to test_vector_store_in_process function to test distributed client functionality
✨ feat(test_endpoints.py): add async_test marker to test_async_task_processing function to indicate it is an asynchronous test
✨ feat(test_endpoints.py): add distributed_client parameter to test_async_task_processing function to test distributed client functionality
✨ feat(test_endpoints.py): add async_test marker to test_async_task_processing_vector_store function to indicate it is an asynchronous test
✨ feat(test_endpoints.py): add distributed_client parameter to test_async_task_processing_vector_store function to test distributed client functionality
🐛 fix(process.py): rename langchain_object variable to built_object in generate_result function for better semantics
🐛 fix(process.py): update session with graph instead of langchain_object to reflect changes
✨ feat(manager.py): add reinitialize_services function to reinitialize all services
✨ feat(utils.py): initialize settings service if not already initialized before returning it
📝 chore(loading.py): refactor code to improve readability and maintainability
📝 chore(vector_store.py): refactor code to improve readability and maintainability
📝 chore(run.py): update return type hint for build_sorted_vertices function
🐛 fix(base.py): add reset method to Edge class to reset source and target params when needed
🐛 fix(base.py): add __setstate__ method to Graph class to properly set state when unpickling
🐛 fix(base.py): add __eq__ method to Graph class to compare graphs based on their string representation
🐛 fix(types.py): add __getstate__ and __setstate__ methods to AgentVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to ToolVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to LLMVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to ToolkitVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to FileToolVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to DocumentLoaderVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to EmbeddingVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to VectorStoreVertex class to properly set and get state when pickling and unpickling
🐛 fix(types.py): add __getstate__ and __setstate__ methods to TextSplitterVertex class to properly set and get state when pickling and unpickling
✨ feat(types.py): add reset method to AgentVertex class to reset source and target params when needed
✨ feat(types.py): add reset method to ToolVertex class to reset source and target params when needed
✨ feat(types.py): add reset method to LLMVertex class to reset source and target params when needed
✨ feat(types.py):
🐛 fix(base.py): add missing import statement for logger
🐛 fix(base.py): handle AttributeError when comparing Vertex objects for equality
🐛 fix(base.py): handle exception and log it when building node fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): reset params and rebuild built object when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object fails
🐛 fix(base.py): handle exception and log it when pickling built object