Add transactional installer and harden runtime operations

This commit is contained in:
2026-08-11 11:35:11 +02:00
parent e8df6042d2
commit a74528e5c6
41 changed files with 3010 additions and 119 deletions
@@ -0,0 +1,40 @@
# Installer-Stabilitätsanalyse vom 11.08.2026
## Ausgangslage
Vor Version 2.1.0 enthielt das Repository keinen Installer für die C#-Anwendung. Die Datei `release/BizTalkPlatformManagementTool.ps1` ist eine ältere PowerShell-Implementierung des Tools und kein Installationsprogramm. Frühere `release/*.zip.txt` waren Base64-Quellpakete ohne Update-, Abnahme- oder Rollbacklogik.
## Implementierte Sicherheitsgrenzen
- Vollständiges internes Payload-Manifest mit Dateipfad, Länge und SHA-256.
- Ablehnung fehlender, veränderter, doppelter, zusätzlicher oder aus dem Payload-Verzeichnis ausbrechender Pfade.
- Keine Mutation vor vollständig bestandenem Manifest- und Staging-Self-Test.
- Update nur bei geschlossener produktiver Toolinstanz.
- Staging und Backup als eindeutige Geschwister des Installationsverzeichnisses auf demselben Volume.
- Zweiter Self-Test nach Aktivierung und vor Windows-Registrierung.
- Automatisches Datei- und Registrierungsrollback bei Fehlern.
- Dauerhaftes phasenbezogenes Installerlog unter ProgramData.
- Deinstallation über Windows-Uninstall-Eintrag; Diagnoseprotokolle bleiben erhalten.
- Äußere ZIP-Prüfsumme und Certutil-kompatible Base64-TXT für kontrollierte Übertragung.
## Lokal verifiziert
- Release-Build aller Projekte mit Mono MSBuild.
- Elf Regressionstests einschließlich manipulierter/zusätzlicher/ausbrechender Payload-Pfade, Staging-Abbruch ohne Mutation, erzwungenem Fehler des zweiten Self-Tests mit Wiederherstellung der Vorversion und Deinstallation über ein Quarantäneverzeichnis.
- WMI-freier Self-Test der produktiven EXE.
- Erstellung des Installationsordners, ZIPs, Base64-TXTs und der SHA-256-Datei.
- Rückdekodierung der Base64-TXT und Bytevergleich mit dem ZIP.
- Erneute Prüfung des internen Manifests nach der Paketierung.
## Noch auf Windows/BizTalk zu validieren
Die lokale Linux-/Mono-Verifikation kann folgende Windows-spezifische Punkte nicht abschließend beweisen:
1. UAC-Anforderung beider EXE-Dateien auf Windows Server 2019/2022.
2. Startmenü- und optionale Desktop-Verknüpfung über Windows Script Host.
3. 64-Bit-Uninstall-Eintrag und Aufruf über Apps & Features.
4. Updateblockade bei laufender installierter GUI.
5. Reales Rollback bei Dateisperren, Virenscannerzugriff oder Registryfehlern.
6. Diagnose und Laufzeitoperationen gegen `root\MicrosoftBizTalkServer` auf BizTalk Server 2020.
Bis diese Punkte repräsentativ geprüft sind, ist der Installer lokal automatisiert gehärtet, aber noch nicht als vollständig produktionsvalidiert auf Windows/BizTalk zu bezeichnen.