Skip to content

docs: add an Account Security page - #29

Merged
filipagr merged 1 commit into
mainfrom
filipa/account-security-page
Aug 5, 2026
Merged

docs: add an Account Security page#29
filipagr merged 1 commit into
mainfrom
filipa/account-security-page

Conversation

@filipagr

@filipagr filipagr commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Documents MFA, passkeys and recovery codes, which are live in the product but appeared nowhere in customer-facing docs until now.

Why a new page rather than extending an existing one

security/authentication.mdx is entirely about signing API requests with SigV4, despite the generic title. Mixing account login into it would blur two different things: who you are when you log into the dashboard, versus how a request is signed. So this adds a separate page and puts a disambiguation note at the top of authentication.mdx pointing here, since the title does invite the question.

Every detail verified against the console source

This is the first public documentation of MFA, so nothing here is inferred:

Claim Source
Three factor types, and no SMS or email option The MfaEnrollment union in shared/src/api/me.ts: 'authenticator' | 'webauthn-roaming' | 'webauthn-platform'. No SMS/email member exists.
Dashboard labels "Authenticator app (OTP)", "Security key", "Device biometrics" formatEnrollmentType in MfaSettings.tsx
20 passkeys per account PASSKEY_PER_USER_LIMIT = 20
Four actions need step-up re-auth The routes using require-mfa middleware: delete-mfa-enrollment, regenerate-recovery-code, delete-passkey, disable-mfa
Settings layout, password-change flow SettingsPage.tsx
Mandatory email verification emailVerified on MeResponse, plus the existing dashboard walkthrough

Framing

Written as security posture rather than a feature list. The deliberate exclusion of SMS and email codes is stated as the strength it is (SIM-swap and mailbox-compromise resistance), and step-up re-authentication is called out because it means someone with a hijacked open session still cannot strip the account's protections.

Also in this PR

  • app/overview.mdx "Signing in" gets a pointer here.
  • authentication.mdx gets the disambiguation note.
  • Mirrored into llms.txt and llms-full.txt.
  • No em dashes.

Independence

Deliberately contains no link to the Compliance page from #28, so this builds standalone on main and the two can merge in either order. Once both land, the "Related" sections are worth cross-linking.

Whichever of this, #27 and #28 merges later will hit a trivial adjacent-line conflict in the sidebars.js Security block and the mirrors.

Verification

  • npm run build succeeds on main (onBrokenLinks: "throw")
  • Rendered in-browser: first in the Security group, TOC populated, tables render

🤖 Generated with Claude Code

MFA, passkeys and recovery codes were live in the product but documented
nowhere in customer-facing docs. security/authentication.mdx is entirely about
signing API requests with SigV4 despite its generic title, so a reader looking
for account login found nothing.

New security/security/account-security.mdx covers sign-in methods, two-factor
enrolment, passkeys, recovery codes, step-up re-authentication, and password
changes.

Every detail verified against the console source rather than inferred:

- Factor types from the MfaEnrollment union in shared/src/api/me.ts
  ('authenticator' | 'webauthn-roaming' | 'webauthn-platform'), with the
  dashboard labels taken from formatEnrollmentType in MfaSettings.tsx
  ("Authenticator app (OTP)", "Security key", "Device biometrics").
- No SMS or email factor exists in that union, confirming they are not offered.
- PASSKEY_PER_USER_LIMIT = 20.
- The four step-up-gated routes: delete-mfa-enrollment,
  regenerate-recovery-code, delete-passkey, disable-mfa, all via the
  require-mfa middleware.
- Settings section names and the password-change flow from SettingsPage.tsx.

Also: a disambiguation note at the top of authentication.mdx pointing account
questions here, and a pointer from the dashboard walkthrough's "Signing in"
section. No em dashes, per house style.

Kept free of links to the Compliance page (PR #28) so this builds standalone
on main.
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
filone-docs Ready Ready Preview Aug 5, 2026 6:27pm

Request Review

@filipagr
filipagr merged commit 90ed592 into main Aug 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant