Changelog and Upgrade Guide

This page lists all relevant changes in regular version updates.

When updating from the earlier 0.x version to current 1.x versions, the explanation for the update process can be found on page General changes from 0.x to 1.0 and Upgrading from 0.x to 1.0.

What has changed in 1.0.24?

Another regular maintenance release for the beginning of the year, bringing some bugfixes for OPC UA Server and improving the recently added Focas protocol.

Changed

  • Update NodeJS to version 12.20.1, including security updates

  • All protocols: Switch base image of protocol-mapper from alpine linux to debian (buster-slim) to avoid compatibility issues with musl-libc and now just use standard glibc

  • MQTT Broker: Upgrade VerneMQ to version 1.11, fixing issues with overly consuming disk space

Fixed

  • OPC UA Server: Fix for Mismatch of UserIdentityTokens, fixing some connection problems from specific OPC UA clients.

  • Focas protocol: Make Focas connection asynchronous again

  • Focas protocol: Fix crash on return value conversion of pmc_rdpmcrng method

  • Documentation: Fix modbus example files to always define a dataType property on all endpoints

What has changed in 1.0.23?

This regular bugfix update improves stability and scalability, but also brings new features. The release includes ingress routes to custom service containers now not only for HTTP protocol connections but also for general TCP/IP connections. Also, the Focas protocol for Fanuc CNC machines has been added.

Added

  • New ingress routes for TCP/IP added, so that not only HTTP but also general TCP/IP connections can be routed to service containers via Cybus::IngressRoute.

  • New protocol added: Fanuc Focas

Changed

  • Admin UI: Service catalog display page is updated with categories and more pointers on how to create and deploy further services

Fixed

  • Modbus protocol: connection status not updating on half-open TCP socket

  • OPCUA Server: Increase large number of nodes that can be created

  • Documentatino: Update docs to reflect actual default for QOS on mappings

  • Admin-UI: Fix double upload needed on license upload

  • Admin UI: Fix system status page reload

  • OPC UA Server: fix OPC UA Server’s different endpoint specification preventing some client access

  • Commissioning files: Fix bug in circular dependency detection algorithm

What has changed in 1.0.22?

Added

  • Add local caching of valid license file so that offline instances can restart without additional license file handling

  • OPC UA Server: Added 64-bit integer number support

  • ADS protocol: Added data type conversion directly in endpoints

Changed

  • Docker: Change docker image tags to version number instead of git commit hash

  • OPC UA Server Historical Access: Use the original data timestamp when writing to influx database

  • OPC UA Server Historical Access: Improved retention policy handling

Fixed

  • OPC UA Server: fixing server behavior if MQTT broker is reconnecting

  • SQL protocol (MariaDB): Fix sql insertion when template variables contain non-ascii characters

  • OPC UA Server: Fix error on influx setup preventing OPC UA access at all

What has changed in 1.0.21?

This regular bugfix update improves the stability of the new OPC UA server considerably. Also, issues with MQTT connections, in Heidenhain protocol, and in the user interface have been fixed. And the first beta version of the Service Catalog for downloading services online from the Cybus Portal has been added - more content will be added there over the upcoming weeks and months.

Added

  • Admin UI: Added first draft of Service Catalog for installing services online from the portal

  • Docker resources: Add properties to limit CPU and memory usage

Changed

  • OPC UA Server: enable OPC UA secure channel by default. BREAKING CHANGE: Connectivity to OPC UA Server is now only possible by “SecuritySetting: Basic256Sha256, SecurityMode: SignAndEncrypt”

  • Modbus protocol: Improved error messages in case of modbus server disconnect

  • Update some npm dependencies packages

