Privacy notice
Technical description updated 26 September 2026.
Owner review remains required: legal entity, contact details, jurisdiction and effective date must be finalized before this draft becomes the published legal policy.
Practice and optional accounts
You can use a live lab without an account. A signed, HttpOnly browser cookie identifies its owner for two hours and is refreshed when starting a lab. Signing in with GitHub or Google is optional and lets you retain results across devices.
For accounts, we store the provider’s stable identifier, a display name, our account identifier, and hashes of account-session tokens. We do not request a password, automatically merge accounts by email, or retain provider access or refresh tokens. This flow does not request an email address.
Results and notes
Saved results include the incident, outcome, measured timeline and success samples, customer-confirmation result, resolution time, and notes you chose to write. Operational records can include configuration observations, which documentation sections were opened, and captured shell-submission times. These are not a complete shell transcript or a grade of your written explanation.
Do not put production secrets, passwords, or other people’s personal information in a training lab or its notes.
Where data is stored
The web application and account database run on Cloudflare Workers and D1. Lab services run on our infrastructure and receive an opaque owner identifier rather than your provider identity. Operational snapshots and exports use private storage, including Cloudflare R2. GitHub or Google handles its own sign-in and consent screens under its policies.
Retention
- Account profiles and saved result history are retained until you delete the account.
- Your profile photo is removed when you delete your account.
- Account sign-in sessions expire after 30 days and can be revoked by signing out.
- OAuth handshakes expire after ten minutes and can only be used once.
- When you choose Save progress before signing in, the pending result claim expires after 24 hours. Expired temporary records are removed by scheduled cleanup.
- Signed-in result collection retries for up to seven days. Failed syncs can be retried from the profile.
- Anonymous operational records and infrastructure backups are separate from saved account history. The preview’s long-term operational retention policy remains under owner review. Access to an anonymous review still requires its owning cookie.
- Cloudflare recovery backups may retain earlier database versions for up to 30 days.
Sign-out and deletion
Sign-out revokes that account session and clears the account and lab cookies in the browser. An already-running lab retains its existing server-enforced expiry and completion lifecycle.
Profile → Account settings → Delete account removes the account, linked provider identity, account sessions, and saved report bodies and notes from the account database. It requires a recent sign-in. An unlinked record of an already-claimed namespace remains to prevent the same result being claimed again. Deleting an account does not revoke your authorization in the provider’s own settings or immediately erase separate operational backups.
Operator and contact
[OWNER: legal entity name and address]. Contact: [OWNER: confirmed privacy contact]. These operator details and the applicable legal terms remain to be finalized.