- Shipped
- November 15, 2026 at 6:03 AM UTC
- Author
- Kamo
- Commit
- d18e6c4
- checkPassportId is real (alias per security provider); register/check-alias, check-email **************** + signInUrl + domainJoin), check-org-alias, invite - /register stores **************** hash (normalized); server age rules (AGE_REQUIRED/AGE_NOT_ALLOWED), UNDER_13_NO_CONTACT, SEED_REQUIRED, password policy (WEAK_PASSWORD) + HIBP range check (BREACHED_PASSWORD, fail-open); codes on every refusal; signInUrl on ALREADY_MEMBER/ACCOUNT_LINKED; inviteCode (fixes org + member type, atomic claim); domain join (TEAM_MEMBER created ACTIVE); emailProofToken in place of the *** (put back when nothing made) - *** degraded mode: register/email-proof/send + verify (org's EMAIL_VERIFICATION letter) - org-invites admin list/create/revoke (MANAGE_SIGN_IN_METHODS); org-signin-policy gains **************** + verifiedDomains; org-signin-branding GET/PUT (MANAGE_ORG_BRANDING) -> theme config.json frontDoorLinks/signinNotice - register/brand-preview: public, SafeSiteFetcher now also refuses non-default ports and non-public IP literals on every hop; 5 s, 2 MB, logos + colours only - startOrganization draft (REGORG:<userId>, 7 days) + register/start-organization: builds the /network/create body (pure StartOrganizationPayload) and runs OrganizationController's own **************** handlers as the OTK's session; OTK spent only on success - seedVerify accepts the normalized and the legacy trim-only seed hash - resend-verification takes org (public ref wins over host)