Fixed

  • OPC UA Server: Fix for nonexposure of Namespace metadata for cybus namespace

  • OPC UA Server: Fixed errors when more than one root node is specified

  • OPC UA Server: Fix error with array datatypes

  • OPC UA Server: Fix initialValue 0 not accepted

  • OPC UA Server: Fix slow endpoint creation if service contains also nodes

  • OPC UA Server: Catch errors and exceptions on starting OPC UA server if e.g. port is in use

  • MQTT and GenericVRPC protocols: Fix mqtt-package dependency to non-broken version 6.7.0 where the previous version 6.6.0 caused “Error: Invalid length” exceptions. The erroneous dependency affected Connectware 1.0.18, 1.0.19, and 1.0.20.

  • Heidenhain protocol: Fix endpoint schema to allow function call parameters on subscribe

  • Admin UI: Fix unsorted service overview table

  • Admin UI: Fix various mui-datatables deprecation warnings

  • Admin UI: Fix blank screen for service details if agent is offline

  • Admin-UI: Fix wrong character encoding on downloading commissioning files with non-ascii characters

  • Managed Appliances: Fix missing NODE_ENV in balena docker-compose file

What has changed in 1.0.20?

Another regular bugfix update of the Connectware. This time, some EtherNet/IP and MsSQL protocol issues have been fixed, some structure improvements with the OPC UA Server were added, and several overall stability improvements were implemented.

Changed

  • Admin-UI: On a Balena managed appliance, show a different link for updating

  • Agent performs version check upon connecting to central broker, for now just printing a clear log message on version mismatch, but in the future more automatic actions are being prepared.

Fixed

  • OPC UA Server: Simplify configuration to only define server and node, no more “parent node” resources. Various other configuration clarifications.

  • OPC UA Server: Several unhandled promise exceptions are fixed. Deviation tracking is fixed, too, and also UI representation.

  • Mssql protocol: Fixed host parameter which could not be changed on subsequent connection attempts.

  • EtherNet/IP protocol: Fix unhandled promise rejection on errors in scanning process

  • REST API: Fix client registration behaviour if username already exists

  • Authentication: Fix errors with username and rolename with spaces

  • Container handling: Fix annoying log error messages about unhandled promise rejections after containers have been restarted

  • Admin-UI: Fix crashing UI on deleting service in service overview

What has changed in 1.0.19?

This week’s bugfix update improves some issues in SQL (MariaDB) and Beckhoff ADS protocols, along with further stability improvements.

Added

  • Admin-UI: Let distributed agents show their versions in the Agent overview page

  • SQL protocol (MariaDB): Extend error reporting for when a query validation fails

Changed

  • Beckhoff ADS protocol: Adding id, timestamp and value to protocol output

  • ADS protocol: User documentation improved by explaining input/output message format in detail

  • Admin-UI: Make endpoint overview page faster for large number of endpoints

  • Admin-UI: Improve display refresh of system health page

Fixed

  • Beckhoff ADS protocol: Fix occasional segmentation fault on disconnect

What has changed in 1.0.18?

This week’s update release brings stability improvements and bugfixes, especially regarding service commissioning files with larger number of endpoints. Additionally, some user interface improvements were implemented, such as an improved license handling and some minor usability improvements when no services are installed yet, to get started even easier.

Added

  • OPC UA Server: New OPC UA server is added, available as Cybus::Server resource, using port 4841, along with historical access (using an InfluxDB internally). Documentation is still in preparation.

  • REST: Added /api/system/health endpoint which returns information about the connectware system container.

Changed

  • License file handling improved and better connected with Cybus Portal management interface

  • Admin-UI: Some UX improvement on empty connectware

Fixed

  • Bacnet: Updated bacnet code for improved stability and reliability

  • Service files: Enable enabling of a large number of endpoints (2000-3000 endpoints)

  • Service files: Fix cleanup on service rollback if service cannot be installed or updated

  • Service files: Fixed mapping resource validation on error

  • EtherNet/IP: programName property can now be null

  • EtherNet/IP: Optimized connectivity by removing watchdog in favor of reconnection logic in the scanning.

  • Beckhoff ADS: Fix problems with larger number of endpoints

What has changed in 1.0.17?

This week’s regular update release brings again several bugfixes, in particular related to the Beckhoff ADS protocol. Additionally, some user interface improvements were added, such as a notice about newer version availability on the Home section of the Admin-UI.

Changed

  • Admin-UI: Improve user experience for Internet Connectivity checking

  • Admin-UI: Display available newer versions on Home page

  • Admin-UI: Improve display of hostname in agent overview

  • MsSQL: Extend mssql read function to use templates, similar to mssql write function

  • MsSQL: Add property to skip SQL query format validation, to enable using specific MsSQL syntax variants

  • Installer: Add extra operation mode for installer to prepare offline installation files

