Skip to content

ADR-0018: Editor-Updates über statischen latest.json-Feed

  • Status: accepted
  • Datum: 2026-08-26
  • Phase: P2
  • Lastenheft: Editor-Desktop (Auslieferung)

Kontext

Der Editor ist eine Tauri-2-Desktop-App auf Linux, Windows und macOS. Kolleginnen sollen nach der Erstinstallation nicht jedes Mal ein Installer-Paket per Chat bekommen. Der Feed muss auf linetra.nasarek.dev liegen (gleiches Hosting wie das Dashboard). Das Repo ist git.nasarek.dev, nicht GitHub. Artefakte sind minisign-signiert (createUpdaterArtifacts).

Entscheidung

Gate Wahl Warum hier Verworfen
Mechanismus Offizielles tauri-plugin-updater Ein Plugin für alle drei OS; Signaturprüfung im Client Sparkle / WinSparkle / eigene MSI-CustomAction
Feed Statische https://linetra.nasarek.dev/editor-updates/latest.json Kein Release-Server, kein GitHub; NAS kann Dateien per HTTPS ausliefern GitHub Releases als Endpoint — Repo ist nicht auf GitHub
Auslösung Hilfe → Auf Updates prüfen (Dialog: Installieren oder Abbrechen) GIS-Arbeitsplatz: Nutzer bestätigt Download; kein stiller Austausch der Binary Auto-Download beim Start ohne Rückfrage
Version anzeigen Hilfe → Über Linetra Editor Support braucht die installierte SemVer, unabhängig vom Update-Check Nur Statuszeile / nur package.json im Browser

Linux-Updater-Artefakt ist die AppImage (plus .sig); .deb / .rpm bleiben Erstinstallation. Windows: NSIS .exe (ADR-0014). macOS: .app.tar.gz für den Updater, .dmg für die Erstinstallation (ADR-0016).

Begründung

Tauri erwartet genau dieses JSON-Schema (version, notes, pub_date, platforms.<triple>.{url,signature}). Eine Datei neben den Bundles auf dem bestehenden HTTPS-Host ist der übliche Weg für selbst gehostete Tauri-Apps ohne Store.

Verworfene Alternativen

Alternative Warum verworfen
GitHub Releases / {{current_version}} Endpoint Extra-Remote, Secrets-Kopie des Updater-Keys, passt nicht zu git.nasarek.dev
Microsoft Store / Flathub / App Store als Update-Kanal Extra-Accounts, Review, abweichende Signatur; NAS bleibt Erstverteilung
Eigenes FastAPI-Release-Endpoint Unnötiger Dienst; der Feed ändert sich nur bei einem Release
Auto-Install beim Start Kann eine laufende GIS-Sitzung unterbrechen; Prüfung bleibt ein Menübefehl
Nur Chat/USB mit neuem Installer Skaliert nicht; Updater-Plugin wäre tot

Folgen

Nach jedem Release: Version in tauri.conf.json / package.json / Cargo.toml anheben, signiert bauen, Bundles + .sig und latest.json nach editor-updates/files/ legen (HTTPS /editor-updates/). Client prüft SemVer gegen die lokale Version aus dem Tauri-Bundle. Schlüsselverlust → neues minisign-Paar und einmalige Neuinstallation bei den Nutzern.