Operator Console
Cross-tenant onboarding and support. Every action here is audited.
Sign in
Requires a SuperAdmin account with no tenant claim. An account scoped to a customer cannot be used here — the backend refuses it.
Tenant registry
A provisioning row is a tenant whose creation did not finish — its id is spent and it has no admin. It is safe to leave, but it is not a working customer.
Create a tenant
Mints a tenant id, registers it, and creates the first admin. Cognito emails them a temporary password; they set a real one at first sign-in. The id can never be reissued, so a failed run leaves a spent id behind by design.
Adopt an existing tenant
For a tenant id issued before this registry existed. Records it and nothing else — no Cognito account is created or changed. It can only ADD a row it can prove is absent, so it can never rename or re-point a tenant that is already registered.
Seed a tenant
1 · Credentials (facility vocabulary)
A credential is a facility an employee is cleared to work at, not a qualification. Staff import validates every value against this list and rejects unknown ones, so this must exist before you import staff. Adding is idempotent.
2 · Staff import
employeeType and home hospital apply to every row, so run
one import per (type, hospital) pair. Matching is by first + last name + type, so
re-importing updates rather than duplicating.
Tenant health
The onboarding runbook's own phase order, evaluated rather than remembered. Every step is a read; nothing on this screen changes anything. Ready means every step passed — a warning is something to look at, not something to hand over.