Gateway Edge Agent Changelog

This file represents all changes to the Losant Gateway Edge Agent since its initial release. This project adheres to Semantic Versioning.

1.44.0 - 2024-03-05

Added

  • Edge Agent containers now store up to 256 log messages per logging level in memory, which can be retrieved remotely and streamed through the Losant user interface when the device is connected to the MQTT broker.
  • MQTT External Broker Client Configuration includes new option of protocolVersion to allow connections to either MQTT 5 brokers or MQTT 3.1.1 brokers.

Changed

Fixed

  • OPC UA Read Node with an integer identifier will correctly default a result key.

1.43.3 - 2024-01-30

Added

Changed

Fixed

  • The OPC UA Trigger will log an error message if the specified Agent Trigger Name is not found.
  • The MQTT Trigger will deploy to the edge agent when topic contains a leading slash.

1.43.2 - 2023-12-14

Changed

  • Upgraded Node.js to use version 18.19.0.
  • Upgraded various library dependencies.
  • Added the Alpine/Debian installed CA certificates as trusted certificates in addition to the built-in Node.js trusted certificates.
  • The Function Node is now allowed to use async/await and allowed to return a Promise.
  • The Function Node now has access to the container’s environment variables.
  • The Function Node can now require globally installed node modules.

1.43.1 - 2023-11-07

Changed

  • Upgraded Node.js to use version 18.18.2.
  • Upgraded various library dependencies.
  • Better validation on subscription topics from TOML file MQTT External Broker Trigger Configuration.
  • MQTT client will log a warning message when an external broker topic subscription fails and an info message when a topic subscription succeeds.

1.43.0 - 2023-10-05

Added

  • ✨ New Logic / CBOR Encode Node
  • ✨ New Logic / CBOR Decode Node
  • New environment variables for the Logic / Function Node including the following: RAW_FUNCTION_STARTUP_TIMEOUT, RAW_FUNCTION_MEM_LIMIT_MB and RAW_FUNCTION_INSTANCES.

Changed

  • Upgraded Node.js to use version 18.18.0.
  • Upgraded various library dependencies.
  • BROKER_PROTOCOL environment variable no longer has to include ”://“; mqtts, mqtt, ws, and wss are all valid values.
  • Broker SSL Keys, Web Server SSL Key, and Local Broker SSL key will accept ECDSA keys.

Fixed

  • All Allen-Bradley node connection errors are now properly returned to the user.
  • Data / Redis Node will properly close the client when rapidly trying to connect with invalid credentials.

1.42.0 - 2023-08-29

Added

Changed

Fixed

  • Triggers / MQTT now correctly differentiates between publishes from the Losant MQTT Broker and publishes from its local MQTT broker when using the same topic.
  • Fixed issue with segmentation fault on startup with the Debian ARM7 image on 32-bit ARM hardware.
  • Output / Tweet Node is deprecated and cannot be added to any existing or new workflow.
  • Data / SQL Node contains a fix for a race condition that occurred when two nodes tried to access a SQL server with invalid configuration.

1.41.1 - 2023-07-31

Fixed

  • Fixed issue with segmentation fault on startup with the Alpine ARM7 image on 32 bit ARM hardware.

1.41.0 - 2023-07-25

Added

  • Edge Custom Nodes can be used in edge workflows.
  • The develop version of an Edge Custom Node can be directly deployed and run on the edge agent.

Changed

  • Upgraded Node.js to use version 18.16.1.
  • Upgraded various library dependencies
  • Data / Redis Node added an optional CA certificate field when attempting to connect over TLS.
  • Logic / Array Node now supports the deduplicate operation.

1.40.0 - 2023-06-13

Added

Changed

  • Upgraded various library dependencies
  • Data / Agent Config: Set Node allows setting OPC UA trigger configuration fields.
  • Data / Agent Config: Get Node will include any OPC UA trigger configurations that are set on the agent configuration file.
  • Data / Device: State Node will use the payload’s time even if the workflow removes the time path from the payload.
  • Data / AWS S3: Get Node & Data / AWS S3: Put Node will verify the region is given and a valid type.
  • Debian version upgraded to “bookworm” (Debian 12).

