coulomb-social/docs/migration/field-map-from-session-2026-08-13.md
tegwick a0fd3cb7ea Advance Bubble export: corpus walk and ADR-0004 sample tree
Add corpus exporter (session + ES capture), record 71 spaces / 109 articles
and local reichelag markdown tree with visuals. Redacted progress only in git.
2026-08-13 12:24:13 +02:00

6.1 KiB

Field map from authenticated Bubble session (2026-08-13)

Field Value
Workplan CSOC-WP-0001-T02
Session Playwright storage-state (local only; not in git)
Export ~/.config/coulomb-social/auth/exports/20260813-083747/ (local)
Target SoR ADR-0003 / ADR-0004 thin dir+git

Session validation

Check Result
Probe URL https://coulomb.social/vw_pages (authenticated)
Page title Research | Coulomb
Network captures 147 (elasticsearch mget/msearch dominant)
Public /api/1.1/meta types still empty (schema not public)

Live data model (from ES payloads)

Primary content type in Research UI is custom.article, not custom.page (page may still exist in static packages as a type; session payloads for vw_pages / chunks list are articles).

custom.space

Bubble field Observed Rebuild (ADR-0003/0004)
Slug yes space directory slug / frontmatter slug
isprivate_boolean yes access / visibility
members_list_user yes SpaceMembership
crew_list_user yes membership role variant (map later)
addnewusersasmember_boolean / addnewusersasguest_boolean yes invite defaults
locale_option_location yes later
funds_number yes later / out of stage-1
gitea_text rare optional repo pointer
Created By / Date, Modified Date yes provenance in backmatter or git

UI card (SpaceLet): name + short description (e.g. DeepNews / “Tracking progress”) — name field may be displayed from related article or a space title field not always present under the keys above; confirm on detail view next pass.

custom.article (Research “PageLet” / “ExtendLet”)

Bubble field Observed Rebuild
nomer_text title-like name (always in sample) frontmatter title
abstractor_text short description frontmatter abstractor
content_text body text (often markdown-ish) markdown body
logo_image image frontmatter visualassets/
space_custom_space parent space id path under spaces/<slug>/
chunks_list_custom_article list (often empty or nested articles) do not store as chunk table; optional live includes / sections (ADR-0003)
context_custom_article parent/context article backmatter relation / include parent
contents_list_custom_article list later / relations
access_option_visibility visibility access policy later
archived_boolean archive archive lifecycle
taskstate_option_chunktask task state on chunk-like items later (work tracking)
canonical_text canonical ref later
moders_list_user moderators membership roles later
_owner_user / _creator_user owner Created By / Member link
Created/Modified timestamps git / backmatter

UI labels: PageLet (page-like) vs ExtendLet (extension/journal under a parent) — both appear as custom.article with different presentation; map both to pages with optional kind or parent relation.

user

Bubble field Rebuild
name_first_text, name_last_text, namenick_text Member display profile (not IdP password)
avatar_image optional profile visual
about_text later
spaceselected_custom_space last-selected space (UI state)
superadmin_boolean later / NK groups
userroles_list_option_user_type later
authentication do not migrate passwords — NetKingdom (ADR-0001)

Relations (stage-1 optional)

Type Role Stage-1
custom.rellike likes later
custom.relfollow follows article later

UI surfaces confirmed live

Route Title Notes
/vw_pages Research Article list in current space; copy + favorite actions
/vw_spaces Research ~70 spaces listed for session user
/vw_chunks Research Same corpus, “chunks” framing (ExtendLet/PageLet)
/vw_search Research Space multi-select filter
/vw_feed Explore Social feed
/vw_new Explore Create/new stream (rich text sample content)
/vw_invites Explore Invite player by email
/vw_likes Explore Liked PageLets

Mapping recipe (export → thin git)

For each custom.space:

spaces/<Slug>/
  pages/
  assets/

For each custom.article with space_custom_space → that space:

spaces/<space-slug>/pages/<slug-from-nomer>.md
---
id: bubble:<article_id>
title: "<nomer_text>"
abstractor: "<abstractor_text>"
visual: "assets/<logo_file>"   # after download
bubble_type: article
bubble_kind: pagelet|extendlet|unknown
parent: bubble:<context_id>    # if context_custom_article set
archived: false
---

<content_text>

Members: map members_list_user / crew_list_user to invitations or NK subjects after identity linking — not Bubble passwords.

Chunks list: if non-empty, either:

  1. concatenate into body with headings (simple), or
  2. emit child pages + live mkt:include (ADR-0003 preferred for reuse).

What this export does not yet give

  • Stable full field schema for every Bubble type (only keys observed in payloads).
  • Binary download of all logo_image CDN files (next script step).
  • Complete article dump for all spaces (session shows current space context heavily).
  • Backend workflow definitions.
  • Guaranteed coverage of custom.page / custom.chunk as separate types in ES (names appear in static packages; live Research uses article).

Next actions

  1. Extend exporter / sample tree — see export-progress-2026-08-13.md + scripts/export-bubble-corpus.mjs.
  2. Optional: deeper crawl for spaces with only 1 article if more body pages exist.
  3. T04: import local sample tree via PageOps (CSOC-WP-0006).
  4. Keep raw export only under XDG auth dir.

Privacy

This note intentionally omits user emails, full article bodies, and raw IDs beyond structure. Raw export stays local.