Rechtliches
Auftragsverarbeitungsvertrag
Der Vertrag nach Art. 28 DSGVO, mit dem die VIBOA UG (haftungsbeschränkt) die Daten eines Arbeitsbereichs im Auftrag des Unternehmens verarbeitet, das ihn führt.
Parteien
Verantwortlicher ist das Unternehmen, für das ein Arbeitsbereich auf fairzeit.com geführt wird. Für das Unternehmen handelt die Inhaber:in des Arbeitsbereichs (Rolle „owner“), die diesen Vertrag annimmt. Im Folgenden „Verantwortlicher“. Der Verantwortliche wird durch den Arbeitsbereich und das Konto der Inhaber:in bestimmt, die den Vertrag angenommen hat (§ 1 Abs. 3).
Auftragsverarbeiter ist die VIBOA UG (haftungsbeschränkt), Kopernikusstr. 14, 30167 Hannover, Deutschland. Vertreten durch den Geschäftsführer Michael Sathya Gorski. Amtsgericht Hannover, HRB 221482. E-Mail: hallo@fairzeit.com. Im Folgenden „Auftragsverarbeiter“ oder „fairzeit“.
Dazu gehören: Anlage 1 und Anlage 2.
§ 1 Gegenstand und Abschluss
(1) Gegenstand. Der Auftragsverarbeiter betreibt für den Verantwortlichen dessen Arbeitsbereich auf der Plattform fairzeit.com. Dazu gehört dreierlei:
- die Entgegennahme bestätigter Zeiteinträge aus der Mac-App fairzeit;
- die Verwaltung von Mitgliedern, Kunden, Projekten und Stundensätzen;
- die Auswertung im Dashboard und den Export.
Grundlage ist der Vertrag über die Nutzung von fairzeit, also die Allgemeinen Geschäftsbedingungen, im Folgenden „Hauptvertrag“. Dieser AVV regelt die Pflichten der Parteien beim Datenschutz.
(2) Nicht Gegenstand dieses Vertrags:
- Was die Mac-App auf dem Mac verarbeitet. Gemeint ist die Aufzeichnung der Aktivität: Programme, Fenstertitel, Webadressen, Dateipfade, Regeln, Vorschläge und private Zeiten. Diese Daten bleiben auf dem Gerät. Der Auftragsverarbeiter hat keinen Zugriff auf sie, und sein Server nimmt sie nicht an (§ 4 Abs. 3).
- Was der Auftragsverarbeiter als eigener Verantwortlicher verarbeitet. Das ist in der Datenschutzerklärung beschrieben:
- die Konten und Anmeldungen: E-Mail-Adresse, Anmeldelinks, Passkeys, Sitzungen mit IP-Adresse und User-Agent, Gerätecodes der Mac-App, Rate-Limit-Einträge;
- der Spamschutz (Cloudflare Turnstile);
- der Abschluss und die Verwaltung des Abos und der Lifetime-Plätze zusammen mit Link (Stripe);
- der Wechselnachweis;
- der Nachweis der Annahme dieser Bedingungen (Absatz 3);
- die Website, die Update-Prüfung der Mac-App und Anfragen per E-Mail.
(3) Abschluss. Die Inhaber:in nimmt diesen AVV elektronisch an (Art. 28 Abs. 9 DSGVO), und zwar beim Anlegen des Arbeitsbereichs unter fairzeit.com/app/willkommen mit einem Pflicht-Häkchen, zusammen mit den AGB. Ohne das Häkchen legt die Plattform den Arbeitsbereich nicht an.
- Nachweis: fairzeit speichert zu jeder Annahme den Arbeitsbereich, die Fassung des Textes, den Zeitpunkt und das Konto, das sie erklärt hat. Die Fassung dieses AVV trägt das Datum seines Stands.
- Bestehende Arbeitsbereiche: Hat ein Arbeitsbereich die aktuelle Fassung noch nicht angenommen, leitet die Plattform die Inhaber:in beim nächsten Besuch auf eine Seite „Bedingungen“ um. Mitglieder und Admins müssen nichts annehmen, und die Mac-App ist davon nicht betroffen.
- Neue Fassungen: Eine neue Fassung nimmt die Inhaber:in auf dieselbe Weise an.
§ 2 Dauer
(1) Der AVV gilt, solange der Auftragsverarbeiter personenbezogene Daten des Arbeitsbereichs verarbeitet. Er endet erst, wenn diese Daten nach § 12 gelöscht sind, und gilt damit auch über das Ende des Hauptvertrags hinaus.
(2) Auch ohne aktiven Tarif bleibt ein Arbeitsbereich zunächst bestehen. Ist ein Abo gekündigt oder unbezahlt, wird der Arbeitsbereich schreibgeschützt. Seine Daten bleiben gespeichert, und der Verantwortliche kann sie weiter ansehen und exportieren. Bleibt der Arbeitsbereich schreibgeschützt, löscht der Auftragsverarbeiter ihn nach den Fristen in § 12 Abs. 3. Löscht die Inhaber:in ihn vorher selbst, gilt § 12 Abs. 1. Die Verarbeitung im Auftrag dauert bis dahin an.
§ 3 Art und Zweck der Verarbeitung
(1) Art der Verarbeitung (Art. 4 Nr. 2 DSGVO):
- Erheben und Speichern: Zeiteinträge, die die Mac-App über die Schnittstelle
/api/v1hochlädt; Kunden, Projekte, Stundensätze und Budgets, die Inhaber:in und Admins im Web anlegen oder aus der Mac-App übergeben; Mitgliedschaften und Einladungen. - Abgleichen und Ordnen: Ein Eintrag wird nur angenommen, wenn er zu einem Projekt des Arbeitsbereichs gehört. Von zwei Fassungen desselben Eintrags gilt die neuere. Ein Eintrag gehört der Person, die ihn zuerst hochgeladen hat.
- Auswerten: Stunden, abrechenbare Stunden, Anteil, Wert nach den aktuellen Stundensätzen, Budgets, Verlauf, je Person sowie je Kunde und Projekt.
- Offenlegen: Inhaber:in und Admins sehen die Einträge aller Mitglieder mit Werten. Mitglieder sehen nur ihre eigenen Stunden, ohne Sätze und Werte. Die Mac-App eines Mitglieds lädt die aktiven Kunden und Projekte herunter, ohne Sätze und Budgets.
- Übermitteln: Einladungs-E-Mails an die eingeladene Adresse und, vor einer Löschung nach § 12 Abs. 3, ein Hinweis an die Inhaber:in.
- Bereitstellen als Datei: Export der Einträge als CSV oder XLSX auf Abruf. Die Datei wird nicht gespeichert.
- Löschen: nach § 12.
(2) Zweck: Der Verantwortliche erfasst die Arbeitszeit auf Projekte und Kunden, wertet sie aus und bereitet die Abrechnung gegenüber seinen Kunden vor. Er führt dafür sein Team mit Rollen und Einladungen.
§ 4 Art der personenbezogenen Daten
(1) Kategorien der Daten, wie sie auf dem Server liegen:
- Zeiteinträge
- Kennung des Eintrags (eine UUID, die den Zeitpunkt ihrer Anlage enthält); Projekt; Beginn; Ende; Minuten; Notiz (Freitext, höchstens 1000 Zeichen); abrechenbar ja oder nein; Zeitpunkt der letzten Änderung; Zeitpunkt der Löschung, falls gelöscht. Dazu vom Server: das Konto, von dem der Eintrag kam, und wann er ankam.
- Gelöschte Einträge
- Ein gelöschter Eintrag bleibt als gelöscht markierte Zeile mit seinen Feldern stehen und zählt in keiner Auswertung. Die Mac-App sendet die Löschung mit leerer Notiz, sodass die gespeicherte Notiz überschrieben wird.
- Angaben zum Hochladenden
- Je Person und Arbeitsbereich: der Name zum Zeitpunkt des letzten Uploads (sonst die E-Mail-Adresse) und der Zeitpunkt des letzten Uploads („Letzter Upload“).
- Kunden und Projekte
- Namen (je höchstens 80 Zeichen), Stundensatz, monatliches Budget in Minuten, Archivierung. Sie werden im Web angelegt oder aus der Mac-App übergeben (nur Inhaber:in und Admins).
- Einstellungen des Arbeitsbereichs
- Name des Arbeitsbereichs, Standard-Stundensatz, Währung (EUR), Zeitzone.
- Mitglieder
- Mitgliedschaft und Rolle (Inhaber:in, Admin, Mitglied). Inhaber:in und Admins sehen Name und E-Mail-Adresse aus dem Konto der Mitglieder.
- Einladungen
- Eingeladene E-Mail-Adresse, Rolle, einladende Person, Ablauf (7 Tage), Status (offen, angenommen, abgelehnt, zurückgezogen), Zahl der erneuten Sendungen.
(2) Besondere Kategorien (Art. 9 DSGVO) sind nicht vorgesehen. Die Notiz und die Namen von Kunden und Projekten sind aber Freitext, den der Verantwortliche und seine Mitglieder selbst eingeben. Der Auftragsverarbeiter prüft ihn nicht. Der Verantwortliche sorgt dafür, dass dort keine besonderen Kategorien und keine Daten Dritter stehen, die für den Zweck nicht nötig sind (§ 15 AGB).
(3) Was der Server nicht annimmt. Ein hochgeladener Eintrag darf nur die neun Felder der Tabelle oben enthalten. Ein Eintrag mit einem anderen Feld wird abgelehnt und nicht gespeichert. Gar nicht übertragen werden:
- Aktivität, Fenstertitel, Webadressen, Dateipfade, Regeln und Vorschläge;
- private Zeiten;
- Einträge in Projekten, die nur auf dem Mac geführt werden („Nur auf diesem Mac“).
§ 5 Kategorien betroffener Personen
(1) Mitglieder des Arbeitsbereichs: Inhaber:in, Admins und Mitglieder. Das sind in der Regel Beschäftigte des Verantwortlichen, freie Mitarbeitende oder der Verantwortliche selbst.
(2) Eingeladene Personen, auch solche, die noch kein Konto haben oder die Einladung nie annehmen.
(3) Ehemalige Mitglieder und Personen, die ihr Konto gelöscht haben: Ihre Einträge und ihr Name bleiben im Arbeitsbereich (§ 12).
(4) Ansprechpartner:innen und Kunden des Verantwortlichen, soweit ein Kunde eine natürliche Person ist oder Namen von Personen in Kunden-, Projekt- oder Notiztexten stehen.
§ 6 Weisungen
(1) Der Auftragsverarbeiter verarbeitet die Daten nur auf dokumentierte Weisung des Verantwortlichen (Art. 28 Abs. 3 lit. a DSGVO). Die Weisungen sind:
- dieser AVV und der Hauptvertrag;
- die Einstellungen und Handlungen, die Inhaber:in und Admins in der Plattform vornehmen: Einladen, Entfernen, Rollen, Kunden, Projekte, Sätze, Zeitzone, Export, Löschen;
- die Uploads, die die Mitglieder des Arbeitsbereichs mit ihrer Mac-App auslösen;
- weitere Weisungen in Textform an hallo@fairzeit.com. Einzelweisungen erteilt nur die Inhaber:in.
(2) Eine Ausnahme gilt, wenn das Recht der Union oder Deutschlands den Auftragsverarbeiter zur Verarbeitung verpflichtet. Dann teilt er dem Verantwortlichen diese Pflicht vor der Verarbeitung mit, es sei denn, das Recht verbietet die Mitteilung.
(3) Hält der Auftragsverarbeiter eine Weisung für rechtswidrig, sagt er das dem Verantwortlichen unverzüglich (Art. 28 Abs. 3 UAbs. 2 DSGVO). Er darf die Ausführung aussetzen, bis der Verantwortliche sie bestätigt oder ändert.
(4) Eine Weisung kann über die Funktionen der Plattform hinausgehen, etwa das Löschen einzelner Einträge, die die Plattform nicht löschen kann (§ 10 Abs. 2). Solche Weisungen führt der Auftragsverarbeiter aus, soweit sie technisch und mit vertretbarem Aufwand möglich sind. Ist der Aufwand erheblich, nennt er dem Verantwortlichen vorher die Kosten, die er nach Aufwand berechnet.
§ 7 Vertraulichkeit
(1) Der Auftragsverarbeiter setzt nur Personen ein, die zur Vertraulichkeit verpflichtet sind oder einer angemessenen gesetzlichen Verschwiegenheitspflicht unterliegen (Art. 28 Abs. 3 lit. b DSGVO).
(2) Der Auftragsverarbeiter sieht sich Inhalte des Arbeitsbereichs nur an, soweit es für den Betrieb, die Fehlersuche oder eine Weisung nötig ist. Seine Protokolle enthalten keine Inhalte von Einträgen: keine Notizen, keine Anfragekörper, keine Tokens (Anlage 1, Nr. 6).
§ 8 Technische und organisatorische Maßnahmen
(1) Der Auftragsverarbeiter trifft die Maßnahmen nach Art. 32 DSGVO, die Anlage 1 beschreibt (Art. 28 Abs. 3 lit. c DSGVO).
(2) Er darf sie weiterentwickeln, solange das Schutzniveau nicht sinkt. Wesentliche Änderungen dokumentiert er und teilt sie dem Verantwortlichen auf Anfrage mit.
§ 9 Unterauftragsverarbeiter
(1) Der Verantwortliche erteilt die allgemeine Genehmigung, weitere Auftragsverarbeiter einzusetzen (Art. 28 Abs. 2 Satz 1 DSGVO). Die Unterauftragsverarbeiter bei Abschluss nennt Anlage 2.
(2) Bevor der Auftragsverarbeiter einen Unterauftragsverarbeiter hinzunimmt oder ersetzt, informiert er die Inhaber:in per E-Mail. Der Verantwortliche kann innerhalb von 4 Wochen aus wichtigem datenschutzrechtlichem Grund widersprechen. Können die Parteien sich nicht einigen, darf jede Partei den Hauptvertrag zum Wirksamwerden der Änderung kündigen.
(3) Der Auftragsverarbeiter erlegt jedem Unterauftragsverarbeiter vertraglich dieselben Datenschutzpflichten auf (Art. 28 Abs. 4 DSGVO). Bei Cloudflare geschieht das durch Cloudflares Data Processing Addendum.
(4) Übermittlung in Drittländer: nur unter den Voraussetzungen der Art. 44 ff. DSGVO. Die Grundlage nennt Anlage 2.
§ 10 Unterstützung des Verantwortlichen
(1) Betroffenenrechte (Art. 28 Abs. 3 lit. e DSGVO). Der Auftragsverarbeiter unterstützt den Verantwortlichen dabei, Anträge betroffener Personen zu beantworten. Wendet sich eine betroffene Person direkt an den Auftragsverarbeiter, leitet er den Antrag unverzüglich an die Inhaber:in weiter und antwortet nicht selbst in der Sache.
(2) Was die Plattform dafür bietet, und was nicht:
- Auskunft (Art. 15), Datenübertragbarkeit (Art. 20)
- Export der Einträge als CSV oder XLSX, gefiltert nach Person, Kunde und Zeitraum. Inhaber:in und Admins können das auch im schreibgeschützten Zustand. Grenzen: höchstens 366 Tage und 10 000 Einträge je Datei; Einladungen und Mitgliedschaften lassen sich nicht exportieren.
- Berichtigung (Art. 16)
- Kunden, Projekte, Sätze und Namen im Web; einen Eintrag ändert das Mitglied in seiner Mac-App, und die neue Fassung wird hochgeladen. Grenze: Inhaber:in und Admins können Einträge im Web weder ändern noch löschen.
- Löschung (Art. 17)
- Ein Mitglied löscht seinen Eintrag in der Mac-App: Der Eintrag wird als gelöscht markiert, die Notiz geleert. Die Inhaber:in löscht den ganzen Arbeitsbereich. Grenze: Es gibt keinen Weg, die Einträge oder den Namen einer ehemaligen Person zu löschen, außer den ganzen Arbeitsbereich. Gelöschte Einträge bleiben als markierte Zeilen stehen.
- Einschränkung (Art. 18), Widerspruch (Art. 21)
- Keine eigene Funktion. Nur auf Weisung nach § 6 Abs. 4.
(3) Art. 32 bis 36 DSGVO (Art. 28 Abs. 3 lit. f DSGVO). Der Auftragsverarbeiter unterstützt den Verantwortlichen bei der Sicherheit der Verarbeitung, bei Meldungen und Benachrichtigungen nach Art. 33 und 34, bei einer Datenschutz-Folgenabschätzung (Art. 35) und bei einer vorherigen Konsultation (Art. 36). Er stellt die Informationen bereit, die ihm zur Verfügung stehen, insbesondere diesen AVV mit seinen Anlagen.
§ 11 Meldung von Verletzungen des Schutzes personenbezogener Daten
(1) Wird dem Auftragsverarbeiter eine Verletzung des Schutzes personenbezogener Daten des Arbeitsbereichs bekannt, meldet er sie der Inhaber:in unverzüglich, spätestens 48 Stunden nach Kenntnis, per E-Mail an die Adresse ihres Kontos (Art. 33 Abs. 2 DSGVO).
(2) Die Meldung enthält, soweit bekannt, die Angaben nach Art. 33 Abs. 3 DSGVO: Art der Verletzung, betroffene Kategorien und ungefähre Zahl der Personen und Datensätze, wahrscheinliche Folgen, ergriffene und vorgeschlagene Maßnahmen und eine Kontaktstelle. Was noch nicht bekannt ist, liefert er nach.
(3) Die Meldung an die Aufsichtsbehörde und die Benachrichtigung der betroffenen Personen sind Sache des Verantwortlichen. Der Auftragsverarbeiter meldet nicht in dessen Namen, es sei denn, der Verantwortliche weist ihn dazu an.
§ 12 Löschung und Rückgabe
(1) Was die Plattform bei welchem Ereignis tut:
- Ein Mitglied wird entfernt oder verlässt den Arbeitsbereich
- Die Mitgliedschaft wird gelöscht, und der Zugriff endet mit der nächsten Anfrage: im Web sofort, für die Mac-App mit der nächsten Anfrage an
/api/v1. Seine Einträge und sein Name im Arbeitsbereich bleiben und werden als „ehemalig“ gekennzeichnet. - Ein Mitglied löscht sein Konto
- Konto, Sitzungen und Passkeys werden gelöscht, ebenso jeder Arbeitsbereich, in dem es allein ist. Seine Einträge in anderen Arbeitsbereichen bleiben mit dem Namen, unter dem es zuletzt hochgeladen hat (sonst der E-Mail-Adresse). Einladungen, die es verschickt hat, werden gelöscht.
- Ein Mitglied löscht einen Eintrag in der Mac-App
- Der Eintrag bleibt als gelöscht markierte Zeile mit seinen Feldern; die Notiz wird geleert; er zählt nirgends mehr.
- Das Abo endet oder wird nicht bezahlt
- Der Arbeitsbereich wird schreibgeschützt. Ansehen und Export bleiben möglich. Bleibt er schreibgeschützt, gilt Absatz 3.
- Die Inhaber:in löscht den Arbeitsbereich (unter „Einstellungen“)
- Nur möglich, wenn kein ungekündigtes Abo mehr läuft. Gelöscht werden: Mitgliedschaften, Einladungen, Einstellungen, Kunden, Projekte, alle Einträge (auch gelöschte), die Angaben zum Hochladenden, der Abo-Eintrag, der Nachweis der Annahme dieser Bedingungen sowie der Wechselnachweis (Datei und Eintrag). Lifetime-Bestellungen bleiben beim Auftragsverarbeiter, ohne Zuordnung zum Arbeitsbereich.
(2) Rückgabe. Vor der Löschung kann der Verantwortliche die Einträge als CSV oder XLSX exportieren, auch im schreibgeschützten Zustand (§ 10 Abs. 2) und auch, solange die Inhaber:in die aktuelle Fassung der Bedingungen noch nicht angenommen hat. Eine weitergehende Rückgabe ist nicht vorgesehen, etwa der Mitglieder, Einladungen oder Kunden ohne Einträge.
(3) Nach Ende des Hauptvertrags (Art. 28 Abs. 3 lit. g DSGVO). Der Verantwortliche wählt zwischen Rückgabe durch Export und Löschung. Löscht die Inhaber:in den Arbeitsbereich nicht selbst, löscht ihn der Auftragsverarbeiter nach folgenden Regeln, es sei denn, das Recht der Union oder Deutschlands verpflichtet zur Speicherung:
- Ist der Arbeitsbereich 60 Tage lang schreibgeschützt, schickt der Auftragsverarbeiter der Inhaber:in eine E-Mail mit dem Datum der Löschung. Sie sagt auch, wie sich der Arbeitsbereich erhalten lässt und wie der Verantwortliche seine Einträge vorher exportiert.
- Frühestens 90 Tage nach Beginn des Schreibschutzes und frühestens 30 Tage nach dieser E-Mail löscht der Auftragsverarbeiter den Arbeitsbereich mit allen Daten nach Absatz 1.
- Unmittelbar vorher prüft er den Stand des Abos bei Stripe neu und fragt Stripe, ob es zu dem Arbeitsbereich ein laufendes Abo gibt, auch eines, das er noch nicht gespeichert hat. Ist der Arbeitsbereich dann wieder beschreibbar, löscht er nichts. Dasselbe gilt, wenn der Arbeitsbereich zwischendurch wieder beschreibbar war: Die Fristen beginnen dann bei einem späteren Schreibschutz von vorn.
- Das gilt auch für einen Arbeitsbereich, der nie ein Abo hatte.
(4) Kopien bei Unterauftragsverarbeitern. Fehlerprotokolle (Workers Logs) enthalten keine Inhalte von Einträgen. Nach der Datenschutzerklärung (§ 2) löscht Cloudflare sie spätestens nach 7 Tagen.
(5) Der Auftragsverarbeiter bestätigt die Löschung auf Anfrage in Textform.
§ 13 Nachweise und Kontrollen
(1) Der Auftragsverarbeiter stellt dem Verantwortlichen alle Informationen bereit, die nötig sind, um die Einhaltung des Art. 28 DSGVO nachzuweisen (Art. 28 Abs. 3 lit. h DSGVO): diesen AVV mit seinen Anlagen, die Liste der Unterauftragsverarbeiter und deren Nachweise, etwa Cloudflares Zertifizierungen und Prüfberichte, soweit Cloudflare sie herausgibt.
(2) Der Verantwortliche oder ein von ihm beauftragter, zur Verschwiegenheit verpflichteter Prüfer darf Überprüfungen vornehmen, auch vor Ort. Dafür gelten drei Bedingungen:
- Ankündigung 30 Tage vorher, zu den Geschäftszeiten;
- keine Offenlegung von Daten anderer Kunden;
- keine Störung des Betriebs.
Die Rechenzentren betreibt Cloudflare. Für sie treten die Nachweise von Cloudflare an die Stelle einer Prüfung vor Ort. Die Kosten einer Prüfung, die über das Bereitstellen von Unterlagen hinausgeht, trägt der Verantwortliche.
(3) Der Auftragsverarbeiter informiert den Verantwortlichen unverzüglich über Kontrollen und Maßnahmen einer Aufsichtsbehörde, soweit sie diesen Auftrag betreffen.
§ 14 Pflichten des Verantwortlichen
(1) Der Verantwortliche ist für die Rechtmäßigkeit der Verarbeitung verantwortlich. Er stellt sicher, dass er eine Rechtsgrundlage hat und dass er die betroffenen Personen informiert (Art. 13, 14 DSGVO). Ist er Arbeitgeber, beteiligt er gegebenenfalls den Betriebs- oder Personalrat (§ 87 Abs. 1 Nr. 6 BetrVG).
(2) Er informiert den Auftragsverarbeiter unverzüglich, wenn er Fehler oder Unregelmäßigkeiten bei der Verarbeitung feststellt.
§ 15 Haftung und Schlussbestimmungen
(1) Für die Haftung gilt Art. 82 DSGVO. Im Übrigen gilt die Haftungsregelung des Hauptvertrags.
(2) Widersprechen sich dieser AVV und der Hauptvertrag in Fragen des Datenschutzes, geht dieser AVV vor.
(3) Änderungen bedürfen der Textform. Sie können auch elektronisch erklärt werden (Art. 28 Abs. 9 DSGVO).
(4) Ist eine Bestimmung unwirksam, bleibt der Rest wirksam.
(5) Es gilt deutsches Recht. Gerichtsstand ist Hannover, soweit der Verantwortliche Kaufmann, juristische Person des öffentlichen Rechts oder öffentlich-rechtliches Sondervermögen ist.
Anlage 1 Technische und organisatorische Maßnahmen (Art. 32 DSGVO)
Aufgeführt ist nur, was sich am Betrieb der Plattform nachweisen lässt.
1. Vertraulichkeit: Zutritt und physische Sicherheit
- Der Auftragsverarbeiter betreibt keine eigenen Server. Die Plattform läuft auf Cloudflare Workers.
2. Vertraulichkeit: Zugang (Anmeldung)
- Anmeldung per E-Mail-Link oder Passkey: Ein Anmeldelink gilt 15 Minuten und wird nur als Hash gespeichert. Pro IP-Adresse sind höchstens 5 Anforderungen oder Öffnungen je Minute möglich. Die Anmeldeseite ist mit Cloudflare Turnstile geschützt.
- Passkeys: Gespeichert wird nur der öffentliche Schlüssel.
- Sitzungen: Eine Sitzung gilt 30 Tage nach der letzten Nutzung und wird höchstens einmal am Tag verlängert. Die Cookies sind
Secure,HttpOnlyundSameSite=Lax. Eine Person kann alle anderen Sitzungen beenden, auch die der Mac-App. - Kritische Handlungen nur aus einer frischen Sitzung: Konto löschen (mit Eingabe der E-Mail-Adresse) und Arbeitsbereich löschen (mit Eingabe seines Namens).
- Anmeldung der Mac-App nach RFC 8628: Es gibt eine feste Client-Kennung. Ein Code hat 8 Zeichen und gilt 30 Minuten. Die Person bestätigt ihn nach Anmeldung im Browser, und die Seite nennt dabei das Konto. Pro IP-Adresse sind höchstens 20 Code-Anforderungen und 120 Token-Abfragen je Minute möglich. Abgelaufene Codes löscht die tägliche Routine.
- Token auf dem Mac: Die Mac-App bewahrt das Token im Schlüsselbund nur dieses Geräts auf, ohne Abgleich mit anderen Geräten, und sendet es nur an fairzeit.com.
3. Vertraulichkeit: Zugriff (Berechtigungen)
- Prüfkette bei jeder Anfrage: Jede Seite unter
/appund jede Anfrage an/api/v1prüft der Reihe nach Sitzung oder Token, Mitgliedschaft im Arbeitsbereich und Rolle. Ein entferntes Mitglied verliert den Zugriff mit der nächsten Anfrage. - Rollenmodell: Nur Inhaber:in und Admins sehen Sätze, Werte, Budgets und die Einträge anderer und können exportieren. Mitglieder sehen nur ihre eigenen Stunden. Die Mac-App bekommt Kunden und Projekte ohne Sätze und Budgets.
- Eigene Einträge: Ein Mitglied kann nur eigene Einträge hochladen und ändern. Einen fremden Eintrag lehnt der Server ab, und die Zeile bleibt unverändert.
- Getrennte Zugangswege: Die Schnittstelle
/api/v1liest keine Cookies, und/appliest keine Bearer-Tokens.
4. Trennung (Mandantentrennung)
- Jede Abfrage ist auf die Kennung des Arbeitsbereichs beschränkt.
- Ein Eintrag verweist auf sein Projekt über einen zusammengesetzten Schlüssel aus Arbeitsbereich und Projekt. Ein Projekt eines anderen Arbeitsbereichs lässt sich so nicht benennen.
- Für eine unbekannte und eine fremde Arbeitsbereichskennung gibt es dieselbe Antwort. Ob ein Arbeitsbereich existiert, lässt sich daran nicht ablesen.
5. Integrität: Weitergabe und Eingabe
- Transportverschlüsselung: HTTPS für fairzeit.com mit HSTS (
max-age=63072000; includeSubDomains). - Sicherheits-Header: Content-Security-Policy mit
frame-ancestors 'none',X-Frame-Options: DENY, Referrer-Policy und Permissions-Policy. Die Seiten der App laden kein Analyse-Skript. - Schutz vor fremden Formularen (CSRF): Jede ändernde Anfrage unter
/appmuss den Origin-Header von fairzeit.com tragen. - Prüfung beim Upload: Nur die neun Felder sind erlaubt, jedes unbekannte Feld führt zur Ablehnung. Zeiten müssen gültig sein, Minuten zwischen 1 und 1440 liegen, die Notiz höchstens 1000 Zeichen haben, und das Projekt muss zum Arbeitsbereich gehören. Eine Anfrage hat höchstens 500 Einträge und 4 MiB. Ein Batch wird atomar geschrieben, und eine wiederholte Übertragung erzeugt keine Dubletten.
- Größenbegrenzung: Formulare unter
/apphaben höchstens 64 KiB. - Schutz im Export: Textzellen der CSV, die mit
=,+,-,@, Tab oder Zeilenumbruch beginnen, bekommen ein vorangestelltes', damit kein Tabellenprogramm sie als Formel ausführt. - Zahlungsereignisse: Ereignisse von Stripe werden nur mit gültiger Signatur angenommen und nur einmal verarbeitet.
6. Datenminimierung und Protokollierung
- Der Server nimmt nur die neun Felder eines Eintrags an. Aktivität, Titel, Adressen und Pfade verlassen den Mac nicht (§ 4 Abs. 3).
- Protokolle: Die Protokollierung jeder einzelnen Anfrage ist abgeschaltet. Fehler werden mit Kennungen protokolliert, etwa Arbeitsbereich, Methode, Pfad und Fehlercode. Notizen, Anfragekörper und Tokens kommen nicht ins Protokoll.
- Telemetrie der Anmeldebibliothek Better Auth ist abgeschaltet.
7. Verfügbarkeit und Belastbarkeit
- Begrenzung von Anfragen: höchstens 60 Anfragen je Minute und Sitzung an
/api/v1, dazu die Grenzen der Anmeldung (Nr. 2). - Puffer auf dem Mac: Die Mac-App behält jeden Eintrag in ihrer Warteschlange, bis der Server ihn angenommen hat. Fällt die Plattform aus, geht auf dem Mac nichts verloren.
8. Speicherort
- Die Datenbank D1 ist auf die EU festgelegt, und ihre Daten bleiben in der EU.
- Der Speicher R2 für die Wechselnachweise ist auf die EU festgelegt (Standort EEUR, privat). Er enthält keine Daten dieses Auftrags.
- Die Workers selbst laufen im weltweiten Netz von Cloudflare. Eine Anfrage kann also außerhalb der EU verarbeitet werden, auch wenn sie dort nicht gespeichert wird (Anlage 2).
9. Verfahren zur regelmäßigen Überprüfung
- Tests: Jede Funktion der Plattform ist testgetrieben entwickelt. Tests prüfen unter anderem den Rollenzugriff, die Prüfung beim Upload, die Löschung des Arbeitsbereichs mit allen Einträgen und die Übereinstimmung von Schnittstelle und Vertragsdatei.
Anlage 2 Unterauftragsverarbeiter
Für diesen Auftrag
- Cloudflare, Inc., 101 Townsend St, San Francisco, CA 94107, USA: Workers
- Betrieb der Plattform und der Schnittstelle
/api/v1. Ort: das weltweite Netz von Cloudflare; eine Anfrage wird in der Regel im Rechenzentrum nahe der anfragenden Person verarbeitet. Grundlage der Drittlandübermittlung: EU-U.S. Data Privacy Framework (Angemessenheitsbeschluss vom 10.07.2023, Art. 45 DSGVO); hilfsweise EU-Standardvertragsklauseln im Vertrag zur Auftragsverarbeitung von Cloudflare (Art. 46 Abs. 2 lit. c DSGVO). - Cloudflare: D1
- Datenbank mit allen Daten nach § 4. Ort: EU. Zugriff durch Cloudflare, Inc. aus den USA ist möglich, die Grundlage ist dieselbe wie oben.
- Cloudflare: Email Sending
- Versand der Einladungs-E-Mails und der Hinweise vor einer Löschung, vom Absender no-reply@fairzeit.com. Grundlage wie oben.
- Cloudflare: Workers Logs
- Fehlerprotokolle, nach der Datenschutzerklärung höchstens 7 Tage. Grundlage wie oben.
- Cloudflare: Rate Limiting
- Zähler je Sitzung für
/api/v1. Grundlage wie oben.
Nur unter einer Bedingung
- Cloudflare Email Routing, weiter an Proton AG, Route de la Galaise 32, 1228 Plan-les-Ouates, Genf, Schweiz
- Nur, wenn der Verantwortliche oder seine Mitglieder Daten des Arbeitsbereichs per E-Mail an hallo@fairzeit.com schicken, etwa bei Support, einer Weisung oder einer Erklärung nach der Garantie (AGB § 12). Ort: Schweiz. Grundlage: Angemessenheitsbeschluss für die Schweiz (Art. 45 DSGVO).
Keine Unterauftragsverarbeiter für diesen Auftrag
- Link / Stripe (Stripe Managed Payments)
- Verkauft Abo und Lifetime-Plätze als Händler in eigener Verantwortung. Von der Plattform erhält Stripe: E-Mail-Adresse der Inhaber:in, Kennung des Arbeitsbereichs, Zahl der abgerechneten Plätze, Sprache, Fassung der angenommenen AGB. Weder Einträge noch Kunden, Projekte, Sätze oder Daten der Mitglieder.
- Cloudflare Turnstile
- Nur auf Formularen der Website und auf der Anmeldeseite. Dort ist der Auftragsverarbeiter selbst verantwortlich (Datenschutzerklärung).
- Plausible Insights OÜ
- Nur auf der Website, nicht in der App unter
/app.