Commit Graph
41 Commits
Author SHA1 Message Date
Leo Vasanko 2a318adab4 Add back missing ResetToken.delete() lost on earlier refactoring. 2026-02-16 20:53:07 +00:00
Leo Vasanko b73b2d6fe9 Renamed OIDC permissions claim to more commonly used groups. Move jwtk to a more convenient location. Draft admin app OIDC client configuratioon. 2026-02-16 16:54:53 +00:00
Leo Vasanko e59852b44c Session keys hardened (namespaced hashes of tokens). Various cleanup. 2026-02-15 20:14:48 +00:00
Leo Vasanko 18722f0e01 Implement stateful OIDC as Session objects. Add refresh tokens and backchannel logout. 2026-02-15 03:48:10 +00:00
Leo Vasanko b5a5f2707a Draft OpenID Connect support. 2026-02-14 23:01:13 +00:00
Leo Vasanko b1731e5abf Inline get_config, rewrite update_config, DB init Config and rp_id defaults changed. 2026-02-10 23:17:28 +00:00
Leo Vasanko 9332eb63ab ResetToken.hash(phrase) added avoiding code duplication. 2026-02-10 22:56:49 +00:00
Leo Vasanko 310a4e9a87 Remove remaining DB getter functions, inline at call site and add ResetToken.by_passphrase(). 2026-02-10 22:48:31 +00:00
Leo Vasanko 2f2934db6b CRUD store and delete on the DB classes directly. 2026-02-10 22:19:02 +00:00
Leo Vasanko 12715ee405 Use strictly same now timestamp over a transaction, even for UUIDv7s generated. 2026-02-10 21:45:09 +00:00
Leo Vasanko 2105040661 Calculate session expiry times in operations, using a common now timestamp for everything. 2026-02-10 21:35:56 +00:00
Leo Vasanko 4fcfee78c7 Set last seen and increment visits during registration, not only on authentication. 2026-02-10 21:25:20 +00:00
Leo Vasanko 5962f394b5 Minor fixes to config handling. 2026-02-09 17:37:10 +00:00
Leo Vasanko b92cc183dd Storing config on database to simplify reloads by CLI. 2026-02-09 17:00:40 +00:00
Leo Vasanko 8ba5356d11 ruff check 2026-02-05 19:21:03 +00:00
Leo Vasanko 3e533d4414 Change host normalization to remove port numbers - sessions are per host, cookies don't respect port numbers. 2026-02-05 19:04:40 +00:00
Leo Vasanko f39986412a API/DB cleanup for flat URLs that don't include org where users etc. are referred to. Implement user deletion in admin app and API, UI improvement. Reset token DB factory function revised to create passphrase and key internally. Removed unneeded functions and args, using update_user_role instead of a separate deleted _in_organization function. 2026-02-05 14:05:31 +00:00
Leo Vasanko cc439aaf12 Light/dark selection in user profile, if set this is preferred on the whole system, together with app overrides (the first one on the URL wins). 2026-01-30 23:31:06 +00:00
Leo Vasanko 89d0a12a6f Implement versioning in metadata, outside of the DB itself. Cleanup to migration handling and changes. Implement new migration step using msgspec normalization. 2026-01-28 20:23:00 +00:00
Leo Vasanko 93fd496254 Cleanup 2026-01-28 19:17:24 +00:00
Leo Vasanko 7614d0e8d9 API to use msgspec structs as well. 2026-01-28 18:31:45 +00:00
Leo Vasanko b79f367495 Implement full ORM. Various other cleanup. 2026-01-28 17:19:56 +00:00
Leo Vasanko dcc89181b7 Move get_session_context to DB.session_ctx(). 2026-01-28 14:52:18 +00:00
Leo Vasanko 9983245652 Remove get_session_context setting of host (now read only op as expected). Make session host, ip and user_agent always set (the ua potentially empty string). 2026-01-28 02:14:34 +00:00
Leo Vasanko c6a7429f11 Remove Org.created_at to maintain compatibility with old versions (the field was not being used). 2026-01-28 01:31:35 +00:00
Leo Vasanko e3ff1f9db1 Hardened PATCH handling (only allow updating select fields). Hardened DB transactions, rollback. 2026-01-28 01:13:05 +00:00
Leo Vasanko 43ffb31414 Cleaner typing to avoid some checking errors. 2026-01-27 22:04:14 +00:00
Leo Vasanko a54819aba8 Remove most remaining DB getters. Add ws auth chat helper function to avoid repetition, along with the existing register chat in wschat.py. 2026-01-27 20:01:17 +00:00
Leo Vasanko 1c4fda6aa2 DB cleanup continued: Made the working copy data public in DB class. 2026-01-27 18:02:16 +00:00
Leo Vasanko 462c21f7fa Database cleanup continues, build functions replaced by post init. Simplified some APIs. 2026-01-27 16:53:13 +00:00
Leo Vasanko 637b1b95a8 Finalize database API class merge. 2026-01-27 03:00:18 +00:00
Leo Vasanko 73e4d41f04 Refactor API to match database, no _uuid postfixes. 2026-01-27 02:32:46 +00:00
Leo Vasanko db104d762b Finish the database key-in-object refactoring. 2026-01-27 02:11:09 +00:00
Leo Vasanko ece0ac9a16 Database cleanup, better UUID passing and construction (User model). 2026-01-27 01:25:52 +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 f7f529d8b9 Fix errors where permission scopes were still expected for indexing. 2026-01-24 00:58:18 +00:00
Leo Vasanko 2227a9bf6f Refer permissions by UUID rather than scope. 2026-01-24 00:06:08 +00:00
Leo Vasanko 3f5018918e Simplify session and reset token formats; removes the token utility functions entirely. 2026-01-23 21:01:45 +00:00
Leo Vasanko 257ddc0b51 Cleanup, add database versioning. 2026-01-23 19:22:23 +00:00
Leo Vasanko 62dbf5a4ae Refactor to use UUID and bytes rather than str keys in msgspec structs because the module can automatically convert these. 2026-01-23 18:47:56 +00:00
Leo Vasanko 0674f9ceeb Database refactor to separate modules. 2026-01-23 18:35:35 +00:00