Commit Graph
15 Commits
Author SHA1 Message Date
LeoVasanko 84985501f5 MultiSite: one instance serves authentication across many domains (#4)
- Serve multiple domains (RP IDs) from one instance: host-based dispatch,
  per-domain credentials and sessions, domains managed at runtime in the
  admin UI — previously one RP per instance
- Cross-domain sign-in via Related Origin Requests: per-domain related-origins
  list with a served .well-known/webauthn document
- Explicit per-domain origin lists with shell-glob wildcards (**. for apex +
  any subdomain depth, *. for one level), editable in the admin UI with
  validation and self-lockout guards
- Per-domain auth hosts: the account/admin UI can live on a different host
  per domain, no longer confined to subdomains of a single RP
- CLI: 'paskia init <rp-id [rp-name]' initializes or adds a domain to an
  existing database; 'paskia migrate' converts legacy databases

BREAKING CHANGES (v2.0):
- Database schema: config is now per-domain and credentials/sessions carry
  an rp_id — existing databases must be converted with 'paskia migrate'
- Origins are now explicit: main implicitly allowed every subdomain of the
  RP; configure '**.' origins to reproduce that behavior
- CLI: the flat '--rp-id/--rp-name/--origin/--auth/--save' flags are
  replaced by the 'init' and 'migrate' subcommandsReviewed-on: #4
2026-09-07 22:14:42 +00:00
LeoVasanko 95c163e37a Add profile picture support
- backend avatar storage and OIDC picture claims
- profile and admin UI components
- admin org cards, tests, and docs
2026-05-21 23:57:48 +00:00
LeoVasanko 25283eba9b Change database name to (rp-id).paskiadb (previously paskia.jsonl). Validate the rp-id in passkey init. 2026-02-09 16:42:12 +00:00
LeoVasanko 7f3763b46d Replace SQL database with JSONL based solution that keeps history. 2026-01-23 00:54:37 +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 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 208115ebc3 Project renamed to Paskia. 2025-12-05 13:17:52 +00:00
LeoVasanko 24692fcfec Use git tag versioning for the Python project. 2025-10-03 04:07:11 +00:00
LeoVasanko 54056c7851 gitignore 2025-08-06 00:15:48 +00:00
LeoVasanko e035067ffb Change filename to passkey-auth.sqlite 2025-08-05 21:24:38 +00:00
LeoVasanko be9659e8dd No server secret file needed anymore. 2025-08-02 01:17:20 +00:00
LeoVasanko 4b20a53aa2 A lot of cleanup, restructuring project directory. 2025-07-14 23:54:04 +00:00
LeoVasanko 1850f9b27f Move the whole app under /auth/, fix static build. 2025-07-14 02:03:15 +00:00
LeoVasanko 68cb259aab Update gitignore. 2025-07-07 07:42:54 +00:00
LeoVasanko d643648455 Move gitignore to root 2025-07-05 05:10:15 +00:00