spaxel/mothership
jedarden 3da0c32ba3 feat: dashboard PIN change flow
- Backend: Add POST /api/auth/change-pin endpoint
  - Requires valid session; body: {old_pin, new_pin}
  - Verifies old PIN against bcrypt hash; returns 403 on mismatch
  - Hashes new PIN with bcrypt cost=12
  - Existing sessions remain valid after PIN change
  - Returns {ok:true} on success

- Dashboard: Security section in settings panel
  - Add "Security" section with Change PIN button
  - Modal form: old PIN → new PIN → confirm new PIN → Submit
  - Inline error display for incorrect current PIN (403)
  - Success toast notification on PIN change
  - Validation: 4-8 digits, numeric only, PINs must match, new ≠ old

- Tests: Add comprehensive tests for change PIN endpoint
  - Success case: old PIN verified, new PIN works
  - Wrong old PIN: returns 403, original PIN still works
  - Unauthenticated: returns 401
  - Invalid new PIN: validation for length, digits, etc.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 08:05:35 -04:00
..
cmd feat: implement REST API endpoint for node identify 2026-04-09 07:15:20 -04:00
internal feat: dashboard PIN change flow 2026-04-09 08:05:35 -04:00
tests/e2e feat: complete anomaly detection & security mode dashboard UI 2026-04-07 15:50:25 -04:00
go.mod chore: add missing go-chi/chi/v5 dependency for floorplan package 2026-04-07 10:52:08 -04:00
go.sum chore: add missing go-chi/chi/v5 dependency for floorplan package 2026-04-07 10:52:08 -04:00
mothership feat: trigger CI build and verify deployment 2026-04-06 09:54:08 -04:00
test_goroutine feat: implement webhook action firing & fault tolerance for automations 2026-04-06 21:39:51 -04:00
test_syntax feat: implement webhook action firing & fault tolerance for automations 2026-04-06 21:39:51 -04:00