Commit Graph
34 Commits
Author SHA1 Message Date
LeoVasanko 9b28250391 Upgrade to kanta 0.4.0:
- Make use of its new features and cleanup our interfacing and init/shutdown processes and migrations
- Clean up circular deps, simplify app init
- Add specific pytest for CLI main to cover the changes
2026-06-13 21:59:18 +00:00
LeoVasanko b9aec6bb58 Remove built-in database, replace with kanta package. No disk format changes. 2026-06-12 19:39:30 +00:00
LeoVasanko b3cb540098 Implement database file locking for extra safety. 2026-02-19 00:01:49 +00:00
LeoVasanko 39000ef831 Remove PASKIA_SITE_URL env, use PASKIA_VITE_URL instead, moving the correct site URL determination to paskia CLI directly. This resolves devserver issues where VITE URL was reported as the external site URL instead of configured auth-host or origins. Main CLI still simplified. Bump deps versions and cleanup pyproject.toml. 2026-02-18 17:21:03 +00:00
LeoVasanko 68dccc1378 OAuth2 OpenID Connect provider support, API and DB refactoring (#3)
Allows Paskia to authenticate the user to a client site.
- User friendly client registration flow on the admin app
- Redirect-based authentication flow (per spec)
- Backchannel logout both ways to keep sessions synchronized
- Groups integrated with Paskia's permission system
- Adds email, preferred username and telephone fields on user profile
- All new user basic info layout to show the new information, better looks
- API and DB structures redesigned
- Various unrelated fixes to theming and layout
2026-02-18 02:40:27 +00:00
LeoVasanko 423abb0d1b Move CLI entry point to main module even though it runs the FastAPI app from a submodule. 2026-02-13 16:26:05 +00:00
LeoVasanko 5deb57435b Remove paskia-migration script (SQL no longer supported). 2026-02-05 19:32:18 +00:00
LeoVasanko 70c682b539 Improved client IP and UA handling. 2026-02-05 17:33:08 +00:00
LeoVasanko 7329223784 Implement full ORM. Various other cleanup. 2026-01-28 17:19:56 +00:00
LeoVasanko 7504aaf7e0 Move imports to top of file. 2026-01-27 20:16:32 +00:00
LeoVasanko 5ee7443801 Use fastapi-vue-setup, merging its template scripts to old Paskia entry point and devserver. Simplified CLI, no longer uses serve subcommand. Fixed the URL displayed on banner to show to actual frontend/caddy server even in devmode. 2026-01-25 03:15:50 +00:00
LeoVasanko 2c6a5c72d9 Updated database to use async background worker, making changes lock-free synchronous ops. 2026-01-23 15:57:16 +00:00
LeoVasanko 7f3763b46d Replace SQL database with JSONL based solution that keeps history. 2026-01-23 00:54:37 +00:00
LeoVasanko 2795b1061f Info fields for PyPI 2025-12-18 14:13:05 +00:00
LeoVasanko 1bed2c39d8 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
LeoVasanko 83419d1845 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
LeoVasanko df5c176bcd Fixed and updated E2E test suite. Added user credential registration tests. Coverage for backend and frontend. 2025-12-06 00:52:35 +00:00
LeoVasanko c1204ca020 Updated documentation. 2025-12-05 16:15:50 +00:00
LeoVasanko 208115ebc3 Project renamed to Paskia. 2025-12-05 13:17:52 +00:00
LeoVasanko 0af7aad28c 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-04 06:31:54 +00:00
LeoVasanko 24692fcfec Use git tag versioning for the Python project. 2025-10-03 04:07:11 +00:00
LeoVasanko 095768e07c Version 0.2.0 2025-10-01 05:04:53 +00:00
LeoVasanko 48f718191f Version 0.1.2 2025-09-29 07:46:49 +00:00
LeoVasanko 2df444b80f chore: bump version to 0.1.1 2025-09-28 08:51:46 +00:00
LeoVasanko ec098b862c Implement credential reset via CLI. 2025-09-27 05:18:33 +00:00
LeoVasanko 53f1745ebd Utility module for accessing frontend in backend code. 2025-09-03 04:05:20 +00:00
LeoVasanko 982937572a New lint option path in pyproject 2025-09-03 03:03:02 +00:00
LeoVasanko a4101e708a Separated session management from its FastAPI-dependent parts, creating authsession.py on main level.
Startup/main/scripts cleanup, now runs with passkey-auth command that takes CLI arguments.
2025-08-05 21:02:49 +00:00
LeoVasanko 4b20a53aa2 A lot of cleanup, restructuring project directory. 2025-07-14 23:54:04 +00:00
LeoVasanko e7192e078e Build frontend as part of Python build 2025-07-14 02:23:07 +00:00
LeoVasanko b358afdfbb More refactoring. Prevent registering another key on the same authenticator for the same user. 2025-07-07 23:20:28 +00:00
LeoVasanko 304b6b8cef Major refactor: HTTP-only cookies, passkey management, and UI improvements
- Refactor session management from WebSocket tokens to HTTP-only cookies
- Move user/credential endpoints from WebSocket to HTTP REST API
- Add comprehensive passkey management (add/delete with safety checks)
- Implement AAGUID-based authenticator info with icons and names
- Add human-readable date formatting and clean grid layout
- Create modular architecture with session_manager, api_handlers, aaguid_manager
2025-07-07 07:45:33 +00:00
LeoVasanko 3f373a9a8a Refactoring done, bugs gone. 2025-07-04 06:46:05 +00:00
LeoVasanko a6e80ffcb5 A non-functional draft, saving to allow reverts. 2025-07-04 05:01:41 +00:00