brewlog/src/infrastructure/client
Jon Seager 03e03d87d9
feat(auth): replace password auth with WebAuthn passkeys
Replace username/password authentication with FIDO2/WebAuthn passkey-based
auth using webauthn-rs. Sessions and bearer tokens are unchanged — only the
way they are created changes.

- Add webauthn-rs, uuid, open, url deps; remove argon2, rpassword
- Add passkey_credentials and registration_tokens tables (migrations 17-18)
- Add domain entities, typed IDs, and repository traits for passkeys/tokens
- Add SQL repository implementations for passkeys and registration tokens
- Add ChallengeStore for in-memory WebAuthn ceremony state
- Add WebAuthn route handlers (register/auth start+finish ceremonies)
- Add CLI browser handoff for token creation (opens browser, local callback)
- Replace login form with "Sign in with Passkey" button
- Add registration page for first-user bootstrap via one-time token
- Replace BREWLOG_ADMIN_USERNAME/PASSWORD with BREWLOG_RP_ID/RP_ORIGIN
- Change default BREWLOG_URL from 127.0.0.1 to localhost (WebAuthn requires it)
2026-02-05 11:00:07 +00:00
..
backup.rs feat(backup): expose backup/restore via authenticated API endpoints 2026-02-04 19:38:49 +00:00
bags.rs fix(api): make all roast and bag endpoints return enriched types 2026-02-02 16:43:31 +00:00
brews.rs feat(brews): support filter paper in repository and HTTP client 2026-02-03 10:14:00 +00:00
cafes.rs feat(cafes): add SQL repository, HTTP client, and backup support 2026-02-03 14:52:44 +00:00
cups.rs feat(cups): add HTTP client for cups API 2026-02-03 16:36:14 +00:00
gear.rs refactor(gear): remove notes field from Gear entity 2026-02-02 16:16:54 +00:00
mod.rs feat(auth): replace password auth with WebAuthn passkeys 2026-02-05 11:00:07 +00:00
roasters.rs chore: refactor client under infrastructure 2025-11-26 10:59:31 +00:00
roasts.rs feat(roast): add update command for consistency with other entities 2026-02-02 17:09:32 +00:00
tokens.rs feat(auth): replace password auth with WebAuthn passkeys 2026-02-05 11:00:07 +00:00