Absicherung der Steuerendpunkte gegen die echte Datenbank verifiziert
Der in Phase 4 offen gebliebene Ende-zu-Ende-Nachweis ist nachgeholt. Geprueft
mit einem Wegwerf-Host, der ausschliesslich den Webserver startet - die Worker
blieben aus, weil parallel eine aeltere Instanz auf derselben Datenbank laeuft.
Zusaetzlich mit ApiSettings__ReadOnlyDatabase=true, sodass weder Migrationen
noch Seeding liefen.
Als externe Bindung diente 127.0.0.2: gilt der Pruefung als oeffentlich,
bleibt aber Loopback, oeffnet also nichts im Netz.
Ergebnis:
- localhost ohne Token: Steuerendpunkte 200, Swagger 200
- extern ohne Token: Steuerendpunkte 404, Swagger 404, capabilities meldet
canControl false
- extern mit Token: ohne Header 401, falscher Token 401, richtiger 200,
Swagger 404
Nebenbei verifiziert: Datenbankverbindung steht (37.803 MB), Web-UI und
Assets werden ausgeliefert, /api/dashboard liefert echte Daten
(151.094 Trader, 38.187.946 Trades).
Nur Dokumentation - keine Codeaenderung.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user