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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user