Commit graph

3,056 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
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
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
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
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
Lucas Oliveira
500fc98a00 Merge branch 'main' into dev 2023-08-17 10:13:38 -03:00
Gabriel Luiz Freitas Almeida
e210fc316a 🐛 fix(__main__.py): import and call initialize_settings_manager() to ensure settings manager is initialized
 feat(manager.py): add check to prevent duplicate registration of service factories in ServiceManager class
 feat(manager.py): add initialize_settings_manager() function to initialize the settings manager
2023-08-17 08:23:50 -03:00
Gabriel Luiz Freitas Almeida
87958c255e 🐛 fix(endpoints.py): change type annotation of session_id parameter in process_flow function to Union[None, str] to allow for None value
🐛 fix(schemas.py): change type annotation of session_id field in ProcessResponse schema to Optional[str] to allow for None value
🐛 fix(run.py): change return type annotation of build_sorted_vertices_with_caching function to Tuple[Any, Dict] to specify the return types
🐛 fix(process.py): change return type annotation of load_langchain_object function to Tuple[Union[Chain, VectorStore], Dict[str, Any], str] to include the session_id value in the return tuple
2023-08-16 21:43:35 -03:00
Gabriel Luiz Freitas Almeida
199ea3b1b8 🔧 fix(process.py): refactor process_graph_cached function for better readability and maintainability
 feat(process.py): add clear_caches_if_needed function to clear cache if clear_cache flag is set
 feat(process.py): add load_langchain_object function to load langchain_object and artifacts from data_graph
 feat(process.py): add process_inputs function to process inputs and add artifacts to inputs
 feat(process.py): add generate_result function to generate result and thought based on langchain_object and inputs
