v3.5.1 — Hygiene-Sweep: 50+ Code-Scanning-Befunde behoben
🧹 Großreinemachen im Findings-Board
Die Security-Workflows waren grün — aber dahinter sammelten sich 78 offene Code-Scanning-Befunde. Dieser Release behebt über 50 davon durch echte Fixes, nicht durch Wegklicken:
| Kategorie | Fix |
|---|---|
| 25 tote Importe | entfernt — überwiegend Artefakte des v3-Modul-Schnitts (eigene AST-Analyse fand sogar mehr als CodeQL) |
| 9 offene Datei-Handles | with-Statements bzw. close() im finally für Popen-Logdateien |
13× except: pass |
→ idiomatisches contextlib.suppress(...) mit Begründungskommentar |
| 7 gemischte Returns | Dispatcher + v1-Handler in kapa/api.py enden jetzt explizit |
| K8s-Härtung | CPU-Limits, runAsUser/runAsGroup/fsGroup: 10001 (>10000) — Manifeste und Helm-Chart |
| nginx-Vorlagen | ssl_protocols TLSv1.2 TLSv1.3 (Legacy-TLS aus) |
| Test-AD | HEALTHCHECK im Dockerfile |
| 4 bewusst dynamische URLs | nosemgrep-Annotation mit Begründung (vROps-Client, Webhooks, Dev-Seed) |
Bonus: Der Import-Wächter aus v3.2.1 kennt jetzt Walrus-Zuweisungen — und hatte die neuen LOGF := open(...)-Handles prompt korrekt beanstandet. Der Wächter erzieht inzwischen seinen Autor. 🤖
Betrieb (K8s-Nutzer)
runAsUser wechselt von 1001 auf 10001 — dank fsGroup und g=u-Rechten im Image transparent; bestehende PVC-Daten übernimmt die fsGroup-Zuweisung beim Pod-Start.
Qualität
120 Smoke-Checks + Headless-Browser-Check grün · Deploy-Tags 3.5.1 · Commit + Tag signiert (Verified ✓)