Import- und Export-Workflow
Generated artifact. Do not edit manually.
Generated by:
scripts/build_compendia.pyRegenerate with:python3 scripts/build_compendia.py --compendium runtime-workflows --web-and-texSource of truth:docs/concept/runtime-workflows/source/
Sprache / Language: Deutsch (DE) · English (EN) | PDF: Deutsches PDF · English PDF
Kompendium: §1 Personalisierung · §2 Lernablauf · §3 SRS-Sync · §4 Import/Export · §5 Portabler Host · §6 Kommunikationsvertrag · §7 Coach-Topologie · §8 OAuth & Session · §9 Verhaltensintegration · §10 Plugin-Lifecycle
4. Import- und Export-Workflow
Dieses Kapitel spezifiziert die Portabilitätsabläufe für den Umzug pseudonymer Lernstände zwischen SkillPilot-Konten bzw. -Instanzen sowie für die clientseitige Verschlüsselung lokaler Lehrkraft-Klassendateien.
4.1. Export, Signaturprüfung und Import des Lernstands
Der Lernstands-Import/Export gewährleistet manipulationsgeschützte Datenportabilität:
- Enthalten: gewähltes Curriculum, aktivierte Module/Personalisierung, Mastery-Zustand, geplante Ziele, Provenienz (
copySources) und clientseitiger SRS-Zustand. -
Ausgeschlossen & garantiert: keinerlei Klarnamen/PII; ein Export verändert das Quellprofil nie, und beim Import behält das Zielprofil seine eigene
skillpilotId. -
Export: Das Backend erstellt ein per HMAC-SHA256 signiertes
serverExport-Paket (berechnet über geparste Werte, sodass Whitespace/Schlüsselreihenfolge unkritisch sind, jede Wertänderung jedoch die Signatur bricht), und das Frontend bündelt es zusammen mitclientData.srsStatein einem versionierten"2.0"-JSON-Umschlag. - Import: Das Backend prüft die HMAC-SHA256-Signatur, übernimmt die Curriculum-Einstellungen, aktualisiert die binären Beherrschungsergebnisse importierter Ziele (unberührte Ziele bleiben erhalten; historische Zwischenwerte sind reine Speicherkompatibilität, siehe 2.4), ersetzt geplante Ziele, hängt Quell-
skillpilotIdund Zeitstempel an diecopySources-Provenienz an und lässt den BrowsersrsStateauf die Ziel-ID umschlüsseln. Nach der Produktkorrektur vom 4. November 2026 wird effektive Beherrschung aus expliziten Ergebnissen und ihren festen Autorenverträgen abgeleitet, ohne gültige Anerkennung durch Planwechsel zu entziehen oder alte Ergebnisse durch spätere Graphkanten auszuweiten.
{
"version": "2.0",
"exportedAt": "2024-05-20T10:00:00.000Z",
"serverExport": {
"data": { "learner": {}, "mastery": {}, "plannedGoals": [], "copySources": [] },
"signature": "<hmac-sha256>"
},
"clientData": {
"srsState": { "srs_state_USERID_GOALID": {} }
}
}
4.2. Lokale Klassendateien von Lehrkräften
Lokale Trainer-Klassen bilden einen getrennten, vollständig im Browser verschlüsselten Pfad, da sie Klarnamen/Aliase auf permanente SkillPilot-IDs abbilden; sie sind keine Lernstandsexporte und werden vom Backend weder gesehen noch signiert:
- Die Lehrkraft vergibt und bestätigt eine Passphrase von mindestens 15 Zeichen (mit konsistenter Unicode-Normalisierung vor der Schlüsselableitung).
- Eine validierte lokale
ClassSessionwird als versioniertesskillpilot-trainer-class-Payload serialisiert. - PBKDF2-SHA-256 (
600.000Iterationen, frischer 16-Byte-Salt) leitet einen AES-256-GCM-Schlüssel ab (frischer 12-Byte-IV, 128-Bit-Tag, feste Klassendatei-AAD). - Ausschließlich der verschlüsselte Umschlag wird unter dem neutralen Dateinamen
skillpilot-class-YYYY-MM-DD.skillpilotheruntergeladen (ohne Klassennamen im Dateinamen).
Algorithmus, Iterationszahl, Version, Zweck, Base64-Felder, Ciphertext und entschlüsseltes Payload werden vor der Übernahme strikt geprüft: Erkannte verschlüsselte Umschläge fallen niemals auf Klartext-Parsing zurück, und falsche Passphrasen sowie manipulierte Daten erzeugen dieselbe nicht-technische Fehlermeldung. Ältere Klartextdateien (skillpilot-class-*.json) bleiben mit explizitem Hinweis auf erneuten verschlüsselten Export importierbar. Da entschlüsselte Klassendateien permanente SkillPilot-IDs mit vollem Lernendenzugriff wiederherstellen (siehe Lehrkraftansicht per SkillPilot-ID), sind sie wie Bearer-Secret-Container zu schützen; die Dateiverschlüsselung schützt Downloads at rest, nicht ein entsperrtes lokales Browserprofil.