Commit graph

7,638 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
fa9ecd0039 🚀 feat(models/__init__.py): add User and Token models to __all__ list for better module importability 2023-08-21 16:55:45 -03:00
Gabriel Luiz Freitas Almeida
181620e538 🔧 fix(manager.py): import List from typing module to fix type hinting error
 feat(manager.py): add support for registering factories with dependencies to handle service creation
🔧 fix(manager.py): fix service creation logic to handle dependencies and create services in the correct order
 feat(manager.py): add support for initializing session manager with dependencies
2023-08-21 16:37:56 -03:00
Gabriel Luiz Freitas Almeida
b309d8be0e 🔒 chore(auth.py): import necessary modules and add password context and OAuth2 password bearer scheme for authentication
🔒 chore(auth.py): add password context using bcrypt scheme and OAuth2 password bearer scheme for authentication
2023-08-21 16:34:23 -03:00
Gabriel Luiz Freitas Almeida
244a967517 🔨 refactor(service.py): remove unused imports and unused functions in the AuthManager class
🔧 chore(service.py): refactor the AuthManager class to accept a settings_manager parameter in the constructor for better dependency injection
🔧 chore(service.py): refactor the run_oauth2_scheme method in the AuthManager class to use the oauth2_scheme from the settings_manager instead of a hardcoded value

 feat(auth/utils.py): add authentication and authorization utilities for user authentication and token generation
🔒 chore(auth/utils.py): add auth_scheme_dependency function to handle authentication scheme dependency
🔒 chore(auth/utils.py): add get_current_user function to retrieve the current authenticated user
🔒 chore(auth/utils.py): add get_current_active_user function to retrieve the current active authenticated user
🔒 chore(auth/utils.py): add verify_password function to verify the password
🔒 chore(auth/utils.py): add get_password_hash function to get the hashed password
🔒 chore(auth/utils.py): add create_token function to create a JWT token
🔒 chore(auth/utils.py): add create_super_user function to create a super user
🔒 chore(auth/utils.py): add create_user_longterm_token function to create a long-term token for a user
🔒 chore(auth/utils.py): add create_user_api_key function to create an API key for a user
🔒 chore(auth/utils.py): add get_user_id_from_token function to get the user ID from a token
🔒 chore(auth/utils.py): add create_user_tokens function to create access and refresh tokens for a user
🔒 chore(auth/utils.py): add create_refresh_token function to create new access and refresh tokens using a refresh token
🔒 chore(auth/utils.py): add authenticate_user function to authenticate a user with username and password
2023-08-21 16:33:56 -03:00
Gabriel Luiz Freitas Almeida
e6bd9a07d5 🔧 fix(auth.py): update import statements for User model and related functions to match new file structure
🔧 fix(auth.py): update import statements for settings_manager and related settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
🔧 fix(auth.py): update references to settings_manager.settings to settings_manager.auth_settings to match new file structure
2023-08-21 16:33:27 -03:00
Gabriel Luiz Freitas Almeida
f4d12f27e6 Adds new AuthSettings 2023-08-21 16:12:49 -03:00
anovazzi1
43ef297263 fixed import error on edges 2023-08-21 16:08:12 -03:00
Gabriel Luiz Freitas Almeida
3d5cf84095 📦 feat(models): add Token model to represent access and refresh tokens
📦 feat(models): add User model to represent user data

📦 feat(models): add UserAddModel, UserListModel, UserPatchModel, and UsersResponse models for user CRUD operations

📦 feat(models): add get_user_by_username and get_user_by_id functions to retrieve user data from the database

📦 feat(models): add update_user function to update user data in the database

📦 feat(models): add update_user_last_login_at function to update the last login timestamp of a user
2023-08-21 15:59:51 -03:00
Gabriel Luiz Freitas Almeida
9baf588e5e 🔥 refactor(nginx.conf): remove redundant code for proxying /api/v1/ and /health routes to backend service 2023-08-20 23:38:47 -03:00
Gabriel Luiz Freitas Almeida
59e0bd6e9b 🐛 fix(component.py): change variable name from function_entrypoint_name to _function_entrypoint_name for better readability and consistency
🐛 fix(component.py): fix condition to check if _function_entrypoint_name is empty in Component class

