DSGVO und Datenschutz (cockpitOS)
Diese Seite beschreibt technische und organisatorische Maßnahmen von cockpitOS für Besucher-Websites, externe Frontends (API/v0) und das Redaktions-Dashboard. Sie ersetzt keine Rechtsberatung — der Center-Betreiber bleibt Verantwortlicher und pflegt Impressum sowie Datenschutzerklärung.
Rollen
| Rolle | Wer | cockpitOS |
|---|---|---|
| Verantwortlicher | Center / Website-Betreiber | — |
| Auftragsverarbeiter | Plattformbetreiber (Hosting, Betrieb) | Dashboard, API, Speicherung |
| Unterauftragsverarbeiter | OpenAI, Resend, DeepL, ggf. Cloudflare, Google Maps | dokumentieren im AV-Vertrag |
Was CockpitOS umsetzt
Besucher-Website (Templates & v0-Builds)
| Thema | Umsetzung |
|---|---|
| Cookie-Banner | Opt-in (vanilla-cookieconsent), Kategorien: notwendig, Analytics, extern (Maps/Schriften) |
| Analytics (Umami) | Script erst nach Analytics-Einwilligung; DNT respektiert |
| KI-Chat | Separater Opt-in-Dialog; Server prüft chatConsentAccepted bei client=website |
| Session-ID | Zufällig im Browser — nicht aus IP abgeleitet |
| Bot-Analytics in DB | Nur anonymisierte queryNormalized (80 Zeichen), Intents, erwähnte Shop-IDs |
| Feedback aus Chat | Freitext anonymisiert vor Speicherung |
| Kontaktformular | Serverseitiger Versand (Resend), Empfänger-Allowlist, Rate-Limit |
| Öffentliche API | Whitelist (public-visitor-surface) — keine Secrets im Browser |
| Schriften | Presets via next/font (self-hosted); Google Fonts URLs blockiert |
| Google Maps (Centerplan) | JS-API nur nach Cookie-Kategorie external |
| DNT / Analytics-Opt-out | Schalter aus Dashboard; Footer „Analytics deaktivieren“ wenn aktiviert |
Konfiguration: Einstellungen → Datenschutz (/dashboard/settings/privacy) und Center → Webseite → Legal.
CockpitOS Dashboard (Redaktion)
- Login, Rollen, Center-Zuweisungen — personenbezogene Nutzerdaten
- DeepL/ OpenAI nur serverseitig (Keys in Env), nicht im Browser
- Kein vollständiges DSAR-Portal — Betroffenenanfragen prozessual beim Center
Aufbewahrung (Retention)
Cron: POST /api/cron/privacy-retention (Auth: Bearer CRON_SECRET)
Löscht nach PRIVACY_RETENTION_DAYS (Default 365):
ChatbotInteractionCenterUsageEvent- Chatbot-
Feedback(source=chatbotoderlocationType=chatbot)
Siehe Cron-Setup.
Drittlandübermittlungen (Auswahl)
| Dienst | Zweck | Typische Absicherung |
|---|---|---|
| OpenAI | KI-Chat, interne KI | API-DPA, SCC, kein Training (API-Policy) |
| Resend | Kontakt-E-Mails | AV-Vertrag |
| DeepL | Redaktions-Übersetzung | AV (EU) |
| Google Maps | Centerplan (optional) | Einwilligung Kategorie external |
| Umami | Analytics | Self-hosted (Standort im Betrieb dokumentieren) |
Was der Center-Betreiber pflegen muss
- Datenschutzerklärung — Abschnitte: Cookies, Analytics, KI-Assistent, Kontakt, Maps
- AV-Verträge mit Plattform und Subprozessoren
- Consent-Texte im Cockpit (Datenschutz-Einstellungen)
- Prozess für Auskunft/Löschung/Beschwerden (kein automatisches Ticket-System in cockpitOS)
- Bei v0-Go-Live:
V0AnalyticsSnippet, Chat-Consent, keine Secrets im Frontend
v0-Frontends (Vercel, extern)
| Thema | Über API? | v0 muss selbst … |
|---|---|---|
| Branding, Inhalte, API-URLs | Ja — GET …/public-visitor-surface (templatePublicContent, apiHints) | Layout anbinden |
| Analytics (Umami) | Ja — data.tracking + <V0AnalyticsSnippet centerId="…" /> | Cookie-Banner (oder cc_cookie mit Kategorie analytics) |
| DNT / Opt-out-Schalter | Ja — data.tracking.respectDNT, trackingOptOut | V0AnalyticsSnippet setzt Regeln; Opt-out-Link im v0-Footer optional (localStorage cockpit-tracking-opt-out) |
| KI-Chat | API ja — POST …/visitor-chatbot | Consent-Dialog + chatConsentAccepted: true vor erster Nachricht |
| Google Maps / externe Fonts | Keys/URLs ggf. in API | Kategorie external im Cookie-Banner — nicht automatisch in v0 |
Kurz: Daten und Schalter kommen aus der API, Consent-UI und Drittanbieter-Einbindung müssen im v0-Build umgesetzt werden (oder Nutzer nutzen die Cockpit-Center-Website als Referenz).
Textbausteine (Center-DSE): siehe intern apps/center-website/docs/DATENSCHUTZ-TEXT.md.
Was cockpitOS bewusst nicht abdeckt
- Externes CMP (Usercentrics, Cookiebot) als Vollprodukt
- Automatisches DSAR-Workflow-Portal
- Rechtliche Bewertung der Formulierungen
Details zur Dashboard-Seite Datenschutz & Einwilligung: Datenschutz & Einwilligung.
So testen
- Center-Website: Cookie-Banner → nur notwendig → Umami-Script nicht in DevTools Network
- Analytics akzeptieren →
script.jsvon Umami lädt - Chat: ohne Consent keine Antwort (403); mit Consent Antwort
- Centerplan mit Google-Key: ohne external-Consent Hinweis statt Karte
- Cron dry-run:
curl -X POST …/api/cron/privacy-retention -H "Authorization: Bearer $CRON_SECRET"
Betrieb
| Env | Bedeutung |
|---|---|
CRON_SECRET | Auth für Retention-Cron |
PRIVACY_RETENTION_DAYS | Löschfrist Bot-Analytics (Default 365) |
COCKPIT_DISABLE_PUBLIC_VISITOR_RATE_LIMIT=1 | Rate-Limits aus (nur Tests) |
NEXT_PUBLIC_UMAMI_DEV_WITHOUT_CONSENT=1 | Umami ohne Consent (nur lokale Dev) |
Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /plattform/dsgvo-und-datenschutz