Problem
Devkit stacks have no mechanism to restrict signups by capacity ceiling or invitation — needed for private-beta and controlled rollout scenarios.
Expected behaviour
- Admins can create single-use invitation tokens tied to an email address.
- Two AND-ed signup gates: hard capacity ceiling (
config.sign.cap) + eligibility (config.sign.up OR valid invite token).
- Local signup carries
?inviteToken= query param; OAuth matches invite by provider email.
- Single-use: invite consumed atomically after successful user creation.
- Admin CRUD (
/api/auth/invitations) + public verify endpoint (/api/auth/invitations/verify/:token); tokens not exposed in admin list.
Problem
Devkit stacks have no mechanism to restrict signups by capacity ceiling or invitation — needed for private-beta and controlled rollout scenarios.
Expected behaviour
config.sign.cap) + eligibility (config.sign.upOR valid invite token).?inviteToken=query param; OAuth matches invite by provider email./api/auth/invitations) + public verify endpoint (/api/auth/invitations/verify/:token); tokens not exposed in admin list.