Skip to content

Port waitlist into Console with canonical user foundation - #46

Closed
peacenode wants to merge 2 commits into
mainfrom
codex/waitlist-console-cutover
Closed

Port waitlist into Console with canonical user foundation#46
peacenode wants to merge 2 commits into
mainfrom
codex/waitlist-console-cutover

Conversation

@peacenode

@peacenode peacenode commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Port the production waitlist landing page, verification, referrals, consent, admin export, Resend, PostHog, and durable outbox into Console at /waitlist.
  • Add application-owned users, Auth0 identities/provider metadata, verified emails, and conflict-safe waitlist linking while preserving every PymtHouse external ID.
  • Keep Auth0 login and existing Console/MCP behavior available when identity synchronization fails; canonical-only features fail closed and reject disabled profiles.
  • Add original migrations 00000004 plus canonical migrations 00050006. The waitlist repository's separate OAuth/device migration is excluded.

Verification

  • 78 Vitest tests passed, including 16 real-Postgres identity/route integration cases against the isolated schema-only preview branch.
  • 85 existing Console/MCP regression tests passed.
  • Lint, typecheck, and production build passed. Existing Auth0/jose build warnings remain.
  • Real-DB tests cover concurrent/repeat login, verified and unverified email, pending waitlist records, link conflicts, outage retry, disabled users, provider metadata, signup/verification, referral points, consent, admin CSV, logout, rate limiting, and durable outbox retry.
  • Email delivery and analytics are mocked in integration tests; deployed provider/Auth0 smoke tests remain separate release gates.
  • Cleanup verified: zero signups, users, and email outbox events remain in the isolated preview database after tests.
  • Deployed preview: 12 route/authorization checks passed, including signed-out root and legacy-referral redirects, admin denial, public MCP discovery, and unauthenticated MCP POST challenge.
  • A real preview signup was accepted by Resend on its documented resend.dev delivery-test sink; outbox processed on attempt 1. The synthetic signup/outbox/token records were then removed.
  • Read-only production baseline: 65 signups, 52 confirmed, 72 consent events, 72 pending outbox events.

Preview

  • Neon access confirmed in Livepeer Foundation: project nameless-art-07247468.
  • Created schema-only branch console-cutover-preview (br-lucky-mountain-au9vt319); no production contact or queued-email data copied.
  • Applied migrations through 0006 and configured branch-specific Vercel Preview variables with independent secrets and a runtime role without schema-create permission.
  • Vercel cancellation cause identified: verified commits are required. Latest commit is GitHub-signed and verified; the preview now builds without weakening that policy.
  • Ready preview: https://console-git-codex-waitlist-console-cutover-livepeer-foundation.vercel.app/waitlist (Vercel team sign-in required in the browser).

Production gates — production remains unchanged

  • Complete interactive Auth0 callback, signed-in billing/keys, device approval, and MCP token issuance smoke tests. Public route checks and Resend test-sink delivery already pass.
  • Recover existing ATTRIBUTION_HASH_SECRET and INTERNAL_OUTBOX_SECRET, or agree a coordinated rotation. Neither STUDIO nor M5 has usable values in the waitlist local/production-export files. Do not substitute preview secrets silently.
  • Rotate the previously exposed waitlist DB credential in coordination with the existing deployment and rollback target.
  • Diagnose the 72-event production outbox backlog before enabling its worker; do not bulk-replay it as a test.
  • Only then configure production, apply additive canonical migrations, verify counts, and move earlyaccess.livepeer.org. Retain the standalone waitlist deployment for rollback.

@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
console Ready Ready Preview Sep 4, 2026 10:09pm UTC

Request Review

@peacenode
peacenode force-pushed the codex/waitlist-console-cutover branch from 7c3a2ca to 27547bf Compare September 4, 2026 21:41
Add isolated PostgreSQL identity and route integration tests; preserve legacy Auth0/MCP behavior during sync outages; retain waitlist link conflicts; record provider metadata and gate disabled canonical profiles. Document preview isolation and remaining production cutover gates.
@peacenode

Copy link
Copy Markdown
Collaborator Author

Superseded by #48, now targeting main and including this waitlist port together with provider-independent identity and early-access control. Consolidated at the author’s request; no merge or production deployment performed.

@peacenode peacenode closed this Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant