feat(privacy): public privacy policy page at /privacy with DE + EN content

Convert the English-only v1.4.26 privacy page to a bilingual document
that an Apple US App-Store reviewer and a German DPA inspector can both
read without locale switching. Each numbered section opens with the
German body (visible by default) and ships a collapsible English
translation directly underneath. The H1 and TOC carry both languages.

GDPR / DSGVO content additions on top of the v1.4.26 spine:

- HealthKit data flow disclosed explicitly: HK sample to iOS app to
  POST /api/measurements over HTTPS, with no third-party transit.
- AI off-device transit boundary spelled out: TLS 1.3, off by default,
  never includes raw HealthKit identifiers, per-provider opt-in.
- Consent receipt persistence linked to GET /api/account/consents with
  the 5-year retention window.
- Encryption layer named explicitly: TLS 1.3, HSTS, certificate
  pinning on iOS (Zertifikat-Pinning in the DE body).
- Server location framed as operator in Germany on Hetzner; no
  third-party hosting beyond the AI providers listed in section 4.
- Retention defaults table: rolling 5-year measurement window, 90-day
  audit logs, 14-day server access logs, 30-day failed APNs.
- GDPR Art. 17 deletion route named: Settings -> Daten -> Konto
  loeschen with the User.delete + onDelete: Cascade contract.
- Operator contact via mbombeck@gmail.com with the GDPR subject-line
  convention plus the GitHub-issue fallback channel.
- DSGVO legal-basis citations attached per data category (Art. 6 (1)
  (b) and Art. 9 (2) (a) GDPR).

Bumped POLICY_VERSION to 1.4.40, LAST_UPDATED to 2026-05-18. Static
render kept (force-static, no revalidate) so the legal document does
not depend on JavaScript to display its non-default-locale text to a
reviewer.
This commit is contained in:
Marc-André Bombeck committed 2026-05-21 11:46:50 +02:00
1 parent 6ab3440336
commit c79d91736c
1 file changed
+1646 -710
+1646 -710
View File
File diff suppressed because it is too large. Load diff