🐛 fix(manager.py): change condition to check if key is in Settings.model_fields.keys() instead of Settings.__fields__.keys() for better accuracy

 feat(settings.py): add support for loading settings from a YAML file and updating settings from YAML and kwargs

🐛 fix(util.py): get "type" or "annotation" from value in get_type function to handle both cases

🐛 fix(test_cli.py): convert temp_dir to string before checking if it is in settings_manager.settings.COMPONENTS_PATH

🐛 fix(test_custom_component.py): change variable name from function_entrypoint_name to _function_entrypoint_name in tests for consistency and remove test for ComponentFunctionEntrypointNameNullError since it is not used anymore

📝 docs(test_llms_template.py): update description of `OpenAI` Chat large language models API in test case
2023-08-20 15:08:06 -03:00
Gabriel Luiz Freitas Almeida
4345293a0a 🐛 fix(endpoints.py): skip processing empty custom_component_dict to prevent errors
🐛 fix(schemas.py): import field_validator from pydantic instead of Field
🐛 fix(base.py): return None if fields only contain _type key
🐛 fix(flow.py): set default value of description field to an empty string
🐛 fix(base.py): import validator from pydantic instead of field_validator
🐛 fix(conftest.py): change scope of client fixture to function and add autouse=True to ensure it runs for every test
2023-08-20 15:06:26 -03:00
Gabriel Luiz Freitas Almeida
2fe4b2ac44 v2 2023-08-20 14:21:47 -03:00
Gabriel Luiz Freitas Almeida
3d84aace37 🔧 fix(endpoints.py): import missing dependencies to resolve NameError
 feat(endpoints.py): add new endpoint to get task status by task ID
🔧 fix(schemas.py): update ProcessResponse schema to use 'id' instead of 'session_id' for consistency
 feat(schemas.py): add new schema for TaskStatusResponse
2023-08-20 13:24:47 -03:00
DiogenesBR
5fd3da010e Atualização do ChromaComponent adicionando campos que havia na versão antiga 2023-08-18 21:10:03 +00:00
DiogenesBR
5e7681ea09 Add some new types to .gitattributes 2023-08-18 16:58:18 -03:00
Cristhian Zanforlin Lousa
b319b909e4 ️ chore(frontend): update moment package to version 2.29.4 for bug fixes and improvements 2023-08-18 15:01:10 -03:00
Gabriel Luiz Freitas Almeida
8bdde3bc05 🔨 refactor(custom_component.py): remove unused import and update function name for better code organization and clarity
📝 docs(custom_component.py): update docstring for better readability and understanding
🔧 chore(custom_component.py): add new file names.txt for locust tests with a list of names for load testing
2023-08-18 08:57:53 -03:00
Gabriel Luiz Freitas Almeida
7f217bd518 🔧 refactor(process.py): remove unused imports and variables, refactor function names for clarity
 feat(process.py): introduce SessionManager to handle loading and updating langchain_object sessions
🐛 fix(process.py): update cache with the updated langchain_object after processing graph
2023-08-18 08:57:38 -03:00
Gabriel Luiz Freitas Almeida
2183f167cd 🐛 fix(manager.py): add cache_manager.set() to store langchain_object in cache after successful initialization
🐛 fix(celeryconfig.py): fix condition to check if BROKER_URL and RESULT_BACKEND are present in os.environ before using them, fallback to langflow_redis_host and langflow_redis_port if not present
2023-08-18 08:57:24 -03:00
Gabriel Luiz Freitas Almeida
682e611947 🔧 fix(endpoints.py): remove unused import and function call to process_graph_cached
🔧 fix(worker.py): refactor process_graph_cached into process_graph_cached_task and update function signature and implementation to use SessionManager for loading and updating the graph
2023-08-18 08:57:12 -03:00
Gabriel Luiz Freitas Almeida
c195456c49 🔧 fix(base.py): update debug log message to provide more meaningful information about the number of vertices in the graph
🔧 fix(run.py): comment out the caching functionality for building sorted vertices to prevent caching issues
2023-08-18 08:56:58 -03:00
Gabriel Luiz Freitas Almeida
f4a0c9f436 🐛 fix(manager.py): remove commented code block to improve code readability and maintainability
 feat(manager.py): add initialization for session manager and its dependencies (cache manager and settings manager) to enable session management functionality