1.39.0 - 2023-05-11

Added

Changed

  • Upgraded Node.js to use version 18.16.0.
  • Upgraded Alpine Docker image to 3.17.
  • Multiple library dependencies were updated.
  • Logic / Function Node console logs will log out all arguments given to the console function.

Fixed


1.38.0 - 2023-03-30

Added

Changed

  • Upgraded Node.js to use version 18.15.0.
  • Multiple library dependencies were updated.
  • Data / Redis Node supports connecting to a Redis instance running in cluster mode.
  • Debug / Debug Node supports setting a debug level.

Fixed

  • Logic / Time Range Node will properly handle comparing time when start time is greater than end time.
  • Data / GCP: BigQuery Node is consistent about configuration for delete actions, when delete all tables in the dataset is unchanged.
  • Data / JWT: Decode Node does not throw errors when attempting to decode a corrupted token.

1.37.0 - 2023-02-21

Added

  • New environment variable option OFFLINE_MESSAGE_REPLAY_ORDER, which can be set to either oldestFirst or newestFirst. This controls the order in which queued messages should be sent to Losant after reconnecting. By default, this variable will be oldestFirst.

Changed

  • Upgraded Node.js to use version 18.14.1.
  • Multiple library dependencies were updated.
  • Data / Google Function node will accept second generation URLs for the Trigger URL Template.
  • Logic / Validate Payload node will not allow regular expressions with lookaheads.

1.36.1 - 2023-01-24

Fixed

  • Fixed issue where the Alpine versions of the 1.36.0 agent had a misconfiguration that prevented them from starting.

1.36.0 - 2023-01-17

Changed

  • The agent has been upgraded to an ES Module instead of using CommonJS.
  • Upgraded Node.js to use version 18.12.1.
  • Multiple library dependencies were updated.
  • Debian version upgraded to “bullseye” (Debian 11).

Fixed

  • Fixed issue where applicationId and applicationName on initial workflow payloads would unexpectedly revert to incorrect values.
  • Fixed Handlebars helper defaultTo to use its default value, when another helper returns undefined.

1.35.0 - 2022-11-30

Changed

  • Data / Redis Node will accept a payload path to use as arguments.
  • Data / Redis Node now allows an error path; when provided, a Redis error will be added to the payload instead of erroring the entire workflow.
  • Handlebars each helper supports numbers and strings.
  • Handlebars valueByKey helper supports payload paths.
  • Upgraded Node.js to use version 16.18.1.
  • Multiple library dependencies were updated.

Fixed

  • Data / Google Function Node validates the authentication credentials when provided as a payload path.
  • Logic / CSV: Encode Node drops any falsy rows that where included in the CSV source payload path.
  • Handlebars each helper’s @last property will be true if this is the last element in the loop.

1.34.0 - 2022-10-12

Changed

  • Data / Validate Payload will now return as many errors as possible instead of just the first error.
  • subscribeToPeripheralUpdates now allows controlling if only floating or only static peripheral updates should be subscribed to, by adding two new possible options for the configuration field: floating and peripheral.
  • Upgraded Node.js to use version 16.17.1.
  • Multiple library dependencies were updated.
  • Upgraded Alpine Docker image to 3.16.

Fixed

  • Fixed an issue where the local MQTT broker would still instantiate even if it was disabled.
  • Fixed an issue where the agent would fail to resubscribe to custom topics after multiple disconnect/reconnect cycles.

1.33.0 - 2022-09-06

Added

Changed

  • Data / Peripheral: Get now supports returning attributes as an object map, and tags as an array.
  • Improved redaction of potentially sensitive values in debug payload messages.
  • Upgraded Node.js to use version 16.17.0.
  • Multiple library dependencies were updated.

1.32.0 - 2022-07-26

Added

  • The last Handlebars helper was added.

Changed

  • Logic / Hash Node now supports setting the encoding for the secret and data inputs.
  • Upgraded Node.js to use version 16.16.0.
  • Multiple library dependencies were updated.

