🔧 chore(deploy): update docker-compose.override.yml to version 3.8
📦 chore(docker-compose.with_tests.yml): add docker-compose file with tests configuration
This commit adds a new docker-compose file named `docker-compose.with_tests.yml` which includes the configuration for running tests. The file includes the following services:
- `proxy`: Configures Traefik as a reverse proxy with Docker integration and enables access logs, the Traefik dashboard, and API.
- `backend`: Sets up the backend service with dependencies on a database, message broker, and result backend. It also includes labels for Traefik routing.
- `db`: Configures a PostgreSQL database with a volume for data persistence.
- `pgadmin`: Sets up pgAdmin for managing the PostgreSQL database.
- `result_backend`: Configures a Redis instance for the result backend.
- `celeryworker`: Sets up a Celery worker for background task processing.
- `flower`: Configures Flower for monitoring and managing Celery workers.
- `frontend`: Sets up the frontend service with labels for Traefik routing.
- `broker`: Configures RabbitMQ with the management console.
- `prometheus`: Sets up Prometheus for monitoring.
- `grafana`: Configures Grafana for visualization and monitoring.
- `tests`: Extends the `backend` service and runs pytest for running tests.
This file allows running the application with the necessary services for testing and monitoring.
🔧 chore(docker-compose.yml): add missing volumes and networks for services
🔧 chore(docker-compose.yml): add traefik-public network with configurable external setting for flexibility in testing
📝 docs(async-tasks.mdx): update docker-compose command to use the correct file name for running tests
🐛 fix(endpoints.py): update endpoint path for checking task status to match the updated path in the documentation
🐛 fix(schemas.py): add TaskResponse schema to properly handle task response data
🐛 fix(locustfile.py): update endpoint path for polling task status to match the updated path in the endpoints
🐛 fix(test_endpoints.py): update helper function and test cases to use the new task response structure and endpoint path for polling task status
📝 docs(guides): add async-tasks.mdx to provide a guide on using the Async API implementation
📝 docs(sidebars.js): update sidebar to include async-api.mdx and async-tasks.mdx in the appropriate sections
🐛 fix(types.py): re-raise HTTPException when encountered during building langchain template custom component to propagate the error and provide more informative error message
✨ feat(auth.py): add logging statements to provide more visibility into secret key generation and saving process
🐛 fix(auth.py): handle IOError when reading or writing secret key to prevent unexpected failures
✨ feat(parameterComponent): add support for 'dict' and 'NestedDict' types in conditional rendering to display a component
🐛 fix(codeTabsComponent): import missing functions from reactflowUtils to fix build error
✨ feat(codeTabsComponent): add support for 'dict' and 'NestedDict' types in conditional rendering to display a component
✨ feat(codeTabsComponent): add DictComponent and KeypairListComponent to handle 'dict' and 'NestedDict' types
🐛 fix(ApiModal): import missing function from reactflowUtils to fix build error
✨ feat(ApiModal): add support for 'dict' and 'NestedDict' types in conditional rendering to display a component
🐛 fix(types): add Object type to buildTweakObject function in codeTabsPropsType
🐛 fix(reactflowUtils): add missing convertArrayToObj function to convert array of objects to object
✨ feat(reactflowUtils): add convertArrayToObj function to convert array of objects to object
🐛 fix(utils.ts): fix indentation and formatting issues in groupByFamily function
🐛 fix(utils.ts): fix indentation and formatting issues in buildTweakObject function
🐛 fix(utils.ts): fix indentation and formatting issues in getPythonApiCode function
🐛 fix(utils.ts): fix indentation and formatting issues in getCurlCode function
🐛 fix(utils.ts): fix indentation and formatting issues in getPythonCode function
🐛 fix(utils.ts): fix indentation and formatting issues in getChatComponentCode function
✨ feat(utils.ts): add support for x-api-key header in run_flow function to pass the API key as a header instead of a query parameter
🔧 chore(utils.ts): update getCurlCode function to use x-api-key header instead of api-key header for authentication
🐛 fix(keypairListComponent): add rows prop to Textarea components to fix rendering issue
🐛 fix(EditNodeModal): remove unused state variables and fix rendering issue with dict and NestedDict types
🐛 fix(dictAreaModal): fix useEffect dependency to dictObj instead of value to prevent unnecessary re-rendering
This PR adds the ability to use Redis as cache, Celery for task
execution, Session management, async tasks for the API and some other
improvements.
Run the following command after setting up the .env file in `./deploy`
folder:
```bash
docker compose up --exit-code-from tests tests result_backend broker celeryworker db --build
```
ℹ️ The "guidelines/api" section is temporarily removed from the sidebar to prevent confusion and ensure consistency while it is being updated or revised.
The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application. This commit adds documentation for the login functionality, including information about the enhanced login mechanism introduced in version 0.5. It explains the environment variables that are crucial in configuring the login settings and provides instructions on how to set them securely. It also covers the command-line interface for managing superusers and provides details on the sign-up process and profile settings for users. Screenshots are included to illustrate the sign-up page, profile settings page, and admin page.
The getUsersPage function was being called with the incorrect index parameter. It was off by one, causing the wrong page of users to be fetched. This has been fixed by subtracting 1 from the index parameter before calling the function.
- 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