- proxmox-normalize.ts: nachsichtige Leser (readNumber/readText/readBool/
readList) und normalizePve/normalizePbs/normalizePmg als reine
Funktionen, nie ein Wurf bei unerwarteter Form
- PVE ergaenzt um je Speicherort Belegung (storages)
- PBS: Belegung je Datenspeicher plus letzte Sicherung/Pruefergebnis aus
bis zu 10 Folgeabfragen je Durchlauf (Deckel in proxmox.service.ts)
- PMG: Tageszahlen eingehend/ausgehend/Spam/Viren
- Feldnamen je Produkt als benannte Konstante (Annahmen A3/A5 der
Recherche), mehrere plausible Namen je Feld moeglich
- proxmox.service.ts: produktabhaengige Abfragefolge, Ticket-Erneuerung
jetzt je Durchlauf statt je Aufruf (PBS-Mehrfachabfragen loggen nicht
mehrfach neu ein)
- proxmox-nur-lesen.spec.ts: Riegel erkennt jetzt auch den Umschlag
getWithRetry als zulaessige Aufrufform
Tore: api 1293/1293 (>=1240), type-check 4/4.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- proxmox-auth.ts: loginTicket (die einzige nicht-lesende Anfrage im
Modul, POST /access/ticket) und buildTicketCookieHeader je Produkt
(Cookie-Namen als benannte Konstante, Annahme A2 kommentiert)
- proxmox-client.service.ts: classifyFailure (401->zugang, 403->rechte,
404->antwortform, 5xx->server, Netzfehler->netz, Zertifikatsfehler->
zertifikat) und parseJsonLenient (kein Wurf bei Nicht-JSON); kein
explizites method-Feld mehr an proxmoxGet (GET ist Grundwert)
- proxmox.service.ts: Passwort-Zweig via Ticket-Anmeldung, genau ein
zweiter Versuch nach 401 (Ticket-Ablauf alle zwei Stunden kein
Fehlalarm)
- proxmox-nur-lesen.spec.ts: maschinischer Riegel zu D-01 — genau eine
Stelle (proxmox-auth.ts) uebergibt ein Anfrageverfahren an
undiciFetch, jeder Proxmox-Pfad ausserhalb laeuft ueber proxmoxGet
Tore: api 1270/1270 (>=1240), type-check 4/4.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>