2023-08-18 08:52:26 -03:00
Gabriel Luiz Freitas Almeida
853648ae33 📝 chore(locustfile.py): add locustfile.py for load testing the API
🐛 fix(test_process.py): refactor test_load_langchain_object_with_cached_session to use session_manager
🐛 fix(test_process.py): refactor test_load_langchain_object_with_no_cached_session to use session_manager
🐛 fix(test_process.py): refactor test_load_langchain_object_without_session_id to use session_manager
2023-08-18 08:51:56 -03:00
ogabrielluiz
d76cef81e8 fix: Remove category log 2023-08-17 23:11:44 -03:00
Gabriel Luiz Freitas Almeida
b772bbe976 🐛 fix(endpoints.py): add validation to ensure that custom components are in a single category 2023-08-17 22:33:52 -03:00
Cristhian Zanforlin Lousa
d2dc0feae4 🔧 chore(base.py): enable AUTO_LOGIN by default for easier development and testing 2023-08-17 20:14:48 -03:00
Cristhian Zanforlin Lousa
8e662e65f6 🐛 fix(ApiKeysPage): add missing TableHead for 'Id' column to improve table structure
 feat(ApiKeysPage): add tooltip and cursor-default to display the full 'Id' value in the table
🐛 fix(ApiKeysPage): fix typo in ConfirmationModal titleHeader from 'Delete User' to 'Delete Key'
 feat(ApiKeysPage): add onCloseModal callback to refresh keys after creating a new secret key
2023-08-17 19:51:40 -03:00
Cristhian Zanforlin Lousa
8dcbeb5e39 🐛 fix(base.py): set AUTO_LOGIN to False to disable automatic login as a super user
 feat(App.tsx): add logout function to useContext and handle page refresh to maintain user login state
🐛 fix(SecretKeyModal/index.tsx): add onCloseModal function to handle closing modal when API key is not available
 feat(ApiKeysPage/index.tsx): add onCloseModal prop to SecretKeyModal component to refresh API keys after creating a new key
🐛 fix(ApiKeysPage/index.tsx): replace getIdKeyHidden function with directly accessing api_key property in ApiKey object
 feat(types/components/index.ts): add onCloseModal function to ApiKeyType type to handle closing modals
2023-08-17 19:51:28 -03:00
anovazzi1
712dcf3535 fix(reactflowUtils.ts): fix typo in function name from scapedJSONStringfy to scapeJSONStringify
feat(reactflowUtils.ts): add customStringify function to handle special cases when stringifying JSON objects
2023-08-17 19:34:04 -03:00
Cristhian Zanforlin Lousa
a35a4fd648 🐛 fix(App.tsx): set loading state to false after successful auto login or getting logged user data
🐛 fix(routes.tsx): remove duplicate import of ApiKeysPage
2023-08-17 19:23:52 -03:00
Cristhian Zanforlin Lousa
bfe8053127 merging with authentication 2023-08-17 19:18:30 -03:00
Cristhian Zanforlin Lousa
151bbc24d2 🐛 fix(headerComponent): fix rendering issue with API keys button when autoLogin is true
 feat(headerComponent): add condition to render API keys button only when autoLogin is false
2023-08-17 19:06:05 -03:00
Cristhian Zanforlin Lousa
b15ab5bae0 Merge branch 'login-auth' of https://github.com/logspace-ai/langflow into login-auth 2023-08-17 18:46:27 -03:00
Gabriel Luiz Freitas Almeida
26e6c325aa 🐛 fix(manager.py): add support for registering factory dependencies to handle service dependencies
 feat(manager.py): add support for handling service dependencies when creating services
