diff --git a/docs/PLAN-Linux-Portierung.md b/docs/PLAN-Linux-Portierung.md index 83ff9e2..bddd18f 100644 --- a/docs/PLAN-Linux-Portierung.md +++ b/docs/PLAN-Linux-Portierung.md @@ -604,11 +604,31 @@ toleranter. Als Kommentar an der Bind-Stelle hinterlegt. Praktischer Test steht * `ApiTokenFilterTests` — richtiger Token passiert, fehlender/falscher/zu kurzer/zu langer sowie abweichend geschriebener Token werden abgewiesen. -### ⚠️ Nicht Ende-zu-Ende verifiziert +### ✅ Ende-zu-Ende verifiziert (2026-08-08, gegen die echte Datenbank) -Die Entscheidungslogik und der Filter sind einzeln getestet, die Verdrahtung dazwischen -nicht: `StartWebServerAsync` bricht ohne Datenbankkonfiguration vorher ab. Nachzuholen, -sobald die DB-Zugangsdaten wieder hinterlegt sind. +Nachgeholt, sobald die DB-Zugangsdaten wieder vorlagen. Geprüft wurde mit einem +Wegwerf-Host, der **ausschließlich den Webserver** startet — die Worker blieben aus, weil +parallel eine ältere Instanz auf derselben Datenbank läuft. Zusätzlich mit +`ApiSettings__ReadOnlyDatabase=true`, sodass weder Migrationen noch Seeding liefen +(im Log bestätigt). + +Als „externe" Bindung diente `127.0.0.2`: die Adresse gilt der Prüfung als öffentlich, +bleibt aber Loopback — der Test öffnet also nichts im Netz. + +| Fall | `/api/capabilities` | `/api/jobs` | Swagger | +|---|---|---|---| +| localhost, kein Token | `canControl:true, authRequired:false` | 200 | 200 | +| **extern, kein Token** | `canControl:false` | **404** | **404** | +| extern, mit Token | `canControl:true, authRequired:true, tokenHeader:"X-Predictalytics-Key"` | ohne Header **401**, falscher Token **401**, richtiger **200** | **404** | + +Damit ist belegt: eine externe Bindung ohne Token stellt die Steuerendpunkte gar nicht +erst bereit, und Swagger ist in beiden externen Fällen abgeschaltet. + +**Gleichzeitig verifiziert** (Vorgriff auf Phase 6): + +* Datenbankverbindung steht — 37.803 MB, `SELECT`-Pfad über `GetDatabaseSizeMbAsync` +* Web-UI und Assets werden ausgeliefert: `/`, `/css/style.css`, `/js/app.js` je 200 +* `/api/dashboard` liefert echte Daten: 151.094 Trader, 38.187.946 Trades ---