nendo
e0b25fbc6c
feat(client-tokens): add client API tokens with QR pairing flow
Long-lived, revocable, scope-restricted tokens for external clients
(mobile apps, retro handhelds, third-party tools). Includes:
- Backend: model, migration, DB handler, auth integration (rmm_ prefix
routing in HybridAuthBackend), CRUD + pairing + exchange endpoints,
rate limiting, scope intersection enforcement, admin oversight
- Frontend: settings page with token management table, stepped
create/deliver dialog (config -> copy/pair), QR code with RomM logo,
admin token table, standalone /pair page for QR scan landing
- /pair page supports custom-scheme callbacks for app deep linking,
falls back to displaying code for manual entry
- 33 backend tests across 5 classes (CRUD, auth, isolation, pairing,
admin)
2026-03-11 10:56:35 +09:00
..
2025-09-04 11:17:00 -03:00
2025-09-04 11:17:00 -03:00
2024-05-21 10:18:13 -04:00
2026-02-17 15:12:33 -05:00
2025-09-04 11:17:00 -03:00
2024-05-21 10:18:13 -04:00
2025-09-04 11:17:00 -03:00
2025-09-04 11:17:00 -03:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2025-09-04 11:17:00 -03:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2025-09-04 11:17:00 -03:00
2025-12-30 12:00:25 -05:00
2024-12-27 12:02:04 -05:00
2025-02-06 08:47:41 +00:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2026-02-17 15:12:33 -05:00
2025-09-04 11:17:00 -03:00
2026-02-17 15:12:33 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2025-09-04 11:17:00 -03:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2025-09-14 19:39:38 -04:00
2025-12-30 12:00:25 -05:00
2026-02-17 15:12:33 -05:00
2025-10-22 12:44:58 -04:00
2026-02-17 15:12:33 -05:00
2026-02-17 15:12:33 -05:00
2025-12-30 12:00:25 -05:00
2025-12-31 11:54:58 +00:00
2026-02-17 15:12:33 -05:00
2026-02-17 15:12:33 -05:00
2026-02-17 15:12:33 -05:00
2026-01-12 19:43:59 -05:00
2026-01-17 23:25:02 -05:00
2026-01-18 17:00:53 -05:00
2026-01-26 21:32:03 -05:00
2026-02-03 23:39:23 -05:00
2026-02-17 15:12:33 -05:00
2026-03-08 18:34:58 -04:00
2026-03-08 20:14:14 -04:00
2026-03-11 10:56:35 +09:00