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.
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.2.5
DCIs with Script origin and DCI instance discovery scripts no longer run in the read-only security context.
They can modify objects, post events, and send notifications regardless of the Scripts.RestrictWriteAccess setting.
6.2.6
Scripts executed by scheduled tasks and script library scripts called by the AI assistant as tools run with the security context of the task owner or of the chat user.
Such a script can access or modify an object only if that user has the access right that the operation requires; denied calls return false without a script error.
Tasks created by the server itself run as the built-in system user, which has all access rights.
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 10.1 or later, or Jetty 12 or later (Jakarta Servlet API 6.0). |