1.5 KiB
1.5 KiB
ID: DOC_000004 | Version: 0.1.0 | Status: Draft By: Codex (GPT-5)
Client Update Flow (Kiddo)
Purpose
Definiert den Client-seitigen Ablauf fuer das Pull-Update vom Update-Service.
Manifest Format (JSON)
Beispiel:
{
"version": "0.1.2",
"artifact_url": "https://update.wlkns.org/kiddo/kiddo-0.1.2.tar.gz",
"sha256": "<hex>",
"sig_url": "https://update.wlkns.org/kiddo/kiddo-0.1.2.sig"
}
Flow (High Level)
- Manifest abrufen (auth optional via Bearer Token).
artifact_urlherunterladen.- SHA256 pruefen (Signatur optional).
- In Staging-Verzeichnis entpacken.
- Service stoppen.
- Atomic swap: aktuelles Verzeichnis sichern, Staging nach
/opt/skverschieben. - Service starten.
- Bei Fehlern Rollback auf Backup.
Prototype Script
scripts/update_client.shimplementiert den Flow als CLI-Prototyp.- Erfordert
curl,tar,sha256sum,python3undsystemctl.
Rollback
- Wenn Start fehlschlaegt: Backup nach
/opt/skzurueck, Service neu starten. - Backup-Verzeichnis benoetigt genuegend Speicher.
Security Notes
- Artefakte muessen checksum-verifiziert sein.
- Token-Handling ueber
SKD_UPDATE_TOKEN.
Constraints
- Update-Service ist extern (update.wlkns.org).
- Service muss als root stoppen/starten koennen.
Status Reporting
- Status wird per HTTP POST an
https://update.wlkns.org/statusgemeldet. - Schema siehe
docs/update-status.md. - Lokaler Status/Logs liegen unter
/var/lib/skd(konfigurierbar via ENV).