Fixed

  • Data / SNMP: Write Node when possible now correctly casts the values being written to the expected types.

1.31.0 - 2022-06-14

Added

Changed

  • Logic / JWT: Create Node now supports adding custom header fields.
  • Upgraded Node.js to use version 16.15.1.
  • Upgraded Alpine Docker image to 3.15.
  • Multiple library dependencies were updated.

1.30.0 - 2022-05-10

Added

  • Logic / Object Node now supports Zip Object operation.
  • Data / HTTP Node now supports body types multipart/form-data and application/x-www-form-urlencoded.

Changed

  • Upgraded Node.js to use version 16.15.0.
  • Multiple library dependencies were updated.
  • Logic / Function Node allows for passing an optional scope path and only that part of the payload will be accessbile in the node instead of the entire payload.

1.29.0 - 2022-04-05

Changed

  • Upgraded Node.js to use version 16.14.2.
  • Multiple library dependencies were updated.
  • Triggers / MQTT allows for triggering based on wildcard topics from the Losant Broker.

Fixed

  • Data / BACnet: Write Node and Data / BACnet: Read Node sets the APDU timeout field to the value or template given on the node. When left blank this value defaults to the MAXEXTERNALCALLTIME environment variable. The MAXEXTERNALCALLTIME by default is 30 seconds.
  • Data / BACnet: Read Node will always cast each instruction key field to a string.

1.28.0 - 2022-03-01

Changed

  • Upgraded Node.js to use version 16.14.0.
  • Multiple library dependencies were updated.

Fixed


1.27.0 - 2022-01-25

Added

Changed

  • Upgraded Node.js to use version 16.13.2.
  • Multiple library dependencies were updated.

Fixed

  • Data / OPCUA: Browse ensures there are no duplicate entries when browsing directories or objects.

1.26.0 - 2021-12-09

Changed

  • Upgraded Node.js to use version 16.13.0.
  • Upgraded Debian to use version 10.
  • Multiple library dependencies were updated.

Fixed

  • Data / SNMP Write Node gives correct type in error messages for arguments when type is incorrect.

1.25.0 - 2021-10-21

Added

Changed

  • Upgraded Node.js to 14.18.0.
  • Multiple library dependencies were updated.
  • More specific error messages when on disk workflows fail to load.
  • Triggers / Workflow Error Trigger payloads now contain a reply ID to use for an HTTP Response if a critical error comes after an HTTP Request Trigger.

1.24.0 - 2021-08-24

Added

Changed

  • Upgraded Node.js to 14.17.5.
  • Multiple library dependencies were updated.
  • The ability to turn off subscribing to peripheral updates is now exposed through the configuration setting subscribeToPeripheralUpdates.
  • The agent now responds to the signal SIGHUP, which will trigger a reload of the on-disk configuration.
  • Debug messages now include workflow node timing information.

Fixed

  • The agent now correctly supports SNI when connecting to brokers over TLS.
  • Modbus client race conditions during shutdown, which sometimes led to errors, have been fixed.

1.23.0 - 2021-07-19

Added

Changed

  • Upgraded Node.js to 14.17.0.
  • Upgraded Alpine Docker image to 3.13.
  • Multiple library dependencies were updated.
  • MQTT_KEEPALIVE is now exposed as an advanced option.
  • A Device ID and Losant Broker credentials are no longer required to start the agent. The agent will run without a broker connection when these are not provided.

Fixed

  • Fixed an issue where the Object Node could error on poor input to the fromPairs operation.

1.22.1 - 2021-06-01

Fixed

  • Fixed an issue where the Function and Loop nodes did not correctly use the value from the environment variable MAX_FLOW_RUN_TIME and instead continued to use the default value.

1.22.0 - 2021-05-26

Added

Changed

Fixed

  • If the store path from the configuration points to a corrupted database, the Gateway Edge Agent will now copy those files into a separate directory and create a new database at that given path.
  • BACnet Read Node and BACnet Write Node will now properly validate Host Port Template and Incoming Port Template.
  • Modbus Read Node and Modbus Write Node when closing a connection the nodes wait until the connection is completely closed.
  • Allen-Bradley Read Node now defaults reads of data type “STRING” to an empty string if the tag is undefined.

