docs(03-01): complete boot JWT genre route plan
Tasks completed: 2/2 - Initialize the real app database through plugin migrations - Serve the seeded genre list behind real cross-plugin JWT middleware SUMMARY: .planning/phases/03-first-vertical-slice-genres-end-to-end/03-01-SUMMARY.md Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -36,8 +36,8 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
|
||||
|
||||
### Data layer (DATA)
|
||||
|
||||
- [ ] **DATA-01**: GORM on Postgres through one shared *sql.DB (pgx stdlib) with a separate small pgx pool reserved for River's listener
|
||||
- [ ] **DATA-02**: Each plugin ships a gormigrate migration set with up and down; sets run in plugin dependency order with per-plugin version tracking; AutoMigrate is never the schema source
|
||||
- [x] **DATA-01**: GORM on Postgres through one shared *sql.DB (pgx stdlib) with a separate small pgx pool reserved for River's listener
|
||||
- [x] **DATA-02**: Each plugin ships a gormigrate migration set with up and down; sets run in plugin dependency order with per-plugin version tracking; AutoMigrate is never the schema source
|
||||
- [ ] **DATA-03**: Models get timestamps, soft delete, and lifecycle hooks (beforeValidate, beforeCreate, beforeSave, beforeDelete, afterDelete) that can cascade soft deletes inside a transaction
|
||||
- [ ] **DATA-04**: Relations cover belongsTo, hasOne, hasMany and belongsToMany with ordered results and dedicated pivot models carrying business columns (CollectionEditor role/granted_at/granted_by, album_artists sort_order)
|
||||
- [ ] **DATA-05**: Model rule strings (required, between, unique:table, nullable, integer, in) are validated on save via go-playground/validator with translated messages and a 422 error map shaped like Laravel's
|
||||
@@ -50,8 +50,8 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
|
||||
|
||||
### HTTP and routing (HTTP)
|
||||
|
||||
- [ ] **HTTP-01**: Plugins register route groups on net/http ServeMux with typed params and regex constraints; unknown and malformed ids both return 404 on ownership-scoped resources
|
||||
- [ ] **HTTP-02**: Plugins register named middleware that other plugins reference by name; the pipeline order is recover, CORS, locale, auth group, must-change-password, org context, rate limit, handler
|
||||
- [x] **HTTP-01**: Plugins register route groups on net/http ServeMux with typed params and regex constraints; unknown and malformed ids both return 404 on ownership-scoped resources
|
||||
- [x] **HTTP-02**: Plugins register named middleware that other plugins reference by name; the pipeline order is recover, CORS, locale, auth group, must-change-password, org context, rate limit, handler
|
||||
- [ ] **HTTP-03**: Three mutually exclusive auth groups share the same handlers with different route subsets: JWT under /_fonoteka/api/v1, personal scoped token under /api/v1/fonoteka, and public groups (onboarding, public/{token}, public-wishlist/{token}, invitation inspection)
|
||||
- [ ] **HTTP-04**: A rate limiter supports named buckets keyed by a resolver (token id, IP, route param), stacking two limiters on one route, and ports Płytarium's seven named buckets and inline throttles 1:1
|
||||
- [ ] **HTTP-05**: An auth guard registry lets plugins add guards (JWT, personal token, OAuth bearer) that all resolve to the same current-user accessor
|
||||
@@ -172,8 +172,8 @@ Which phases cover which requirements. Updated during roadmap creation.
|
||||
| I18N-01 | Phase 4 | Pending |
|
||||
| I18N-02 | Phase 7 | Pending |
|
||||
| I18N-03 | Phase 4 | Pending |
|
||||
| DATA-01 | Phase 3 | Pending |
|
||||
| DATA-02 | Phase 3 | Pending |
|
||||
| DATA-01 | Phase 3 | Complete |
|
||||
| DATA-02 | Phase 3 | Complete |
|
||||
| DATA-03 | Phase 5 | Pending |
|
||||
| DATA-04 | Phase 5 | Pending |
|
||||
| DATA-05 | Phase 5 | Pending |
|
||||
@@ -183,8 +183,8 @@ Which phases cover which requirements. Updated during roadmap creation.
|
||||
| DATA-09 | Phase 5 | Pending |
|
||||
| DATA-10 | Phase 5 | Pending |
|
||||
| DATA-11 | Phase 5 | Pending |
|
||||
| HTTP-01 | Phase 3 | Pending |
|
||||
| HTTP-02 | Phase 3 | Pending |
|
||||
| HTTP-01 | Phase 3 | Complete |
|
||||
| HTTP-02 | Phase 3 | Complete |
|
||||
| HTTP-03 | Phase 6 | Pending |
|
||||
| HTTP-04 | Phase 6 | Pending |
|
||||
| HTTP-05 | Phase 6 | Pending |
|
||||
|
||||
Reference in New Issue
Block a user