Fünf Distributionen (Debian 12/13, Ubuntu 22.04/24.04/26.04) und drei Profile liegen unter catalog/ und werden beim Start abgeglichen. Die Datei ist maßgeblich für den Inhalt, die Datenbank nur für „aktiv“; verschwundene Einträge werden markiert, nicht gelöscht. Unbekannte Schlüssel sind Fehler, damit Tippfehler nicht still verschwinden; eine kaputte Datei wird mit Pfad gemeldet und übersprungen, statt den Start zu verhindern. Prüfsummen-Parser kennt das Debian-, Ubuntu- und BSD-Format; bei mehreren LXC-Templates gewinnt die höchste Version. Closes #004 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
#004 Katalog: Distributionen und Profile als Daten
Status: erledigt Meilenstein: v0.2.0 Labels: feature, katalog Geschätzt: 5 h Tatsächlich: 0 h 09 min
Ziel
YAML-Katalog laden, validieren, in die DB synchronisieren, in der GUI ansehen und deaktivieren.
Aufgaben
- zod-Schemas für
catalog/distrosundcatalog/profiles - Debian 12/13, Ubuntu 22.04/24.04/26.04 (URLs/Prüfsummen geprüft am 2026-10-12)
- Prüfsummen-Parser für beide Zeilenformate; LXC-Musterauflösung mit Versionssortierung
- Sync beim worker-Start (Upsert, Aktiv-Schalter bleibt), fehlerhafte Datei überspringen + melden
- Katalog-Seite (Distributionen, Profile, aktiv/inaktiv)
Akzeptanzkriterien
- Unit-Tests für Schema, Sync und Muster
Abhängigkeiten
#001
Notizen / Entscheidungen
- Profile
base,docker,zabbix-agentliegen als Daten schon im Katalog; ihre Umsetzung in Shell folgt mit dem Adapter (#005). - Zusätzliche Felder gegenüber der Vorgabe:
os(id, version_id, codename – für Repo-URLs in Profilen),arch,vm.bios,vm.min_disk_gb. - Unbekannte YAML-Schlüssel sind ein Fehler; Dateiname und
idmüssen übereinstimmen. - Verschwundene Einträge werden markiert (
entferntAm), nicht gelöscht – Aufträge verweisen später darauf. - Ein eigenes Profil mit gleicher id wie ein Katalogprofil gewinnt; der Abgleich meldet den Konflikt.
- Abgleich unter Advisory-Lock, weil app und worker beim Start gleichzeitig abgleichen.