Minimal profile
Required records are an internal learner ID, tenant or installation, lifecycle state, and timestamps. Display name and accessibility preferences are optional.
Learner data
Project 42 uses account-backed learning records so approved learners can continue across browsers and devices. This page explains the controls and protections around those records.
Service, licensing, and AI transparency →Available today
This deployment has not configured its account service, so course participation and durable progress are unavailable.
Approved learners can download a portable JSON backup or authoritative CSV transcript and manage the account record from My progress.
Identity
Accounts use OpenID Connect Authorization Code with PKCE through the account API. Learn receives only an opaque HttpOnly session cookie and never stores provider tokens. Project 42 binds the provider's stable issuer and subject to an internal learner ID. Changing an email cannot create or merge accounts.
Required records are an internal learner ID, tenant or installation, lifecycle state, and timestamps. Display name and accessibility preferences are optional.
Every command and query must name its tenant or installation and is denied by default outside that boundary.
The hosted profile uses Sites-managed D1. The supported self-host reference uses PostgreSQL under the same contract tests.
Account lifecycle
Deleted is terminal. Recovery cannot use an email address to replace, merge, or guess an identity.
Consent and choice
Every decision records its purpose, policy version, choice, and time. Optional uses cannot be bundled into the learning service.
| Purpose | Required | What it does | If withdrawn |
|---|---|---|---|
| Learning Record | Yes | Store and maintain a durable learning record tied to your account. | The learning record is required for account-backed progress. Withdrawing this consent will delete your account and learning data. |
| Product Improvement | No | Use minimized, non-transcript events to improve the learning experience. | Stops future optional product-improvement events. |
| Learning Reminders | No | Send learner-requested progress and review reminders. | Stops future reminders without deleting the learning record. |
Retention and recovery
Active learning records remain while the account is active. Inactive account records expire after two years; diagnostics after 30 days; audit detail after one year; and deletion receipts after 90 days.
A confirmed request can be cancelled inside this window.
Adapters must return verified receipts before the account is deleted.
Every restore replays the deletion ledger before serving records.
Initial recovery point and recovery time targets, tested every 90 days.
Export and deletion
Authorization
Hiding a button is never enough. Every server operation checks the actor, tenant, role, and requested record.
Only the authenticated learner's own record in the current tenant.
6 explicit permissionsRead-only minimized summary for an active support case in the assigned tenant.
1 explicit permissionsCurriculum content only; no learner-data access.
1 explicit permissionsExplicit privileged role, current tenant only, with immutable audit events.
5 explicit permissionsNamed service operation in one tenant with auditable execution context.
2 explicit permissionsOpen contract
The machine-readable endpoint is generated from the same validated platform contract as this page.