Closed (fixed)
Project:
Experience Builder
Version:
0.x-dev
Component:
Data model
Priority:
Major
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
25 Apr 2025 at 13:30 UTC
Updated:
26 May 2025 at 19:09 UTC
Jump to comment: Most recent, Most recent file

Comments
Comment #4
wim leersComment #5
wim leersComment #6
larowlanI can knock up a proof of concept for this if you like
Comment #7
wim leers#3457504: XB field type: calculate all dependencies, store them, surface in new Component "Audit" operation is in.
@larowlan: I'd love to take you up on your offer! 😄😇
Comment #8
wim leersComment #10
larowlanPOC in draft MR
Need to move ComponentAuditTest to a Kernel test, mocking database calls is the trigger to move it from a Unit test
FieldTypeUninstallValidatorTest and ComponentAuditControllerTest are passing with this stored for querying.
Comment #11
wim leers🥳🤓
Comment #12
larowlanNew title as we want to proceed with this.
Here's the explain for selecting all entities using e.g. a particular component. We use the same
buildDependencyQuerycode path for the uninstall validator so the query is the same with only the params changed.This is ready for review now
Comment #13
wim leersComment #14
wim leersThis looks great!
Scariest/hardest to review were
ComponentTreeDependencyRepositoryandComponentTreeDependencyRepositoryTest.But that test is … impressively leading by example 🤩 I think @catch will be quite happy with #12 😄 My literally only question is Why not use a
MERGEquery?. Not worth holding this big leap forward up for though.Plus, it puts is in a much better place to do #3498525: [META] Allow Canvas to be used on any content entity type (bundle), as long as it has certain entity type characteristics later already 🎉
The only failure here is unrelated to this MR: it's due to 11.1.7 being used on GitLab CI by default now, and that's being fixed over at #3523978: [11.1.7 regression] JavaScriptComponentValidationTest::testInvalidSlotIdentifiedByConfigSchema fails.
Comment #15
wim leersImplemented:
… which now definitely means we'll need to do #3522953: [later phase] Make Component `audit` operation performant/scalable — but that's intentional 😊
Comment #17
wim leers