Session Log: Group Decisions Outstanding
Date: 2026-09-02 Participants: Than Grove (driving), Yuji Shinozaki, Xiaoming Wang, Carla Arton, Claude Code Status: Complete — 7 of 8 items resolved; item 1 (Group-role migration scheduling) still needs a follow-up date. See Outcome below.
Agenda
A sweep of the deferred backlog to find what actually needs group input — a decision, infra visibility, or a scheduling call — versus what just needs a driver. Three items that looked like they belonged here got resolved solo this session instead (see "Resolved before this meeting" below); what's left are the ones that genuinely need more than one person in the room.
1. Group-role migration: contributor + group-editor tiers, one effort — schedule it
d7-editor-permissions-og-group-scoped-not-migrated.md,
authenticated-contributor-crud-not-wired-in-d11.md — High, cutover gate
- Not an open design question for either tier — both models are already decided.
ADR 015 (Accepted
2026-08-06) settled the editor side: global
content_editor(create/edit/delete any content, any group — "Phase A", already built and live for Images) plus a group editor (per-group Group role,scope: individual, CRUD only within that one group — reconstructing D7's OGeditorrole, "Phase B", deferred, not yet built). Q2 (2026-08-07) settled the contributor side the same way: Group member-role permissions (create-within-group), not core sitewide create. - Folded into one agenda item because they're mechanically the same migration —
both are Group-role reconstructions from D7's per-group role data
(
og_users_roles/og_role_permission), just with different permission sets (contributor = own-content-only within a group; group-editor = any-content within a group). Building one naturally builds the scaffolding for the other. - D7's real
editorrole (142 active users) was never in corerole_permissionat all — it lived entirely in OG'sog_role_permission, per-collection, which is exactly why neither tier can be a sitewide role. - What's actually needed: a single scheduling/resourcing call — when does this
combined Group-role migration (
og_users_roles→ Groupindividual-scope roles, covering both contributor and group-editor permission sets) get built? Contributor is a hard cutover gate (migrated users can currently author nothing); the 142 D7 editors currently migrated as plainauthenticatedhave no group-scoped editorial access today either. Connects to the still-open 1b.3 (Solr-proxy visibility coherence) / 1b.4 (paragraph access inheritance) tasks, which may share the same underlying mechanism.
The realname field question (previously item 2, last unassigned loose end) is
resolved — see "Resolved during this meeting" below. Item 1 above remains open:
folded into one Group-role migration effort, but no scheduling/owner decision was
actually made this session — still needs a date and a driver.
Resolved before this meeting (for awareness, not discussion)
Three items that would have been on this agenda got resolved solo earlier this session — noted here so nobody re-opens them without new information:
- D7 multi-image sequence viewer (
sdviewer.php) — checked the real D7 source; confirmed unfinished prototype, never reachable in production. Decided: not needed for D11. Seeimages-missing-interactive-viewing-surfaces.md. - kmassets audit master/reader gap — no longer blocked on a group conversation;
assigned to Yuji to root-cause on his own timeline. See
kmassets-audit-checks-master-not-search-reader.md. deployspec.ymlfull-clone ofterraform-infrastructure— group-approved fix (--depth 1 --single-branch) implemented, landing in PR #176.
Resolved during this meeting
field_legacy_nidis not unique across sites — this one turned out to already be designed and built, just never formally signed off: ADR 017 (field_legacy_sitecompanion field, kmassets service vocabulary, discriminator is the D7 site not the asset type) was proposed 2026-08-25 and the field itself shipped the same day (PR #152), but the ADR sat atStatus: Proposedpending sign-off. Ratified 2026-09-02 by Yuji, Than, and Xiaoming — status updated toAccepted. No new work: Texts/Sources/AV migrations just need to populatefield_legacy_siteper the existing checklist inmigration-legacy-nid-required-convention.mdwhen they're built.- Canonical D7 dev-source dump: frozen or re-cut? — Decided (Yuji): re-cut, not
frozen, as the team approaches staging/production, trading baseline stability for
fidelity with real production data. Condition attached: every re-cut must alert the
whole team, so people know to resync their local environment and re-baseline, rather
than silently drifting the way dev-0 and DDEV did here (7 of 8
EXPECT_LISTkeys diverged with nobody aware). Alert mechanism itself not yet chosen — tracked as a practical follow-up incanonical-d7-dev-source-dump.md. - Staging Solr writes land on production — FIXED live during the meeting.
mandala-sources-staging'ssolrsearch_api server disabled (search-api-server-disable);mandala-av-staging'smandala_library_rwapachesolr environment repointed off production (solr-set-env-url, since a full module disable would have cascaded through 6+ dependent modules on that site). Both verified live ondev-1. Production Visuals → staging left open, assigned to Yuji to review — lower urgency since it's the opposite (safer) direction, and Visuals' other search backend is already confirmed dead. Seesolr-cross-environment-write-targets.mdfor full detail. - rdx (reindeer_x) ALB target unhealthy in production — assigned to Yuji, bundled
with the still-open "does reindeer_x need to be always-on"
(
reindeer-x-has-no-ecr-repo-or-pipeline.md) review — same service, same gate. The port fix and the other two respects (move to dev-1, get the deployment into GitHub) stay blocked until that review lands; one owner now covers both notes. Seerdx-alb-target-unhealthy-in-production.md. - Historical group ownership — FIXED live during the meeting. Checked the D7 source
first rather than assuming: of 171 real collection/subcollection nodes, zero have
uid: 0, so the Group insert-bug workaround that forced every migrated group touid: 1was never protecting real data — it just discarded 137 legitimate creator assignments. All 18 distinct D7 creator uids resolved cleanly to live D11 accounts, 1:1 identity-mapped. Fixed the migration process pipeline (uid: uid, bothd7_images_collections.ymlandd7_images_subcollections.yml,config/installandconfig/sync) and corrected all 171 already-migrated groups on dev-0 directly (dry-run verified, then applied: 171/171 correct). Seed7-shared-user-database.md. - SAML/NetBadge account mapping — assigned to Yuji for a decision (
name/mailmatch vs. a stored NetBadge identifier field). Relevant to ADR 013/014's SAML+OAuth2 coexistence work, which assumes a Drupal account already exists to keysuboff of — this decision determines which account that lookup resolves to. realnamefield — DECIDED: fold into core user fields, norealnamemodule. Checkedd7_users.ymlfirst:field_first_name/field_last_namewere never actually added or mapped — still just a comment saying "decide later." Not yet implemented (needs the CMI fields added, the migration process pipeline mapped, and the 1,543 already-migrated users backfilled the same way group ownership was today) — tracked as a build task, no longer an open decision.- Solr pipeline cost/architecture conversation with Dave Goldstein — correction
during this meeting:
docs/roadmap.md's framing ("hasn't been opened yet") is stale. The conversation already happened (2026-06-26 update in the deferred note) and reframed the picture — there's no always-on ECS to right-size, so the original cost worry receded, and a direct-to-master sink came out of it and already shipped (1a.8). Assigned to Yuji to close the loop with Dave on the still-open items from that conversation (kmasset-solr-doc-contract.md§3: direct-to-master credentials, second-writer acceptability, batch cadence, regen-directory support, failure-log reliability, timestamp keying) — worth following up on since the sink shipped ahead of Dave confirming those. Seesolr-pipeline-cost-discussion.md.
Outcome
Seven of eight agenda items resolved live during this meeting — three real fixes
shipped (staging→production Solr writes disabled on dev-1; 171 collection/
subcollection groups re-owned to their real D7 creators; the migration checklist
updated with the root-caused Group postSave() sequencing trap for Texts/Sources/AV),
one ADR ratified (017), and three items assigned to Yuji (kmassets audit gap, rdx
always-on review + ALB defect, Solr pipeline follow-up with Dave, SAML/NetBadge
mapping). All landed in PR #176.
Only one item remains genuinely open: item 1, the combined contributor + group-editor Group-role migration. Both permission models are already decided (ADR 015, Q2); what's missing is a scheduling call — when does this get built, given it's a hard cutover gate? Needs a follow-up before it can close.