1.21.0 - 2021-03-30

Added

  • Array Node - Added slice operation.
  • Loop Node - Added a new field “Loop Mode” which allows the loop to run either in parallel or serially (the default). In addition, added the ability for the Loop Node to build an array of the result of each iteration.

Changed

  • Upgraded Node.js to 14.16.0.
  • Multiple library dependencies were updated.

Fixed

  • Twitter Node - catching and wrapping up malformed errors from the Twitter API, and defaulting an error message when one cannot be found.
  • Loop Node - All loop node lists are populated correctly no matter the type of source.

1.20.1 - 2021-02-24

Changed

  • Multiple library dependencies were updated.

Fixed

  • Modbus Read Node - Fixed setting the results to an instruction to the wrong key after a timeout error.
  • Modbus Write Node - Fixed setting the results to an instruction to the wrong key after a timeout error.

1.20.0 - 2020-12-15

Added

Changed

Fixed

Validating hosts when using the following nodes:


1.19.2 - 2020-10-21

Changed

Fixed


1.19.1 - 2020-09-25

Changed

  • Idle client and session cleanup behavior for the OPC UA Nodes has been changed to be more robust and consistent.
  • Expose new environment variables to control idle cleanup behavior for the OPC UA Nodes.

Fixed

  • Fixed race condition on session creation for OPC UA Nodes.
  • Fixed race condition on session and client disposal for OPC UA Nodes.
  • Fixed issue where the configured Security Policy was not correctly used for OPC UA Nodes.
  • Fixed issue where OPC UA subscriptions where not disposed on OPC UA trigger removal.

1.19.0 - 2020-09-08

Added

Changed

  • Serial Trigger new configuration fields: Parity, Stop Bits, Data Bits, RTSCTS.
  • Serial Write Node new configuration fields: Parity, Stop Bits, Data Bits, RTSCTS.

Fixed


1.18.2 - 2020-08-10

Fixed

  • Fix issue where under certain circumstances the SQL Node for MySQL would return incorrect results on select statements.

1.18.1 - 2020-07-23

Changed

  • Upgraded Node.js to 12.18.0.
  • Multiple library dependencies were updated.
  • Changed MQTT reconnect interval to be variable, defaults to 30 seconds +/- 15 seconds

1.18.0 - 2020-06-11

Changed

  • Added support for payload path configuration for the OPC UA Browse, Call, Read, and Write nodes.
  • Upgraded underlying libraries for the OPC UA trigger and nodes.
  • Upgraded the underlying libraries for the Tensorflow: Predict node.
  • Messages published to the Losant cloud broker by the Device: State and MQTT nodes now check to make sure they are below the maximum allowed size.
  • Added support for the stream commands to the Redis node.
  • Added an optional result path to the Tweet node.
  • Added an optional result path to the Slack node.

Fixed

  • Fix issue where under certain circumstances the Tensorflow: Predict node could crash the agent.
  • Fix issue where host clock changes were not correctly taken into account for the Timer trigger.
  • Fix issue where the Tensorflow: Predict node no longer worked on the arm32 build of the agent.
  • Fix issue where the HTTP node did not properly obey the MAX_EXTERNAL_CALL_TIME environment variable.
  • Fix some rare timeout race conditions in the Function node.

1.17.0 - 2020-04-28

Added

  • Added support for using the Gateway Edge Agent as a local MQTT Broker.

Changed

  • Added the ability for the MQTT Trigger to trigger on messages published to the local broker.
  • Added the ability for the MQTT Node to publish messages to the local broker.
  • Added support for the server-side encryption flag to the AWS S3: Put Node.

1.16.0 - 2020-03-18

Added

Changed

  • Upgraded underlying libraries for the OPC UA trigger and nodes.
  • Added support for Read Device Identification to the Modbus: Read node.
  • Update to Node.js 12.16.1.
  • Multiple library dependencies were updated.

Fixed

  • Fix issue where under certain circumstances the Run Executable node could crash the agent.
  • Fix issue where the Workflow Error trigger could crash the agent when the payload was in certain unexpected formats.