Fixed

  • ADS: Fix Beckhoff crash by adding missing delete of async handler

  • ADS: Fixed subscriptions by choosing the correct subscribe mode

  • ADS: Update ADS client library from github

  • OPC DA: Improve wording for OPC DA error messages

  • Installer: Let the installer not logout if it was logged in before

  • Services: Fix missing termination condition when setting up state checking, related to the noted bugs

  • Services: On failing service update, improve cleaning up of resources for rollback

  • Startup: Fix blocked start-up of system-control-server by fixing an erroneous awk command in bootstrap script

  • Startup: Fix postgresql error message when User.read is called with empty userId

What has changed in 1.0.16?

Next regular update release with several bugfixes, in particular fixing an issue with resource persistance and also for OPC UA reconnection stability. Additionally, another new protocol OPC DA has been added, and plenty of small bugfix improvements make life easier in production use of the Connectware.

Added

Changed

  • Commissioning files: Allow more characters in serviceId and resourceId. For backward compatibility reasons, the rule for auto-generation of a serviceId is kept unchanged, so that an auto-generated serviceId is still all lowercase.

  • Admin-UI: Implement more details overview of currently used Connectware license

  • All protocols: Introduce versioning in protocol-mapper so that distributed agents can check for compatible versions

  • Installer: Improve installer script to self-contain the docker-compose file so that no extra download is needed anymore

Fixed

  • Severe bugfix in Admin-UI: Fix erroneous removal of listeners from service instances, causing breaking persistance of resources and unexpectedly restore of older resource versions on Connectware restart

  • Admin-UI: Fill the host/port field in the Authorize dialog and the Connection overview and detail pages for all protocols

  • Admin-UI: In the Grant Client Registry dialog, also display the requested roles

  • All protocols: Improve logging statements in protocol-mapper to let all contain context

  • All protocols: Fix partly broken subscription restore on reconnect by improving the Connection base class API, especially for OPC UA

  • OPC UA: Fix remaining issues with OPC UA reconnection behaviour to be much more stable

  • Pfannenberg: Fix polling data access, improve stability of subscribe data access

  • Modbus: Fix boolean datatype in modbus data

What has changed in 1.0.15?

A new regular update with several bugfixes, some performance improvements in the user interface, and even more stability in working with services. Also, a general SQL connection protocol has been added for connecting the MariaDB database.

Added

Changed

  • LDAP: Security and stability update. LDAP UTF-8 filter values now strictly required to be escaped following the XX hex notation (see LDAP Filters Documentation).

Fixed

  • Admin-UI: Fixing buttons in service detail page to appear automatically after enabling the service

  • Fixed buttons on service detail page that were broken after re-start

  • Admin-UI: In connection overview and connection detail page, show IP address also for various protocols like Heidenhain and Bacnet

  • Docker: Improve error message on failing docker image pull

  • GenericVRPC: Fixing issues with deleting resources

  • Beckhoff: Fix subscribe/unsubscribe in Beckhoff ADS

  • Fix race condition that caused corrupt resource persistence storage by ensuring that all persistence access is protected against race conditions

  • Admin-UI: fix missing error message display on volume deletion

  • Sinumerik: Fixed writing of Sinumerik teethCount parameter

  • Fix container-manager memory leak

  • Modbus: Fix typo preventing processing discrete input

  • Service Manager: Fixed instabilities after restart by improving resource polling for deviation detection

  • Service Manager: Fix endpoints to not get stuck in enabling state

  • Service Manager: Fix confusing short user/role deviation display at service startup

  • Fix sopas reconnecting

  • User docs: Fix spelling of protocol names in docs

What has changed in 1.0.14?

A new weekly regular update with several bugfixes, some performance improvements in the user interface, and much speed-up of enabling and disabling of services.

Changed

  • Make resource creation and deletion in parallel, and fix delete order. This significantly accelerates enabling and disabling of services

  • Clarify, clean up and improve parse rule in RuleEngine

  • Admin-UI: Improve UI performance for Endpoints

  • Update nodejs version to 12.18.4

