Files
proxdeploy/docs/issues/004-katalog.md
florian.wildeandClaude Opus 5.5 acae1bc2a4 feat(katalog): Distributionen und Profile als YAML-Daten
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>
2026-10-12 10:11:14 +02:00

1.5 KiB
Raw Permalink Blame History

#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/distros und catalog/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-agent liegen 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 id mü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.