-
Notifications
You must be signed in to change notification settings - Fork 1.9k
feat: auth revamp flow #9901
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: main
Are you sure you want to change the base?
feat: auth revamp flow #9901
Conversation
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.
This is the final PR Bugbot will review for you during this billing cycle
Your free Bugbot reviews will reset on January 3
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
frontend/src/components/AuthPageContainer/TrustBadgesFooter.tsx
Outdated
Show resolved
Hide resolved
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.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| className="periscope-btn primary next-btn" | ||
| block | ||
| className="signup-submit-button" | ||
| suffixIcon={<ArrowRight size={16} />} |
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.
Double submission due to redundant onClick on submit button
High Severity
The submit button has both type="submit" and onClick={handleSubmit}, while the parent FormContainer has onFinish={handleSubmit}. When clicked, handleSubmit fires immediately via onClick, then the form submission triggers onFinish which calls handleSubmit again. This causes duplicate API calls for signup and password reset operations, potentially creating duplicate accounts or triggering rate limits.
Additional Locations (1)
| try { | ||
| const values = form.getFieldsValue(); | ||
| setLoading(true); | ||
| setFormError(null); |
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.
Success event logged even when signup fails
Medium Severity
The signUp function catches errors and sets setFormError but doesn't rethrow, so execution continues normally after an error. As a result, logEvent('Account Created Successfully', ...) in handleSubmit is called even when the signup API call fails. This causes incorrect analytics data, reporting successful account creation when accounts weren't actually created.
Additional Locations (1)
| ); | ||
| } | ||
| }, [sessionsOrgWarning, showErrorModal]); | ||
| }, [sessionsOrgWarning, setErrorMessage]); |
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.
Stale warning persists when switching organizations in dropdown
Medium Severity
The useEffect for sessionsOrgWarning only sets errorMessage when the warning is truthy but never clears it when sessionsOrgWarning becomes null. When a user selects an organization with a warning, then switches to a different organization without a warning, the stale warning error remains displayed. Previously with showErrorModal, the modal was dismissed by user action. Now with inline setErrorMessage, the error persists until the user explicitly triggers onNextHandler or onSubmitHandler, which are the only places setErrorMessage(undefined) is called.
vikrantgupta25
left a comment
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.
pending on review
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.
This should go into images folder
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.
Same for the other svgs
| orgDisplayName: string; | ||
| email: string; | ||
| password: string; | ||
| name?: string; |
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.
| import { LifeBuoy } from 'lucide-react'; | ||
|
|
||
| function AuthHeader(): JSX.Element { | ||
| const handleGetHelp = (): void => { |
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.
callback
| /> | ||
| <span className="auth-header-logo-text">SigNoz</span> | ||
| </div> | ||
| <button |
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.
Why not the button from signozhq
| interface TrustBadge { | ||
| icon?: string; | ||
| text: string; | ||
| url?: string; |
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.
urls are not TrustBadges noe?
Footer should be split into 2 i think
| import AuthHeader from './AuthHeader'; | ||
| import TrustBadgesFooter from './TrustBadgesFooter'; | ||
|
|
||
| interface AuthPageContainerProps { |
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.
use PropsWithChildren instead
| <div className="login-form-header"> | ||
| <Typography.Paragraph className="login-form-header-text"> | ||
| <div className="login-form-emoji"> | ||
| <img src="/svgs/tv.svg" alt="TV" width="32" height="32" /> |
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.
import as asset
| const signUp = async (values: FormValues): Promise<void> => { | ||
| try { | ||
| const { organizationName, password, email } = values; | ||
| const { organizationName, password, email, firstName } = values; |
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.
It seems to be a required value. Can you fix it?

📄 Summary
Revamp Auth Flow
Notion - https://www.notion.so/signoz/Auth-Flow-Revamp-2d3fcc6bcd1980109717f267c7a79690?source=copy_link
Tenant - https://pleasant-horse.us.staging.signoz.cloud/
Test cases will come in different PR
✅ Changes
🏷️ Required: Add Relevant Labels
ex:
frontendbackenddevopsbugenhancementuitest👥 Reviewers
🧪 How to Test
🔍 Related Issues
📸 Screenshots / Screen Recording (if applicable / mandatory for UI related changes)
Dark Mode -
Light Mode -
📋 Checklist
👀 Notes for Reviewers
Note
Overhauls the authentication UI and page structure with a new shared layout and modern styling, plus inline error handling.
components/AuthPageContainerwithAuthHeader(help mailto) andTrustBadgesFooter(HIPAA/SOC2 links), background grid/gradient lines, and light/dark stylingLogin,SignUp, andResetPasswordscreens: new copy, compact inputs/buttons, responsive cards, and callout-based error messages (replacing modal errors)namethrough API (types/api/user/signup.ts)@signozhq/*UI components for buttons/callouts; adds SVG assetshipaa.svg,SOC-2.svg,tv.svgWritten by Cursor Bugbot for commit 23599b8. This will update automatically on new commits. Configure here.