Server-Sanity-Check: api_key, das wie bcrypt-Hash aussieht, beim Start ablehnen/warnen #4
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Idee
In
server/src/config.rs::validate_and_index_userseinen Check ergänzen, derapi_key-Werte ablehnt (oder zumindest mittracing::warn!flaggt), die wie ein bcrypt-Hash aussehen (starts_with("$2") && len > 50o.ä.).Warum
Das
BLOCKER-Issue zum Watch-Auth-bcrypt ist genau dieser Fehler — bcrypt-Hashes imapi_key-Feld, weil das Format optisch demweb_password-Feld gleicht, der Server aber Plaintext erwartet. Die Folge sind stille 401s ohne Hinweis auf die Ursache.Ein Server-Start-Check würde den Fehler beim Reload sofort sichtbar machen, statt erst bei der ersten echten Watch-Anfrage.
Variante
tracing::warn!mit Hinweis, dass dieser Wert vermutlich nie matchen wird. Lässt den Server starten, bleibt vorwärtskompatibel falls jemand absichtlich$2-Strings als Keys verwendet.Tendenz: Warn-only, weil API-Keys grundsätzlich beliebige Strings sein dürfen sollen.
Test-Disziplin
Per CLAUDE.md-Regel „jeder Bugfix braucht einen Test-Case" — Unit-Test in
config.rs, dervalidate_and_index_usersmit einem$2b$12$…-Wert füttert und die Warn/Err-Reaktion verifiziert.