- LICENSE.md: Dual license explanation (MIT + CKL) - LICENSE-MIT.md: Full MIT text with plain language explanation - LICENSE-CKL.md: Full Children's Knowledge License v0.1-draft - OZM-NEXUS-ECOSYSTEM.md: Complete ecosystem architecture and governance - KINDERRECHTE.md: Children's rights operationalization (export/deletion processes) - README.md: Project overview with CKL badge and comprehensive documentation links - CLAUDE.md: Project instructions for Claude Code This establishes Crumbforest as part of the OZM⟡NEXUS ecosystem with: - Dual licensing strategy (developer freedom + child protection) - 8 axioms operationalized through CKL - Clear governance path (OZM as custodian) - DSGVO-compliant children's rights processes - Roadmap through Q4 2025 "Wissen gehört dem Kind, solange es fragt." 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
14 KiB
Deine Rechte bei Crumbforest 🌲
Für Kinder: Das hier gehört DIR. Wir passen darauf auf. Für Eltern: Dieses Dokument operationalisiert CKL §3 (Rechte der Kinder) und ist DSGVO-konform.
📦 Was gehört dir?
Alles, was du erschaffst, gehört dir – nicht uns, nicht der Schule, nicht dem Internet.
Das sind deine Sachen:
- ✍️ Texte: Alle Fragen, die du stellst. Alle Geschichten, die du schreibst.
- 💻 Code: Alle Programme, die du baust (Python, Bash, Blockly...)
- 🎨 Bilder: Alle Zeichnungen und Screenshots
- 📊 Messungen: Alle Daten, die du sammelst (Temperatur, Bewegung, Sensoren...)
- 💬 Chats: Alle Gespräche mit den Charakteren (Krümeleule, FunkFox...)
- 🏗️ Projekte: Alles, was du mit Raspberry Pi, ESP32 oder anderen Tools baust
Wichtig: Auch wenn du das auf einem Computer von Crumbforest machst – du bist der Besitzer oder die Besitzerin!
Das steht so im Gesetz (CKL §3.1 + DSGVO Art. 20).
💾 Wie bekomme ich meine Daten?
Du kannst jederzeit eine Kopie von allem verlangen, was du gemacht hast.
So geht's:
Wenn du mit CrumbCore arbeitest:
Aktuell (Stand 2025-12):
- Sprich mit deinem Lehrer oder deiner Lehrerin
- Oder schreibe eine Email an: [Kontakt wird ergänzt]
- Wir schicken dir dann alles als Datei
Bald (geplant Q1 2025): Du kannst selbst auf einen Knopf drücken:
- Gehe zu deinem Profil
- Klicke auf "Meine Daten herunterladen"
- Du bekommst eine ZIP-Datei mit allem
Die Datei enthält:
meine-crumbforest-daten.zip
├── chats.json (alle Gespräche)
├── projekte/ (deine Projekte)
│ ├── esp32-blink/
│ └── pi-server/
├── messungen.csv (Sensor-Daten)
└── README.txt (Erklärung, was was ist)
Alles in offenen Formaten (JSON, CSV, TXT, PNG) – du kannst es mit jedem Programm öffnen!
Wenn du mit Crumbpages lernst:
- Alle Markdown-Dateien sind sowieso frei zugänglich
- Du kannst sie einfach kopieren: Rechtsklick → Kopieren
- Oder das ganze Repo herunterladen (siehe QUICKSTART.md)
🗑️ Wie lösche ich meine Daten?
Manchmal möchte man nicht, dass alte Sachen gespeichert bleiben. Das ist okay!
Du kannst sagen: "Ich will, dass ihr alles von mir löscht."
So geht's:
Option 1: Alles löschen
- Sprich mit deinem Lehrer/deiner Lehrerin
- Oder schreibe eine Email mit deinen Eltern an: [Kontakt wird ergänzt]
- Schreibe rein: "Bitte löscht alle meine Daten."
Was wir dann tun:
- Wir löschen alle deine Chats aus der Datenbank
- Wir löschen deine Projekte vom Server
- Wir löschen deinen Account
- Wichtig: Vorher fragen wir: "Willst du vorher eine Kopie?"
Das dauert maximal 7 Tage.
Option 2: Nur bestimmte Sachen löschen
Du kannst auch sagen: "Löscht nur dieses Projekt" oder "Löscht nur diese Chat-Nachricht".
Das geht genauso – sag uns einfach, was weg soll.
Bald (geplant Q1 2025):
Du kannst selbst löschen:
- Gehe zu deinem Profil
- Klicke auf "Meine Daten verwalten"
- Wähle aus, was du löschen willst
- Bestätige: "Ja, wirklich löschen"
🔍 Was wird überhaupt gespeichert?
Wir speichern nur, was zum Lernen wichtig ist. Nicht mehr!
Das speichern wir:
| Was? | Warum? | Wo? | Wie lange? |
|---|---|---|---|
| Dein Benutzername | Damit wir wissen, wer du bist | CrumbCore Datenbank | Bis du kündigst |
| Deine Chat-Nachrichten | Damit die Charaktere sich erinnern | CrumbCore Datenbank | Bis du löschst |
| Deine Projekte (Code, Bilder...) | Damit du später weiter machen kannst | CrumbCore Dateisystem | Bis du löschst |
| Sensor-Messungen | Damit du deine Experimente auswerten kannst | CrumbCore Datenbank | Bis du löschst |
| Wann du dich einloggst | Damit wir wissen, ob du noch aktiv bist | CrumbCore Logfiles | 90 Tage |
Das speichern wir NICHT:
- ❌ Keine Passwörter (nur verschlüsselte Hashes)
- ❌ Keine IP-Adressen (außer temporär für Sicherheit)
- ❌ Keine Tracking-Cookies
- ❌ Keine "Werbe-ID" oder ähnliches
- ❌ Keine Bilder von dir (außer du lädst sie hoch für ein Projekt)
- ❌ Keine Sprachaufnahmen
- ❌ Keine Bewegungsprofile
Crumbforest hat kein Google Analytics, kein Facebook Pixel, keine Spionage-Tools.
Wer kann meine Daten sehen?
- Du selbst (immer)
- Dein Lehrer/deine Lehrerin (wenn du in einem Kurs bist)
- Die Admins von Crumbforest (nur für technischen Support)
- Niemand sonst!
Wir verkaufen deine Daten NIEMALS. Nie, nie, nie.
Das ist gesetzlich verboten (DSGVO) und gegen die CKL.
🚪 Was passiert, wenn ich gehe?
Du kannst jederzeit aufhören, bei Crumbforest zu lernen.
Wenn du gehst:
Du kannst wählen:
Option A: Mitnehmen
- Wir geben dir alles als Download
- Du kannst woanders weiter machen
- Wir löschen deine Daten nach 30 Tagen
Option B: Löschen
- Wir löschen sofort alles
- Nichts bleibt übrig
- Du kannst nicht mehr zurück
Option C: Archivieren
- Wir behalten deine Sachen für dich (max. 1 Jahr)
- Du kannst später wieder kommen
- Nach 1 Jahr fragen wir nochmal: "Willst du es noch?"
Ohne Nachteile: Du musst nichts zahlen, du bekommst keinen Ärger, alles ist gut.
Das ist dein Recht (CKL §10.2 + DSGVO Art. 17).
🛡️ Wie sicher sind meine Daten?
Wir nehmen Sicherheit sehr ernst.
Was wir tun:
- 🔒 Verschlüsselung: Passwörter sind verschlüsselt (niemand kann sie lesen)
- 🖥️ Lokaler Server: Deine Daten sind nicht in der "Cloud" (kein Google, kein Amazon)
- 🔐 Zugriffskontrolle: Nur du und dein Lehrer können deine Projekte sehen
- 📝 Logs: Wir schreiben auf, wer was macht (gegen Hacker)
- 🔄 Backups: Wir machen Sicherheitskopien (falls Computer kaputt geht)
- 🗑️ Löschung: Wenn wir löschen, ist es wirklich gelöscht (nicht nur versteckt)
Was du tun solltest:
- ✅ Wähle ein gutes Passwort (nicht "1234")
- ✅ Verrate dein Passwort niemandem (auch nicht Freunden)
- ✅ Melde dich ab, wenn du fertig bist
- ✅ Sag Bescheid, wenn etwas komisch ist
❓ Ich habe eine Frage / Es gibt ein Problem
Für Kinder:
Sprich zuerst mit deinem Lehrer oder deiner Lehrerin.
Wenn das nicht hilft, oder wenn du denkst "Das ist nicht okay", dann:
- Sprich mit deinen Eltern
- Oder schreibe uns: [Kontakt wird ergänzt]
Für Eltern/Sorgeberechtigte:
Sie haben jederzeit das Recht:
- Auskunft über gespeicherte Daten zu verlangen (DSGVO Art. 15)
- Daten korrigieren zu lassen (DSGVO Art. 16)
- Daten löschen zu lassen (DSGVO Art. 17)
- Der Verarbeitung zu widersprechen (DSGVO Art. 21)
- Beschwerde bei der Aufsichtsbehörde einzulegen
Kontakt:
- Email: [wird ergänzt]
- Verantwortlicher: Branko (Lead Maintainer)
- Datenschutzbeauftragter: [wird ergänzt, wenn benötigt]
Aufsichtsbehörde: Je nach Bundesland – siehe: https://www.bfdi.bund.de/DE/Service/Anschriften/Laender/Laender-node.html
📋 Zusammenfassung (für Eltern & Lehrer)
| Recht | Gesetzliche Grundlage | Wie umgesetzt? |
|---|---|---|
| Eigentum an Inhalten | CKL §3.1 | Kinder behalten Urheberrechte |
| Datenportabilität | DSGVO Art. 20, CKL §3.2 | Export-Funktion (geplant Q1 2025) |
| Löschung | DSGVO Art. 17, CKL §3.3 | Löschprozess dokumentiert |
| Auskunft | DSGVO Art. 15 | Auf Anfrage, bald self-service |
| Widerspruch | DSGVO Art. 21 | Jederzeit ohne Nachteile |
| Datenminimierung | DSGVO Art. 5, CKL §5.1 | Nur lernrelevante Daten |
| Transparenz | DSGVO Art. 12-14, CKL §5.3 | Dieses Dokument + DATENSCHUTZ.md |
| Keine Paywalls | CKL §7.3 | Lernkerne kostenlos |
🔧 Technische Umsetzung (für Entwickler)
TODOs für vollständige Compliance:
1. Export-API implementieren
Status: ⏳ Geplant Q1 2025
Endpoint: GET /api/v1/my-data
Authentication: Bearer Token (User muss eingeloggt sein)
Response:
{
"user": {
"username": "kruemel123",
"created_at": "2024-09-15T10:30:00Z",
"last_login": "2025-12-13T14:22:00Z"
},
"messages": [
{
"id": 1,
"character": "Krümeleule",
"timestamp": "2025-12-13T14:00:00Z",
"user_message": "Wie funktioniert Bash?",
"character_response": "Bash ist eine Shell..."
}
],
"projects": [
{
"id": 1,
"name": "ESP32 Blink",
"created_at": "2025-11-01T09:00:00Z",
"files": [
{"filename": "main.py", "content": "...base64..."}
]
}
],
"measurements": [...],
"export_date": "2025-12-13T15:00:00Z",
"format_version": "1.0"
}
Optional: Auch als ZIP-Download verfügbar machen:
# app/routers/data_export.py
from fastapi import APIRouter, Depends
from fastapi.responses import StreamingResponse
import zipfile
import io
@router.get("/my-data.zip")
async def export_data_zip(user = Depends(get_current_user)):
# Erstelle ZIP in Memory
zip_buffer = io.BytesIO()
with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zip_file:
# Füge alle User-Daten hinzu
zip_file.writestr("README.txt", "Deine Crumbforest Daten...")
zip_file.writestr("chats.json", json.dumps(user.messages))
# ... weitere Dateien
zip_buffer.seek(0)
return StreamingResponse(
zip_buffer,
media_type="application/zip",
headers={"Content-Disposition": f"attachment; filename=crumbforest-{user.username}.zip"}
)
2. Lösch-API implementieren
Status: ⏳ Geplant Q1 2025
Endpoint: DELETE /api/v1/my-data
Authentication: Bearer Token + zusätzliche Bestätigung (gegen Unfälle)
Request:
{
"confirm": "DELETE_ALL_MY_DATA",
"reason": "optional feedback"
}
Was gelöscht wird:
# app/services/data_deletion.py
async def delete_user_data(user_id: int):
# 1. Chats aus MariaDB
await db.execute("DELETE FROM messages WHERE user_id = ?", user_id)
# 2. Vektoren aus Qdrant (wenn User-spezifisch)
qdrant_client.delete(
collection_name="crumbforest",
points_selector=models.FilterSelector(
filter=models.Filter(
must=[
models.FieldCondition(
key="user_id",
match=models.MatchValue(value=user_id)
)
]
)
)
)
# 3. Projekte aus Dateisystem
shutil.rmtree(f"/data/projects/{user_id}")
# 4. Sessions
await db.execute("DELETE FROM sessions WHERE user_id = ?", user_id)
# 5. User-Account
await db.execute("DELETE FROM users WHERE id = ?", user_id)
# 6. Logs bereinigen (DSGVO: Personenbezug entfernen)
# Logfiles anonymisieren, nicht löschen (Sicherheit)
await anonymize_logs(user_id)
Response:
{
"status": "deleted",
"deleted_at": "2025-12-13T15:30:00Z",
"items_deleted": {
"messages": 42,
"projects": 3,
"files": 18
}
}
3. DATENSCHUTZ.md erstellen
Status: ⏳ TODO (nächster Schritt nach KINDERRECHTE.md)
Sollte enthalten:
- Detaillierte Datenbank-Schema-Dokumentation
- Welche Tabellen speichern was?
- Retention Policies
- Backup-Strategie
- Incident Response Plan
4. Frontend für Self-Service
Status: ⏳ Geplant Q1 2025
Mockup:
┌─────────────────────────────────────┐
│ Mein Profil │
├─────────────────────────────────────┤
│ │
│ 📦 Meine Daten herunterladen │
│ ├─ Als JSON │
│ └─ Als ZIP (alles) │
│ │
│ 🗑️ Daten löschen │
│ ├─ Nur Chats löschen │
│ ├─ Nur Projekt "X" löschen │
│ └─ ⚠️ ALLES löschen (Account) │
│ │
│ 📊 Was ist gespeichert? │
│ ├─ 42 Chat-Nachrichten │
│ ├─ 3 Projekte (18 Dateien) │
│ └─ Letzter Login: heute 14:22 │
│ │
└─────────────────────────────────────┘
5. Automatische Daten-Bereinigung
Status: ⏳ Geplant Q2 2025
Cron-Job für:
- Alte Sessions löschen (> 90 Tage inaktiv)
- Anonyme Accounts löschen (> 1 Jahr inaktiv)
- Logfiles bereinigen (> 90 Tage alt)
# scripts/cleanup_cron.py
async def cleanup_inactive_users():
threshold = datetime.now() - timedelta(days=365)
inactive_users = await db.fetch_all(
"SELECT id FROM users WHERE last_login < ? AND account_type = 'anonymous'",
threshold
)
for user in inactive_users:
# Email-Warnung 30 Tage vorher (wenn Email vorhanden)
# Dann löschen
await delete_user_data(user.id)
📜 Rechtliche Hinweise
Dieses Dokument ist rechtsverbindlich.
Es konkretisiert die Rechte aus:
- Crumbforest Children's Knowledge License (CKL) v0.1
- DSGVO (Datenschutz-Grundverordnung)
- TMG (Telemediengesetz)
- Kinderrechtskonvention der UN (insb. Art. 16)
Verantwortlicher im Sinne der DSGVO: [Wird ergänzt nach OZM-Transition – aktuell: Branko]
Stand: 2025-12-13 Version: 1.0-draft Nächstes Review: Q1 2025 (nach CKL v1.0 Finalisierung)
🌲 Schlusswort
Crumbforest ist dein Wald.
Alles, was du hier pflanzt, gehört dir. Niemand kann es dir wegnehmen. Du kannst es jederzeit mitnehmen.
Und wenn du Fragen hast? Frag einfach. Das ist dein Recht.
"Wissen gehört dem Kind, solange es fragt."
Lizenz: CC-BY-SA 4.0 (dieses Dokument) Teil von: Crumbforest Ecosystem (https://crumbforest.com) Siehe auch: LICENSE-CKL.md, OZM-NEXUS-ECOSYSTEM.md