1.15.0 - 2020-02-19

Changed

  • Upgraded underlying libraries for the Modbus: Read and Modbus: Write nodes.
  • Upgraded underlying libraries for the Serial Write node and the Serial trigger.
  • Upgraded underlying libraries for the MongoDB node.
  • Added support for an error path to the MongoDB node.
  • Added support for replaceOne and aggregate to the MongoDB node.

Fixed

  • Re-enable support for TLS 1.0 and 1.1 in the HTTP node (was removed in previous version).

1.14.0 - 2020-01-10

Changed

  • Update to Node.js 12.13.0.
  • Multiple library dependencies were updated.
  • Added support for an error path to the JSON Decode node.

Fixed

  • Fix issue where an error in a Function node could crash the agent.

1.13.0 - 2019-11-07

Added

Changed

  • Added support for fractional second timers to the Timer trigger.
  • Add new options and timezone support to the Date/Time node.
  • Improved performance of the Function node for large payloads.
  • Upgraded underlying libraries for the SQL node.

1.12.0 - 2019-10-07

Added

Changed

  • Added ability to see result information for the Device: State node.

Fixed

  • Fix issue where agent would incorrectly think the current architecture would support the TensorFlow: Predict node, and the agent would crash.

1.11.0 - 2019-08-22

Added

Changed

  • Changed the default parse method for the Serial trigger to be delimiter instead of byte length.
  • Add ability to define data bits, stop bits, and parity for the Modbus: Read and Modbus: Write nodes when connecting with serial.
  • Update to Node.js 10.16.0.
  • Multiple library dependencies were updated.

Fixed

  • Fix issue where unit id was improperly ignored for the Modbus: Read and Modbus: Write nodes when connecting with serial.
  • Fix race condition where agent could crash when workflow debugging was enabled and workflows were triggered immediately on startup.
  • Fix issue where agent could error when cleaning up stale TensorFlow: Predict models.

1.10.0 - 2019-07-23

Added

Changed

  • Added support for serial RTU connections for the Modbus: Read node.
  • Added support for serial RTU connections for the Modbus: Write node.
  • Added support to get all storage values with the Storage: Get Value node.
  • Upgraded the underlying libraries for the various OPC UA nodes.
  • Workflow storage writes now write to disk asynchronously every few seconds and do not block the running workflow.
  • Deprecated timeSincePath support for the Throttle node.

Fixed

  • Fix typos in OPC UA node error messages.
  • Fix issue where the Allen-Bradley Read and Write nodes would behave inconsistently when controller and tag names were the same.
  • Fix issue where heavy use of the Throttle node would cause errors.

1.9.1 - 2019-06-13

Fixed

  • Fixed race condition introduced in 1.9.0 that would cause the agent to crash on startup in certain circumstances.

1.9.0 - 2019-06-06

Added

Changed

  • Added support for configuration via a payload path for the Modbus: Read node.
  • Added support for configuration via a payload path for the Modbus: Write node.
  • Added support for FC16 writes in the Modbus: Write node.
  • Added SSL support to the Redis node.
  • The HTTP node now supports a request body encoding type.
  • The String node now supports pad.
  • Update to Node.js 10.15.3.
  • Multiple library dependencies were updated.

Fixed

  • Fixed Buffer, Date, and ObjectID type inconsistencies when passing data to and from the Function node.
  • Fixed issue where multiline statements did not work properly in the SQL node.
  • Fixed issue with the Postgres Interval data type in results from the SQL node.

1.8.0 - 2019-04-24

Added

Changed

  • Improved error messages when evaluating expressions with incorrect use of the ! operator.
  • Improved error messages for the Generate ID node.
  • The HTTP Node now supports a response body encoding type.

Fixed

  • Fixed issue where OPC UA nodes errored the workflow instead of adding an error to the payload when the OPC UA call returned an invalid datatype.
  • Fixed issue where the jsonEncode payload helper behaved incorrectly when used recursively.

1.7.0 - 2019-03-26

Added

