feat(cmp): GDPR-compliant DSE + consent re-open button
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 41s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 29s

- Rewrite Datenschutzerklaerung: cookie section with bp_consent table,
  legal basis (Art. 6(1)(a) + §25 TDDDG), DPO, Hetzner hosting, Google
  Fonts DPF, retention periods, all data subject rights (Art. 15-21),
  supervisory authority (LfD Niedersachsen)
- Add "Cookie-Einstellungen" re-open button in footer (Art. 7(3) DSGVO)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-11 08:07:35 +02:00
parent 5f193c8a72
commit 79810f4eb8
2 changed files with 132 additions and 18 deletions
+114 -15
View File
@@ -10,7 +10,7 @@ export default function DatenschutzPage() {
<h1 className="text-4xl font-bold mb-8">Datenschutzerklaerung</h1>
<div className="space-y-6 text-white/60 text-sm">
<div className="space-y-6 text-white/60 text-sm leading-relaxed">
<div>
<h2 className="text-lg font-semibold text-white mb-2">1. Verantwortlicher</h2>
<p>BreakPilot GmbH (i.Gr.)</p>
@@ -19,23 +19,66 @@ export default function DatenschutzPage() {
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">2. Hosting</h2>
<h2 className="text-lg font-semibold text-white mb-2">2. Datenschutzbeauftragter</h2>
<p>
Diese Website wird auf Servern in Deutschland gehostet.
Es werden keine personenbezogenen Daten an Drittlaender uebermittelt.
[Wird nach Gruendung benannt]<br />
E-Mail: datenschutz@breakpilot.ai
</p>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">3. Keine Cookies, kein Tracking</h2>
<h2 className="text-lg font-semibold text-white mb-2">3. Hosting</h2>
<p>
Diese Website verwendet keine Cookies, kein Tracking und keine Analyse-Tools.
Es werden keine personenbezogenen Daten erhoben oder gespeichert.
Diese Website wird auf Servern der Hetzner Online GmbH in Deutschland gehostet.
Es findet kein Drittlandtransfer fuer das Hosting statt.
Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an zuverlaessigem Betrieb).
</p>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">4. Server-Logfiles</h2>
<h2 className="text-lg font-semibold text-white mb-2">4. Cookies und Einwilligungsverwaltung</h2>
<p>
Diese Website verwendet ein Consent-Management-System (BreakPilot CMP), um Ihre Cookie-Einstellungen
zu verwalten. Beim ersten Besuch wird Ihnen ein Cookie-Banner angezeigt, ueber das Sie Ihre
Einwilligung fuer verschiedene Cookie-Kategorien erteilen oder verweigern koennen.
</p>
<p className="mt-2">
<span className="text-white font-medium">Rechtsgrundlage:</span> Art. 6 Abs. 1 lit. a DSGVO (Einwilligung)
i.V.m. Paragraph 25 Abs. 1 TDDDG fuer nicht-essenzielle Cookies.
Fuer technisch notwendige Cookies: Paragraph 25 Abs. 2 TDDDG (unbedingt erforderlich).
</p>
<h3 className="text-sm font-semibold text-white mt-4 mb-2">Eingesetzte Cookies</h3>
<div className="overflow-x-auto">
<table className="w-full text-xs border border-white/10">
<thead>
<tr className="border-b border-white/10 text-white/80">
<th className="text-left px-3 py-2">Name</th>
<th className="text-left px-3 py-2">Anbieter</th>
<th className="text-left px-3 py-2">Zweck</th>
<th className="text-left px-3 py-2">Speicherdauer</th>
<th className="text-left px-3 py-2">Typ</th>
</tr>
</thead>
<tbody className="divide-y divide-white/5">
<tr>
<td className="px-3 py-2 font-mono">bp_consent</td>
<td className="px-3 py-2">BreakPilot (First-Party)</td>
<td className="px-3 py-2">Speichert Ihre Cookie-Einwilligung</td>
<td className="px-3 py-2">12 Monate</td>
<td className="px-3 py-2">Notwendig</td>
</tr>
</tbody>
</table>
</div>
<p className="mt-2">
Sie koennen Ihre Einwilligung jederzeit widerrufen, indem Sie den Link
&quot;Cookie-Einstellungen&quot; im Seitenfuss klicken. Der Widerruf ist gemaess Art. 7 Abs. 3 DSGVO
genauso einfach wie die Erteilung der Einwilligung.
</p>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">5. Server-Logfiles</h2>
<p>
Der Hosting-Provider erhebt technisch notwendige Logfiles (IP-Adresse, Browsertyp, Zeitstempel).
Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der Sicherheit).
@@ -44,20 +87,76 @@ export default function DatenschutzPage() {
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">5. Externe Schriften</h2>
<h2 className="text-lg font-semibold text-white mb-2">6. Externe Schriften</h2>
<p>
Diese Website laedt Schriftarten von Google Fonts. Dabei wird Ihre IP-Adresse an Google LLC uebermittelt.
Diese Website laedt Schriftarten von Google Fonts. Dabei wird Ihre IP-Adresse an Google LLC,
1600 Amphitheatre Parkway, Mountain View, CA 94043, USA uebermittelt.
Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO.
Weitere Informationen: https://policies.google.com/privacy
Google ist unter dem EU-US Data Privacy Framework (DPF) zertifiziert (Angemessenheitsbeschluss
der EU-Kommission vom 10. Juli 2023).
</p>
<p className="mt-1">
Weitere Informationen:{' '}
<a href="https://policies.google.com/privacy" className="text-accent-electric hover:underline" target="_blank" rel="noopener noreferrer">
policies.google.com/privacy
</a>
</p>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">6. Ihre Rechte</h2>
<h2 className="text-lg font-semibold text-white mb-2">7. Zwecke der Verarbeitung</h2>
<ul className="list-disc list-inside space-y-1">
<li>Bereitstellung und Betrieb der Website (Art. 6 Abs. 1 lit. f DSGVO)</li>
<li>Verwaltung Ihrer Cookie-Einwilligungen (Art. 6 Abs. 1 lit. c DSGVO Nachweispflicht Art. 7 Abs. 1 DSGVO)</li>
<li>Kontaktaufnahme per E-Mail (Art. 6 Abs. 1 lit. b DSGVO vorvertragliche Massnahmen)</li>
</ul>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">8. Empfaenger und Auftragsverarbeiter</h2>
<ul className="list-disc list-inside space-y-1">
<li>Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen Hosting (AVV nach Art. 28 DSGVO)</li>
<li>Google LLC Schriftarten (Google Fonts CDN, EU-US DPF)</li>
</ul>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">9. Speicherdauer</h2>
<ul className="list-disc list-inside space-y-1">
<li>Server-Logfiles: 7 Tage</li>
<li>Cookie-Einwilligung (bp_consent): 12 Monate</li>
<li>Consent-Nachweis (Backend): 13 Monate (CNIL-Empfehlung)</li>
</ul>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">10. Ihre Rechte</h2>
<p>Sie haben gegenueber uns folgende Rechte bezueglich Ihrer personenbezogenen Daten:</p>
<ul className="list-disc list-inside space-y-1 mt-2">
<li>Recht auf Auskunft (Art. 15 DSGVO)</li>
<li>Recht auf Berichtigung (Art. 16 DSGVO)</li>
<li>Recht auf Loeschung (Art. 17 DSGVO)</li>
<li>Recht auf Einschraenkung der Verarbeitung (Art. 18 DSGVO)</li>
<li>Recht auf Datenuebertragbarkeit (Art. 20 DSGVO)</li>
<li>Recht auf Widerspruch (Art. 21 DSGVO)</li>
</ul>
<p className="mt-2">
Zur Ausuebung Ihrer Rechte wenden Sie sich an: datenschutz@breakpilot.ai
</p>
</div>
<div>
<h2 className="text-lg font-semibold text-white mb-2">11. Beschwerderecht</h2>
<p>
Sie haben das Recht auf Auskunft (Art. 15 DSGVO), Berichtigung (Art. 16), Loeschung (Art. 17),
Einschraenkung (Art. 18), Datenuebertragbarkeit (Art. 20) und Widerspruch (Art. 21).
Beschwerderecht bei der zustaendigen Aufsichtsbehoerde.
Sie haben das Recht, sich bei einer Aufsichtsbehoerde zu beschweren.
Zustaendig fuer uns ist:
</p>
<p className="mt-1">
Die Landesbeauftragte fuer den Datenschutz Niedersachsen<br />
Prinzenstrasse 5, 30159 Hannover<br />
<a href="https://www.lfd.niedersachsen.de" className="text-accent-electric hover:underline" target="_blank" rel="noopener noreferrer">
www.lfd.niedersachsen.de
</a>
</p>
</div>
</div>
+18 -3
View File
@@ -1,8 +1,14 @@
'use client'
import { Cookie } from 'lucide-react'
import { t } from '@/lib/content'
import { useApp } from '@/lib/context'
function reopenConsentBanner() {
localStorage.removeItem('bp_consent')
window.location.reload()
}
export default function Footer() {
const { lang } = useApp()
const i = t(lang)
@@ -59,9 +65,18 @@ export default function Footer() {
<p className="text-xs text-white/20">
&copy; {year} {i.footer.copyright}. Alle Rechte vorbehalten.
</p>
<p className="text-xs text-white/20 font-mono">
{i.footer.madeIn}
</p>
<div className="flex items-center gap-4">
<button
onClick={reopenConsentBanner}
className="text-xs text-white/20 hover:text-white/50 transition-colors flex items-center gap-1.5"
>
<Cookie className="w-3 h-3" />
Cookie-Einstellungen
</button>
<p className="text-xs text-white/20 font-mono">
{i.footer.madeIn}
</p>
</div>
</div>
</div>
</footer>