Skip to content

Download My Data

Demo: eb0bb74 (Jun 16, 2026)Prod: a001119 (Jun 16, 2026)

Subject-side self-service web app for data-subject access and data portability requests. Subjects sign in to their HDS account and download a series of ZIP files containing a portable dump of their account — events, streams, accesses, attachments, audit log, time-series, and webhooks.

This app is the HDS-layer implementation of:

  • GDPR Art. 15 — right of access by the data subject
  • GDPR Art. 20 — right to data portability
  • HIPAA §164.524 — individual right of access to PHI
  • Swiss nLPD Art. 25 — right to information / access
  • Swiss nLPD Art. 28 — right to data portability

The matching rows in compliance-matrix cite this tool as the self-service path. Internal SOPs (compliance-internal, private) point operators here first; the operator-mediated open-pryv.io per-user export remains as fallback for partner-routed requests.

Each backup run produces a series of ZIP files (default 100 MB each, configurable). Across the ZIPs:

  • account.json, streams.json, accesses.json, accesses-all.json (deletions + expired), profile_private.json, profile_public.json
  • events-YYYY-MM.json (initial run, monthly chunks) OR events-incremental-<TS>.json (subsequent runs, only events modified-since)
  • audit_logs.json (via the :_audit:* store streams)
  • app_profiles/profile_app_<accessId>.json (per app-type access)
  • accesses-history/<accessId>.json (opt-in)
  • attachments/<eventId>_<fileName> (opt-in)
  • hf-data/<eventId>.json (opt-out, on by default)
  • webhooks.json (opt-out, on by default)
  • sync-state.json (always — portable kv state for incremental re-runs)
  • backup-index.json (last ZIP — cross-ZIP file directory)
  • hds-manifest.json (last ZIP — HDS provenance: dataModelCommit pinned from model.datasafe.dev/version.json, appPortabilityVersion, deploymentUrl, backupCompletedAt, totalBytes)

The ZIP layout matches the upstream pryv-account-backup CLI restore format. Auditors verifying a backup integrity-check against the manifest’s dataModelCommit know exactly which schema version produced the dump.

  • React 19 + Vite + TypeScript strict + Tailwind v4 + hds-style
  • Backup logic from the upstream pryv-account-backup library (pinned to v0.7.0)
  • In-browser ZIP creation via fflate
  • New Relic Browser agent (entities hds-dev-portability / hds-prod-portability)

Single sign-in form: email or username + password. Email→username resolved at runtime via <register>/<email>/uid (mirrors hds-webapp + app-web-user-account).

Service-info URL is environment-aware (no UI exposure): *.hds.ngo hosts → prod (reg.api.datasafe.dev/service/info), else demo (demo.datasafe.dev/reg/service/info). Override via ?serviceInfoUrl= for testing other operators.

SMS-MFA accounts can’t complete sign-in here — the upstream CLI tool is the documented fallback.

Production. Shipped 2026-06-16.