User Registration / Signup + Organization Creation
Creates a Firebase user, organization, admin membership, optional trial credits, and returns a sign-in token.
Sequence
sequenceDiagram autonumber participant Web as Web client participant API as Hono API participant Auth as auth.service participant FB as Firebase Admin participant UserRepo as user.repo participant OrgRepo as organization.repo participant Credits as credit.service participant Mongo as MongoDB Web->>API: POST /v1/auth/signup API->>Auth: signup(input) Auth->>UserRepo: findUserByEmail UserRepo->>Mongo: query User Auth->>FB: createEmailUser Auth->>OrgRepo: createOrganization (slug retry) OrgRepo->>Mongo: insert Organization Auth->>UserRepo: createUser (ADMIN) UserRepo->>Mongo: insert User Auth->>OrgRepo: updateOrganization createdBy Auth->>Credits: grantTrialCredits (best-effort) Credits->>Mongo: lot + ledger (if enabled) Auth->>FB: setCustomClaims Auth->>FB: createCustomToken Auth-->>API: user, organization, token API-->>Web: 201 JSON
Steps
- Client submits signup (email/password or Google) with workspace name.
- API rejects duplicate email and creates Firebase user (email path).
- Organization is created with unique slug; founder user is stored as admin.
- Trial credits may be granted; Firebase custom claims and custom token are issued.
- Client exchanges the token for an ID token for authenticated API calls.