Skip to main content
Version: Latest

3. Overview

3.1 What this guide covers

The complete tenant self-service journey, in order:

Lookup reference data (languages, countries, regions, cities, plans/packages)
→ Submit registration
→ Tenant + subscriber created (unverified)
→ Verify/activate account (OTP)
→ Tenant DB provisioned (background, on first login attempt)
→ Login (JWT issued)
→ Onboarding status check
→ Onboarding survey → answers → recommendation → apply
→ Dashboard access

Steps 1–4 (lookup through activation) are the subject of this guide in detail. Steps 5 onward (provisioning, login, onboarding) are also verified here end-to-end, but the onboarding survey/ recommendation/apply mechanics themselves are documented in full in Business Onboarding & Smart Configuration — this guide cross-references that content rather than repeating it.

3.2 Why this guide exists

Production tenant self-registration was failing with:

Shared location reference-data validation is not implemented in this codebase.

This happened for every real signup attempt that reached the location-validation step of registration (i.e. every signup — Country/Region/City are required fields). The failure was caused by a dependency injection registration defect in Shumoul.Framework.MultiTenancy.Api, not by a data or contract problem — production's own country/region/city dropdowns were already working correctly. The fix, verification, and full journey re-validation are documented across this guide; see Chapter 6 for the root cause.

3.3 Repos and packages involved

RepoRole
Shumoul.Saas.MultiTenancyApiHosts TenantService, RegisterNewTenantRequestValidator, ISharedLocationService, the onboarding engine, and the public TenantRegistrationController/TenantsController/OnboardingController — packaged as Shumoul.Framework.MultiTenancy.Api
Shumoul.Saas.ApiHosts the actual running process (Shumoul.Api) — consumes the MultiTenancyApi package, provides the real ISharedLocationService implementation, RegistrationReferenceService (public lookup APIs), TokenService (login + inline tenant DB provisioning), and the internal onboarding-apply bridge endpoint

Both the public-facing signup/login/onboarding endpoints and the internal service-to-service bridge endpoints are hosted in the same Shumoul.Api process — there is no separate gateway or second deployable for the internal bridge. See Chapter 12.