Skip to content
Slaap rustigTrust and privacy

Privacyverzoeken geregeld

Gebruikers exporteren of verwijderen zelf hun data. De taak loopt af, ook na een herstart.

Gebruikers exporteren of verwijderen zelf hun data. De taak loopt af, ook na een herstart.

  • 1

    step to safely accept a request

  • 5

    retries per background job

  • 24h

    before a download link expires

Het probleem dat dit oplost

Zonder een gedeelde basis bouwt elk team deze randgevallen opnieuw — en anders.

The export that dies at 30 seconds

An export built into a web request works until the data outgrows the timeout. Then users click the button, wait, and get nothing, with no record that anything was ever tried.

The half-deleted account

Deletion touches memberships, the user row, and your login provider. A crash mid-way leaves a zombie account that's neither active nor gone.

"Where is my data?" tickets

When privacy processing is invisible, every export request becomes a support ticket. Users need states they can watch, not a spinner.

Hoe het werkt

Het mechanisme van begin tot eind, zoals het in de repository is geïmplementeerd.

  1. 1

    The request is accepted safely

    The server confirms who's asking from their login, then saves the request, a visible progress run, and the job trigger together in one transaction. Clicking twice still creates just one request.

  2. 2

    A background job picks it up

    The job is queued right after the save, with a scheduled sweeper as backup, so the page never waits on the job system.

  3. 3

    The work runs with visible progress

    The export gathers the user's account, memberships, organizations, projects, and notes into one file in storage, updating the progress states as it goes.

  4. 4

    Delivery closes the loop

    An email delivers a download link that expires after 24 hours. Deletion removes memberships, anonymizes the user, and deletes the login account, and repeats are handled cleanly.

Interactief voorbeeld

Bekijk het in werking

Deze rondleiding toont het geïmplementeerde backendcontract zonder account, credentials of providercalls.

Interactief voorbeeld

Follow the implemented lifecycle

  1. Request acceptedHuidig
  2. Export preparedWachtend
  3. Artifact storedWachtend
  4. User notifiedWachtend

Stap 1 van 4: Request accepted

Alleen deterministische voorbeelddata. De interactie gebruikt geen account-, provider- of netwerkverbinding.

Kernpunten

Waarom dit belangrijk is

Requests can't get lost

Accepting a request saves the request, its progress tracker, and its job trigger together, in one step.

Jobs retry until done

Export and deletion run in the background with retries, so a crash mid-way strands nothing.

Progress users can watch

Every request shows queued, processing, and completed states instead of a spinner and hope.

Technische garanties

Wat dit wel en niet belooft

Veiligheidsgrens

Achter de schermen houden autorisatie, tenantgrenzen en foutafhandeling één duidelijke eigenaar. Zo blijft de snelle ervaring voor gebruikers gekoppeld aan veilig herstel als het misgaat.

Implementatiebewijs

De grens hierboven is geen claim maar code. Deze bestanden dragen het contract:

  • src/features/privacy/server.ts
  • src/features/privacy/jobs.ts
  • src/registries/data-exports.ts
Vragen

Veelgestelde vragen

Bouw verder op Privacyverzoeken geregeld

De documentatie beschrijft dezelfde contracten die deze pagina demonstreert.