Document production auth readiness#151
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Storybook Component Screenshot PreviewOutcome: success Screenshots: primitive component stories captured on desktop and mobile. This lane is separate from full-route Playwright screenshots and focuses on design-system component regressions. |
Storybook Image DiffOutcome: success Changed Storybook baselines: none in this PR. This check compares design-system component screenshots against committed baselines. Inline images show only added or modified Storybook baseline PNGs. |
Playwright Hosted Data-FlowOutcome: success This optional check runs the mutation-backed profile flow against a configured hosted dev/staging target with isolated E2E test data. |
Playwright Data-Flow PreviewOutcome: success Captured flow:
Artifacts include screenshots, traces, and recorded video for the flow run. |
Playwright Image DiffOutcome: success Changed screenshot baselines: none in this PR. This check compares public route screenshots against committed baselines. Inline images show only added or modified baseline PNGs. |
Playwright Public Screenshot PreviewOutcome: success Screenshots: all public route checks passed on desktop and mobile. Full screenshot set is available in the artifact. Pixel diff baselines are handled by the separate Playwright Image Diff check. |
Vercel Preview DeploymentPreview: https://vr-dex-3ekarpjn6-basicbit.vercel.app |
Greptile SummaryThis PR documents the completed production auth readiness work: production Convex Auth environment variables, verified Google and Discord OAuth flows against
Confidence Score: 4/5Documentation-only change with no runnable code; safe to merge with the two minor doc inconsistencies noted. The staging callback note in vercel-preview.md describes the custom-domain migration as still pending, while convex-environments.md records it as already complete. A developer reading only the former file might re-add the old convex.site redirect URI when rotating credentials. The JWT stdin setup also lacks a concrete example command. Neither issue affects running code. The staging Auth-callback paragraph in vercel-preview.md (line 111) should be updated to reflect the already-completed migration status. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant User
participant Vercel as Vercel (vrdex.net)
participant Convex as Convex API (superb-pig-954.convex.cloud)
participant ConvexAuth as Convex Auth HTTP (db.vrdex.net)
participant OAuth as OAuth Provider (Google / Discord)
User->>Vercel: GET /sign-in
Vercel->>User: Sign-in page
User->>ConvexAuth: Initiate OAuth (via Convex Auth)
ConvexAuth->>OAuth: Redirect to provider
OAuth->>User: Auth consent
User->>OAuth: Grant
OAuth->>ConvexAuth: "Callback to /api/auth/callback/{provider}"
ConvexAuth->>ConvexAuth: Mint session cookie (JWT_PRIVATE_KEY + JWKS)
ConvexAuth->>Vercel: Redirect to /account
Vercel->>Convex: Server-side Convex query (CONVEX_URL)
Convex->>Vercel: Authenticated data
Vercel->>User: Authenticated /account page
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant User
participant Vercel as Vercel (vrdex.net)
participant Convex as Convex API (superb-pig-954.convex.cloud)
participant ConvexAuth as Convex Auth HTTP (db.vrdex.net)
participant OAuth as OAuth Provider (Google / Discord)
User->>Vercel: GET /sign-in
Vercel->>User: Sign-in page
User->>ConvexAuth: Initiate OAuth (via Convex Auth)
ConvexAuth->>OAuth: Redirect to provider
OAuth->>User: Auth consent
User->>OAuth: Grant
OAuth->>ConvexAuth: "Callback to /api/auth/callback/{provider}"
ConvexAuth->>ConvexAuth: Mint session cookie (JWT_PRIVATE_KEY + JWKS)
ConvexAuth->>Vercel: Redirect to /account
Vercel->>Convex: Server-side Convex query (CONVEX_URL)
Convex->>Vercel: Authenticated data
Vercel->>User: Authenticated /account page
Prompt To Fix All With AIFix the following 2 code review issues. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 2
docs/deployment/vercel-preview.md:111
**Staging custom-domain note is stale/conditional when it's already complete**
The note says callbacks "should use `https://db.staging.vrdex.net` once the Convex HTTP Actions custom domain is verified … and the domain is selected as `CONVEX_SITE_URL`" — framing all three conditions as future gates. However, `docs/deployment/convex-environments.md` line 112 records that all three conditions are already satisfied: the domain is verified, both OAuth providers accept the new callback URL, and `CONVEX_SITE_URL` is selected. A reader looking only at this file will think the migration is still pending and might re-add the old `convex.site` callback URL when rotating credentials.
### Issue 2 of 2
docs/deployment/convex-environments.md:78
**stdin piping example is absent**
The line says to set `JWT_PRIVATE_KEY` and `JWKS` "with the values piped through stdin" but never shows the actual shell incantation. A developer following these instructions cold won't know whether to use `echo … |`, a heredoc, `pbpaste |`, or another form. Without an example, the warning about PEM dashes is helpful context but the instructions are not actionable.
Reviews (1): Last reviewed commit: "Document production auth readiness" | Re-trigger Greptile |
|
Accepted Greptile's two doc findings.
Pushing the follow-up commit next. |
Summary
Validation
pnpm lint:markdownpnpm build:docshttps://vrdex.net/sign-in-> authenticated/account