🚧 feat(base.Dockerfile): create python-base stage with shared environment variables
🚧 feat(base.Dockerfile): create builder-base stage for building dependencies and creating virtual environment
🚧 feat(base.Dockerfile): create development stage for development and testing
🔧 fix(authContext.tsx): change localStorage to cookies for storing access token
🔧 fix(api.tsx): remove console.log statement
🔧 fix(AdminPage/index.tsx): add missing import for getLoggedUser function and useContext for AuthContext
🐛 fix(authContext.tsx): change import statement for Users type to fix compilation error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): change type of userData state to Users type to fix compilation error
🐛 fix(authContext.tsx): remove unnecessary import statement for LoginType to fix unused import warning
🐛 fix(authContext.tsx): remove unnecessary import statement for api to fix unused import warning
🐛 fix(authContext.tsx): change import statement for Cookies to fix unused import warning
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext.tsx): add missing comma in AuthContext initial value object to fix syntax error
🐛 fix(authContext
🔀 refactor(auth.ts): update types and imports in AuthContextType for better code organization and clarity
🔧 chore(frontend): add BASE_URL_API constant to constants.ts to store API base URL
🔧 chore(frontend): update API endpoints in controllers to use BASE_URL_API constant for better maintainability and flexibility
✨ feat(PaginatorComponent): update rowsCount options to [10, 20, 50, 100] for more flexibility in choosing page size
🐛 fix(PaginatorComponent): fix maxIndex calculation to always be 100 for now, to avoid incorrect pagination
🐛 fix(PaginatorComponent): fix page index display to start from 1 instead of 0 for better user experience
🐛 fix(PaginatorComponent): fix disabled state of first and previous buttons to be disabled when index is 0
🐛 fix(PaginatorComponent): fix disabled state of next and last buttons to be disabled when index is equal to maxIndex
✨ feat(authGuard): add new ProtectedLoginRoute component to redirect authenticated users to home page
🐛 fix(genericIconComponent): fix icon size to be smaller with h-3 and w-3 classes
🐛 fix(ui/checkbox): fix checkbox icon size to be smaller with h-3 and w-3 classes
✨ feat(constants): add CONTROL_NEW_USER constant for new user form initialization
🐛 fix(authContext): fix getAuthentication function to correctly check for stored access and refresh tokens
🐛 fix(api.tsx): remove unused imports and reorganize imports for better readability
✨ feat(api.tsx): add support for retrying failed requests up to 3 times with a 5-second delay between retries
🐛 fix(api.tsx): fix logic for excluding certain URLs from error retries
✨ feat(api.tsx): add support for adding access token to every request as a request interceptor
🐛 fix(api.tsx): fix formatting and remove unnecessary code
✨ feat(index.ts): add support for fetching users, adding a user, fetching users with pagination, deleting a user, and updating a user
🐛 fix(UserManagementModal): fix typo in username state variable name
✨ feat(UserManagementModal): add support for password visibility toggle in password and confirm password fields
✨ feat(UserManagementModal): add support for is_disabled and is_superuser checkboxes
🐛 fix(LoginPage): fix typo in username state variable name
✨ feat(LoginPage): add support for handling input changes and signing in with username and password
🔨 refactor(AdminPage/index.tsx): import Checkbox component to improve code readability and maintainability
🔨 refactor(AdminPage/index.tsx): import API functions separately to improve code readability and maintainability
🔨 refactor(AdminPage/index.tsx): import alertContext from contexts/alertContext to improve code readability and maintainability
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused variables and functions to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused imports to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve code cleanliness and performance
🔨 refactor(AdminPage/index.tsx): remove unused code and dependencies to improve
🐛 fix(AdminPage/index.tsx): update text when there are no users registered to improve clarity and user experience
✨ feat(AdminPage/index.tsx): add loading state when fetching users to provide feedback to the user
🔨 refactor(AdminPage/index.tsx): refactor filter functionality to reset filter when input value is cleared
🔨 refactor(AdminPage/index.tsx): refactor filter functionality to use the current user list instead of the filtered list
🔨 refactor(AdminPage/index.tsx): refactor handleNewUser function to pass the user object instead of index
🔨 refactor(AdminPage/index.tsx): refactor handleEditUser function to pass the user id instead of index
🔨 refactor(AdminPage/index.tsx): refactor handleDeleteUser function to pass the user object instead of index
🔨 refactor(AdminPage/index.tsx): refactor TableRow key to use index instead of user.user
🔨 refactor(AdminPage/index.tsx): refactor TableCell content to use ShadTooltip component for better user experience
🔨 refactor(AdminPage/index.tsx): refactor Checkbox components to use id and checked props for better semantics
🔨 refactor(AdminPage/index.tsx): refactor date formatting to use toISOString and split methods for better readability
🔨 refactor(AdminPage/index.tsx): refactor UserManagementModal titleHeader to use user.id instead of user.user for better clarity
🔨 refactor(AdminPage/index.tsx): refactor handleEditUser function to pass the user id instead of index
🔨 refactor(AdminPage/index.tsx): refactor handleDeleteUser function to pass the user object instead of index
🔨 refactor(AdminPage/index.tsx): refactor PaginatorComponent to use handleChangePagination function for better readability and maintainability
🐛 fix(loginPage/index.tsx): remove unused import statement for 'error' from console module
✨ feat(loginPage/index.tsx): add support for displaying error message when signing in fails
🐛 fix(routes.tsx): add ProtectedLoginRoute component to protect login, signup, and login/admin routes
🐛 fix(api/index.ts): add missing 'is_disabled' and 'is_superuser' properties to Users type
🐛 fix(components/index.ts): change value type of inputHandlerEventType to include boolean
✨ feat(components/index.ts): add UserInputType type for user input data
🐛 fix(styleUtils.ts): add missing Eye and EyeOff icons to nodeIconsLucide object
✨ feat(authContext): add getAuthentication() function to check if user is authenticated using cookies
🔧 chore(index.tsx): reorganize context providers to wrap AuthProvider around other providers
🆕 feat(headerComponent): add logout functionality and redirect to login page on sign out
🔧 fix(constants): add missing URL to the list of excluded error retries
🔧 fix(authContext): add refreshToken state and update login and logout functions to handle refresh token
🆕 feat(api): add interceptor to handle access token expiration and refresh
🔧 fix(api): add missing request interceptor to add access token to every request
🔧 fix(API/index.ts): import missing LoginAuthType and LoginType from types/api/index to resolve compilation error
✨ feat(API/index.ts): add onLogin function to handle user login and authentication
✨ feat(API/index.ts): add renewAccessToken function to handle token renewal
🔧 fix(loginPage/index.tsx): import missing onLogin function from controllers/API to resolve compilation error
✨ feat(loginPage/index.tsx): add signIn function to handle user sign in and authentication
🔧 fix(routes.tsx): import ProtectedRoute component from components/authGuard to resolve compilation error
✨ feat(routes.tsx): add protected routes for HomePage, FlowPage, AdminPage, and DeleteAccountPage to enforce authentication
🔧 fix(api/index.ts): add missing grant_type, scope, client_id, and client_secret properties to LoginType to match API requirements
✨ feat(api/index.ts): add LoginAuthType to represent the authentication response from the server
🔧 fix(contexts/auth.ts): add refreshToken property to AuthContextType to store the refresh token
✨ feat(users.py): add docstrings to API endpoints for better documentation
🔥 chore(users.py): remove unnecessary code and comments
🐛 fix(users.py): fix return type hints in API endpoints
🔧 fix(auth.py): change SECRET_KEY comment from "TODO" to "JUST FOR TEST" for clarity
🔧 fix(auth.py): change create_access_token function name to create_token for consistency
🔧 fix(auth.py): change create_refresh_token function to accept refresh_token parameter instead of data dictionary
🔧 fix(auth.py): change create_refresh_token function to decode and validate refresh_token before creating new user tokens
🔧 fix(auth.py): change authenticate_user function to use get_user_by_username instead of get_user
🔧 fix(auth.py): change get_current_user function to use get_user_by_username instead of get_user
🔧 fix(auth.py): change get_user function name to get_user_by_username for clarity
🔧 fix(users.py): change get_password_hash function to be inside the router scope for better encapsulation
🔧 fix(users.py): change add_user function to return UserListModel instead of User
🔧 fix(users.py): change update_user function to update user data based on UserPatchModel fields
🔧 fix(users.py): change update_user function to handle username conflicts and update user's updated_at field
🔧 fix(users.py): change delete_user function to delete user based on user_id
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh
🔒 chore(auth.py): add refresh token functionality with expiration time of 180 minutes
🔒 chore(login.py): change token endpoint URL from /token to /login for better semantics
🔒 chore(login.py): add refresh token creation to login endpoint to provide a refresh token along with the access token
🐛 fix(base.py): change the error message when _built_object is None to provide more specific information and handle the case when _built_object is an instance of UnbuiltObject
🔧 chore(frontend): add SelectTrigger component to handle select triggers in UI components
🔧 chore(frontend): add Select component to handle select inputs in UI components
🔧 chore(frontend): add EditNodeModal component to handle editing of node data in modals
The changes were made to add support for the @radix-ui/react-select package to the frontend package.json dependencies. Additionally, the SelectTrigger and Select components were added to handle select triggers and select inputs in the UI components. Finally, the EditNodeModal component was added to handle the editing of node data in modals.
🐛 fix(nodeToolbarComponent): fix import statements and add missing dependencies
✨ feat(nodeToolbarComponent): add select-trigger component and implement functionality to handle select change and show/hide modal based on selection