brewlog/src/presentation/cli
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 refactor(cli): restructure commands from flat to nested subcommands 2026-02-02 17:02:46 +00:00
brews.rs feat(brews): add filter paper to routes, views, CLI, and templates 2026-02-03 10:14:22 +00:00
cafes.rs refactor(cafes): remove notes field from Cafe entity 2026-02-03 21:02:37 +00:00
cups.rs refactor(cafes,cups): remove notes field from Cafe and Cup entities 2026-02-03 21:09:34 +00:00
gear.rs refactor(cli): restructure commands from flat to nested subcommands 2026-02-02 17:02:46 +00:00
macros.rs chore(refactor): define macro for get/delete cli commands 2026-02-02 13:00:48 +00:00
mod.rs feat(auth): replace password auth with WebAuthn passkeys 2026-02-05 11:00:07 +00:00
roasters.rs refactor(roasters): remove notes field from Roaster entity 2026-02-03 21:18:48 +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