Datenschutzerklärung · Privacy Policy
Version 2.0.0 — Juli 2026. Die deutsche Fassung ist rechtlich verbindlich; die englische Fassung ist eine Zweckübersetzung.
1. Verantwortlicher · Controller
Verantwortlich im Sinne der DSGVO: FitnessCentral (siehe Impressum unter /impressum). Datenschutzbeauftragter: dpo@fitnesscentral.amtho.org. Aufsichtsbehörde: BfDI (DE) bzw. ICO (UK).
2. Datenkategorien · Verarbeitete Datenkategorien
- Kontodaten: E-Mail, Anzeigename, Geburtstag, Geschlecht (optional), Zeitzone
- Trainingsdaten: Workouts, Sätze, Wiederholungen, Gewichte (Hevy, Concept2, manuell erfasst)
- Biometrische Daten (Art. 9): Herzfrequenz, HRV, Schlaf, Schritte, SpO2, Stress, Body Battery, Blutdruck, Blutzucker, Atemfrequenz, Hauttemperatur, Gewicht, Körperzusammensetzung (via Health Connect, Zepp OS)
- Verantwortlich im Sinne der DSGVO: FitnessCentral (siehe Impressum unter /impressum). Datenschutzbeauftragter: dpo@fitnesscentral.amtho.org. Aufsichtsbehörde: BfDI (DE) bzw. ICO (UK). Hinweis Art. 8: FitnessCentral ist eine reine Erwachsenen-Plattform (18+); eine Nutzung unter 18 ist nicht erlaubt (Registrierung wird abgelehnt).
- Gesundheitsthemen (Art. 9, verschlüsselt): Zyklus, Medikation, Supplemente, Verletzungen, Symptome (verschlüsselt im Beobachtungsledger)
- Geräte-IDs: device-id für Sync-Dedup. Es werden keine Push-Token erhoben (FCM entfernt, siehe Versionshistorie).
3. Rechtsgrundlagen · Legal bases
- Art. 6 Abs. 1 lit. b DSGVO (Vertrag): Speichern Deiner Trainings- und Biometriedaten zur Bereitstellung der FitnessCentral-Analysefunktionen.
- Art. 6 Abs. 1 lit. a + Art. 9 Abs. 2 lit. a DSGVO (ausdrückliche Einwilligung): Verarbeitung aller Gesundheitsdaten (Art. 9). Pflicht-Consent für die Kernfunktion der App; Widerruf löst eine 30-tägige Grace-Period aus (siehe §12 Einwilligungen).
- Art. 6 Abs. 1 lit. a DSGVO (Einwilligung): Optional Analytics (plattform-intern, EU-only) und Marketing — jeweils default AUS.
- Art. 6 Abs. 1 lit. f + Art. 89 DSGVO (berechtigtes Interesse + Forschungsvorbehalt): Anonymisierte k-anonyme Aggregate (Kohorte ≥10) für Produktentwicklung und Populationsvergleich. LIA: docs/compliance/lia-product-dev.md.
4. Empfänger · Recipients
- Hosting: Hetzner Online GmbH (DE) — Server in Deutschland
- RevenueCat Inc. (USA) — Abonnement-Verwaltung. DPF + SCC. Siehe §5.
- Plattform-Analytics (EU-only) — Trainings- und Gesundheitsmetriken (Erholung, Trainingsbelastung, HR-Zonen). Keine Drittländerübertragung.
- Apple App Store / Google Play Store — Zahlungsabwicklung
- Externe Datenquellen (Hevy, Concept2, Zepp) — Datenfluss zu uns, nicht zu Dritten
5. Drittländerübertragung · Third-country transfers
RevenueCat verarbeitet Daten in den USA. Rechtsgrundlage: EU-US Data Privacy Framework (Art. 45 DSGVO) + ergänzend Standard Contractual Clauses 2021/914 (Art. 46 Abs. 2 lit. c DSGVO). Transfer Impact Assessment: docs/compliance/tia-us.md. Zusätzliche Maßnahmen: AES-256-GCM Verschlüsselung at-rest + in-transit, minimierte Datenpunkte (keine Roh-Gesundheitswerte an RevenueCat).
6. Speicherdauer · Aufbewahrungsfristen
Die Aufbewahrungsfristen werden code-seitig durch einen stündlichen Retention-Sweep (retention-worker.ts) durchgesetzt (Art. 5 Abs. 1 lit. e DSGVO — Speicherbegrenzung):
- Rohdaten (raw_source_records): werden im unveränderlichen Beobachtungsledger aufbewahrt. Hart gelöscht nur bei Account-Löschung via ON DELETE CASCADE.
- Normierte Gesundheits- und Trainingsbeobachtungen: Aufbewahrung nach Ledger-Richtlinie
- analytics_cache: 30 Tage
- webhook_events: 30 Tage
- rate_limit_events (inkl. IP): 7 Tage
- audit_log (App-Audit): 365 Tage
- admin_audit_log (Operator-Aktionen): 3 Jahre
- consent_records: bis 3 Jahre nach Widerruf
- sessions: bis Ablauf (30 Tage)
- Anonymisierte Aggregate: unbegrenzt (keine Personenbeziehbarkeit, Erwägungsgrund 26)
- Account-Löschung (Art. 17): 30-Tage Grace-Period, danach hart gelöscht; deletion_evidence verbleibt als Art. 30-Nachweis.
7. Betroffenenrechte · Your rights (Art. 15-22 GDPR)
- Art. 15 Auskunft: /dashboard/privacy/export
- Art. 16 Berichtigung: Profil-Einstellungen
- Art. 17 Löschung: /dashboard/privacy/delete
- Art. 18 Einschränkung: Plugin-Deaktivierung
- Art. 20 Datenübertragbarkeit: JSON-Export (maschinenlesbar)
- Art. 21 Widerspruch: Einwilligungs-Verwaltung unter /settings
- Art. 22 Automatisierte Entscheidungen: nicht zutreffend
8. Widerrufsrecht · Consent withdrawal (Art. 7 Abs. 3 GDPR)
Optionale Consents (Analytics, Marketing) kannst Du jederzeit unter /settings mit einem Tap widerrufen — genauso leicht wie erteilt; die Verarbeitung stoppt sofort. Pflicht-Consents (Terms, Privacy, Health Data Processing) lösen beim Widerruf eine 30-tägige Grace-Period aus (siehe §12 Einwilligungen). Die endgültige Beendigung aller Datenverarbeitung erfolgt durch Account-Löschung (Art. 17).
9. Beschwerderecht · Right to lodge a complaint
Du hast das Recht, Dich bei der zuständigen Aufsichtsbehörde zu beschweren: Deutschland — BfDI (bfdi.bund.de); UK — ICO (ico.org.uk).
10. Sicherheit · Sicherheit (Art. 32 DSGVO)
- AES-256-GCM-Verschlüsselung für sensible Beobachtungsledger-Payloads (Art. 9 Daten)
- scrypt-Passwort-Hashing (OWASP-empfohlen)
- TLS 1.3 (Caddy, auto-HTTPS, HSTS max-age=31536000)
- RBAC mit 5 Rollen (user, premium, support, admin, superadmin)
- Audit-Log für alle administrativen Mutationen + Lesezugriffe
- Gestaffelte Rate-Limits + Circuit Breaker (Auth, API, Sync)
- Datenklassen-Schlüsseltrennung (FC_KEY_CREDENTIALS, FC_KEY_HEALTH, FC_KEY_PLATFORM)
11. Forschungsvorbehalt · Forschungsvorbehalt (Art. 89 DSGVO)
Nach Account-Löschung werden Deine personenbezogenen Rohdaten unwiderruflich gelöscht. Vor der Löschung legt der anonymization-worker aggregierte Metriken (avg, p50, p95, n_samples) in der Tabelle aggregated_analytics ab, verschlüsselt nach Kohorte (age_band, sex, region) — ohne user_id. Diese Aggregate werden nur gespeichert wenn die Kohorte ≥ 10 andere Nutzer umfasst (k-Anonymität, Recital 26). Rechtsgrundlage: Art. 6 Abs. 1 lit. f + Art. 89 DSGVO. LIA: docs/compliance/lia-product-dev.md.
12. Einwilligungen · Consent lifecycle
- Bei der Registrierung werden drei Pflicht-Einwilligungen aktiv eingeholt (Opt-in, Art. 4 Nr. 11): AGB (terms), Datenschutz (privacy) und Gesundheitsdatenverarbeitung (health_data_processing). Ohne aktives Setzen dieser drei ist keine Registrierung möglich (EuGH C-673/17 „Planet49" — keine vorangekreuzten Boxen, keine automatische Setzung).
- Zwei optionale Einwilligungen — Analytics (plattform-intern, EU-only) und Marketing — sind standardmäßig AUS (Art. 7 Abs. 2: Schweigen ≠ Einwilligung).
- Widerruf einer optionalen Einwilligung stoppt die Verarbeitung sofort. Widerruf einer Pflicht-Einwilligung löst eine 30-tägige Grace-Period aus (CONSENT_GRACE_DAYS): währenddessen behältst Du Lesezugriff (Dashboard, Export, Account-Löschung), es findet jedoch keine neue Verarbeitung statt (kein Biometrie-Ingest, keine Analytics, kein Plugin-Sync). Rechtsgrundlagen: Art. 7 Abs. 3 (Widerruf ohne unverhältnismäßigen Aufwand) + Art. 6 Abs. 1 lit. b (Vertragserfüllung während der Frist). Nach Ablauf wird der Account bis zur erneuten Einwilligung gesperrt. 7 Tage vor Ablauf erhältst Du eine Erinnerungs-E-Mail.
- Nach einer material_change-Version dieser Richtlinie (privacy_policy_versions) wirst Du beim nächsten Login zur erneuten Einwilligung aufgefordert (Re-Consent). Altnutzer ohne Consent-Nachweis werden ebenfalls aufgefordert (Art. 7 Abs. 1 Nachweispflicht).
13. Protokollierung · Audit logging
Wir protokollieren sicherheitsrelevante und administrative Ereignisse in drei getrennten Protokollen:
- admin_audit_log (3 Jahre, Art. 5 Abs. 1 lit. e): jede administrative Mutation — Bann/Entbann, Rollenänderung, Plugin verbinden/trennen, Kill-Switch, Export, Consent-Erteilung/-Widerruf, An-/Abmeldung. Felder je Eintrag: Akteur (userId, Rolle, IP, User-Agent), Zeitstempel, Aktion, Ziel (Typ + ID), Vorher-/Nachher-Stand (JSON), Korrelations-ID.
- audit_log (365 Tage, Legacy-App-Audit): technische App-Ereignisse.
- security_events (operational): Sicherheitsereignisse wie Rate-Limit-Blocks, fehlerhafte Webhook-Signaturen, Brute-Force-Erkennung.
In diesen Protokollen enthaltene IP-Adressen sind personenbezogene Daten und unterliegen denselben Aufbewahrungsfristen (rate_limit_events 7 Tage, admin_audit_log 3 Jahre).
14. Versionshistorie · Versionshistorie
- v2.2.0 (Juli 2026): Abschnitte „Einwilligungen" (Consent-Lifecycle, 30-Tage-Grace) und „Protokollierung" (admin_audit_log, 3 Jahre) ergänzt. FCM-Bezug in §2 entfernt. Aufbewahrungsfristen korrigiert (analytics_cache 30d, audit_log 365d, admin_audit_log 3a, rate_limit_events 7d).
- v2.1.0 (Juli 2026): Firebase Analytics + FCM vollständig entfernt. FitnessCentral ist jetzt eine EU-only Plattform (RevenueCat ist die einzige verbleibende US-Drittländerübertragung). Analytics-Consent-Purpose verbleibt als Platzhalter für plattform-interne Analysefunktionen (EU-only).
- v2.0.0 (Juli 2026, material_change=true): Vollständiger Neuaufbau nach DSGVO-Audit. Drittländerübertragung (Firebase, RevenueCat) korrekt deklariert. Analytics-Consent-Gate eingeführt. Art. 89 Forschungsvorbehalt + LIA ergänzt. Recital 26 k≥10 Anonymisierung. AGB (/terms) und Impressum (/impressum) ergänzt. Triggert Re-Consent für alle Altnutzer.
- v1.0 (Juni 2025): Erste Version — sachlich fehlerhaft ("kein Drittländertransfer"). Archiviert.
Bindung an privacy_policy_versions-Tabelle: jede material_change=true-Version erzwingt eine erneute Einwilligung.
Kontakt: dpo@fitnesscentral.amtho.org · Impressum: /impressum · AGB: /terms