A visitor holding an invite code submits email/password plus the code. The registration service validates the code inside a single transaction; on success it creates a new user and consumes the invite_codes row issued earlier by `get-invite-codes`.
Submodules
-
web-register-ui
UI
React page that captures email, password, and invite code.
-
public-api
API
HTTP boundary for `/api/register` POST requests.
-
registration-service
Service
Owns the registration transaction (consumer side of the invite_codes data row).
-
postgresql
DB
Stores `users` rows and applies invite-code state transitions inside the registration tx.
Intra-feature edges
- web-register-ui → public-apicallPOST /api/register
- public-api → registration-servicecallRegisterWithInvite(ctx, RegisterInput)
- registration-service → postgresqlcallSELECT invite_codes FOR UPDATE
- registration-service → postgresqlcallINSERT users
- registration-service → postgresqlcallUPDATE invite_codes.consumed_at
- postgresql → registration-servicereturnrow | rows_affected