-
Notifications
You must be signed in to change notification settings - Fork 3
Add account creation to Vortex #912
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: staging
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for vortexfi ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for vortex-sandbox ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
… AUTH_SUCCESS handling
| type: DataTypes.UUID | ||
| }); | ||
|
|
||
| await queryInterface.sequelize.query(` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we keep the userId relation for this one (and any that allows for null) empty instead of using the dummy? Or do you think there is a benefit of using the dummy user here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, well maybe we should just allow it to be null on each table. You are right that the dummy user is not great. I used it so we can enforce the non-null constraint that is logical on some of the tables but now that I think of it, it might be better if it can be null and we just add it later..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes I dont have a strong opinion on either as they both serve the same purpose. null seems a bit easier to deal with after than the dummy.
Oh but if I remember correctly, those fields allow for a null relationship so no need to change that constraint itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe to also make the migration easier to follow. Not much more
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some of them did, some didn't. But I adjusted it so that the userId is nullable on all the other relations and the code checks if necessary.
…for optional authentication
|
@ebma Please let me know when it's ready for review again 🙏 |
|
@Sharqiewicz I consider the changes ready now :) |
|
@ebma Ok, thanks. I'll review it today |
|
@ebma I need some more time. I'll post summary tomorrow |
|
I reviewed the new auth components. 🔴 Accessibility (High Priority) Consider shadcn/ui InputOTP
🟡 Hardcoded Strings 🟡 Inconsistent Styling 🟢 Minor Issues Let me know if you want me to push fixes or if you want to handle it! ( |
@Sharqiewicz maybe you found that in an earlier review but I actually moved the translations in a recent commit already so this shouldn't be the case anymore. For the other suggested improvements, I agree we can/should add them. Feel free to add the respective changes yourself. |
…chain/vortex into 882-account-creation-on-vortex
Closes #882.
This pull request introduces Supabase-based authentication to the API, including OTP (one-time password) flows, token verification, and user session management. It adds new authentication endpoints, middleware for extracting and verifying user identity from requests, and propagates the authenticated
userIdthroughout the business logic and data models. Several routes now optionally or mandatorily require authentication, and the system is prepared for future endpoint protection. Additionally, the codebase is updated to store and utilize theuserIdin key models and service layers.Supabase Authentication Integration
.env.exampleand included@supabase/supabase-jsas a dependency inpackage.json. [1] [2]SupabaseAuthServicewith methods for checking user existence, sending and verifying OTPs, verifying and refreshing tokens, and retrieving user profiles. [1] [2]AuthControllerwith endpoints for checking email registration, requesting OTP, verifying OTP, refreshing tokens, and verifying tokens. [1] [2]/v1/authroutes for authentication endpoints and registered them in the main API router. [1] [2] [3]Authentication Middleware and Route Protection
requireAuthandoptionalAuthmiddleware to extract and verify user identity from Bearer tokens, attachinguserIdto the request.optionalAuthmiddleware, allowing endpoints to accessuserIdif provided. [1] [2] [3] [4] [5] [6] [7]User Identity Propagation
brla.controller.ts,quote.controller.ts,ramp.controller.ts) to storeuserIdfrom the request in database records and service calls. [1] [2] [3] [4] [5] [6]userIdas part of the request context and data models. [1] [2]These changes collectively enable secure, user-specific flows across the API, laying the groundwork for robust authentication and authorization using Supabase.