Zum Inhalt springen
Clean Clock
Zurück zur Website
Startseite Rechtliches Datenverarbeitungsverzeichnis
Technisches Referenzdokument

Datenverarbeitungsverzeichnis

Stand: 2026-07-15 Technisch
Dieses Dokument ist ein technisches Referenzdokument nach Art. 30 DSGVO (Verzeichnis von Verarbeitungstätigkeiten) und richtet sich an Datenschutzbeauftragte, Aufsichtsbehörden und technisch versierte Verantwortliche. Es beschreibt die Verarbeitungstätigkeiten aus Sicht des Auftragsverarbeiters Benyamin Jafari / Clean Clock.

§1 Datenkategorien und Datenbankfelder

1.1 Benutzer- und Authentifizierungsdaten

Feld/TabelleTypBeschreibungFrist
auth.users.idUUIDEindeutige Benutzer-ID (Supabase Auth)Vertragsende + 12 Monate
auth.users.emailtextE-Mail-Adresse (Anmeldung)Vertragsende + 12 Monate
auth.users.encrypted_passwordtextbcrypt-Hash des PasswortsVertragsende + 12 Monate
auth.sessions.*TabelleAktive Sitzungen, Refresh-TokensSession-Ablauf (JWT: 1h / Refresh: 30d)
public.profiles.idUUIDProfil-ID (referenziert auth.users)Vertragsende
public.profiles.full_nametextVollständiger Name des NutzersVertragsende + 12 Monate (Löschantrag)
public.profiles.roleenumRolle: admin | employeeVertragsende
public.profiles.company_idUUIDZugehörige Unternehmens-IDVertragsende

1.2 Zeiterfassungsdaten

Feld/TabelleTypBeschreibungFrist
public.time_entries.idUUIDEindeutige ID des ZeiteintragsGesetzliche Aufbewahrungsfrist (6–10 J.)
public.time_entries.user_idUUID (FK)Referenz auf Benutzer-IDWie Zeiteintrag
public.time_entries.clock_intimestamptzEinstempelzeitpunkt (UTC)Gesetzliche Aufbewahrungsfrist
public.time_entries.clock_outtimestamptzAusstempelzeitpunkt (UTC), NULL wenn aktivGesetzliche Aufbewahrungsfrist
public.time_entries.gps_latnumeric(9,6)Breitengrad bei Einstempelung (optional)30 Tage → automatisch NULL
public.time_entries.gps_lngnumeric(9,6)Längengrad bei Einstempelung (optional)30 Tage → automatisch NULL
public.time_entries.gps_accuracynumericGPS-Genauigkeit in Metern30 Tage → automatisch NULL
public.time_entries.notestextOptionaler Kommentar des MitarbeitersGesetzliche Aufbewahrungsfrist

1.3 Pausenzeiten

Feld/TabelleTypBeschreibungFrist
public.breaks.idUUIDPausen-IDKaskadierende Löschung mit Zeiteintrag
public.breaks.time_entry_idUUID (FK)Referenz auf übergeordneten ZeiteintragKaskadierende Löschung
public.breaks.break_starttimestamptzPausenbeginnKaskadierende Löschung
public.breaks.break_endtimestamptzPausenende (NULL wenn aktiv)Kaskadierende Löschung

1.4 GPS-Override-Anfragen

Feld/TabelleTypBeschreibungFrist
public.gps_override_requests.idUUIDAntrags-ID90 Tage
public.gps_override_requests.user_idUUID (FK)Antragsteller90 Tage
public.gps_override_requests.time_entry_idUUID (FK)Betroffener Zeiteintrag90 Tage
public.gps_override_requests.reasontextBegründung des Mitarbeiters90 Tage
public.gps_override_requests.statusenumpending | approved | rejected90 Tage
public.gps_override_requests.created_attimestamptzAntragsdatum90 Tage

1.5 Konto-Löschungsanfragen

