Learner data

Your learning data, without fine print.

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

Account-backed learning records

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.

Account-backed records
Not enabled
Policy version
2026-07-27
Hosted collection
Not enabled

Identity

An email address is never your account key.

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.

01

Minimal profile

Required records are an internal learner ID, tenant or installation, lifecycle state, and timestamps. Display name and accessibility preferences are optional.

02

Tenant boundaries

Every command and query must name its tenant or installation and is denied by default outside that boundary.

03

Portable storage

The hosted profile uses Sites-managed D1. The supported self-host reference uses PostgreSQL under the same contract tests.

Account lifecycle

Only explicit transitions are allowed.

Deleted is terminal. Recovery cannot use an email address to replace, merge, or guess an identity.

  1. CreatedMay move to Active, Deletion Requested
  2. ActiveMay move to Suspended, Recovery Pending, Deletion Requested
  3. SuspendedMay move to Active, Recovery Pending, Deletion Requested
  4. Recovery PendingMay move to Active, Suspended, Deletion Requested
  5. Deletion RequestedMay move to Active, Deleted
  6. DeletedTerminal state

Consent and choice

Every decision records its purpose, policy version, choice, and time. Optional uses cannot be bundled into the learning service.

PurposeRequiredWhat it doesIf withdrawn
Learning RecordYesStore 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 ImprovementNoUse minimized, non-transcript events to improve the learning experience.Stops future optional product-improvement events.
Learning RemindersNoSend learner-requested progress and review reminders.Stops future reminders without deleting the learning record.

Retention and recovery

Records have an end date.

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.

7 days

Deletion cancellation

A confirmed request can be cancelled inside this window.

7 days

Active-store deletion

Adapters must return verified receipts before the account is deleted.

35 days

Backup expiry

Every restore replays the deletion ledger before serving records.

24h / 8h

Recovery objective

Initial recovery point and recovery time targets, tested every 90 days.

Export and deletion

Your record must remain movable and erasable.

Export

  • Portable Project 42 JSON and transcript CSV
  • Authentication within the previous 15 minutes
  • A single authenticated download, never a public object URL
  • An audit event without retaining the exported payload

Deletion

  1. Explain scope and offer export.
  2. Require recent authentication and explicit confirmation.
  3. Issue a receipt and allow cancellation.
  4. Verify active-store deletion.
  5. Expire backups and replay deletion after every restore.

Authorization

Visibility is not permission.

Hiding a button is never enough. Every server operation checks the actor, tenant, role, and requested record.

Learner

Only the authenticated learner's own record in the current tenant.

6 explicit permissions

Support

Read-only minimized summary for an active support case in the assigned tenant.

1 explicit permissions

Content Editor

Curriculum content only; no learner-data access.

1 explicit permissions

Administrator

Explicit privileged role, current tenant only, with immutable audit events.

5 explicit permissions

System

Named service operation in one tenant with auditable execution context.

2 explicit permissions

Open contract

Inspect the exact policy applications must follow.

The machine-readable endpoint is generated from the same validated platform contract as this page.

View policy JSON