From e21ac97dbbf362452a1b6ad903556acdcaebcbb7 Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Mon, 12 Oct 2026 16:58:38 +0200 Subject: [PATCH] chore(release): v0.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Etappe 5: Verlauf mit Filtern, Wiederholen und Aufräumen; Benutzerverwaltung, Passwort, Audit-Log; OIDC. Refs #014, #015, #016 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 16 ++++++++++++---- DEVLOG.md | 20 ++++++++++++++++---- README.md | 4 ++-- cli/api/openapi.json | 2 +- docs/issues/014-verlauf.md | 2 +- docs/issues/015-rollen-audit.md | 2 +- docs/issues/016-oidc.md | 2 +- docs/issues/README.md | 6 +++--- package.json | 2 +- src/lib/version.ts | 2 +- 10 files changed, 39 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d794d0..16129da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/). ## [Unveröffentlicht] +### Hinzugefügt + +### Geändert + +### Behoben + +### Entfernt + +### Sicherheit + +## [0.5.0] – 2026-10-12 + ### Hinzugefügt - Anmeldung per OIDC (z. B. authentik): PKCE, State und Nonce, Rolle aus dem Gruppen-Claim bei jeder Anmeldung, neue Konten beim ersten Anmelden, Verknüpfen eines lokalen Kontos aus den Einstellungen (#016) - Benutzerverwaltung für Admins: anlegen, Rolle ändern, sperren und entsperren, Passwort neu setzen; der letzte Admin und das eigene Konto sind geschützt (#015) @@ -16,14 +28,10 @@ und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/). - „Wiederholen“: der Assistent übernimmt alle Werte eines früheren Auftrags, Name, VMID und feste IP gibt man neu an (#014) - „Aufräumen“ nach Fehlschlag oder Abbruch: löscht nach Bestätigung den halb angelegten Gast – nur, wenn seine Beschreibung auf den Auftrag verweist; Templates nie. Web, API und `proxdeploy cleanup` (#014) -### Geändert - ### Behoben - „Einstellungen“ fehlte in der Navigation (#015) - Erzeugte SSH-Schlüssel (je Server und Bereitstellungsschlüssel) waren in etwa 4 von 1000 Fällen für ssh2 selbst nicht lesbar; jetzt wird geprüft und neu erzeugt (#014) -### Entfernt - ### Sicherheit - SSO übernimmt nie ein lokales Konto über den Benutzernamen; Verknüpfen geht nur angemeldet (#016) - Sperren, Passwort-Reset und Passwortwechsel beenden alle bestehenden Sitzungen des Benutzers (#015) diff --git a/DEVLOG.md b/DEVLOG.md index 3fffb37..297162e 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -2,7 +2,7 @@ ## Zeitübersicht -**Gesamt:** 5 h 20 min (Sitzung 1–3) +**Gesamt:** 6 h 59 min (Sitzung 1–3) Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeldungen ist enthalten. @@ -24,6 +24,9 @@ Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeld | #015 (Teil) SSH-Schlüssel | 0 h 10 min | | #021 Template-Bau ohne SSH | 0 h 19 min | | #013 CLI und API-Tokens | 0 h 42 min | +| #014 Verlauf, Wiederholen, Aufräumen | 1 h 21 min | +| #015 Benutzer, Passwort, Audit-Log | 0 h 10 min | +| #016 OIDC | 0 h 08 min | | Meilenstein | Zeit | |---|---| @@ -31,12 +34,13 @@ Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeld | v0.2.0 | 1 h 32 min | **abgeschlossen** | v0.3.0 | 1 h 48 min | **abgeschlossen** (Abnahme #021 offen) | v0.4.0 | 0 h 42 min | **abgeschlossen** +| v0.5.0 | 1 h 39 min | **abgeschlossen** --- -## 2026-10-12 · Sitzung 3 · 14:39–15:21 -**Issue:** #013 -**Version:** 0.4.0 +## 2026-10-12 · Sitzung 3 · 14:39–17:00 +**Issue:** #013–#016 +**Version:** 0.4.0, 0.5.0 ### Erledigt - v0.3.0 freigegeben (Abnahme #021 bleibt offen, braucht eine freie IP) @@ -47,11 +51,19 @@ Zeiten stammen aus den Git-Commit-Zeitstempeln je Issue; Wartezeit auf Rückmeld - Abnahme auf pve-demo per `batch`: pd-cli01 (VM 107, Debian 13 aus Template 9002, docker läuft) und pd-cli02 (CT 108, Ubuntu 24.04) parallel; das Verfolgen überstand einen App-Neustart mitten im Lauf - 267 Vitest, 20 Playwright-Abläufe, Go-Tests grün +- Etappe 5 (v0.5.0): Verlauf mit Filtern in der URL, Wiederholen, Aufräumen (auf pve-demo: CT 109 nach Abbruch gelöscht, Original „aufgeräumt“); Benutzerverwaltung, Passwort ändern, Audit-Log-Ansicht; OIDC gegen Mock-IdP +- CLI: `history` und `cleanup` +- Gefunden: ssh2 erzeugt in ~0,4 % unlesbare ed25519-Schlüssel (war die Ursache des wackligen SSH-Tests) – behoben; „Einstellungen“ fehlte seit v0.3.0 in der Navigation +- 308 Vitest, 26 Playwright-Abläufe grün + ### Entscheidungen - **Anfragen als Map, Antworten typisiert:** Go-Structs aus oapi-codegen schickten leere Pflichtfelder und überschrieben Vorlagenwerte. - **`[instances.]`** in der Konfiguration statt `profiles` – „profile“ ist schon `--profile`. - **Strg+C hängt nur ab**, Abbruch nur mit `proxdeploy cancel`. - **Ohne Terminal zeilenweise** (je Phase eine Zeile), damit CI-Logs lesbar bleiben. +- **Aufräumen löscht nur, was die Beschreibung „(Auftrag )“ trägt** – deshalb setzt das Klonen die Beschreibung jetzt sofort; Templates nie. +- **Sitzungen beenden über `Benutzer.sitzungenAb`** statt einer Sitzungstabelle. +- **SSO übernimmt nie ein lokales Konto über den Namen**; die Rolle kommt bei jeder Anmeldung aus den Gruppen. - Gefunden durch Tests: SSE-Daten zeigten in einen wiederverwendeten Puffer (jetzt kopiert); mehrzeilige Proxmox-Parameter brachen die Dry-Run-Zeile (jetzt `⏎`). --- diff --git a/README.md b/README.md index d2373e7..09df022 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ In Entwicklung. Version und Fortschritt stehen im [CHANGELOG](CHANGELOG.md), der | 2 · v0.2.0 | Katalog, Template-Bau, Debian-13-VM, Live-Fortschritt, Assistent | ✓ fertig, auf PVE 9.2 geprüft | | 3 · v0.3.0 | LXC, Ubuntu, Profile, Vorlagen, Profile im Template, SSH-Schlüssel | ✓ fertig, auf PVE 9.2 geprüft (Bau-Adresse #021: Abnahme offen) | | 4 · v0.4.0 | CLI `proxdeploy` (Go), API-Tokens | ✓ fertig, auf PVE 9.2 geprüft | -| 5 · v0.5.0 | Verlauf, Audit-Log, Rollen, OIDC | ◐ als Nächstes | -| 6 · v0.6.0 | Branding, README mit Screenshots, Installer | ○ geplant | +| 5 · v0.5.0 | Verlauf, Aufräumen, Audit-Log, Benutzer, OIDC | ✓ fertig (Aufräumen auf PVE 9.2 geprüft, OIDC gegen Mock-IdP) | +| 6 · v0.6.0 | Branding, README mit Screenshots, Installer | ◐ als Nächstes | ## Was ProxDeploy auf einem Server kann diff --git a/cli/api/openapi.json b/cli/api/openapi.json index 588eb66..9d0e32a 100644 --- a/cli/api/openapi.json +++ b/cli/api/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "ProxDeploy API", - "version": "0.4.0", + "version": "0.5.0", "description": "REST-API von ProxDeploy – dieselbe für Web-GUI und CLI. Fehler: `{ fehler: { code, nachricht, hinweis?, felder? } }`." }, "servers": [ diff --git a/docs/issues/014-verlauf.md b/docs/issues/014-verlauf.md index e081768..419366e 100644 --- a/docs/issues/014-verlauf.md +++ b/docs/issues/014-verlauf.md @@ -2,7 +2,7 @@ **Status:** erledigt **Meilenstein:** v0.5.0 **Labels:** feature -**Geschätzt:** 4 h **Tatsächlich:** – +**Geschätzt:** 4 h **Tatsächlich:** 1 h 21 min ## Ziel Alle Aufträge filterbar, mit gleichen Parametern wiederholen. diff --git a/docs/issues/015-rollen-audit.md b/docs/issues/015-rollen-audit.md index 2e4f440..c112b9b 100644 --- a/docs/issues/015-rollen-audit.md +++ b/docs/issues/015-rollen-audit.md @@ -2,7 +2,7 @@ **Status:** erledigt **Meilenstein:** v0.5.0 **Labels:** feature, sicherheit -**Geschätzt:** 6 h **Tatsächlich:** – +**Geschätzt:** 6 h **Tatsächlich:** 0 h 10 min ## Ziel Admin/Operator serverseitig erzwungen, jede Aktion protokolliert. diff --git a/docs/issues/016-oidc.md b/docs/issues/016-oidc.md index d46e8e4..3ed35b4 100644 --- a/docs/issues/016-oidc.md +++ b/docs/issues/016-oidc.md @@ -2,7 +2,7 @@ **Status:** erledigt **Meilenstein:** v0.5.0 **Labels:** feature, sicherheit -**Geschätzt:** 4 h **Tatsächlich:** – +**Geschätzt:** 4 h **Tatsächlich:** 0 h 08 min ## Ziel Optionale OIDC-Anmeldung (z. B. authentik), Rollen über Gruppen-Claim. diff --git a/docs/issues/README.md b/docs/issues/README.md index ad15625..f339e75 100644 --- a/docs/issues/README.md +++ b/docs/issues/README.md @@ -17,9 +17,9 @@ Details und Architektur: [../architektur.md](../architektur.md). Zeiten werden a | [#011](011-profile-docker-zabbix.md) | Profile docker und zabbix-agent, Variablen, Editor | erledigt | v0.3.0 | 6 h | 0 h 10 min | | [#012](012-vorlagen.md) | Vorlagen (Presets) | erledigt | v0.3.0 | 3 h | 0 h 11 min | | [#013](013-cli.md) | CLI proxdeploy (Go) | erledigt | v0.4.0 | 12 h | 0 h 42 min | -| [#014](014-verlauf.md) | Verlauf und Wiederholen | erledigt | v0.5.0 | 4 h | – | -| [#015](015-rollen-audit.md) | Rollen, Benutzer, Tokens, Audit-Log | erledigt | v0.5.0 | 6 h | – | -| [#016](016-oidc.md) | Anmeldung per OIDC | erledigt | v0.5.0 | 4 h | – | +| [#014](014-verlauf.md) | Verlauf und Wiederholen | erledigt | v0.5.0 | 4 h | 1 h 21 min | +| [#015](015-rollen-audit.md) | Rollen, Benutzer, Tokens, Audit-Log | erledigt | v0.5.0 | 6 h | 0 h 10 min | +| [#016](016-oidc.md) | Anmeldung per OIDC | erledigt | v0.5.0 | 4 h | 0 h 08 min | | [#017](017-branding.md) | Branding-Assets | offen | v0.6.0 | 4 h | – | | [#018](018-readme.md) | README und Dokumentation | offen | v0.6.0 | 4 h | – | | [#019](019-installer.md) | Docker-Image und LXC-Installer | offen | v0.6.0 | 6 h | – | diff --git a/package.json b/package.json index ebb33cc..9bcd679 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "proxdeploy", - "version": "0.4.0", + "version": "0.5.0", "private": true, "type": "module", "description": "VMs und LXC-Container auf Proxmox VE ausrollen, per Web oder CLI", diff --git a/src/lib/version.ts b/src/lib/version.ts index c00f235..15ebea0 100644 --- a/src/lib/version.ts +++ b/src/lib/version.ts @@ -2,7 +2,7 @@ * Version und Git-Stand für Seitenleiste, `/api/v1/ich` und die Kopfzeile der CLI. * Beide Werte werden beim Bauen gesetzt (Docker-Build-Arg bzw. Installer). */ -export const VERSION = process.env["NEXT_PUBLIC_APP_VERSION"] ?? "0.4.0"; +export const VERSION = process.env["NEXT_PUBLIC_APP_VERSION"] ?? "0.5.0"; export const GIT_SHA = (process.env["NEXT_PUBLIC_GIT_SHA"] ?? "").slice(0, 7); export function versionText(): string {