Pakete & Manifeste
Pakete importieren oder selbst anlegen, validieren, überlagern, per Template pflegen, freigeben und Installer ausliefern.
Woher Pakete kommen
Zwei Wege, ein Paket in den Katalog zu bringen:
- Aus dem Upstream-Katalog importieren — Pakete → Import, den synchronisierten Upstream-Index durchsuchen, eine Version wählen, importieren.
- Selbst anlegen — Paket erstellen und Manifest-YAML direkt hochladen, für rein interne Software ohne Upstream-Eintrag.
Der Upstream-Index spiegelt das gemeinschaftlich gepflegte winget-pkgs-Repository auf GitHub.
Setzen Sie GITHUB_TOKEN (siehe Deployment), um das
Rate-Limit beim Import gegenüber der GitHub-API zu erhöhen; CATALOG_SYNC_ENABLED hält den
durchsuchbaren Index selbst auf dem in CATALOG_SYNC_INTERVAL_HOURS gesetzten Intervall aktuell.
Validierung
Jedes Manifest wird geparst und gegen die offiziellen winget-JSON-Schemas validiert — die Versionen 1.0.0 bis 1.12.0 liegen der Anwendung bei. Ein Manifest, das nicht validiert, wird abgelehnt, bevor es gespeichert wird, mit einer Rückmeldung zum Schemafehler — dem fehlenden Feld, dem falschen Typ oder dem ungültigen Enum-Wert — sodass Clients nie ein Manifest erhalten, das winget selbst nicht lesen kann.
Overlays
Das importierte Upstream-Manifest bleibt exakt so erhalten, wie es ankam. Jede Änderung, die Sie
vornehmen — eine InstallerUrl umbiegen, den Installer-Scope ändern, Metadaten korrigieren — wird
als Overlay darüber gespeichert. Sie können jederzeit den Unterschied zum Upstream ansehen oder
eine Version auf das unangetastete Upstream-Manifest zurücksetzen.
Overlay-Templates
Dasselbe Overlay bei jedem neuen Release zu wiederholen ist mühsam, deshalb lässt sich ein Overlay
zu einem Template verallgemeinern: die Änderung einmal mit $VERSION/$ARCH-Platzhaltern
schreiben, und sie wird automatisch auf jede künftige Version dieses Pakets angewendet.
InstallerUrl: https://files.example.internal/$ARCH/App-$VERSION.msi
Importieren Sie App 2.3.0 heute, schreiben Sie das Template einmal — Version 2.4.0 hat das
passende Overlay in einem halben Jahr schon angewendet, wenn sie eintrifft.
Versionshistorie und Freigabe
Jede Änderung an einer Version wird aufgezeichnet und lässt sich mit früheren Ständen vergleichen; sie landet zusammen mit dem ausführenden Konto im Audit-Log. Eine Version erreicht Clients erst, nachdem ein Reviewer oder Admin sie freigegeben hat — das Dashboard zeigt, was wartet. Das wird in der API erzwungen, nicht nur in der Oberfläche abgebildet.
Installer-Ablage
Zwei Wege, wie ein Manifest auf einen Installer zeigt — Sie wählen pro Paket:
- Auf dem Origin ablegen. Die Datei liegt auf dem eigenen Speicher-Volume des Origin und wird von dort ausgeliefert. Ihr SHA-256 wird bei jeder Auslieferung neu berechnet, sodass eine Datei, die sich unerwartet auf der Platte verändert hat, an wingets Hash-Prüfung scheitert, statt stillschweigend zu installieren.
- Auf eine URL zeigen. Das Manifest behält die Hersteller-URL oder eine interne — auch eine standortspezifische Freigabe, aufgelöst über Site-Platzhalter. kvellman löst die URL je Site auf; es kopiert die Datei dabei nirgendwohin.
kvellman spiegelt Installer nicht von sich aus nach S3, MinIO oder auf eine SMB-Freigabe — wenn Sie das brauchen, hinterlegen Sie die entsprechende URL im Manifest und lassen Sie sie per Platzhalter auflösen.