Der vorherige Commit (v1.125.1) fuegte "if: \${{ secrets.SONAR_TOKEN != '' }}" ein, um
den Sonar-Schritt bei fehlendem Secret zu ueberspringen. GitHub selbst lehnte den
Workflow damit komplett ab: 0-Sekunden-Fehlschlag, kein einziger Job-Log, "likely failed
because of a workflow file issue" -- live verifiziert, nicht nur vermutet.
Ersetzt durch reines continue-on-error: true ohne Bedingung auf demselben Schritt.
Erreicht dasselbe Ziel (fehlendes Secret oder nicht erreichbarer Sonar-Server reisst den
Workflow nicht mit runter), ohne den ungueltigen Ausdruck.
v1.125.2
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
L7 aus dem TODO-Block Sicherheitsdurchgang. .github/workflows/sonarqube.yml war seit dem
02.09. dauerhaft rot -- nicht mehr wegen Typecheck/Lint (die sind seit Block C1 gruen),
sondern weil SONAR_TOKEN als Repo-Secret nie gesetzt wurde.
- Sonar-Schritt laeuft nur noch, wenn das Secret existiert (if: secrets.SONAR_TOKEN != '')
- zusaetzlich continue-on-error, damit ein nicht erreichbarer selbst gehosteter
SonarQube-Server nicht den Rest des Workflows mitreisst
- Unit-Test-Schritt ergaenzt (npm run test:unit) -- fehlte trotz des Workflow-Namens
"Test and SonarQube" komplett
playwright.yml bewusst unangetastet gelassen (Nutzerentscheidung).
Nebenbefund, kein Code-Fix moeglich: der lokale naechtliche SonarQube-Scan auf dem Spark
laeuft seit mindestens 09.09. jede Nacht fehl (fehlende ~/.sonar-token). Braucht ein
frisches Token vom Besitzer, um sowohl die lokale Datei als auch das GitHub-Secret
wiederherzustellen.
v1.125.1
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Erste Abarbeitung des Repository-Audits (siehe TODO.md).
Sicherheit:
- Rate-Limiting für alle vier Auth-Endpunkte. Sie waren unbegrenzt aufrufbar,
also beliebig viele Mails über den eigenen SMTP-Zugang und beliebig viele
Rateversuche auf Verifizierungscodes.
- Passwort-Reset-Token nur noch als SHA-256-Hash in der Datenbank. Bisher
Klartext: Lesezugriff auf die DB genuegte zur Kontouebernahme.
- Tote Mock-Login-Route entfernt. Sie verglich gegen ein hartcodiertes
Fake-Passwort und war ueber die Middleware-Ausnahme fuer /api/auth/*
ohne Anmeldung erreichbar.
- Passwort-Reset auf bcrypt-Kosten 12, wie beim Signup.
Reparaturen:
- npm test rief jest auf, obwohl es weder Jest-Config noch Jest-Tests gibt.
Zeigt jetzt auf Playwright; jest/ts-jest/@types/jest entfernt.
- Falscher sonar.projectKey im Workflow.
Verifiziert per tsc gegen die geaenderten Bereiche: keine neuen Typfehler.
v1.117.0
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>