From b78a8c1ff3a8736cf65cdce693361a4931013ab0 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe <259325684+Sucukdeluxe@users.noreply.github.com> Date: Tue, 22 Sep 2026 04:40:42 +0200 Subject: [PATCH] Prepare 2.1.46 release and verify recovery deployment staging --- PROJECT_MEMORY.md | 7 +++++-- package-lock.json | 4 ++-- package.json | 2 +- services/backup-api/package-lock.json | 4 ++-- services/backup-api/package.json | 2 +- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/PROJECT_MEMORY.md b/PROJECT_MEMORY.md index b9a7f16..d191663 100644 --- a/PROJECT_MEMORY.md +++ b/PROJECT_MEMORY.md @@ -7,7 +7,10 @@ Multi-Hoster-Upload ist eine Electron-Desktopanwendung für Windows, die große ## Aktueller Zustand - Lokale Erweiterung: Online-Backups erhalten einen RSA-3072/OAEP-SHA256-verschlüsselten Wiederherstellungsumschlag, der an die Datensatzkennung gebunden ist. Der private Wiederherstellungsschlüssel bleibt außerhalb des Servers. Verwaltungswerkzeug: `scripts/backup-recovery.cjs`; Einrichtung und Offline-Wiederherstellung stehen in der README. -- Noch nicht produktiv aktiviert oder veröffentlicht: Zuerst ein lokales Schlüsselpaar separat sichern, dann ausschließlich den öffentlichen Schlüssel über `RECOVERY_PUBLIC_KEY_FILE` im aktualisierten Sicherungsdienst konfigurieren. Der neue Client verweigert neue Exporte ohne verfügbaren öffentlichen Schlüssel. Alte Clients und bisherige Importe bleiben kompatibel. Keine Live-Datenänderung vorgenommen; Aktivierung benötigt das gesonderte Go nach Backup- und Staging-Prüfung. +- Veröffentlichung vorbereitet für Anwendung `2.1.46` und Backup-API `2.0.5`, noch nicht produktiv aktiviert oder veröffentlicht. Schlüsselpaar lokal außerhalb des Projekts in einem auf Benutzerkonto und SYSTEM beschränkten Ordner eingerichtet; privater Schlüssel nie auf den Server übertragen. Eine unabhängige Sicherung im Passwortmanager/Offline-Speicher bleibt erforderlich. Der neue Client verweigert neue Exporte ohne verfügbaren öffentlichen Schlüssel. Alte Clients und bisherige Importe bleiben kompatibel. Aktivierung benötigt das gesonderte Go nach Backup- und Staging-Prüfung. +- Am 22.09.2026: Live-Dienst `2.0.4` aktiv, 12 Datensätze. Sicherung `/var/backups/mhu-backup-api/20260922-pre-recovery.tar.gz` enthält Daten, Konfiguration, Dienstdefinition und bisherigen Programmstand. Gzip-Test erfolgreich; SHA-256 `4adeaae898317b1bbb179df019782065852a84647daa95da2d6147b61fe28838` entspricht der lokalen geschützten Kopie. Staging auf entpackter Kopie: alle 12 bestehenden Datensätze unverändert lesbar; Erstellen, private Wiederherstellung, Import und Löschen eines neuen Testbackups erfolgreich. Keine produktiven Datensätze verändert. +- Release-Vorbereitung `2.1.46`: Installer 98.032.406 Bytes, Portable 97.807.695 Bytes, beide Produktversion `2.1.46`. Verpackte Wiederherstellungsmodule stimmen mit dem Quellcode überein; keine privaten Schlüssel oder Nutzerdaten enthalten. Installer-SHA-512 und Größe passen zum Update-Manifest. Erneut 822 Haupttests, 17 Servertests und Lint erfolgreich. Englische/deutsche Release-Texte lokal vorbereitet; noch keine Tags oder Releases angelegt. +- Nächster freizugebender Live-Schritt: ausschließlich öffentlichen Schlüssel als `/etc/mhu-backup-recovery-public.pem` installieren, Backup-API `2.0.5` in `/opt/mhu-backup-api/releases/20260922-v2.0.5` bereitstellen, `RECOVERY_PUBLIC_KEY_FILE` in `/etc/mhu-backup-api.env` ergänzen, `current` auf neuen Dienststand umstellen und Dienst neu starten. Nach Wiederherstellungs-Smoke mit einem eigenen Testdatensatz (anschließend ausschließlich diesen löschen) Anwendung `2.1.46` auf beiden Plattformen veröffentlichen und Assets/Updater verifizieren. Vor Aktivierung erneut Live-Zustand und Sicherungskonsistenz prüfen; ursprüngliche 12 Datensätze nicht migrieren oder verändern. Rückfallziel: bisheriger Dienstpfad und gesicherte Konfiguration. - Aktive Arbeitslinie: `master` aus `Sucukdeluxe/Multi-Hoster-Upload`. - Zuletzt veröffentlichter Funktionsstand: Version `2.1.45`, Release-Commit `05769cd`. @@ -73,7 +76,7 @@ Stand: 22.09.2026 (lokale Wiederherstellungserweiterung; Produktions- und Releas - Lint: erfolgreich, 0 Warnungen und 0 Fehler. - Haupttests: 822 erfolgreich, 0 fehlgeschlagen; einschließlich vier neuer Wiederherstellungstests und öffentlicher Quellmanifest-Prüfung (163 Dateien). -- Wiederherstellung lokal Ende-zu-Ende geprüft: öffentliche Schlüsselabfrage, verschlüsselter Serverdatensatz, normaler Import, private Offline-Wiederherstellung und Löschen. Falsche Schlüssel, beschädigte Daten, Kennungstausch, Ablauf, fehlende Serverkonfiguration und Überschreiben bestehender Schlüssel/Ausgabedateien werden geprüft. Anleitung zusätzlich auf dem lokalen Desktop abgelegt; keine produktiven privaten Schlüssel erzeugt. +- Wiederherstellung lokal Ende-zu-Ende geprüft: öffentliche Schlüsselabfrage, verschlüsselter Serverdatensatz, normaler Import, private Offline-Wiederherstellung und Löschen. Falsche Schlüssel, beschädigte Daten, Kennungstausch, Ablauf, fehlende Serverkonfiguration und Überschreiben bestehender Schlüssel/Ausgabedateien werden geprüft. Anleitung auf dem lokalen Desktop mit eingerichteten Schlüsselpfaden und Sicherungsnachweis aktualisiert. - Backup-API-Tests: 17 erfolgreich, 0 fehlgeschlagen. - Der Regressionstest für die VOE-Fallback-Kette bestätigt bei deaktivierter normaler Rotation genau einen Versuch auf jedem vollen Account und anschließend den erfolgreichen Wechsel auf den vierten Account. - Der öffentliche DoodStream-Webablauf wurde am 12.09.2026 direkt gegen die Startseite und deren aktuelle Browser-Skripte geprüft. Regressionstests bilden den neuen GET-Login, `otp_sent`, `redirect`, Vue-Sessiontokens mit `_`/`-` und die aktuelle `upload_get_srv`-Antwort nach. diff --git a/package-lock.json b/package-lock.json index b592adf..170f350 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "multi-hoster-uploader", - "version": "2.1.45", + "version": "2.1.46", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "multi-hoster-uploader", - "version": "2.1.45", + "version": "2.1.46", "dependencies": { "chokidar": "^3.6.0", "undici": "^7.29.0", diff --git a/package.json b/package.json index b1c80c4..42a9d4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "multi-hoster-uploader", - "version": "2.1.45", + "version": "2.1.46", "description": "Upload files to doodstream, voe, vidmoly, byse simultaneously", "main": "main.js", "scripts": { diff --git a/services/backup-api/package-lock.json b/services/backup-api/package-lock.json index a0145cc..a4e5322 100644 --- a/services/backup-api/package-lock.json +++ b/services/backup-api/package-lock.json @@ -1,12 +1,12 @@ { "name": "multi-hoster-uploader-backup-api", - "version": "2.0.4", + "version": "2.0.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "multi-hoster-uploader-backup-api", - "version": "2.0.4", + "version": "2.0.5", "dependencies": { "proper-lockfile": "4.1.2" }, diff --git a/services/backup-api/package.json b/services/backup-api/package.json index 97d0adf..e42f6e6 100644 --- a/services/backup-api/package.json +++ b/services/backup-api/package.json @@ -1,6 +1,6 @@ { "name": "multi-hoster-uploader-backup-api", - "version": "2.0.4", + "version": "2.0.5", "private": true, "type": "module", "scripts": {