4.5 KiB
4.5 KiB
coulomb-social residual intakes
File-backed intakes for leftovers from finished workplans. Canon: work-record
types § Residuals (origin: residual, origin_ref: <WP-id>).
CSOC-IN-0001 — Enable public Create account + Case B smoke
id: CSOC-IN-0001
kind: intake
title: "Enable Create account and Case B registration smoke on app.coulomb.social"
lane: blue
status: open
priority: medium
owner: coulomb-social
repo: coulomb-social
origin: residual
origin_ref: CSOC-WP-0003
description: |
App entry for Create account is implemented (NETKINGDOM_REGISTRATION_URL,
/auth/register/, landing button). Public enablement waits on NetKingdom
mailbox verification and published registration URL (NK-WP-0025 / USER-WP-0022).
When the platform registration URL is live:
1. Set NETKINGDOM_REGISTRATION_URL on coulomb-social-env (names only in git;
example shape in .env.example).
2. Confirm landing shows Create account and /auth/register/ redirects only to
that URL (no open redirect via ?next=).
3. Run Case B: brand-new public registration → verified mail → OIDC → first
Member JIT on app.coulomb.social.
4. Record evidence under docs/identity/smoke.md.
DoC-Ok: residual of finished CSOC-WP-0003; platform dependency explicit.
notes: |
Depends on NK-WP-0025 (registration orchestration + mail path).
Related: CSOC-IN-0002 (identity negatives after Case B).
state_hub_intake_id: "019ff532-3694-7868-a3a7-f4b4f28a647a"
CSOC-IN-0002 — Identity negative matrix after Case B
id: CSOC-IN-0002
kind: intake
title: "Record identity negatives: state replay, collision, step-up"
lane: green
status: open
priority: low
owner: coulomb-social
repo: coulomb-social
origin: residual
origin_ref: CSOC-WP-0003
description: |
CSOC-WP-0003 Case A (known LLDAP login) is proven. Remaining negatives listed
in docs/identity/smoke.md should be executed when Case B unblocks (or sooner
offline/dev if useful):
- OIDC state/nonce replay
- issuer+subject collision (single Member)
- email-only must not take over another subject
- step-up ACR rejection when assurance insufficient
- registration redirect allow-list only
Capture pass/fail in docs/identity/smoke.md; close this intake when recorded.
notes: |
Pulls from CSOC-IN-0001 for live registration path; some checks can run offline.
state_hub_intake_id: "019ff532-3ade-7d75-acb7-2bbfa264fcb8"
CSOC-IN-0003 — Multi-space Bubble corpus import + membership map
id: CSOC-IN-0003
kind: intake
title: "Bulk-import Bubble corpus trees; map members to NetKingdom"
lane: blue
status: open
priority: medium
owner: coulomb-social
repo: coulomb-social
origin: residual
origin_ref: CSOC-WP-0001
description: |
Single-space rehearsal (reichelag) is done via import_content_tree.
Residuals from finished CSOC-WP-0001:
1. Generate ADR-0004 trees for more of the 71-space corpus (optional deeper
crawl for thin spaces — export-progress-2026-08-13).
2. Bulk import into CONTENT_ROOT with tenant + replace policy.
3. Map Bubble members_list_user → NetKingdom/Member + SpaceMembership
(no password import; assisted transfer only).
4. Keep private trees out of git; document additional lossiness.
Prefer a dedicated workplan if bulk import + identity map spans multiple
sessions; otherwise close this intake when (1)–(3) are evidenced.
notes: |
Pickup: docs/session-pickup.md · rehearsal: docs/migration/rehearsal-reichelag-2026-08-13.md
Code: coulomb_social/apps/spaces/import_tree.py
state_hub_intake_id: "019ffac3-f894-707a-9fdb-75c8ea14497d"
CSOC-IN-0004 — Deploy stage-1 PageOps to app.coulomb.social
id: CSOC-IN-0004
kind: intake
title: "Deploy PageOps CONTENT_ROOT + space visual migration to app host"
lane: green
status: open
priority: high
owner: coulomb-social
repo: coulomb-social
origin: residual
origin_ref: CSOC-WP-0006
description: |
Member UI and content plane land on main; production host still needs:
1. Image/release with spaces.0002_space_visual + PageOps views.
2. CONTENT_ROOT persistent volume (or agreed path) on the workload.
3. migrate + smoke: New space, page CRUD, copy/transfer on app.coulomb.social.
4. Extend docs/identity/smoke.md live results.
Local default CONTENT_ROOT is var/content (gitignored). Cluster must not
rely on empty ephemeral disk without a volume decision.
notes: |
Runbook docs/deploy.md · capability model docs/capability/model-v0.yaml
Pickup: docs/session-pickup.md
state_hub_intake_id: "019ffac3-fc7d-7850-93b6-b0d289881ec7"