Publish signup and org-created for tracked visitors

FeatureSecurityService
Shipped
August 20, 2026 at 1:24 AM UTC
Author
Kamo
Commit
c6ac99d

The register site now forwards the marketing visitor GUID and tracking code in the request body — not a header, because the proxy strips Cookie and the ingress rewrites X-Forwarded-Host — and register() passes them to a signup signal when they are present. Most signups carry neither and publish nothing. MarketingSignalPublisher serializes with a LOCAL ObjectMapper, deliberately not the shared bean. That bean also writes the Redis *** session map and 65 call sites read ids back out of it as Number; giving it a global Long->String rule turns org resolution into a ClassCastException that the helpers swallow, and a null org is a 401 on every authenticated request across four services. The publisher is best-effort, holds an optional NATS connection, and never throws. Both signals are registered afterCommit with the payload snapshotted inside the transaction, so the consumer cannot look up a user or organization row that has not been committed yet. RoleRightsSyncSeedTest gains a negative case: neither of the two new tracking rights may ever enter NEW_RIGHT_SEEDS, since seeding them would grant every existing referral-code holder visibility into colleagues' visitor-level analytics on the deploy boot. Their ids are pinned at 200 and 201.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing