Changelog Release 30.0.0 Release 30.0.0 is the first in the Horizon 30 series, introducing a number of new features, most notably a preview of a new web UI, and the ability to back up infrastructure device configs. The codename for Horizon 30.0.0 is Nutria. Epic Provide the ability to define application thresholds and trigger events based on the thresholds. (Issue NMS-13647) Bug Vertical/Horizontal Layout Choice Not Persisting (Issue NMS-13212) Enlinkd API response extremely slow for some nodes (Issue NMS-13507) Node cache gets out of sync with database (Issue NMS-13508) Minion /etc/sysconfig/minion file refers to Sentinel (Issue NMS-13659) Install script fails when using Azure PostgreSQL Services (Issue NMS-13715) Synchronization violated for InterfaceToNodeCacheDaoImpl (Issue NMS-13782) OIA event configuration extensions do not work reliably (Issue NMS-13787) Revisit smoke test for OIA plugins (Issue NMS-13872) TIMETETRA LLDP supported device does not persist all remote links (Issue NMS-13923) End to End Poller test with Sample device (Issue NMS-13925) [Web] - WebServer Fingerprinting (Issue NMS-13987) Telemetryd does not shut down gracefully (Issue NMS-14003) Fix issues on DeviceConfig Rest Service (Issue NMS-14040) Device Config Retrieval fails if TFTP Server is getting reopened (Issue NMS-14077) Invalid node Foreign ID not checked during provisioning resulting in various RRD graphing problems (Issue NMS-14142) Fix flaky test HeartbeatConsumerIT (Issue NMS-14164) Grafana dashboard box links are no longer valid in Grafana 8.4 (Issue NMS-14184) Fix new UI back button test failure (Issue NMS-14190) Users with ROLE_USER face Access Denied when accessing Resource Graphs from Reports Section (Issue NMS-14193) make sure license-maven-plugin is re-enabled in foundation and release branches (Issue NMS-14217) Performance degradation compared to H29 (Issue NMS-14237) Fixing new UI list log & etc fail due to symbolic link (Issue NMS-14239) Exception when searching assets (Issue NMS-14240) Requisition Web UI refers to "drop down" that doesn’t exist (Issue NMS-14246) Handle duplicate interface on a given location in DeviceConfig. (Issue NMS-14248) UI: cannot configure requisition (Issue NMS-14260) DCB menu items are mislabeled "Configuration Management" (Issue NMS-14261) Rogue opennms-tools/phonebook/pom.xml (Issue NMS-14266) Disable editing of requisition:// URLs in external requisition editor (Issue NMS-14270) Omit empty VMware credentials from URL in external requisition editor (Issue NMS-14271) Fix requisition http/s path field and hostname validation (Issue NMS-14272) Fix hostname validation (Issue NMS-14273) DCB: Handle script file missing scenario better (Issue NMS-14275) Remove "Commercial Support" ticket lookup from web ui support section (Issue NMS-14280) Allow multi-line metadata (Issue NMS-14282) Incorrect validation of requisition name for DNS external requisitions (Issue NMS-14284) Main requisition editor incorrectly mentions Requisition Definition (Issue NMS-14285) Remove sorting of Schedule Frequency column (Issue NMS-14286) SCV entry attribute values become literal asterisks after editing in web (Issue NMS-14292) DCB: SshException "EdDSA provider not supported" (Issue NMS-14306) Kafka-Producer Alarm Resync Failing Post Entire Kafka Cluster Outage (Issue NMS-14321) DCB: Unable to decompress the .gz file (Issue NMS-14328) Shorten "External Requisitions and Thread Pools" item in New UI Preview (Issue NMS-14330) DCB: Wrong cron expression results in no devices in DCB UI (Issue NMS-14333) External Requisition UI: Advanced cron validation message of by 1 (Issue NMS-14340) New Feature Create Config Backup DB table and DAO layer (Issue NMS-13775) Integrate persistence of Device Config with Pollerd (Issue NMS-13777) Write specific event data into time series (Issue NMS-14060) Add the ability to define an enumeration to convert collected strings into numeric values (Issue NMS-14084) Add SCV Rest API (Issue NMS-14173) Add UI Components for SCV (Issue NMS-14205) DCB: Handle Archival of backups (Issue NMS-14214) Story Add docs to Health-Check Rest API (Issue NMS-13386) Geo Map: make use of modules for vuex store so that the code can be easily integrated into larger project (Issue NMS-13506) Geo map: Display different colors on map base on alarm severity (Issue NMS-13561) Create REST endpoint to trigger rescan of individual nodes (Issue NMS-13638) Smoke tests should use HealthCheck Rest instead of connecting to SSH (Issue NMS-13645) Upgrade Karaf to v4.3.6 (Issue NMS-13658) Document how to upgrade OpenNMS (Issue NMS-13692) Flow Thresholds: Proof-of-concept implementation (in-memory approach) (Issue NMS-13706) Flow Thresholds: Documentation (Issue NMS-13707) Flow Thresholds: Data collection (Issue NMS-13708) Flow Thresholds: Scheduling for data collection & thresholding (Issue NMS-13709) Flow Thresholds: Graph Templates (Issue NMS-13710) Flow Thresholds: Housekeeping (Issue NMS-13711) Flow Thresholds: Allow to enable/disable thresholding/data collection (Issue NMS-13712) Add OIA plugin support for Minion (Issue NMS-13739) Allow collectors exposed via OIA to be scheduled via collectd (Issue NMS-13743) Add OIA plugin support for Sentinel (Issue NMS-13751) Flow Threshold: Create session by Interface Id (Issue NMS-13771) Web-based file editor for $OPENNMS_HOME/etc/ (Issue NMS-13772) Flow Thresholds: Compute sequence numbers to support distributed flow thresholding (Issue NMS-13790) Implement TFTP Server to fetch config from network devices (Issue NMS-13796) Implement Device Config Monitor (Issue NMS-13797) DCB - Create a default poller config for backup (Issue NMS-13801) DCB - Document how to use the polling packages and the requisition to configure backups (Issue NMS-13802) DCB - Provide a dashboard (Issue NMS-13803) DCB - Add trigger for manual backup (Issue NMS-13804) Flow Thresholds: Add ifName to strings.properties (Issue NMS-13855) Sanitize application names in resources (Issue NMS-13913) Flow Thresholds: Improve logging and debug (Issue NMS-13915) Tackle poller scheduling with Device Config Backup (Issue NMS-13924) Create a module that handles all device config retrieval and receiving backup config (Issue NMS-13935) Create module to retrieve Device Config backup manually (Issue NMS-13936) Create Sink module that can receive Device Config backup updates (Issue NMS-13937) Flow Thresholds: Fix handling of rrdRepository (Issue NMS-13945) Move persistence to MonitorAdaptor, add failure related fields (Issue NMS-13950) Create alarm when device config backup fails (Issue NMS-13951) Add Rest API to trigger manual backup of Device Config (Issue NMS-13952) Retroactively tie in the endpoints (Issue NMS-13968) Add Rest API to Retrieve Device Config Schedule Data (Issue NMS-13970) DCB - Rest API for Downloading Device Configuration (Issue NMS-13990) Investigate and identify steps (JIRA issues) to support constraints based on multiple parameters in the rules engine (Issue NMS-14006) Add End-to-End Integration Test for Device Config Monitor (Issue NMS-14012) Add introduction for Device Config Backup feature (Issue NMS-14013) Add Karaf command to retrieve Device Config (Issue NMS-14031) DCB - Delete all device configs related to deleted interfaces / nodes (Issue NMS-14038) Determine Local IPAddress on Minion/OpenNMS system (Issue NMS-14039) DCB Rest API: Ensure various sorting/filtering criteria work (Issue NMS-14046) DCB Rest API: Parse cron scheduling info (Issue NMS-14047) Unify and streamline metadata and service handling (Issue NMS-14049) Revisit error/exception handling in SshScriptingServiceImpl (Issue NMS-14061) Document missing handlers (Issue NMS-14065) Always retrieve script from file instead of inline script (Issue NMS-14069) DCB: UI fixes as per Demo Feedback (Issue NMS-14081) DCB: Return config data as text in Rest API (Issue NMS-14082) DCB: Create UI for comparing 2 backup configurations (Issue NMS-14089) Vue UI - Upgrade all packaged to latest, introduce auto-imports (Issue NMS-14090) Create OpenNMS images for the ARM processor (Issue NMS-14098) Upgrade feather to v0.10.1, fix CSS changes, breaking TS changes (Issue NMS-14104) DCB UI Changes based on latest Rest API (Issue NMS-14110) DCB Rest API Updates (Issue NMS-14112) Support Host Key verification (Issue NMS-14118) Support new role for viewing and performing manual Device Backups (Issue NMS-14121) DCB: UI Documentation (Issue NMS-14131) DCB: UI changes to align with latest Rest API (Issue NMS-14141) DCB: API endpoint renaming (Issue NMS-14147) DCB: Rest API and UI: Fixes to device backup (Issue NMS-14151) DCB: Download not working correctly (Issue NMS-14152) DCB: Multiple Device Backup from UI/Rest (Issue NMS-14153) DCB: Add support for SCV retrieval through Metadata API (Issue NMS-14155) DCB: Monitor should return poll status based on last retrieval (Issue NMS-14163) DCB: Display Device Count for queries (Issue NMS-14165) DCB: add messages in UI to indicate the lack of the new DCB role (Issue NMS-14170) Add document for event time series collector (Issue NMS-14171) DCB: Provide example scripts to download device configurations (Issue NMS-14174) DCB: New UI display for Config Type (Issue NMS-14175) Expose Secure Credentials Vault via Integration API (Issue NMS-14185) Document new UI features in H30 (Issue NMS-14189) Add new KPIs to datachoices telemetry (Issue NMS-14203) Restrict logging on org.opennms.container.web.bridge.rest (Issue NMS-14206) Add docs for SCV (Issue NMS-14207) Create release notes content for H30 (Issue NMS-14230) Super-admin role required to edit config files (Issue NMS-14242) Add DCB services to 24-hour availability view (Issue NMS-14244) Send events when a backup starts, succeds, or fails (Issue NMS-14245) modifiable OID prefix in BgpSessionMonitor (Issue NMS-14249) Performance of time series integration layer (Issue NMS-14250) DCB - Document impact of DCB on poller thread consumption (Issue NMS-14255) Make org.opennms.netmgt.collectd.strictInterval true by default (Issue NMS-14259) DCB: Whenever Sink pushes config, config type should be Sink instead of default (Issue NMS-14297) DCB UI : Allow Config type to be more than two not just default/running (Issue NMS-14298) DCB: Allow TFTP Port to be Parameterized in Script (Issue NMS-14301) Rename role from ROLE_CONFIG_EDITOR to ROLE_FILESYSTEM_EDITOR (Issue NMS-14309) External Requisition UI: Thread pools adjust upper bound validation (Issue NMS-14345) Task LoopMonitor & detector (Issue NMS-11042) Document PassiveServiceMonitor (Issue NMS-11052) WmiMonitor (Issue NMS-11065) Investigate Vue3 features (Issue NMS-13393) Investigate Leaflet for OpenNMS geo-map (Issue NMS-13394) Investigate integrate Leaflet with Vue3 for OpenNMS geo map (Issue NMS-13424) Initiate Vue3 code for geo-map (Issue NMS-13431) Geo-map POC: RESTful call to OpenNMS backend with basic auth (Issue NMS-13450) GeoMap: Temporary use existing OpenNMS RESTful APIs to get some real data (Issue NMS-13451) Geo-map: use Vuex to manage nodes info retrieved from OpenNMS (Issue NMS-13454) Geo-map: work with Ben designing RESTful API for Geo-map page (Issue NMS-13455) Geo-map POC: Investigate using AG-Grid to display nodes list on the geo-map page (Issue NMS-13457) GeoMap: Investigate the Vue3 reactivity in geomap page to sync the map, nodes and alarms subpages. (Issue NMS-13471) Document the Grafana Image Renderer plugin’s dependencies (Issue NMS-13484) Geo-Map: Nodes, Alrarm Grid and Leaflet map need to listen to the change of the Monitored Nodes (Issue NMS-13502) Geo-Map: Convert vuex module code to typescript (Issue NMS-13503) Geo-Map: customize the filter for the severity in alarm page (Issue NMS-13505) Geo-map: investigate leaflet marker cluster in vue3 (Issue NMS-13514) geo-map: initiate geo-map typescript project (Issue NMS-13533) Geo-Map: Convert the nodes, alarms grid and map page to typescript and use vue SFC (Issue NMS-13541) Geo-Map: implement the Acknowlege/Unackowlege… on Alarm grid page (Issue NMS-13542) Geo-Map: port Geo-Map code to ui-foundation (Issue NMS-13589) Geo-Map: move map center to selected node while double click the row in the Node grid (Issue NMS-13595) geo-map: Have default sort column (Issue NMS-13630) geo-map: "<p>" in column "LOG MESSAGE" (Issue NMS-13633) geo-map: Add count to the Alarms and Nodes tab name (Issue NMS-13639) Geo-Map: add Feather UI to geo-map project (Issue NMS-13665) Update Netty to 4.1.69 (Issue NMS-13721) ssh scripting support for triggering TFTP upload of device configurations (Issue NMS-13899) update jsch (Issue NMS-13902) rest endpoint for device config retrieval (Issue NMS-13914) Build process improvement: Cache node artifacts (Issue NMS-13947) Basic upgrade procedure (Issue NMS-13971) Document housekeeping tasks before upgrade (Issue NMS-13972) Return device config filename when polling (Issue NMS-14017) Review wording of the new Provisiond UI (Issue NMS-14050) Update existing documentation related to provisiond xml file (Issue NMS-14051) Update inline help text for new provisiond UI (Issue NMS-14062) Document HTTP and HTTPS handlers (Issue NMS-14066) Documentation for OIA changes (Issue NMS-14154) Document multi constraint parameter feature addition (Issue NMS-14238) Implement "latest" tag with documentation (Issue NMS-14253) TEST: Provisioning config UI / thread pool sizes (Issue NMS-14263) Test provisioning config UI / external requisitions (Issue NMS-14264) Test web UI file editor (Issue NMS-14267) Test flow thresholding (Issue NMS-14268) Circle ci caching OIA issue (Issue NMS-14291) Latest DCB UX Updates (Issue NMS-14304) Fix UI yarn.lock conflicts with latest updates (Issue NMS-14308) Fix Feather Dialog issue on 0.10.10 (Issue NMS-14316) DCB Rest API: Update History to filter by config type (Issue NMS-14317) DCB UI: History and Compare should only display one config type (Issue NMS-14318) DCB Rest API: Order by Location and Backup Status (Issue NMS-14324) Enhancement Add a note to remember delete the browsers cache when upgrading OpenNMS (Issue NMS-8504) Two BridgePort Node - Topology Mismatch (Issue NMS-10226) there is no documentation on the instrumentation log reader (Issue NMS-10393) Jira Cloud Support (Issue NMS-13443) Migrate External Auth into docs (Issue NMS-13574) Geo-Map: make Alarms | Nodes tab more apparent (Issue NMS-13605) geo-map: swap the position of "Alarms" and "Nodes" tab and fix typo "label" (Issue NMS-13620) geo-map: disable the hidden filter beside the column name (Issue NMS-13631) geo-map: rename "LAST CAPABILITIES SCAN", "Apply Filter" and "Submit" (Issue NMS-13632) geo-map: Adjust to column width (Issue NMS-13634) Document how to set up SSL with Jetty (Issue NMS-13684) Upgrade Kafka components to 3.0.0 (Issue NMS-13716) Initial framework for new UI developed with Vue3 & FeatherDS (Issue NMS-13720) Update FeatherDS, replace LightDark icon, replace sidebar with navigation rail (Issue NMS-13798) Validate IP Addresses when adding/updating nodes via REST API (Issue NMS-13805) Improve handling of invalid IP addresses during provisioning cycle (Issue NMS-13806) Flesh out Prometheus datacollection shipped config (Issue NMS-13824) Add Health Check Rest API on Sentinel (Issue NMS-13837) Add new UI RapiDoc interface to consume OpenApi spec (Issue NMS-13873) Vue UI Housekeeping (Issue NMS-13876) remove easymock from tests (Issue NMS-13957) Incorporate Device Config Demo feedback (Issue NMS-14080) Availability percentages show too many decimals (Issue NMS-14114) DCB: Verify that service is actually bound (Issue NMS-14127) DCB: Error reporting needs love (Issue NMS-14128) DCB: Debug script execution (Issue NMS-14129) Support for netflowv9 fields ingressPhysicalInterface & egressPhysicalInterface (Issue NMS-14130) DCB: trigger backup via REST should block (Issue NMS-14143) DCB: filename suffix should be globally unique (Issue NMS-14144) DCB: Allow to disable scheduling (Issue NMS-14145) DCB: Backup is triggered after provisioning (Issue NMS-14146) DCB: Expecting dot before filename suffix (Issue NMS-14156) Typo in HttpPostMonitor parameters (Issue NMS-14159) Merge feature/device-config back to develop (Issue NMS-14166) DCB: List devices that never has done a backup (Issue NMS-14167) DCB: Backup is always triggered on minion (Issue NMS-14168) DCB: Getting the device config also persists [RFC] (Issue NMS-14176) Be able to control label sizes for the stress-metrics command (Issue NMS-14194) SCV: Masked credentials should be ignored in update (Issue NMS-14218) SCV: Add Shell command to validate Credentials (Issue NMS-14227) SCV: Cache JCEKS credentials in memory (Issue NMS-14228) Confusing web UI navigation titles (Issue NMS-14247) Expand XmlCollector documented parameters (Issue NMS-14256) Restructure Collector docs file path (Issue NMS-14258) Additional shipped thresholds for OpenNMS-JVM metrics (Issue NMS-14289) Correct errors on Business Service Monitoring docs (Issue NMS-14337) Modify host, zone and requisition name field validation (Issue NMS-14359) Snmp Link Up does not clear Snmp Link Down (Issue NMS-14378) Upgrade Upgrade FeatherDS to v0.10.2 (Issue NMS-14126) Update all new UI packages to latest versions (Issue NMS-14157) Upgrade to feather 0.10.8 & resolve TS issues (Issue NMS-14236) What’s New in OpenNMS Horizon 30 Basic Horizon deployment