Document the current JSON-based data model, and describe in an ADR

Created on 15 July 2024, about 2 months ago
Updated 2 September 2024, 6 days ago

Overview

This module currently implements ✨ JSON-based data storage proposal for component-based page building Active as proposed by @effulgentsia. This is achieved using:

  1. src/PropExpressions, to consistently refer to SDC component props and Drupal field types' props
  2. src/PropSource, to consistently describe how an SDC component prop source should be populated (and hence it uses src/PropExpressions), and allows evaluating those sources to retrieve the actual values to be passed as SDC component props
  3. src/Plugin/DataType/ComponentPropsValues stores src/PropSources
  4. src/Plugin/FieldType/ComponentTreeItem, which is "the XB field type", and it uses src/Plugin/DataType/{ComponentPropsValues,ComponentTreeStructure,ComponentTreeHydrated}

A diagram describing this was added in πŸ“Œ [PP-1] Diagram tying the product requirements + decisions together Postponed and can be viewed at https://git.drupalcode.org/project/experience_builder/-/blob/0.x/docs/di...

Proposed resolution

  1. βœ… Describe the current data model in some detail, in a new docs/*.md file, with each of the above concepts explained: their purpose, the rationale behind them, and at a high level what parts of their intended scope already exist today vs still need to be created.
  2. βœ… Capture the current data model as an ADR (see πŸ“Œ Record Architecture Decisions β€” to scale to many people + many timezones Fixed ), knowing full well that it could still change based on what we learn while working on this, as well as the ongoing discussion over at ✨ JSON-based data storage proposal for component-based page building Active . The ADR should be able to refer back to the docs written in the first step.

… because until those two documents exist, it's going to remain very difficult for people to join building Experience Builder, as well as for people to provide constructive criticism.

User interface changes

None.

πŸ“Œ Task
Status

Fixed

Component

Data model

Created by

πŸ‡§πŸ‡ͺBelgium Wim Leers Ghent πŸ‡§πŸ‡ͺπŸ‡ͺπŸ‡Ί

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Production build 0.71.5 2024