Skip to content

NMS-20119: Destination Paths tab - #8711

Open
joseanesONMS wants to merge 4 commits into
jira/NMS-20100-notifications-pagefrom
jira/NMS-20119-destination-paths
Open

NMS-20119: Destination Paths tab#8711
joseanesONMS wants to merge 4 commits into
jira/NMS-20100-notifications-pagefrom
jira/NMS-20119-destination-paths

Conversation

@joseanesONMS

Copy link
Copy Markdown

NMS-20119 (NMS-20100 epic): adds the Destination Paths tab to the Configure Notifications dialog. Stacked on #8709, so this PR shows only its own commit.

  • Tab with the path list and a test-trigger action.
  • Editor covering initial delay, targets (users, groups, on-call roles, email addresses) with per-target commands, intervals and auto-notify, and escalations; the Browser notification method is selectable end to end.
  • /rest/notification-config destination-path mutations, commands and on-call-roles endpoints wrap the same destinationPaths.xml, notificationCommands.xml and groups.xml factories the legacy wizard uses; a path rename follows into the event notifications that reference it.
  • GroupManager rebuilds its role map on every parse so removing the last role in groups.xml is not masked by a stale cache.
  • Replaces fork PR NMS-20100: Destination Paths tab #8707.

@joseanesONMS

Copy link
Copy Markdown
Author

@marshallmassengill review requested — stacks on #8709 (only the top commit is new here).

@joseanesONMS
joseanesONMS force-pushed the jira/NMS-20119-destination-paths branch from d767dd2 to e4746e4 Compare July 30, 2026 21:58
@joseanesONMS joseanesONMS reopened this Jul 30, 2026
@joseanesONMS
joseanesONMS force-pushed the jira/NMS-20119-destination-paths branch 3 times, most recently from 778a24f to 0f5e70c Compare August 1, 2026 02:20

@marshallmassengill marshallmassengill left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleting the last destination path still corrupts the config. NotificationConfigRestService.java:256 has a 404 check and no size guard. Reloading on save failure instead would also cover addPath and replacePath, which diverge the same way on any I/O failure.
TAB_LOADERS['destination-paths'] returns literal true. ConfigureNotificationsDialog.vue:95. All three fetches swallow errors, so one failure latches the tab and leaves the pickers empty for the page's life. Third of three siblings with this bug, which argues for fixing the contract in the base rather than in each tab.

Commands outside ENABLED_METHODS can be removed but not re-added, so editing a legacy textPage target is one-way. And getOnCallRoles actually depends on the GroupManager change, so the merge plan's "split it out, it runs in parallel" is wrong; #8711 needs it first.

@joseanesONMS
joseanesONMS requested a review from synqotik August 3, 2026 13:59
@joseanesONMS
joseanesONMS force-pushed the jira/NMS-20119-destination-paths branch 2 times, most recently from 18b8166 to e94de66 Compare August 3, 2026 17:12
Adds the Destination Paths tab: path list with a test-trigger action, and
an editor covering initial delay, targets (users, groups, on-call roles,
email addresses) with per-target commands, intervals and auto-notify, and
escalations — the Browser notification method is selectable end to end.
The /rest/notification-config destination-path mutation, commands and
on-call-roles endpoints wrap the same destinationPaths.xml,
notificationCommands.xml and groups.xml factories the legacy wizard uses.
GroupManager now rebuilds its role map on every parse so removing the last
role in groups.xml is not masked by a stale cache.
Depends on the Notifications page base PR.
… error

A destination path that uses a command outside the enabled set (e.g. textPage)
now keeps that command selectable while editing, so removing it is no longer a
one-way trip; brand-new paths still cannot add disabled commands. The
destination-paths tab loader now reports real success: the path, command and
user/group lookups return null on failure and the store surfaces a boolean, so a
failed fetch retries instead of latching the tab with empty pickers for the life
of the page.
Migrate the Destination Paths tab — the paths table, the path editor
dialog, and the target-row editor — onto the Onms-* seam wrappers so
the page passes the no-direct-primevue lint rule. iftalabel stays on
PrimeVue (no wrapper). Behaviour and markup are otherwise unchanged.
@joseanesONMS
joseanesONMS force-pushed the jira/NMS-20119-destination-paths branch from e94de66 to fb1bd78 Compare August 3, 2026 22:00
The target row editor edited its `row` prop in place, which the
parent relies on (it reads the fields back from its own array).
Switch `row` to defineModel so the two-way flow is explicit and the
vue/no-mutating-props errors clear, with no behaviour change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants