feat(sdk): --require-signature ueber LaunchUpdateAgent erreichbar

Der Schalter gab es bisher nur auf der Kommandozeile. LaunchUpdateAgent,
der vom Leitfaden empfohlene Weg, hatte dafuer keinen Parameter - jede
Anwendung, die diesem Weg folgte, aktualisierte damit ungeprueft, waehrend
derselbe Vorgang von Hand geschuetzt gewesen waere.

Neuer optionaler Parameter requireSignature (Vorgabe false, keine
Verhaltensaenderung fuer bestehende Aufrufer). Der oeffentliche Schluessel
muss dafuer nicht separat verwaltet werden, der Agent holt und cached ihn
selbst. SDK auf 2.5.2, Changelog- und Leitfaden-Eintrag ergaenzt.
This commit is contained in:
Deploymentcenter Bot
2026-08-15 13:38:33 +02:00
parent e579ca1acc
commit fc9b698141
4 changed files with 75 additions and 3 deletions
+36
View File
@@ -26,6 +26,12 @@
> - `LaunchUpdateAgent` übergibt jetzt Neustart, Prozesskennung und Plattform,
> siehe **[§2A](#a-referenz-auf-deploymentcenterclient)**.
> **⚠️ Geändert in Version 2.5.2**
> - **`LaunchUpdateAgent` reicht `--require-signature` durch.** Zuvor gab es
> den Schalter nur auf der Kommandozeile — der empfohlene Weg über das SDK
> aktualisierte damit ungeprüft, siehe
> **[§6, "Erzwingen über LaunchUpdateAgent"](#erzwingen-über-launchupdateagent)**.
Das **UpdateService-Modul** des Deploymentcenters bietet ein unternehmensweites, leichtgewichtiges Update-, Rollback- und Reparatur-Schema: statisch ausgelieferte Pakete plus eine PHP-API.
@@ -943,6 +949,36 @@ auf. War der Wechsel beabsichtigt, die Datei löschen.
Ohne hinterlegten Schlüssel bleibt also alles funktionsfähig — es fehlt nur die
Vertrauenskette, und darauf wird bei jedem Update hingewiesen.
### Erzwingen über `LaunchUpdateAgent`
**Seit 2.5.2.** `--require-signature` war vorher nur über die Kommandozeile
erreichbar — `LaunchUpdateAgent`, der empfohlene Weg aus
**[§2A](#a-referenz-auf-deploymentcenterclient)**, hatte dafür keinen
Parameter. Eine Anwendung, die dem Leitfaden folgte, aktualisierte damit
ungeprüft, während derselbe Vorgang von Hand auf der Kommandozeile geschützt
gewesen wäre — ausgerechnet bei dem Feature, das genau diesen Pfad absichern
soll.
```csharp
UpdateClient.LaunchUpdateAgent(
agentPath: agentPath,
projectId: "myapp",
licenseKey: meineLizenz,
requireSignature: true);
```
Um den öffentlichen Schlüssel muss sich niemand zusätzlich kümmern: der Agent
holt und cached ihn ohnehin selbst von `/api/updateservice/v1/pubkey` (siehe
oben, "Prüfen"). `--pubkey` bleibt nötig, wenn ein Schlüssel ohne
Netzwerkzugriff hinterlegt werden soll.
**Erst scharfschalten, wenn wirklich alles signiert ist.** Ist
`security.release_private_key` gesetzt, signiert der Server nur *neue*
Veröffentlichungen — bereits abgelegte Releases bleiben unsigniert, bis sie
erneut veröffentlicht werden. Mit `requireSignature: true` bricht der Agent
bei jedem noch unsignierten Release ab, auch bei einem sonst harmlosen
Downgrade-Schutz oder einer Reparatur auf eine ältere Version.
---
## 7. Release-Verwaltung (Bearbeiten & Löschen)