Render full container app hierarchy at every entry point#1076
Draft
philliphoff wants to merge 1 commit into
Draft
Render full container app hierarchy at every entry point#1076philliphoff wants to merge 1 commit into
philliphoff wants to merge 1 commit into
Conversation
Previously, container app nodes shown in the standalone Container Apps
group (or Resource Group view) were flat leaves with a 'Reveal in
environment' command. Now the full container app subtree is rendered at
every entry point, with refreshes synchronized across copies via a
namespaced tree-id scheme and a shared registry dispatcher.
- Add ContainerAppNamespace ('' for env tree, '#flat' for standalone)
and thread it through ContainerAppModel.treeIdPrefix.
- Add containerAppRegistry to fan ext.state.* calls across both copies.
- Replace ContainerAppResourceItem with ContainerAppsResourceBranchDataProvider
that returns the full subtree.
- Remove the now-obsolete revealInEnvironment command.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Container app nodes appear in two places in the Azure resources tree: under their parent managed environment, and standalone (via the "Container Apps" resource type group or the Resource Group view). Previously the standalone copy was a flat leaf with a "Reveal in environment" command, forcing users to navigate elsewhere to inspect revisions, configuration, scaling, secrets, logs, etc. This PR renders the full container app subtree at every entry point, with refreshes synchronized across copies.
Approach
ContainerAppNamespace(''for the env tree,'#flat'for the standalone tree) and thread it throughContainerAppModel.treeIdPrefix. Every descendant tree item prefixes itsidwith that namespace so the two copies have non-colliding tree-element ids.containerApp.id,managedEnvironmentId,revision.id, etc.) stay bare/canonical. Only tree-itemids are namespaced, so reveal-by-resource-id still lands on the env-tree node.containerAppRegistry, a small dispatcher that fansext.state.*calls (notifyChildrenChanged,runWithTemporaryDescription,showDeleting,showCreatingChild) across every registered namespace. Command sites that previously refreshed a single subtree now go through the registry, so a deploy / delete / secret edit / revision change initiated from one copy updates both copies at the same time.ContainerAppResourceItemwithContainerAppsResourceBranchDataProvider, which constructs a fully-featuredContainerAppItem(withtreeIdPrefix = '#flat') so the standalone view exposes the same children as the env-parented view.containerApps.revealInEnvironmentcommand and its menu wiring.Notes for review
managedEnvironmentId-based notifications (which refresh the env's app list) are retained alongside the new registry calls oncontainerApp.id(which refresh the app subtree in both copies). These are deliberately paired in command sites that mutate the app.item.id(now namespaced) toext.state.*. Those derive the canonical id from the model instead so the dispatcher routes correctly.'', which keeps existing tree-item ids byte-identical to before for that copy.Related: #1075