APP+0
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.
Tasks.
- Task 1:
extended_typecolumn (C1, C3) — DONE4/4 - Task 2:
ContentExtenderRegistry+ExtendsContentcontract (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 —
extensionsection +extended_typefilterable (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