2023-08-16 21:29:17 -03:00
Gabriel Luiz Freitas Almeida
2f928c7d84 Merge remote-tracking branch 'origin/dev' into add_session_id 2023-08-16 19:31:29 -03:00
Gabriel Luiz Freitas Almeida
7539ba3166 Merge remote-tracking branch 'origin/dev' into fix_db_location 2023-08-16 19:21:47 -03:00
anovazzi1
4b64d38d68 fix(inputComponent): fix TypeScript error by adding non-null assertion to className variable
fix(authContext): fix TypeScript error by setting initial value of userData to null
fix(tsconfig.json): enable strict mode in TypeScript compiler for better type checking and error detection
2023-08-16 18:29:47 -03:00
anovazzi1
e33e236466 Merge branch 'login' into types_refactor 2023-08-16 18:19:36 -03:00
anovazzi1
545a099339 removed strict and implicity any from tsconfig 2023-08-16 18:13:53 -03:00
anovazzi1
c5850977a7 fix(utils.ts): add TemplateVariableType import to fix type error in checkBaseClass function
chore(tsconfig.json): set strict to false and noImplicitAny to true to relax strict type checking and enforce explicit typing
2023-08-16 18:00:37 -03:00
anovazzi1
57f580c93d refactor(utils.ts): simplify logic for getting chat input field
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.
2023-08-16 17:52:08 -03:00
anovazzi1
af218867eb fix(formModal): fix nullish coalescing operator usage to handle nullable properties in tabsStateFlowId.formKeysData 2023-08-16 17:49:03 -03:00
anovazzi1
9b0ff166c9 fix(ApiModal): fix null assertion on tabs array
fix(ApiModal): fix strict mode in tsconfig.json to enable strict type checking
2023-08-16 17:45:12 -03:00
gustavoschaedler
98a24d331c 🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key.py): remove unnecessary empty line
🔧 fix(api_key
2023-08-16 21:00:39 +01:00
gustavoschaedler
4eeb9449cb 🔧 fix(main.py): reformat import statements to improve readability and maintainability
 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
2023-08-16 20:20:18 +01:00
anovazzi1
0b8d91f116 Merge branch 'release' into bug/loadingIndicator 2023-08-16 15:26:15 -03:00
anovazzi1
408ef81a5b chore(constants.ts): add missing newline at the end of the file
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
2023-08-16 15:02:57 -03:00
gustavoschaedler
91fcf33506 🐛 fix(auth.py): import get_session from correct module to fix import error
 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
2023-08-15 23:47:50 +01:00
anovazzi1
aae6223593 code format 2023-08-15 19:43:43 -03:00
anovazzi1
ec79cc43bd Merge remote-tracking branch 'origin/dev' into types_refactor 2023-08-15 19:34:53 -03:00
gustavoschaedler
effbddbcb0 🐛 fix(base.py): set AUTO_LOGIN to True to enable automatic login as a super user
🔧 chore(base.py): improve readability by formatting logger.debug statements
2023-08-15 20:56:10 +01:00
Gabriel Luiz Freitas Almeida
5e715af875 🔧 fix(ApiModal/index.tsx): fix formatting of codesArray to improve readability
🔧 fix(formModal/index.tsx): fix formatting of getWebSocketUrl function to improve readability
🔧 fix(vite.config.ts): fix formatting of comment to improve readability
2023-08-15 16:46:53 -03:00
Gabriel Luiz Freitas Almeida
69d03f64b1 🔧 fix(base.py): remove redundant imports and nested class declaration
 feat(base.py): add validation logic to set the DATABASE_URL value based on environment variables and file paths
2023-08-15 16:37:21 -03:00
Gabriel Luiz Freitas Almeida
6e3a6ce8c3 🐛 fix(base.py): set CONFIG_DIR to default value if not provided to improve functionality
 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
2023-08-15 16:33:47 -03:00
gustavoschaedler
3cd8aff96e 🐛 fix(auth.py): change create_user_longterm_token to use create_super_user to ensure super user exists before creating token
 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
2023-08-15 20:32:53 +01:00
anovazzi1
8f82367300 refactor(modals/UserManagementModal): move import statement for InputComponent to the top for better organization and readability
refactor(pages/loginPage): remove unused import statement for IconComponent

refactor(pages/signUpPage): remove unused import statement for IconComponent

refactor(routes.tsx): remove unused import statement for SignUp page
2023-08-15 16:05:08 -03:00
anovazzi1
015064b453 Merge branch 'authentication' into login 2023-08-15 16:03:42 -03:00
gustavoschaedler
695a337c6c 🔧 fix(auth.py): move SECRET_KEY, ALGORITHM, ACCESS_TOKEN_EXPIRE_MINUTES, and REFRESH_TOKEN_EXPIRE_MINUTES to environment variables for better security and configurability
 feat(auth.py): add support for loading settings from environment variables in create_token and create_user_tokens functions
🔧 fix(auth.py): use settings_manager to access SECRET_KEY, ALGORITHM, ACCESS_TOKEN_EXPIRE_MINUTES, and REFRESH_TOKEN_EXPIRE_MINUTES in create_token and create_user_tokens functions
🔧 fix(auth.py): use settings_manager to access SECRET_KEY and ALGORITHM in get_current_user function
 feat(auth.py): add create_user_longterm_token function to create long-term access token for auto login
 feat(login.py): add auto_login endpoint to automatically log in as a super user if AUTO_LOGIN is enabled in the settings
🔧 fix(settings/base.py): add SECRET_KEY, ALGORITHM, ACCESS_TOKEN_EXPIRE_MINUTES, REFRESH_TOKEN_EXPIRE_MINUTES, and AUTO_LOGIN settings to the base settings class
 feat(settings/base.py): add AUTO_LOGIN setting to control whether auto login is enabled or not
🔧 fix(settings/base.py): use secrets.token_hex(32) to generate a random SECRET_KEY instead of hardcoding it
🔧 fix(settings/base.py): update comments and formatting in the base settings class
 feat(settings/base.py): add AUTO_LOGIN setting to control whether auto login is enabled or not
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings class
🔧 fix(settings/base.py): update comments and formatting in the base settings

🔥 refactor(settings.py): remove unused imports and code, clean up formatting and comments
🔀 chore(settings.py): merge duplicated code into reusable functions
📝 docs(settings.py): add missing docstrings and comments for better code documentation
🔧 chore(settings.py): update settings file to improve readability and maintainability
2023-08-15 20:00:02 +01:00
gustavoschaedler
c752872fc3 🐛 fix(auth.py): add optional parameter 'update_last_login' to 'create_user_tokens' function to allow updating last login only when needed
🐛 fix(auth.py): add optional parameter 'db' to 'create_refresh_token' function to allow passing the database session
 feat(login.py): pass 'update_last_login=True' to 'create_user_tokens' function to update last login when user successfully logs in
🐛 fix(ApiModal/index.tsx): fix formatting of 'codesArray' array to improve readability
🐛 fix(formModal/index.tsx): fix formatting of 'getWebSocketUrl' function to improve readability
🐛 fix(vite.config.ts): fix typo in comment
2023-08-15 16:50:40 +01:00
Lucas Oliveira
2b21db32b5
Feature/view mode (#769)
This feature implements a view mode to all of the flows, to embed on
sites.
2023-08-15 12:43:29 -03:00
Lucas Oliveira
685ac70e90 disabled ZoomOnDoubleClick 2023-08-15 12:31:17 -03:00
Lucas Oliveira
fe7239b577 Disabled Pan On Pinch 2023-08-15 12:30:39 -03:00
Lucas Oliveira
8529c379e1 Disabled zoom and pan when on view mode 2023-08-15 12:29:19 -03:00
Lucas Oliveira
3667f4812e Fixed bug: flow not showing 2023-08-15 12:21:20 -03:00
Lucas Oliveira
81dba95720 Added view option to LangFlow 2023-08-15 12:16:32 -03:00
Gabriel Luiz Freitas Almeida
5140ae605d
CtrlBackspace fixed on Macbook (#765) 2023-08-15 13:09:11 +00:00
Gabriel Luiz Freitas Almeida
e63d6aa943 🐛 fix(endpoints.py): fix comparison of path variable to string in get_all() function to prevent duplicate processing of paths 2023-08-15 10:04:40 -03:00
Gabriel Luiz Freitas Almeida
b6d063a0fd 🐛 fix(settings.py): convert Path object to string before appending to list to avoid type error
🐛 fix(settings.py): check if value is already in the list before appending to avoid duplicates
2023-08-15 09:15:28 -03:00