[META] Production-ready data storage

Created on 22 April 2025, 25 days ago

Overview

XB's data model (ComponentTreeItem) was originally prototyped with:

  1. only SDCs
  2. dynamic data fetched from the host entity, the right value(s) extracted using (Reference)Field(Object)PropExpression and assigned to the right component instance into the component tree: DynamicPropSources
  3. static data stored in independent field item objects: StaticPropSources (which also must extract the right value(s), and does so using (Reference)FieldType(Object)PropExpression)
  4. symmetric + asymmetric translation support (symmetric: tree is locked, inputs are per-translation; assymmetric: both are translatable, meaning different component trees for each translation)

Those foundations remained largely the same, but since then we gained:

  • multiple component types, thanks to ComponentSource plugins
  • additional prop sources, such as DefaultRelativeUrlPropSource

Finally, we know there's both known technical debt, and more features that we'll eventually need to support:

  • debt: full dependency support, throughout all of the above, to allow for reliable updates
  • debt: the explicit input schema must be able to evolve, and each ComponentSource may have different needs
  • feature: content entities' XB component trees must be able to populate the exposed slots provided by the corresponding ContentTemplate
  • feature: asymmetric translation will need some explicit inputs to be locked, because some explicit inputs may be considered to be not translatable β€” for example an image input of some component

Proposed resolution

User interface changes

🌱 Plan
Status

Active

Version

0.0

Component

Data model

Created by

πŸ‡§πŸ‡ͺBelgium wim leers Ghent πŸ‡§πŸ‡ͺπŸ‡ͺπŸ‡Ί

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

Comments & Activities

Production build 0.71.5 2024