Gateway Edge Agent Changelog
This file represents all changes to the WEGnology Gateway Edge Agent since it’s initial release. This project adheres to Semantic Versioning.
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
- SNMP Write Node gives correct type in error messages for arguments when type is incorrect.
1.25.0 - 2021-10-21
Added
- Data / BACnet: Who-Is
Changed
- Upgraded Node.js to 14.18.0.
- Multiple library dependencies were updated.
- More specific error messages when on disk workflows fail to load.
- 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
- Data / Agent Config: Set Node
- The HTTP Request Trigger can now optionally be configured to only match specific methods and routes.
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
- Data / Agent Config: Get Node
- Data / WEGnology API Node
- Data / SNMP: Get Subtree Node
- Data / SNMP: Read Node
- Data / SNMP: Write Node
- The AWS S3: Put Node can now upload a file directly from a URL.
- The Redis Node supports a number of new Redis 6 commands, and supports username authentication.
- The Array Node now supports the
keyBy
operation. - The evalExpression Handlebars helper was added.
- Workflows can now be loaded and run from exported on-disk files.
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 WEGnology 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
- GCP: Function Node now supports HTTP triggered invocations.
Changed
- Upgraded Node.js to 14.16.1.
- Modbus Read Node and Modbus Write Node share client connections and keep frequently used clients open.
- Multiple library dependencies were updated.
- Allen-Bradley Read Node and Allen-Bradley Write Node return errors with the key to the specific instruction that caused the error.
Fixed
- If the store path from the configuration points to a corrupted DB the edge agent will now copy those files into a separate directory and create a new DB 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
- Installing bash on alpine images.
- Allen-Bradley Read Node can pass read instruction by payload path.
Changed
- BACnet Read Node and BACnet Write Node will now cache the connected clients to be reused on the Edge Agent.
Fixed
Validating hosts when using the following nodes:
- Modbus Read Node
- Modbus Write Node
- Allen-Bradley Read Node
- Allen-Bradley Write Node
- OPC UA Read Node
- OPC UA Write Node.
1.19.2 - 2020-10-21
Changed
- Updated serial connections for the following nodes to allow baud rate to be any positive integer: Serial Trigger Node, Serial Write Node, Modbus Write Node, and Modbus Read Node.
- The Serial Trigger Node has new configuration fields: Delimiter Encoding and Write On Open Encoding.
- Updated the UDP Send Node to enable destination addresses to be broadcast addresses.
- Upgraded underlying libraries for the OPC UA trigger and nodes.
Fixed
- Fixed Serial Write Node issue where the configured write encoding was not used.
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
- Data / BACnet Read Node
- Data / BACnet Write Node
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
- Edge agent no longer waits for “On Startup” workflows to complete before connecting to WEGnology.
- Modbus Read Node function “Read Device Identification” now works properly over RTU Serial.
- OPC UA Browse Node, OPC UA Call Node, OPC UA Read Node and OPC UA Write Node now handles an Invalid Secure Channel error properly.
- CSV: Encode Node no longer mutates the row entry when passing as an array from the payload.
- Edge agent now attaches signal handlers for SIGINT / SIGTERM before the edge agent is up and running.
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 WEGnology cloud broker by the Device: State and MQTT nodes now check to make sure they are below the maximum allowed size.
- Added suppport 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 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
- Data / Peripheral: Get
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
- Trigger / Workflow Error
Changed
- Added support for fractional second timers to the Timer trigger.
- Add new options and timzone 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
- Trigger / File Tail
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
- Trigger / Device: Connect
- Trigger / Device: Disconnect
- Trigger / Device: Startup
- Logic / Date / Time
- Data / GCP: Function
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
- Data / Azure: Function
- Data / TensorFlow: Predict
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
- Data / OPC UA: Read
- Triggers / OPC UA
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
- Data / AWS S3: Get
- Data / AWS S3: Put
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 OPCUA nodes errored the workflow instead of adding an error to the payload when the OPCUA call returned an invalid datatype.
- Fixed issue where the
jsonEncode
payload helper behaved incorrectly when used recursively.
1.7.0 - 2019-03-26
Added
- Data / Serial Write
Fixed
- Fixed issue with OPCUA 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 OPCUA nodes.
1.6.0 - 2019-02-27
Added
- Triggers / Serial
- Data / OPC UA: Read
- Data / OPC UA: Write
- Data / OPC UA: Browse
- Logic / CSV: Decode
- Logic / CSV: Encode
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
- Triggers / Redis
- Triggers / Virtual Button
- Data / SQL
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
- Data / Allen-Bradley: Read
- Data / Allen-Bradley: Write
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
- Triggers / File Watch
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 Edge Agent.
- The typeof handlebars helper has been added.
Changed
- The Run Executable Node now supports detaching from the executable.
- The Geofence Node now supports drawing custom polygons.
- The Array Node now supports concat.
- Update to Node.js 8.12.0.
Fixed
- The HTTP Node now uses
auto
forecdhCurve
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
- Improved Google Big Query and GoogleML Node error handling.
- Clarified certain verbose log messages.
1.2.1 - 2018-08-07
Added
- Can now choose to have no expiration time for the JWT: Create Node.
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 WEGnology 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 WEGnology 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
isConnectedToWEGnology
, representing if the agent is currently connected to WEGnology.
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
- Logic / Generate ID Node
- Logic / Hash Node
Changed
- Improved error messages
- The Validate Payload Node now allows for defining your schema using either a payload path or a JSON template.
Fixed
- Modbus: Read Node’s “Length” property now defaults to a value of 1 if left blank.
- Modbus: Read and Modbus: Write Nodes will now time out if they fail to connect to Modbus.
1.0.0 - 2018-03-08
Added
- Triggers / Timer Trigger
- Triggers / HTTP Request Trigger
- Triggers / MQTT Trigger
- Triggers / Device: Command Trigger
- Data / Modbus: Read Node
- Data / Modbus: Write Node
- Data / File: Read Node
- Data / File: Write Node
- Data / Run Executable Node
- Outputs / HTTP Response Node