.. _user/changelog: ########################### Changelog and Upgrade Guide ########################### This page lists all relevant changes in regular version updates. ************************** What has changed in 1.6.0? ************************** Added ===== **Performance & Scalability:** - Updated service behavior to allow immediate HTTP connection attempts upon enabling. **Usability & Accessibility:** - Redesigned the interface for an improved user experience and easier workflow. - Improved error handling when updating an existing service. - Introduced a validation endpoint ``/api/validate/service`` to ensure correctness of Service Commissioning Files and enhance error detection. **Monitoring & Resilience:** - Service Manager is now more resilient on larger deployments. - Better VRPC timeout flexibility to improve support for large-scale deployments. - Improved data flow recovery in services, ensuring consistent data publishing resumes after any disruptions. Fixed ===== **Security & Stability:** - Updated the admin-web-app image to ensure the Frontend remains accessible when started as the root user. - Fixed access issues for MFA-enabled users, ensuring they can now access the workbench. **Usability & Accessibility:** - Enabled successful DateTime write operations to OPC UA variables, ensuring accurate updates on the server. - OPC UA write endpoint returns error on failing writing attempts when data types are mismatching. **Maintenance & Adaptability:** - OPC UA StatusCode for variable values is now accessible for read endpoints. **Monitoring & Resilience:** - Improved system resilience by ensuring smooth service enablement and stable Protocol-Mapper operation, even when custom protocol agents are absent during Service-Manager restarts. ************************** What has changed in 1.5.0? ************************** .. warning:: This release requires manual upgrade steps. Please read :ref:`user/upgrade-1-5` carefully! In the latest version of Connectware, version 1.5.0, we've enhanced our approach to using elevated system permissions. Our focus is on improving security by adhering to the principle of least privilege across our software components. As part of these improvements, we've altered the system user account under which certain containers run. To successfully upgrade to Connectware 1.5.0 or later, you'll need to follow some additional update procedures. Follow this link for information how to upgrade: .. toctree:: upgrade-1-5 :maxdepth: 1 Added ================== **Security & Stability:** - Lowered system user privileges across several containers for enhanced security - Altered the internal ports for Connectware containers; external access remains unchanged on the original ports - Enhanced broker resilience to handle unexpected shutdowns more effectively - Enabled MQTT clients with persistent sessions to have their QoS 0 messages stored by the broker, minimizing message loss even for QoS 0 subscriptions (disabled by default) **Usability & Accessibility:** - Implemented message deduplication for MQTT clients with overlapping subscriptions to prevent message duplication across matching topics (enabled by default) **Monitoring & Resilience:** - Revised the logging format of our broker to incorporate the current date for better tracking Fixed ================== **Monitoring & Resilience:** - Container logs can now be displayed when third party workloads are present in the same Kubernetes namespace *************************** What has changed in 1.4.1? *************************** We've fixed a bug causing some endpoint resources to be hidden when intentionally disabled. Now, after updating, all disabled endpoint resources will show up as expected. Fixed ================== - Protocol Mapper: Fixed a bug that caused endpoint resources to not be displayed if they were explicitly disabled. *************************** What has changed in 1.4.0? *************************** Users can now enable MFA (Multi-Factor Athentication) for their login process. The HTTP server has been upgraded to seamlessly request MQTT credentials through GET requests. Added ================== - Admin UI: MFA support - Auth Server: MFA support - Protocol Mapper: added GET support for HTTP server Fixed ================== - Protocol Mapper: Fixed problems related to MaxListenersExceededWarning - fixed wrong OAuth access token format for HTTP client - Reconnection of OPC UA connections is much faster now - Child services do not stay in deviation when parent service got updated *************************** What has changed in 1.3.2? *************************** .. warning:: Parts of this release affect required UI permissions. Please ensure to incorporate them in case you are using custom roles. Users can now change their password using the settings page. MQTT shared subscriptions can now handle rule engine context variables, and we have improved error messages. For Kafka, we have fixed issues related to connecting to servers over TLS and improved the OPC UA Server behavior during startup. Furthermore, we have significantly optimized overall resource consumption and our Fanuc Focas protocol integration now supports AddressType E for even heavier lifting ;-) Fixed ================== - Admin UI: Consistent language throughout the whole product (EN) - Admin UI: Changing password using settings page - Protocol Mapper: Significantly improved overall resource consumption - Protocol Mapper: Fixed handling of rule engine context vars with MQTT shared subscriptions - Protocol Mapper: Fanuc Focas - Adjusted configuration to support additional address types - Protocol Mapper: HTTP - Fixed auto generated endpoint topic name - Protocol Mapper: HTTP - Fixed missing error message on failed post request at TCP level - Protocol Mapper: Kafka - Fixed connecting to server using TLS - Protocol Mapper: OPC UA Server - Fixed potential race condition during startup *************************** What has changed in 1.3.1? *************************** | We're excited to bring you a set of essential fixes in this update of Connectware. | This update addresses an issue where optional parameters in Write Endpoints were not functioning as intended. It also resolves a bug that prevented proper parsing of MQTT payloads into JSON-compliant representation. | Fixed ================== - Protocol Mapper: Fix missing payload parsing for endpoint resource read operation - Protocol Mapper: MQTT - Fix payload send to broker to be JSON compliant *************************** What has changed in 1.3.0? *************************** | Introducing the latest version of Cybus Connectware! | This release brings exciting new features and important fixes to enhance your experience. | | With the updated Admin UI, you now have the ability to filter logs by date and type, providing easier navigation and analysis. We have also made styling enhancements for a more seamless and visually appealing interface. In addition, the Auth Server now supports LDAP authentication, ensuring secure user access. The Broker now includes MQTT 5 simple authentication support, and the Protocol Mapper introduces MQTT 5 shared subscription support. We have also addressed various issues, including notification rendering, message delivery, and duplicate message retrieval. | | Upgrade now to enjoy the enhanced capabilities of Cybus Connectware! | Added ================== - Admin UI: Introduced ability to filter logs by date and type - Admin UI: Overall styling enhancements - Auth Server: LDAP support - Broker: MQTT 5 simple authentication support - Protocol Mapper: MQTT 5 shared subscription support Fixed ================== - Admin UI: Fixed notifications sometimes not being rendered correctly - Broker: Fixed some messages not being delivered under certain configurations - Protocol Mapper: ADS - Fixed retrieval of duplicate messages after reconnection *************************** What has changed in 1.2.1? *************************** | We are excited to announce the release of Version 1.2.1 of our product, packed with powerful enhancements and optimizations. | This release focuses on significantly improving the overall message throughput performance, ensuring a faster and more efficient user experience. | | Enhanced Message Processing: We have fine-tuned the underlying algorithms and systems to streamline the message processing mechanism. | | As a result, you will notice a substantial increase in the speed at which messages are handled, leading to quicker response times. | Added ================== - Protocol Mapper: Optimized overall message performance *************************** What has changed in 1.2.0? *************************** | We're excited to announce the release of version 1.2.0, which brings a whole new User Interface,as well as a range of improvements and bug fixes to our Factory Data Hub. | | The whole new User Interface, with a sleeker, more intuitive and modernized design,enables a better overall experience managing your assets. | We've enabled support for horizontal scaling on the Auth Server, which will allow it to handle an increased workload as needed. | Additionally, we've fixed some issues related to registering Agents using mTLS, which will help streamline the authentication process. | On the Protocol Mapper side, we've added support for OPC UA Server Historical Access StartBound aggregation, a configurable probe timeout to HTTP Connection resources, and the ability to send binary data on HTTP Write Endpoints. | We've also improved deviation detection for Kafka protocol write operations, which will enhance the ability to detect and address any anomalies that may occur during data transmission. | Lastly, some infrequent broker issues related to publish authentication timing were resolved, which significantly improved the reliability of message delivery. | | Overall, these changes aim to improve scalability, historical access, binary data transmission, and fix bugs, resulting in a smoother and more reliable user experience. | Added ================== - Admin UI: Completely revamped look, to get you where you want to be faster, with new in-app explanations and contextualization about the Connectware. - Admin UI: User Management UI is now faster, with better warnings for dangerous commands and a more intuitive usage and search - Auth Server: Enabled support for horizontal scaling - Protocol Mapper: Added support for OPC UA Server Historical Access StartBound aggregation - Protocol Mapper: Added configurable probe timeout to HTTP Connection resource - Protocol Mapper: Added support of sending binary data on HTTP Write Endpoint Fixed =========== - Admin UI: Will no longer crash if a user goes from a mapping details to the services page - Admin UI: Change password form now displays the correct error message when using the wrong credentials to perform an operation - Admin UI: Now better explains server unavailability errors - Auth Server: Fixed issues when registering Agents using mTLS - Broker: Fixed rare publish authentication timing issues - Protocol Mapper: Deviation detection for Kafka protocol write operations now works as expected *************************** What has changed in 1.1.5? *************************** This release includes improvements to the MQTT broker to improve authentication handling, cluster formation, and logging improvements. Additionally Protocol Mapper uses a better strategy in cases when Broker is restarted for maintenance or due to migration of Broker Pods. Added =========== - Broker: make authentication more resilient - Broker: improve cluster formation to make it more deterministic - Broker: Investigate and implement possible robustness improvement around read-only filesystem - Kubernetes: Increase terminationGracePeriodSeconds for Broker and Control Plane Broker StatefulSets - Protocol Mapper: improve resilience when connection to the Broker is temporarily lost *************************** What has changed in 1.1.4? *************************** This release includes a fix for mTLS and improvements to the Broker and Auth Server. Fixed =========== - Connectware: add support for docker compose plugin - Protocol Mapper: fix potential data loss in Mappings - Protocol Mapper: fix mTLS authentication for Mappings Added ================== - Protocol Mapper: correct log texts - Auth Server: retry mechanism for migration in case of failure *************************** What has changed in 1.1.3? *************************** This release includes a fix for the Server resource type and fixes for Agents' credential handling Additionally we now support certificates using SAN for mTLS authentication and we expose some variables to configure the duration of broker authentication and authorization results. Fixed =========== - Protocol Mapper: agents crash after registering with CYBUS_PROTOCOL_MAPPER_PASSWORD environment variable set - Protocol Mapper: improve credential management in Agents when using custom password rules - Protocol Mapper: improve credential management in Agents using mTLS when the registration process is aborted - Protocol Mapper: avoid potential crash when HTTP Server resource attempts to bind multiple times to its TCP port Added ================== - Auth Server: make cache timeouts for broker auth endpoints configurable - Ingress Controller: added support for certificates using SAN - Kubernetes: Use podAntiAffinity to schedule broker pods on different K8s nodes - Kubernetes: Make broker volume sizes configurable - Kubernetes: Expose cache timeouts for broker auth endpoints environment variables *************************** What has changed in 1.1.2? *************************** This release includes a fix for credentials handling for resources of type Server and Node in Agents in the case of restarts. Fixed =========== - Protocol Mapper: Fix incorrect handling of credentials for Server and Node resources causing authentication errors *************************** What has changed in 1.1.1? *************************** This release increases the performance of the MQTT protocol both internally and when used in Services. Added ================== - Protocol Mapper: Increase performance of MQTT protocol *************************** What has changed in 1.1.0? *************************** This release increases the reliability and resilience of Connectware, especially when run in Kubernetes and in high load scenarios. Many of the changes also benefit deployments that run in Docker. The changes include updates to the Admin UI, improved Helm chart usability and improved stability and connectivity of Connectware services. *When you upgrade Connectware to version 1.1.0, all services are disabled. After upgrading, you must enable the services that you want to use again.* Added ================== - Admin UI: You can now load resources via HTTP instead of WebSocket for most resources - Admin UI: Refresh license button on offline installations is now disabled - Admin UI: Loading times for resources on the User Management page have been improved - Admin UI: Users without management access can now access the detail pages - Admin UI: Improved error messages when installing commissioning files that contain errors - Broker: Cluster join/leave logic has been improved - Container Manager: You can now use HTTP endpoints to start/restart/stop containers by specifying their identifier - Implement optional MQTT traffic decoupling for Control Plane & Payload Data by using different brokers - Kubernetes: Add Helm value to configure storage class - Kubernetes: Add common Helm value for mTLS and enable mTLS in control-plane-broker - Kubernetes: Change default access mode for postgres volume to ReadWriteOnce and introduce configuration option - Kubernetes: Add Helm configuration for securityContext - Kubernetes: Change Helm podResources to allow setups without limits - Kubernetes: You can now configure the protocol-mapper resource requests/limits via protocolMapperAgent - Kubernetes: Support for Helm best practices labels - Kubernetes: Support labels and annotations for resources with Helm installation - Kubernetes: Added init container to broker that checks Kubernetes API availability - Protocol Mapper Agent: Enable support for mTLS registration/authentication - Protocol Mapper: The resource Cybus::HttpServer now accepts configurable payload sizes of up to 512 KB - Service Manager: Services Graph is now enabled by default Fixed =========== - Admin UI: Custom topics are now displayed on the Explorer page - Admin UI: Stopping multiple containers now works as intended - Admin UI: You can now remove endpoints that are enabled - Admin UI: Rule Engine Sandbox and Mapping fix unexpected failure when non-JSON message is processed in transform rule - Admin UI: It is no longer possible to remove critical certificates from the Certificates page - Broker: MQTT clients are no longer interrupted and continue all operations when broker cluster nodes are down or not fully initialized - Service Manager: Restarting the Broker no longer makes Connectware Services unreachable - Protocol Mapper: Services with deviated connections are now displayed as deviated - Protocol Mapper: Kafka consumer no longer blocks execution on connection loss - Protocol Mapper: OPCUA value sanitizer now handles previously undetected errors *************************** What has changed in 1.0.93? *************************** This release includes an enhancement to the HTTP protocol that allows the user to overwrite the `path` property of write endpoints. Task completed ================== - Added support for overwriting the `path` property for HTTP write endpoints *************************** What has changed in 1.0.92? *************************** This release includes an enhancement to the Modbus protocol that allows the user to overwrite the `unitId` configured in the Connection resource by using the new optional `unitId` property of an Endpoint. Task completed ================== - Added support for multiple Modbus TCP UnitIDs per Connection *************************** What has changed in 1.0.91? *************************** This release fixes a problem in the broker cluster management logic which could cause broker state data (for example subscriptions and retained messages) to be lost upon restarts or updates of the Kubernetes Cluster which subsequently leads to disturbed inter-service communication of Connectware. Only customers using Kubernetes were affected by this behavior. Task completed ================== - No features were changed in relation to 1.0.90 Bugs fixed =========== - Broker: during shutdown of broker cluster nodes last node does not keep MQTT session state *************************** What has changed in 1.0.90? *************************** This next release brings several improvements to the Admin UI, Backend and Infrastructure components, most significant changes include better handling of slow networks on the Admin UI, introduction of a module to better handle inter Service dependencies to avoid service enabling issues and better Broker cluster formation logic. Additionally documentation and several other improvements were done on different areas. Task completed ================== - Admin UI: MQTT topic subscription should verify the available topic depth, otherwise the connection is silently dropped - Admin UI: Certificates without common name \(CN\) don't show anything - Admin UI: Validate Mqtt Publish Prefix on the user management UI on whether it is allowed by current user permissions - Admin UI: Revise Material UI theming - Admin UI: Replace UI Webpack bundler with Parcel - Documentation: Parse Rule provide sample commissioning file - Documentation: SetContextVars Rule provide sample commissioning file - Documentation: COV Rule provide sample commissioning file - Documentation: Burst Rule provide sample commissioning file - K8s: Add feature toggle Helm value to control Services Graphs enabling - Protocol Mapper: support PATCH method for HTTP write endpoints - Protocol Mapper/Auth-Server: log message if topic depth of MQTT topics exceed the configured limit - Service Manager: introduce Services Graph to keep persisted state of inter service dependencies - Service Manager: enable circular dependencies in Services Graph to account for edge case in services update - Service Manager: make the service-graph bootstrap optional Bugs fixed =========== - Admin UI: better handle unstable/slow networks scenarios - Admin UI: Data is not flowing under explorer tab - Admin UI: Wrong error is shown when bad client registry request is allowed to register - Admin UI: Mapping data preview for external brokers doesn't make sense - Admin UI: Random VRPC timeouts might generate false-positive error - Admin UI: Catch and display more errors on the Explorer that were previously ignored - Container Manager: System > Status on Kubernetes does not work when there are unscheduled pods - Documentation: fix inconsistency in number of resources - Admin UI: Explorer non-selected custom topic vanish on page reload - Protocol Mapper: improve error handling on MQTT protocol - Service Manager: incorrectly identifies disabled services as removed - Service Manager: storage for service-graph needs to handle different container run times *************************** What has changed in 1.0.89? *************************** This next release brings several improvements to the Admin-UI, switches Connectware to use Cybus built binaries and Docker images for the MQTT Broker, improves documentation for several rules including examples that can be installed directly and many internal fixes and enhancements. Task completed ================== - General: Connectware now uses binaries and Docker images built by Cybus for the MQTT Broker - Admin UI: Improve metrics presentation - Admin UI: User now gets a notification after service is created instead of being redirected to the installed service - Admin UI: Improve schema error messages styling - Admin UI: Clicking on a Service row on the Service Link page now takes the user to the service - Admin UI: Added information about topics defined in the endpoint on the Endpoint page - Auth Server: Additional verification of username against CommonName for client registration using CSR - Documentation: Improve Transform Rule Documentation - Documentation: Improve Filter Rule Documentation - Documentation: Improve Stash Rule Documentation - Documentation: Improve Collect Rule Documentation Bugs fixed =========== - Admin UI: Mapping's MQTT client shows error - Admin UI: Confusing dialog when activating interdependent services - Admin UI: Deviation Snackbar overlaps the main menu when a lot of deviations are given - Admin-UI: While updating password, change password button is not getting enabled - Admin-UI: Some images in service catalog depend on cybus.io - default image URL needs to be changed - Admin UI: Browser error on viewing mapping entries - Admin UI: Non clear error is displayed when attempting to remove token authentication method from admin user - Admin UI: Expired tokens not removed from the browser's local storage - Helm Chart: Split cybus-broker-cluster-reader role permissions to avoid requesting non-default APIs - General: Timeout error on bulk deletion of 10 or more services in the UI in K8s - Container Manager: Creation of Cybus::File fails with "\(HTTP code 404\) no such container - No such image: alpine:3.15" - Protocol Mapper: OPC UA Client Int64 and UInt64 values are represented as array on MQTT topic *************************** What has changed in 1.0.88? *************************** This next release brings improvements in protocol-mapper for Kafka, OPC UA Server, improvements on service management for some resource types, general fixes on the Admin-UI, Mappings now support the usage of label templates. Task completed ================== - Add missing "topic" property to Cybus::Nodes - Invalidate the auth-server cache after database restore. - Support database backup\+restore from older to newer versions - User Management: On Add/Edit user add validation hints for username - Allow wildcard templates in subscription label of Mappings - Add requirements and prerequisites to Backup & Recovery feature - Sort JSON fields in mappings Bugs fixed =========== - Kafka connector better handling of edge cases on subscribe/unsubscribe - OPC UA Server restart resource instance on protocol-mapper restart - Improve CSR validation when registering clients - OPC UA Server improve handling when errors occur during deployment - Metrics submission improve behavior by showing/hiding controls based on permissions - Improve handling of expired tokens in the Admin App *************************** What has changed in 1.0.87? *************************** This next release brings improvements in protocol-mapper for input buffering, improvements on service management performance, general fixes on the Admin-UI, Kafka protocol and other aspects of service internals. Task completed ================== - Protocol-mapper (high-severity bugfix): The new *input buffering* feature (introduced in version 1.0.86) is now disabled by default to ensure unchanged behaviour by default, but can be (and should be) enabled for specific :ref:`endpoints `, :ref:`mappings `, and :ref:`nodes ` if there is a risk of running out-of-memory due to high input data rates. - Admin-UI: Add total number of resources in table view's pagination label - Admin-UI: In the service enabling dialog showing the authorizations, the topic subscriptions of mappings are now shown in a more detailed way - User docs: For COV rule, clarify documentation as it is working for exactly one topic but not multiple topics - User docs: Improve documentation of inter-service referencing Bugs fixed =========== - Admin-UI: Fix error when trying to remove a MQTT publish prefix again - Admin-UI: Fix when using the application with a minimum access role, where an error of subscription issue was displayed - Admin-UI: On updating a service, fix previously configured parameter values to be correctly re-used even if the parameter has no default value - Admin-UI: Fix field "Confirm password" field if the "confirm password mode" is toggled, so that the password is not unintentionally auto-filled - Kafka: Fix headers in consumer to be rendered as a string and not erroneously as a Buffer - Auth-Server: Fix wrong response code 400 when no username is set, so that error log messages are significantly more understandable - Auth-server: Fix potential crash on unexpected error messages - Installer: Detect if docker was installed via snap and fail with clear error message in this case - Kubernetes: Fix very slow service enabling/disabling if there is a large number of users in the database - Fix inter-service dependency problems in case the broker container has been restarted - Fix client registry (explicit workflow) for the case using certificates with username/CSR *************************** What has changed in 1.0.86? *************************** .. note:: This version 1.0.86 has the new *input buffering* feature enabled by default and for all endpoints, which can lead to changed behaviour and unexpected message drop with certain rule engine rules (especially the *burst* rule), hence use version 1.0.87 instead where this feature is disabled by default. Our next maintenance release brings an important bugfix in protocol-mapper for high data rates, some improvements in Rules, Mapping, and Kubernetes orchestration, and overall bugfix and stability increases. Bugs fixed =========== - Protocol Mapper (high-severity bugfix): Fix out-of-memory exception on high data load by introducing a controlled *input buffering* behaviour for :ref:`endpoints `, :ref:`mappings `, and :ref:`nodes `. This change introduces new properties on those three resources, most importantly ``inputBuffering.maxInputBufferSize`` (default: 5000). This value describes the maximum message burst size that can be received and are waiting to be processed, before messages have to be dropped. The value is set individually on each endpoint, mapping, or node resource. If message are being dropped, there will be a warning log message `Dropped message(s) for topic ... due to maxInputBufferSize exceeded`. In that case, you should increase the `maxInputBufferSize` parameter for the resource in question. - Admin-UI / auth-server: Fix broken password change for admin user in user management page - Rules: Fix parse rule with format ascii to also handle literal numbers - Admin-UI: Fix button for "upload metrics" that used to work only when clickingon the home page first - Mapping: Fix broken named wildcard handling on first level of mapping topics - Service files: Fix missing endpoint yaml schema validation for buffering properties - User docs: Fix / clarify needed permission settings for mqtt clients with topic prefix - User docs: Fix minor typo in backup and restore documentation Task completed ================== - Rules: Improve error message if the transform rule encounters a failure - Auth-server: Implement new listUsers endpoint with pagination and readAll method to fix performance with higher number of users - Protocol-mapper: Endpoint output buffering is now printing log messages into docker log upon dropping message during disconnect - Kubernetes: Remove persistent volume claim that is no longer needed in protocol-mapper - Kubernetes: Add detection of missing k8s API permissions during startup, if helm chart permissions updates were missing - Admin-UI: Hide service's auto generated roles in dialog when adding role to user *************************** What has changed in 1.0.85? *************************** This next release brings a small but important bug fix that solves issues with resources deviation tracking, affecting versions 1.0.83 and 1.0.84. Bugs fixed ========== - Fix deviation tracking that was broken on subsequent enabling of services (affecting 1.0.83, 1.0.84) *************************** What has changed in 1.0.84? *************************** .. note:: This version 1.0.84 is affected by a bug preventing deviation tracking after multiple service enabling, hence use version 1.0.85 instead! Our next maintenance release brings improvements in the Admin UI, in HTTP connections, and also some important bugfixes in Mappings and for Kubernetes deployments. Tasks completed =============== - HttpConnection: Added option for dynamically :ref:`setting the path ` in HTTP/REST read endpoints - Admin-UI: Add UI for database backup and restore - Admin-UI: Add Mqtt Publish Prefix documentation link on User Management forms - Admin-UI: Improve dialog screen when license cannot be validated - HTTP Server: Cleanup of remaining issues: additional content-type, timestamp, documentation clarification - OPC UA client: Filter incoming OPC UA Events by EventType - User docs: Clarify usage of :ref:`user/agents`, in particular also handling of :ref:`connection loss ` - Auth-server performance: Optimize the MQTT subscription authorization Bugs fixed ========== - (High-severity bugfix) Fix failing Mapping subscriptions when overlapping wildcard topics exist. This bug affects versions 1.0.79 until 1.0.83 and could lead to Mappings not receiving data if topics with wildcards exist in overlapping ways. This can only be avoided by taking into account multiple duplicate messages in that situation, as :ref:`explained here `. - Auth-server: Fixing crash when /users/batch POST request is sent with duplicated username - Sopas protocol: Reduce log verbosity by correctly setting non-debug log level - Kubernetes: Fix usage metrics collection that was broken on multi-node broker cluster - Kubernetes: Fix initial connection failures of agents, causing errors about not being able to create resources on agent *************************** What has changed in 1.0.83? *************************** .. note:: This version 1.0.83 is affected by a bug preventing deviation tracking after multiple service enabling, hence use version 1.0.85 instead! This next regular release brings new features in the :ref:`Kafka ` protocol connector, as well as an important bugfix and change about unifying the service and resource persistence. Additionally, a minor bug in the COV rule has been fixed and overall stability has been improved. Tasks completed ================ - Kafka protocol: Implementing :ref:`Kafka consumer ` (i.e. receiving data) Bugs fixed =========== - Service persistence: Unifying service and resource persistence by moving this information from separate protocol-mapper volume(s) to everything in service-manager. Now all persistence information about services and resources is stored in one common place, namely in the :ref:`service-manager volume ` and not any longer in any protocol-mapper volume. The protocol-mapper volume is now not used anymore. Upon upgrade, all change happens automatically and no action needs to be taken. - Rule Engine: The :ref:`Change-of-Value (COV) rule ` in its `keys` property now also accepts integer values in addition to strings. *************************** What has changed in 1.0.82? *************************** Our next weekly maintenance release brings a set of bugfixes in the Admin-UI, some internal updates now using Node.js 16, and overall stability improvements. Bugs fixed ============ - Admin-UI: Add missing Cybus::Server::Http resource in server list in the frontend - Admin-UI: Fix button on service update form to not be enabled when it should not - K8s: Adapt service manager so that commissioning files with unavailable k8s features give a clear error message Tasks completed ================= - Upgrade to NodeJS 16 *************************** What has changed in 1.0.81? *************************** This maintenance release fixes a bug potentially causing a service-manager crash in high-load scenarios, hence we released just this bugfix release quickly. Bugs fixed =========== - (High-severity bugfix) Fix crash in service-manager or other microservices due to missing sanity checking in the CPU/memory monitoring feature. The respective error message in the logs is "SyntaxError: Unexpected token { in JSON", causing a restart of the respective container. The bug affects versions 1.0.79 and 1.0.80 but is fixed now. - S7: Fix writing boolean value "false" which was failing *************************** What has changed in 1.0.80? *************************** .. note:: This version 1.0.80 is affected by a bug potentially causing instabilities, hence use version 1.0.81 instead! This next maintenance release brings significant stability improvements on Kubernetes deployments, adds a :ref:`HTTP/REST server ` for POSTing data to the Connectware, makes the password policy visible when changing password, and brings a set of further bugfixes and stability improvements. Task completed ============== - Implemented :ref:`HTTP/REST server ` to PUT/POST data to the connectware. (Known issue: The Admin-UI frontend does not list a HTTP server resource in the list of "Servers" - to be fixed in the next release.) - Admin-UI: Improved password dialog to show password policy when entering a new password - Admin-UI: Change deviation popups to custom snackbar with link to the list of deviations - Admin-UI: Show uptime column in container views Bugs fixed =========== - K8s: Fixing :ref:`initial admin password ` issues in Kubernetes/Helm that might be processed wrong if containing special characters. Concerns only deployments using Helm charts using the initial admin password setting: In that case, this is a BREAKING change as the password must now be given in base64 instead of plaintext. - K8s: Fix not being able to install a service initially due to "vrpc timeout" (high-severity bugfix!). Fix role permissions so that statefulset can be queried correctly from broker startup scripts. Fix vernemq startup scripts to ensure multi-node broker cluster is found correctly. Implement readiness probe in vernemq broker pods. - HTTP protocol: Fix HTTP token renewal that did not work for write operations - HTTP protocol: Fix connection state that was shown connected even with wrong authentication credientials - k8s: Fix ServiceCatalog instance, avoiding vrpc timeout error - Admin-UI: Minor fix of explorer page styling User documentation updates ========================== - User docs: Adapt documentation to clarify which features are not available on k8s but only on docker-compose - User docs: Improve list of Admin-UI access permissions by automating its generation - Minor swagger docs fix: Fix client registry swagger documentation about returned timestamp *************************** What has changed in 1.0.79? *************************** .. note:: This version 1.0.79 is affected by a bug potentially causing instabilities, hence use version 1.0.81 instead! Our next weekly maintenance release brings a backup/restore function for the user database, an improved version check for distributed agents, several improves user interface pages, some bugfixes for MQTT and HTTP, significant user documentation updates, and improved overall stability. Task completed =============== - Implemented new backup and restore function for user/role/permission database, see :ref:`user/maintenance` - Check connectware version match between protocol-mapper agent and main connectware and refuse startup on mismatch to avoid unexpected malfunction (causing breaking change when trying to use distributed protocol-mapper agents without update) - Admin-UI: Improve "client registry" page - Implement system resource monitoring log messages into the container logs Bugs fixed =========== - MQTT protocol, Mappings: Fix extra duplicated messages if there are multiple overlapping wildcard subscriptions - HTTP protocol: Fix missing basic auth (username/password) implementation when accessing other HTTP servers User documentation updates =========================== - User docs: Explain route and :ref:`permission configuration ` when users with lesser permissions should still be able to see certain Admin-UI pages - User docs: Update "Exporer" page after recent UI changes - User docs: Update "user management" page after recent UI changes - User docs: Explain the "Setting of environment" steps in a separate section - User docs: Ensure that all sample commissioning files work out of the box *************************** What has changed in 1.0.78? *************************** This is another weekly maintenance release with a set of bugfixes in OPC UA and rule engine, a new feature for HTTP :ref:`query parameters `, some documentation updates, and general maintenance. Tasks completed ================ - HTTP protocol: Added feature to set :ref:`query parameters ` dynamically from MQTT message - Admin-web-app shutdown: Fix missing SIGQUIT handling in admin-web-app to enable graceful shutdown of container Bugs fixed =========== - OPC UA: Fix reconnect handling for many node subscriptions and slow servers that might cause too many requests at the server (high-severity bugfix) - Rule engine: Fix erroneous refusal of service installation when COV rule uses string array as key - ADS protocol: Fix error when receiving an INT64 value - User documentation: HTTP :ref:`user/protocols/http/probing` explanation improved *************************** What has changed in 1.0.77? *************************** Our next weekly maintenance release brings a newly designed user management page in the UI, some bugfix for OPC UA Server Historical Access, and a number of further improvements and bugfixes all over the product. Tasks completed =============== - Admin-UI user management: New User and Roles Management Screen. The pages for user management, role management, and permission overview were redesigned and re-implemented. This gives a much better overview and better user experience for editing all aspects of users and roles. - Admin-UI user management: Implement the possibility of renaming a user - Admin-UI user management: Hide auto-generated service users and roles in the user management page by default - Admin-UI user management: Enable editing the "Per-User MQTT prefix" (available since 1.0.73) in the user management page Bugs fixed =========== - OPC UA Server Historical Access (high-severity bugfix): fixing missing data on Historical Access request - Kubernetes: Change the Postgresql volume's access mode from ReadWriteOnce to ReadWriteMany (RWX) - Postgresql container shutdown: Fix missing SIGTERM handling to enable graceful shutdown - doc-server shutdown: Fix missing SIGQUIT handling in doc-server to enable graceful shutdown - ADS protocol: Specify existing limit on subscribe interval of approx. 7 minutes - Auth-server: Minor improvements in handling of lost postgresql connection - protocol-mapper startup: Fix potential startup failure where errors were not causing a clean restart - Admin-UI user management: Fix error on assigning grant types in user management pages - User with MQTT prefix: Changed authorization to check MQTT topic permission now with prefix. Note: This might break existing setups which are using "Per-User MQTT prefixes" available since 1.0.73 with very specific permissions, but does not touch any setup that was not yet using this "MQTT prefix" feature. *************************** What has changed in 1.0.76? *************************** This is another weekly maintenance release with a set of bugfixes, some documentation updates, and general maintenance. Tasks with minor additions ========================== - User documentation: Update documentation for :ref:`Certificates screen ` - User documentation: Added explanation about the issue with :ref:`Docker networks ` and alphabetical order of network names. - MQTT Broker: Configuration changed to increase maximum-topic-depth to 20 - Debugging output: Add explicit clientIds to internal MQTT clients to improve debug output readability - Update node.js to 14.19.0, alpine to 3.15 Bugs fixed ========== - (High-severity bugfix) Fix MQTT message duplicates that could appear after an internal disconnect/reconnect event, which has been observed seldomly but would be a problem. With this fix, no more duplicates appear. - Admin-UI: Fix slightly confusing message on empty table on "Service Links" page - Kubernetes: Extend resource limits to avoid out-of-memory kills under peak loads - HTTP protocol: The HTTP connection check can now be configured in more detail, see :ref:`user/protocols/http_connection`. Also, fixed unexpected large number of server connections due to HTTP connection check, if the liveness of the connection has been proven by other activities anyway. Features removed ================= - Pfannenberg protocol: The obsolete ``pfannenberg`` protocol has been removed because it was designed for some special devices which turned out to be out of use for quite some time already *************************** What has changed in 1.0.75? *************************** Our next weekly bugfix release included some bugfix for the `setContextVars` rule in the rule engine, some performance improvements for large number of users, and a set of additional bugfix and stability improvements. Tasks with minor additions =========================== - Broker: Improve handling of message rate peaks (reducing potential message loss) by increasing max_online_messages parameter and making it available as configuration option - User documentation: Clarify service :ref:`parameter ` array usage (and its limits) - User documentation: Add missing documentation about response codes for Write operations in all protocols, in particular also for using /set /res endpoints for protocol :ref:`EtherNet/IP ` - Auth-server: Improve performance for larger number of users and running services at service-manager Bugs fixed ============ - Rule engine (high-severity bugfix for setContextVars rule): Fix erroneously failing verification of setContextVars rule whose var property needs and object, not array. Fix broken setContextVars rule where the variables could not be used in the publish topic. - Workbench: Fix global HTTP proxy settings to be applied in workbench, too - Kubernetes: Extend resource constraints to avoid out-of-memory kills under peak loads - Admin-UI: Fix missing display wrapping of service cards on service catalog page - OPC UA client with :ref:`events `: Fix erroneously ignored field selection from commissining file *************************** What has changed in 1.0.74? *************************** This regular bugfix release includes ones important high-severity bugfix concerning the `qos` property in endpoints, another important change for Kubernetes deployment (unrelated to docker-compose deployments), and a set of additional bugfix and stability improvements. Tasks with minor additions =========================== - OPC UA user docs: Clarify :ref:`documentation ` about session, subscription, monitored item groups Bugs fixed =========== - Endpoints (high-severity bugfix): ``qos`` property from commissioning file was unfortunately ignored when creating Endpoints, which is fixed now - Kubernetes deployment (high-severity bugfix): Fix Connectware unable to start due to Postgres mountPath error. This is a breaking change in any Kubernetes Helm Chart deployment, but does not concern any docker-compose deployment. - Kubernetes Admin-UI: Fix missing first letter in list of containers in Admin-UI - OPC UA server: Rename ``alternateHostname`` property to ``hostname`` to clarify its meaning, adapting the :ref:`documentation ` accordingly. The old property name is still accepted for backward compatibility, though. - Services with Docker networks: Detect and log unintended ingress network change - Admin-UI: Minor layout improvements in explorer page for better understanding on first look - HTTP Client: Fix missing renewal of OAuth token that is used over longer time periods *************************** What has changed in 1.0.73? *************************** The weekly maintenance release of the Connectware includes two important high-severity bugfixes, for Mapping and for Kubernetes installations, as well as one new page in the Admin-UI for `Rule Engine Sandbox` and the new feature of MQTT topic prefixes. Additionally, many other areas received some bugfixes and stability improvements. Tasks and Features ==================== - Admin-UI: Implement `Rule Engine Sandbox` page for live evaluating rule engine transformation :ref:`expressions ` - New Feature: The MQTT broker can be configured to add an automatic MQTT topic prefix to incoming published MQTT messages, see :ref:`user/user_management/mqtt_prefix`, especially suited for high-throughput installations - Admin-UI: Feature request: Save Table View Settings - Auth-server optimization: Optimize User.read\(\) method for Broker auth - User docs: Document result of of using /set /res endpoints for protocol MSSQL Bugs fixed =============== - Connection handling (high-severity bugfix): Mappings are stopping forwarding messages on certain combinations of disconnect/reconnect events - Postgres on kubernetes (high-severity bugfix): crash loop on startup due to missing permission for chmod, related to PGDATA environment variable. This is fixed with the current Helm chart and this Connectware version - Admin-UI: Wrong message on service deletion confirmation popup - Admin-UI: Password should not be stored after login on the Admin UI - Admin-UI: Error when displaying Service Details Page after installing a new service from Comissioning File - Admin-UI: Service details were not updated when uploading a file for a catalog service - Service validation: Mapping resources should validate rule names and properties - OPC UA Server: Clarify property "alternate hostname" which is needed always (to be renamed soon) - OPC UA client using events: Fix unhandled promise rejection for invalid nodeId in eventType *************************** What has changed in 1.0.72? *************************** This next maintenance release includes another set of bugfixes in the Admin UI, the auth-server performance, and user documentation. Also, the web tokens can now be used for authentication, as needed e.g. for displaying status pages without having to enter a username and password in the browser. Added ======== - Admin-UI: When using long-lived :ref:`web tokens `, the possibility to use this token for authentication was added, see :ref:`user/user_management/web_tokens/browser`, where the token is specified by an extra apiToken URL parameter. This authentication can be used for either Admin-UI pages, or to access service containers according to their ingress routes. Both cases can be interesting for displaying status pages without having to enter a username and password in a browser. Changed ======== - Auth-server: Further work on optimization of authentication by adding an extra function that is optimized only for this authentication - Admin-UI: For ADS connections, display the Ads routerTcpPort as port number (instead of the uninteresting AMS port number) - Admin-UI: Order items in permission lists for users and roles alphabetically - Auth-server: For custom password policy configuration, improve the handling in client registry procedure by returning a special status code (422) on unsatisfied password complexity, and adapt the remote distributed agent to respond accordingly, so that distributed agents will work with client registry and any password policy. - OPC UA client: Improve error log message on problems with OPC UA type mismatch - Bacnet user docs: Extend docs for BACnet read/write - Focas user docs: set/res endpoint documentation for the Focas protocol. - Sinumerik user docs: documentation added for set/res endpoints Fixed ======= - Admin-UI: Fixed issue where Admin UI's explorer page would take user to the wrong resource page in the hover-over box on some mqtt topic - Admin-UI: Fixing issue on Admin UI where messages in the Explorer page would not appear *************************** What has changed in 1.0.71? *************************** This regular Connectware maintenance release improves some issues with service parameters, authentication stability, Beckhoff/ADS protocol implementation, ingress routes, and user documentation clarifications. Changed ========= - :ref:`ADS protocol `: More stability improvements. New properties on AdsConnection to handle connnection checking process: routerTcpPort, timeoutDelay. The connectionCheck can be disabled or configured in more detail. localAddress and localPort properties are now explicitly marked as required, because the implementation requires them. - ADS user docs: Clarify endpoint MQTT topics and response messages - Heidenhain: Clarify user docs about endpoints and response message. Also, change `write` endpoints to also return a response message. - Sopas user docs: Clarify write endpoints and response messages - Pfannenberg user docs: Clarify write endpoints and response messages - Admin-UI: Technical debt reduction in deviation handling, simplifying code base. Fixed ====== - Services (high-severity bugfix): Fix `Cybus::MqttHost` :ref:`global parameter ` value that was broken since version 1.0.67 because the connectware's internal hostname for the broker (`broker`) is different from what service containers need to use (`connectware`). This change introduces a `CYBUS_MQTT_HOST_FROM_SERVICES` environment variable to configure this differently if needed. (NOTE: docker-compose.yml file change!) - Auth-server (high-severity bugfix): Increase authentication stability by using only exactly one instance of the UserModel code, decreasing occurrences of closed auth connections even more - Ingress-controller (high-severity bugfix): Fix broken ingress routes if multiple routes should target the same container host but with different port numbers - Ingress-controller: Fix bug causing multiple updates when there are multiple ingress routes with the same target container host. - Admin-UI: Fixing errors on the Mapping page for services with distributed agents *************************** What has changed in 1.0.70? *************************** This next maintenance release includes another set of bugfixes in the Admin UI, in service life cycle management, and various other areas. Also, with some regular component updates and bugfixes the overall stability and performance has been improved. Changed ======== - Upgrade node-opcua from 2.50.0 to version 2.62.7 Fixed ====== - Admin-UI: Fixed issue on Admin UI where Connection page would never finish loading if the list is empty - Admin-UI: Now correctly hiding the ``__internal__`` connection from the list. - Admin-UI: Technical debt reduction for "agents" page. Fixed sorting and pagination issues with UI for agents page - OPC UA: Add log message warning and improve description for missing resourcePath property - Services: Fix container issues after service delete, where on incomplete delete some containers might not be removed, but are removed now. - Protocol-mapper: Increase error message verbosity on protocol-mapper batch create problems with persisted resource parameters - Broker startup: Check for empty configuration file, and error out with a clear message if this situation occurs to avoid unnoticed startup errors - Auth-server: Improve model implementation to use database transactions in a cleaner way, making the code much more robust and reducing technical debt. - Auth-server database: Fix remaining roles and permissions that were left behind on the database when deleting users. - Auth-server: Fix missing routing permission for new REST endpoint /api/policy/password *************************** What has changed in 1.0.69? *************************** This regular Connectware maintenance release brings a set of bugfixes in the area of service handling, exception handling on C++ libraries, systemstate protocol, and REST endpoint. Also, the user documentation has received some minor updates and overall stability has been improved. Fixed ====== - Services (high-severity bugfix): Fix broken vrpc event listener un-registration in services, causing increasing vrpc traffic on every single disable/enable of any service. - Catch unhandled exception error on some C++ protocols if they encounter issues so that this does not crash the protocol-mapper anymore. - User management: Fix error on mqtt topic permissions that did not accept topics with spaces, although these are valid mqtt topics. - User docs: Add recently added protocol names in the user documentation of connection and endpoint - User model: Fix erroneous database transaction implementation on user creation - Systemstate protocol: Fix systemstate signalling of initial resource - Fix missing permissions for new REST endpoint '/api/policy/password' (read-only) - Admin-UI: Fixing an irrelevant error display about the '_ _internal _ _' connection in the connection page *************************** What has changed in 1.0.68? *************************** The next Connectware release brings the new feature of :ref:`password policy ` specification, an important bugfix for mapping subscription clean-up and another one for FANUC Focas protocol, and user interface improvements such as the display of inter-service dependencies on the service page. Many more bugfixes and changes improve overall stability and reliability even further. Added ========== - User password policy: Add :ref:`password policy configuration option `. This feature makes it possible to configure password complexity policy rules in the Connectware using an environment variable called `CYBUS_AUTH_PASSWORD_POLICY_RULES`. Note: As the initial installation also sets an initial password for the default admin user, this initial password can be set by the newly implemented environment variable `CYBUS_INITIAL_ADMIN_USER_PASSWORD`. If this was forgotten and the initial password is rejected due to a stronger password policy, the initial setup will immediately terminate. (NOTE: docker-compose.yml file change!) - Admin-UI: Now show inter-service dependencies on service detail page (both: dependsOn and dependent services) and also if enabling/disabling a service will concern other services as well - User docs: Add docs for generating :ref:`API tokens ` by the REST interface Changed ========== - Admin-UI: adjust metrics table headings for number of messages. Update user documentation of metrics page. - Modbus User docs: Update usage of /res /req /set in modbus docs - Only exit protocol-mapper after several consecutive failed broker authorizations - Further improvements in startup timing for Kubernetes and docker-compose - Add consistent startup message across services: Adds the message 'Connectware service bootstrap completed' to all of our own-implemented services. Fixed ========== - Mapping subscription cleanup (high-severity bugfix): Bugfix for exception at subscriptions cleanup with cronTask, introduced in version 1.0.40 and apparently never being noticed. The bug surely causes erroneous double- subscription, but potentially also additional follow-up errors. - FANUC Focas protocol (high-severity bugfix): Fix endpoints mix-up when connecting more than one machine. - Broker: Show clear error message at startup on missing file permissions: If the broker container has no write permissions on the file /vernemq/etc/vm.args and the file ends up empty, the vernemq process shows a weird error message and is stuck in a crash-restarting-loop. With this change, the broker will still not yet start correctly, but at least show a clear error message. - Kafka: Fix broken KafkaEndpoint stored persistence. The error on storing Kafka endpoints (since 1.0.59) is being detected since 1.0.67 but is now handled even more gracefully by just fixing this particular storage problem, causing the endpoints to load fine again in any case. - Endpoints: Avoid unhandled promise rejection error when an endpoint reference was incorrectly written in the commissioning file - Admin-UI: Fixed container names of core containers being displayed only partially in the container detail pages - Admin-UI: If the default admin user is disabled, it will be no longer shown in the list of users. *************************** What has changed in 1.0.67? *************************** This next weekly maintenance release includes another set of bugfixes in Kafka, Modbus, Rule Engine, and other areas. Also, user documentation has been improved, and Beckhoff/ADS implementation has been rewritten significantly. Changed ======== - User documentation improvements: Documenting the input/output format of read and write endpoints for Influxdb, Modbus, MQTT, SQL - ADS re-implementation. This enables the capability of writing/reading complex data types like struct types. - Improve startup synchronization between microservices by letting the dependent ones wait on their dependencies before continuing with startup - OPC UA: improve error logging for MonitoredItem errors - Kafka: Better error reporting by printing topic names in log messages. Fixed ========= - Kafka: Fix erroneous extra properties on address object, causing errors on protocol-mapper restarts - Fix changing env-1.0.sh content order that caused subsequent crash loop when downgrading to Connectware version 1.0.64 or older - Modbus: general error handling improvements, in particular fixing an unhandled error event during reconnection, causing the protocol-mapper to crash and restart - Rule Engine: Fix SetContextVars rule not working properly with context vars and rules *************************** What has changed in 1.0.66? *************************** This regular maintenance release brings a set of bugfixes to improve overall stability. In particular, one important bugfix for write endpoint connection loss is included, where the bug is affecting 1.0.64 and 1.0.65 but is fixed in this version. Changed ======== - Installer: Use curl in favor of wget and force IPv4 lookup for wget to fix IPv6 issues - Admin-UI: Refactor server and node pages to new code standard. Refactor container-manager display pages to new code standard, fixing table sorting and rows per page issues for these pages Fixed ======= - All write endpoints: Fix missing subscribe of response endpoint after state change. This fixes a serious bug in version 1.0.64 and 1.0.65 concerning all write endpoints, which were not re-establishing their connection after a connection loss and re-connect. - Fix :ref:`SetContextVars ` rule not working properly with context vars and rules - Modbus: Improving stability by fixing one seldom crash due to unhandled error event *************************** What has changed in 1.0.65? *************************** - This version has a serious bug with write endpoints, please update to version 1.0.66! This next maintenance release of the Connectware brings some more user configuration options, some downloads of metrics data, new response messages also for HTTP POST requests, and plenty of bugfixes in many areas. Added ====== - Users: Adding environment variable CYBUS_ADMIN_USER_ENABLED which can be switched off to disable the default admin user, see :ref:`user/user_management/initial` (NOTE: docker-compose.yml file change!) - Admin-UI: added download possibility for a usage metrics report - HTTP protocol: Add response message on write endpoints also for the HTTP protocol on :ref:`POST requests `. Changed ======== - System-control-server: Storage location for some cache data is changed from certs volume to systemControlServerData volume. Old data is copied to new location, and also not removed from old location so going back to older Connectware version is possible. - User docs: Improve focas documentation, especially for :ref:`methods ` - Update Node.js to 14.18.1 and pkg to 5.4.1 - MQTT: Improve diagnosis of specific error condition when target host refuses connection due to keepAlive=0 parameter, which happens with newer mosquitto servers. - Broker: Removes stunnel process from broker container (that was a proxy for the TLS connection to the auth-server) and replace it with direct connection to auth-server Fixed ====== - Admin-UI: Fix missing mqtt topics in explorer from agent, so that Explorer now shows all topics on central and distributed protocol-mapper agents. - Container-manager: Improve stability of microservice initialization on Kubernetes to avoid issues with VRPC connections - Broker: Fix and improve broker startup script - Connection: Fix unneeded persistence of connections during startup phase *************************** What has changed in 1.0.64? *************************** - This version has a serious bug with write endpoints, please update to version 1.0.66! Another regular release of the Connectware brings a set of new features: Endpoints for write operations can now enable additional :ref:`buffering options `. Agent :ref:`registration ` has more options for specifying a password. The SQL protocol has more options for connecting to PostgreSQL databases. Additionally, a whole set of bugfixes for rule enging and service handling has been implemented, along with plenty of performance improvements in the Admin-UI. Added ====== - Introduce :ref:`buffering options ` for endpoints that write to devices - Agent registration: Allow environment variable for specifying a password on the agent, alternatively to storing a randomly generated password in the local docker volume for :ref:`agent registration ` - Services: Add validation of JSONata expression when enabling a service, to get faster and easier problem reporting on issues with JSONata expressions - Admin-UI: added button for sending usage metrics to portal manually - :ref:`SQL protocol `: Add support for accessing a postgres database over a SSL connection Fixed ===== - Services: Fixes retain property not working on Endpoints - Services: Fix missing re-evaluation of CYBUS_MQTT_ROOT variable on reconfigure/update of a service - Rule Engine: Create independent stores for each collect rule usage, so that it behaves correctly when used at different stages of a pipeline - Admin-UI: Better displaying errors on Admin UI - Admin-UI: Fix issue when endpoint resources on agents were sometimes not displayed - Admin-UI: Fix overview page of service links to only show services that in fact have links - Admin-UI: Fixing issue where the Admin UI Explorer would temporarily stop working when displaying large messages - Fix bootstrap.sh syntax error that could cause a crash loop of system-control-server on startup *************************** What has changed in 1.0.63? *************************** This regular maintenance release brings a set of bugfixes to improve overall stability. Changed ========= - OPC UA: improve error message if a session cannot be started due to mismatching security mode - Add user documentation of auto-generated :ref:`user/services/service-id` Fixed ====== - Fix :ref:`user/services/structure/resources/rules/collect` rule to use its own storage, not modified by rules later in the chain anymore - Fix broken deviation tracking for service without endpoints, broken since version 1.0.53 - Auth-server: Prevent removing grant type 'token' from 'admin' user - Admin UI: Fix displaying of error messages - Admin-UI: Fix table bugs on volume overview page - Admin-UI: fix metrics table sorting by date and time - Installer: Fix preflight checks to check for all URLs needed *************************** What has changed in 1.0.62? *************************** This regular weekly Connectware release brings two new features, where the commissioning file now has a new :ref:`Cybus::File ` resource, and the Focas protocol also has the :ref:`program_download ` command. Additionally, some minor bugfixes and stability improvements have been added to make working with the Connectware even more powerful and reliable. Added ======= - Service resources: Add new :ref:`Cybus::File resource type ` into commissioning file - Focas protocol: implement :ref:`program_download ` command (where "download" means loading the file into the PLC). *************************** What has changed in 1.0.61? *************************** This is a quick maintenance release because in version 1.0.60 the service catalog was unfortunately not working, but is working now again. Fixed ====== - Fix broken access to Service Catalog *************************** What has changed in 1.0.60? *************************** This is our next maintenance release with a set of bugfixes, a minor addition in the FOCAS protocol, and improving overall stability and performance. Added ====== - FOCAS: Adding new Focas methods: cncRdspeed, cncRdspload and cncRdgcode Fixed ====== - Admin-UI: Fix missing endpoint display if endpoints are on remote agents - OPC UA server and retained messages: fix typo where an undefined variable was used in the code - OPC UA events: fix typo in example yaml file - OPC UA events: fix eventtype filtering for opcua endpoints *************************** What has changed in 1.0.59? *************************** Another maintenance release of the Connectware brings several new features all around the product: Ingress routes can be extended with custom http headers to enable automated log-in at service webpages; Kafka gets more properties; OPC UA can be used with event subscriptions; OPC UA now has PLCOpen node types for S7 servers; Modbus gets more data type byte orders. Also, many bugfixes in the Admin-UI and several protocols have been implemented, increasing overall stability and performance. Added ====== - Ingress routes: Add support for adding :ref:`http headers ` to ingress routes. Adds support for configuring headers to be added to requests processed by Envoy for Cybus::IngresRoutes. - Kafka: Implemented additional properties at Kafka messages. The :ref:`message payload ` for the `write` operation of the Kafka protocol was reworked to accept more properties. The main change was that now each MQTT message can hold one or more messages in the payload to be sent to the Kafka Broker. - OPC UA client: Implement OPC UA :ref:`event subscriptions `. OPC UA endpoints can now be configured to set up event subscriptions instead of normal node (monitored item) subscriptions. This needs the properties eventTypes and and fields to be set. - OPC UA client: Implement PLCOpen node types for OPC UA servers running on Simatic S7. Some OPC UA servers running on a S7 PLC contains some nodes which use data types from the PLCOpen nodeset files. This change includes this nodeset files into our code, and also introduces a local type cache which should correctly handle the case when the OPC UA server has nodes with those types instead of running into issued with the standard opcua types. - Modbus: Added modbus datatypes floatBEWS and floatLEWS as datatype conversions for word swap float values. Fixed ====== - Admin-UI: Fixed issue where connections and other resources would be hidden if they were not from the protocol mapper agent. - Admin-UI: Fixing issue on the Admin UI where one could not consistently disable/delete/enable a cybus resource. - ADS: Fix endpoint deviation behaviour on subscription issues. ADS protocol endpoints will now become deviated when a subscription issue an error. - Focas: Fixed Focas connection on disconnect. Improved connect/disconnect methods with a state variable avoid connecting an already connected protocol or disconnect a disconnected one. - S7: Improve connection tracking for S7 - S7: avoid protocol-mapper crash when attempting invalid reads. Add input validation and slight improvements to response in S7. Improve docs on S7 write operation. - Modbus: Improve disconnection state handling for Modbus. - Modbus: Add extra log for Modbus errors and improve disconnect on endpoint failure. Adds an extra error log in the case the jsmodbus library returns an error stating to check the response body of the request. - Kafka: The kafka protocol Write operation now correctly returns a message on the `/res` topic, indicating either success or an error. - Kafka: Only reset the connection on KafkaJSNumberOfRetriesExceeded exceptions, not on less severe errors. - User docs: Fix error in example for collect rule docs - Installer: Set default proxy configuration to empty to avoid issues on some outdated environments picking up empty string as a value *************************** What has changed in 1.0.58? *************************** Our next regular maintenance release of the Connectware brings a few bugfixes in various areas, and a small improvement for the license file at startup, especially for installation without Internet connectivity. Minor bugs have been fixed in OPC UA, S7, HTTP, and the installer script, and the overall stability has been improved. Added ====== - License file can be passed to system-control-server by injecting an environment variable (see :ref:`user/licensing/offline-activation/upload`), especially for installations without Internet connectivity Fixed ====== - OPC UA Server: Fix publishing of retained MQTT message - User docs: clarify dot operator in jsonata which gives confusing behavior if input messages are of array type - Fix installer --download-license-file option to be identical to the download from Portal website (NOTE: connectware-online-installer.sh file change) - Set default proxy configuration to empty in installer template (NOTE: connectware-online-installer.sh file change) - S7: minor improvements in error logging on connection timeouts - HTTP: Fix http probe on cleared _client *************************** What has changed in 1.0.57? *************************** This regular maintenance release of the Connectware brings many internal version updates, some stability improvements on restarts and shutdowns of containers, and a User Interface for managing certificates. Added ====== - Admin-UI: Add certificates management on the Admin UI (under the User Management menu), or /api/certificates HTTP endpoints. Changed ======== - Service-manager: Allow the "protocol" property of Connection and Endpoint to be set to an arbitrary value. Validation of child properties is skipped if the value is not one of the known list of protocols. In those cases validation is now done upon enabling those service and resources, not at installation time. - Version updates: Node.js from 12 to Node.js 14 in all containers; alpine runtime base image from 3.11 to alpine 3.12; VerneMQ to 1.12.3; node-opcua to 2.50.0 Fixed ====== - Add correct handling of SIGTERM in containers, so that shutdown/restart of containers works considerably faster and under more control. - Admin-UI with reduced permission: Fix interpretation of readWrite to be accepted for read, too - Protocol-mapper: Improve error messages if x509 certificate errors are encountered during startup (such as expired internal certificates) - GenericVrpc: Fix crash on disable GenericVrpc resource - Fix auth-server startup warning about unknown sys-protocol-mapper user *************************** What has changed in 1.0.56? *************************** Another maintenance release of the Connectware is available with plenty of bugfixes all around the product. REST endpoints for bulk user handling are added, some dependencies have been updated, HTTP proxy handling has been improved, and bugs with GenericVrpc, distributed agents, and in the Admin-UI have been fixed. Added ====== - Auth-server: Add REST endpoint for bulk insertion and deletion of users Changed ======= - Workbench: Update node-red version to 2.0.6 (major update from 1.x to 2.0). - Update node.js version to 12.22.6 - ADS: Allow minimum read interval to be as low as zero, so that it is the user's responsibility to find a useful minimum value for a given system configuration Fixed ===== - Admin-UI: Fixed issue where the list of endpoints shows all resources, not only endpoint - Admin-UI: Fixing issue with occasional connection errors to backend - Container Startup: At startup when checking for existence of shared files, also check read permissions of those files - User docs: Fix portal backend address mentioning to be only a non-clickable DNS name - Distributed agent: Drop credentials only on 401 response. We change the policy on when the stored agent credentials are re-used and when they are dropped: Before, they were dropped on any result (including refused connection due to offline connectware) except a 501 or 503 timeout response from the ingress (which was caused by e.g. a overloaded auth-server). Now, they are dropped only on a valid http connection that gets a 401 response. - System Control Server: improve license validation and connectivity checks when the system is deployed behind a corporate proxy and add CYBUS_PROXY environment variables to docker-compose.yml file (NOTE: docker-compose.yml file change!) - GenericVrpc: fix deviation cleanup after reconnect *************************** What has changed in 1.0.55? *************************** This regular maintenance release of the Connectware brings performance improvements for large number of MQTT users, some fixes in the Admin-UI frontend where the pages were not displaying, and overall some updated and improve stability. Changed ======== - Auth-Server: Improve authentication performance for large number of MQTT users by caching the login credentials also on MQTT logins (which have already been cached for HTTP logins since many versions) - System-control-server, Admin-UI: Fix all outdated mentioning of portal.cybus.io as backend URL, which has been replaced by a new backend URL graphql-server.cybus.io since version 1.0.49. (Yes, the DNS name is somewhat technical, but that's the current setup.) The features requiring online connection (license update, Service catalog) use the new URL since version 1.0.49 but the preflight checks were still mentioning the old URL, which is fixed now. - Introduces a barebone protocol-mapper-base docker image 'protocol-mapper-base' that can be used for creating special protocol-mapper agent Docker images that implement custom protocols Fixed ====== - Admin-UI: Fix several "vrpc connection lost" bugs by setting up the backend connection in a better way - Admin-UI: fix connectware metrics ordering in display - Usage metrics: Fix collecting number of messages in case of power cycling of broker to avoid negative numbers *************************** What has changed in 1.0.54? *************************** Another maintenance release of the Connectware is available, this time also bringing new HTTP OAuth authentication support, and Euromap 77 features in OPC UA server, and some useful bugfixes especially at the Admin-UI. Additionally performance and stability got improved in general. Added ====== - HTTP protocol: Add OAuth Client Credentials authentication support to HTTP Protocol, see :ref:`user/protocols/http/oauth` - OPC UA: Add basic Euromap 77 integration, so that the OPC UA server can serve the data in Euromap 77 format by using the suitable `nodesetFiles` property in the :ref:`configuration ` Fixed ====== - Admin-UI: Fix empty services list when switching between pages - Heidenhain protocol: Fix parallel reconnect trigger if multiple instances are being used - Kubernetes deployment: Fix service-manager volume mounting issue at startup *************************** What has changed in 1.0.53? *************************** This regular maintenance release of the Connectware adds a new overview table for the current system usage, and contains some important bugfixes concerning deviation tracking, OPC UA writing to Simatic S7 OPC UA servers, and ADS connectivity. The performance for large numbers of resources is also being improved continuously. Added ====== - Admin-UI: Add new information in page System -> Metrics where the collected usage numbers are shown in a table view. Fixed ====== - Fix deviation display problems when larger number of resources are being used. Sometimes the Admin-UI shows deviations even though the resources were working fine, which has been fixed now. - OPC UA: Fix failing write for S7 OPC UA servers. Also, an error message is logged in case opcua write is failing. - ADS: Fix connection problems for when he net ids and port are invalid causing the protocol-mapper to enter in a reconnect loop and crash. - Admin-UI: Now showing connecting label on button while connection is connecting on the Admin UI. Fixed issued where influx db connection would not reconnect - Admin-UI: Fixed issue where user without admin service custom routes access would be thrown in a authentication loop and the user cannot login anymore *************************** What has changed in 1.0.52? *************************** Our next regular maintenance release of the Connectware makes the explorer page even more powerful, and well-performing even for very large number of subscribed topics and messages. Additionally, in the S7 protocol there is an important bugfix, in the SQL protocol the connectivity to PostgreSQL has been added, and some more performance improvements have been implemented. Added ===== - SQL Protocol: Support for :ref:`connecting to PostgreSQL databases ` has been added Changed ======== - Auth-server: The internal databases have been optimized to improve performance on large number of connecting clients - Connectware containers: The startup log messages of the node.js containers have been improved and skip the distracting info messages about added GET etc. routes. Fixed ====== - Admin UI: On home screen, fix the displayed number of services - Admin UI: On login, always redirect users to the home screen regardless of the previous URL, to avoid displaying confusing permission error messages - Admin UI: Fix explorer page for large number of topics so that the browser does not freeze anymore and many messages can be displayed - S7 protocol: Fix undefined variable in code, causing crash on "Bad 255" occurrence (unfortunately introduces in CYB-2933 version 1.0.43). Fixed now. *************************** What has changed in 1.0.51? *************************** This regular maintenance release of the Connectware brings a set of bugfixes in various protocols. The "write" operation now has return values added. And various improvements are implemented throughout the code. Changed ======= - All protocols: The "write" operation will now also return a response value - Ingress: Increase possible number of incoming connections by adding possibility to configure the maximum number of connections in ingress-controller. The env variable MAX_TCP_CONNECTIONS (default: 10,000) is added to docker-compose (previously the maximum was 1024). (NOTE: docker-compose.yml file change!) Fixed ===== - OPC UA client: Fix BadTooManyOperations error on unsubscribing from servers with MaxMonitoredItemPerCall limits - OPC DA protocol: string type for values is fixed again - Container-manager: Fix to work on Kubernetes by adding k8s namespace and docker ingressHostname as configuration variables - Agent: Fix accidental dropping of credentials on receiving a HTTP 504 response code *************************** What has changed in 1.0.50? *************************** Our next regular maintenance release of the Connectware brings further user interface improvements in the Admin-UI Explorer page, as well as improved Kubernetes deployment capabilities using a Helm Umbrella chart. Also, some bugfixes in the Admin-UI and also the rest of the software are improving the overall stability. Changed ======= - Admin-UI Explorer: Added a new popover to display resources associated with a topic - Admin-UI Explorer: Now it is possible to filter topics by their associated resource - Admin-UI Explorer: Now removing irrelevant topics - Admin-UI Explorer: Now hiding Admin UI Explorer�s monitored topic action buttons when not hovered Fixed ===== - Admin-UI: Fixed issue where publish endpoints would cause an error on the recently added Admin UI, either in the mapping detail page or in more places of the admin-ui - Admin-UI: Added loader screen after login while waiting for some UI components to initialize fully, to avoid showing an empty screen instead Changes for Kubernetes deployment ================================= - Container-manager: Adapt container-manager to k8s, so that at least its first set of features (logs, container creation and deletion) are available in k8s as well - Broker cluster self-healing - Change Broker k8s Service to an StatefulSet - Make resource requests and limits configurable in the Helm Chart - Add namespace to container-manager roles - Add an init container to the broker-cluster deployment *************************** What has changed in 1.0.49? *************************** This regular maintenance release of the Connectware brings a new overview table of all "links" (e.g. dashboard buttons) in the Admin-UI, some more improvements in the recently overhauled Explorer page, and some more bugfixes in OPC UA protocol, SQL protocol, Kafka protocol and throughout the software. Added ===== - Admin-UI: Created Services Link table under the resources navigation tab, available also for non admin users - Kubernetes deployment: Added initial Helm chart integration Fixed ===== - Admin-UI: Fixed issue with table sorting being reset after new items are added - Admin-UI Explorer: Now showing grayed out topic check-boxes if the children beneath it have multiple selection states. Added unsubscribe button to Monitored Topics section. Fixed issue with topic messages or paths being too long. Do not load topics that the user does not have permission to subscribe to. Instantly display monitored topics if they do not contain a wildcard - OPC UA: Detailed error logging for createmonitoreditems request - SQL protocol: Placeholders for SQL read endpoints - Kafka protocol: Improved Kafka connection state handling - Service Manager: Fixes to usage reporting *************************** What has changed in 1.0.48? *************************** This regular release of the Connectware brings improvements to the Admin UI in the Permissions and Roles section, improvements to the Protocol Mapper in the form of OPCUA object crawling, support for MQTT V5 options in the MQTT endpoints and connections, and improved support for mutual TLS verification for the Broker. Added ===== - Admin UI: New system role with limited permissions added - Platform: Add env file option CYBUS_BROKER_USE_MUTUAL_TLS for mqtt mutual TLS configuration (NOTE: docker-compose.yml file change!) - Protocol Mapper: Add MQTT5 support in MQTT protocol for both connection and endpoint Changed ======= - Admin UI: Improved License management on Admin UI, the license information, including id, can now be viewed by every user on the Connectware and other general improvements - Service Manger: Decrease log verbosity of systemstate protocol connections Fixed ===== - Broker: Fixes in mutual TLS code and configuration - Protocol Mapper: Fixes for crawling of OPCUA structures - Service Manager: Fixes to deviation tracking - Admin UI: Improved permissions management *************************** What has changed in 1.0.47? *************************** This regular release of the Connectware brings significant improvements in the Mapping resources by adding the possibility to list many :ref:`user/services/structure/resources/mapping/subscribe` topics for a single mapping, together with the :ref:`user/services/structure/resources/rules/collect` rule to combine these easily. The user interface for the Mapping got improved by displaying the data directly on the Admin-UI, together with potential errors from rules, to make rule debugging significantly easier and faster. The :ref:`user/protocols/opcda` protocol has been extended to support also simple write endpoints and an OPC DA bug with newer windows versions was fixed. Also, some more documentation improvements have been implemented, and more bugfixes in Mapping and OPC UA Server have been implemented. Added ===== - Mapping: Support multiple endpoints/topics in Mapping subscription and add new collect rule (see :ref:`user/services/structure/resources/mapping/subscribe` and :ref:`user/services/structure/resources/rules/collect`) - Admin UI: Add new MQTT message display in Mapping page, and also displaying errors from Mapping Rules directly in the Mapping page. - OPC DA: The write operation was implemented on the :ref:`user/protocols/opcda` protocol. - User docs: Explain the definition of array parameters better in documentation (see :ref:`user/services/structure/parameters/properties/arrays`) - User docs: Add docs about system requirements (see :ref:`user/requirements`) - User docs: Complete list of S7 data types (see :ref:`user/protocols/s7`) - OPC UA Server: add config settings for max connections server in :ref:`user/protocols/opcua_server` Fixed ===== - OPC DA: Fix OPC DA protocol version for newer windows versions to fix RPC_E_INVALID_HEADER error message - Mapping: Fix potentially duplicated messages on re-enabled mapping, especially when connecting to an external MQTT broker northbound - Admin UI: Choose default MQTT message display types similar to what they have been before *************************** What has changed in 1.0.46? *************************** Our next regular maintenance release of the Connectware brings a brand-new explorer page in the Admin UI where custom topics can be added, topics can be filters, and topic selection is much improved. Many more bugfixes in the Admin UI and some minor fixes in other areas are added, too, to achieve overall speed and stability improvements. Added ===== - Admin UI: New Explorer UI is now live: Button for "Add custom topics", filter by topic types, collapsable history, improved performance - Admin UI: Extend deviation reporting: Add "reason" to state event - Distributed mappings: Mappings now can run on agents by specifying an `agentName` property, see :ref:`user/services/structure/resources/mapping` Fixed ====== - Admin UI: Connection details now displays extended properties - Admin UI: Fixed rows per page issue on Connections table and on Mappings table - Admin UI: Fixed sorting issues on Connections and Mappings table - Admin UI: Fixed issue with explorer UI where one could not copy JSON topic messages on the UI - Admin UI: Fixed issues with Sections expansion on Services (and now Connections) - Admin UI: Fixed issue on Admin Web UI where previous service parameters would be overwritten by the new default ones - Admin UI: Fixed issue where appbar breadcrumbs would use singular name instead of plural - Admin UI: Fixed issue with Admin Web UI rendering the wrong breadcrumbs on User and Role views - Auth-server: Fix creating and reading of roles with no permissions - OPCUA Server: Fix wrong if-clause before accessing this._historyManager *************************** What has changed in 1.0.45? *************************** This regular maintenance release of the Connectware brings another new protocol for connecting to Apache :ref:`Kafka ` clusters, and some bugfixes throughout the system, in particular with the startup procedure of the system control server, in order to improve overall stability. Added ===== - :ref:`Kafka protocol ` implementation. This change adds the Kafka protocol that allows connectivity to Apache Kafka clusters/brokers. Fixed ====== - User docs: mqtt client :ref:`documentation ` improvements - Improve startup timing of system control server, fixing some conditions where the connection between system control server and container manager was not set up correctly - Fix parsing error on using `Cybus::MqttPort` :ref:`global parameter ` which used to be refused in certain contexts requiring an integer value - Admin UI: removed beta tag from service catalog menu item *************************** What has changed in 1.0.44? *************************** This next regular maintenance release of the Connectware comes with some minor new feature for special login situations, several usability improvements in the Admin User Interface with earlier error checking, and various stability improvements and bugfixed in the general resource handling. Added ====== - Implement potential long-lived JWT tokens to be passed in the URL. Those tokens can be created and managed through the REST API and are intended to be used in shopfloor display devices where no keyboard login is usually used. (There is no UI to manage those tokens, yet) Fixed ====== - Distributed agent: Fix too quick discarding of existing credentials, if on re-connecting to the central connectware there is no immediate login possible. Now, the distributed agent will keep re-trying with existing credentials on unreachable connectware and unreachable auth-server. - Admin-UI: Check and prevent issues with long service Id and too long container names. If the commissioning file contains docker containers, the length of the serviceId is now limited according the the resourceId so that the resulting container name is within the 63 character limit. Before, there was no limit on the serviceId length, but the service enabling would eventually fail due to the limit on the container name. - Mapping: Fix :ref:`setContextVars ` rule which was not working correctly, but is documented and working correctly now. - Auth-Server: Improve performance when querying roles and permissions - User docs: improve :ref:`OPC UA ` documentation *************************** What has changed in 1.0.43? *************************** Another regular maintenance release of the Connectware! There are some helpful improvements in the commissioning file and in handling of container networks, and there are performance improvements in MQTT and S7 protocol. Also, the user interface has been worked on to fix some minor bugs and improve stability in general. Changed ======== - Commissioning files: The agentName of an Endpoint does no longer need to be specified but is looked up from the Connection resource - Container manager: Networks that are created by deploying container resources are now cleaned up again on service disabling - Kubernetes: improve manifests, broker clustering, and volumes. - Admin UI: Add alternative permissions for services table and extend REST endpoint Fixed ===== - S7 protocol: Fix "BAD 255" values when polling - MQTT protocol: Ensure that we never publish to a MQTT topic with wildcards, as this would terminate the mqtt connection immediately. - MQTT Performance: Improve auth-server performance for handling many mqtt clients - Admin UI: System Control Service changes for improved stability - Admin UI: Fix service links on the admin web ui to again open in new tab - Admin UI: Fixing issues where the services would appear for half a second to not be loaded when first loading the application *************************** What has changed in 1.0.42? *************************** Our next regular maintenance release of the Connectware comes with some bugfixes in various protocols, an interesting new protocol :ref:`user/protocols/systemstate` for notifications of internal states, and overall speed and stability improvements. Added ====== - Systemstate protocol: Added a new protocol :ref:`user/protocols/systemstate` that enables access to internal Connectware events as mqtt messages. - OPC UA Server: New Object Type :ref:`Opcua:Reference ` was added for usage in commissioning giles. This enables users to reference preexisting nodes and structures in a commissioning file. The Reference type also creates an MQTT topic that publishes the value of the nodeId. - Deployment: Adds initial support for running Connectware in a Kubernetes cluster - Influxdb protocol: Added writing of multiple data records per message for InfluxDB. Fixed ======= - Fix missing MQTT endpoint/connection schema validation in service manager - Influxdb: Added default value ``http`` for connection scheme - Heidenhain: Make sure to not do anything if we are disconnected, to avoid any activity after service disabling. *************************** What has changed in 1.0.41? *************************** This next regular maintenance release of the Connectware comes with some bugfixes in various protocols, some helpful new configuration properties for :ref:`OPC UA connections `, and overall speed and stability improvements. Added ======== - OPC UA client: Add configuration property maxMonitoredItemsPerCall in :ref:`OPC UA connections `. This allows to let the group registration be done with the given maximum number of items per call, if the server requires such a restriction. Changed ======== - Admin UI: Further refactoring to prepare login with different permission sets. On a changed connectware version the admin-ui will now logout. Fixed ======== - Admin-UI: Revert service "links" style into buttons again - Admin-UI: Fixing issue where non-default parameters would not be loaded in update dialog - Admin-UI: Fix missing connection host/port to be displayed in overview table - Service manager: Fix waiting time upon service start that causes very long time on restart - Heidenhain protocol: Fix unhandled promise rejection on agent restarting by fixing missing await. Fix sanity check on disconnect. Also, fix lookup of instance name in 'instanceGone' event. Add more sanity checks where appropriate. Should fix missing reconnection on machine restarting. - Container-manager with more robust startup to run multiple attempts to instantiate a ProtectedDocker instance *************************** What has changed in 1.0.40? *************************** This is a bugfix release to improve the behaviour on two issues recently discovered. In the Admin-UI, the "links" buttons are fixed again, and in Bacnet the disable/enable behaviour has been improved. Also, minor other updates are included. Fixed ======== - Bacnet: Fix leftover connections ("zombie") after disabling some bacnet services. This also enables the `cronExpression` property for bacnet endpoints. - Admin-UI: Fix broken "Links" urls on the service detail pages *************************** What has changed in 1.0.39? *************************** Another regular maintenance release of the Connectware! The Admin-UI has been improved in the service details view, and several bugfixes and improvements regarding large number of endpoints have been implemented. And there is the regular share of further stability improvements. Changed ======== - Admin-UI: Service details page for :ref:`updating a service ` restructured: Buttons are placed in a more structured form; install, update, and reconfigure all use the same new two-section window. Further internal refactoring to reduce technical debt. Fixed ====== - Admin-UI: Services with no parameters will have a clear message about it - Admin-UI: Rows per page is now fixed on service resource tables and logs tables (but not yet on tables elsewhere) - Admin-UI/Explorer: Let mapping topics with named wildcard show messages in history - Admin-UI: Better error reporting when handling a service runs into an error - Service deviation detection: Fix deviation tracking and reporting for Endpoints, also for larger number - Admin-UI Deviation detection: Collect deviation events before emitting them, to fix freezing admin-ui on larger number of endpoints - Admin-UI: Available Service Catalog version is now always displayed on the service details page - OPC UA: Better cleanup after early termination of MonitoredItemGroup - Licensing: Fix expiration date to correctly keep working until day's end of that date - Bacnet protocol: fix potential leftover polling timers to avoid double messages after fast reconnections or service updates *************************** What has changed in 1.0.38? *************************** Our next regular maintenance release of the Connectware comes with some bugfixes in various protocols, an interesting new polling :ref:`schedule feature ` on endpoints, and overall speed and stability improvements. Added ===== - Some protocols: Cron expressions for polling at :ref:`fixed time points on endpoints ` have been implemented. Changed ========== - InfluxDB: Simplify the topic name for InfluxDB endpoints. The topic name for endpoints now uses either the name of the measurement for writing or "data" for read/subscribe Fixed ========= - Agents: Fix missing mqtt scheme when creating the internal MqttConnection, causing problems for agents that want to use "mqtts" instead of "mqtt" - OPC UA: Better error reporting with MonitoredItemGroup in case of initialization failure *************************** What has changed in 1.0.37? *************************** This next regular maintenance release of the Connectware comes with some improvements in most protocols about the reconnection timing, more stability towards handling very large commissioning files, and some more bugfixes and minor updates all across the board. Added ======= - All protocols: Add incremental delays for re-connection attempts, so that instead of trying a reconnection every 1 second, the waiting time is now increasing until 30 second maximum, and can be configured by the `connectionStrategy` property, see :ref:`user/services/structure/resources/connection` Changed ========= - Upgrade BACnet stack to version 1.0.0 - Update various npm packages with minor and major version updates - Container-manager: Fix startup procedure of container-manager to not have it exit multiple times - OPC UA client: minor :ref:`user docs improvement ` to clarify nodeId syntax Fixed ====== - Fix service delete/install via REST API not showing up in UI - Improve loading of large files in REST: Re-use Parser results in Service constructor - Admin-UI: fixed rendering of service metadata in service details view - OPC UA server: Finish exposing metadata for historizing aggregations - Influxdb: Simplify the topic name for InfluxDB endpoints *************************** What has changed in 1.0.36? *************************** Another regular maintenance release of the Connectware! Again the stability and configuration time for larger commissioning files is improved, as well as error reporting in OPC UA client protocol, BACnet, InfluxDB, and other places. And there are many other bugfixes and overall improvements. Changed ======== - OPC UA protocol: Clarify :ref:`reconnection timing behaviour in user documentation `, and decreasing default maximum waiting time between subsequent re-connection trials from 60 seconds to 30 seconds. - OPC UA protocol: Check and report if endpoint requests nodeId that does not exist on server. The respective endpoint will change into "disabled" state. - OPC UA server: Extend historical access methods to also allow aggregation functions Average, Minimum, and Maximum. - BACnet :ref:`user documentation ` improvements - Admin-UI: Further improvements for loading large commissioning files, avoiding timeout error messages and increasing efficiency on loading the file in the backend. Improve efficiency on service delete, too. - Ingress-controller: Update Golang to 1.16.3 and use Alpine 3.13 for all Golang images Fixed ====== - Admin-UI: Fix ingress routing issue with some service dashboards where permissions were missing - Admin-UI: Fix page redirect after deleting a container resource - Admin-UI: Fix missing cache-cleaning when reloading web-app after version upgrade in some browsers - Docker: Fix docker image permission check if the license requires exact match, where the permission check erroneously reported that the current license does not have permission for some docker image - InfluxDB protocol: Fix occasional crash on disconnection which unfortunately caused a protocol-mapper crash - Container-manager: Fix startup behaviour - Fix re-attaching ingress route on restarting connectware if a service is enabled (broken since 1.0.33) - Fix service delete/install via REST API not showing up in UI (broken since 1.0.34) *************************** What has changed in 1.0.35? *************************** Our next regular maintenance release of the Connectware comes with more speed and stability improvements for larger commissioning files, and some bugfixes in various protocols. Changed ======== - OPC UA user documentation: Add :ref:`example endpoint ` into documentation for commissioning files with only one connection, which might need also one simple endpoint (as a workaround for some OPC UA server that closes a connection after 30 seconds if it has no endpoint) - Modbus protocol: Adding support for configured data types on :ref:`input data ` for write operation - Service files: Speed up the initial file parsing considerably - Admin-UI: Code refactoring to improve handling of large files. Also, change service installation window to give better overview of upcoming parameters. - Update node.js to 12.22.0 Fixed ======== - Admin-UI: Fix missing resource count update on enabling - Admin-UI and REST endpoint: Prevent default role `protocol-mapper-agent` from being deleted - OPC UA server: Fix accidental server shutdown after 60 minutes - Service files: Fix error messages about `createBatch timeout` which are not necessarily a problem - System startup: Fix occasional startup timing issues; sometimes error message `"Could not create EndpointView instance� 6000ms timeout"` appeared, sometimes the service-manager could not establish the connection to the container-manager, or vice versa. - System startup: Avoid writing resources with failed initialization to docker volume persistence. *************************** What has changed in 1.0.34? *************************** This next regular maintenance release of the Connectware comes with a significant improvement towards handling very large systems and commissioning files. Many inconveniences and issues with large files have been fixed, together with some bugfixes in the Admin-UI and the OPC UA Server. Added ======= - Add logLevel parameter to :ref:`SQL connection `: Adds a new flag for the SQL connection, logLevel, to switch on per-request log messages. - User docs: Adding kubernetes deployment example to the :ref:`agents documentation ` Changed ======== - Service management: Several improvements to significantly increase speed and stability when dealing with large service commissioning files throughout their whole life cycle: At installation from Admin-UI, at installation from REST endpoint, at deviation tracking during runtime, at restarting of the protocol-mapper or other containers, and at disabling and deletion. - Mapping resources: Significantly improve performance when enabling large amounts of mappings - Admin-UI: Internal refactoring to improve response times and stability - Admin-UI: Implemented a warning display if frontend and backend may operate on different versions if page is not manually refreshed by user Fixed ======= - Fix /api/services/post REST endpoint to accept large files - Service management: Fix various crashes with large number of endpoints - OPC UA Server: Check for duplicate browsenames and nodeids and display appropriate error messages - Pfannenberg protocol: Fix too often renewal of subscriptions - Admin-UI: fixed count of resources in service detail page after resources have been deleted *************************** What has changed in 1.0.33? *************************** Another regular maintenance release of the Connectware! This time, stability for larger commissioning files is improved, as well as error reporting in OPC UA server, InfluxDB, and other places. And there are many other bugfixes and overall improvements. Added ====== - OPC UA client: Add optional check by TCP whether the target host and port is actually reachable (needs checkHostReachable: true) - OPC UA Server: Add OPC UA object types that can be received or published via JSON structures on MQTT topics. Changed ======== - Container manager: Add more descriptive error message if setting ulimit in container fails due to missing permissions, which are not available on some Docker host setups, see :ref:`user/services/structure/resources/container/ulimit` - OPC UA Server: Again introduce better error reporting on duplicate browse name errors - Admin-UI docker logs: Change button "raw logs download" to really return raw logs, which is the output from the Docker daemon's logs, not anymore a JSON file, see :ref:`user/system/logs`. - InfluxDB protocol: Improve InfluxDB user documentation and example, and improve error handling Fixed ======= - OPC UA protocol: Fixed handling of large number of endpoints by managing endpoint in address groups internally - Services: Some fixing of deviation tracking in larger commissioning files. Also, fix criterion when deviation tracking is switched on or off for larger amount of endpoints. - Services: Reduce proxy timeout errors when subscribing deviation tracking - Services: Improve the loading behaviour of persisted Service instances on service-manager restart - Protocol-mapper: Fix endpoint creation on container restart to also use batch creation *************************** What has changed in 1.0.32? *************************** This regular maintenance release of the Connectware brings stability improvements for OPC UA, some improvements on error reporting for container resources and container logs, and some bugfixes on InfluxDB and Modbus protocols. Added ====== - Container resources: Add support for configuring ulimit -n in containers from commissioning file properties, see :ref:`user/services/structure/resources/container/ulimit`. - Admin-UI: For container logs, added "Download raw logs" button for retrieving more details for bugfixing, see :ref:`user/system/logs`. Changed ======= - Container manager: better feedback on missing registry permissions for pulling Docker images - OPC UA client: Some log output improvements for larger customer setups - Docker logs: Set docker logging parameter max-file default to 2, so that there should be one log file always available Fixed ===== - OPC UA server: Fix occasional problems after service deletion when enabling another service with new OPC UA server - InfluxDB protocol: Fix disconnection tracking and improve configuration - Modbus protocol: Fix too quickly reported state changes, especially on startup *************************** What has changed in 1.0.31? *************************** Another regular maintenance release of the Connectware. There are bugfixes in some protocols, some user documentation, and optimizations. Changed ======== - SQL protocol: increased connection probe delay and reduced logging level. - Auth-server: Optimize basic auth API - OPC UA Server: ObjectNode integration. Allows creation of OPC UA object types by commissioning files and the ObejctType node creates a JSON topic that is published on MQTT topic. - Admin-UI: In the System->Agents list, allow offline agent entries to be deleted from the list. Fixed ======= - User docs: Added instructions on how to deploy an agent on the Modbus Agent example - Connection parameters: AdditionalProperties property was set to false in all protocol connections and endpoints schema. *************************** What has changed in 1.0.30? *************************** This regular maintenance release of the Connectware brings some protocol enhancements as well as a new node.js security patch and improvements to interdependent service handling. Changed ======= - Service manager: Introduce inter-service dependent enabling/disabling so that disabling a parent service with dependent child services will cause those to be disabled as well. - Werma protocol: Improve reconnection state handling - Update node.js to 12.21.0, which includes security updates - Container manager: Fix checking for docker container's hostname string length which must not exceed 63 characters. Watch out: Under certain conditions, longer container names were silently accepted and seemed to work, but will no longer be accepted now. Removed ======= - MSSQL protocol: Removed optional SQL syntax checking option. If the option is still used, a deprecation warning is logged, but nothing happens anyway now. Fixed ===== - OPC UA Server: Fix error on deletion, and fix large numbers of endpoint and node deletion *************************** What has changed in 1.0.29? *************************** This regular maintenance release of the Connectware brings some OPC UA and ingress timing bugfixes. Changed =========== - Ingress: Increase ingress route timeout to 30 seconds, and also add CYBUS_ROUTE_TIMEOUT as environment variable to the docker-compose.yml file. - OPC UA Server: Integration of prebuild Nodeset files - Modules update: nodejs to 12.20.2, vrpc to 2.3.2, pg to 8.5.1, db-migrate-pg to 1.2.2 Fixed ======= - OPC UA: Fix deletion of endpoints to not take too long anymore - Admin-UI: Fix TCP ingress routes erroneously shown as HTTP routes *************************** What has changed in 1.0.28? *************************** This release brings a new protocol for connecting to InfluxDB databases directly from the Connectware. Also, OPC UA Server can now have nodes added and removed at runtime flexibly. And some additional bugfixes for OPC UA Server, ADS protocol, and agent installation are improving Connectware stability and reliability continuously. Added ======== - InfluxDB protocol: Add support for InfluxDB connection protocol Changed ========== - Ingress: Update ingress-controller implementation to use Envoy API V3. - OPC UA Server: Enabled inter-service referencing for server nodes, so that additional nodes can be enabled and disabled while the server is running Fixed ======= - OPC UA Server: Fix re-creation of service after restarting connectware - OPC UA Server: Print useful error message for out-of-range values, in case a JSON message contains a value that does not fit in the range of the OPC UA node - OPC UA Server, MQTT protocol: Node and Endpoint with improved qos option handling - Agents: Fix permission problem on restarting previously running agents - Installer: Clarify default value of systemd install option - Service enabling: Improve error message on offline agent - Service catalog: fix download counter on installing a service from the services catalog - ADS protocol: fix error on write operation - ADS Protocol: Code cleanup and better error reporting *************************** What has changed in 1.0.27? *************************** Another regular maintenance release of the Connectware, including a collection of OPC UA bugfixes and other protocol improvements. Fixed ======= - OPC UA Server: Fix handling of initialValues for receivingDataNodes - OPC UA Server: Prohibit enabling if duplicate browseName was used - OPC UA: Update node-opcua to 2.31.0, fixing connection problems with Heidenhain client - ADS protocol: Fix cancelling of blocking connection requests - Fix spurious Endpoint/Node persistence files after deletion of service *************************** What has changed in 1.0.26? *************************** The next regular maintenance release of the Connectware, including a collection of connectivity bugfixes for various protocols and for the OPC UA Server. Changed ========= - OPC DA protocol: Improve handling of connection errors and wrong connection parameters to quickly show an understandable error message - Focas Protocol: Update Focas library to version 4.16 (February 2018) - Admin-UI: Let the Agent overview page also display Heidenhain agents - Containers will now exit on missing permissions Fixed ========= - OPC UA Server: finalize integration testing - GenericVrpc protocol: Fix multiple connects in remote agent - OPC UA Server: Fix parsing int64 values and also initial values - Bacnet protocol: Fix Bacnet connection errors (on subscribe) - MQTT Protocol: Fix MQTTS connection errors - Heidenhain protocol: Fix broken reconnect if agents are restarted *************************** What has changed in 1.0.25? *************************** This is just another regular maintenance release for the beginning of the year, bringing mainly some bugfixes for the OPC UA Server and some small improvements in SQL protocol and workbench handling. Added ======= - SQL protocol: Enabled submitting multiple records per message into one SQL statement - Workbench: Added node-red project support (git repository) Changed ======== - Ingress proxy: Update Envoy to version 1.17 - User docs: Added documentation for Cybus::Container resource limitations introduced in 1.0.21 Fixed ======== - OPC UA Server: Fix connection from UAExpert - OPC UA Server: Fix crashing protocol-mapper on additional services in parallel to OPC UA Server - OPC UA Server: Let OPC UA Server also start correctly from persistance - Containers: all containers should exit when authorization is not possible. VRPC update to 2.3.0. - User docs: Fix mistake in OPC UA docs and adjust Focas endpoint properties description. *************************** 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 :ref:`user/services/structure/resources/ingress-route`. - New protocol added: :ref:`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 :ref:`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 :ref:`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 ======= - :ref:`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 :ref:`Beckhoff ADS protocol `. Additionally, some user interface improvements were added, such as a notice about newer version availability on the :ref:`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 :ref:`OPC DA ` has been added, and plenty of small bugfix improvements make life easier in production use of the Connectware. Added ===== - Implement :ref:`OPC DA protocol` Changed ======= - Commissioning files: Allow more characters in :ref:`serviceId ` and :ref:`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 :ref:`SQL connection protocol ` has been added for connecting the MariaDB database. Added ===== - New protocol: :ref:`SQL connection protocol ` for e.g. MariaDB has been added Changed ======= - LDAP: Security and stability update. LDAP UTF-8 filter values now strictly required to be escaped following the \XX hex notation (see :ref:`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 :ref:`parse rule in RuleEngine` - Admin-UI: Improve UI performance for Endpoints - Update nodejs version to 12.18.4 Fixed ===== - User docs: Improved :ref:`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 :ref:`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 ===== - Pfannenberg protocol ported to v1.0 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 :ref:`Ethernet/IP ` has been added. The user documentation contains all :ref:`example commissioning files ` as direct downloads. Added ===== - New protocol: :ref:`Ethernet/IP protocol ` - User docs: :ref:`example commissioning files ` as downloads, and also verified to be loadable correctly 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 :ref:`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 :ref:`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 :ref:`user/explorer/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 :ref:`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: :ref:`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 :ref:`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, :ref:`Sinumerik ` and :ref:`Beckhoff ADS `. Also, many stability improvements have been implemented, along with regular bug fixes and UI improvements. Added ===== - Protocol implementation for :ref:`Sinumerik ` controls - Protocol implementation for :ref:`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 :ref:`Heidenhain ` protocol has been added and further stability improvements have been implemented, along with regular bug fixes and UI improvements. Added ===== - :ref:`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 :ref:`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 :ref:`user/changes-in-1-0`. For upgrading and migrating, see :ref:`user/upgrade-1-0`. This Changelog describes the incremental changes between each different patch version. .. toctree:: changes-in-1-0 upgrade-1-0 :maxdepth: 1 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 :ref:`user/changes-in-1-0` and :ref:`user/upgrade-1-0`