[OpenNMS/opennms] 345d45: Update base image

Dino via opennms-cvs <[email protected]>
Newsgroups gmane.network.opennms.cvs
Message-ID <OpenNMS/opennms/push/refs/heads/dcy/no-beanshell/[email protected]>
  Branch: refs/heads/dcy/no-beanshell
  Home:   https://github.com/OpenNMS/opennms
  Commit: 345d4513c20fc2b7c60ce900b5b73a2eeffa4ced
      https://github.com/OpenNMS/opennms/commit/345d4513c20fc2b7c60ce900b5b73a2eeffa4ced
  Author: Morteza E <[email protected]>
  Date:   2026-08-04 (Tue, 04 Aug 2026)

  Changed paths:
    M opennms-container/common.mk
    M opennms-container/core/Dockerfile
    M opennms-container/minion/Dockerfile
    M opennms-container/sentinel/Dockerfile
    M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java

  Log Message:
  -----------
  Update base image


  Commit: 15857256fd475ed6486c967f5c9e4ae04753a492
      https://github.com/OpenNMS/opennms/commit/15857256fd475ed6486c967f5c9e4ae04753a492
  Author: Morteza E <[email protected]>
  Date:   2026-08-04 (Tue, 04 Aug 2026)

  Changed paths:
    M opennms-container/common.mk
    M opennms-container/core/Dockerfile
    M opennms-container/minion/Dockerfile
    M opennms-container/sentinel/Dockerfile
    M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java

  Log Message:
  -----------
  Update base image


  Commit: 19e0ef0974a7aa46c9f833594a7e6c1bb52401dd
      https://github.com/OpenNMS/opennms/commit/19e0ef0974a7aa46c9f833594a7e6c1bb52401dd
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-04 (Tue, 04 Aug 2026)

  Changed paths:
    M .circleci/main/jobs/build/build-ui.yml

  Log Message:
  -----------
  NMS-20159: Run pnpm lint in CI for UI builds (#8739)


  Commit: d361c17677477314374224afc50585d7404aae4a
      https://github.com/OpenNMS/opennms/commit/d361c17677477314374224afc50585d7404aae4a
  Author: Christian Pape <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M container/karaf/pom.xml
    M container/karaf/src/main/internal/features-processing.xml
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M features/minion/repository/pom.xml
    M features/sentinel/repository/pom.xml
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M pom.xml

  Log Message:
  -----------
  NMS-20061: Use jline version 3.30.16


  Commit: cd5d20e369d0fe8f974e2d41d9de21983c3751fd
      https://github.com/OpenNMS/opennms/commit/cd5d20e369d0fe8f974e2d41d9de21983c3751fd
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M container/karaf/pom.xml
    M container/karaf/src/main/internal/features-processing.xml
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M features/minion/repository/pom.xml
    M opennms-container/common.mk
    M opennms-container/core/Dockerfile
    M opennms-container/minion/Dockerfile
    M opennms-container/sentinel/Dockerfile
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M pom.xml
    M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: 3e8957b13a9d1956b033e6ac4569d38be53f964b
      https://github.com/OpenNMS/opennms/commit/3e8957b13a9d1956b033e6ac4569d38be53f964b
  Author: Dino <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M container/features/pom.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M features/sentinel/repository/pom.xml

  Log Message:
  -----------
  NMS-20164: Lock OSGi resolved dependencies to the root pom versions (#8741)

* NMS-20164: Lock OSGi resolved dependencies to the root pom versions


  Commit: fff0738688944c1733cc775c2faf494eb7a67d7b
      https://github.com/OpenNMS/opennms/commit/fff0738688944c1733cc775c2faf494eb7a67d7b
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/main/workflows/workflows_v2.json
    M .circleci/pyscripts/library/cci_components/workflow.py

  Log Message:
  -----------
  remove deprecated regex


  Commit: e4a5322fc43938fcc49e1c3d65961483dab11a3e
      https://github.com/OpenNMS/opennms/commit/e4a5322fc43938fcc49e1c3d65961483dab11a3e
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/main/jobs/publish.yml
    M .circleci/main/workflows/workflows_v2.json

  Log Message:
  -----------
  re-enable publishing images to Dockerhub


  Commit: 34d3f0a048a317a4c76e589acda275afb3d1e9fb
      https://github.com/OpenNMS/opennms/commit/34d3f0a048a317a4c76e589acda275afb3d1e9fb
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  force a build


  Commit: ced46e5dc09ebb62313c79f1fb58249aec7e3bd3
      https://github.com/OpenNMS/opennms/commit/ced46e5dc09ebb62313c79f1fb58249aec7e3bd3
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/README.md
    M .circleci/epoch
    M .circleci/main/jobs/tests/integration/integration-test.yml
    M .circleci/main/parameters.yml
    M .circleci/main/workflows/workflows_v2.json
    M .circleci/pyscripts/library/cci_components/workflow.py
    M .circleci/pyscripts/process_generate.py

  Log Message:
  -----------
  NMS-20104: Add ability to run full integration tests on CircleCI (#8694)

* Allow the user to run a full integration test build

* test what happens when we give !integration

* Update the readme file to add the new integration option


  Commit: 0431c2c2666b60f8f46b3f6071718dcd5f771350
      https://github.com/OpenNMS/opennms/commit/0431c2c2666b60f8f46b3f6071718dcd5f771350
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M container/karaf/pom.xml
    M container/karaf/src/main/internal/features-processing.xml
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M features/minion/repository/pom.xml
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into release-36.x


  Commit: f73af2fa771f8df12b4a226cf8f9e7975f6a806a
      https://github.com/OpenNMS/opennms/commit/f73af2fa771f8df12b4a226cf8f9e7975f6a806a
  Author: joseanesONMS <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/packages/onms-ui/src/components/OnmsAutoComplete.vue
    M ui/tests/onms-ui/OnmsAutoComplete.test.ts

  Log Message:
  -----------
  NMS-20029: forward the #option slot in OnmsAutoComplete (#8742)


  Commit: 3dde578d02fe18ff07befd48175f8ad5632351c4
      https://github.com/OpenNMS/opennms/commit/3dde578d02fe18ff07befd48175f8ad5632351c4
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/config.yml

  Log Message:
  -----------
  Pin CirlceCI CLI to version 0.1.38646


  Commit: b1b77d7ad68bd7d0ad1afbaf294f035968db42ee
      https://github.com/OpenNMS/opennms/commit/b1b77d7ad68bd7d0ad1afbaf294f035968db42ee
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  Update epoch


  Commit: 91ab0941c84716d31f9b84a0c87c8d1365ffe941
      https://github.com/OpenNMS/opennms/commit/91ab0941c84716d31f9b84a0c87c8d1365ffe941
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/README.md
    M .circleci/main/jobs/tests/integration/integration-test.yml
    M .circleci/main/parameters.yml
    M .circleci/main/workflows/workflows_v2.json
    M .circleci/pyscripts/library/cci_components/workflow.py
    M .circleci/pyscripts/process_generate.py
    M container/features/pom.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M features/sentinel/repository/pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2023' into foundation-2024


  Commit: e670f05583a5dbc04e1a1c6d4d958eda5c21719b
      https://github.com/OpenNMS/opennms/commit/e670f05583a5dbc04e1a1c6d4d958eda5c21719b
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/config.yml

  Log Message:
  -----------
  Pin CirlceCI CLI to version 0.1.38646


  Commit: 6773de846d171d614db9c67b3e91de444274714b
      https://github.com/OpenNMS/opennms/commit/6773de846d171d614db9c67b3e91de444274714b
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/config.yml

  Log Message:
  -----------
  Pin CirlceCI CLI to version 0.1.38646


  Commit: 0fdeed04fff6e7dd5f9401d7f3b65aef6f54b35f
      https://github.com/OpenNMS/opennms/commit/0fdeed04fff6e7dd5f9401d7f3b65aef6f54b35f
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  force a build


  Commit: 7342905636cdde8c2f04c385f5f9bdac43d5beb7
      https://github.com/OpenNMS/opennms/commit/7342905636cdde8c2f04c385f5f9bdac43d5beb7
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/Menu/SideMenu.vue
    M ui/src/components/Menu/utils.ts
    M ui/tests/components/Menu/utils.test.ts

  Log Message:
  -----------
  NMS-20167: Sidemenu flicker, expand/collapse hotkey (#8749)

* NMS-20167: Remove menu flyout on mouse hover. Add tooltips for collapsed menu items.

* NMS-20167: Use Ctrl-Backslash to expand/collapse side menu.

* NMS-20167: Fixes

Stale flyout on Ctrl+\ toggle
Disable Ctrl+\ hotkey when typing / in an input/edit field
Fix comment wrapping


  Commit: 6c445ae6c327120986085fa07be7141036575d4e
      https://github.com/OpenNMS/opennms/commit/6c445ae6c327120986085fa07be7141036575d4e
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M container/features/pom.xml
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features.xml
    M container/karaf/src/main/filtered-resources/etc/custom.properties
    A dependencies/angus-mail-shaded/pom.xml
    M dependencies/cxf/pom.xml
    R dependencies/javamail/pom.xml
    R dependencies/javamail/src/license/THIRD-PARTY.properties
    M dependencies/jaxb/pom.xml
    M dependencies/pom.xml
    M docs/modules/operation/pages/deep-dive/admin/configuration/token-authentication.adoc
    M docs/modules/operation/pages/deep-dive/meta-data.adoc
    M docs/modules/operation/pages/deep-dive/notifications/configuration.adoc
    M docs/modules/reference/pages/daemons/daemon-config-files/notifd.adoc
    M docs/modules/reference/pages/service-assurance/monitors/MailTransportMonitor.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M features/poller/monitors/core/pom.xml
    M features/poller/monitors/core/src/main/java/org/opennms/netmgt/poller/monitors/MailTransportMonitor.java
    M features/wsman/pom.xml
    M opennms-ackd/pom.xml
    M opennms-ackd/src/main/java/org/opennms/netmgt/ackd/readers/MailAckProcessor.java
    M opennms-ackd/src/test/java/org/opennms/netmgt/ackd/readers/JavaMailAckReaderIT.java
    M opennms-base-assembly/pom.xml
    M opennms-base-assembly/src/main/filtered/bin/newts-repository-converter
    M opennms-base-assembly/src/main/filtered/etc/examples/javamail-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.xml
    A opennms-config/src/main/java/org/opennms/netmgt/config/tokenauth/TokenScope.java
    M opennms-config/src/main/resources/META-INF/opennms/applicationContext-token-auth.xml
    A opennms-config/src/test/java/org/opennms/netmgt/config/tokenauth/TokenScopeTest.java
    M opennms-enterprise-reporting/opennms-reportd/pom.xml
    M opennms-enterprise-reporting/opennms-reportd/src/main/java/org/opennms/netmgt/reporting/service/JavaMailDeliveryService.java
    M opennms-javamail/opennms-javamail-api/pom.xml
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer2.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailerConfig.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaReadMailer.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaSendMailer.java
    A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerConfigTokenTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerTest.java
    A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerWireTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaReadMailerTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaSendMailerTest.java
    M opennms-services/pom.xml
    M opennms-web-api/pom.xml
    M opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultSchedulerService.java
    M opennms-web-dependencies/pom.xml
    M opennms-webapp-rest/pom.xml
    M pom.xml

  Log Message:
  -----------
  NMS-20102: Migrate all mail sending/reading from JavaMail 1.4.7 to Jakarta Mail 2.1 (Part of rework JavaMailNotificationStrategy) (#8701)

* NMS-20102: Jakarta Mail 2.1 build plumbing and MOXy javax.mail shim

Adds dependencyManagement for jakarta.mail-api 2.1.5, angus-mail 2.0.5,
angus-activation 2.0.3, and bumps jakarta.activation-api to 2.1.4 (the
jakarta-namespace line needed by angus; javax-namespace activation
classes continue to come from com.sun.activation:jakarta.activation
1.2.1, which opennms-webapp-rest now references directly).

EclipseLink MOXy 2.5.1 hard-references javax.mail.internet.MimeMultipart
from XMLBinaryDataHelper's initializer, so a javax.mail-namespace API
must stay on the classpath after the jakarta migration. jaxb-dependencies
switches from javax.mail:mail 1.4.7 to com.sun.mail:mailapi 1.6.7: API
classes only, no transport providers, and a distinct Maven GA so it
cannot collide with jakarta.mail-api 2.1.x under dependencyConvergence.
The Karaf javax.mail feature repoints to the jakarta.mail-api 1.6.7
bundle, matching the copy CXF's cxf-specs feature already installs.

* NMS-20102: Remove the jmta local-MTA transport

alt.dev.jmta:jmta:1.0 (2004) subclasses javax.mail.Transport and cannot
load under Jakarta Mail 2.x. The use-jmta attribute and the useJMTA
property remain accepted so existing configuration files keep loading;
JavaMailer now logs a one-time WARN and sends via the configured
transport instead. On the JavaSendMailer path use-jmta was already
inert: the transport always came from sendmail-protocol@transport,
which the schema restricts to smtp|smtps, so the removed "mta" branch
there was unreachable. Shipped defaults change to use-jmta="false".

Behavior change for installs that relied on the local MTA transport:
mail now goes over SMTP to the configured sendmail host (default
127.0.0.1:25) instead of through the in-process JMTA class.

* NMS-20102: Migrate mail code to Jakarta Mail 2.1 / Eclipse Angus

Renames javax.mail.* to jakarta.mail.* and javax.activation.* to
jakarta.activation.* across the mail senders/readers (opennms-javamail,
ackd, poller MailTransportMonitor, reportd, web-api) and their tests.
opennms-javamail-api now depends on jakarta.mail-api with angus-mail
and angus-activation as runtime providers, flowing transitively to all
consumers; direct importers declare jakarta.mail-api explicitly.

Spring 4.2.9's MimeMessageHelper is compiled against javax.mail, so
JavaSendMailer.buildMimeMessage() and reportd's JavaMailDeliveryService
build their MIME messages directly (same structure: single-part message
for sendmail, mixed multipart with a plain/HTML alternative and the
report attachment for reportd). This also drops opennms-javamail-api's
mandatory org.springframework.mail.javamail OSGi import.

Container: new jakarta.mail Karaf feature (API + Angus bundles at the
system start level); the opennms-javamail feature uses it; the
javax.mail feature remains for the MOXy shim consumers. custom.properties
exports the jakarta.mail/jakarta.activation packages from the flat
classpath. The wsman bundle marks jakarta.mail optional: it accidentally
embeds poller-monitors-core's whole org.opennms.netmgt.poller.monitors
package (split package with WsManMonitor), and the unused embedded
MailTransportMonitor copy is where its mail import comes from.

* NMS-20102: Ban javax.mail:mail and legacy mail spec jars

Inverts the enforcer rule that required javax.mail:mail: the banned list
now covers javax.mail:mail, com.sun.mail:javax.mail/jakarta.mail, the
merged org.eclipse.angus:jakarta.mail artifact (would duplicate the
API + angus-mail classes), and geronimo-javamail_1.4_spec, which reached
$OPENNMS_HOME/lib undeclared through abdera-parser/axiom and is now
excluded at its source in cxf-dependencies. com.sun.mail:mailapi remains
allowed as the MOXy shim.

Also fixes the newts-repository-converter activation-jar glob, which
matched nothing (lib/jdk9plus ships the servicemix activation-api jar,
not javax.activation-*.jar).

* NMS-20102: Wire JavaSendMailer's built properties into its Session

createProps() assembled <javamail-property> entries and the computed
mail.smtp.* keys, then returned the JVM-default session's properties
instead ("//get rid of this"), so none of it ever reached the Session;
configureProperties() additionally merged everything into a local
variable that went nowhere. The Session now receives the merged set:
javamail-configuration.properties (only when useJmProps=true, matching
the constructor contract), overlaid by <javamail-property> entries,
with computed keys filled in only where absent so user values win.
Session-property-driven features - mail.smtp.auth.mechanisms=XOAUTH2
in particular - become usable on the XML config path.

Applied property names are logged at INFO on session creation since
previously-inert <javamail-property> entries in existing configuration
files take effect on upgrade.

Also assigns the parent JavaMailer2 session, which reportd reads via
getSession() and previously received as null.

* NMS-20102: Resolve ${token:<name>} in mail credentials for XOAUTH2

Adds TokenScope, a mate Scope over the token-auth TokenProvider under
the "token" context, registered in the token-auth application context.
JavaMailerConfig now interpolates credentials against a FallbackScope
of the SCV scope and the token scope, each independently optional, so
${token:<name>} works wherever ${scv:...} already did: the
authenticateUser/authenticatePassword properties and the XML
user-auth fields (both resolved at connect time, so tokens are always
fresh via the token cache).

With Angus providing the XOAUTH2 SASL mechanism natively, OAuth2 SMTP
(Microsoft 365 client-credentials, Gmail) needs only configuration:
a token-auth definition for the provider's token endpoint, plus
authenticate=true, mail.smtp.auth.mechanisms=XOAUTH2, and
${token:<name>} as the password. No mail-code OAuth client required.

The token scope resolves per interpolation (no caching in the scope) -
covered by tests asserting fetch-per-call semantics.

* NMS-20102: Add wire-level mail tests (GreenMail + fake-SMTP XOAUTH2)

The mail code had no non-manual wire coverage: every send/receive test
was @Ignore'd against real servers. JavaMailerWireTest runs the actual
Angus SMTP/IMAP providers against an embedded GreenMail 2.x on dynamic
ports: plain send, authenticated send, JavaSendMailer end-to-end from a
SendmailConfig (locks in the createProps fix), and JavaReadMailer over
IMAP.

XOAUTH2 is asserted byte-level against a minimal in-test SMTP server,
since GreenMail doesn't implement that SASL mechanism: the client must
emit AUTH XOAUTH2 with base64("user=<u>\x01auth=Bearer <token>\x01\x01"),
which is the exact string Microsoft 365 and Gmail validate.

greenmail excludes org.eclipse.angus:jakarta.mail (the banned merged
API+impl jar); the split artifacts provide the same classes. The tests
set mail.smtp timeouts so protocol mismatches fail in seconds instead
of hanging the build.

* NMS-20102: Document XOAUTH2 mail authentication and migration notes

Adds a worked Microsoft 365 client-credentials example to the token
authentication page (token-auth block plus both the properties-file and
javamail-configuration.xml recipes), references the token context from
the notifd config-file table and the metadata DSL page, and comments the
XOAUTH2 pattern in the shipped javamail-configuration.properties.

Release notes cover the Jakarta Mail migration and its three upgrade
notes: checkserveridentity now defaults to true on SSL/TLS connections,
use-jmta is accepted but inert, and <javamail-property> entries take
effect on the sendmail path.

* NMS-20102: Apply adversarial-review findings

Code fixes:
- angus-mail on the flat classpath is replaced by angus-mail-shaded,
  which strips META-INF/mailcap and META-INF/javamail(.default).providers.
  Those javax-era resource names list jakarta-namespace classes, and the
  javax.activation command map reads them from every jar: with
  com.sun.activation as the javax impl, a text/plain DataHandler lookup
  fails outright (reproduced), taking down unrelated javax consumers.
  The jakarta runtime keeps working via META-INF/jakarta.mailcap and
  ServiceLoader, both retained; Karaf features keep vanilla angus-mail
  (bundle isolation makes the resources harmless there).
- reportd attachments carry their real MIME type again (PDF/CSV/XLS
  registered on the data source); a bare FileDataSource labeled every
  report application/octet-stream.
- JavaSendMailer only advertises mail.smtp(s).auth=true when a user-auth
  is actually configured; use-authentication="true" without credentials
  kept sending unauthenticated before the session properties became
  real, and now warns instead of failing the connect.
- transport 'mta' (still possible via the unvalidated properties file)
  maps to smtp with a warning instead of NoSuchProviderException; the
  removed-JMTA warning is per-mailer instead of once per JVM.
- TokenScope resolves to empty (WARN) on token-provider failures so a
  transient token-endpoint outage cannot abort mailer construction.
- JavaMailerConfig.getProperties is no longer synchronized: credential
  interpolation may fetch an OAuth token over HTTP, and the class
  monitor serialized every mail path in the JVM on that request.
- custom.properties additionally exports jakarta.activation.spi, so
  angus-activation wires both packages to the same provider.

Tests: XOAUTH2 wire test now drives the full documented composition
(${token:name} in javamail-configuration.properties resolved through
the token scope to the Bearer token on the wire); new authenticated
JavaSendMailer wire test; fake SMTP thread is a daemon; JavaSendMailer
wire tests set mail timeouts via <javamail-property>; test scope/system
property state is restored after each class.

Docs: metadata page no longer suggests readmail-config credentials
interpolate (they do not); XOAUTH2 mechanism line documented as
required rather than advisory; M365 prerequisites include the mailbox
permission grant; release notes cover the provider-less javax.mail API
(third-party plugins) and MailTransportMonitor sendmail-test behavior;
MailTransportMonitor reference page marks use-jmta deprecated; shipped
and example properties files carry the XOAUTH2 recipe with a
duplicate-key note.

* NMS-20102: Address Copilot review feedback

JavaSendMailer.buildMimeMessage() parses the to address with
InternetAddress.parse(to, false), matching JavaMailer, so
comma-separated recipient lists in sendmail-message work; the previous
single-address constructor matched the old MimeMessageHelper behavior
but diverged from the rest of the module. Wire test now sends to two
recipients. Also drops the duplicated mail.smtp.quitwait defaulting
block (pre-existing) and restores the opennms.home system property
after each JavaMailerWireTest.

* NMS-20102: Keep the message body on streamed mail attachments

JavaMailer.buildMessage() has two attachment branches: the file branch
builds a multipart with the message text followed by the attachment,
while the stream branch (added in 1dfc6c9e481, 2010) added only the
attachment part. Callers that set an input stream therefore lost the
message text entirely -- DefaultReportWrapperService sets both, so every
emailed database report arrived as a bare PDF or CSV with no body.

The stream branch now adds the text part first, matching the file
branch. Covered by a GreenMail wire test asserting both parts and their
order; the test fails on the previous behavior with one part instead of
two.

Pre-existing on release-36.x and unrelated to the Jakarta migration,
folded in here since this is the mail rework.

* NMS-20102: Document mail server TLS certificate verification

Angus enforces certificate trust and host-name verification
independently, and mail.smtp.ssl.trust suppresses only the first --
including when set to "*", the conventional workaround for self-signed
certificates. Installations carrying it therefore still fail
host-name verification after the upgrade, which the release note did
not convey.

Adds a Mail server TLS section to the notification configuration page
covering both properties, the two distinct failure messages, and which
property applies to each; the release note is trimmed to the behavior
change and points there. Verified against a STARTTLS server presenting
a certificate for a different name.

* NMS-20102: Trim the Jakarta Mail release note

Condense the whatsnew entry to the changes an upgrader has to act on and
push the detail to the notifications and token-authentication pages.
Also drop the note about readmail-config not supporting metadata
expressions, which does not belong in the list of what does.


  Commit: fe0cc01c0c813722dadfb1f53ac45138c1c0027e
      https://github.com/OpenNMS/opennms/commit/fe0cc01c0c813722dadfb1f53ac45138c1c0027e
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M ui/src/components/Menu/SideMenu.vue
    M ui/src/theme/primevue-setup.ts
    A ui/tests/components/Menu/SideMenu.test.ts

  Log Message:
  -----------
  NMS-20171: Fix various SideMenu issues (#8751)


  Commit: bcc2528a52c24e09c0f85064b769ce4bc03fc65b
      https://github.com/OpenNMS/opennms/commit/bcc2528a52c24e09c0f85064b769ce4bc03fc65b
  Author: CI/CD System <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2023' into foundation-2024


  Commit: 589c655b262efc5226b971e80706f6ba09f26dba
      https://github.com/OpenNMS/opennms/commit/589c655b262efc5226b971e80706f6ba09f26dba
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    A ui/CLAUDE.md

  Log Message:
  -----------
  NMS-20173: Add ui/CLAUDE.md documenting UI conventions for Claude Code (#8752)


  Commit: d94d2e6ee87dbebf2b12df1581099710ead893a5
      https://github.com/OpenNMS/opennms/commit/d94d2e6ee87dbebf2b12df1581099710ead893a5
  Author: Chandra Gorantla <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M container/features/src/main/resources/features.xml
    M container/karaf/src/main/filtered-resources/etc/custom.properties
    M core/daemon/pom.xml
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Invoker.java
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Manager.java
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Starter.java
    A core/daemon/src/main/java/org/opennms/netmgt/vmmgr/StartupLifecycleHook.java
    M docs/modules/operation/nav.adoc
    A docs/modules/operation/pages/deep-dive/admin/high-availability.adoc
    M docs/modules/reference/pages/karaf-shell/karaf-shell.adoc
    M features/events/syslog/src/test/java/org/opennms/netmgt/syslogd/SyslogMessageTest.java
    A features/ha-management/ha-api/pom.xml
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaConfiguration.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaInstanceState.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaMode.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaRole.java
    A features/ha-management/ha-daemon/pom.xml
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/DbConnectionFactory.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaConfigSyncer.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaHeartbeatWriter.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupCoordinator.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupLifecycleHook.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStatusSchema.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaSyncFiles.java
    A features/ha-management/ha-daemon/src/main/resources/META-INF/services/org.opennms.netmgt.vmmgr.StartupLifecycleHook
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/DbConnectionFactoryTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaConfigSyncerTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupCoordinatorTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupLifecycleHookTest.java
    A features/ha-management/ha-rest/pom.xml
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/HaRestService.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaInstanceStatusDto.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaStatusCollectionDto.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/impl/HaRestServiceImpl.java
    A features/ha-management/ha-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
    A features/ha-management/ha-shell/pom.xml
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaConfigCommand.java
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaFailoverCommand.java
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaStatusCommand.java
    A features/ha-management/pom.xml
    M features/pom.xml
    M opennms-base-assembly/pom.xml
    A opennms-base-assembly/src/main/filtered-meridian/etc/ha-configuration.xml
    M opennms-base-assembly/src/main/filtered/etc/opennms.service
    M opennms-full-assembly/pom.xml
    M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml

  Log Message:
  -----------
  NMS-20109: Active/passive HA for OpenNMS core (#8700)

* WIP; testing

(cherry picked from commit 99ab08c00edc9df5453e7f3c90b3fe62a456d527)

* WIP

(cherry picked from commit b81400fbf988a99bf2512d8b2512ea365c23de14)

* test and iterate, test and iterate, test and

(cherry picked from commit 203bf32e3b4cbba44e2117f11f7d4593effadf36)

* WIP

(cherry picked from commit 853cf8a9ec43f42814304754d047ea887eefc236)

* don't rely on local clock

(cherry picked from commit 7b39e322211f2b90905e2d7a0a97fa1a17c0de55)

* periodically re-read the ha-configuration.xml sow e can change values on the fly

(cherry picked from commit d04e0a9f0b7a52919f5f19f8b32c847faecf70ca)

* skip syncing files in examples/ dir

(cherry picked from commit a98638e6d45c78f75315461cc59c62997c37c2f1)

* rest and shell refinements, correct some log messages

(cherry picked from commit 77b60c30a44409184ebfea73204366b451b5a208)

* Fixups for the config shell command

(cherry picked from commit e7bc80fce5b76c37fb7d2fb974972fbdb4995682)

* terminate immediately on split-brain detected instead of manager shutdown

(cherry picked from commit 5f54bea669cbe69c67bbb578e94a66837aaa6d6d)

* split-brain improvements; add active_since timestamp for tracking who became active when, and expose that value in both karaf shell and in ha rest api.

(cherry picked from commit 726f4cad4f4deae0b806af35cebdcc9acc7897bd)

* Convert to ShellTable for niceness

(cherry picked from commit 2b0ef35822c4f3747aace4ddbc015c812e37047d)

* NMS-20109: Make HA management an optional feature

- Create ha_instance_status from the coordinator at startup (advisory-lock
  serialized, includes agent_last_seen) instead of the core Liquibase
  changelog
- Write only last_heartbeat from the heartbeat cycle; state columns change
  on transitions only
- Add <mode>heartbeat-only</mode>: an external supervisor owns the state
  machine and OpenNMS only publishes liveness, never gating startup
- Move the HA REST endpoints out of opennms-webapp-rest into the ha-rest
  OSGi whiteboard bundle; enforce authorization via Spring Security
  intercept-urls
- Replace the filesystem-API config sync with a binary manifest transfer
  (sha256 diff, atomic apply, deletion propagation, sync-excludes); the
  hasync account no longer needs ROLE_FILESYSTEM_EDITOR

* NMS-20109: Handle some corner cases

Fail-closed startup
Partner check before claiming ACTIVE
No assume-inactive-on-error

* NMS-20109: Fail closed on HA config errors and harden sync path handling

- Abort startup instead of proceeding standalone when the HA config is
  unreadable, required fields are missing, or coordination throws;
  coordinator mode now requires a distinct partner-instance-id (enforced
  at load, REST update, and reload)
- Clamp failover-threshold to at least 2x the heartbeat interval and
  enforce a minimum sync interval before scheduling
- Suppress config sync in heartbeat-only mode, including config reloads
- Halt the JVM when failover cannot stop services after the step-down
  is advertised, instead of running on undetectable
- Config sync: support the ${scv:alias:attr|default} fallback syntax and
  resolve credentials via the stock vault (honors the configured keystore
  type); advertise the serving node's exclusions in the manifest and use
  the union of both nodes' lists for deletion propagation; canonicalize
  paths before exclusion matching; reject symlink escapes from etc/ and
  skip symlinks when building manifests; re-check HA state before every
  file write and deletion so a mid-cycle promotion aborts the pass
- Copy mode and sync-excludes in the ha-config shell command
- Use subtree intercept-url patterns for /rest/ha so trailing-slash
  variants keep requiring ROLE_ADMIN
- Document featuresBoot.d feature activation in the config template

* NMS-20109: Publish HA state after shutdown completes; lifecycle SPI

- Defer the STANDBY/FAILED row write until the service Invoker has
  finished stopping, so the partner can never promote alongside a node
  that is still draining; a hung drain falls back to heartbeat staleness
  at the failover threshold. The split-brain yield keeps its immediate
  write since the halt is instantaneous.
- Arbitrate split-brain only against a partner whose heartbeat is within
  the failover threshold: an ACTIVE row with a dead heartbeat means the
  partner stopped while holding the role, so the survivor continues as
  the sole active instance instead of halting in deference to it.
- Replace the reflective HA hooks in Starter and Manager with a
  StartupLifecycleHook SPI discovered via ServiceLoader; ha-daemon
  registers the implementation, and its absence is a no-op.
- Clarify the sync-excludes example in the config template.

* NMS-20109: Add docs for HA feature

* NMS-20109: Bound JDBC reads, mask sync password, unify heartbeat task

* NMS-20109: Survive status signals while gated; heartbeat through the drain

- register the SIGUSR1 status handler before the startup gate can block,
  so "opennms status" no longer kills a waiting standby; an empty status
  file is written when no services exist yet
- keep the heartbeat publishing liveness until the terminal state is
  written post-drain: the partner promotes on the state write, never on
  staleness beside a still-draining node (a hung drain is escalated by
  the service manager's stop timeout)
- promote when the partner row stays missing beyond the failover
  threshold instead of waiting forever
- serialize config-sync passes so a reschedule cannot overlap a
  still-running pass

* NMS-20109 : Update docs

* Restart in systemd unit and note in docs

* Fix conditional in nav while I'm here

* NMS-20109: Read partner identity once per monitor cycle

- Snapshot partner-instance-id in each monitor path so a cycle reasons about
  one partner throughout; a change during the anti-flap wait now restarts the
  verification instead of concluding about a different node.
- Reset the missing-row timer when partner-instance-id changes, so a new
  partner gets the full threshold before its absence counts toward promotion.
- Invoke the Manager MBean on the platform server instead of the first entry
  of MBeanServerFactory.findMBeanServer(null), whose ordering is unspecified;
  a miss would turn a planned failover into an immediate halt.
- Do not serve sync files through symlinks, which could otherwise alias an
  excluded file; manifests never advertise them.
- Cancel the superseded monitor and sync tasks before releasing the startup
  gate on promotion.

* NMS-20109: Report heartbeat staleness separately from role and state

- Rename the derived status flag from "degraded" to heartbeat-stale (STALE in
  the shell table) and compute it from heartbeat age alone. It also flagged a
  SECONDARY holding ACTIVE and the DEGRADED state, so both rows read
  DEGRADED=YES after a healthy failover, which reads as total failure.
- Align the class defaults with the shipped template — failover threshold 60s,
  sync interval 60s — and name the enforced minimums in the javadoc.

* NMS-20109: Handle some more edge case and docs

 - Manifest self-identification (#ha-manifest 1) refusing unmarked responses before any fetch or delete
 - partner-rest-url restart-only, with tests on both the REST and reload paths
 - Template defaults to https, plus a WARN when sync runs over http
 - Loud ERROR when a node's own status row has vanished
 - ROLE_REST dropped from the template, javadoc, and docs; this comment condensed
 - Docs: STANDBY vs DEGRADED distinction, automatic return as DEGRADED with a restart policy, and systemctl stop for maintenance

* Fix unrelated bug in syslog tests

* NMS-20109: Update docs on second node installation

---------

Co-authored-by: Dino <[email protected]>


  Commit: 2f48ba5e3d8bb76fbc5d42acc4eaa61fe8bcb333
      https://github.com/OpenNMS/opennms/commit/2f48ba5e3d8bb76fbc5d42acc4eaa61fe8bcb333
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/README.md
    M .circleci/config.yml
    M .circleci/main/jobs/tests/integration/integration-test.yml
    M .circleci/main/parameters.yml
    M .circleci/main/workflows/workflows_v2.json
    M .circleci/pyscripts/library/cci_components/workflow.py
    M .circleci/pyscripts/process_generate.py
    M container/features/pom.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: 886a143d1994b1b5925d66acd557aa50e38d6106
      https://github.com/OpenNMS/opennms/commit/886a143d1994b1b5925d66acd557aa50e38d6106
  Author: Morteza E <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M .circleci/config.yml
    M .circleci/main/jobs/build/build-ui.yml
    M container/features/pom.xml
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features.xml
    M container/karaf/pom.xml
    M container/karaf/src/main/filtered-resources/etc/custom.properties
    M container/karaf/src/main/internal/features-processing.xml
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M core/daemon/pom.xml
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Invoker.java
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Manager.java
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Starter.java
    A core/daemon/src/main/java/org/opennms/netmgt/vmmgr/StartupLifecycleHook.java
    A dependencies/angus-mail-shaded/pom.xml
    M dependencies/cxf/pom.xml
    R dependencies/javamail/pom.xml
    R dependencies/javamail/src/license/THIRD-PARTY.properties
    M dependencies/jaxb/pom.xml
    M dependencies/pom.xml
    M docs/modules/operation/nav.adoc
    M docs/modules/operation/pages/deep-dive/admin/configuration/token-authentication.adoc
    A docs/modules/operation/pages/deep-dive/admin/high-availability.adoc
    M docs/modules/operation/pages/deep-dive/meta-data.adoc
    M docs/modules/operation/pages/deep-dive/notifications/configuration.adoc
    M docs/modules/reference/pages/daemons/daemon-config-files/notifd.adoc
    M docs/modules/reference/pages/karaf-shell/karaf-shell.adoc
    M docs/modules/reference/pages/service-assurance/monitors/MailTransportMonitor.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M features/events/syslog/src/test/java/org/opennms/netmgt/syslogd/SyslogMessageTest.java
    A features/ha-management/ha-api/pom.xml
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaConfiguration.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaInstanceState.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaMode.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaRole.java
    A features/ha-management/ha-daemon/pom.xml
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/DbConnectionFactory.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaConfigSyncer.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaHeartbeatWriter.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupCoordinator.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupLifecycleHook.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStatusSchema.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaSyncFiles.java
    A features/ha-management/ha-daemon/src/main/resources/META-INF/services/org.opennms.netmgt.vmmgr.StartupLifecycleHook
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/DbConnectionFactoryTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaConfigSyncerTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupCoordinatorTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupLifecycleHookTest.java
    A features/ha-management/ha-rest/pom.xml
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/HaRestService.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaInstanceStatusDto.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaStatusCollectionDto.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/impl/HaRestServiceImpl.java
    A features/ha-management/ha-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
    A features/ha-management/ha-shell/pom.xml
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaConfigCommand.java
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaFailoverCommand.java
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaStatusCommand.java
    A features/ha-management/pom.xml
    M features/minion/repository/pom.xml
    M features/poller/monitors/core/pom.xml
    M features/poller/monitors/core/src/main/java/org/opennms/netmgt/poller/monitors/MailTransportMonitor.java
    M features/pom.xml
    M features/wsman/pom.xml
    M opennms-ackd/pom.xml
    M opennms-ackd/src/main/java/org/opennms/netmgt/ackd/readers/MailAckProcessor.java
    M opennms-ackd/src/test/java/org/opennms/netmgt/ackd/readers/JavaMailAckReaderIT.java
    M opennms-base-assembly/pom.xml
    A opennms-base-assembly/src/main/filtered-meridian/etc/ha-configuration.xml
    M opennms-base-assembly/src/main/filtered/bin/newts-repository-converter
    M opennms-base-assembly/src/main/filtered/etc/examples/javamail-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.xml
    M opennms-base-assembly/src/main/filtered/etc/opennms.service
    A opennms-config/src/main/java/org/opennms/netmgt/config/tokenauth/TokenScope.java
    M opennms-config/src/main/resources/META-INF/opennms/applicationContext-token-auth.xml
    A opennms-config/src/test/java/org/opennms/netmgt/config/tokenauth/TokenScopeTest.java
    M opennms-container/common.mk
    M opennms-container/core/Dockerfile
    M opennms-container/minion/Dockerfile
    M opennms-container/sentinel/Dockerfile
    M opennms-enterprise-reporting/opennms-reportd/pom.xml
    M opennms-enterprise-reporting/opennms-reportd/src/main/java/org/opennms/netmgt/reporting/service/JavaMailDeliveryService.java
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M opennms-javamail/opennms-javamail-api/pom.xml
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer2.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailerConfig.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaReadMailer.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaSendMailer.java
    A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerConfigTokenTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerTest.java
    A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerWireTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaReadMailerTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaSendMailerTest.java
    M opennms-services/pom.xml
    M opennms-web-api/pom.xml
    M opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultSchedulerService.java
    M opennms-web-dependencies/pom.xml
    M opennms-webapp-rest/pom.xml
    M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
    M pom.xml
    M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java
    A ui/CLAUDE.md
    M ui/packages/onms-ui/src/components/OnmsAutoComplete.vue
    M ui/src/components/Menu/SideMenu.vue
    M ui/src/components/Menu/utils.ts
    M ui/src/theme/primevue-setup.ts
    A ui/tests/components/Menu/SideMenu.test.ts
    M ui/tests/components/Menu/utils.test.ts
    M ui/tests/onms-ui/OnmsAutoComplete.test.ts

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/release-36.x' into develop


  Commit: 0495ab3af5da51ac8d450620be31fab7721028e7
      https://github.com/OpenNMS/opennms/commit/0495ab3af5da51ac8d450620be31fab7721028e7
  Author: Dino <[email protected]>
  Date:   2026-08-05 (Wed, 05 Aug 2026)

  Changed paths:
    M docs/modules/releasenotes/pages/whatsnew.adoc

  Log Message:
  -----------
  NMS-20165: announce beanshell support deprecated (#8745)


  Commit: 1b175cd19d8800a254fc1bdff81e086483f48e95
      https://github.com/OpenNMS/opennms/commit/1b175cd19d8800a254fc1bdff81e086483f48e95
  Author: Morteza E <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M dependencies/angus-mail-shaded/pom.xml
    M features/ha-management/ha-api/pom.xml
    M features/ha-management/ha-daemon/pom.xml
    M features/ha-management/ha-rest/pom.xml
    M features/ha-management/ha-shell/pom.xml
    M features/ha-management/pom.xml

  Log Message:
  -----------
  Fix the versions


  Commit: 51448ea666a4e56344513c2039492ad5671032c2
      https://github.com/OpenNMS/opennms/commit/51448ea666a4e56344513c2039492ad5671032c2
  Author: Morteza E <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M dependencies/angus-mail-shaded/pom.xml
    M features/ha-management/ha-api/pom.xml
    M features/ha-management/ha-daemon/pom.xml
    M features/ha-management/ha-rest/pom.xml
    M features/ha-management/ha-shell/pom.xml
    M features/ha-management/pom.xml

  Log Message:
  -----------
  Fix the versions


  Commit: ae1f79269b3df57ca7228d6a643dee1de9e25e08
      https://github.com/OpenNMS/opennms/commit/ae1f79269b3df57ca7228d6a643dee1de9e25e08
  Author: CI/CD System <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/merge-foundation/release-36.x-to-develop' into develop


  Commit: 7d28224f13b104e07a76a9521ecf0f32e62866c3
      https://github.com/OpenNMS/opennms/commit/7d28224f13b104e07a76a9521ecf0f32e62866c3
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/NodeRestServiceIT.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/SnmpInterfaceRestServiceIT.java
    M ui/src/components/Nodes/AssetFilterPanel.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    A ui/src/components/Nodes/NodeInterfacesPanel.vue
    M ui/src/components/Nodes/NodesTable.vue
    M ui/src/components/Nodes/hooks/queryStringParser.ts
    A ui/src/components/Nodes/hooks/useInterfaceListing.ts
    M ui/src/components/Nodes/hooks/useNodeQuery.ts
    M ui/src/containers/Nodes.vue
    M ui/src/services/index.ts
    M ui/src/services/ipInterfaceService.ts
    A ui/src/services/snmpInterfaceService.ts
    M ui/src/stores/nodeStore.ts
    M ui/src/stores/nodeStructureStore.ts
    M ui/src/types/index.ts
    M ui/tests/components/Nodes/AssetFilterPanel.test.ts
    M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
    M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
    A ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
    M ui/tests/components/Nodes/NodesTable.test.ts
    M ui/tests/components/Nodes/hooks/queryStringParser.test.ts
    A ui/tests/components/Nodes/hooks/useInterfaceListing.test.ts
    M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
    A ui/tests/containers/Nodes.test.ts
    A ui/tests/services/ipInterfaceService.test.ts
    A ui/tests/services/snmpInterfaceService.test.ts
    A ui/tests/stores/nodeStore.test.ts
    M ui/tests/stores/nodeStructureStore.test.ts

  Log Message:
  -----------
  NMS-20125: Node List parity enhancements (#8736)

* NMS-20125: add nodesWithOutages FIQL search to v2 NodeRestService

* NMS-20125: add pure interface-listing logic for Vue node list

* NMS-20125: add batched SNMP interface fetching for Vue node list

* NMS-20125: add Show interfaces mode to Vue node list

* NMS-20125: fix SNMP-narrowing fetch race and wildcard under-fetch

- Gate the SNMP interface fetch in NodesTable.vue on nodes/showInterfaces
  changing rather than interfaceListMode

- Add NodesTable.test.ts coverage for the narrowing FIQL, default-mode
  no-fetch, wildcard omission, and fetch dedupe.

* NMS-20125: add nodesWithOutages filter to Vue node list

* NMS-20125: redirect legacy nodeId query param to node detail page

* NMS-20125: exclude deleted nodes from node list queries and widen asset-column filtering

* NMS-20125: address final review findings for node list parity

Fixes five Important issues from the whole-branch review:

1. Invert the snmpMatchType-undefined default in getInterfaceListMode
2. Extract one shared, exported normalizeMacSearch() (useInterfaceListing.ts)
   that strips all non-hex characters and lowercases, and use it in
   useInterfaceListing's maclike match, NodesTable.vue's buildSnmpNarrowing,
   and useNodeQuery.ts's buildMaclikeQuery.
3. Widen NodesTable.vue's buildSnmpNarrowing under-fetch guard 
4. Add server-side IT coverage locking in the composed FIQL wire shapes the
   Vue page emits
5. Add a useNodeQuery.test.ts case asserting the exact _s produced for a
   searchTerm that looks like an IP

Also: Nodes.vue's legacy ?nodeId=<n> redirect now uses
window.location.replace instead of .assign, so Back doesn't return to the
bookmark URL and immediately re-redirect.

* NMS-20125: show interface expander only in Show Interfaces mode and only for expandable nodes

* NMS-20125: auto-expand qualifying rows once the async SNMP fetch resolves in maclike/snmpParm mode

* NMS-20125: validate node search input and correct wildcard help text

* NMS-20125: re-validate injected search terms in the queryFilter watch

* NMS-20125: Node list help updates

* NMS-20125: clarify Show Interfaces help for MAC/SNMP filter modes

* NMS-20125: offer all asset columns in the Asset Fields filter dropdown

* NMS-20125: drive AssetFilterPanel toggle tests through OnmsToggleSwitch emit

* NMS-20125: document Featured Fields Only toggle in Advanced Filters help

* NMS-20125: Small fix, force smoke tests !smoke

* NMS-20125: snmpParm takes priority over maclike in interface listing, matching legacy

* NMS-20125: remove unused getNodeIdRedirect(), point nodeId NOTE at the live redirect path

* NMS-20125: fix FIQL precedence in getNodeIpInterfaceQuery via the two-group form

* NMS-20125: sequence getSnmpInterfacesForNodes requests so the latest always wins

* NMS-20125: fix lint errors in nodeStore sequencing tests

* NMS-20125: clarify interface footer with total vs per-page node counts

* NMS-20125: auto-expand default-mode interface rows when the IP batch resolves

* NMS-20125: reset catch-up generation keys on page/toggle/mode change

* NMS-20125: double-encode node search terms instead of blocking special characters

* NMS-20125: strengthen IT coverage for grouped FIQL and outage suppression clauses

* NMS-20125: address review nits in interface listing, asset dropdown, and labels

* NMS-20125: correct comparator comment to cite the actual nullability evidence


  Commit: 926023b89b99243a733dcd7a6d972850c9024f63
      https://github.com/OpenNMS/opennms/commit/926023b89b99243a733dcd7a6d972850c9024f63
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M core/lib/src/main/java/org/opennms/core/utils/ConfigFileConstants.java
    R dependencies/asterisk/pom.xml
    M dependencies/pom.xml
    M docs/modules/operation/pages/deep-dive/notifications/commands.adoc
    M docs/modules/operation/pages/deep-dive/notifications/introduction.adoc
    M docs/modules/reference/pages/configuration/system-properties.adoc
    M docs/modules/reference/pages/daemons/introduction.adoc
    M docs/modules/releasenotes/pages/changelog.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M integration-tests/config/pom.xml
    M integration-tests/config/src/test/java/org/opennms/netmgt/config/WillItUnmarshalIT.java
    R opennms-asterisk/pom.xml
    R opennms-asterisk/src/license/THIRD-PARTY.properties
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/AsteriskGateway.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGateway.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGatewayMBean.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/BaseOnmsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/LouieLouieLyricsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/ReadNoticeDetailsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/monitor/AsteriskSIPPeerMonitor.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskConfig.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginator.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginatorException.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskUtils.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/notifd/asterisk/AsteriskOriginateNotificationStrategy.java
    R opennms-asterisk/src/main/resources/META-INF/opennms/applicationContext-asteriskGateway.xml
    R opennms-asterisk/src/main/resources/META-INF/services/org.opennms.netmgt.poller.ServiceMonitor
    R opennms-asterisk/src/main/resources/beanRefContext.xml
    M opennms-base-assembly/pom.xml
    R opennms-base-assembly/src/main/filtered/etc/ami-config.xml
    R opennms-base-assembly/src/main/filtered/etc/asterisk-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/examples/notificationCommands.xml
    M opennms-base-assembly/src/main/filtered/etc/log4j2.xml
    M opennms-base-assembly/src/main/filtered/etc/notificationCommands.xml
    M opennms-base-assembly/src/main/filtered/etc/opennms.properties
    M opennms-config-model/pom.xml
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiAgentConfig.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiConfig.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Definition.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Range.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/package-info.java
    R opennms-config-model/src/main/resources/xsds/ami-config.xsd
    R opennms-config-model/src/test/java/org/opennms/netmgt/config/ami/AmiConfigTest.java
    M opennms-config-tester/src/main/resources/META-INF/opennms/applicationContext-configTester.xml
    M opennms-config-tester/src/test/java/org/opennms/netmgt/config/tester/ConfigTesterTest.java
    R opennms-config/src/main/java/org/opennms/netmgt/config/AmiPeerFactory.java
    M opennms-config/src/main/resources/META-INF/opennms/component-dao.xml
    R opennms-config/src/test/java/org/opennms/netmgt/config/AmiPeerFactoryTest.java
    R opennms-config/src/test/resources/etc/ami-config.xml
    M pom.xml
    M ui/tests/fileEditor.test.ts

  Log Message:
  -----------
  NMS-20114: Remove the Asterisk notification strategy, AGI gateway, and AMI configuration (#8737)

* NMS-20114: Remove the Asterisk notification strategy and AGI gateway

AsteriskOriginateNotificationStrategy originated a call over the Asterisk
Manager Interface and passed the notice details as channel variables; the
bundled FastAGI server read them back to the answering party using canned
Asterisk sound files. That gateway is named in no shipped
service-configuration.xml, so nothing started it, and asterisk-java
1.0.0-final dates to 2009.

AsteriskSIPPeerMonitor goes as well. Its SipShowPeerAction is the AMI form
of "sip show peer", which is chan_sip only; Asterisk deprecated that channel
driver in 17 and removed it in 21, so the monitor reports Down regardless of
peer state on current versions.

SNMP data collection for Asterisk servers is untouched:
etc/datacollection/asterisk.xml and asterisk-graph.properties remain, keyed
on sysoid .1.3.6.1.4.1.22736.1.

integration-tests/config reached opennms-services transitively through
opennms-asterisk, which is how ServiceConfigurationPublicConstructorIT
resolved the daemon classes named in service-configuration.xml. It now
declares that dependency directly.

ConfigFileConstants id 74 is retired rather than renumbered, matching the
gaps already in that table.

* NMS-20114: Remove the orphaned AMI peer configuration

AmiPeerFactory and ami-config.xml existed only to hand AMI credentials to
AsteriskOriginator and AsteriskSIPPeerMonitor. Both are gone, leaving no
consumers, so the factory, the org.opennms.netmgt.config.ami model, the XSD,
the shipped ami-config.xml, and the config-tester and WillItUnmarshal
coverage for it are removed.

ConfigFileConstants id 75 is retired rather than renumbered, matching the
gaps already in that table.

The fileEditor unit test used ami-config.xml as arbitrary sample data for
its root-level-file case; it now names categories.xml instead.

* NMS-20114: Add release notes for the Asterisk removal


  Commit: 7636080573061bde33cb937b0c00b7883ed1f09e
      https://github.com/OpenNMS/opennms/commit/7636080573061bde33cb937b0c00b7883ed1f09e
  Author: Chandra Gorantla <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M opennms-util/src/main/java/org/opennms/core/utils/jexl/OnmsJexlUberspect.java
    A opennms-util/src/test/java/org/opennms/core/utils/jexl/OnmsJexlSandboxBypassTest.java

  Log Message:
  -----------
  NMS-20051: Fix JEXL sandbox bypass (#8754)


  Commit: a74777c56b973cc9e21b1c306c1d2f21a350a92e
      https://github.com/OpenNMS/opennms/commit/a74777c56b973cc9e21b1c306c1d2f21a350a92e
  Author: Morteza E <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M core/lib/src/main/java/org/opennms/core/utils/ConfigFileConstants.java
    R dependencies/asterisk/pom.xml
    M dependencies/pom.xml
    M docs/modules/operation/pages/deep-dive/notifications/commands.adoc
    M docs/modules/operation/pages/deep-dive/notifications/introduction.adoc
    M docs/modules/reference/pages/configuration/system-properties.adoc
    M docs/modules/reference/pages/daemons/introduction.adoc
    M docs/modules/releasenotes/pages/changelog.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M integration-tests/config/pom.xml
    M integration-tests/config/src/test/java/org/opennms/netmgt/config/WillItUnmarshalIT.java
    R opennms-asterisk/pom.xml
    R opennms-asterisk/src/license/THIRD-PARTY.properties
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/AsteriskGateway.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGateway.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGatewayMBean.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/BaseOnmsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/LouieLouieLyricsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/ReadNoticeDetailsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/monitor/AsteriskSIPPeerMonitor.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskConfig.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginator.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginatorException.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskUtils.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/notifd/asterisk/AsteriskOriginateNotificationStrategy.java
    R opennms-asterisk/src/main/resources/META-INF/opennms/applicationContext-asteriskGateway.xml
    R opennms-asterisk/src/main/resources/META-INF/services/org.opennms.netmgt.poller.ServiceMonitor
    R opennms-asterisk/src/main/resources/beanRefContext.xml
    M opennms-base-assembly/pom.xml
    R opennms-base-assembly/src/main/filtered/etc/ami-config.xml
    R opennms-base-assembly/src/main/filtered/etc/asterisk-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/examples/notificationCommands.xml
    M opennms-base-assembly/src/main/filtered/etc/log4j2.xml
    M opennms-base-assembly/src/main/filtered/etc/notificationCommands.xml
    M opennms-base-assembly/src/main/filtered/etc/opennms.properties
    M opennms-config-model/pom.xml
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiAgentConfig.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiConfig.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Definition.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Range.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/package-info.java
    R opennms-config-model/src/main/resources/xsds/ami-config.xsd
    R opennms-config-model/src/test/java/org/opennms/netmgt/config/ami/AmiConfigTest.java
    M opennms-config-tester/src/main/resources/META-INF/opennms/applicationContext-configTester.xml
    M opennms-config-tester/src/test/java/org/opennms/netmgt/config/tester/ConfigTesterTest.java
    R opennms-config/src/main/java/org/opennms/netmgt/config/AmiPeerFactory.java
    M opennms-config/src/main/resources/META-INF/opennms/component-dao.xml
    R opennms-config/src/test/java/org/opennms/netmgt/config/AmiPeerFactoryTest.java
    R opennms-config/src/test/resources/etc/ami-config.xml
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/NodeRestServiceIT.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/SnmpInterfaceRestServiceIT.java
    M pom.xml
    M ui/src/components/Nodes/AssetFilterPanel.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    A ui/src/components/Nodes/NodeInterfacesPanel.vue
    M ui/src/components/Nodes/NodesTable.vue
    M ui/src/components/Nodes/hooks/queryStringParser.ts
    A ui/src/components/Nodes/hooks/useInterfaceListing.ts
    M ui/src/components/Nodes/hooks/useNodeQuery.ts
    M ui/src/containers/Nodes.vue
    M ui/src/services/index.ts
    M ui/src/services/ipInterfaceService.ts
    A ui/src/services/snmpInterfaceService.ts
    M ui/src/stores/nodeStore.ts
    M ui/src/stores/nodeStructureStore.ts
    M ui/src/types/index.ts
    M ui/tests/components/Nodes/AssetFilterPanel.test.ts
    M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
    M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
    A ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
    M ui/tests/components/Nodes/NodesTable.test.ts
    M ui/tests/components/Nodes/hooks/queryStringParser.test.ts
    A ui/tests/components/Nodes/hooks/useInterfaceListing.test.ts
    M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
    A ui/tests/containers/Nodes.test.ts
    M ui/tests/fileEditor.test.ts
    A ui/tests/services/ipInterfaceService.test.ts
    A ui/tests/services/snmpInterfaceService.test.ts
    A ui/tests/stores/nodeStore.test.ts
    M ui/tests/stores/nodeStructureStore.test.ts

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/release-36.x' into develop


  Commit: 20426f3bdaee02e1c51073185f7ead09fb28ecab
      https://github.com/OpenNMS/opennms/commit/20426f3bdaee02e1c51073185f7ead09fb28ecab
  Author: Chandra Gorantla <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AlarmRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/AlarmRestServiceIT.java

  Log Message:
  -----------
  NMS-20030: Fix v2 alarm rest api access issue (#8755)


  Commit: b6d93514c1438635aecbedb5d74f48e7a34a1b98
      https://github.com/OpenNMS/opennms/commit/b6d93514c1438635aecbedb5d74f48e7a34a1b98
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M ui/src/components/Nodes/AssetFilterPanel.vue
    M ui/src/components/Nodes/ColumnSelectionDrawer.vue
    M ui/src/components/Nodes/ExtendedSearchPanel.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    M ui/src/components/Nodes/NodeInterfacesPanel.vue
    M ui/src/components/Nodes/NodesTable.vue
    M ui/src/components/Nodes/hooks/useNodeQuery.ts
    M ui/src/components/Nodes/utils.ts
    M ui/src/containers/Nodes.vue
    M ui/src/main/App.vue
    A ui/src/stores/nodeListStore.ts
    R ui/src/stores/nodeStructureStore.ts
    M ui/src/types/index.ts
    M ui/tests/components/Nodes/AssetFilterPanel.test.ts
    M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
    M ui/tests/components/Nodes/ExtendedSearchPanel.test.ts
    M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
    M ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
    M ui/tests/components/Nodes/NodesTable.test.ts
    M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
    M ui/tests/containers/Nodes.test.ts
    A ui/tests/stores/nodeListStore.test.ts
    R ui/tests/stores/nodeStructureStore.test.ts

  Log Message:
  -----------
  NMS-20175: Node List UI Fixes - less default columns, indentation (#8756)

* NMS-20175: trim default node list columns to reduce header cramping

* NMS-20175: align expanded interface list with the first data column

* NMS-20175: rename Node Structure naming to Node List

* NMS-20175: reorder outages toggle under down-nodes-only in Advanced Filters

* NMS-20175: match chip order to Advanced Filters toggle order


  Commit: 9fed4e502eec38cf00ab5439a34671f621185df7
      https://github.com/OpenNMS/opennms/commit/9fed4e502eec38cf00ab5439a34671f621185df7
  Author: CI/CD System <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M opennms-util/src/main/java/org/opennms/core/utils/jexl/OnmsJexlUberspect.java
    A opennms-util/src/test/java/org/opennms/core/utils/jexl/OnmsJexlSandboxBypassTest.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AlarmRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/AlarmRestServiceIT.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2023' into foundation-2024


  Commit: 8c95520dd86b4e846f30f35ec9d236cfad510579
      https://github.com/OpenNMS/opennms/commit/8c95520dd86b4e846f30f35ec9d236cfad510579
  Author: CI/CD System <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M opennms-util/src/main/java/org/opennms/core/utils/jexl/OnmsJexlUberspect.java
    A opennms-util/src/test/java/org/opennms/core/utils/jexl/OnmsJexlSandboxBypassTest.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AlarmRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/AlarmRestServiceIT.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: 3eef0ac8dffd04f6d4415195da34324d18c8f89e
      https://github.com/OpenNMS/opennms/commit/3eef0ac8dffd04f6d4415195da34324d18c8f89e
  Author: Morteza E <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M .circleci/README.md
    M .circleci/main/jobs/tests/integration/integration-test.yml
    M .circleci/main/parameters.yml
    M .circleci/main/workflows/workflows_v2.json
    M .circleci/pyscripts/library/cci_components/workflow.py
    M .circleci/pyscripts/process_generate.py
    M container/features/pom.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M opennms-util/src/main/java/org/opennms/core/utils/jexl/OnmsJexlUberspect.java
    A opennms-util/src/test/java/org/opennms/core/utils/jexl/OnmsJexlSandboxBypassTest.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AlarmRestService.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/AlarmRestServiceIT.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into release-36.x


  Commit: ae5489cc2e0c50e7d5de701ea62e7b928b389307
      https://github.com/OpenNMS/opennms/commit/ae5489cc2e0c50e7d5de701ea62e7b928b389307
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M container/karaf/src/main/filtered-resources/etc/overrides.properties
    M container/shared/src/main/filtered-resources/etc/overrides.properties
    M pom.xml
    M smoke-test/pom.xml

  Log Message:
  -----------
  NMS-20168: Update Netty to 4.2.16.Final (#8748)

Moves foundation-2023 onto the 4.2 line rather than the last 4.1 release,
matching foundation-2024 and later. 4.1.x still receives fixes, but the
advisory backlog is being closed on 4.2, and staying on 4.1 means diverging
from every downstream branch.

Netty 4.2 turned netty-codec into a class-free aggregate and moved its
contents into netty-codec-base, -compression, -protobuf and -marshalling.
Bundles importing io.netty.handler.codec* therefore lose their provider, so
the Karaf features and both overrides.properties gain netty-codec-base, and
netty-codec-compression wherever netty-codec-http is installed (it imports
io.netty.handler.codec.compression unconditionally). netty-codec-xml and its
aalto-xml dependency are declared explicitly for XmlFrameDecoderFactory,
which no longer reaches the XML codec through netty-codec.

sentinel-jms and sentinel-kafka now pull the netty feature as a prerequisite.
opennms-core-camel declares camel-netty4 but not netty, so it has always
relied on some other feature having installed the netty bundles; in the core
and minion containers something always does, but the sentinel container
installs neither, and camel-netty4 was left with no provider for
io.netty.handler.codec once netty-codec stopped exporting it.

No Java changes are needed: the netty surface used here is ByteBuf,
bootstraps and stock handlers, and the deprecated-in-4.2 pieces still in use
(NioEventLoopGroup, DefaultEventLoopGroup, SocketUtils, the resolver.dns
cache types) all still ship in 4.2.16. gRPC is grpc-netty-shaded throughout,
so it is unaffected, and camel-netty4 imports netty packages without a
version range.

The smoke-test reactor moves to the same version so the tests run against the
netty the product ships; it imports netty-bom, so the split codec modules
follow without further declarations.

Two 4.2 defaults changed and may need pinning if a deployment depends on the
old behaviour: the allocator is now adaptive rather than pooled
(io.netty.allocator.type=pooled) and netty client TLS verifies hostnames
(io.netty.handler.ssl.defaultEndpointVerificationAlgorithm=NONE).


  Commit: 24ff8c664530b63d55f9238636203e6e47aaffda
      https://github.com/OpenNMS/opennms/commit/24ff8c664530b63d55f9238636203e6e47aaffda
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M features/springframework-security/src/main/java/org/opennms/web/springframework/security/LoginModuleUtils.java
    A features/springframework-security/src/test/java/org/opennms/web/springframework/security/LoginModuleUtilsTest.java
    M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
    M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
    M ui/src/components/Menu/UserSelfServiceMenuItem.vue
    M ui/src/services/localStorageService.ts
    M ui/src/services/themeService.ts
    A ui/tests/components/Menu/UserSelfServiceMenuItem.test.ts
    A ui/tests/services/localStorageService.test.ts
    A ui/tests/services/themeService.test.ts

  Log Message:
  -----------
  NMS-20174: Fix Menubar/SideMenu issues in Firefox and Safari on JSP pages (#8758)

* NMS-20174: Fix Vue menu not rendering in Safari/Firefox on JSP pages

* NMS-20174: Never use saved REST/API requests as post-login redirect target

* NMS-20174: Don't let blocked localStorage prevent the menu app from mounting

* NMS-20174: Fix logout from JSP pages silently failing in Firefox

* NMS-20174: Cache-bust the Vue menu bundle links in bootstrap.jsp

* NMS-20174: Update stale isInvalidSavedRequestUrl javadoc


  Commit: 31d8d8958651456859ddfca8ef1c80245194fda8
      https://github.com/OpenNMS/opennms/commit/31d8d8958651456859ddfca8ef1c80245194fda8
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M ui/src/containers/OpenAPI.vue
    A ui/tests/containers/OpenAPI.test.ts

  Log Message:
  -----------
  NMS-20166: Improve the OpenAPI Docs UI page (#8746)

* NMS-20166: Stop the OpenAPI docs page jumping when a nav entry or tab is clicked

Two things on this page call Element.scrollIntoView, and it scrolls every
scrollable ancestor rather than only the intended pane. RapiDoc does it twice per
nav click, for the operation and for the nav link. PrimeVue's Tab does it too, in
scrollInView with block 'nearest', when a tab takes focus.

Which boxes are scrollable is not entirely ours to decide: PrimeVue's theme is
generated at runtime, and a box with overflow hidden on one axis has the other
computed to auto, which quietly makes it a scroll container. So the layout is
tightened where it can be, and the offsets are put back where it cannot.

- Puts each doc in its own tab, so only one is displayed rather than stacking two
  full-height rows and guaranteeing the page overflowed.
- Measures the space left below the breadcrumbs and above the footer, on mount and
  whenever the chrome reflows, rather than subtracting a fixed offset from 100vh.
- Clips the column and the tab boxes. clip rather than hidden, since a hidden box is
  still programmatically scrollable.
- Restores the vertical scroll of every scrollable box in the column's light DOM and
  above it after a click, which is what makes this hold whatever the theme leaves
  scrollable. querySelectorAll does not pierce shadow roots, so RapiDoc's own panes
  are untouched and still scroll to the clicked operation. Horizontal offsets are
  left alone, since the tab strip is legitimately scrollable sideways.
- Holds the document at the top while the column fits. A click is not the only thing
  that moves the page: switching tabs focuses the new tab and panel, and the browser
  scrolls a focused element into view on its own, after the frames the click handler
  watches. Skipped when the viewport is too short to hold the column, since the page
  then does need to scroll.
- Drops the IntersectionObserver that deferred the V1 doc; its tab being opened is
  now the trigger.

Everything here stays inside the page. Nothing is written to documentElement, so the
fixed app chrome and the side menu's flyouts, which need overflow visible, are
unaffected.

* NMS-20166: Share the in-flight OpenAPI spec fetch

Cache the pending promise rather than its result, so opening the V1 tab
before the mount-time fetch resolves joins that request instead of
issuing a second pair. The entry is dropped again if the fetch fails, so
a later call still retries.


  Commit: 0917805588a114b00cb47ef86db1f7d20b6b0554
      https://github.com/OpenNMS/opennms/commit/0917805588a114b00cb47ef86db1f7d20b6b0554
  Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M features/ticketing/jira-client/pom.xml

  Log Message:
  -----------
  build(deps): bump jiraClientVersion from 5.2.7 to 7.0.2 (#8405)

Bumps `jiraClientVersion` from 5.2.7 to 7.0.2.

Updates `com.atlassian.jira:jira-rest-java-client-api` from 5.2.7 to 7.0.2

Updates `com.atlassian.jira:jira-rest-java-client-core` from 5.2.7 to 7.0.2

---
updated-dependencies:
- dependency-name: com.atlassian.jira:jira-rest-java-client-api
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: com.atlassian.jira:jira-rest-java-client-core
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>


  Commit: 783a348874ed5598dd5e4cdea355ba40327df508
      https://github.com/OpenNMS/opennms/commit/783a348874ed5598dd5e4cdea355ba40327df508
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  Update epoch


  Commit: ec05fda75d8da50da0edc7f59406c6c461289931
      https://github.com/OpenNMS/opennms/commit/ec05fda75d8da50da0edc7f59406c6c461289931
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M docs/modules/operation/nav.adoc
    M docs/modules/operation/pages/deep-dive/notifications/bonus-strategies.adoc
    A docs/modules/operation/pages/deep-dive/notifications/strategies/scripting.adoc
    M docs/modules/releasenotes/pages/changelog.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M opennms-services/pom.xml
    M opennms-services/src/main/java/org/opennms/netmgt/notifd/BSFNotificationStrategy.java
    M opennms-services/src/test/java/org/opennms/netmgt/notifd/BSFNotificationStrategyIT.java

  Log Message:
  -----------
  NMS-20111: Updates BSF in Notifd to JSR-223 (#8718)

* NMS-20111: Port BSFNotificationStrategy to JSR-223

Apache BSF is retired to the Apache Attic; the strategy now runs
scripts through javax.script. The class name, all 25 script variable
names, the results["status"]=="OK" contract, run-type exec/eval
semantics, and the 0/-1 return mapping are unchanged, so existing
notificationCommands.xml entries and scripts keep working. The engine
is chosen by lang-class (JSR-223 name) or the file extension, with
BSF's .gy alias mapped to Groovy; bsf-engine and file-extensions are
accepted but ignored with a warning.

Compiled scripts are cached per path+engine with lastModified
invalidation (Groovy leaks a class per compilation, same rationale as
provisiond's JSR223ScriptCache); the compile attempt catches Throwable
because BeanShell declares Compilable but its compile() throws
Error("unimplemented"), in which case scripts are evaluated from
source on a fresh per-invocation engine. Bindings are built per
invocation, which drops the old static synchronized serialization of
every scripted notification and the declare/undeclare dance.

The IT grows from one to nine cases (eval, Groovy, .gy, lang-class
resolution, missing file, non-OK status, invalid run-type, deprecated
switches) and uses the database populator's actual node id: node ids
are sequence-assigned, so the hardcoded 1 only worked while the class
had a single test.

* NMS-20111: Document the scripted notification strategy

The strategy was never documented; adds a Scripted Notifications page
(parameters, script variables, the results.status success contract,
BSF migration notes) to the notification strategies section, plus the
release-note entries for the JSR-223 port.

* NMS-20111: Apply adversarial-review findings

- BeanShell scripts see null variables again: bsh's JSR-223 engine
  treats a null binding as an undefined variable, breaking scripts
  that test node fields against null (worked under BSF). The
  BeanShell path now drives bsh.Interpreter directly, as BSF did;
  Interpreter.set defines nulls properly. Reflective, since bsh is a
  runtime-scope dependency.
- The command's <substitution> element is honored when the argument
  value is empty, so the strategy's own switches (file-name,
  lang-class, run-type) can be configured in notificationCommands.xml
  the way the docs show; notifd passes empty values for switches
  without a notification parameter, which previously made the
  documented setup - and the bsf-engine deprecation warning -
  unreachable.
- Compile failures no longer latch the script-cache entry when the
  script itself is at fault: a fixed script compiles again. Only
  engines that cannot compile (BeanShell throws Error) latch. Cache
  keys derive from lang-class/extension so cache hits build no
  throwaway engine, and mtime comparison uses != so restored-older
  files also invalidate.
- Groovy engines come from a runtime-scope groovy-dependencies entry
  instead of relying on provision-persistence keeping groovy on the
  classpath; a GLOBAL_SCOPE bindings object avoids a bsh NPE path.
- IT covers the review gaps: null bindings, substitution-shaped
  config, cache reuse + mtime invalidation, missing file-name.
- Docs: substitution vs notification-parameter configuration spelled
  out, microblog_username listed as deprecated, release note no
  longer overstates engine-state isolation and mentions strict UTF-8.

* NMS-20111: Trim the whats-new entry to a single line

Review feedback on #8718: whats-new items should stay within two lines so the page
is quick to scan, with the detail in the deep-dive documentation.

The entry now states the change and links to Scripted Notifications. Everything it
listed was already covered there, apart from the UTF-8 caveat, which moves into that
page's notes on migrating BSF-era scripts.


  Commit: a6d757ac2dff116ba3caffe6c4faa71d536c436b
      https://github.com/OpenNMS/opennms/commit/a6d757ac2dff116ba3caffe6c4faa71d536c436b
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M opennms-container/core/plugins.sh

  Log Message:
  -----------
  Update plugins.sh

We don't need Cloudsmith CLI here


  Commit: c686867898112105fa1bfa64ac17251aa5131d8a
      https://github.com/OpenNMS/opennms/commit/c686867898112105fa1bfa64ac17251aa5131d8a
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M docs/modules/operation/nav.adoc
    M docs/modules/operation/pages/deep-dive/notifications/bonus-strategies.adoc
    M docs/modules/operation/pages/deep-dive/notifications/introduction.adoc
    R docs/modules/operation/pages/deep-dive/notifications/strategies/mattermost.adoc
    R docs/modules/operation/pages/deep-dive/notifications/strategies/slack.adoc
    A docs/modules/operation/pages/deep-dive/notifications/strategies/webhook.adoc
    M docs/modules/operation/pages/quick-start/beyond-qs.adoc
    M docs/modules/releasenotes/pages/changelog.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M opennms-services/pom.xml
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/AbstractSlackCompatibleNotificationStrategy.java
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/MattermostNotificationStrategy.java
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/SlackNotificationStrategy.java
    A opennms-services/src/main/java/org/opennms/netmgt/notifd/WebhookNotificationStrategy.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyIT.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyTestServlet.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackCompatibleNotificationStrategyTest.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackNotificationStrategyIT.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyIT.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTest.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTestServlet.java
    R opennms-services/src/test/resources/MattermostNotificationStrategyTest/WEB-INF/web.xml
    A opennms-services/src/test/resources/WebhookNotificationStrategyTest/WEB-INF/web.xml

  Log Message:
  -----------
  NMS-20113: Replace the Slack and Mattermost notification channels with a generic webhook (#8734)

* NMS-20113: Replace the Slack and Mattermost notification channels with a generic webhook

The Slack and Mattermost strategies shared a base class that built one
hardcoded JSON shape, so no other receiver could be expressed, and it
treated only a literal "ok" response body as success, which meant a
receiver answering 204 with no body was always logged as failed.

Adds WebhookNotificationStrategy, which takes the URL, method, content
type, headers, and body template from the notification command. Values
substituted into a JSON body are escaped, with a |raw modifier for
fragments that are themselves JSON, and the rendered body is parsed
before it is sent so a template mistake is reported locally instead of
as an opaque 400. Any 2xx counts as success, narrowed by an optional
-success-match for receivers that report failure behind a 200.

Template tokens deliberately exclude colons so they cannot collide with
the metadata DSL, which notifd resolves against notification parameters
before the command runs.

Removes the two strategies, their shared base class, and their tests,
and replaces the two documentation pages with a single webhook page
carrying Slack, Mattermost, Microsoft Teams, Discord, and non-chat
examples plus a migration table.

* NMS-20113: Review fixes for the webhook notification strategy

Log only the scheme and host of the webhook URL. Slack, Discord and
Teams URLs carry their credential in the path or query, so the previous
error log wrote a secret to notifd.log on any connection failure.

Reject blank bodies and trailing content when validating a JSON payload.
ObjectMapper.readTree maps blank input to a MissingNode and stops at the
first value, so {"text": "x"} oops was passing the check the strategy
advertises and failing at the receiver instead.

Also warn on an unknown template modifier rather than emitting the token
verbatim, ignore a negative timeout, and document that substitution
applies to the body alone and that a header must be declared as an
argument for its system property to take effect.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <[email protected]>

* NMS-20113: Fix three escaped tokens in the webhook documentation

AsciiDoc honors a backslash escape before a brace only when the braces
hold a valid attribute name, so ${...}, ${customBlocks|raw} and
${scv:...} kept their backslash and rendered as $\{...} on the page.
None of the three needs escaping, because none of them parses as an
attribute reference in the first place.

---------

Co-authored-by: Copilot Autofix powered by AI <[email protected]>


  Commit: 8b2bc3587b3b95b7560802c682b1b61be833af65
      https://github.com/OpenNMS/opennms/commit/8b2bc3587b3b95b7560802c682b1b61be833af65
  Author: CI/CD System <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M opennms-container/core/plugins.sh

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: a480037d3ce4fbcd3a40563c80c0021b8f1c403e
      https://github.com/OpenNMS/opennms/commit/a480037d3ce4fbcd3a40563c80c0021b8f1c403e
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M core/web-assets/src/main/assets/style/opennms-theme.scss
    M features/springframework-security/src/test/java/org/opennms/web/springframework/security/LoginModuleUtilsTest.java
    M opennms-services/src/test/resources/opennmsPageSequence.xml
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/NodeListService.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListCommand.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListModel.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeRestService.java
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-legacy.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/menu/MenuProviderTest.java
    M opennms-webapp-rest/src/test/resources/dispatcher-servlet.xml
    M opennms-webapp-rest/src/test/resources/menu/menu-template.json
    R opennms-webapp/src/main/java/org/opennms/web/controller/node/NodeListController.java
    M opennms-webapp/src/main/java/org/opennms/web/element/ElementIdNotFoundException.java
    M opennms-webapp/src/main/java/org/opennms/web/element/ElementUtil.java
    M opennms-webapp/src/main/resources/org/opennms/web/svclayer/applicationContext-svclayer.xml
    M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
    R opennms-webapp/src/main/webapp/WEB-INF/jsp/element/nodeList.jsp
    R opennms-webapp/src/main/webapp/WEB-INF/tags/element/nodelist.tag
    R opennms-webapp/src/main/webapp/WEB-INF/tags/element/pagedList.tag
    M smoke-test/src/main/java/org/opennms/smoketest/selenium/AbstractOpenNMSSeleniumHelper.java
    M smoke-test/src/test/java/org/opennms/smoketest/AdminPasswordGateIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    R smoke-test/src/test/java/org/opennms/smoketest/NodeListPageIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/ProvisioningNewUIIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/ui/NodeListIT.java
    M ui/src/components/Nodes/hooks/useInterfaceListing.ts
    M ui/src/styles/opennms-styles.scss
    M ui/tests/components/Menu/menu-template-test.json
    M ui/tests/components/Menu/utils.test.ts

  Log Message:
  -----------
  NMS-18217: Remove legacy Node List page (#8761)

* NMS-18217: remove legacy JSP node list page and DefaultNodeListService

* NMS-18217: update smoke tests for legacy node list removal

* NMS-18217: fix remaining smoke tests and stale comments referencing removed node list

* NMS-18217: address PR review feedback

- Drop the dead nodePage() call in ProvisioningNewUIIT (immediately
  overwritten by direct node-detail navigation) and remove the now
  caller-less nodePage() helper
- Replace the last /element/nodeList.htm reference (stale example URL
  in LoginModuleUtilsTest) with a surviving page
- Fix pre-existing ElementIdNotFoundException bug: the 6-arg
  constructor accepted browseUri but never assigned it, so the
  'browse the node list' link on the element-id-not-found error page
  never rendered for those call sites

* NMS-18217: force light color-scheme for native checkboxes and radios on legacy pages

Extends the existing <select> fix: in dark mode PrimeVue sets
color-scheme: dark on the document, making native form controls render
dark on the light-only legacy JSP pages (e.g. the alarm list's Ack
checkboxes).


  Commit: 717c67f6f0857c1a474917d4ab7d9623d94f8787
      https://github.com/OpenNMS/opennms/commit/717c67f6f0857c1a474917d4ab7d9623d94f8787
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M ui/package.json
    M ui/packages/onms-ui/src/components/OnmsTabs.vue
    M ui/pnpm-lock.yaml
    M ui/src/composables/useDownload.ts
    M ui/src/services/snmpDataCollectionService.ts
    A ui/tests/components/Device/dcbModalConfigDiffContent.test.ts
    M ui/tests/components/Nodes/EventsTable.test.ts
    M ui/tests/components/Nodes/IpInterfacesTable.test.ts
    M ui/tests/components/Nodes/OutagesTable.test.ts
    M ui/tests/components/Nodes/SnmpInterfacesTable.test.ts
    M ui/tests/components/TrapdConfiguration/GeneralConfiguration.test.ts
    M ui/tsconfig.json

  Log Message:
  -----------
  NMS-19725: Dependabot updates for Vue UI (August 2026) (#8763)

* NMS-19725: Update Vue UI dependencies from open Dependabot PRs (August 2026)

Dependency updates in /ui:
- axios 1.15.0 -> 1.19.0, ace-builds -> 1.44.0, fast-xml-parser -> 5.10.1
- fast-xml-builder -> 1.3.0 (transient, pnpm override)
- typescript ~5.4.5 -> ~5.9.3, vue-tsc 2.2.12 -> 3.3.9,
  @vitejs/plugin-vue 5.2.4 -> 6.0.8 (requires moduleResolution: bundler)
- diff 8 -> 9 (removed stale @types/diff; diff ships its own types)
- removed unused uuid + @types/uuid (last usage removed in NMS-18195)
- happy-dom 9.20.3 -> 20.11.2 plus transient overrides (shell-quote,
  immutable, svgo, brace-expansion, js-cookie, js-yaml, postcss) to
  remediate all osv-scanner findings with CVSS >= 4.0

Code adjustments for the updates:
- axios >= 1.19 header typings include null: assert content-type headers
  as string | undefined in useDownload.ts and snmpDataCollectionService.ts
- vue-tsc 3 strictness: non-null assertion on optional value prop passed
  to PrimeVue Tabs in OnmsTabs.vue

Test cleanup:
- GeneralConfiguration.test.ts: pass numbers (not strings) to numeric
  refs bound to OnmsInputNumber, silencing Vue prop type warnings
- Nodes table tests: mock store fetch actions BEFORE mounting so the
  onMounted fetch no longer fires real network requests (silences
  unhandled ECONNREFUSED AggregateErrors); simplified the OutagesTable
  double-mount workaround this enables

* NMS-19725: Address PR review feedback


  Commit: b7aab90f77a7edfbe9fefae2e8c9ef10339b9413
      https://github.com/OpenNMS/opennms/commit/b7aab90f77a7edfbe9fefae2e8c9ef10339b9413
  Author: Morteza E <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into release-36.x


  Commit: 96c423c955b20f2a18243b0d793faeffe03fd5e4
      https://github.com/OpenNMS/opennms/commit/96c423c955b20f2a18243b0d793faeffe03fd5e4
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  Update epoch


  Commit: deed6ca25be50d415538bf1e2e044346df9ac479
      https://github.com/OpenNMS/opennms/commit/deed6ca25be50d415538bf1e2e044346df9ac479
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java

  Log Message:
  -----------
  NMS-20176: Reorder Resource Graphs menu items (#8764)

* NMS-20176: Reorder Resource Graphs menu items, JSP page first and Vue page as Preview

* NMS-20176: Update MenuHeaderIT checks for reordered Resource Graphs menu items


  Commit: eba7ffb5f28d55a9333ae5fd6490da3e97a094c8
      https://github.com/OpenNMS/opennms/commit/eba7ffb5f28d55a9333ae5fd6490da3e97a094c8
  Author: Morteza E <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M .circleci/README.md
    M .circleci/epoch
    M .circleci/main/jobs/tests/integration/integration-test.yml
    M .circleci/main/parameters.yml
    M .circleci/main/workflows/workflows_v2.json
    M .circleci/pyscripts/library/cci_components/workflow.py
    M .circleci/pyscripts/process_generate.py
    M container/features/pom.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M core/web-assets/src/main/assets/style/opennms-theme.scss
    M docs/modules/operation/nav.adoc
    M docs/modules/operation/pages/deep-dive/notifications/bonus-strategies.adoc
    M docs/modules/operation/pages/deep-dive/notifications/introduction.adoc
    R docs/modules/operation/pages/deep-dive/notifications/strategies/mattermost.adoc
    A docs/modules/operation/pages/deep-dive/notifications/strategies/scripting.adoc
    R docs/modules/operation/pages/deep-dive/notifications/strategies/slack.adoc
    A docs/modules/operation/pages/deep-dive/notifications/strategies/webhook.adoc
    M docs/modules/operation/pages/quick-start/beyond-qs.adoc
    M docs/modules/releasenotes/pages/changelog.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M features/springframework-security/src/main/java/org/opennms/web/springframework/security/LoginModuleUtils.java
    A features/springframework-security/src/test/java/org/opennms/web/springframework/security/LoginModuleUtilsTest.java
    M opennms-services/pom.xml
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/AbstractSlackCompatibleNotificationStrategy.java
    M opennms-services/src/main/java/org/opennms/netmgt/notifd/BSFNotificationStrategy.java
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/MattermostNotificationStrategy.java
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/SlackNotificationStrategy.java
    A opennms-services/src/main/java/org/opennms/netmgt/notifd/WebhookNotificationStrategy.java
    M opennms-services/src/test/java/org/opennms/netmgt/notifd/BSFNotificationStrategyIT.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyIT.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyTestServlet.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackCompatibleNotificationStrategyTest.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackNotificationStrategyIT.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyIT.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTest.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTestServlet.java
    R opennms-services/src/test/resources/MattermostNotificationStrategyTest/WEB-INF/web.xml
    A opennms-services/src/test/resources/WebhookNotificationStrategyTest/WEB-INF/web.xml
    M opennms-services/src/test/resources/opennmsPageSequence.xml
    M opennms-util/src/main/java/org/opennms/core/utils/jexl/OnmsJexlUberspect.java
    A opennms-util/src/test/java/org/opennms/core/utils/jexl/OnmsJexlSandboxBypassTest.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/NodeListService.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListCommand.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListModel.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AlarmRestService.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeRestService.java
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-legacy.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/menu/MenuProviderTest.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/AlarmRestServiceIT.java
    M opennms-webapp-rest/src/test/resources/dispatcher-servlet.xml
    M opennms-webapp-rest/src/test/resources/menu/menu-template.json
    R opennms-webapp/src/main/java/org/opennms/web/controller/node/NodeListController.java
    M opennms-webapp/src/main/java/org/opennms/web/element/ElementIdNotFoundException.java
    M opennms-webapp/src/main/java/org/opennms/web/element/ElementUtil.java
    M opennms-webapp/src/main/resources/org/opennms/web/svclayer/applicationContext-svclayer.xml
    M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
    R opennms-webapp/src/main/webapp/WEB-INF/jsp/element/nodeList.jsp
    R opennms-webapp/src/main/webapp/WEB-INF/tags/element/nodelist.tag
    R opennms-webapp/src/main/webapp/WEB-INF/tags/element/pagedList.tag
    M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
    M smoke-test/src/main/java/org/opennms/smoketest/selenium/AbstractOpenNMSSeleniumHelper.java
    M smoke-test/src/test/java/org/opennms/smoketest/AdminPasswordGateIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    R smoke-test/src/test/java/org/opennms/smoketest/NodeListPageIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/ProvisioningNewUIIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/ui/NodeListIT.java
    M ui/package.json
    M ui/packages/onms-ui/src/components/OnmsTabs.vue
    M ui/pnpm-lock.yaml
    M ui/src/components/Menu/UserSelfServiceMenuItem.vue
    M ui/src/components/Nodes/AssetFilterPanel.vue
    M ui/src/components/Nodes/ColumnSelectionDrawer.vue
    M ui/src/components/Nodes/ExtendedSearchPanel.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    M ui/src/components/Nodes/NodeInterfacesPanel.vue
    M ui/src/components/Nodes/NodesTable.vue
    M ui/src/components/Nodes/hooks/useInterfaceListing.ts
    M ui/src/components/Nodes/hooks/useNodeQuery.ts
    M ui/src/components/Nodes/utils.ts
    M ui/src/composables/useDownload.ts
    M ui/src/containers/Nodes.vue
    M ui/src/containers/OpenAPI.vue
    M ui/src/main/App.vue
    M ui/src/services/localStorageService.ts
    M ui/src/services/snmpDataCollectionService.ts
    M ui/src/services/themeService.ts
    A ui/src/stores/nodeListStore.ts
    R ui/src/stores/nodeStructureStore.ts
    M ui/src/styles/opennms-styles.scss
    M ui/src/types/index.ts
    A ui/tests/components/Device/dcbModalConfigDiffContent.test.ts
    A ui/tests/components/Menu/UserSelfServiceMenuItem.test.ts
    M ui/tests/components/Menu/menu-template-test.json
    M ui/tests/components/Menu/utils.test.ts
    M ui/tests/components/Nodes/AssetFilterPanel.test.ts
    M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
    M ui/tests/components/Nodes/EventsTable.test.ts
    M ui/tests/components/Nodes/ExtendedSearchPanel.test.ts
    M ui/tests/components/Nodes/IpInterfacesTable.test.ts
    M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
    M ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
    M ui/tests/components/Nodes/NodesTable.test.ts
    M ui/tests/components/Nodes/OutagesTable.test.ts
    M ui/tests/components/Nodes/SnmpInterfacesTable.test.ts
    M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
    M ui/tests/components/TrapdConfiguration/GeneralConfiguration.test.ts
    M ui/tests/containers/Nodes.test.ts
    A ui/tests/containers/OpenAPI.test.ts
    A ui/tests/services/localStorageService.test.ts
    A ui/tests/services/themeService.test.ts
    A ui/tests/stores/nodeListStore.test.ts
    R ui/tests/stores/nodeStructureStore.test.ts
    M ui/tsconfig.json

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/release-36.x' into develop


  Commit: 566b52c2806167265d6c940fbda2c4e8780c6f0d
      https://github.com/OpenNMS/opennms/commit/566b52c2806167265d6c940fbda2c4e8780c6f0d
  Author: CI/CD System <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/release-36.x' into develop


  Commit: 8daf4d0c9a499f38332bc24135b55690c5a9ba31
      https://github.com/OpenNMS/opennms/commit/8daf4d0c9a499f38332bc24135b55690c5a9ba31
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M docs/modules/operation/pages/deep-dive/notifications/strategies/scripting.adoc
    M docs/modules/operation/pages/deep-dive/notifications/strategies/webhook.adoc

  Log Message:
  -----------
  Docs: Fix argument element order in notification command examples (#8770)

* NMS-20113: Fix argument element order in notification command examples

The XML examples put <switch> before <substitution> inside <argument>,
but notificationCommands.xsd declares the sequence as substitution then
switch. Copying an example into notificationCommands.xml therefore fails
to unmarshal, and the failure is quiet: notifd keeps its previous
configuration and emits reloadDaemonConfigFailed, while a matching
notification still queues a task that never runs.

scripting.adoc carried the same inversion before the webhook page
existed, so it is corrected here as well.

* NMS-20113: Note that bsf_notif_strategy.log() does not work under BeanShell

The variables table offered bsf_notif_strategy.log(level, format, args...)
without qualification, but the method takes varargs and BeanShell 2.0b6
does not resolve such calls. Under BeanShell every form fails, including
the two-argument one, with "Method log( ... ) not found"; BeanShell raises
it at dispatch level so the script cannot catch it, and the notification
ends with a -1 return code. The same call succeeds under Groovy.

Verified against both shipped engines on a release-36.x build.


  Commit: 8acf0e58faf3200530bb4fa7d32264da0d8b283a
      https://github.com/OpenNMS/opennms/commit/8acf0e58faf3200530bb4fa7d32264da0d8b283a
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M core/web-assets/.node-version
    M core/web-assets/package.json
    M core/web-assets/pnpm-lock.yaml
    M core/web-assets/src/main/assets/js/vendor/ipaddress-js.js
    M core/web-assets/src/test/javascript/ipaddress.test.js

  Log Message:
  -----------
  NMS-20181: Dependency updates for core/web-assets, August 2026 (#8767)

* Dependency updates for core/web-assets, August 2026

* NMS-20181: Revert TypeScript to ~5.9.3

TypeScript 6.0 buys nothing here: no script runs tsc (webpack transpiles
via babel), and @typescript-eslint 7.18.0 on this branch supports
<5.6.0 — a compiler major on release-36.x is risk without payoff. The
TS 6 bump belongs on develop together with @typescript-eslint 8.x.

169 jest tests pass after the revert.

* NMS-20181: Fix checkIpRange for IPv6; pin new leading-zero validation

checkIpRange's IPv6 branch called compareTo() on a native BigInt (jsbn
was dropped in ip-address 9), throwing TypeError and silently bypassing
the range validation in add-er.jsp/add-ir.jsp for IPv6. Compare with >=
like the IPv4 branch. Predates this PR.

Also pin ip-address 10.5.0's new rejection of leading-zero IPv4 octets
(ambiguous: octal to C parsers, decimal to Java) with explicit tests,
and cover inverted and mixed-family ranges.

* NMS-20181: Update .node-version to 22.22.2

Was 16.15.1 while engines requires >=22, tar@7 requires >=18, and the
Maven build pins v22.22.2 — aligns local nvm/fnm users with CI.

* NMS-20181: Remove dead phantomjs-prebuilt devDependency

Nothing uses it: tests are jest + jsdom, there is no karma, and no
reference exists in src/, pom.xml, or webpack.config.js. Removing it
drops [email protected] and its whole subtree (uuid@3, form-data@2,
har-validator, http-signature, sshpk, hoek, stringstream, ...) — 71
lockfile entries — and retires the unfixable 'request' CVE row.

Also prune the ten overrides that subtree was the last consumer of
(atob, cryptiles, deep-extend, form-data@>=2<3, fstream, growl, hoek,
sshpk, stringstream, uuid@<4). Verified the lockfile diff is pure
removal — no remaining package changed resolution. This also moots the
review finding that the uuid@<4 -> ^11.1.1 override left request
un-loadable (require('uuid/v4') hit ERR_PACKAGE_PATH_NOT_EXPORTED).

Build passes; 174 jest tests pass.

* NMS-20181: Override @tootallnate/once to 2.0.1

GHSA-vpq2-c234-7xj6 (CVSS 3.3, via jsdom's http-proxy-agent chain);
advisory postdates the original scan. Patch-level fix. 174 tests pass.


  Commit: 351cd16e080138b8222718935f6cffd673f873dc
      https://github.com/OpenNMS/opennms/commit/351cd16e080138b8222718935f6cffd673f873dc
  Author: CI/CD System <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M core/web-assets/.node-version
    M core/web-assets/package.json
    M core/web-assets/pnpm-lock.yaml
    M core/web-assets/src/main/assets/js/vendor/ipaddress-js.js
    M core/web-assets/src/test/javascript/ipaddress.test.js
    M docs/modules/operation/pages/deep-dive/notifications/strategies/scripting.adoc
    M docs/modules/operation/pages/deep-dive/notifications/strategies/webhook.adoc

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/release-36.x' into develop


  Commit: 3ad55bddc49fc2b0514d888637202c81e0c645db
      https://github.com/OpenNMS/opennms/commit/3ad55bddc49fc2b0514d888637202c81e0c645db
  Author: Christian Pape <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M features/flows/itests/src/test/java/org/opennms/netmgt/flows/elastic/FlowQueryIT.java
    M features/minion/repository/src/assembly/repo.xml
    M features/sentinel/repository/src/assembly/repo.xml
    M pom.xml

  Log Message:
  -----------
  NMS-20132: Replaced jackson 2.21.3 with 2.21.5


  Commit: 32769d45b0a7810150a056a29aee6db71f355243
      https://github.com/OpenNMS/opennms/commit/32769d45b0a7810150a056a29aee6db71f355243
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M features/distributed/kv-store/blob/blob-itests/pom.xml
    M features/newts-repository-converter/pom.xml
    M features/newts/pom.xml

  Log Message:
  -----------
  NMS-20199: Pin Netty 4.1 for the modules that embed Cassandra (#8766)


  Commit: 8c8564911a9bdb88ad38102db893b4cc7bcab90b
      https://github.com/OpenNMS/opennms/commit/8c8564911a9bdb88ad38102db893b4cc7bcab90b
  Author: Morteza E <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M features/minion/repository/src/assembly/repo.xml
    M pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: 1286570c83597a3d4d1b204f6fac5da3d717053f
      https://github.com/OpenNMS/opennms/commit/1286570c83597a3d4d1b204f6fac5da3d717053f
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M ui/src/components/Menu/Menubar.vue
    M ui/src/components/Menu/Search.vue

  Log Message:
  -----------
  NMS-20201: Make top menubar more responsive at narrow window widths (#8771)


  Commit: 198260b76e6a0a7106f56512d59b46b8e2904282
      https://github.com/OpenNMS/opennms/commit/198260b76e6a0a7106f56512d59b46b8e2904282
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json

  Log Message:
  -----------
  Update the URL to docs and remove API Documentation from Help menu (#8768)


  Commit: 4cbe9d36561e929a0c3db8bbdaa711473e8425e4
      https://github.com/OpenNMS/opennms/commit/4cbe9d36561e929a0c3db8bbdaa711473e8425e4
  Author: Morteza E <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2023' into foundation-2024


  Commit: 2db83c56664e05bcc0916997f7dc726094751ec4
      https://github.com/OpenNMS/opennms/commit/2db83c56664e05bcc0916997f7dc726094751ec4
  Author: Christian Pape <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M .circleci/trivy-config/trivyignore

  Log Message:
  -----------
  NMS-20183: Ignoring CVE-2024-47554


  Commit: 776bf8001ecea68e28595c05d1f1381f57e62aae
      https://github.com/OpenNMS/opennms/commit/776bf8001ecea68e28595c05d1f1381f57e62aae
  Author: Christian Pape <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M .circleci/trivy-config/trivyignore

  Log Message:
  -----------
  NMS-20186: Ignoring CVE-2023-5072


  Commit: a23f24cb9e15d8511073de90e413747bc76d0350
      https://github.com/OpenNMS/opennms/commit/a23f24cb9e15d8511073de90e413747bc76d0350
  Author: CI/CD System <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    M ui/src/components/Menu/Menubar.vue
    M ui/src/components/Menu/Search.vue

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/release-36.x' into develop


  Commit: fdc2954587ab398734cb7cb7ea8e8a6fc496c14a
      https://github.com/OpenNMS/opennms/commit/fdc2954587ab398734cb7cb7ea8e8a6fc496c14a
  Author: CI/CD System <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M features/minion/repository/src/assembly/repo.xml
    M pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into release-36.x


  Commit: 9a116b0801e09440005beb6807cb7d5bcb633713
      https://github.com/OpenNMS/opennms/commit/9a116b0801e09440005beb6807cb7d5bcb633713
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M .circleci/main/jobs/build/build-ui.yml
    M .gitignore
    M ui/eslint.config.js
    M ui/package.json
    M ui/packages/onms-ui-example-plugin/README.md
    M ui/packages/onms-ui-example-plugin/package.json
    A ui/packages/onms-ui-example-plugin/scripts/verify-dist.mjs
    M ui/packages/onms-ui-example-plugin/src/main.ts
    M ui/packages/onms-ui-example-plugin/vite.config.ts
    M ui/packages/onms-ui/README.md
    M ui/pnpm-lock.yaml
    M ui/tests/onms-ui/OnmsTooltip.test.ts
    M ui/tests/onms-ui/exports.test.ts
    M ui/vite.config.menu.ts
    M ui/vite.config.ts

  Log Message:
  -----------
  NMS-20150: Fix plugin UI issues (#8772)

* NMS-20150: Fix plugin UI dev-harness and vite config review items

- Load .env.local (first-wins) in dotenv.config() so plugin dev-harness
  env vars work from .env.local as documented (both vite configs)
- Install the plugin dev middleware after Vite's internal middlewares so
  it sits behind the DNS-rebinding host check; match on req.originalUrl
  because Vite 6's SPA html fallback (which runs before post-hooks)
  rewrites req.url for Accept: */* requests
- Gate the exampleUiExtension middleware on VITE_EXAMPLE_PLUGIN to match
  its route registration in main.ts
- Use fileURLToPath instead of URL#pathname for aliases (pathname
  percent-encodes, breaking checkouts with spaces in the path)
- Give vite.config.menu.ts the same absolute ProductLogo alias fix that
  vite.config.ts already carries
- Add missing AGPL headers to files introduced by NMS-20054

* NMS-20150: Run example plugin as a contract test in CI; extend PrimeVue ban to plugin code

- Add check:example-plugin (typecheck + build of
  @opennms/onms-ui-example-plugin) and run it in the build-ui CI job, so
  the reference plugin fails the build on any @opennms/onms-ui API drift
- Ban ALL primevue imports in plugin sources via no-restricted-imports
  (plugins compile against the host's window globals, which do not
  include PrimeVue)
- State the ban's actual scope in the onms-ui README

* NMS-20150: Example plugin README fixes for external readers

- Note that @opennms/onms-ui is private/unpublished and the dependency
  pinning advice applies only once it is published; document the interim
  (build against the window.OnmsUI runtime contract)
- Correct the dev-harness URL to /#/example-plugin (hash history)
- Remove internal task numbering; point at the actual files wiring the
  dev harness
- Update the stale claim that no repo-root gate reaches this package
  (CI now runs pnpm check:example-plugin)

* NMS-20150: Replace vite-plugin-externals with rollup-plugin-external-globals

vite-plugin-externals last shipped in 2023 and pulled deprecated
transitive deps (sourcemap-codec 1.4, magic-string 0.25, es-module-lexer
0.4, fs-extra 10) into the lockfile — a poor recommendation for the
plugin-developer toolchain the example package documents.

rollup-plugin-external-globals (0.13.0, rollup 4 peer) does the same
import-to-window-global rewrite for ES-module output. Plain rollup
external + output.globals is NOT equivalent here: output.globals only
applies to umd/iife, and plugins must build ES modules for the host's
<script type=module> loader.

Verified in the dev harness: module loads, mounts, and renders against
window.OnmsUI with zero PrimeVue/Vue code bundled (6.3 kB output).

* fix comments

* NMS-20150: Load config env via loadEnv so gates match import.meta.env

The VITE_EXAMPLE_PLUGIN gate (and VITE_APP_LOGO_NAME /
VITE_SERVICENOW_PLUGIN_DIST) read process.env populated by dotenv from
only .env.local/.env, while app code reads import.meta.env which also
includes the mode files (.env.development[.local]). Putting the flag in
a mode file registered the route without the middleware, so the module
request fell through to the SPA fallback and returned index.html.

Switch both vite configs to defineConfig(({ mode }) => ...) with
loadEnv(mode, __dirname, ''), which reads exactly the file set Vite
gives app code; drop the dotenv dependency.

* NMS-20150: Assert the built plugin artifact honors the externals contract

vite build exits 0 even when rollup-plugin-external-globals silently
bails (its transform returns early on a this.parse() failure, or when no
globals key appears as a substring of the code). Since the ids stay
external either way, a bail leaves a bare import in the ES output that
only breaks at runtime in the host browser — the CI gate previously only
proved the build ran.

Add scripts/verify-dist.mjs to the example package: fails if any
externalized id survives as a real import, or if the window.Vue /
window.OnmsUI rewrites are missing. Chain it into check:example-plugin,
document it in the README, and give **/scripts/**/*.mjs Node globals in
the eslint config.

* NMS-20150: Document why the redundant rollupOptions.external is kept

externalGlobals >= 0.13 installs its own resolver that already marks
every id in its map as external, so the explicit list is belt-and-braces:
it states the contract in standard rollup vocabulary and keeps older
plugin versions externalizing correctly.

* NMS-20150: Use primevue/** so the plugin PrimeVue ban crosses path levels

no-restricted-imports patterns are gitignore-style globs where * stops
at /, so primevue/* let deep subpaths like primevue/a/b escape the ban.

* NMS-20150: Declare rollup devDependency in the example plugin package

rollup-plugin-external-globals declares a rollup peerDependency
(^2.25.0 || ^3.3.0 || ^4.1.4) that was only satisfied via the hoisted
transitive dep from vite. This package is a template for external
plugin developers, so declare it explicitly rather than relying on
hoisting/auto-installed peers, which yarn and strict setups don't do.

* NMS-20150: Gitignore ui/*.local Vite env overrides

Both vite configs document .env.local / .env.development.local as the
place for dev-harness flags and machine-local paths, but nothing ignored
them. .env and .env.development stay tracked.

* NMS-20150: Run unit tests before the example-plugin contract check in CI

Surfaces test failures without waiting on the extra plugin
typecheck+build; build:all already ran, so ordering costs nothing.


  Commit: 3af8ab34e1b046f87aaae3fa361a3badcc9f13cb
      https://github.com/OpenNMS/opennms/commit/3af8ab34e1b046f87aaae3fa361a3badcc9f13cb
  Author: CI/CD System <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M features/minion/repository/src/assembly/repo.xml
    M pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/merge-foundation/foundation-2025-to-release-36.x' into release-36.x


  Commit: d6e1a01c655d8c99f81d38457789b255e9719c8d
      https://github.com/OpenNMS/opennms/commit/d6e1a01c655d8c99f81d38457789b255e9719c8d
  Author: CI/CD System <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M .circleci/trivy-config/trivyignore

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: c580f0d16af06c38b7e843d1656418b127387eb9
      https://github.com/OpenNMS/opennms/commit/c580f0d16af06c38b7e843d1656418b127387eb9
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M opennms-assemblies/webapp-full/pom.xml
    A opennms-openapi-docs/README.adoc
    A opennms-openapi-docs/pom.xml
    A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocGenerator.java
    A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocWriter.java
    A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiDocsContentTest.java
    A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiResourceCoverageTest.java
    M opennms-webapp-rest/pom.xml
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractStaticOpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractSwaggerUiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/OpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/SwaggerUiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/OpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/SwaggerUiResource.java
    A opennms-webapp-rest/src/main/resources/openapi/swagger-ui.properties
    M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v1.xml
    M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v2.xml
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/StaticOpenApiResourceTest.java
    A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/SwaggerUiResourceTest.java
    R opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/OpenApiIT.java
    A opennms-webapp-rest/src/test/resources/openapi/openapi-stub.json
    M opennms-webapp/src/main/webapp/includes/help-documentation.jsp
    M pom.xml
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    A smoke-test/src/test/java/org/opennms/smoketest/rest/OpenApiRestIT.java
    M ui/src/containers/OpenAPI.vue
    M ui/tests/containers/OpenAPI.test.ts
    A ui/tests/containers/OpenAPIFetch.test.ts

  Log Message:
  -----------
  NMS-20163: Generate the OpenAPI documents at build time (#8743)

* NMS-20163: Generate the OpenAPI documents at build time

Both CXF servlets registered OpenApiFeature, which ran swagger-jaxrs2's reader over
every deployed resource class on the first request to openapi.json. The new
opennms-openapi-docs module generates the v1 and v2 documents during the build and
commits them; OpenApiResource serves them from the classpath.

- The committed documents are canonically identical to what the runtime produced,
  checked against a pristine release-36.x instance: v1 is 199 paths and 152 schemas,
  v2 is 223 and 104. Raw text differs only in key ordering inside objects, because
  the generator sorts the resource classes for determinism where CXF used its scan
  order.
- OpenApiDocsUpToDateTest fails the build when a ReST change leaves the committed
  documents stale; refresh with -Dopenapi.regenerate=true. A module contributing
  classes to org.opennms.web.rest.v1 or .v2 has to be a test-scope dependency of
  opennms-openapi-docs, and OpenApiDocsContentTest guards the five that exist today.
- First request to openapi.json drops from ~1.3s to under 0.05s.
- Eight jars leave WEB-INF/lib: swagger-jaxrs2, swagger-integration, classgraph,
  jvm-driver, narcissus and the three cxf-rt-rs-service-description artifacts. One
  arrives, opennms-openapi-docs at 51 KB.
- Swagger UI keeps its api-docs paths, now served by a resource of our own rather
  than by the feature, and moves from 3.23.11 to 5.25.3. 3.23.11 merges the page's
  query string over its constructor options, so ?url= chose which document the
  browser fetched, which is GHSA-qrmm-w75w-3wpx and CVE-2018-25031, both fixed in
  4.1.3. That removes the ability to point one context's UI at another document;
  each context serves its own, so the help page link is unaffected. The webjar drops
  from 3.0 MB to 1.1 MB, and the favicons that used to 404 no longer do.

* NMS-20163: Move OpenApiDocGenerator to src/main/java

The generator is build tooling, not a test, so it does not belong in test
sources. Its dependencies move from test to provided scope: the generator
compiles against them and needs them to load the ReST resource classes,
while provided scope keeps them out of anything that consumes this
artifact, so the shipped jar still carries only the generated JSON.

* NMS-20163: Trim the openapi-docs README

Drop the 'Adding a ReST module' section; the pom comment and
OpenApiDocsContentTest already carry those facts. Note the build
prerequisite for regenerating.

* NMS-20163: Generate the OpenAPI documents at build time

Bind OpenApiDocWriter to process-classes and drop the committed documents,
so there is nothing to regenerate by hand, conflict on a forward merge, or
hold up a release.

* NMS-20163: Fail the build when a ReST module is missing from this pom

Walk the source tree for type-level @Path classes under org.opennms.web.rest.v1
and .v2 and check each one resolves on this module's classpath. A contributing
module that is not a dependency here still generates a valid document, just one
without its endpoints.

* NMS-20163: Check ReST coverage per module rather than per class

@Path is often inherited from an interface in org.opennms.web.rest.v2.api,
which reading the class declaration in source cannot see; six resources were
being skipped. Checking that each module contributing ReST sources resolves
on the classpath needs no annotation parsing and is what catches a missing
dependency.

Locate the repository root by walking up for a marker, so moving this module
does not silently break the scan. -Dopennms.repoRoot overrides it.

* NMS-20163: Refuse to generate the documents outside a forked JVM

Run by exec:java rather than exec:exec, the generator is loaded by a plugin
realm, part of the project classpath is shadowed, and one schema silently
loses its xml metadata while every test still passes. Check the class loader
and fail instead.

Also resolve the java executable per platform, drop the environment-specific
directory from the source scan in favour of skipping dot directories, allow a
module to be exempted from the coverage check, and raise the path-count floors
from 150 against actual counts of 199 and 223.

* NMS-20163: Fix the OpenAPI docs page layout, fonts and resize cost

The app shell overflows the viewport by 16px whatever this page does, and
that is enough for RapiDoc's scrollIntoView to drag the whole layout as the
content passes a section. Clip the page while the column fits and pin the
offset, since a clipped viewport still scrolls programmatically.

RapiDoc writes an inline width:100vw/height:100vh onto the panel holding it,
which put the V1 doc 214px past the clipped column and its scrollbar out of
reach; override the panel size.

render-style focused rather than read, which lays out only the selected
operation: a horizontal resize drops from ~2900ms to ~35ms with the nav
kept. load-fonts false stops RapiDoc fetching Open Sans from Google at
runtime, matching the stack the app already declares.

Move the in-flight fetch test to its own file: it needs vi.resetModules(),
after which happy-dom stops applying style writes for the rest of the file.

* NMS-20163: Call the OpenAPI page the same thing everywhere

The menu said 'REST Open API Documentation' and the breadcrumb 'Open API
Docs', so clicking through landed on a page that named itself something
else. Both are now 'OpenAPI Documentation', which is also the spelling the
OpenAPI Initiative uses. The parent menu is already 'API Documentation', so
the REST prefix was not what distinguished this item from its sibling.

* NMS-20163: Open the OpenAPI page on the first operation

Focused mode opens on the info section, which left most of the pane empty next
to the endpoint list. Turn it off so the first operation is what renders.

The generated documents also described themselves with a copy of their own
title. Give each one a description that says something.

* NMS-20163: Redirect api-docs to api-docs/

index.html is served at both spellings, but it names its assets and its
spec URL relative to itself, so from the slash-less one they all resolve
a directory too high and the page comes up broken. Every link we ship
carries the slash, so this is only reachable by typing the URL.

* NMS-20163: Keep the generator off the Windows command line limit

The forked generator was handed the whole project classpath inline after
-classpath, which on this project runs past the 32K that CreateProcess
accepts, so the build failed on Windows before the JVM started.
longClasspath moves the classpath into the manifest of a generated jar;
the documents come out byte-identical, and the fork check still holds
because the pathing jar is still loaded by the system class loader.

* NMS-20163: Cover the OpenAPI endpoints with a smoke test

The documents and the Swagger UI are read off the classpath, and the
resources serving them answer 404 rather than failing when they are
absent. Nothing short of a request against a running instance notices a
packaging slip, such as the documents jar dropping out of webapp-full.
This replaces the OpenApiIT that generation at build time made obsolete,
which ran in-process against a classpath that no longer carries the
documents.


  Commit: 0a2315f6816109d4b1e03557f749d68d6df25984
      https://github.com/OpenNMS/opennms/commit/0a2315f6816109d4b1e03557f749d68d6df25984
  Author: Morteza E <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M debian/changelog
    M docs/modules/releasenotes/pages/changelog.adoc
    M opennms-assemblies/minion/src/main/filtered/debian/changelog
    M opennms-assemblies/sentinel/src/main/filtered/debian/changelog

  Log Message:
  -----------
  Release notes for 36.0.3


  Commit: 9d7b43a70cbf8102182af3a630daa7976d219785
      https://github.com/OpenNMS/opennms/commit/9d7b43a70cbf8102182af3a630daa7976d219785
  Author: CI/CD System <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M .circleci/trivy-config/trivyignore

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into release-36.x


  Commit: e34b9457783a1f9198f005cc1f253adf76fcd4ac
      https://github.com/OpenNMS/opennms/commit/e34b9457783a1f9198f005cc1f253adf76fcd4ac
  Author: Morteza E <[email protected]>
  Date:   2026-08-12 (Wed, 12 Aug 2026)

  Changed paths:
    M .circleci/main/jobs/build/build-ui.yml
    M .circleci/trivy-config/trivyignore
    M .gitignore
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M debian/changelog
    M docs/modules/releasenotes/pages/changelog.adoc
    M features/minion/repository/src/assembly/repo.xml
    M opennms-assemblies/minion/src/main/filtered/debian/changelog
    M opennms-assemblies/sentinel/src/main/filtered/debian/changelog
    M opennms-assemblies/webapp-full/pom.xml
    A opennms-openapi-docs/README.adoc
    A opennms-openapi-docs/pom.xml
    A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocGenerator.java
    A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocWriter.java
    A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiDocsContentTest.java
    A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiResourceCoverageTest.java
    M opennms-webapp-rest/pom.xml
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractStaticOpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractSwaggerUiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/OpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/SwaggerUiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/OpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/SwaggerUiResource.java
    A opennms-webapp-rest/src/main/resources/openapi/swagger-ui.properties
    M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v1.xml
    M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v2.xml
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/StaticOpenApiResourceTest.java
    A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/SwaggerUiResourceTest.java
    R opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/OpenApiIT.java
    A opennms-webapp-rest/src/test/resources/openapi/openapi-stub.json
    M opennms-webapp/src/main/webapp/includes/help-documentation.jsp
    M pom.xml
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    A smoke-test/src/test/java/org/opennms/smoketest/rest/OpenApiRestIT.java
    M ui/eslint.config.js
    M ui/package.json
    M ui/packages/onms-ui-example-plugin/README.md
    M ui/packages/onms-ui-example-plugin/package.json
    A ui/packages/onms-ui-example-plugin/scripts/verify-dist.mjs
    M ui/packages/onms-ui-example-plugin/src/main.ts
    M ui/packages/onms-ui-example-plugin/vite.config.ts
    M ui/packages/onms-ui/README.md
    M ui/pnpm-lock.yaml
    M ui/src/containers/OpenAPI.vue
    M ui/tests/containers/OpenAPI.test.ts
    A ui/tests/containers/OpenAPIFetch.test.ts
    M ui/tests/onms-ui/OnmsTooltip.test.ts
    M ui/tests/onms-ui/exports.test.ts
    M ui/vite.config.menu.ts
    M ui/vite.config.ts

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/release-36.x' into develop


  Commit: 5ebe7e2c828c2923d683b2d0cffc6cce35f1fe9a
      https://github.com/OpenNMS/opennms/commit/5ebe7e2c828c2923d683b2d0cffc6cce35f1fe9a
  Author: Morteza E <[email protected]>
  Date:   2026-08-12 (Wed, 12 Aug 2026)

  Changed paths:
    M opennms-openapi-docs/pom.xml

  Log Message:
  -----------
  fix the version


  Commit: 9b741c261bb0a6a526fa3e9099745fc8dd4d8008
      https://github.com/OpenNMS/opennms/commit/9b741c261bb0a6a526fa3e9099745fc8dd4d8008
  Author: Dino <[email protected]>
  Date:   2026-08-13 (Thu, 13 Aug 2026)

  Changed paths:
    M .circleci/README.md
    M .circleci/config.yml
    M .circleci/epoch
    M .circleci/main/jobs/build/build-ui.yml
    M .circleci/main/jobs/publish.yml
    M .circleci/main/jobs/tests/integration/integration-test.yml
    M .circleci/main/parameters.yml
    M .circleci/main/workflows/workflows_v2.json
    M .circleci/pyscripts/library/cci_components/workflow.py
    M .circleci/pyscripts/process_generate.py
    M .circleci/trivy-config/trivyignore
    M .gitignore
    M container/features/pom.xml
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M container/karaf/pom.xml
    M container/karaf/src/main/filtered-resources/etc/custom.properties
    M container/karaf/src/main/internal/features-processing.xml
    M container/shared/pom.xml
    M container/shared/src/main/internal/features-processing.xml
    M core/daemon/pom.xml
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Invoker.java
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Manager.java
    M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Starter.java
    A core/daemon/src/main/java/org/opennms/netmgt/vmmgr/StartupLifecycleHook.java
    M core/lib/src/main/java/org/opennms/core/utils/ConfigFileConstants.java
    M core/web-assets/.node-version
    M core/web-assets/package.json
    M core/web-assets/pnpm-lock.yaml
    M core/web-assets/src/main/assets/js/vendor/ipaddress-js.js
    M core/web-assets/src/main/assets/style/opennms-theme.scss
    M core/web-assets/src/test/javascript/ipaddress.test.js
    M debian/changelog
    A dependencies/angus-mail-shaded/pom.xml
    R dependencies/asterisk/pom.xml
    M dependencies/cxf/pom.xml
    R dependencies/javamail/pom.xml
    R dependencies/javamail/src/license/THIRD-PARTY.properties
    M dependencies/jaxb/pom.xml
    M dependencies/pom.xml
    M docs/modules/operation/nav.adoc
    M docs/modules/operation/pages/deep-dive/admin/configuration/token-authentication.adoc
    A docs/modules/operation/pages/deep-dive/admin/high-availability.adoc
    M docs/modules/operation/pages/deep-dive/meta-data.adoc
    M docs/modules/operation/pages/deep-dive/notifications/bonus-strategies.adoc
    M docs/modules/operation/pages/deep-dive/notifications/commands.adoc
    M docs/modules/operation/pages/deep-dive/notifications/configuration.adoc
    M docs/modules/operation/pages/deep-dive/notifications/introduction.adoc
    R docs/modules/operation/pages/deep-dive/notifications/strategies/mattermost.adoc
    A docs/modules/operation/pages/deep-dive/notifications/strategies/scripting.adoc
    R docs/modules/operation/pages/deep-dive/notifications/strategies/slack.adoc
    A docs/modules/operation/pages/deep-dive/notifications/strategies/webhook.adoc
    M docs/modules/operation/pages/quick-start/beyond-qs.adoc
    M docs/modules/reference/pages/configuration/system-properties.adoc
    M docs/modules/reference/pages/daemons/daemon-config-files/notifd.adoc
    M docs/modules/reference/pages/daemons/introduction.adoc
    M docs/modules/reference/pages/karaf-shell/karaf-shell.adoc
    M docs/modules/reference/pages/service-assurance/monitors/MailTransportMonitor.adoc
    M docs/modules/releasenotes/pages/changelog.adoc
    M docs/modules/releasenotes/pages/whatsnew.adoc
    M features/events/syslog/src/test/java/org/opennms/netmgt/syslogd/SyslogMessageTest.java
    A features/ha-management/ha-api/pom.xml
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaConfiguration.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaInstanceState.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaMode.java
    A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaRole.java
    A features/ha-management/ha-daemon/pom.xml
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/DbConnectionFactory.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaConfigSyncer.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaHeartbeatWriter.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupCoordinator.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupLifecycleHook.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStatusSchema.java
    A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaSyncFiles.java
    A features/ha-management/ha-daemon/src/main/resources/META-INF/services/org.opennms.netmgt.vmmgr.StartupLifecycleHook
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/DbConnectionFactoryTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaConfigSyncerTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupCoordinatorTest.java
    A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupLifecycleHookTest.java
    A features/ha-management/ha-rest/pom.xml
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/HaRestService.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaInstanceStatusDto.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaStatusCollectionDto.java
    A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/impl/HaRestServiceImpl.java
    A features/ha-management/ha-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
    A features/ha-management/ha-shell/pom.xml
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaConfigCommand.java
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaFailoverCommand.java
    A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaStatusCommand.java
    A features/ha-management/pom.xml
    M features/minion/repository/pom.xml
    M features/minion/repository/src/assembly/repo.xml
    M features/poller/monitors/core/pom.xml
    M features/poller/monitors/core/src/main/java/org/opennms/netmgt/poller/monitors/MailTransportMonitor.java
    M features/pom.xml
    M features/springframework-security/src/main/java/org/opennms/web/springframework/security/LoginModuleUtils.java
    A features/springframework-security/src/test/java/org/opennms/web/springframework/security/LoginModuleUtilsTest.java
    M features/ticketing/jira-client/pom.xml
    M features/wsman/pom.xml
    M integration-tests/config/pom.xml
    M integration-tests/config/src/test/java/org/opennms/netmgt/config/WillItUnmarshalIT.java
    M opennms-ackd/pom.xml
    M opennms-ackd/src/main/java/org/opennms/netmgt/ackd/readers/MailAckProcessor.java
    M opennms-ackd/src/test/java/org/opennms/netmgt/ackd/readers/JavaMailAckReaderIT.java
    M opennms-assemblies/minion/src/main/filtered/debian/changelog
    M opennms-assemblies/sentinel/src/main/filtered/debian/changelog
    M opennms-assemblies/webapp-full/pom.xml
    R opennms-asterisk/pom.xml
    R opennms-asterisk/src/license/THIRD-PARTY.properties
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/AsteriskGateway.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGateway.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGatewayMBean.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/BaseOnmsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/LouieLouieLyricsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/ReadNoticeDetailsAgiScript.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/monitor/AsteriskSIPPeerMonitor.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskConfig.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginator.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginatorException.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskUtils.java
    R opennms-asterisk/src/main/java/org/opennms/netmgt/notifd/asterisk/AsteriskOriginateNotificationStrategy.java
    R opennms-asterisk/src/main/resources/META-INF/opennms/applicationContext-asteriskGateway.xml
    R opennms-asterisk/src/main/resources/META-INF/services/org.opennms.netmgt.poller.ServiceMonitor
    R opennms-asterisk/src/main/resources/beanRefContext.xml
    M opennms-base-assembly/pom.xml
    A opennms-base-assembly/src/main/filtered-meridian/etc/ha-configuration.xml
    M opennms-base-assembly/src/main/filtered/bin/newts-repository-converter
    R opennms-base-assembly/src/main/filtered/etc/ami-config.xml
    R opennms-base-assembly/src/main/filtered/etc/asterisk-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/examples/javamail-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/examples/notificationCommands.xml
    M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.properties
    M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.xml
    M opennms-base-assembly/src/main/filtered/etc/log4j2.xml
    M opennms-base-assembly/src/main/filtered/etc/notificationCommands.xml
    M opennms-base-assembly/src/main/filtered/etc/opennms.properties
    M opennms-base-assembly/src/main/filtered/etc/opennms.service
    M opennms-config-model/pom.xml
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiAgentConfig.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiConfig.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Definition.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Range.java
    R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/package-info.java
    R opennms-config-model/src/main/resources/xsds/ami-config.xsd
    R opennms-config-model/src/test/java/org/opennms/netmgt/config/ami/AmiConfigTest.java
    M opennms-config-tester/src/main/resources/META-INF/opennms/applicationContext-configTester.xml
    M opennms-config-tester/src/test/java/org/opennms/netmgt/config/tester/ConfigTesterTest.java
    R opennms-config/src/main/java/org/opennms/netmgt/config/AmiPeerFactory.java
    A opennms-config/src/main/java/org/opennms/netmgt/config/tokenauth/TokenScope.java
    M opennms-config/src/main/resources/META-INF/opennms/applicationContext-token-auth.xml
    M opennms-config/src/main/resources/META-INF/opennms/component-dao.xml
    R opennms-config/src/test/java/org/opennms/netmgt/config/AmiPeerFactoryTest.java
    A opennms-config/src/test/java/org/opennms/netmgt/config/tokenauth/TokenScopeTest.java
    R opennms-config/src/test/resources/etc/ami-config.xml
    M opennms-container/common.mk
    M opennms-container/core/Dockerfile
    M opennms-container/minion/Dockerfile
    M opennms-container/sentinel/Dockerfile
    M opennms-enterprise-reporting/opennms-reportd/pom.xml
    M opennms-enterprise-reporting/opennms-reportd/src/main/java/org/opennms/netmgt/reporting/service/JavaMailDeliveryService.java
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M opennms-javamail/opennms-javamail-api/pom.xml
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer2.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailerConfig.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaReadMailer.java
    M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaSendMailer.java
    A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerConfigTokenTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerTest.java
    A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerWireTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaReadMailerTest.java
    M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaSendMailerTest.java
    A opennms-openapi-docs/README.adoc
    A opennms-openapi-docs/pom.xml
    A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocGenerator.java
    A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocWriter.java
    A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiDocsContentTest.java
    A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiResourceCoverageTest.java
    M opennms-services/pom.xml
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/AbstractSlackCompatibleNotificationStrategy.java
    M opennms-services/src/main/java/org/opennms/netmgt/notifd/BSFNotificationStrategy.java
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/MattermostNotificationStrategy.java
    R opennms-services/src/main/java/org/opennms/netmgt/notifd/SlackNotificationStrategy.java
    A opennms-services/src/main/java/org/opennms/netmgt/notifd/WebhookNotificationStrategy.java
    M opennms-services/src/test/java/org/opennms/netmgt/notifd/BSFNotificationStrategyIT.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyIT.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyTestServlet.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackCompatibleNotificationStrategyTest.java
    R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackNotificationStrategyIT.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyIT.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTest.java
    A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTestServlet.java
    R opennms-services/src/test/resources/MattermostNotificationStrategyTest/WEB-INF/web.xml
    A opennms-services/src/test/resources/WebhookNotificationStrategyTest/WEB-INF/web.xml
    M opennms-services/src/test/resources/opennmsPageSequence.xml
    M opennms-util/src/main/java/org/opennms/core/utils/jexl/OnmsJexlUberspect.java
    A opennms-util/src/test/java/org/opennms/core/utils/jexl/OnmsJexlSandboxBypassTest.java
    M opennms-web-api/pom.xml
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/NodeListService.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListCommand.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListModel.java
    R opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
    M opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultSchedulerService.java
    M opennms-web-dependencies/pom.xml
    M opennms-webapp-rest/pom.xml
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractStaticOpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractSwaggerUiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/OpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/SwaggerUiResource.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AlarmRestService.java
    M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeRestService.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/OpenApiResource.java
    A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/SwaggerUiResource.java
    A opennms-webapp-rest/src/main/resources/openapi/swagger-ui.properties
    M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v1.xml
    M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v2.xml
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-legacy.json
    M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/menu/MenuProviderTest.java
    A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/StaticOpenApiResourceTest.java
    A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/SwaggerUiResourceTest.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/AlarmRestServiceIT.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/NodeRestServiceIT.java
    R opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/OpenApiIT.java
    M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/SnmpInterfaceRestServiceIT.java
    M opennms-webapp-rest/src/test/resources/dispatcher-servlet.xml
    M opennms-webapp-rest/src/test/resources/menu/menu-template.json
    A opennms-webapp-rest/src/test/resources/openapi/openapi-stub.json
    R opennms-webapp/src/main/java/org/opennms/web/controller/node/NodeListController.java
    M opennms-webapp/src/main/java/org/opennms/web/element/ElementIdNotFoundException.java
    M opennms-webapp/src/main/java/org/opennms/web/element/ElementUtil.java
    M opennms-webapp/src/main/resources/org/opennms/web/svclayer/applicationContext-svclayer.xml
    M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
    R opennms-webapp/src/main/webapp/WEB-INF/jsp/element/nodeList.jsp
    R opennms-webapp/src/main/webapp/WEB-INF/tags/element/nodelist.tag
    R opennms-webapp/src/main/webapp/WEB-INF/tags/element/pagedList.tag
    M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
    M opennms-webapp/src/main/webapp/includes/help-documentation.jsp
    M pom.xml
    M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java
    M smoke-test/src/main/java/org/opennms/smoketest/selenium/AbstractOpenNMSSeleniumHelper.java
    M smoke-test/src/test/java/org/opennms/smoketest/AdminPasswordGateIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    R smoke-test/src/test/java/org/opennms/smoketest/NodeListPageIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/ProvisioningNewUIIT.java
    A smoke-test/src/test/java/org/opennms/smoketest/rest/OpenApiRestIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/ui/NodeListIT.java
    A ui/CLAUDE.md
    M ui/eslint.config.js
    M ui/package.json
    M ui/packages/onms-ui-example-plugin/README.md
    M ui/packages/onms-ui-example-plugin/package.json
    A ui/packages/onms-ui-example-plugin/scripts/verify-dist.mjs
    M ui/packages/onms-ui-example-plugin/src/main.ts
    M ui/packages/onms-ui-example-plugin/vite.config.ts
    M ui/packages/onms-ui/README.md
    M ui/packages/onms-ui/src/components/OnmsAutoComplete.vue
    M ui/packages/onms-ui/src/components/OnmsTabs.vue
    M ui/pnpm-lock.yaml
    M ui/src/components/Menu/Menubar.vue
    M ui/src/components/Menu/Search.vue
    M ui/src/components/Menu/SideMenu.vue
    M ui/src/components/Menu/UserSelfServiceMenuItem.vue
    M ui/src/components/Menu/utils.ts
    M ui/src/components/Nodes/AssetFilterPanel.vue
    M ui/src/components/Nodes/ColumnSelectionDrawer.vue
    M ui/src/components/Nodes/ExtendedSearchPanel.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    A ui/src/components/Nodes/NodeInterfacesPanel.vue
    M ui/src/components/Nodes/NodesTable.vue
    M ui/src/components/Nodes/hooks/queryStringParser.ts
    A ui/src/components/Nodes/hooks/useInterfaceListing.ts
    M ui/src/components/Nodes/hooks/useNodeQuery.ts
    M ui/src/components/Nodes/utils.ts
    M ui/src/composables/useDownload.ts
    M ui/src/containers/Nodes.vue
    M ui/src/containers/OpenAPI.vue
    M ui/src/main/App.vue
    M ui/src/services/index.ts
    M ui/src/services/ipInterfaceService.ts
    M ui/src/services/localStorageService.ts
    M ui/src/services/snmpDataCollectionService.ts
    A ui/src/services/snmpInterfaceService.ts
    M ui/src/services/themeService.ts
    A ui/src/stores/nodeListStore.ts
    M ui/src/stores/nodeStore.ts
    R ui/src/stores/nodeStructureStore.ts
    M ui/src/styles/opennms-styles.scss
    M ui/src/theme/primevue-setup.ts
    M ui/src/types/index.ts
    A ui/tests/components/Device/dcbModalConfigDiffContent.test.ts
    A ui/tests/components/Menu/SideMenu.test.ts
    A ui/tests/components/Menu/UserSelfServiceMenuItem.test.ts
    M ui/tests/components/Menu/menu-template-test.json
    M ui/tests/components/Menu/utils.test.ts
    M ui/tests/components/Nodes/AssetFilterPanel.test.ts
    M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
    M ui/tests/components/Nodes/EventsTable.test.ts
    M ui/tests/components/Nodes/ExtendedSearchPanel.test.ts
    M ui/tests/components/Nodes/IpInterfacesTable.test.ts
    M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
    A ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
    M ui/tests/components/Nodes/NodesTable.test.ts
    M ui/tests/components/Nodes/OutagesTable.test.ts
    M ui/tests/components/Nodes/SnmpInterfacesTable.test.ts
    M ui/tests/components/Nodes/hooks/queryStringParser.test.ts
    A ui/tests/components/Nodes/hooks/useInterfaceListing.test.ts
    M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
    M ui/tests/components/TrapdConfiguration/GeneralConfiguration.test.ts
    A ui/tests/containers/Nodes.test.ts
    A ui/tests/containers/OpenAPI.test.ts
    A ui/tests/containers/OpenAPIFetch.test.ts
    M ui/tests/fileEditor.test.ts
    M ui/tests/onms-ui/OnmsAutoComplete.test.ts
    M ui/tests/onms-ui/OnmsTooltip.test.ts
    M ui/tests/onms-ui/exports.test.ts
    A ui/tests/services/ipInterfaceService.test.ts
    A ui/tests/services/localStorageService.test.ts
    A ui/tests/services/snmpInterfaceService.test.ts
    A ui/tests/services/themeService.test.ts
    A ui/tests/stores/nodeListStore.test.ts
    A ui/tests/stores/nodeStore.test.ts
    R ui/tests/stores/nodeStructureStore.test.ts
    M ui/tsconfig.json
    M ui/vite.config.menu.ts
    M ui/vite.config.ts

  Log Message:
  -----------
  Merge branch 'develop' into dcy/no-beanshell


Compare: https://github.com/OpenNMS/opennms/compare/497936b2b573...9b741c261bb0

To unsubscribe from these emails, change your notification settings at https://github.com/OpenNMS/opennms/settings/notifications


_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list

To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.