Your login security: read your history, retire sessions, enroll your own 2FA
Settings → Security shows two kinds of cards. Three of them are personal: they act on your own login and nobody else’s. The rest are org-level and are owned by your owner and admins. This guide is the personal loop: read your sign-in history, retire sessions you don’t recognize, and put two-factor authentication (2FA) on your account. If you administer the org itself (session sweeps, per-role 2FA enforcement, support access), the companion guide is Org security posture operations.Your three cards vs the org cards
The Security page is shown to owner, admin, and developer roles. As a developer, your three personal cards work fully while the org cards stay hidden or read-only for you.
Two org settings change which steps below are managed for you:
- If your org enforces single sign-on (SSO), your identity provider is the front door: its MFA policy applies to your sign-in, and your personal 2FA covers any password-based sign-in that remains.
- If an owner requires 2FA for your role, enrollment stops being optional: the org floor overrides your personal toggle, and the dashboard won’t let you drop below it.
Read your login history
The Login History card lists your recent sign-in attempts, successful and failed. Its columns:
The row you are signed in on carries a This device badge. The list shows the ten most recent rows; use Show all for the full set.
Two actions sit in the card header:
- CSV downloads every row as a spreadsheet-ready file (timestamp, IP, device, location, status), not just the ten rows on screen. Hand it to your admin or security contact during an incident.
- Refresh re-fetches immediately. The card otherwise caches for five minutes, which is fine for routine checks but too slow when you are investigating.
Worked incident: an unrecognized session row
Suppose a refresh surfaces a row you don’t recognize: a browser you don’t use, or an address and city that aren’t yours.- Export first. Press CSV so the evidence is preserved outside the page, whatever you click next.
- Revoke the row. Press Revoke on that row and confirm. The device holding that session is signed out immediately, and the revocation cannot be undone.
- If more than one row is foreign, use Revoke all other sessions in the Active Sessions card instead. It signs out everything except the device you are on, in one confirmed step.
- Tell your admin. Your revocation writes a
session.revokedentry to the org audit log with the actor and source IP, so your admin sees what you did and can run the org-side sweep. The admin workflows live in Org security posture operations. - Close the door behind it. Set a new password from Settings → Profile (see Set and rotate your dashboard password), then enroll in 2FA below if you haven’t.
Enroll your own 2FA
The Two-Factor Authentication card puts TOTP on your login with any standard authenticator app (Google Authenticator, Authy, 1Password, or similar).- Press Enable 2FA. The dashboard first asks you to re-prove it’s you with a step-up prompt for your password, then opens the setup dialog.
- Scan the QR code with your authenticator app, or copy the manual secret if you prefer typing it.
- Enter the 6-digit code the app shows and press Verify & Enable. This proves the app and the dashboard share the same secret before 2FA turns on, so a lost QR can never lock you out.
- Save your backup codes. They are shown exactly once, with Copy and Download .txt actions, and the dialog makes you confirm you stored them before it closes. Put them in a password manager or another durable place: each code signs you in once if your device is lost.
- A remaining-codes indicator tells you when your spare keys run low.
- Regenerate backup codes mints a fresh single-use set and invalidates every older code. It requires a current code from your authenticator app.
- Disable 2FA likewise requires a current code, not just your session.
Why disabling 2FA needs a step-up
Behind the dialog, disabling 2FA and regenerating backup codes both start atPOST /api/v1/settings/security/2fa/challenge: you prove a fresh credential (your password or a current TOTP code), the backend returns a single-use challenge token, and the sensitive operation replays it. A stolen session cookie alone therefore cannot silently strip your second factor or burn your backup codes; the attacker would also need one of your live factors at that moment.
The trail is written down. Failed step-up attempts write security.2fa.stepup_failed to the audit log, a completed disable writes security.2fa.disabled and triggers a notification, and regenerating codes writes security.2fa.backup_codes_regenerated. If you ever receive a 2FA-changed notification you didn’t cause, treat it as the incident above.
If your account uses the newer sign-in flow, the card walks you through the same loop: enroll shows the QR code and secret, a 6-digit code activates it, and disabling asks for a current code. Recovery for those accounts uses an emailed code instead of backup codes.
Lost-device routine
If a signed-in device goes missing:- From a device you trust, sign in and open Settings → Security.
- In Active Sessions, press Revoke on the lost device’s row. If you can’t tell which row it is, press Revoke all other sessions: everything except the device you are on is signed out immediately. Revoking needs nothing from the lost device, so a lost phone cannot block you from retiring its session.
- End your current session by signing out. The card retires every session except the one you are on, and sign-out ends that one; together they are your “sign out everywhere.”
- If the lost device also held your authenticator app, sign in with a backup code, then Regenerate backup codes so the lost set stops working.