Fixed

  • User docs: Improved documentation for MQTT_ROOT

  • User docs: The documented REST API health endpoint was not working as expected, but instead /api/system/info is available to be used for health checking, which is now documented better.

  • Admin-UI: Fix endpoint deletion in overview page

  • Improved genericVrpc to be resilient against instantiation order

  • Admin-UI: let all tables in the ui keep their local state to fix disappearing selection on state changes

  • Distributed agents: Fixed resource deletion on agents

  • SHDR: Fix endpoint key mismatch

  • Bacnet: Fix TypeError crash

  • Let persistence of objects ignore files with parsing errors

  • Pfannenberg: Fix crashes on mismatching object declarations

What has changed in 1.0.13?

Next weekly regular update with several bugfixes and performance improvements. Also, this release now includes the Pfannenberg protocol.

Added

Fixed

  • Admin-UI: Fix connection and endpoint pages when Agents get offline

  • Admin-UI: Fix container overview page selections by only updating on data change

  • Admin-UI: Fix toolbar button availability if multiple services are selected

  • Mapping: Further fix potential message duplication when multiple Mapping resources were subscribing to the same topic

  • Improve connection cleanup on endpoint disable by removing event listeners on state change

  • Bacnet: decrease verbosity in normal operation

  • RuleEngine: Fix parse rule for boolean values

  • ADS: removing unnecessary verbose error message

What has changed in 1.0.12?

The next weekly regular update with several bugfixes and performance improvements.

Changed

  • Improve stability at docker container handling by preventing race conditions on docker calls

  • Update node-red to 1.1.3

Fixed

  • OPC UA: Some bugfix at reconnection handling

  • Installer: Fix problems at removing old bootstrap container and image

  • Fix erroneous generation of default serviceId which allowed only a very restricted character set for metadata.name.

  • Admin-UI: In service detail view, make sure to show only matching connection, endpoint, mapping, not ones from other services.

  • Admin-UI: Fix missing parameter default value 0 which was not displayed in the configuration dialog

  • Fix resourceId parsing which is now allowed to start with a number, too.

  • Remove any mention of old log-server and device-dispatcher, fixing spurious DNS queries for those outdated hostnames.

  • Bacnet: Bugfix in logging statements

What has changed in 1.0.11?

Another regular update is published which brings further performance improvements and bugfixes. In particular, an annoying problem with duplicate messages after disabling and enabling services with mappings has been fixed. Also, the explorer window is working much faster right now, and more issues have been fixed, too.

Changed

  • Improved internal communication performance by switching internal mqtt connections to bestEffort (qos=0) usage, except for the non-local connection of a protocol-mapper agent to the connectware

Fixed

  • Increased performance of explorer view

  • Fix remaining duplicate subscriptions after disabling and enabling again any Mapping resource with more than one mapping

  • Fix wrong tooltips in toolbar of connection overview, and also fix endpoint and connection button functions

  • fixed installer in silent mode to be really silent

What has changed in 1.0.10?

This regular update release brings further performance improvements and bugfixes. The bootstrap container has been removed and its functions have been integrated into other containers. The new protocol Ethernet/IP has been added. The user documentation contains all example commissioning files as direct downloads.

Added

Removed

  • Move bootstrap functionality into system-control-server, removing bootstrap container completely

Changed

  • Auth-server: improve SQL queries for the user and role model to improve auth-server performance even more

  • User docs: Add hint about required license if examples use Docker image from Cybus registry

  • Implement license validation in system control server

  • Improve container log file download

  • Admin-UI: improvement for success and failure messages on service state changes

  • Admin-UI: Service deviation information is now aggregated in backend instead of frontend to improve performance and response time in UI

Fixed

  • Fix broken mapping rules for messages with non-JSON content. This was broken in 1.0.9 release, fixed in 1.0.10 release.

  • Admin-UI: Fix endpoint display in service details to show only relevant subset

  • Installer: fix installer in offline mode if docker-compose.yml is the same file

What has changed in 1.0.9?

