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>
This commit is contained in:
@@ -100,3 +100,42 @@ model Server {
|
||||
erstelltAm DateTime @default(now())
|
||||
geaendertAm DateTime @updatedAt
|
||||
}
|
||||
|
||||
enum Herkunft {
|
||||
KATALOG
|
||||
EIGEN
|
||||
}
|
||||
|
||||
/// Spiegel von catalog/distros/*.yaml. Die Datei ist maßgeblich; nur `aktiv` gehört der Datenbank.
|
||||
model Distribution {
|
||||
id String @id
|
||||
name String
|
||||
familie String
|
||||
/// Validierter Inhalt der YAML-Datei.
|
||||
definition Json
|
||||
quelltext String
|
||||
dateiHash String
|
||||
aktiv Boolean @default(true)
|
||||
/// Gesetzt, wenn die Datei aus dem Katalog verschwunden ist – die Zeile bleibt für den Verlauf.
|
||||
entferntAm DateTime?
|
||||
synchronisiertAm DateTime
|
||||
geaendertVonId String?
|
||||
}
|
||||
|
||||
/// Profile aus catalog/profiles/*.yaml (KATALOG, schreibgeschützt) und eigene aus der GUI (EIGEN).
|
||||
model Profil {
|
||||
id String @id
|
||||
name String
|
||||
beschreibung String?
|
||||
familien String[]
|
||||
herkunft Herkunft
|
||||
definition Json
|
||||
/// YAML wie eingegeben – Kommentare bleiben erhalten.
|
||||
quelltext String
|
||||
dateiHash String?
|
||||
aktiv Boolean @default(true)
|
||||
entferntAm DateTime?
|
||||
synchronisiertAm DateTime?
|
||||
geaendertVonId String?
|
||||
geaendertAm DateTime @updatedAt
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user