Fruehjahrsputz 2/2: Dokumentation auf den tatsaechlichen Stand gebracht
Die Plandokumente waren durchweg veraltet: 85 von 91 Punkten im
UMSETZUNGSPLAN standen auf offen, obwohl der Code sie enthielt, und in
FIXPLAN-UI-Ranglisten war keine einzige der 18 Aufgaben abgehakt, obwohl
beide zugehoerigen Commits laengst im Zweig stecken. Alles abschnittsweise
gegen den Code geprueft und die Haekchen gesetzt - mit Belegstellen, damit
die naechste Pruefung nicht wieder bei null anfaengt.
Neu: STATUS.md als Einstiegsseite - wo das Projekt steht, was fertig ist,
was offen ist, und was beim Aufraeumen bewusst stehengeblieben ist. CLAUDE.md
verweist darauf.
Nachgezogen:
* UMSETZUNGSPLAN.md - 66 Punkte abgehakt. Offen bleiben A4 (Strategie-
Klassifikation), B2 (Secrets) sowie C3/D1/D2 (SQL-Arbeiten des Nutzers).
* FIXPLAN-UI-Ranglisten.md - abgeschlossen bis auf den als "Optional"
markierten Pfeilrichtungs-Punkt.
* FIXPLAN-TODO.md - Teil D und F abgehakt; die Test-Baseline "16 gruen"
auf die heutigen 126 korrigiert. Offen: F5 und zwei Tests aus F6.
* FIXPLAN-G-Speicher.md - G1 bis G4 als erledigt vermerkt, Baseline "39/1"
korrigiert, Pfad auf die nicht mehr existierende WinFormsHost/appsettings.json
richtiggestellt.
* docs/PLAN-Linux-Portierung.md - der Watchdog-Warnhinweis war ueberholt
(DcHeartbeatService meldet an /api/watchdog/v1/ping). Abschnitt 11 empfahl
noch, mit Phase 0 zu beginnen; jetzt benennt er Phase 5 und 6 als das, was
wirklich aussteht. Die Randnotiz zu Zugangsdaten in LicenseGuard.cs ist
gegenstandslos, die Datei laeuft ueber den Deploymentcenter.Client.
Zwei Befunde, die keine Aufraeumarbeit sind und deshalb nur dokumentiert
wurden - beide in STATUS.md Abschnitt 3:
1. In src/Predictalytics.Api/appsettings.json steht ein echter
OpenRouter-API-Key im Klartext, versioniert seit 7045002. Nicht
eigenmaechtig entfernt: ohne Rotation beim Anbieter bringt das nichts
(die History behaelt ihn), wuerde aber die KI-Analyse abschalten.
Der Schluessel muss zurueckgezogen und neu ausgestellt werden.
2. Die Portierung ist auf keinem Linux-System je ausgefuehrt worden. Die
Verifikation vom 2026-08-08 lief unter Windows.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -534,13 +534,14 @@ Predictalytics.Shell --license-deactivate # Aktivierungsplatz freigeben
|
||||
Die Schalter werden **vor** jeder Avalonia-Initialisierung ausgewertet, wie `--headless`.
|
||||
Der Schlüssel wird in der Ausgabe maskiert (`LLAB3-*****-*****-*****-AABB2`).
|
||||
|
||||
### ⚠️ Offen: Watchdog läuft noch auf dem alten System
|
||||
### ✅ Nachgetragen: Watchdog ist migriert (Stand 2026-08-23)
|
||||
|
||||
Das Deploymentcenter bündelt License, Watchdog, UpdateService und Bugtracker.
|
||||
`WatchdogHeartbeatService` zeigt weiterhin auf `watchdog.mhdf.de` mit dem Header
|
||||
`X-Watchdog-Key`. Das funktioniert, ist aber dieselbe Altlast wie eben beim Lizenzsystem.
|
||||
Migration nach `dc.mhdf.de/api/watchdog/v1` als eigener Schritt einplanen —
|
||||
Leitfaden liegt unter `Deploymentcenter/docs/WATCHDOG_INTEGRATION_GUIDE.md`.
|
||||
Der hier notierte Rest — `WatchdogHeartbeatService` gegen `watchdog.mhdf.de` mit dem
|
||||
Header `X-Watchdog-Key` — ist erledigt. An seiner Stelle steht
|
||||
`Hosting/DcHeartbeatService.cs`, das gegen `POST /api/watchdog/v1/ping` am
|
||||
Deployment Center meldet (`:105,143`). Damit laufen Lizenz, Watchdog, UpdateService,
|
||||
Fehler-Stream und Bugtracker über dieselbe Anbindung; `watchdog.mhdf.de` wird
|
||||
nicht mehr angesprochen.
|
||||
|
||||
---
|
||||
|
||||
@@ -679,12 +680,16 @@ Nur relevant, falls Egress-Kanäle produktiv genutzt werden. Proxy-Kanäle sind
|
||||
* systemd-Unit bzw. Dockerfile (für den Headless-Modus); es existiert bereits ein
|
||||
`J:\Softwareprojekte\dockerCompose` — vermutlich anknüpfbar.
|
||||
* Reverse Proxy (nginx/Caddy) mit TLS vor Kestrel.
|
||||
* **Secrets:** DB-Passwort und Watchdog-API-Key liegen heute im Klartext in `settings.json`.
|
||||
Unter Linux → EnvironmentFile mit `0600` oder Secret-Store.
|
||||
*Randnotiz:* In `LicenseGuard.cs:16-17` stehen Basic-Auth-Zugangsdaten im Quelltext —
|
||||
unabhängig von dieser Portierung überdenkenswert, erst recht mit Blick auf Monetarisierung.
|
||||
* **Secrets:** DB-Passwort und Deployment-Center-Token liegen im Klartext in
|
||||
`settings.json` (nicht versioniert). Unter Linux → EnvironmentFile mit `0600` oder
|
||||
Secret-Store.
|
||||
*Erledigt:* Die früher hier genannten Basic-Auth-Zugangsdaten in `LicenseGuard.cs`
|
||||
gibt es nicht mehr — die Datei läuft vollständig über den `Deploymentcenter.Client`.
|
||||
*Offen und dringlicher:* In `src/Predictalytics.Api/appsettings.json` steht ein
|
||||
**echter OpenRouter-API-Key im Klartext**, und diese Datei **ist** versioniert.
|
||||
Schlüssel zurückziehen, neu ausstellen, künftig über `OpenRouter__ApiKey` setzen.
|
||||
* CI: Build + Test auf Linux **und** Windows.
|
||||
* `docs/BETRIEB-Watchdog-Lizenz.md` um den Linux-Betrieb ergänzen.
|
||||
* `docs/BETRIEB-Deploymentcenter.md` um den Linux-Betrieb ergänzen.
|
||||
|
||||
---
|
||||
|
||||
@@ -742,12 +747,20 @@ auf der vorigen auf; einzig AP 5 (Deployment) kann parallel zu Phase 3 vorbereit
|
||||
|
||||
## 11. Nächster Schritt
|
||||
|
||||
Alle Vorentscheidungen sind getroffen (Abschnitt 0). Umsetzung kann beginnen:
|
||||
**Stand 2026-08-23: Phase 0 bis 4 sind abgeschlossen** (jeweils oben mit ✅ vermerkt),
|
||||
ebenso der Zusatz 5a (Deploymentcenter-Lizenzsystem) und 5b (WinForms-Host abgelöst).
|
||||
Der ursprüngliche Text an dieser Stelle empfahl noch, mit Phase 0 zu beginnen — das ist
|
||||
überholt und deshalb ersetzt.
|
||||
|
||||
1. **Phase 0** — 0,5 PT, sofort, unabhängig vom Rest. Ergebnis ist ein aufgeräumter
|
||||
Ausgangspunkt auf `feature/linux-net10`.
|
||||
2. **Phase 1** — .NET 10 + Paketmatrix. Hier zeigt sich früh, wie groß der
|
||||
Swashbuckle-Umbau tatsächlich ist.
|
||||
3. Parallel dazu: **Lizenzaktivierung ohne Dialog** mit der laufenden HardwareID-Arbeit
|
||||
abstimmen — das ist der einzige Punkt im Plan, der von außen abhängt und dadurch spät
|
||||
teuer werden kann.
|
||||
**Offen sind Phase 5 und Phase 6:**
|
||||
|
||||
1. **Phase 5 — Deployment und CI** (Abschnitt 7). Nichts davon ist bisher angefasst: kein
|
||||
`dotnet publish -r linux-x64`, keine systemd-Unit, kein Dockerfile, kein Reverse Proxy,
|
||||
keine CI. Das ist der eigentliche verbleibende Arbeitsblock.
|
||||
2. **Phase 6 — Verifikation** (Abschnitt 8, Punkte 8.1–8.9). Der Dauerlauf unter Linux
|
||||
(8.1) und die Prüfung unter `LANG=de_DE.UTF-8` (8.3) stehen aus. **Bisher wurde die
|
||||
Anwendung noch auf keinem Linux-System ausgeführt** — die Portierung ist zwar
|
||||
vollständig gebaut, aber unter Linux unbewiesen.
|
||||
3. Unabhängig davon und vorgelagert: den **OpenRouter-API-Key** aus
|
||||
`src/Predictalytics.Api/appsettings.json` zurückziehen und neu ausstellen (siehe
|
||||
Abschnitt 7, Secrets).
|
||||
|
||||
Reference in New Issue
Block a user