forked from jappel/leistungsbilanz-ts
Record the 2026-10-30 release
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
d5b2285d09
commit
2807b010e9
2 changed files with 63 additions and 0 deletions
|
|
@ -905,3 +905,12 @@ Do not introduce global state management unless needed.
|
|||
entries only after Julian or Christian decide).
|
||||
- After deploy: record `docs/releases/<date>-<commit>.md` (`make release-report`) and tag
|
||||
`release-<date>` on the deployed commit.
|
||||
|
||||
## Letztes Release
|
||||
|
||||
- 2026-10-30, Tag `release-2026-10-30` auf `d5b2285`, lokaler Compose-Stack des
|
||||
Entwicklungsrechners (nicht cj-ki). Urteil: Go mit Auflagen (von Julian
|
||||
freigegeben trotz rotem Zeittest). Offene Auflagen: Zeitbudget von
|
||||
`revit-xlsx-scale` klären, generische Fehlertexte bei 400, Autologin-Instanz
|
||||
nur ohne echte Projektdaten. Protokoll:
|
||||
`docs/releases/2026-10-30-d5b2285.md`.
|
||||
|
|
|
|||
54
docs/releases/2026-10-30-d5b2285.md
Normal file
54
docs/releases/2026-10-30-d5b2285.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Release 2026-10-30 – d5b2285
|
||||
|
||||
- **Tag:** `release-2026-10-30` auf `d5b2285`
|
||||
- **Ziel:** lokaler Compose-Stack (`compose.yaml`) auf dem Entwicklungsrechner
|
||||
von Julian (`AUTH_DEV_AUTOLOGIN` aktiv, Web auf `0.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). Migration `0018` (`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
|
||||
|
||||
1. **Zeittest `revit-xlsx-scale`:** schwankt um das 15-s-Budget. Entscheidung
|
||||
offen: Budget anpassen oder als Ausnahme in `docs/RELEASE-AUSNAHMEN.md`
|
||||
eintragen (Julian/Christian).
|
||||
2. **Fehlertexte bei 400 (niedrig, Security-Review):**
|
||||
`respondWithProjectCommandError` gibt interne englische Meldungen aus.
|
||||
Ticket: fachliche Fehlerklasse, Rest generisch beantworten.
|
||||
3. **Instanz mit Autologin:** auf diesem Rechner nur ohne echte Projektdaten
|
||||
betreiben oder Web an `127.0.0.1` binden.
|
||||
Loading…
Add table
Add a link
Reference in a new issue