The logic for getting the chat input field has been simplified by removing unnecessary checks and using optional chaining. This improves readability and reduces the complexity of the code.
This pull request addresses a critical issue related to a binding bug
that has been affecting the make_frontend command. The existing Makefile
was susceptible to this bug, causing unexpected behaviors and
disruptions during the build process.
**Bug Fix**:
This PR resolves a critical bug causing the deletion of custom component
edges during saves. The issue stemmed from miscommunication between edge
tracking and saving logic.
**Enhancement**:
Additionally, this PR enhances user experience by introducing a loading
screen during app startup. The loading screen offers visual feedback for
app initialization.
feat(Makefile): add install_frontendc target to install frontend dependencies using npm ci for clean installs
feat(Makefile): add frontendc target to install frontend dependencies using npm ci and run frontend
chore(ApiModal/index.tsx): reformat codesArray for better readability
🔧 chore(constants.ts): add CONTROL_NEW_API_KEY constant for consistency
✨ feat(SecretKeyModal): add SecretKeyModal component to handle secret key generation and copying
🔧 chore(UserManagementModal): rearrange buttons in UserManagementModal for better user experience
🚀 feat(ApiKeysPage): add new page for managing API keys
🔧 chore(routes.tsx): add route for ApiKeysPage
🔧 chore(types): add ApiKeyType and ApiKeyInputType to improve type safety and readability of code
🔧 chore(utils): add Key icon from lucide-react to nodeIconsLucide to be used in styling
✨ feat(main.py): add support for API key routes to enable API key management functionality
📝 docs(api_key.py): add API key routes for retrieving, creating, and deleting API keys
✨ feat(docker-compose.celery.yml): add db service with PostgreSQL image and configure environment variables for database connection
✨ feat(docker-compose.celery.yml): add pgadmin service with pgAdmin4 image and configure environment variables for admin login
🔧 chore(docker-compose.celery.yml): add db service as a dependency for the queue service
🔒 chore(poetry.lock): update exceptiongroup package version to 1.1.3
🔒 chore(poetry.lock): update google-api-python-client package version to 2.97.0
🔒 chore(poetry.lock): update pandas-stubs package version to 2.0.3.230814
🔒 chore(poetry.lock): update setuptools package version to 68.1.0
🔒 chore(poetry.lock): update tenacity package version to 8.2.3
🔒 chore(poetry.lock): update textual package version to 0.33.0
✨ feat(frontend): add support for BACKEND_URL environment variable in nginx.conf to configure backend URL
📝 chore(frontend): add start-nginx.sh script to replace placeholder in nginx.conf with actual BACKEND_URL and start nginx
📝 docs(walkthroughtutorial.md): add tutorial for deploying Langflow on Google Cloud Platform
The `deploy_langflow_gcp.sh` script is added to the `scripts/gcp` directory. This script sets up the necessary VM, image, and networking configuration for deploying Langflow on Google Cloud Platform. It also creates firewall rules, installs dependencies, and starts the Langflow server.
The `walkthroughtutorial.md` file is added to the `scripts/gcp` directory. This file provides a step-by-step tutorial on how to deploy Langflow on Google Cloud Platform using the `deploy_langflow_gcp.sh` script. It includes instructions on setting up the GCP environment, running the script, and connecting to the Langflow VM.
Cleanup instructions are also provided in the tutorial for removing the resources created during the deployment process.
📝 docs(walkthroughtutorial_spot.md): add walkthrough tutorial for deploying Langflow on Google Cloud Platform
This commit adds a new file `walkthroughtutorial_spot.md` which contains a step-by-step tutorial for deploying Langflow on Google Cloud Platform (GCP) using Google Cloud Shell. The tutorial provides an introduction, prerequisites, instructions for setting up the GCP environment, deploying Langflow, connecting to the Langflow VM, and cleaning up resources after the deployment.
The tutorial is authored by Robert Wilkins III and has a duration of 45 minutes. It assumes that the user has a GCP account and basic knowledge of Google Cloud Shell. The tutorial also includes links to relevant documentation and provides commands for configuring the GCP environment and deploying Langflow.
The tutorial is comprehensive and aims to guide users through the process of deploying Langflow on GCP. It also includes cleanup instructions for removing the resources created during the tutorial if desired.
feat(tabsContext.tsx): add support for skipping node updates based on node type defined in the skipNodeUpdate constant to improve performance and prevent unnecessary updates
🐛 fix(authLoginGuard/index.tsx): change condition to check autoLogin flag instead of LOCALHOST_JWT flag
🐛 fix(headerComponent/index.tsx): change condition to check autoLogin flag instead of LOCALHOST_JWT flag
🐛 fix(constants.ts): remove unused LOCALHOST_JWT variable
✨ feat(authContext.tsx): add autoLogin and setAutoLogin functions to AuthContext
🐛 fix(API/api.tsx): add auto_login endpoint to the list of excluded endpoints from Authorization header
✨ feat(API/index.ts): add autoLogin function to handle automatic login
🐛 fix(AdminPage/index.tsx): change handleDisableUser function parameter from user.is_superuser to user.is_active
🐛 fix(types/contexts/auth.ts): add autoLogin and setAutoLogin to AuthContextType
✨ feat(auth.py): add support for creating user API key and getting user ID from token
🐛 fix(base.py): fix typo in API_KEY_SECRET_KEY variable name
🐛 fix(base.py): fix typo in FIRST_SUPERUSER and FIRST_SUPERUSER_PASSWORD variable names
🐛 fix(base.py): fix indentation in load_settings_from_yaml function
✨ feat(auth.py): add create_super_user function to create super user if it doesn't exist
🐛 fix(login.py): remove hardcoded user_id and use create_user_longterm_token without arguments
🐛 fix(users.py): remove redundant password hashing in add_super_user_for_testing_purposes_delete_me_before_merge_into_dev
🐛 fix(base.py): change AUTO_LOGIN default value to False and add FIRST_SUPERUSER and FIRST_SUPERUSER_PASSWORD settings
✨ feat(App.tsx): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(App.tsx): change 'port' variable case from lowercase to uppercase to improve semantics
🐛 fix(App.tsx): fix typo in import statement for 'getLoggedUser' function
🐛 fix(App.tsx): add missing import statement for 'LoginType' type
🐛 fix(App.tsx): add missing import statement for 'LOCALHOST_JWT' constant
🐛 fix(App.tsx): add missing import statement for 'onLogin' function
🐛 fix(App.tsx): add missing import statement for 'setUserData' function
🐛 fix(App.tsx): add missing import statement for 'setErrorData' function
🐛 fix(App.tsx): add missing import statement for 'getUser' function
✨ feat(App.tsx): add logic to automatically log in user on localhost with predefined credentials
🐛 fix(PaginatorComponent/index.tsx): calculate 'maxIndex' based on 'totalRowsCount' and 'pageSize' to fix pagination bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update 'currentPage' state when changing pages to fix display bug
🐛 fix(PaginatorComponent/index.tsx): update
🐛 fix(UserManagementModal): change is_disabled to is_active to improve semantics and consistency
🐛 fix(AdminPage/index.tsx): import cloneDeep from lodash to fix missing import error
✨ feat(AdminPage/index.tsx): add support for user management functionality, including disabling and editing user properties
🐛 fix(AdminPage/index.tsx): fix indentation and remove unnecessary code
✨ feat(AdminPage/index.tsx): add ConfirmationModal component for editing and disabling users
🔥 chore(AdminPage/index.tsx): remove unused code and fix formatting
🔨 refactor(UserManagement.tsx): refactor UserManagement component to improve readability and maintainability
🔥 chore(UserManagement.tsx): remove unused code and unnecessary closing div tag
🔧 fix(loginPage): add useEffect hook to import statement to fix missing dependency warning
🔄 refactor(api): rename is_disabled field to is_active in Users type for better semantics
🔄 refactor(components): rename is_disabled field to is_active in UserInputType for better semantics
🔄 refactor(utils): add UserCog2 icon import to nodeIconsLucide for future use
🔄 refactor(tailwind.config.js): add text-align-last-left and text-align-last-right utility classes for text alignment
🔧 fix(formModal/index.tsx): fix formatting of getWebSocketUrl function to improve readability
🔧 fix(vite.config.ts): fix formatting of comment to improve readability
✨ feat(base.py): add support for setting CONFIG_DIR to a cache directory if not provided to improve file management
🐛 fix(base.py): set DATABASE_URL to default value if not provided to improve functionality
✨ feat(base.py): add support for setting DATABASE_URL to LANGFLOW_DATABASE_URL environment variable if not provided to improve configurability
🐛 fix(base.py): raise ValueError if CONFIG_DIR is not set when using sqlite database to improve error handling
✨ feat(base.py): add support for copying existing sqlite database to new location if CONFIG_DIR is set to improve migration process
✨ feat(auth.py): add create_super_user function to create super user if it doesn't exist
🐛 fix(login.py): remove hardcoded user_id and use create_user_longterm_token without arguments
🐛 fix(users.py): remove redundant password hashing in add_super_user_for_testing_purposes_delete_me_before_merge_into_dev
🐛 fix(base.py): change AUTO_LOGIN default value to False and add FIRST_SUPERUSER and FIRST_SUPERUSER_PASSWORD settings