With this release, performance for complex systems has been improved significantly. Additionally, numerous improvements in the Admin-UI and overall stability fixes have been included. Also, the installer will now remove old unused Docker images of previous Connectware versions, decreasing disk size usage and improving stability, too.

Added

  • UI Explorer view: Data values which are JSON objects can be copied to clipboard by clicking on a newly introduced Clipboard icon, see Copying Data to Clipboard

Changed

  • Installer: Add removal of old docker images after pulling the newest ones.

  • Update vrpc to 2.1.6 which also improves instance creation performance, so that now at least 200 endpoints can be handled quickly, with more to come

  • Improved API of genericVrpc protocol (subscribe now uses id instead of callback)

  • Improve change-of-value (cov) filter behavior. The COV Filter should now work as expected, independently from its position in the rule chain.

  • Use the native redsocks instead of our custom container in Balena release

  • The qos level for all internal MQTT connection was set to default 0 (zero) to improve overall connection performance.

Fixed

  • Admin-UI: hide private (internal) roles in user overview upon sorting

  • Admin-UI: List view sorting and selection is not reset quickly anymore

  • Admin-UI: fix UI hang in resource/connection view if internal connection exists

  • Admin-UI: Fix log time display to use range 0..23 hours instead of 1..24

  • Installer: fix erroneous usage of curl if only wget is available

  • Mappings: fix incomplete removal of mappings causing duplicate connections (“zombie connections”)

  • Fix balena-iso-config-configuration

  • Protocol Mapper: Endpoint waiting for connection now works more than once

What has changed in 1.0.8?

This release includes various stability and ease of life improvements as well as slightly more compact file size of the docker images of the Connectware.

Changed

  • Reduce docker image sizes and application package by partly compiling application source code and javascript libraries

  • Reduce connectware networks to only one. Also, change default network mask to a slightly less common IP range 172.30.0.0/24

  • Improve error log message on endpoint creation if endpoint does not find its connection, to simplify debugging

Fixed

  • OPC UA protocol: OpcuaEndpoint allows either nodeId or browsePath, where it previously required nodeId alone, but now allows either of both.

  • Mapping: Fix MQTT message handling with named wildcards, which previously stopped working after the first message, but now works correctly.

  • Fix erroneous deviation message on user or role permissions which contain pseudo-parameters

  • Admin-UI: fix various UI problems when deleting individual resources: Fix delete button of connections, fix deletion of endpoints, fix display update of volume list after deleting a volume

  • Documentation: Fix explanation of parameter section in commissioning file

What has changed in 1.0.7?

This release brings a large number of stability improvements and better explanations in the user documentation.

Added

  • HTTP protocol: Added options to configure client certificates (SSL) and certificate policy

  • Licensefile can be uploaded to system control server by REST endpoint

  • Sinumerik protocol: Data point “number of teeth” added

Changed

  • User documentation improved for protocols Http, Modbus, Sopas, and for Connection resource

  • Admin-UI: User interface has been refactored and improved for better performance in Service, Connection, Endpoint, Mapping view

  • Update node.js to latest 12.18.3

Fixed

  • Admin-UI: Fixed displaying of information when an external broker is involved during mapping

  • User documentation: HTTP permission explanation improved

  • Fix integer type interpretation of Cybus::MqttPort parameter

  • Admin-UI: serviceId parameter description fixed in configuration dialog

  • Admin-UI: favicon size set correctly in manifest

  • Admin-UI: button tooltips added where missing

  • Admin-UI: fixed issues with role names from commissioning file

  • Fix yaml schema to allow qos and retain options at mapping and endpoint resources

  • Fix missing docker label at bootstrap container

  • Performance fix when creating larger number of services

  • Fix authorization of REST calls with query string

What has changed in 1.0.6?

This release includes various stability and ease of life improvements as well as new features regarding service updates and configuration as well as agent tracking.

Added

  • Enabled in-place update of service parameters and/or commissioning files

  • Agents are being tracked and emit messages on deviation

  • Possibility to specify qos and retain options for MQTT within mapping configuration

Changed

  • Documentation regarding Connectware users and services has been improved

  • Sinumerik initial compatibility checking of OPC UA server has been improved

  • Node.js updated to 12.18.2, node-red workbench updated to 1.1.0

