Repository navigation
Admin Settings IA stage D part 1: split Governance and Scale, move Front Door to Security - #1309
Merged
Paul Lizer (paullizer) merged 3 commits intoAug 19, 2026
Conversation
First card move of the information architecture rework, and the pattern the remaining groups follow: split the pane markup, update the navigation map, and add a legacy redirect so existing links keep working. Governance held five cards covering three distinct concerns. It is now three tabs: which features are governed, the policies themselves, and MCP-specific governance. The split is done by a tool that works line by line and refuses to write unless every source line is carried into exactly one output. That immediately caught a real problem: governance-status sat after the last card, so copying the pane trailer into each new pane would have produced three elements sharing one id. It is now rendered once outside the panes, which is also better behaviour, since a status message is no longer trapped on whichever governance tab happened to be active when it was raised. Adds LEGACY_TAB_REDIRECTS so #governance still resolves, now to Feature Governance. Later moves extend the same map. Field names and card ids are unchanged at 462 and 110, and the regression set holds at 32 pre-existing failures. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…rity Scale mixed three concerns: cache configuration, Cosmos capacity, and Front Door. It is now Redis & Caching and Cosmos, with Front Door moved out entirely. Front Door configures authentication and redirect flows, not throughput, so it sits under Security as a Network tab. That move needed no markup surgery: panes are independent files and groups are entries in the navigation map, so moving a whole tab between groups is a map change alone. Only moving a card between tabs requires touching markup. This pane exercised the interleaved-modal case. Five modals sit between cards rather than collected at the end, and each has to travel with the tab owning its trigger. The split tool assigns the gap after a card to that card, which placed the Redis explorer with Redis, the three maintenance confirmations with Cosmos Maintenance, and the two throughput dialogs with Cosmos Throughput. Verified by listing the modals in each new pane. Extends the legacy redirect map so #scale still resolves. Field names and card ids are unchanged at 462 and 110, and the regression set holds at 32 pre-existing failures. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Records the split pattern that Governance and Scale established, the property that moving a whole tab between groups needs only a navigation map change, and the gap that has to close before the remaining groups can move: the split tool handles one source pane at a time, but the rest pull cards from several. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Paul Lizer (paullizer)
merged commit Aug 19, 2026
40c5fb0
into
microsoft:feature/admin-settings-ia
11 checks passed
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.
First part of stage D — the stage that actually moves cards. Targets the
feature/admin-settings-iastaging branch.Two groups are re-homed here, deliberately chosen because both split within a single source pane. That proves the mechanics before the harder cross-pane moves.
What moved
Governance held five cards doing three different jobs → Feature Governance (what is governed) · Policies (the policies themselves) · MCP Governance.
Scale mixed cache config with Cosmos capacity → Redis & Caching · Cosmos.
Azure Front Door left Scale entirely for Security, under a new Network tab. It configures auth and redirect flows, not throughput — it never belonged next to RU autoscaling.
Old
#governanceand#scalelinks still resolve, via a newLEGACY_TAB_REDIRECTSmap.The safety mechanism
The split is done by a tool that works line by line and refuses to write unless every source line lands in exactly one output. That's not ceremony — it caught a real bug immediately.
It found a duplicate-ID bug before I could ship it
governance-statussat after the last card in the pane. My tool copies the pane trailer (the closing</div>s) into each new pane — so that div would have been duplicated into three panes with the same id.The tool refused:
Fixing it properly turned out to also fix a latent UX bug:
governance-statusis an inline status target written byadmin_governance.js. Inside a pane, a message raised while working in Policies could render on a tab you weren't looking at. It now lives outside the tabs and is visible wherever you are in Governance.Interleaved modals (complication I1)
Scale was the real test: five modals sit between cards, not collected at the end, and each must travel with the tab owning its trigger.
The tool assigns the gap after a card to that card. Verified by listing modals per output pane:
redis-cachingredisExplorerModalcosmoscosmosIndexingPolicyApplyModal,staleCacheCleanupApplyModal,documentAccessIndexResetModal,cosmosThroughputSetupModal,cosmosThroughputContainerModalnetworkEvery one landed with its trigger.
A useful property fell out
Moving a whole tab between groups needs no markup change at all. Panes are independent files; groups are entries in the nav map. So Front Door moving from Scale to Security was a one-line map edit.
Only moving a card between tabs requires markup surgery. That distinction shapes the rest of stage D.
Verification
check_xss_sinks.pyfull-file scan of all 7 touched filesnode --checkon modified JSWhere stage D goes next
The remaining groups pull cards from multiple source panes — Data Lifecycle wants Retention and Classification out of Workspaces and Archiving out of Safety. The split tool only handles one pane at a time, so the next step is a move-card-between-panes operation carrying the same every-line-accounted-for guarantee.
I stopped here rather than hand-editing those moves. Hand-moving markup across files is exactly where a
name=attribute goes missing silently, and the whole point of the tooling is that it can't.Current structure: 12 groups, 22 tabs. Version
0.260.011. Status doc updated with the proven pattern.