Set up your platform account and 2FA
Platform-admin accounts are not self-service. Another platform admin must provision yours — there is no /platform/signup route. This mirrors the rule for users (admins create admins, per D78) applied one tier up (D80, D86): the platform tier’s trust model requires a live human to vouch for every account.
Every step below produces an audit entry in platform_audit_log (365-day retention). You will see your own entries listed at /platform/audit-log after your first login.
Procedure
-
Request access. Post in
#novavms-platform-accesstagging the engineering lead. Include: your Novalien email, your expected role (SRE / support / engineer), a short reason ("on-call rotation — Q2 2026"is fine). The lead approves in-thread. -
An existing platform admin provisions the account. They log into
/platform/login, then usePOST /api/v1/platform/platform-users(or the/platform/adminsUI when it ships) with your email and display name. The server generates an initial 16-character random password and stores the bcrypt hash.platform.user_createdis written to the platform audit log.
-
Receive your initial password via 1Password vault. The provisioning admin uploads the password to the shared vault path
Engineering → NovaVMS → platform-admins → <your-email>.initialand sends you the item link in Slack DM. No plaintext passwords in chat. If 1Password is unavailable, the fallback is a Signal message — never email, never Slack body. -
First login. Navigate to
https://novavms.novalien.com/platform/login. Sign in with your email and the initial password. You will be redirected to a forced password-change page (password_reset_required = true).
-
Change your password. Minimum 12 characters, complexity rules same as org users. Store the new password in your own 1Password vault, not the shared one. Delete the initial-password item from the shared vault once you have confirmed sign-in works.
-
Enroll in 2FA (mandatory). Go to
/platform/me/2fa. Scan the TOTP QR with your authenticator (1Password TOTP, Authy, Google Authenticator — not SMS). Enter the 6-digit code to confirm. Save the 8 backup codes to your personal 1Password. 2FA is enforced on every platform login from the moment you enable it.
- Verify cross-org read access. Navigate to
/platform/orgs. You should see the full list of customer orgs (metadata only — name, slug, plan, owner email, status). If the list is empty or returns 403, your account was not granted the platform role correctly — ask the provisioning admin to check. No impersonation is needed for this step, only the platform JWT.
- (Optional) Smoke-test a mint against staging. Mint a 30-minute impersonation token against the
novalien-internal-stagingorg withreason: "onboarding smoke-test". Confirm the red banner appears, confirm your action shows up in both the platform audit log and the staging org’s/admin/audit-log. End the impersonation explicitly when done. This proves the full path works before your first real incident.
Verify
/platform/meshows your email, display name, 2FA enrolled,last_login_atwithin the last hour./platform/audit-logcontains at minimum:platform.login,platform.password_changed,platform.2fa_enabledentries for you./platform/orgsreturns the full customer list without 403.- If you ran step 8, the staging org’s audit log at
/admin/audit-log(accessed via that same mint) shows yourplatform.impersonation_startedentry with a Platform Support badge.
If this didn’t work
- Cannot reach
/platform/login— check VPN/Tailscale (on-prem staff only). Platform console is not geo-restricted in prod but may be allowlisted in staging. 403 PLATFORM_ACCESS_DENIEDafter login — the provisioning admin setenabled = falseor did not commit the insert. Ask them to re-run.- 2FA QR does not scan — try the manual text secret under the QR. If that also fails, your clock is off by more than 90 seconds (check NTP).
See also
- How scoped impersonation works — what you are enrolling to do.
- Audit expectations — what your actions will produce in logs.
- On-call basics — what the rotation expects of you once onboarded.