Fixed

  • Fixed issue with OPC UA nodes not correctly reusing the same session across workflow runs.
  • Fixed issue where workflows allowed invalid program and tag names for the Allen-Bradley nodes.

1.6.1 - 2019-02-28

Fixed

  • Fixed a permissions issue with the Docker image which caused filesystem permission errors with the OPC UA nodes.

1.6.0 - 2019-02-27

Added

Fixed

  • Fixed an issue where non-geographic area codes for USA phone numbers were rejected as invalid in the Twilio node.

1.5.0 - 2019-01-31

Added

Changed

  • The HTTP Node now supports making requests with client certificates.
  • The HTTP Node now supports using a custom CA.
  • Update to Node.js 10.15.0.
  • Multiple library dependencies were updated.

Fixed

  • Fixed an issue where one workflow could monopolize the process and prevent other workflows from running.

1.4.0 - 2018-12-18

Added


1.3.1 - 2018-11-21

Fixed

  • Fixed an issue where a mix of successful and failing modbus reads in a single Modbus: Read node would not be represented correctly on the payload.
  • Fixed an issue with the MongoDB where certain connection URIs were incorrectly parsed.

1.3.0 - 2018-11-08

Added

Changed

  • The Modbus: Write Node now has an adjustable timeout.
  • The Modbus: Read Node now can be configured to read values as either signed or unsigned, and it has an adjustable timeout.
  • Multiple library dependencies were updated.

Fixed

  • An issue where using the currentDateTime template helper by itself without a format argument would result in a blank string has been fixed.
  • An issue where the agent would exit without waiting for logs to finish writing has been fixed.
  • An issue with timers configured by cron in certain timezones would hang has been fixed.

1.2.5 - 2018-10-04

Fixed

  • The File: Read Node now correctly closes the open file handle afterward in all cases.
  • When the File: Read Node errors, it no longer overwrites the entire payload with the error message in certain cases.
  • The Modbus: Write Node now correctly accepts the full range of a 16 bit unsigned integer for writing to a register.

1.2.4 - 2018-09-28

Changed

  • Change the limit on the number of concurrently running nodes to be applied per running workflow instead of globally across all running workflows.

1.2.3 - 2018-09-27

Added

  • There are now Alpine-based Docker images for the Gateway Edge Agent.
  • The typeof Handlebars helper has been added.

Changed

Fixed

  • The HTTP Node now uses auto for ecdhCurve for SSL connections.

1.2.2 - 2018-08-22

Added

  • Added a configuration flag to control the queuing of messages while the agent is offline.
  • Added the new payload helper scaleLinear.
  • Added the new payload helper currentDateTime.

Changed


1.2.1 - 2018-08-07

Added

Changed

  • Modbus: Read Node and Modbus: Write Node now default to port 502.
  • Improved MongoDB Node error handling.
  • A workflow publishing MQTT messages to an invalid or unauthorized topic will no longer cause the agent to disconnect from the Losant Platform.

Fixed

  • System clock changes no longer affect the firing of interval timers while the agent is running.
  • Debug messages with circular references correctly send to the Losant Platform.

1.2.0 - 2018-06-21

Added

  • Data / ServiceNow Node
  • Triggers / UDP Trigger
  • Outputs / UDP Send Node
  • Edge workflow payloads now have environment variables available under the field agentEnvironment.
  • Edge workflow payloads now have the field isConnectedToLosant, representing if the agent is currently connected to Losant.

Changed

  • Easily set authorization headers for requests on the HTTP Node.
  • Can now set the path for a cookie on the HTTP Response Node.
  • Improved phone number casting for the Twilio Node.
  • Update to Node.js 8.11.3.

1.1.1 - 2018-05-21

Changed

  • Improved startup messages.
  • The HTTP Node now allows for setting timeouts and capturing network errors.

Fixed

  • Improved messages for Slack Node errors.
  • Support circular references in debug messages.

1.1.0 - 2018-03-29

Added

Changed

Fixed


1.0.0 - 2018-03-08

Added

Was this page helpful?


Still looking for help? You can also search the Losant Forums or submit your question there.