APP

CMS Content Extension Seam

Give CMS a generic seam that lets another module attach a richer domain model to a Content — without CMS knowing that model and without extended rows leaking into generic CMS surfaces. Deliver it standalone, exercised by a test-only stub extender, so it ships and is proven before the first real consumer (Modules/Shop Product) exists.

State
Done
Progress
100%
Steps
48 / 48
Started
2026-09-19
Finished
2026-09-30
Module
Platform

Tasks.

  • Task 1: extended_type column (C1, C3) — DONE4/4
  • Task 2: ContentExtenderRegistry + ExtendsContent contract (C2, C7, C13) — DONE5/5
  • Task 3: extender-side trait + the stub extender (C2, C6, C8, C15, C17) — DONE6/6
  • Task 4: default-hide global scope + withExtended() (C3, C4, C16) — DONE (back-relation check with Task 3)5/5
  • Task 5: the batched upcast (C5, C6, C12, C15) — DONE5/5
  • Task 6: lifecycle — cascade both ways + guard (C9, C10) — DONE5/5
  • Task 7: search data — extension section + extended_type filterable (C11) — DONE6/6
  • Task 8: search index ownership — mapping composition + scoped reindex (C14) — DONE (mapping); reindex-scoping documented4/4
  • Point 4: generic-search index filter — DONE4/4
  • Task 9: documentation + final verification — DONE4/4