Fixed

  • Fixed authentication limitations under load (PostgreSQL communication improved)

  • Fixed issue with subscribe topic resolution on wildcard ‘#’ mapping when published on parent

  • Fixed UI problem when pressing escape key in roles dropdown

  • Fixed issues with API calls to POST /services when used in combination with targetState: enabled

  • Fixed problems on disabling or deleting mappings in UI

What has changed in 1.0.5?

This release was skipped due to QA issues. The changes are listed in the 1.0.6 release.

What has changed in 1.0.4?

Feature updates and maintenance: Two new protocols have been added, Sinumerik and Beckhoff ADS. Also, many stability improvements have been implemented, along with regular bug fixes and UI improvements.

Added

  • Protocol implementation for Sinumerik controls

  • Protocol implementation for Beckhoff controls (ADS protocol)

  • Implemented mutual TLS authentication for MQTT

Changed

  • Improve date/time format in filename of log download

  • Prohibit deletion of admin user and connectware-admin role in admin-ui and REST API

  • REST API call correlation-id is renamed to id according to JSON-RPC

  • user documentation: sample commissioning files improved

Fixed

  • S7 protocol write method was dropping data on high load, now fixed

  • Fix selection of correct service in admin-ui service view

  • Fix burst rule in rule engine

  • user documentation: fix missing parts of Heidenhain protocol

  • Fix auth-server lock-up due to issues with PostgreSQL connection handling

  • Fix issues on disabling Werma connections

  • REST API service delete is fixed

  • Fixed issue in incomplete disabling of mapping resources

What has changed in 1.0.3?

The Heidenhain protocol has been added and further stability improvements have been implemented, along with regular bug fixes and UI improvements.

Added

  • Heidenhain protocol has been added and completed in 1.0

  • Log files can be downloaded as .csv files from UI

  • Installer script has alternative offline installation mode

Changed

  • Node-RED version in workbench updated to current 1.0.6

  • More npm dependencies have been updated to current versions

  • Updated CI pipeline with Balena OS VM images build and push

Fixed

  • Fix all warnings from react in admin-web-app

  • Fix problem with topic construction on unsubscribe

  • Installer script checks even more for potentially missing Internet connection

What has changed in 1.0.2?

Stability improvements with some bug fixes.

Changed

  • The node.js version is upgraded to 12.18.0 which includes security updates

Fixed

  • Service count number on home page view is fixed

  • REST API-based creation and deletion of services is now integrated correctly with admin ui

  • Topic generation in BACnet is fixed

  • OPC UA re-subscription which failed in certain re-connection scenarios is now fixed

  • S7 data write format is fixed

What has changed in 1.0.1?

Minor bug fixes with improved stability.

Added

  • Added Rest API for Cybus::Link resource at /services/links

  • Addded Agent view in Admin Web App so users can view currently connected agents

Fixed

  • Fixed general bugs in Cybus services swagger files

  • Fixed issues with 0 or false values in default parameters in service files

  • Fixed issues with protocol mapper with a number of issues fixed in the MSSQL protocol

What has changed in 1.0.0?

This is the first 1.0 stable release in the 1.0 series of the Connectware! Data governance and connectivity from the shopfloor to the enterprise is now easier and more reliable than ever.

The general changes compared to 0.x are explained in the page General changes from 0.x to 1.0. For upgrading and migrating, see Upgrading from 0.x to 1.0.

This Changelog describes the incremental changes between each different patch version.

Changes from last beta version

Changed

  • Unify swagger filenames to swagger.yaml everywhere

  • Update node.js in protocol-mapper to 12.16.x

Fixed

  • Clarified constraints on username/password length in UI and REST API

  • Improved OPC UA reconnect behaviour

  • Mapping resource to respect the state of external MQTT connections

  • Fix erroneous handling of service id in REST API

  • Improved SOPAS sopas reconnection behaviour

  • Fixed performance of frontend adding separate event-backends in react-vrpc, unmounting views not seen in details view, filtering results in parent components and separating state changes into smaller components

See General changes from 0.x to 1.0 and Upgrading from 0.x to 1.0