Users sign in with a Bridge account (username, organisation and password) through the shared account library. Only one account per device is allowed and there is no self sign-up or forgot-password.
FactsheetOnboarding & setup
Who uses it
CadreUnit In-Charge / FMT L1
How you get here
Opened automatically by the splash when no Bridge account exists on the device; re-opened when the session expires.
Blank shows "Username cannot be left blank". Lower-cased and trimmed. Accepted as login@@tenant, email@@tenant, or a plain email (then @@<tenantName> is added). An email must match [a-zA-Z0-9._]+@[a-z]+\.+[a-z]+.
Typed
Organisation
text
If the username has no @@tenant and is not an email
Invalid username shows "User id does not exist."; empty organisation shows "Organization name cannot be left blank". The account name becomes username@@org.
Typed
Password
password with show/hide
Yes
Blank shows "Password cannot be left blank".
Typed
Rules
Conditions from the code, rewritten as plain decision rules.
When
Then
There is no internet
A "no net connection" toast is shown and login does not proceed.
The tenant is the configured federation tenant
The app switches its base URL to the federation server.
The user cancels login
The app closes.
Login succeeds
The account is stored, the crash-reporting user id is set, the session id is fetched into HEADER_SESSION_ID and the app moves on to fetch the user's profile and role.
Login returns no account
All data is cleared and the account check runs again.
The app is online and the stored session id is empty (Home or Settings)
A "Session expired" dialog appears; Login re-authenticates through the Android account manager.
API contracts
Each call opens to its use case, headers, request and response bodies, and errors.