Feld/TabelleTypBeschreibungFrist
public.account_deletion_requests.idUUIDAntrags-ID12 Monate (bis Löschung abgeschlossen)
public.account_deletion_requests.user_idUUID (FK)Betroffene Benutzer-IDBis Löschung abgeschlossen
public.account_deletion_requests.requested_attimestamptzAntragsdatumBis Löschung abgeschlossen
public.account_deletion_requests.completed_attimestamptzDatum der abgeschlossenen LöschungAudit-Nachweis (5 Jahre)

1.6 GPS-Attestierungs-Log

Feld/TabelleTypBeschreibungFrist
public.gps_attestations.idUUIDAttestierungs-IDDauerhaft (Compliance-Nachweis)
public.gps_attestations.company_idUUID (FK)Attiestierendes UnternehmenDauerhaft
public.gps_attestations.attested_byUUID (FK)Administrator, der attestiert hatDauerhaft
public.gps_attestations.gps_modeenumoff | soft | hardDauerhaft
public.gps_attestations.legal_basistextVom Admin angegebene RechtsgrundlageDauerhaft
public.gps_attestations.versionintegerVersionsnummer der AttestierungDauerhaft
public.gps_attestations.created_attimestamptzZeitpunkt der AttestierungDauerhaft

§2 Aufbewahrungsfristen und automatische Redaktion

2.1 Automatisierte Cleanup-Funktionen

Die folgenden Datenbankfunktionen laufen täglich automatisch via pg_cron:

FunktionZeitplanAktion
redact_old_gps_in_time_entries() Täglich 02:00 UTC Setzt gps_lat, gps_lng, gps_accuracy auf NULL für Zeiteinträge, deren clock_in älter als 30 Tage ist
cleanup_old_gps_override_requests() Täglich 02:30 UTC Löscht GPS-Override-Anfragen, deren created_at älter als 90 Tage ist
cleanup_completed_deletion_requests() Täglich 03:00 UTC Entfernt abgeschlossene Löschungsanfragen nach 12 Monaten; behält completed_at für Audit-Zwecke

2.2 Aufbewahrungsfristen – Gesamtübersicht

DatenkategorieAufbewahrungsfristAuslöser der Löschung
GPS-Koordinatenfelder30 TageAutomatisch tgl. via pg_cron
GPS-Override-Anfragen90 TageAutomatisch tgl. via pg_cron
Auth-Sitzungen (JWT)1 Stunde (Access Token)Token-Ablauf
Auth-Sitzungen (Refresh)30 TageToken-Ablauf oder Logout
Server-Logs (Hostinger, Webserver-Zugriffsprotokolle)30 TageRollierend überschrieben
Supabase Audit-Logs90 TageAutomatisch von Supabase
Konto-Löschungsanfragen12 MonateManuell nach Abschluss
Mitarbeiter-Auth-DatenVertragsende + 12 MonateUnternehmensbereinigung
Zeiterfassungsdaten (Inhalt)Vertragsende + gesetzl. FristVertragsende / auf Anfrage
Buchhalterische Daten10 Jahre (§ 257 HGB)Ende Geschäftsjahr
GPS-Attestierungs-LogDauerhaftNicht gelöscht (Compliance)

§3 Datenfluss und Empfänger

3.1 Systemarchitektur

Alle personenbezogenen Daten fließen ausschließlich durch die folgende Systemkette. Keine weiteren Systeme erhalten Zugang zu Klardaten.
KomponenteAnbieterDatenStandort
Browser (PWA)—Rendering, lokaler ZustandEndgerät des Nutzers
Statisches HostingHostingerAuslieferung der Web-App; kein DB-Zugriff. Zugriffsprotokolle (IP).EU
Datenbank + Auth + Edge FunctionsSupabaseAlle persistenten Daten; gesamte Backend-LogikEU-West, Irland
Geocoding (Adresssuche, kein Kartendienst)OpenStreetMap Foundation (Nominatim)Vom Manager eingegebener Adresstext des Einsatzortes; IP des Managers. Keine Mitarbeitenden-Standortdaten, keine Namen/Personalcodes.UK (Angemessenheitsbeschluss)

