Commit graph

15 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
163a7c49cd 🐛 fix(utils.py): fix TypeError when comparing offset-naive and offset-aware datetimes in get_current_user function 2023-08-30 17:51:57 -03:00
Gabriel Luiz Freitas Almeida
eacf558e70 🐛 fix(chat.py): close websocket connection with status code 1008 and reason "Unauthorized" if user is not authenticated or inactive
🐛 fix(auth/utils.py): raise credentials_exception if token has expired
2023-08-30 17:29:07 -03:00
Gabriel Luiz Freitas Almeida
8c77613f72 🔀 refactor(utils.py): change return type annotation of authenticate_user function from Union[User, None] to Optional[User] for clarity and consistency 2023-08-29 10:45:10 -03:00
Gabriel Luiz Freitas Almeida
9804d58d32 🐛 fix(base.py): add *args and **kwargs to build method in Vertex class to allow for additional arguments to be passed
🐛 fix(types.py): add *args and **kwargs to build method in AgentVertex, LLMVertex, WrapperVertex, ChainVertex, and PromptVertex classes to allow for additional arguments to be passed
🐛 fix(utils.py): change return type annotation in api_key_security function from Optional[ApiKey] to Optional[User] to reflect the actual return type
2023-08-28 18:05:43 -03:00
Gabriel Luiz Freitas Almeida
31abe8d67e 🐛 fix(utils.py): fix missing return statement in api_key_security function
🔀 refactor(utils.py): refactor create_super_user function to use Optional types for username and password parameters
2023-08-28 17:56:38 -03:00
Gabriel Luiz Freitas Almeida
ed9796e473 🐛 fix(api_key.py): change variable name from 'e' to 'exc' for better readability and semantics
🐛 fix(endpoints.py): add 'api_key' parameter to 'process_flow' function to fix missing dependency error
🐛 fix(endpoints.py): add exception chaining to HTTPException in 'process_flow' function for better error handling
🐛 fix(utils.py): change return type of 'api_key_security' function to Optional[ApiKey] for better type hinting
🐛 fix(utils.py): change variable name from 'e' to 'exc' for better readability and semantics
2023-08-28 07:00:45 -03:00
Gabriel Luiz Freitas Almeida
19653858be 🔧 chore(utils.py): refactor create_super_user function to accept optional username and password parameters for flexibility
🔒 fix(utils.py): use the provided username and password parameters if available when creating the super user, instead of relying solely on the settings manager
2023-08-27 19:55:20 -03:00
Gabriel Luiz Freitas Almeida
0f3bf9192d 🔒 chore(utils.py): refactor import statements and remove unused imports for better code organization and readability
🔒 chore(utils.py): refactor auth_scheme_dependency to use OAuth2PasswordBearer for better security
🔒 chore(utils.py): refactor validate_api_key to use check_key function from crud module for better code reuse
🔒 chore(utils.py): add api_key_security function to handle API key authentication logic
🔒 chore(utils.py): refactor get_current_user to use oauth2_login dependency for better security
🔒 chore(utils.py): remove unused validate_api_key function
🔒 chore(auth.py): remove unused oauth2_scheme variable for better code organization
2023-08-26 17:38:43 -03:00
Gabriel Luiz Freitas Almeida
282e6b0c18 🐛 fix(endpoints.py): import validate_api_key function from auth.utils to fix missing dependency
 feat(endpoints.py): add validation of API key in process_flow endpoint to ensure only valid requests are processed
🔧 chore(utils.py): add validate_api_key function to validate API key against database
🔧 chore(test_endpoints.py): add test case for process_flow endpoint to test API key validation and processing
2023-08-25 20:03:15 -03:00
Gabriel Luiz Freitas Almeida
aa633ff2de 🐛 fix(utils.py): change auth_scheme_dependency function to be async to match its usage in get_current_user function 2023-08-25 16:29:43 -03:00
Gabriel Luiz Freitas Almeida
edd58705e4 🔨 refactor(schemas.py): update import statement for ApiKeyRead to reflect new file structure
🔨 refactor(schemas.py): update import statement for ApiKeyRead to reflect
2023-08-25 12:03:03 -03:00
Gabriel Luiz Freitas Almeida
81816baada 🔧 fix(login.py): update import statement from sqlalchemy.orm to sqlmodel.Session for Session class
🔧 fix(users.py): update type annotation for current_user parameter from Session to User
🔧 fix(utils.py): update import statement from sqlalchemy.orm to sqlmodel.Session
🔧 fix(utils.py): update type annotation for token parameter from Annotated to Union[Coroutine, str]
🔧 fix(utils.py): update type annotation for get_user_by_username function return type from User to Union[User, None]
🔧 fix(utils.py): update type annotation for get_user_by_id function return type from User to Union[User, None]
🔧 fix(manager.py): update type annotation for dependencies parameter in register_factory method from List to Optional[List]
2023-08-25 10:24:01 -03:00
Gabriel Luiz Freitas Almeida
4517f8ad5c 🔧 fix(service.py): add request parameter to run_oauth2_scheme method in AuthManager class to handle FastAPI request object
🔧 fix(utils.py): add request parameter to auth_scheme_dependency function to handle FastAPI request object
🔧 fix(utils.py): change get_current_active_user function to synchronous and remove async keyword
 feat(utils.py): add get_current_active_superuser function to check if the current user is an active superuser
2023-08-25 10:11:24 -03:00
Gabriel Luiz Freitas Almeida
d9cbf17b1a 🔄 chore(router.py): add users_router and api_key_router to the APIRouter to include the new routes for users and api keys
🔄 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
2023-08-24 17:41:41 -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