diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index d59fda4..bb5f83a 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -197,7 +197,7 @@ Plans: **Wave 3** *(blocked on Wave 2 completion)* -- [ ] 05-03-PLAN.md — Secrets slice: encrypted cast, key management, organisations, credentials/OAuth tables +- [x] 05-03-PLAN.md — Secrets slice: encrypted cast, key management, organisations, credentials/OAuth tables - [ ] 05-04-PLAN.md — Attachments: system_files, blob storage, thumbnails, delete lifecycle **Wave 4** *(blocked on Wave 3 completion)* @@ -391,7 +391,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → | 2. API parity harness bootstrap | 5/5 | Complete | 2026-09-17 | | 3. First vertical slice — genres end to end | 4/4 | Complete | 2026-09-17 | | 4. CLI scaffolding, i18n and mail | 4/4 | Complete | 2026-09-18 | -| 5. Data layer full fidelity | 2/6 | In Progress| | +| 5. Data layer full fidelity | 3/6 | In Progress| | | 6. HTTP routing, auth groups and rate limiting | 0/TBD | Not started | - | | 7. User plugin and authentication | 0/TBD | Not started | - | | 8. OAuth2.1 authorization server | 0/TBD | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index c017c41..1f13cae 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -3,15 +3,15 @@ gsd_state_version: 1.0 milestone: v1.0 milestone_name: milestone status: executing -stopped_at: Completed 05-02-PLAN.md -last_updated: "2026-09-18T17:24:46.649Z" +stopped_at: Completed 05-03-PLAN.md +last_updated: "2026-09-18T17:44:19.083Z" last_activity: 2026-09-18 progress: total_phases: 15 completed_phases: 4 total_plans: 23 - completed_plans: 19 - percent: 83 + completed_plans: 20 + percent: 87 --- # Project State @@ -26,11 +26,11 @@ See: .planning/PROJECT.md (updated 2026-09-16) ## Current Position Phase: 05 (data-layer-full-fidelity) — EXECUTING -Plan: 3 of 6 +Plan: 4 of 6 Status: Ready to execute Last activity: 2026-09-18 -Progress: [████████░░] 83% +Progress: [█████████░] 87% ## Performance Metrics @@ -65,6 +65,7 @@ Progress: [████████░░] 83% | Phase 04 P04-04 | 8 min | 3 tasks | 9 files | | Phase 05 P01 | 16 min | 4 tasks | 37 files | | Phase 05 P02 | 27 min | 3 tasks | 32 files | +| Phase 05-data-layer-full-fidelity P03 | 15 min | 3 tasks | 28 files | ## Accumulated Context @@ -130,6 +131,11 @@ Recent decisions affecting current work: - [Phase 05]: CollectionFillFields is name+description; PHP has no CollectionWriteService — D-05 service list is a subset of Fillable excluding owner_id - [Phase 05]: Various Artists natural key is name_key='various artists' (PHP seed), slug various-artists — seed_genre_and_various_artist_taxonomy.php uses a spaced name_key - [Phase 05]: go-playground/validator v10.30.4 is the STACK-named rule engine behind lagoon.Validate — STACK.md already named this library; lagoon.Validate translates Laravel rule strings onto Var() +- [Phase 05]: Column keys are HKDF-SHA256 derived via Go 1.27 crypto/hkdf with info summercms.lagoon.encrypted.v1; no golang.org/x/crypto — D-11 stdlib-first: Go 1.24+ ships HKDF; CLAUDE.md forbids a new dependency here +- [Phase 05]: Ciphertext is 1-byte format/key-id | 12-byte nonce | GCM seal, stored base64 in text columns — D-12 versioned ciphertext plus app.previous_keys decrypt-only fallback +- [Phase 05]: OpenFromApp calls LoadAppKey+PublishEncryptionKeys once per boot; empty/short/undecodable app.key fails with SUMMER_APP__KEY — D-11 fail-loud, no default key; Scan/Value must not re-read config per row +- [Phase 05]: golem15_user_organisations is owned by the user plugin; Phase 5 ships no users-table ALTER (D-03 deviation, Phase 7 AUTH-02) — User-confirmed at plan time: organisations are an FK target only this phase +- [Phase 05]: DecryptLaravelPayload is cutover-import-only and is never called from Encrypted Scan/Value — D-10 live path is AES-256-GCM only; Laravel CBC is Phase 15 import ### Pending Todos @@ -151,6 +157,6 @@ Items acknowledged and carried forward from previous milestone close: ## Session Continuity -Last session: 2026-09-18T17:24:44.978Z -Stopped at: Completed 05-02-PLAN.md +Last session: 2026-09-18T17:43:22.041Z +Stopped at: Completed 05-03-PLAN.md Resume file: None