brewlog/migrations
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
..
0001_init.sql feat: add bags domain and repositories 2025-11-27 13:56:06 +00:00
0002_auth.sql feat!: use numeric, database-generated IDs throughout 2025-11-25 18:21:04 +00:00
0003_sessions.sql feat!: use numeric, database-generated IDs throughout 2025-11-25 18:21:04 +00:00
0004_add_bags.sql feat: add bags domain and repositories 2025-11-27 13:56:06 +00:00
0005_add_action_to_timeline.sql fix: add an action field to timeline events 2025-11-27 14:52:13 +00:00
0006_add_gear.sql feat(domain): add Gear entity with database migrations 2026-02-02 15:14:23 +00:00
0007_update_timeline_constraint_for_gear.sql fix: correct the database migration for gear 2026-02-02 15:58:31 +00:00
0008_remove_gear_notes.sql refactor(gear): remove notes field from Gear entity 2026-02-02 16:16:54 +00:00
0009_add_brews.sql feat(brews): add domain layer and database migration 2026-02-02 19:29:23 +00:00
0010_denormalize_timeline.sql refactor(timeline): denormalize data and simplify frontend 2026-02-03 08:53:29 +00:00
0011_add_filter_paper.sql feat(gear): add filter paper category and optional brew association 2026-02-03 10:13:35 +00:00
0012_add_cafes.sql feat(cafes): add migration and domain layer for cafe entity 2026-02-03 14:52:37 +00:00
0013_add_cups.sql feat(cups): add migration and domain layer for cup entity 2026-02-03 16:35:56 +00:00
0014_remove_cafe_notes.sql refactor(cafes): remove notes field from Cafe entity 2026-02-03 21:02:37 +00:00
0015_remove_cup_notes.sql refactor(cafes,cups): remove notes field from Cafe and Cup entities 2026-02-03 21:09:34 +00:00
0016_remove_roaster_notes.sql refactor(roasters): remove notes field from Roaster entity 2026-02-03 21:18:48 +00:00
0017_passkey_auth.sql feat(auth): replace password auth with WebAuthn passkeys 2026-02-05 11:00:07 +00:00
0018_remove_password_hash.sql feat(auth): replace password auth with WebAuthn passkeys 2026-02-05 11:00:07 +00:00