Repository navigation
feat(auth): shared signup profile via @profullstack/profile - #32
Merged
Merged
Conversation
The signup page asks for first name, last name, company domain, job title and LinkedIn beside the email box (first and last name required), validated by @profullstack/profile before any link exists. The fields ride on the login token (login_tokens.profile) and are saved to user_profiles when the link is spent; a failed save never blocks the sign-in. Plain sign-in is unchanged. - migration 0002: user_profiles (package DDL, keyed by users.id), the token column, and an idempotent backfill from users.display_name - GET/PUT/PATCH /api/v1/me/profile via mountProfileRoutes - Contact details panel on /settings (POST /settings/contact) - /vendor-profile.js serves PROFILE_ENHANCE_SCRIPT (CSP allows no inline script) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adopts the shared @profullstack/profile 0.1.2.
/signup): first name, last name (required), company domain, job title, LinkedIn (optional), rendered byrenderProfileFieldsbeside the existing email box. Validated withvalidateProfileinPOST /api/auth/magicbefore a link is created; a refusal re-renders the form with field errors and what was typed. Plain sign-in never sees or needs the fields.login_tokens.profile(bound::text::jsonb) andtakeSignupProfilehands them out once on verify;saveSignupProfilewrites them touser_profiles. A failed save is logged, never blocks sign-in.packages/db/migrations/0002_user_profiles.sql(package DDL,user_id uuid), runs on boot like 0001. Idempotent backfill fromusers.display_name(fills blanks only).GET/PUT/PATCH /api/v1/me/profileviamountProfileRoutes, session or API key. Listed in/api/v1.POST /settings/contact. Account delete also removes the profile row./vendor-profile.jsservesPROFILE_ENHANCE_SCRIPT(the CSP allows no inline script).Tests:
test/api.test.jscovers the signup page fields, a refused signup, a signup whose fields are carried on the token and stored on verify, the API and the settings form. Locally against Postgres 17: all pass excepttest/sync.test.jswhich times out identically on main (env, passes in CI).🤖 Generated with Claude Code