Documentation Index
Fetch the complete documentation index at: https://docs.mnemom.ai/llms.txt
Use this file to discover all available pages before exploring further.
Authentication
Mnemom supports four authentication paths — passkeys, password + MFA, SSO, and API keys — each mapped to the operations it is meant for. Sensitive actions are gated by AAL2 step-up: a fresh user-verification gesture within a short window, on top of the current session. This page is the operator-level reference; for the end-user passkey walkthrough, see Passkeys.The auth overhaul (passkey + AAL2) is the current system. Earlier docs that describe Bearer-JWT-only or API-key-only access on all endpoints are superseded by the tiered model below.
Authentication methods at a glance
| Method | Used for | AAL | Where to enroll |
|---|---|---|---|
| Passkey (WebAuthn / FIDO2) | Dashboard sign-in, SDK-issued sessions | AAL2 if the gesture is fresh | Settings → Account → Passkeys |
| Password + MFA (TOTP) | Dashboard sign-in, recovery path from lost passkeys | AAL2 when MFA is completed in the current flow | Settings → Security |
| SSO (Okta, Entra ID, Google Workspace) | Org-enforced dashboard sign-in | AAL2 when the IdP’s acr claim asserts step-up | Org Settings → SSO |
| API key | Server-to-server API calls | N/A — bound to the org, scoped by role | Settings → API Keys or Org Settings → API Keys |
mnemom.ai, never presented to a wrong origin) and not a shared secret (Mnemom stores only the public half). They are the recommended default.
Passkey enrollment
A passkey is a public/private keypair created by your device on enrollment, unlocked only by a biometric or PIN, and usable only atmnemom.ai. End-user steps:
- Sign in to the dashboard the normal way (password + MFA, or SSO).
- Open Settings → Account → Passkeys and click Add a passkey.
- Give it a friendly name (“MacBook Touch ID”, “YubiKey — office”).
- Confirm the device’s biometric / PIN.
- The passkey is live immediately; subsequent sign-ins can use it.
AAL2 step-up
Sensitive actions — removing a passkey, rotating an API key, changing SSO enforcement, deleting an organization — require Authenticator Assurance Level 2 (AAL2): a user-verification gesture completed in the current flow, not reused from an older session. The step-up is presented inline: when an AAL2-protected action is attempted and the current session has not satisfied AAL2 within the freshness window, the dashboard prompts for a passkey gesture (or a TOTP code for password users, or an IdP re-assertion for SSO users). On success, the action proceeds and the AAL2 claim is stamped on the session until the window expires. Actions that require AAL2 step-up:- Removing a passkey or adding a hardware authenticator
- Creating, rotating, or revoking an API key
- Changing SSO configuration or enforcement
- Inviting or removing an org owner
- Deleting an organization
- Pausing, killing, or resuming an agent via the Containment API
- Deleting your account
Session lifecycle
Dashboard sessions are issued as short-lived Supabase JWTs wrapped in an httpOnly, secure, same-site cookie. Rotation is automatic on the client; revocation is immediate on the server.| Event | Effect |
|---|---|
| Sign-in (any method) | JWT issued with aal claim (aal1 or aal2), session row created in auth_sessions |
| AAL2 step-up | Session aal upgraded, aal2_verified_at stamped |
| Token refresh | Old JWT invalidated, new JWT issued with preserved claims |
| Sign-out | Session row deleted; all JWTs derived from it fail verification |
| Password reset | All sessions for the user invalidated |
| Passkey removal | The specific credential invalidated server-side; other sessions are unaffected |
| Org role change | Affected user’s sessions re-issue with new claims on next refresh |
auth_sessions table. Stolen JWTs are not replayable past revocation.
API keys
API keys authenticate server-to-server calls againstapi.mnemom.ai. They are scoped to an organization and inherit the role of the creator.
Creating an API key
Click Create API key, name it, and pick a scope (Owner, Admin, Member — must not exceed the creator’s role). AAL2 step-up is required.
Using an API key
Rotating an API key
Rotation is create-new-then-revoke-old, not an in-place swap. This gives you a window to roll callers over before the old key dies.- Create the replacement key (AAL2 step-up required).
- Deploy the new key to your services.
- Verify traffic has shifted: the old key’s last-used timestamp should stop advancing.
- Revoke the old key.
Rotating a provider API key bound to an agent
If you are rotating an agent’s provider key (Anthropic / OpenAI / Gemini) — not a Mnemom API key — see Rotating your agent’s API key. The flow preserves the agent’s ID, traces, and reputation.Account recovery
If you lose all your passkeys and cannot complete MFA, use the password recovery path:- On the sign-in page, click Forgot password?.
- Check email for the reset link (single-use, 15-minute TTL).
- Set a new password.
- Complete MFA enrollment or re-auth.
- Sign in.
- Re-enroll a fresh passkey from your new device.
Responsible disclosure
Report suspected auth vulnerabilities via GitHub Security Advisories on the affected repository. Do not file public issues. We acknowledge within 48 hours and aim to provide a fix or mitigation within 7 days.| Component | Repository |
|---|---|
| Mnemom API (auth surface) | github.com/mnemom/mnemom-api |
| Passkey server-side | @simplewebauthn/server |
See also
- Passkeys — End-user enrollment, browser support, troubleshooting
- API reference overview — Base URL, auth headers, rate limits, error codes
- Rotating your agent’s API key — Provider-key rotation for an existing agent
- Security and trust model — Full trust model spanning AAP, AIP, and the gateway
- XFD security architecture — Request-pipeline view of Safe House enforcement