Skip to content

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.

Step 1

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.

Step 2

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.

Step 3

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.

Step 4

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.

Step 5

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.

Secured by Aikido SecurityCode, dependencies, secrets & cloud

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.

Hosted in Australia
TLS 1.2+ everywhere
AES-256-GCM at rest
We are not SOC 2 or ISO 27001 certified, and we won't display a badge we haven't earned. Our identity provider holds those certifications, and we run the continuous scanning and the controls described above — if your review needs the detail, ask us for the report.

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