User Account and Web CLI Login
This section covers the operator's personal profile dashboard (/account) and the secure browser-based authorization gateway invoked by tk-ota-push login (/cli/login).
1. Operator Profile Dashboard (/account)
Accessible via the user avatar or directly at /account (src/app/account/page.tsx), this screen aggregates identity details and live platform security indicators:
My Account Page Features
- Identity & Role: Displays user name, email, active tenant organization, and RBAC permission role.
- Personal API Keys: Create and revoke programmatic tokens for CLI usage and CI/CD automation.
- Account Security: Password management and Two-Factor Authentication (2FA) controls.
CLI Browser Authorization Flow
- Developer runs
tk-ota-push loginin their terminal. - Web browser opens to the authorization screen in the Web Console.
- User approves access for the CLI session.
- CLI receives the secure session token and completes sign-in.
Dashboard Indicators
- Role Badge: Visual indicator of the active privilege set (
ROLE_ADMIN,ROLE_RELEASE_DEVELOPER, etc.). - Signing engine status Light: Live readiness state of cryptographic signing engine's cryptographic signing subsystem.
- Active Governance: Reflects whether strict Four-Eyes dual-custody is currently enforced for the tenant.
- Audit Counter: Total number of tamper-evident log records committed under the current tenant ID.
2. Web CLI Authorization Flow (/cli/login)
The tk-ota-push (or shorebird) CLI employs an authorization code flow with PKCE (Proof Key for Code Exchange) to negotiate administrative credentials against the sovereign backend:
My Account Page Features
- Identity & Role: Displays user name, email, active tenant organization, and RBAC permission role.
- Personal API Keys: Create and revoke programmatic tokens for CLI usage and CI/CD automation.
- Account Security: Password management and Two-Factor Authentication (2FA) controls.
CLI Browser Authorization Flow
- Developer runs
tk-ota-push loginin their terminal. - Web browser opens to the authorization screen in the Web Console.
- User approves access for the CLI session.
- CLI receives the secure session token and completes sign-in.
3. Query Parameters Processed by /cli/login
The consent page validates incoming URL parameters:
| Parameter | Purpose | Example |
|---|---|---|
redirect_uri / callback_url | Loopback callback URL hosted by the local CLI process | http://127.0.0.1:45213/callback |
code_challenge | SHA-256 hash of the ephemeral cryptographic secret created by the CLI | E9Melhoa2OwvFrGMTJguCH5... |
state | Random anti-CSRF challenge token | 7b4f8c92a |
device_name | Hostname of the developer workstation requesting access | MacBook-Pro-Dev.local |
4. CLI Authentication Guardrails
- Permitted Roles: Only operators holding
ROLE_ADMINorROLE_RELEASE_DEVELOPERauthorities may consent to CLI sessions. If an auditor or security officer opens the prompt, access is blocked with a privilege separation notice. - Short Lifetime: Authorization codes expire within 120 seconds if not exchanged by the CLI.
- Audit Logging: Every issued CLI credential is logged to the immutable audit database with the machine hostname and client IP.
- Remote Revocation: Tenant administrators can instantly invalidate all active CLI sessions for any user via
/teamsor/account.