Leo Vasanko
5fc5226480
Create a stand-alone paskia npm package (paskia-js). Make the frontend use it (but from source tree to keep synced).
2026-01-29 19:46:26 +00:00
Leo Vasanko
d8743d9f90
Refactor to separate paskia lib functionality generally useful for various apps.
2026-01-29 16:55:46 +00:00
Leo Vasanko
760b109eef
Consistent and stronger session revalidation checks in Auth profile and Admin App. Fix missing handling of link generation network errors.
2026-01-29 16:02:29 +00:00
Leo Vasanko
d40a2b8682
DB transactions cleanup, better actor/user data. Simplified admin API. Use UUID to refer to a specific permission in admin API. Other cleanup.
2026-01-27 21:48:21 +00:00
Leo Vasanko
2413a32bda
Update the API to use new naming matching database.
2026-01-27 02:22:29 +00:00
Leo Vasanko
f6e995184f
Refactor validate endpoint to return session context, leaving user-info only for extra profile data. Completely separate token-info for reset tokens. Simplified by reusing same data structures in various places and mandating fields to have values not needing fallbacks. Implemented consistent AccessDenied view in profile and admin apps.
2026-01-26 19:40:48 +00:00
Leo Vasanko
2227a9bf6f
Refer permissions by UUID rather than scope.
2026-01-24 00:06:08 +00:00
Leo Vasanko
c6dadd283d
Change PUT to PATCH for intent-based updates, avoiding override of fields not intended to change. This preserves role permissions matrix even if the permission is temporarily removed from the org.
2026-01-23 15:41:23 +00:00
Leo Vasanko
4c1db37c73
Better handling of Org Admin permission. More guardrails for Master Admin not locking himself out by changes. Admin app UI improvements.
2026-01-23 15:11:01 +00:00
Leo Vasanko
253387be97
Permissions refactor. Permissions have UUID and scope (previously id) and the latter no longer needs to be unique. Org admin uses a single global permission now. Domain scoped permissions. Removed from user info the admin fields, use effective_permission checks instead.
2026-01-23 13:54:31 +00:00
Leo Vasanko
541a019c13
Fix dialog patterns in admin app: dialog must close before doing API calls to avoid conflict with authentication dialogs.
2025-12-10 20:42:12 +00:00
Leo Vasanko
841ebf70c5
Cleanup on Admin app, better delete confirmations.
2025-12-10 20:16:57 +00:00
Leo Vasanko
c89fc71ebb
Use absolute paths for resources so that the links work when Vite is serving these at root instead of /auth/
2025-12-10 18:30:45 +00:00
Leo Vasanko
8310d9f0b5
Fix link copy toast messages, remove custom toast in favor of authStore, remove a component that was no longer used.
2025-12-10 17:18:48 +00:00
LeoVasanko
2487759628
Implement keyboard navigation using arrow keys in the whole application. ( #2 )
...
Reviewed-on: #2
2025-12-10 15:43:40 +00:00
Leo Vasanko
48a8f575ec
Profile view UX improvements. More consistent styling across the application.
2025-12-09 21:20:29 +00:00
LeoVasanko
c605926c30
Implement code word based remote authentication ( #1 )
...
Add comprehensive remote authentication system allowing users to log in from one device by authenticating from another trusted device. Features include:
- Proof of Work (PoW) protection using PBKDF2-SHA512 to prevent abuse
- Simple pairing codes (3 words) protected by dynamic PoW difficulty
- Autocomplete pairing code input with error checking
- Real-time WebSocket communication between devices
Unlike device addition links and reset links with QR codes that only allow adding an authentication method, and that work offline over the duration of several days, this mechanism is strictly online, with 5 minute time limit.
2025-12-08 23:56:48 +00:00
Leo Vasanko
18eed4654f
Integrate host app to main app (WIP).
2025-12-03 22:00:47 -06:00
Leo Vasanko
b373a84065
Admin app simplification by using API auth properly. Implemented promise to keep request blocked by permission check while the user authenticates, fixing concurrent requests.
2025-12-03 21:19:40 -06:00
Leo Vasanko
afbd9606db
Revert earlier change to iframe srcdoc, using src instead, because srcdoc was not compatible with all passkey implementations (BitWarden).
2025-12-03 18:01:47 -06:00
Leo Vasanko
7a70c933c9
Various fixes and cleanup, regressions from prior commits.
2025-12-03 15:40:59 -06:00
Leo Vasanko
9488f69e53
Update forward API to return in JSON iframe srcdoc with options injected. (currently broken in dev mode).
2025-12-03 13:58:18 -06:00
Leo Vasanko
4306323c44
Consistently use apiJson for fetches, with timeout and proper error handling (less code duplication).
2025-12-03 13:00:24 -06:00
Leo Vasanko
1f75e0a305
Make auth/admin apps API calls use apiFetch, a new function that asks for permission by iframe if needed. Implement max-age checks for API authz.verify as well along with a custom exception type that carries metadata.
2025-12-03 11:17:02 -06:00
Leo Vasanko
bd13dbd1a0
Implement session termination in admin API, for completeness.
2025-12-03 01:20:52 +00:00
Leo Vasanko
ca8d65ad25
Improved profile view layout.
2025-12-03 01:04:07 +00:00
Leo Vasanko
aed48de38e
Vite proxy config simplified. Renaming /auth/restricted to have a trailing slash for better Vite compatibility.
2025-12-02 22:41:12 +00:00
Leo Vasanko
c83450dace
Major refactor of frontend source tree such that paths better match where they are served.
2025-12-02 22:09:07 +00:00