[db migration] add parent ids into Dashboard layout metadata #6945
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This migration is to add parent ids for each UI element in dashboard layout metadata. This will be used by another feature (#6964): to provide a redirect link that can open dashboard in any tab.
Expected output:

We store dashboard layout metadata in a flatted tree structure. In old layout metadata, we only store children node for each UI component. This information is good enough for render dashboard from root element, and we always render first tab when dashboard opens. But If user want to see some information in other tab (or any chart in a nested tab), it will takes a few clicks to navigate to the point of interest.
This problem can be resolved if each UI component carries its parent node information. When we have parents list for each UI component, it's easy from dashboard root to render each parent id, and at last render the point of interest chart/tab.
Because this db migration is independent of UI change (do not block dashboard display), I will send out UI change in a different PR.
@john-bodley @michellethomas @kristw @williaster