Datenschutzerklärung — Produkt-Website und Kunden-Dashboard
ENTWURF — nicht verwenden ohne anwaltliche Prüfung Arbeitsentwurf, keine Rechtsberatung. Aus dem Code und den Architektur-Entscheidungen (ADRs) abgeleitet, Stand 2026-09-24 (Branch
worktree-agent-a184b2a922ed3ac12). Platzhalter in eckigen Klammern sind vor Veröffentlichung zu ergänzen; mit „[ENGINEERING-LÜCKE]" markierte Stellen beschreiben eine Funktion, die die Datenschutzerklärung verspräche, aber die der Code heute noch nicht erfüllt — sieheREADME.mdfür die daraus folgenden Engineering-Aufgaben.
Diese Erklärung gilt für askguide.[TLD] (Marketing-Website, sobald die Domain registriert ist — laut docs/adr/0003-product-decisions.md noch offen) und das Kunden-Dashboard (apps/web), in dem Website-Betreiber ihren KI-Agenten einrichten und verwalten. Sie gilt nicht für den Chat-Widget-Auftritt auf einer Kundenwebsite selbst — dafür gilt Datenschutzhinweis-Widget.md — und nicht für Briefe/Vorschauen an Interessenten — dafür gilt Art14-Hinweis-Prospects.md.
1. Verantwortlicher
[FIRMA], [ANSCHRIFT] — siehe Impressum.md.
Kontakt für Datenschutzanfragen: [E-MAIL, ggf. eigene Datenschutz-Adresse] [Datenschutzbeauftragter, falls nach Art. 37 DSGVO bestellt: Name/Kontakt — vom Anwalt zu prüfen, ob die Bestellpflicht für die Unternehmensgröße greift]
2. Verarbeitete Daten und Zwecke
2.1 Marketing-Website (Besucher)
[ENGINEERING-LÜCKE: Im untersuchten Code (apps/web) wurde keine eigenständige Marketing-Website mit Tracking/Analytics/Cookie-Banner gefunden — nur das Dashboard. Wenn eine Marketing-Website mit Analyse-Tools, Formularen o. Ä. hinzukommt, muss dieser Abschnitt konkretisiert werden (Tools, Cookies, Consent-Banner-Text).] Aktuell: reine Bereitstellung der Seiten (Server-Logs des Hosters, siehe Abschnitt 4).
2.2 Registrierung und Anmeldung (Kunden/Nutzer)
- Daten: E-Mail-Adresse, Name (optional), Zuordnung zu einem Mandanten (
tenant) —
Tabellen users, tenants (packages/db/migrations/0000_init.sql).
- Zweck: Konto- und Mandantenverwaltung, Login per Magic Link.
- Anmeldeverfahren: Ein zeitlich befristeter, einmal verwendbarer Anmeldelink wird per E-Mail
zugestellt (apps/web/src/lib/login-token.ts: HMAC-signiert, 15 Minuten gültig, Einmalverwendung über einen serverseitigen Nonce-Speicher). Der Versand erfolgt über Brevo (transaktionale E-Mail-API, apps/web/src/lib/login-mailer.ts) oder — außerhalb der Produktivumgebung — als Konsolenausgabe.
- Sitzung: Ein signiertes, httpOnly-Cookie (
SameSite=Lax, in ProduktionSecure), serverseitig
in Redis widerrufbar (Abmeldung, „Überall abmelden", apps/web/src/lib/session-store.ts).
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertragsanbahnung/-erfüllung).
2.3 Website-Verwaltung im Dashboard
- Daten: die vom Kunden angegebene Domain, Crawl-Konfiguration, hochgeladene
Verifizierungsdateien bzw. DNS-TXT-Nachweis (sites-Tabelle), Persona-/Agenten-Einstellungen (agent_profiles), eigene FAQ-Einträge und Korrekturen (owner_entries, siehe ADR 0012).
- Zweck: Bereitstellung des gebuchten Produkts (Aufbau und Betrieb des Website-Agenten).
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO.
2.4 Gesprächsprotokolle, Leads, Bewertungen (Daten der Website-Besucher der Kunden, im
Dashboard einsehbar)
Diese Daten stammen nicht von den Besuchern der AskGuide-Website, sondern von den Besuchern der Kundenwebsites, für die AskGuide als Auftragsverarbeiter tätig wird (siehe AVV.md). Sie werden hier der Vollständigkeit halber aufgeführt, weil sie im selben Dashboard sichtbar sind:
- Konversationen und Nachrichten (
conversations,messages) mit gehashter Besucher-Kennung
(visitor_hash — täglich rotierendes Salt + Adresse + User-Agent, nie die Rohadresse, apps/api/src/chat.ts), verkürzter Einstiegs-URL ohne Query/Fragment (entry_url, Sicherheitsbefund REVIEW-2026-09 M2, behoben).
- Kontaktanfragen/Leads (
leads: Name, E-Mail und/oder Telefon, Nachricht, Zeitpunkt der
Einwilligung consent_at — ohne Einwilligung speichert kein Codepfad einen Lead, packages/db/migrations/0010_lead_consent.sql).
- Bewertungen einzelner Antworten („Hilfreich? 👍👎",
message_ratings, ohne weitere
Personenbeziehbarkeit über den visitor_hash der zugehörigen Konversation hinaus).
- Wissenslücken (
knowledge_gaps: nur die gestellte Frage, keine Besucherkennung).
Verantwortlicher für diese Daten ist der jeweilige Kunde (Website-Betreiber); AskGuide verarbeitet sie weisungsgebunden. Für Besucher der Kundenwebsite gilt der Datenschutzhinweis-Widget.md, den der Kunde einbindet.
2.5 Nutzungs- und Kostendaten
- Daten: Token-Nutzung und Kosten je LLM-Aufruf (
llm_usage), verknüpft mit Mandant,
Website und ggf. Konversation.
- Zweck: Abrechnung, Budget-Deckel je Mandant (
TENANT_MONTHLY_USD_CAP), Kostentransparenz im
Dashboard.
- Rechtsgrundlage: Art. 6 Abs. 1 lit. b und f DSGVO (Vertragserfüllung, berechtigtes Interesse
an Missbrauchsschutz).
2.6 Server-Logs und Sicherheitsmaßnahmen
- IP-Adressen werden für Ratenbegrenzung nur gehasht verarbeitet (
packages/dbbzw.
apps/api/src/server.ts, addressCeiling), nie im Klartext gespeichert. Rohe Adressen erreichen laut Code-Kommentar keinen Redis-Schlüssel.
- Render (Hoster) führt eigene Infrastruktur-Logs; deren genauer Inhalt und Aufbewahrungsdauer
sind [ENGINEERING-LÜCKE / offene Frage: aus dem Code nicht ersichtlich, bei Render zu erfragen].
3. Cookies und lokale Speicherung
- Sitzungs-Cookie des Dashboards (siehe 2.2): technisch notwendig, kein Consent-Banner erforderlich
(Art. 6 Abs. 1 lit. b bzw. § 25 Abs. 2 Nr. 2 TTDSG/TDDDG).
- [ENGINEERING-LÜCKE: kein Tracking-/Analytics-Cookie im untersuchten Code gefunden. Falls später
Produktanalytics hinzukommt, ist dieser Abschnitt sowie ggf. ein Consent-Banner nachzuziehen.]
4. Empfänger und Auftragsverarbeiter
| Empfänger | Rolle | Sitz / Region | Zweck | Quelle |
|---|---|---|---|---|
| Render | Hosting (Postgres, Redis/Key Value, Anwendungsdienste), Region Frankfurt | Render Inc., USA (Region: EU/Frankfurt) | Infrastrukturbetrieb | ADR 0015, docs/ops/DEPLOY.md |
| Anthropic | LLM-Antworten (Claude API), Klassifikation | USA [Datenverarbeitungsort/DPA nicht in diesem Code-Review verifiziert — offene Frage] | Generierung der Chat-Antworten, Seitenklassifikation | packages/agent, CLAUDE.md „Model routing" |
Mistral AI oder selbstgehostetes Modell (multilingual-e5-large via TEI) | Embeddings (Vektorisierung von Website-Inhalten) | Mistral: Frankreich/EU; TEI: eigene EU-Infrastruktur | Wissens-/Retrieval-Index | ADR 0004; docs/ops/DEPLOY.md §11 (Produktionswahl noch offen) |
| Brevo (Sendinblue SAS) | Versand der Login-/Anmeldelinks (transaktional) | Sendinblue SAS, Paris (Konzernstruktur laut ADR 0015 mit nicht-EU-Bezug) | Zustellung Magic-Link-Mails | ADR 0008, ADR 0015, apps/web/src/lib/login-mailer.ts |
| Google Workspace | Geschäfts-Mailboxen, Antwort-Postfach der Outreach-Kommunikation | Google, USA (Datenregion „Europe" gewählt, Umfang nicht verifiziert) | E-Mail-Kommunikation | ADR 0008 (Entscheidung 2026-09-24), ADR 0015 |
| Stripe (Stripe Payments Europe) | Abrechnung/Billing [noch nicht implementiert] | Stripe Payments Europe (EU-Entität); Konzernmutter Stripe Inc., USA | Rechnungsstellung, Zahlungsabwicklung | ADR 0015 |
Mit jedem Verarbeiter außerhalb der EU/eines Angemessenheitsbeschlusses ist vor Produktivbetrieb ein Auftragsverarbeitungsvertrag inkl. Standardvertragsklauseln (SCC) abzuschließen — laut ADR 0015 für Brevo, Stripe und Render noch ausstehend (Lawyer-Gate, siehe README.md).
5. Speicherdauer
Siehe Loeschkonzept.md für eine Aufschlüsselung je Datenkategorie. Kurzfassung:
- Konto-/Mandantendaten: für die Dauer der Vertragsbeziehung, danach gesetzliche
Aufbewahrungsfristen (Handels-/Steuerrecht) [ENGINEERING-LÜCKE: kein automatisierter Lösch-/Anonymisierungsjob für Tenants/Users im Code gefunden].
- Gesprächsprotokolle, Leads, Bewertungen: aktuell keine automatische Löchung hinterlegt
[ENGINEERING-LÜCKE].
- Demo-Vorschauen (
/demo/<token>): automatisch nach 30 Tagen gelöscht (stündlicher Sweep,
purge_expired_demos(), ADR 0010) — die einzige implementierte automatische Löschung im gesamten System.
6. Betroffenenrechte
Auskunft, Berichtigung, Löschung, Einschränkung, Datenübertragbarkeit, Widerspruch (Art. 15–21 DSGVO) sowie Beschwerderecht bei einer Aufsichtsbehörde (Art. 77 DSGVO). Kontakt: [E-MAIL]. [ENGINEERING-LÜCKE: kein Self-Service-Datenexport/-löschung im Dashboard gefunden — Anfragen laufen aktuell manuell über den Kontakt.]
7. Keine automatisierte Entscheidungsfindung im rechtlichen Sinn
Der KI-Agent beantwortet Fragen auf Basis der Website-Inhalte des Kunden mit Beleg (Zitat); er trifft keine Entscheidung mit rechtlicher Wirkung oder ähnlich erheblicher Beeinträchtigung gegenüber Website-Besuchern (Art. 22 DSGVO). [Vom Anwalt zu bestätigen, insbesondere falls Terminbuchung oder Preisauskünfte als relevant eingestuft werden könnten.]
8. Änderungen dieser Erklärung
[Standard-Änderungsvorbehalt-Klausel — final durch den Anwalt.]