Task: System/Operations/Account menu taxonomy
Table of Contents
This page documents a task in the Clean up application menus story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Two-phase task, second phase gated on sign-off (same shape as the Reference Data menu task):
- Inventory: list every entry currently under System, Account, and
Operations (menu items, submenus, the plugin/dialog each opens),
plus Data Management — Operations' target scope per the story's
* Goalexplicitly absorbs Data Transfer/Data Catalogue from it, so Operations can't reach its final shape without touching that menu too. - Taxonomy proposal: group the inventoried entries into a cohesive structure with a rationale per grouping decision, for review before any =QMenu=/plugin rewiring happens.
Implementation (the actual menu rewiring) only starts after sign-off on the taxonomy.
Scoping decision (signed off before inventory): Data Management is retired as a top-level menu. Its Data Transfer/Data Catalogue contents move into Operations; its Classifications and Audit Trail submenus, plus System > Configuration's Badge Definitions/Severities, move to the Data Quality menu being stood up by the sibling Commission ores.qt.dq story — this task lands the moves, that story owns the destination menu's own standing-up.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Clean up application menus |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-18 |
Acceptance
Plan
Inventory (current state)
- System (
ui_->menuSystem, built inMainWindow.ui+ contributed to byAdminPlugin=/=ComputePluginviasetup_menus): Configuration (System Settings; Badge Definitions; Badge Severities); Message Queue (Queue Monitor); Telemetry (Telemetry Viewer, Event Viewer, Shell, Protocol submenu, Telemetry Settings; Service Dashboard); Administration (Accounts, Roles; Tenants, Tenant Types; Onboard Tenant…); Reset System…; Testing (Scenario Runner). - Account (
accountMenu, built directly inMainWindow.cpp): My Account, My Sessions. No other plugin contributes to it. - Operations (
operationsMenu, contributed to bySchedulerPluginandWorkflowPlugin): Job Definitions, Job Instances, Job Monitor; Workflow Executions, Workflow Definitions. Thin today — only two plugins have landed here so far. - Data Management (
dataManagementMenu, contributed to byDataManagementPlugin=/=TradingPlugin=/=WorkspacePlugin): Classifications (Coding Schemes, Code Domains, Coding Scheme Authority Types); Audit Trail (Change Reason Categories, Change Reasons); Data Catalogue (Data Domains, Subject Areas, Catalogues, Datasets, Dataset Bundles, Methodologies, Origin/Nature/Treatment Dimensions); Data Librarian; Import ORE Data…; Workspaces. In scope here because Operations' target shape absorbs Data Transfer/Data Catalogue from it (see scoping decision above). File(ui_->menuFile, built inMainWindow.ui, already exists): Connection Browser, Connect, Disconnect.
Target taxonomy (signed off)
- File (absorbs System + Account — post-cuts System only had two items left, too thin for its own top-level slot, and Account's two personal actions are exactly the kind of app-level miscellany File already houses): Connection Browser, Connect, Disconnect — separator — My Account, My Sessions — separator — Testing (Scenario Runner) — separator — Reset System….
- Operations becomes the real "everything operational" home: Jobs
(unchanged); Workflows (unchanged); Data Transfer (Import ORE
Data…, Data Librarian, Workspaces — the transfer/import-shaped
actions currently misfiled under Data Management); Data Catalogue
(moved in as-is); Telemetry (moved from System, unchanged
internally); Message Queue (moved from System, unchanged
internally); User Accounts, renamed from Administration to avoid
colliding with the personal
Accountactions now living in File (Accounts, Roles; Tenants, Tenant Types; Onboard Tenant…). - Data Management retired as a top-level menu entirely. Its Classifications and Audit Trail submenus, plus System > Configuration's Badge Definitions/Severities, move to the Data Quality menu the sibling Commission ores.qt.dq story is standing up — this task lands the moves, that story owns standing up the destination menu itself.
- Reference Data — unchanged (done in the prior task in this story).
Net: four top-level menus (File, Reference Data, Operations, Data Quality) instead of today's seven (File, System, Account, Reference Data, Operations, Data Management, plus Data Quality once it lands).
Implementation steps
MainWindow.cpp=/.ui= — foldmenuSystem' surviving two items (Testing, Reset System) andaccountMenu's two items (My Account, My Sessions) intomenuFile, with separators between the three clusters (connection lifecycle / personal / testing+reset). RemovemenuSystemandaccountMenuas separate top-level menus.AdminPlugin::setup_menus— retarget Administration'sQMenuhandle tooperations_menuinstead ofsystem_menu; rename its title toUser &Accounts. Retarget Configuration's Badge Definitions/Severities actions to wherever the Data Quality menu handle lands (coordinate with theores.qt.dqstory; may need to land after that menu exists).ComputePlugin::setup_menus— retarget Message Queue and Telemetry contributions tooperations_menu(Telemetry itself moves whole;smc.telemetry_menuhandle ownership moves with it).DataManagementPlugin::setup_menus— split: Data Catalogue and the Data Librarian action move tooperations_menuunder a newData &Transfergrouping; Classifications and Audit Trail move to the Data Quality menu handle. Retiredata_management_menufromshared_menus_contextonce nothing references it.TradingPlugin=/=WorkspacePlugin— retarget theirdata_management_menucontributions (Import ORE Data…, Workspaces) to the new Data Transfer grouping under Operations.- Manual QA pass in the running Qt client against the target taxonomy above.
Notes
Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
| Verify System/Operations/Account menu taxonomy | PASSED | All 8 steps passed after several review rounds (see Result). |
PRs
| PR | Title |
|---|---|
| #1632 | [qt] Consolidate System/Operations/Account menus into a four-menu structure |
Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | configMenu_ gates the whole File > System submenu, silently disabling Test Scenario Runner before login (contradicts its own comment) |
AdminPlugin.cpp/.hpp | Accepted | Gate act_system_settings_ individually, like act_reset_system_; removed configMenu_ entirely. |
| 2 | Missing separator between Audit Trail and Data Catalogue in Data Quality menu | DataManagementPlugin.cpp | Accepted | Added dq->addSeparator() between the two addMenu() calls. |
| 3 | SchedulerPlugin.hpp class doc comment says setup_menus() seeds Operations directly; it seeds the Scheduler submenu |
SchedulerPlugin.hpp | Accepted | Updated wording. |
| 4 | classifications_menu field name drifted from its "Coding Schemes" display label |
IPlugin.hpp, MainWindow.cpp, DataManagementPlugin.cpp, DqPlugin.cpp | Accepted | Renamed to coding_schemes_menu (and the local variable) throughout. |
| 5 | Pre-existing leading separator on Data Transfer from TradingPlugin's addSeparator() running first (load_order) |
TradingPlugin.cpp | Declined | Pre-existing behaviour against the old data_management_menu, not introduced by this PR; out of scope. |
Result
Implemented the signed-off taxonomy, refined through several rounds of manual QA:
- File absorbs System and Account, organised into three submenus:
Connectivity(Connections, Connect, Disconnect),Current User(My Account, My Sessions), andSystem(System Settings, Test Scenario Runner, Reset System). - Operations absorbs Message Queue, Telemetry, and Administration
(renamed
User &Accountsto avoid colliding with File's personal Account actions), plus a newData &Transfersubmenu (Import ORE Data, Data Librarian, Manage Workspaces). - Data Management is retired entirely. Its Data Catalogue moved to
Data &Quality (not Operations — every entity is
ores.dq-backed, confirmed during QA), alongside a renamedCoding &Schemessubmenu (was "Classifications", renamed to avoid colliding with Reference Data's unrelated Classifications submenu) and Audit Trail. - Trading Codes (a single-item submenu, Purpose Types) is retired.
purpose_typeturned out to classify Portfolios, not Books, despite the similarly-namedbook_purpose_type— a distinct entity — so it landed in a new Portfolio Codes submenu under Reference Data > Codes, not Book Codes. - Out-of-scope opportunistic fixes from the same QA passes:
flattened/regrouped Synthetic's raw-table entries under a
&Configurationsubmenu (was "Advanced (raw tables)"). - Filed a backlog capture to rename
purpose_typetoportfolio_purpose_typeat the schema/backend level — the menu split is a UI-only mitigation for the naming confusion, not a fix.
Net: four top-level menus (File, Reference Data, Operations, Data Quality) instead of the original seven.