Appearance
Settings
All user-level configuration lives in the Profile Settings modal — implemented in frontend/src/components/ProfileSettingsModal.jsx and reachable from the user-menu avatar in the header. Four tabs.
Profile
profile.* keys in frontend/src/i18n/en.json.
- Operator name — your display name in the workspace.
- Avatar — uploadable image, with a default initials avatar.
- Nickname — used for AI chat addressing and shared permalinks.
- Email — login identity. Changing it triggers a verification mail; the new address only becomes the login after confirmation.
Appearance
appearance.* and a few localization.* keys.
| Setting | Values |
|---|---|
| Color theme | Dark, Light |
| Density | Compact, Comfortable |
| Language | EN, DE, ES, FR, RU, ZH (in-app UI; docs are English-only) |
| Timezone | IANA tz database |
The timezone setting affects every panel that renders timestamps — quotes, news, alerts, timeline. Stored server-side so it follows you across devices.
Security
security.* keys. Covers password and 2FA management.
Change password
Standard flow: current → new → confirm. The form rejects mismatch before submit and surfaces server-side strength validation. Success returns to the form with passwordUpdated confirmation.
Two-factor authentication
2FA uses a TOTP authenticator app (Google Authenticator, 1Password, Authy, etc.). Enabling 2FA:
- Click Enable 2FA.
- Scan the QR code or enter the secret manually.
- Confirm with a 6-digit code from your authenticator.
- Save the recovery codes shown — they're shown once and never again.
Disabling 2FA requires the current password plus a fresh TOTP code. The status badge (security.twoFaEnabled / security.twoFaDisabled) reflects the current state.
For the OSINT-focused threat model around account isolation and session hygiene, see the OSINT operational security guide.
Subscription
subscription.* keys. Powered by Stripe via backend/routes/subscriptions.py and backend/routes/stripe_webhook.py.
- Current plan — name, status, renewal date.
- Usage — feature flags lit for your tier (realtime, OSINT, alerts, export).
- Manage — opens the Stripe customer portal for invoices, payment methods, plan changes, cancellation.
- See all plans — links to the pricing page.
Account deletion
Reachable via Delete account in the user menu. Two-step confirm. Deletion is hard — portfolios, watchlists, alerts, and saved screens are all removed. There's no soft-delete grace period at present.