Breaking Changes Between Releases
Review this page before upgrading to identify changes that may require manual intervention or script updates.
For upgrade procedures, see Upgrading.
7.0
-
The standalone WebAPI service (
nxapisrv) is deprecated and removed; the REST API is now provided by thewebapiserver module loaded into the server process. -
The "internal" object tool type was removed and type 0 is now reserved. The built-in Wakeup node tool is converted to a server script tool (
Tools::WakeUpNode) during upgrade. -
A network mask is no longer accepted when creating nodes. Pseudo-interfaces created for unmanaged nodes get a synthetic mask automatically.
-
The Microsoft Teams notification channel driver was reworked to use Power Automate Workflows webhooks. Legacy Office 365 connectors are no longer supported, and the
UseMessageCardsandThemeColordriver options are ignored. -
The web management client requires a servlet container supporting Jakarta Servlet API 6.0 (Tomcat 11 or later, Jetty 12 or later).
-
DCIs with Script origin and DCI instance discovery scripts no longer run in the read-only security context introduced in 6.2. They can modify objects, post events, and send notifications regardless of the
Scripts.RestrictWriteAccesssetting. Such scripts live in the script library, and write access to the script library already allows unrestricted code to run, for example through hook scripts. All other scripts listed in Write Access Restrictions remain restricted.
6.2
Scripts evaluated automatically by the server — DCI transformation scripts, scripted thresholds, auto-bind filters, conditions, EPP filter and RCA scripts, and others — are now read-only and cannot modify objects, post events, or send notifications.
This is controlled by the new Scripts.RestrictWriteAccess server configuration variable, which is set to 1 both on new installations and during upgrade.
Denied operations do not produce a script error: the call returns false and the script continues, so affected scripts stop having effect silently.
See Write Access Restrictions for the list of affected scripts and for ways to keep the modifying logic working.
6.0.0
Backslash no longer has special meaning in macro expansion and does not need to be escaped.
The input field macro %(name) has been repurposed into a multi-purpose macro supporting:
-
%(nl)— insert new line character -
%(cr)— insert carriage return character -
%(lf)— insert line feed character -
%(tab)— insert tab character -
%(in:name)— insert input field value
During upgrade, existing macros are automatically converted.
5.0
MIB File Changes
Previously loaded additional MIB files will not work after upgrade. They must be re-uploaded via .
-
MIB compilation file extension changed to
.mib -
Compiled MIB file extension changed to
.cmib -
Default MIB file location changed to
$HOME/share/netxms/mibs/ -
Default format of SNMP OIDs changed to a format without leading dot — this can break scripts that use SNMP OID string comparisons
NXSL Syntax Overhaul
The NXSL syntax has changed significantly.
During upgrade, existing scripts are converted automatically.
For manual conversion, use the nxscript command line utility: nxscript -5 script-file.nxsl.
| Description | Old Syntax | New Syntax |
|---|---|---|
String concatenation |
|
|
Object dereference |
|
|
Array initialization |
|
|
Safe dereference (custom attribute access) |
|
|
Library import |
|
|
Function definition |
|
|
NXSL Class and Function Renames
Class TIME was renamed to DateTime.
New modules Math, Base64, Crypto, Net, and IO were created, and functions were moved under them.
The most commonly used functions are left as deprecated aliases, but others were renamed without a deprecated version.
| Old Name | New Name | Type |
|---|---|---|
TIME |
DateTime |
class |
asin |
Math::Asin |
function |
acos |
Math::Acos |
function |
atan |
Math::Atan |
function |
atan2 |
Math::Atan2 |
function |
cosh |
Math::Cosh |
function |
exp |
Math::Exp |
function |
gethostbyaddr |
Net::ResolveAddress |
function |
gethostbyname |
Net::ResolveHostname |
function |
log |
Math::Log |
function |
log10 |
Math::Log10 |
function |
md5 |
Crypto::MD5 |
function |
sha1 |
Crypto::SHA1 |
function |
sha256 |
Crypto::SHA256 |
function |
sinh |
Math::Sinh |
function |
tanh |
Math::Tanh |
function |
weierstrass |
Math::Weierstrass |
function |
decode |
Base64::Decode |
function |
encode |
Base64::Encode |
function |
CopyFile |
IO::CopyFile |
function |
CreateDirectory |
IO::CreateDirectory |
function |
DeleteFile |
IO::DeleteFile |
function |
FileAccess |
IO::FileAccess |
function |
OpenFile |
IO::OpenFile |
function |
RemoveDirectory |
IO::RemoveDirectory |
function |
RenameFile |
IO::RenameFile |
function |
4.4
The minimal JRE (Java Runtime Environment) version for both web and management client is now Java 17.
4.2
The NXSL functions AgentExecuteAction and AgentExecuteActionWithOutput were renamed to AgentExecuteCommand and AgentExecuteCommandWithOutput.
4.1
-
The
CreateDCINXSL method changed: the last two parameters (polling interval and retention time) should be set tonullinstead of0to use default values -
NXSL decimal numbers written with leading zeros are no longer interpreted as octal
4.0
-
Incompatible change in NXSL DCI class:
instanceattribute now refers to the instance value (as in{instance}macro), not instance name. UseinstanceNameto access the instance name. -
Several Web API endpoints were renamed (e.g.,
API_HOME/summaryTable/adHocbecameAPI_HOME/summary-table/ad-hoc)
3.8
The minimal JRE (Java Runtime Environment) version for the management client is Java 11. A Desktop Management Client with bundled JRE is provided for Windows.
3.7
-
Introduced boolean type in NXSL. Comparisons like
func() == 1, wherefuncreturns a boolean, will always evaluate to false because the boolean valuetrueis not equal to integer 1. This may require fixes in NXSL scripts. -
Regexp matching operation in NXSL now returns an array with capture groups or
falseas a result. -
Clusters now have configuration poll. If you have a configuration poll hook script that references
$node, this will produce errors when configuration poll runs on a cluster. Replace$nodewith$objector add a guard:if (classof($object) == "Node").
3.6
The Certificate Manager was removed from the server.
All CA certificates configuration must be manually moved to the TrustedCertificate parameter in the server configuration file.
3.5
External Metrics (ExternalMetric, etc.) now expect UTF-8 encoding on Windows.
Adjust scripts called by external metrics if non-ASCII characters are returned.
3.1
-
Regexp matching operation in NXSL returns array with capture groups or
NULLas result -
NXSL objects and arrays in logical expressions are evaluated to
TRUE— this may require NXSL script adjustments
3.0
-
Notification channels introduced as new functionality. SMS configuration is automatically migrated from server configuration to a notification channel based on the old driver name (AnySMS, DBTable, Dummy, GSM, Kannel, MyMobile, Nexmo, NXAgent, Portech, Slack, SMSEagle, Text2Reach, WebSMS). No manual action required.
-
Flags and dynamic flags moved to the
NetObjectclass. Node flags are separated into user-set flags and system-set capability flags. Numeric values for flags, capabilities, and dynamic flags were changed — this affects NXSL scripts that check those flags directly. -
The 32-bit version of the management client is no longer available.
-
The agent always requires encryption unless the
RequireEncryptionparameter is explicitly set tooff. You may need to add this parameter where encryption is not desired. -
Agent policies were merged with templates. Each policy was converted to a template. No manual changes required.
Java Version Requirements Summary
Starting with version 4.4, Java 17 is the minimum Java version for both the desktop and web management clients. For earlier releases, the release notes stated older minimums for the management client: Java 8 up to version 3.7 and Java 11 from version 3.8.
| Current versions of the web management client require Tomcat 11 or later, or Jetty 12 or later (Jakarta Servlet API 6.0). |