Commit Graph
100 Commits
Author SHA1 Message Date
Leo Vasanko 2b7481cd58 Delete frontend build files accidentally committed to repo when renaming the project. 2025-12-06 16:42:27 +00:00
Leo Vasanko 2bac94a548 API tests added with near-complete coverage over user and admin APIs. 60% overall backend. (not including E2E test in coverage) 2025-12-06 04:45:26 +00:00
Leo Vasanko bfa3281aca Added E2E restricted API flow tests and fixed earlier failing tests. All passing. Coverage 51% backend, 74% frontend. 2025-12-06 03:43:28 +00:00
Leo Vasanko 0203bce05e Cleanup of origins handling. Added site_url and site_path such that these can be determined reliably, and we print it in the startbox. 2025-12-06 03:39:05 +00:00
Leo Vasanko 8d723155ba Fixed and updated E2E test suite. Added user credential registration tests. Coverage for backend and frontend. 2025-12-06 00:52:35 +00:00
Leo Vasanko 0b17681907 Changed origin config to take multiple origins and if any are configured, restrict access to these. Removed bootstrap name options of created org and user (both can be easily renamed from web ui). Cleanup. 2025-12-06 00:51:18 +00:00
Leo Vasanko da503a3081 More robust server startup, startup logo and info screen, renewed devmode script. 2025-12-05 19:06:42 +00:00
Leo Vasanko 8b98cb6325 Updated documentation. 2025-12-05 16:15:50 +00:00
Leo Vasanko 4b16037426 Project renamed to Paskia. 2025-12-05 13:24:34 +00:00
Leo Vasanko 9d7ace8fb5 Refactor dev mode into a source repo script (remove dev subcommand from package). 2025-12-05 13:08:44 +00:00
Leo Vasanko 39c06620c4 Updated E2E tests. 2025-12-04 04:44:58 +00:00
Leo Vasanko 8011a0d910 Make dev mode run without static files, only serving assets in production. 2025-12-03 22:15:26 -06:00
Leo Vasanko 4c34217846 Cleanup old hostapp files (finished, working). 2025-12-03 22:06:54 -06:00
Leo Vasanko 5c72777c2f Missing new component. 2025-12-03 22:03:33 -06: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 7983d9b170 Brought examples directly to front page. 2025-12-03 21:10:08 -06:00
Leo Vasanko bc4254ad18 Fix view switching of restricted app. 2025-12-03 19:46:36 -06:00
Leo Vasanko d541377798 Make restricted app use simple fetch that doesn't do API authentication (recursively). 2025-12-03 18:20:14 -06:00
Leo Vasanko 7c82727d28 Fixed and simplified examples. 2025-12-03 18:08:52 -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 9b73684082 Log authentication options on the client. 2025-12-03 17:07:44 -06:00
Leo Vasanko 9786c2a5a8 Improved dialog layout with separate mobile portrait mode. 2025-12-03 16:06:32 -06:00
Leo Vasanko 3e10e082e2 Fix infinitely nested login iframes when the restricted app notices it needs login. 2025-12-03 15:56:17 -06:00
Leo Vasanko 7a70c933c9 Various fixes and cleanup, regressions from prior commits. 2025-12-03 15:40:59 -06:00
Leo Vasanko 6a7b1a876e Fix syntax error in reset app created by earlier commit. 2025-12-03 14:31:13 -06:00
Leo Vasanko ad63d3fb3a Better static files handling on backend, when in dev mode: fetch from vite. 2025-12-03 14:30:02 -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 1610869fae Fix fetch timeout rolling while in authentication flow. Now each fetch gets a fresh timeout. 2025-12-03 13:35:44 -06:00
Leo Vasanko 219dd70665 Viewing linked passkeys/sessions (by clicking either one of them). 2025-12-03 13:21:52 -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 ceb99de738 Improved auth profile UX, consistent transparent-blur dialog background everywhere. 2025-12-03 12:30:23 -06:00
Leo Vasanko ad374f5dda Formatting, tidy up, transparent auth dialog background. 2025-12-03 11:33:24 -06:00
Leo Vasanko 1ffc918a88 Improved apiFetch and jsonFetch functions. 2025-12-03 11:26:38 -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 7b0a9c2a2a Reload backend only on changes on the backend or frontend-build within, not outside that in the repo. 2025-12-03 10:58:48 -06:00
Leo Vasanko 1c985527cf Add E2E tests to register and verify passkey. 2025-12-03 02:52:39 +00:00
Leo Vasanko 6003189da2 Always use timezone aware UTC time. 2025-12-03 01:36:15 +00:00
Leo Vasanko 2e9895443b Improved session list IP handling. Hovering sessions shows Same IP on matching sessions. 2025-12-03 01:32:05 +00: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 70411fa77b Improved profile view layout. 2025-12-03 00:52:52 +00:00
Leo Vasanko 3967e93c37 Fix examples folder serving broken a couple of commits ago. 2025-12-03 00:06:32 +00:00
Leo Vasanko 10ce0126b0 Implement metadata for RestrictedForward, set by /auth/api/forward endpoint when returning the app. Use this to implement support for time-based reauth requirement. 2025-12-02 23:39:31 +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
Leo Vasanko 123a62549b Refactor restricted app paths and naming. 2025-12-02 19:10:13 +00:00
Leo Vasanko 2a5f06d707 Moved the restricted-api iframe src to /auth/api/restricted and removed the endpoint of the other restricted app. 2025-12-02 18:34:59 +00:00
Leo Vasanko 3441a7a2b3 Remove backend access control, now that the profile and admin apps handle that via API. 2025-12-02 18:25:58 +00:00
Leo Vasanko 7ace4dcb4b Fix the back buttons (navigate back if you can but close if it was a new window). 2025-12-02 18:13:23 +00:00
Leo Vasanko 6f9f4aefc1 Implement Forbidden view for API calls, cleanup and better UX. 2025-12-02 17:36:37 +00:00
Leo Vasanko a05d4aec81 Better error messages from backend, avoid bad toasts, cleanup of session validation. 2025-12-02 16:37:27 +00:00
Leo Vasanko 77d8e97dc9 Update admin app authentication in API mode too, reusing components between it and the main app. 2025-12-02 15:42:55 +00:00
Leo Vasanko d1a7a53c19 Implemented auth app authentication in API mode (if loading the app itself wasn't blocked). Removed unnecessary toasts when entering restricted pages. 2025-12-02 15:25:31 +00:00
Leo Vasanko 2c777661b8 Refactor lengthy user info formatting to its own utility module that doesn't depend on FastAPI. 2025-12-02 14:30:31 +00:00
Leo Vasanko cb26c61d5f Implement restricted-api for JS-driven auth calls, examples added (WIP!). Layout and styling simplified. 2025-12-02 03:10:16 +00:00
Leo Vasanko 74a7723300 Updated frontend running dev mode using deno/npm/bun as well. Additional dev mode Caddyfile to go https://localhost/. 2025-12-01 20:07:26 +00:00
Leo Vasanko 0678d7f9ec Updated build-frontend script, now uses deno, npm, bun in this order. 2025-12-01 19:25:08 +00:00
Leo Vasanko 07525b47ae Centralise all cookie handling to session.py. 2025-10-04 18:48:24 -06:00
Leo Vasanko 1ad1644b64 Refactor /api/user/* to its own module. 2025-10-04 18:41:35 -06:00
Leo Vasanko 876215f1c1 Reset dialog UX improved. 2025-10-04 18:40:46 -06:00
Leo Vasanko 59e7e40128 Harmonise ProfileView and HostApp. 2025-10-04 18:14:17 -06:00
Leo Vasanko a0da799c9e Tuning the host app. 2025-10-04 18:06:47 -06:00
Leo Vasanko 94efb00e34 Don't redirect non-auth-host /auth/ to auth site but show basic info on current host, and allow logging out. Adds a new host app for this purpose. 2025-10-04 17:55:08 -06:00
Leo Vasanko f9f4d59c6b Deny creating sessions for hosts other than rp-id subdomains. 2025-10-04 17:26:03 -06:00
Leo Vasanko 45f9870d0d WebSockets must use origin for finding the host calling them. 2025-10-04 17:16:51 -06:00
Leo Vasanko 2a81544701 Correction on restricted path checking (auth-host). 2025-10-04 16:59:05 -06:00
Leo Vasanko a60c1bd5f5 Refactor auth-host redirection middleware to its own module.
Implement redirection to remove /auth/ from UI URLs when on auth-host.
2025-10-04 16:49:23 -06:00
Leo Vasanko 229f066533 Add validation of the CLI specified --auth-host (needs to be within rp-id). 2025-10-04 16:35:55 -06:00
Leo Vasanko 97f653e116 Fix deletion of session cookie on host logout. 2025-10-04 16:26:36 -06:00
Leo Vasanko 29be642dbe Better UX for profile view logout buttons. 2025-10-04 16:22:16 -06:00
Leo Vasanko bfb11cc20f A major refactoring for more consistent and stricter flows.
- Force using the dedicated authentication site configured via auth-host
- Stricter host validation
- Using the restricted app consistently for all access control (instead of the old loginview).
2025-10-04 15:55:43 -06:00
Leo Vasanko 389e05730b Refactor user editing endpoints (only auth site) under api/user/ while leaving host-based endpoints at api root. 2025-10-04 08:59:51 -06:00
Leo Vasanko 79b6c50a9c More consistent shared styling between credential and session cards. 2025-10-04 08:32:27 -06:00
Leo Vasanko 591ea626bf Add host-based authentication, UTC timestamps, session management, and secure cookies; fix styling issues; refactor to remove module; update database schema for sessions and reset tokens. 2025-10-03 18:31:54 -06:00
Leo Vasanko 963ab06664 Use git tag versioning for the Python project. 2025-10-02 16:09:26 -06:00
Leo Vasanko bb35e57ba4 Fix reset link logic to include /auth when no configured auth-host. 2025-10-02 15:57:20 -06:00
Leo Vasanko 5d8304bbd9 Refactor user-profile, restricted access and reset token registration as separate apps so the frontend does not need to guess which context it is running in.
Support user-navigable URLs at / as well as /auth/, allowing for a dedicated authentication site with pretty URLs.
2025-10-02 15:44:48 -06:00
Leo Vasanko fbfd0bbb47 Create registration links on the same host (subdomain) that is being used by the one who creates it. 2025-10-02 12:30:50 -06:00
Leo Vasanko eb38995cca Version 0.2.0 2025-09-30 17:04:53 -06:00
Leo Vasanko 382341e5ee Make the login/reset/forbidden dialogs look better. 2025-09-30 17:03:51 -06:00
Leo Vasanko ed7d3ee0fc Admin app: guard rails extended, consistent styling, also share styling with main app. 2025-09-30 16:38:14 -06:00
Leo Vasanko 3dff459068 Remove duplicate message from permission denied page. 2025-09-30 12:56:41 -06:00
Leo Vasanko 89b40cd080 Admin app divided to separate components. 2025-09-30 12:54:18 -06:00
Leo Vasanko d46d50b91a Massive style redesign, WIP. 2025-09-29 21:02:49 -06:00
Leo Vasanko 39beb31347 Simplified Caddy snippets (removed auth/all). 2025-09-28 20:00:19 -06:00
Leo Vasanko 41e6eb9a5a Version 0.1.2 2025-09-28 19:46:49 -06:00
Leo Vasanko d5bc3e773d Clear sessionStorage on logout. 2025-09-28 19:45:37 -06:00
Leo Vasanko ac0256c366 chore: bump version to 0.1.1 2025-09-27 20:51:46 -06:00
Leo Vasanko 6439437e8b Implement breadcrumb navigation. 2025-09-27 20:47:45 -06:00
Leo Vasanko 654618883d Implement credential reset via CLI. 2025-09-26 17:18:49 -06:00
Leo Vasanko f065a8294f Update documentation. 2025-09-26 16:59:18 -06:00
Leo Vasanko 8409c7726c Make the /auth/api/validate endpoint renew sessions if needed. 2025-09-26 16:59:11 -06:00
Leo Vasanko 971d534dca Updated example Caddyfile 2025-09-26 16:58:36 -06:00
Leo Vasanko c6a039cc50 Support auth request for WebSocket connections (using plain HTTP for auth). Use keep-alive for better performance. 2025-09-26 15:00:56 -06:00
Leo Vasanko 21a6bfd8ba Cleanup 2025-09-26 15:00:17 -06:00
Leo Vasanko eaca57f625 Minor tuning of Caddy configuration and improved documentation. 2025-09-25 19:12:11 -06:00
Leo Vasanko e514ae010d Provide user info in Remote-* headers. Caddy configuration improved. 2025-09-25 18:12:40 -06:00
Leo Vasanko b0a1bb72dc Cleaner logout. 2025-09-02 19:11:25 -06:00
Leo Vasanko b324276173 Cleaned up login/logout flows. 2025-09-02 19:08:16 -06:00