✨ feat(users.py): add status code 201 to the response of the add_user endpoint to indicate successful creation of a new user
🐛 fix(users.py): update the usage of UserCreate model to create a new User instance using User.from_orm(user) for better compatibility
✨ feat(users.py): add current_user parameter to the read_current_user endpoint to enforce authentication and authorization
✨ feat(users.py): add current_user parameter to the read_all_users endpoint to enforce authentication and authorization
✨ feat(users.py): add current_user parameter to the delete_user endpoint to enforce authentication and authorization. Also, add validation checks to prevent deleting own user account and unauthorized deletion of users.
🔀 chore(__init__.py): import and include login_router in the APIRouter to enable login functionality
🔀 chore(login.py): add tags to the login router to categorize it as "Login" in the API documentation
🔨 refactor(LanguageRecursiveTextSplitter.py): change type hints for the 'documents' parameter from Document to list[Document] and change return type from Document to list[Document] to improve clarity and consistency
🔨 refactor(LanguageRecursiveTextSplitter.py): change type hints for the 'chunk_overlap' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🔨 refactor(LanguageRecursiveTextSplitter.py): change type hints for the 'chunk_size' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'documents' parameter from Document to list[Document] and change return type from Document to list[Document] to improve clarity and consistency
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'separators' parameter from Optional[str] to Optional[list[str]] and handle conversion to list of escaped characters to improve flexibility and error handling
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'chunk_overlap' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'chunk_size' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🐛 fix(types.py): fix logic in add_new_custom_field function to correctly set is_list flag when field_type contains "list" keyword
✨ feat(types.py): add field_contains_list variable to check if field_type contains "list" keyword to improve semantics in add_new_custom_field function
📝 docs(LanguageRecursiveTextSplitter.py): add documentation link for LanguageRecursiveTextSplitter component
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build_config method to use options from Language enum for separator_type
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to split text into chunks based on specified length and overlap
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to handle chunk_size and chunk_overlap as integers
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to use RecursiveCharacterTextSplitter from langchain.text_splitter
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to split documents using RecursiveCharacterTextSplitter and return the chunks
🔧 chore(util.py): add missing type hint for 'documents' parameter in build_loader_repr_from_documents function
🔧 chore(util.py): add logic to calculate average document length and display summary information in build_loader_repr_from_documents function
🔖 chore(pyproject.toml): update gunicorn package from version 21.1.0 to 21.2.0
🔖 chore(pyproject.toml): update chromadb package from version 0.3.21 to 0.3.0
🔖 chore(pyproject.toml): update rich package from version 13.4.2 to 13.5.0
🔖 chore(pyproject.toml): update unstructured package from version 0.7.0 to 0.10.0
🔖 chore(pyproject.toml): update pypdf package from version 3.11.0 to 3.15.0
🔖 chore(pyproject.toml): update fake-useragent package from version 1.1.3 to 1.2.1
🔖 chore(pyproject.toml): update qdrant-client package from version 1.3.0 to 1.4.0
🔖 chore(pyproject.toml): update weaviate-client package from version 3.21.0 to 3.23.0
🔖 chore(pyproject.toml): update cohere package from version 4.11.0 to 4.21.0
The error handling in the tabs provider has been improved to display a more meaningful error message when there is an error while saving changes. Instead of directly assigning the error to the `setErrorData` state variable, the error message is now wrapped in an object with a title and a list of error messages. This change ensures that the error message is displayed consistently and provides better context to the user.
🔧 fix(tabsContext.tsx): add setSuccessData to useContext to fix missing
function error
✨ feat(tabsContext.tsx): add success alert when changes are saved
successfully in TabsProvider component
🔧 fix(flowSettingsModal/index.tsx): remove setSuccessData from
useContext to fix missing function error
🔧 fix(AdminPage/index.tsx): remove console.log statement
✨ feat(AdminPage/index.tsx): add success alert when user is edited
successfully
🔧 fix(extraSidebarComponent/index.tsx): remove setSuccessData from
useContext to fix missing function error
✨ feat(alembic): add support for creating apikey and user tables in the database
🔥 chore(alembic): remove flowstyle and component tables from the database schema
🔄 chore(__init__.py): add users_router and api_key_router to the __all__ list to include the new routes for users and api keys
🆕 feat(api_key.py): add new routes for retrieving, creating, and deleting API keys
🆕 feat(login.py): add new routes for user login, auto login, and token refresh
🆕 feat(schemas.py): add new schemas for API key response and users response
🆕 feat(users.py): add new routes for adding, reading, updating, and deleting users
🗑️ chore(health.py): remove health router as it is no longer needed
🔄 chore(utils.py): update import statements for User model and update_user_last_login_at function
This pull request addresses multiple bugs and issues that have been
identified on the tweaks page of our application. The changes
implemented here aim to enhance the overall user experience and improve
the stability of the page. Below is an overview of the resolved issues:
📦 feat(component): add Component model and related classes for database operations
📦 feat(flow): add Flow model and related classes for database operations
📦 feat(token): add Token model for authentication
📦 feat(user): add User model and related classes for database operations
📦 feat(user): add utility functions for user operations
🔧 chore(terraform): modify user data script for manager instance to fetch instance metadata with token and start a netcat server on port 8080 to provide join token
🔧 chore(terraform): modify user data script for worker instance to fetch manager IP and join the swarm using the join token obtained from the manager on port 8080
feat(terraform): add aws_subnet resource for swarm-public-subnet to create a public subnet for the swarm cluster
feat(terraform): add aws_internet_gateway resource to create an internet gateway for the swarm VPC
feat(terraform): add aws_route_table resource to create a route table for the swarm VPC
feat(terraform): add aws_route_table_association resource to associate the swarm-public-subnet with the public route table