Stand: 2026-04-19
Dieses Dokument enthält ein detailliertes Verzeichnis der personenbezogenen Datenverarbeitungsaktivitäten in Clean Clock auf Basis der aktuellen technischen Implementierung.
1. Kategorien personenbezogener Daten
| Kategorie | Datenfelder | Quelle | Zweck |
|---|---|---|---|
| Nutzerprofile | Vollständiger Name, E-Mail, Rolle, Unternehmens-ID, Auth-UID | Nutzereingabe / Admin-Einladung | Authentifizierung, Zugriffskontrolle und Zuordnung von Aktionen. |
| Zeiteinträge | Start-/Endzeitstempel, Standort-ID, Manager-Notizen, GPS-Koordinaten (sofern aktiviert), Genauigkeit | System (Zeitstempel), Nutzer (Standort), Manager (Notizen) | Erfassung von Arbeitszeiten für Lohnabrechnung und Anwesenheitsnachweis. |
| Pauseneinträge | Start-/Endzeitstempel, verknüpfte Zeiteintrag-ID | Nutzeraktion | Erfassung von Pausendauern innerhalb einer Schicht. |
| GPS-Logs | Breitengrad, Längengrad, Genauigkeit (m), Methode (clock_in/out), Distanz zum Standort, Geräteinformationen, Zeitstempel | Gerätesensor (beim Ein-/Ausstempeln) | Audit-Log zur Überprüfung der Geofence-Compliance. |
| GPS-Override-Anfragen | Anfragezeitpunkt, Begründung, Breitengrad, Längengrad, Genauigkeit, Status, Manager-Kommentar | Nutzer (Anfrage), Manager (Freigabe/Ablehnung) | Bearbeitung von Stempelvorgängen außerhalb des definierten Geofence. |
| GPS-View-Audit | Betrachter-ID, betrachtete Nutzer-ID, GPS-Log-ID, Zeitstempel, Begründung | System (Protokollierung beim Abruf) | Nachvollziehbarkeit des Zugriffs auf sensible Standortdaten. |
| GPS-Aktivierungsnachweis | Akteur-ID (Manager), Aktivierungsstatus, Bestätigungsflag, Zeitstempel | Manager-Aktion | Dokumentation der organisatorischen Entscheidung zur Aktivierung der Standorterfassung. |
| Konto-Löschungsanfragen | E-Mail des Mitarbeiters, Status, Begründung, Manager-Notizen, Bearbeiter-ID, Zeitstempel | Nutzer (Anfrage), Manager (Prüfung) | Bearbeitung von Ansprüchen auf Löschung (Art. 17 DSGVO). |
| Einladungen / Codes | E-Mail, Onboarding-Code-Hash, Ablaufzeitpunkt, Anzahl erneuter Sendungen, Zeitstempel | Manager (Einladung), System (Code) | Sicheres Onboarding neuer Nutzer. |
| Audit-/Sicherheitslogs | IP (flüchtig), Korrelations-IDs, Ereignisnamen, geschwärzte Details | System / Observability-Dienst | Fehlerbehebung, Sicherheitsüberwachung und Problemanalyse. |
2. Datenfluss und Empfänger
- Intern (App): Datenzugriff erfolgt rollenbasiert (RBAC).
- Worker sehen ausschließlich ihre eigenen Daten.
- Manager sehen die Daten ihres Unternehmens.
- Owner (App-Admins) sehen systemweite Logs für den Support.
- Backend-Infrastruktur: Supabase, Inc. (Datenbank, Authentifizierung, Edge Functions). Region: EU-Central (Frankfurt).
- Kommunikation: Resend (Plus Five Five, Inc.) für transaktionale E-Mails (Einladungen).
- Geocoding: OpenStreetMap Foundation (Nominatim) für Adressuche und Koordinatenermittlung.
- Kartenkacheln: OpenStreetMap Foundation (Tileserver) für Kartenansicht in der Manager-Standortprüfung. HTTP-Anfragen übermitteln die IP-Adresse und Kachelkoordinaten.
- Hosting: Hostinger International Ltd. (Web-Frontend und Domain-Infrastruktur).
- Schriftarten: Roboto-Schriftarten werden lokal mit der Anwendung ausgeliefert. Es erfolgen keine Anfragen an externe Schrift-CDNs.
- Geplante Auth-Bereinigung: Die Edge Function
admin_run_scheduled_purgelöscht Supabase-Auth-Benutzer für Unternehmen, die einer geplanten Bereinigung unterliegen, über die Service-Role Admin API (auth.admin.deleteUser). Diese Funktion läuft innerhalb der Supabase-Infrastruktur und überträgt keine Daten an Dritte.
3. Aufbewahrung und Löschung (automatisiert)
Die folgenden Fristen werden durch automatisierte Datenbank-Cleanup-Funktionen durchgesetzt:
| Datenkategorie | Aufbewahrungsfrist | Aktion | SQL-Referenz |
|---|---|---|---|
| GPS-Logs | 30 Tage | Endgültige Löschung | cleanup_gps_logs() |
GPS-Koordinaten (time_entries) | 30 Tage | Redaktion (auf NULL gesetzt); Flag location_captured bleibt erhalten | redact_old_gps_in_time_entries() |
| Mitarbeiter-Einladungen | 30 Tage nach Annahme / Widerruf / Ablauf | Endgültige Löschung | cleanup_expired_invites() |
| Onboarding-Codes | 30 Tage nach Einlösung / Ablauf | Endgültige Löschung | cleanup_onboarding_codes() |
| Löschungsprotokolle | 12 Monate | Endgültige Löschung | cleanup_company_deletion_logs() |
| Konto-Löschungsanfragen (abgeschlossen / abgelehnt / storniert) | 12 Monate nach completed_at (Fallback: reviewed_at) | Endgültige Löschung | cleanup_stale_account_deletion_requests() |
| GPS-Override-Anfragen (verbraucht / abgelehnt) | 90 Tage nach consumed_at bzw. created_at | Endgültige Löschung | cleanup_consumed_gps_overrides() |
| Deaktivierte Unternehmen (DB-Daten) | 30 Tage | Vollständige Bereinigung (alle Unternehmensdaten) | purge_due_companies() → hard_delete_company_data() |
| Auth-Benutzer (geplante Bereinigungen) | 30 Tage (entspricht Unternehmensbereinigung) | Löschung über Supabase Admin API | Edge Function admin_run_scheduled_purge |
| Observability-Logs | Flüchtig (In-Memory-Ringpuffer) | Wird bei Neustart geleert | ObservabilityService |
| Pauseneinträge | Lebenszyklus des übergeordneten Zeiteintrags / Unternehmens (kaskadierende Löschung) | Endgültige Löschung per Kaskade | Kein eigenständiger Timer — Lohnbuchhaltungsdaten, Aufbewahrung folgt der Vertragslaufzeit. |
| GPS-Override-Anfragen (ausstehend / freigegeben, aber noch nicht verbraucht) | Lebenszyklus des übergeordneten Unternehmens (kaskadierende Löschung) | Endgültige Löschung per Kaskade | Kein eigenständiger Timer — bis zur Auflösung oder Unternehmensbereinigung |
4. Technische Datenschutzmaßnahmen
- Row Level Security (RLS): Streng auf Datenbankebene durchgesetzt zur Gewährleistung der Mandantentrennung.
- Privacy-First-Geotagging: Kein Hintergrundtracking. Standorterfassung erfolgt ausschließlich im Moment des Ein-/Ausstempelns.
- GPS-View-Auditing: Jeder Zugriff eines Managers auf detaillierte GPS-Daten wird systemseitig protokolliert.
- Manager-Attestierungs-Gate: Manager müssen die Erfüllung der rechtlichen Voraussetzungen bestätigen, bevor GPS-Funktionen aktiviert werden können.
- Schwärzung: Observability-Logs schwärzen automatisch sensible Zeichenketten und schließen GPS-Rohdaten aus.
