Commit Graph

10 Commits

Author SHA1 Message Date
Jakub Zych
6bceb8167c feat(07-02): serve login, logout, fetch, and refresh
Wire the user API session loop to the JWT blacklist and a pre-password throttle gate so a logged-out token cannot be fetched again.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:40:18 +02:00
Jakub Zych
00e6c51abd feat(07-02): throttle failed logins and pick mail template locale
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:03:31 +02:00
Jakub Zych
1311bd6cad feat(07-02): add user session schema, throttle table, and jwt config
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 13:53:16 +02:00
Jakub Zych
79e8373560 test(07-02): add failing tests for user session migrations
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 13:48:51 +02:00
Jakub Zych
232d454913 feat(06-01): implement inv_token guard, inv.scope, and registry wiring
- Verify inv_ tokens against ApiToken hash, expiry, revocation, last-used
- InvScope writes PHP TokenScope 401/403 bodies and gates on HasScope
- Register jwt and inv_token on the shared bouncer.Registry at plugin Boot
2026-09-19 19:11:12 +02:00
Jakub Zych
feb09823bf fix(05): CR-03 hide User password and require secret columns in Hidden() 2026-09-18 23:45:55 +02:00
Jakub Zych
8d1248c328 feat(05-03): add user-plugin organisations table (structure only)
- create_organisations folds PHP v3.2.0; no users-table ALTER this phase
- Organisation model is an FK target; app.key placeholder in config
2026-09-18 19:37:41 +02:00
Jakub Zych
2d4245681e feat(05-01): restructure fonoteka plugins into Winter directories
- Move models, classes, controllers, middleware, and updates into subpackages
- Add self-registering models/updates/classes registries so later plans add files
- Keep the genres route and shipped migration SQL unchanged
2026-09-18 18:43:31 +02:00
Jakub Zych
5530fa4ebf feat(03-01): serve seeded genres behind JWT middleware
golem15.user registers jwt.auth, golem15.fonoteka mounts GET /_fonoteka/api/v1/genres
through that guard, and a smoke test reads the 15 migrated rows with a test-only token.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 20:04:18 +02:00
Jakub Zych
f975ad94bb feat(03-01): initialize fonoteka workspace with user and genre migrations
Add compiled golem15.user and golem15.fonoteka plugins, squash schema
to the genre slice tables, and seed the 15 canonical genres on ICU pl-PL.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 19:55:36 +02:00