Encrypted at rest. JustOnce holds the keys
Encrypted at rest with AES-256-GCM — memories under a key for their space, documents under a key for your account. JustOnce holds the keys, so it isn’t end-to-end. It is hosted in Australia, who can read a memory is decided by who you shared it with, and internal access is role-restricted and audit-logged.
JustOnce never uses your memories to train AI models, and our AI provider, Anthropic, doesn’t train on them either.
How your data stays safe.
From the moment it leaves your assistant to the key that unlocks it.
In transit
Everything you send to justonce.ai travels over TLS 1.2 or higher — from the app, from your email-in address, and from every assistant you connect over MCP.
Encrypted at rest
The title, summary and body of a memory are encrypted with AES-256-GCM — an authenticated cipher — before they are written to storage, and documents you upload are encrypted the same way. A limited number of older records created before we introduced this encryption are still being migrated to it; until then they are protected by our cloud provider’s storage-level encryption.
Keys issued for you
Your data is encrypted under a Data Encryption Key issued for you, and each shared space gets its own, so one key never covers everybody’s data. We generate and manage those keys on your behalf — you do not hold them.
Wrapped keys (KEK/DEK)
Every Data Encryption Key is itself encrypted by a master Key Encryption Key that we hold and manage, kept out of the database entirely. It can be rotated without re-encrypting your memories.
Access control
Membership of a space decides who can read the memories in it — that is the boundary, enforced on every request. Internal access is role-restricted and logged in an append-only audit trail.
A summary is not a record. justonce.ai keeps your words verbatim — and encrypts them at rest with AES-256-GCM under keys issued for you and for each space you share, on Australian infrastructure.
Defence in depth.
The encryption details, in one place.
AES-256-GCM encryption
Per-user and per-space keys
Key hierarchy (KEK/DEK)
Append-only audit logs
Encrypted document storage
Stored in Australia (Azure Australia East)
Sign-in secured by Auth0.
We don't write our own login. Identity for justonce.ai runs on Auth0 — now part of Okta — in their Australian region, so the record of who you are stays in the same country as your memories. These are the settings we actually run.
No password to steal
You sign in with Google, with Microsoft, or with a one-time code sent to your email. justonce.ai never asks you to set a password, and there is no password of yours for us to store or lose.
Two-step sign-in
Turn it on in Settings and signing in on a new device or browser, or after a few days away, needs a second step: an authenticator app or a WebAuthn security key — or, once one of those is set up, Face ID, Touch ID, Windows Hello or a fingerprint on your phone or computer — with a single-use recovery code. A device you choose to remember skips it for 30 days. SMS is deliberately switched off — it is the factor most exposed to SIM-swap.
Brute-force lockout
Five failed attempts against the same identifier and IP block further tries and notify the account owner.
Rotating refresh tokens
In the web app your session is held by a refresh token that rotates on every use, expires after 14 days, and dies after a day of inactivity.
Signed, audience-bound tokens
The app is an OIDC-conformant public client using PKCE. Access tokens are RS256-signed and bound to the justonce.ai API audience, so a sign-in token minted for any other service is refused.
Checking Auth0 for yourself
Trusting us with your memories means trusting our identity provider too, so here is where to audit them directly rather than take our word for it. Okta publishes their certifications, their live availability, and an open bug bounty for Auth0.
Secured by Aikido.
Our code, our dependencies and our cloud are scanned continuously by Aikido Security. Findings arrive with a severity and a fix deadline, and go through the same branch, review and staging pipeline as every other change we ship.
Our own code
Static analysis on every push, looking for injection, XSS and unsafe handling in the code we write.
Open-source dependencies
Every package we depend on is watched for newly disclosed CVEs and malicious releases, with a fix deadline attached to each finding.
Leaked secrets
Commits and history are scanned for credentials that should never have been checked in.
Cloud configuration
Our Azure subscription is checked against misconfiguration — public exposure, weak access restrictions, drift from what we intended.
Our public surface
justonce.ai is probed from the outside the way an attacker sees it, including the headers the site actually serves.
Doing a security review?
We can send you our security report — the current posture of our code and cloud, generated from Aikido rather than written by our marketing team. Ask and we'll send it.
How we handle your data.
Facts about where it lives and how it travels, not compliance badges.
Give your agent a memory
Free: 20 memories and 10 document pages a month, no card. Connecting takes a minute at a computer.
Works with Claude, ChatGPT (Business, Enterprise, Edu), Cursor, VS Code, Gemini CLI and Codex