🔧 chore(manager.py): comment out validation for creating services before the settings service
🔧 chore(utils.py): add get_session_manager() function to retrieve the session manager service
2023-08-17 18:00:27 -03:00
Gabriel Luiz Freitas Almeida
632eef48b2 🐛 fix(manager.py): change threading.Lock to threading.RLock to allow reentrant locking and prevent deadlocks
🔀 merge(manager.py): refactor _get method to extract logic into _get_without_lock method for code reuse and readability
🔀 merge(manager.py): refactor set method to use _get_without_lock method for code reuse and readability
🔀 merge(manager.py): add lock acquisition in delete method to ensure thread safety
🔀 merge(utils.py): add update_cache method to Memoize class for updating cache values
2023-08-17 17:59:00 -03:00
Gabriel Luiz Freitas Almeida
cf2940be05 feat(session): add SessionManagerFactory, SessionManager, and related methods
- Added `SessionManagerFactory` class in `src/backend/langflow/services/session/factory.py` to create instances of `SessionManager`.
- Added `SessionManager` class in `src/backend/langflow/services/session/manager.py` to manage sessions.
- Added `load_session`, `generate_key`, `update_session`, and `clear_session` methods to `SessionManager` to handle session-related logic.

These changes were made to introduce session management functionality to the application.
2023-08-17 17:58:10 -03:00
Gabriel Luiz Freitas Almeida
c49e660e80 🐛 fix(cache/factory.py): change variable name from settings_service to settings_manager for consistency and clarity
🐛 fix(cache/factory.py): change variable name from settings_service to settings_manager for consistency and clarity
🐛 fix(database/factory.py): change variable name from settings_service to settings_manager for consistency and clarity
2023-08-17 17:23:31 -03:00
anovazzi1
11a2d12c6b Merge remote-tracking branch 'origin/dev' into newHandleId 2023-08-17 16:17:14 -03:00
Diógenes Betat Roos
ff7c3c26ef Migrate Chroma to Custom Component 2023-08-17 19:12:21 +00:00
gustavoschaedler
463831e8df Merge remote-tracking branch 'origin/dev' into authentication 2023-08-17 19:50:27 +01:00
anovazzi1
e362dc0bed Merge remote-tracking branch 'origin/dev' into fixmakeFrontendC 2023-08-17 15:37:21 -03:00
igorrCarvalho
30b3b4b0d6 Refactor: Remove admin page button and protect /admin route when autologin occurs 2023-08-17 15:33:38 -03:00
gustavoschaedler
3c4db074e4 🔧 fix(base.py): update BASE_COMPONENTS_PATH to point to the correct directory
🔧 fix(base.py): improve readability by removing commented out code and adding line breaks
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and indentation
🔧 fix(base.py): improve readability by adding line breaks and
2023-08-17 19:30:46 +01:00
anovazzi1
ab81c604a1 chore(Makefile): update 'install_frontendc' target to remove existing node_modules and package-lock.json before running 'npm install' to ensure a clean installation 2023-08-17 15:30:24 -03:00
Gabriel Luiz Freitas Almeida
39e25c294c Merge dev 2023-08-17 10:59:54 -03:00
Gabriel Luiz Freitas Almeida
1b94fc9d92 🐛 fix(endpoints.py): fix duplicate loading of custom components from the same path
 feat(endpoints.py): improve performance by skipping duplicate loading of custom components from the same path
2023-08-17 10:26:17 -03:00
Gabriel Luiz Freitas Almeida
2cdb860d09 Merge remote-tracking branch 'origin/dev' into celery 2023-08-17 10:16:44 -03:00
Gabriel Luiz Freitas Almeida
82e6b38ca4 🐛 fix(worker.py): add exception handling and retry mechanism to build_vertex task to handle SoftTimeLimitExceeded error and retry the task up to 3 times with a countdown of 2 seconds
 feat(worker.py): add import statement for SoftTimeLimitExceeded exception from celery.exceptions module to handle SoftTimeLimitExceeded error in build_vertex task
2023-08-17 10:16:00 -03:00
Gabriel Luiz Freitas Almeida
2dd43d3f99 🐛 fix(chat.py): add support for running celery tasks for building vertices and fallback to local build if celery task fails 2023-08-17 10:15:49 -03:00
Gabriel Luiz Freitas Almeida
24344ee0fa 🐛 fix(base.py): remove unnecessary import statement for celery.result.AsyncResult
🔀 refactor(base.py): refactor the build method in Vertex class to improve readability and remove redundant code
 feat(base.py): add get_task method to Vertex class to retrieve the task from celery using task_id
2023-08-17 10:15:38 -03:00