3.2 Datenfluss bei GPS-Stempelung

  1. Mitarbeiter drückt „Einstempeln" im Browser
  2. Browser fordert Standort via Geolocation API an (Browser-Berechtigung erforderlich)
  3. Koordinaten werden verschlüsselt via TLS an API-Server übertragen
  4. API-Server schreibt Zeiteintrag + Koordinaten in Supabase-Datenbank
  5. Nach 30 Tagen: pg_cron setzt Koordinatenfelder auf NULL
  6. Zeiteintrag (ohne Koordinaten) bleibt für gesetzliche Aufbewahrungsfrist erhalten

3.3 Datenfluss bei Konto-Löschung

  1. Mitarbeiter oder Verantwortlicher stellt Löschungsantrag
  2. Antrag wird als account_deletion_requests-Eintrag protokolliert
  3. Personenbezogene Felder (Name, E-Mail, GPS-Daten) werden gelöscht
  4. Zeiterfassungsdaten werden anonymisiert (Referenz auf gelöschte Benutzer-ID, kein Name)
  5. Auth-Eintrag wird aus Supabase Auth entfernt
  6. Abschluss wird in completed_at protokolliert (Audit-Nachweis)
  7. Gesamtvorgang innerhalb von 12 Monaten nach Antrag

§4 Implementierte Schutzmaßnahmen

4.1 Datenbankebene

MaßnahmeImplementierung
Row-Level Security (RLS)Aktiviert für alle Tabellen mit personenbezogenen Daten; Policies erzwingen Tenant-Isolation
Datenverschlüsselung at-restAES-256 (Supabase Standard)
Backup-VerschlüsselungAutomatische tägliche Backups, AES-256 verschlüsselt
Point-in-Time-RecoveryPITR aktiviert (7 Tage Rollback-Fenster)
Automatische Retentionpg_cron-Jobs für GPS-Redaktion und Override-Anfragen-Löschung
Audit-LoggingSupabase Audit Logs für alle DDL- und kritischen DML-Operationen

4.2 Transportebene

MaßnahmeImplementierung
TLS-VersionMinimum TLS 1.2; bevorzugt TLS 1.3
HSTSStrict-Transport-Security: max-age=31536000; includeSubDomains
Certificate PinningNicht anwendbar (Browser-PWA); TLS-Zertifikat via Let's Encrypt
CSP-HeaderContent-Security-Policy eingeschränkt auf eigene Quellen + cal.eu + app.cleanclock.de

4.3 Anwendungsebene

MaßnahmeImplementierung
JWT-AuthentifizierungKurzlebige Access Tokens (1h) + Refresh Tokens (30d)
MFATOTP-basierte Zwei-Faktor-Authentifizierung für Administratoren (optional)
Passwort-Hashingbcrypt (via Supabase Auth)
GPS-AttestierungspflichtVersioniertes Gate: GPS kann nicht ohne Attestierung aktiviert werden
Diagnostik-SchwärzungAutomatische Schwärzung personenbezogener Felder in Logs vor Ausgabe
Input-ValidierungServer-seitige Validierung aller Eingaben; Parameterized Queries (SQL-Injection-Schutz)

4.4 Organisatorische Maßnahmen

MaßnahmeDetails
ZugriffsbeschränkungProduktionsdaten-Zugang nur für autorisiertes Personal mit MFA
Need-to-know-PrinzipPrinciple of Least Privilege für alle Systemkomponenten und Mitarbeiter
VertragsgestaltungAVV mit allen Unterauftragsverarbeitern abgeschlossen
Datenschutz by DesignGPS-Koordinaten werden nicht dauerhaft gespeichert; standardmäßig GPS off
Incident-Response24h-Meldepflicht an Verantwortlichen; Dokumentation im Incident-Log
Unterauftragsverarbeiter Alle Dokumente
Inhalt §1 Datenkategorien §2 Aufbewahrung §3 Datenfluss §4 Schutzmaßnahmen
© 2026 Clean Clock · Benyamin Jafari · Chemnitzer Str. 69, 01187 Dresden
Startseite· Impressum· Datenschutz· Nutzungsbedingungen· Rechtliches