forked from jappel/leistungsbilanz-ts
3.3 KiB
3.3 KiB
Release 2026-10-30 – d5b2285
- Tag:
release-2026-10-30aufd5b2285 - Ziel: lokaler Compose-Stack (
compose.yaml) auf dem Entwicklungsrechner von Julian (AUTH_DEV_AUTOLOGINaktiv, Web auf0.0.0.0:3001). Nicht die Produktivinstanz cj-ki. - Delta: erstes Release mit Gate, kein vorheriger
release-*-Tag. Inhalt dieses Stands: Revit-Zuordnungsdialog mit Steckdosen-Höchstwert (R11–R14,85cbdbf..fd7dcbb), schlankeres Laufzeit-Image (be8761a,d5b2285). - Urteil: Go mit Auflagen (nach Regel No-Go wegen rotem Test; Deploy von Julian am 2026-10-30 ausdrücklich freigegeben).
- Datenbank: vor dem Start gesichert,
data/backups/leistungsbilanz-2026-10-30T22-18-26-932Z.db(Integrität ok, 0 FK-Verletzungen). Migration0018(projects.max_sockets_per_circuit) lief beim API-Start.
Prüfungen
| Prüfung | Ergebnis | Commit | Hinweise |
|---|---|---|---|
| secrets (gitleaks) | grün | d5b2285 |
keine Funde |
| lint | grün | d5b2285 |
0 Fehler, nur bekannte Warnungen |
| test | rot | d5b2285 |
660/664; einziger Fehler revit-xlsx-scale Zeitbudget 15 s (gemessen 15,1–15,6 s, dreimal); auf fd7dcbb mit gleichem App-Code grün |
| sast (Semgrep) | grün | d5b2285 |
keine Funde |
| audit (npm) | grün | d5b2285 |
6 moderate (drizzle-kit/esbuild, exceljs/uuid), kein High/Critical |
| mutation | grün | d5b2285 |
11/11 erkannt |
| container | grün | d5b2285 |
Trivy-Image, Trivy-Config, hadolint; vorher 6 HIGH im mitgelieferten npm, behoben durch be8761a |
| security-review | grün | fd7dcbb |
frischer Kontext, keine K/H; 2 niedrige behoben (fd7dcbb), 1 niedrig offen |
| zap | nicht ausgeführt | – | Instanz mit Autologin ist kein aussagekräftiges Ziel |
| fuzz | nicht ausgeführt | – | keine OpenAPI-Beschreibung |
K-Punkte (ASVS-light)
| Punkt | Bewertung | Beleg |
|---|---|---|
| A1 Login-Pflicht | belegt | baseline.test.ts „jede Route verlangt Login“; Mutationen „Login-Pflicht entfernt“, „ungeschützte Route vor dem Auth-Guard“; neue Route in tests/external-object-assignment-plan-route.test.ts |
| A2 Identität | belegt | Baseline „gefälschte Identität wird abgelehnt“ |
| A3 Port nicht am Proxy vorbei | offen für diesen Rechner | Entwicklungsinstanz ohne Proxy, Web auf 0.0.0.0:3001 mit Autologin (THREATMODEL D2/R15: nur ohne echte Projektdaten). Für cj-ki belegt (R6) |
| B1/B2 Objektzugriff | nicht anwendbar | THREATMODEL D1 (Julian, 2026-10-17), idorGap; fremde IDs eines anderen Projekts abgewehrt, Route-Test „rejects a circuit list of another project“ |
| C1 SQL | belegt | nur Drizzle/gebundene Parameter, Semgrep grün |
| E1 Secrets | belegt | gitleaks grün |
| E2 CORS | belegt | Baseline „CORS lässt fremde Origins nicht zu“, Mutation |
| F1 High/Critical | belegt | npm audit ohne High, Container-Scan grün |
Auflagen
- Zeittest
revit-xlsx-scale: schwankt um das 15-s-Budget. Entscheidung offen: Budget anpassen oder als Ausnahme indocs/RELEASE-AUSNAHMEN.mdeintragen (Julian/Christian). - Fehlertexte bei 400 (niedrig, Security-Review):
respondWithProjectCommandErrorgibt interne englische Meldungen aus. Ticket: fachliche Fehlerklasse, Rest generisch beantworten. - Instanz mit Autologin: auf diesem Rechner nur ohne echte Projektdaten
betreiben oder Web an
127.0.0.1binden.