Repository navigation
feat: await Bouncer signup admission before account creation - #7265
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryOnly the incremental commit Files Reviewed (1 file)
Previous Review Summaries (3 snapshots, latest commit 7aa0c93)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 7aa0c93)Status: No Issues Found | Recommendation: Merge Executive SummaryThe increment adds optional JA4 reporting: the original Files Reviewed (5 files)
Previous review (commit d47364c)Status: No Issues Found | Recommendation: Merge Executive SummaryThe incremental change adds the Files Reviewed (1 file)
Previous review (commit abb3eef)Status: 1 Issue Found | Recommendation: Address before merge Executive SummaryThe Bouncer signup-admission flow is correctly ordered before Stripe and the user transaction and fails open as documented; the only finding is a missing Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (16 files)
Reviewed by deepseek-v4.1-flash · Input: 33.1K · Output: 2.4K · Cached: 205.4K Review guidance: REVIEW.md from base branch |
Stack
The ownership cutover is #7267, stacked on this branch.
Merge and deploy this PR before the IP history import and cutover.
Change
x-vercel-ja4-digestheader. Normalize valid values and omit malformed values whole.SIGNUP-RATE-LIMITEDon enforced rejection.ENVIRONMENT.mdwith limits, exemptions, counter behavior, and rollout guidance.Bouncer prerequisite
Bouncer #1 adds a JA4 quota of 10 admissions per rolling 720 hours across IPs.
The IP defaults remain 3 per rolling 30 days and 3 per 24 hours.
enforcement.signupgoverns IPs.enforcement.signupJa4governs JA4. The global switch gates both.Limits and windows change through the Bouncer admin panel without a deployment.
JA4 enforcement ships off. No production enforcement switch changes.
A shared JA4 can represent unrelated users. Evaluate shadow data before enabling JA4 enforcement.
IP exemptions bypass both signup counters. The retained Cloud limiter still applies in this PR.
IP admission remains counted if JA4 or a later creation step rejects. No refund protocol is added.
Verification
Stripe calls use the existing development skip switch. No real Stripe operation or production history import ran.
Rollout