Edit this page Backlinks Add to book Export to PDF Book Creator Add this page to your book Book Creator Remove this page from your book Manage book (0 page(s)) Help Version History This document lists the changes in each released version of Codabix. For a list of known issues in the current version, see Known Issues. For a list of known issues in the current version, see Known Issues. v1.5 v1.5.0 (released 2023-07-28) (Changes compared to v1.4.21) Breaking Change: [Windows] Codabix now requires a 64-bit version (x64, Arm64) of Windows 10 (Version 1607) or Windows Server 2016, or higher. Breaking Change: [Linux] Codabix now requires Debian 11 (Bullseye), Ubuntu 20.04, Fedora 37, openSUSE Leap 15.0, or higher. Breaking Change: When using Microsoft SQL Server as back-end database, Codabix now requires Microsoft SQL Server 2014 (v12.x) or higher. Updated the .NET Runtime to v7.0.9. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v114.0.5735.199 (includes security fixes). Codabix Engine: When using MySQL, MariaDB, or Microsoft SQL Server as back-end database, you can now specify a separate database to use for storing history values. Codabix Web Configuration: Updated the Script Editor environment to Monaco Editor v0.35.0 and TypeScript v4.4.5. Extension XML Plugin: Added method nodes ImportNodes and ExportNodes that can be used to import or export nodes from/to an XML file, which is the same mechanism as using the “Export nodes as XML” and “Import nodes from XML” context-menu entries in the Codabix Web Config. Note: A result of this addition is that if a user has read+write access to the /System node, they will implicitely have read+write access to all nodes, as they can call the plugin's method nodes! Therefore, make sure that a user/user group doesn't have read+write access to the whole /System node if they shouldn't have read+write access to all nodes. Allen-Bradley Device Plugin: Updated driver to libplctag v2.5.5. Excel Exchange Plugin [UNSTABLE]: Added an experimental version of the Excel Exchange Plugin that allows you to read and write data using Excel files (.xls). Note: Do not use this plugin in production environments, as it might not work correctly and could cause hangs or crashes. REST Interface Plugin: Fixed inconsistencies in the API and the Swagger UI. Node paths can now be used for the NodeId route parameter in the URL. It's now possible to execute method node commands by using the URL /api/rest/Nodes/{id}/execute (provided that the user has read+write access to the method node). SignalR Interface Plugin: It's now possible to execute method node commands by using the method ExecuteNodeCommands (provided that the user has read+write access to the method node). OPC UA Server Interface Plugin: Calling method nodes now requires that the user has read+write access, instead read-only access. Script Interface: Breaking Change: A Blob node value is now returned as codabix.Blob instance, instead of as Base64 string (e.g. with codabix.NodeValue.value). Added class codabix.Blob that can be used to access Blob values. Added methods readAllBytesAsync and writeAllBytesAsync in the io.file namespace that allow to access binary files using an ArrayBuffer (e.g. to write them into a Blob node). Added a new options parameter to method net.httpClient.sendAsync which allows e.g. to specify that SSL/TLS errors should be ignored for testing purposes. v1.5.1 (released 2023-08-23) Updated the .NET Runtime to v7.0.10 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v116.0.5845.97 (includes security fixes). Codabix Engine: Fixed an issue that could cause connections to the back-end database to hang when using History Value Mode Table per Node. Fixed an issue that could cause Codabix to crash when using MSSQL as back-end database and the MSSQL server was temporarily not available. Script Interface: Fixed a issue (introduced in v1.5.0) that caused registered HTTP handlers that specify authentication: "mandatory" or authentication: "optional" in the options parameter to fail with an internal server error. v1.5.3 (released 2023-09-04) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v116.0.5845.111 (includes security fixes). The project settings now allow to configure settings for inserting history values into the back-end database. Extension XML Plugin: Fixed an issue where an import would fail when using Purge and some of the nodes to be deleted were system-generated (so the user didn't have the right to delete the node). S7 Device Plugin: Fixed an issue that could cause importing some STEP7 projects to fail, if it contained symbols with an empty name. v1.5.6 (released 2023-09-14) Updated the .NET Runtime to v7.0.11 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v116.0.5845.141 (includes security fixes). The project settings now also allow to configure the History Value GC run mode (serialized or parallelized). Extension XML Plugin: Fixed another issue where an import would fail when using Purge and some of the nodes to be deleted were system-generated (so the user didn't have the right to delete the node). Additionally, when updating nodes, all properties (not only special ones) are checked for the user having the necessary rights, and ignoring the property otherwise, so that in such a case the import no longer fails. OPC UA Client Device Plugin: Fixed an issue that would cause the Codabix Engine to temporarily hang while browsing event fields. REST Interface Plugin: Fixed a performance issue that lead to reading history values for a single node being read twice when the timeInterval parameter is specified (like in the Dashboards app). v1.5.10 (released 2023-10-17) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v117.0.5938.150 (includes security fixes). Codabix Engine: When reading history values and using Microsoft SQL Server as back-end database, a transaction with snapshot isolation level is now used to minimize the impact when at the same time new history values are inserted. For example, this allows to read history values while the history value dispatcher still has an open database transaction for inserting values. With MySQL/MariaDB, this was already the behavior with earlier Codabix versions. When querying history values using an end timestamp and optionally a start timestamp, the end timestamp is now treated as exclusive, so that it's possible to read ranges of history values using consecutive times intervals, without getting duplicated values. When using MySQL, MariaDB or Microsoft SQL Server as back-end database, the maximum connection pool size can now be configured. The engine now uses a separate database connection pool for core tasks like inserting history values, updating actual values, and updating node changes, so that these core tasks will work even when all other database connections are currently in use (e.g. due to long-running history value queries). Codabix Web Configuration: When displaying history values for a node, the creation timestamps and receive timestamps are now shown with millisecond precision. The actual value of a DateTime node is now displayed in ISO 8601 format with fractional seconds. OPC UA Server Interface Plugin: A new setting Use History Value Streaming (enabled by default) has been added, which specifies that history values should be streamed to the client when doing a HistoryRead. This means instead of having to read all values from the database at once and buffer them in the server before they can be sent to the client, they are now sent to the client (in chunks) as they are read from the database, which can significantly reduce memory usage in the server and allows faster response times. A side-effect of this is that a database connection may have to be open until the client finishes to read all history values or releases the history continuation point. For this reason, when this setting is enabled, the MaxHistoryConfigurationPoints setting in the OPC UA Server is set to 1, so that a session can have no more than one open history continuation point. Reading history values has been optimized so that the Codabix Engine no longer uses a SQL subquery. v1.5.11 (released 2023-11-03) Updated the .NET Runtime to v7.0.13 (includes security fixes). Codabix Engine: A new project setting “Enable Audit Trail Log” has been added which, when enabled, causes [Audit] entries to be logged to the CodabixLog.txt file whenever a user makes changes in the Codabix node tree. Modbus Device Plugin: Support for reading/writing strings has been added. Excel Exchange Plugin [UNSTABLE]: Support for subscriptions has been added. v1.5.12 (released 2023-11-09) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v119.0.6045.105 (includes security fixes). OPC UA Server Interface Plugin: A new setting Max History Streaming Continuation Points has been added, which allows to define the max number of history continuation points when setting Use History Value Streaming is enabled. This setting is used to limit the number of back-end database connections that an OPC UA session can “lock” by having open history continuation points. The default value is 2. REST Interface Plugin/SignalR Interface Plugin: Node properties maxValueAge, historyResolution, maxHistoryValues, and maxHistoryAge can now be accessed. v1.5.13 (released 2023-11-16) Updated the .NET Runtime to v7.0.14 (includes security fixes). Codabix Engine: Support for Active Directory Authentication for Codabix Users has been added (supported on Windows only). When setting the account type of a user to “Active Directory” and specifying the Domain field, Codabix attempts to contact the specified Active Directory domain to verify the user's password (instead of checking the locally set password of the Codabix User) when authenticating the user. v1.5.14 (released 2023-11-20) Codabix Engine: Updated SQLite to v3.44.0. Codabix Web Configuration: Fixed a regression (introduced in v1.5.13) that prevented to edit user groups of a user. v1.5.15 (released 2023-12-06) Please note: This release includes some minor breaking changes due to security improvements. Codabix Host: For security reasons, the default File Access Level Normal (in the project's Access Security settings) no longer includes write access to the log subfolder of the project directory, but instead only allows read access. This is to ensure that the Codabix Admin user (or other users) can't overwrite the audit trail log (when enabled) that is intended to trace all node tree changes done by users. If you want to write to a file in the log subfolder in a Script, you will have to add a separate Access Security entry in the project settings that allows write access for the file. When creating a backup via the CLI using the codabix backup command, specifying the --include-security-keys option no longer automatically includes the project settings password key (used e.g. to encrypt the back-end database login password). To also include that key, the new option --include-project-settings-password-key must additionally be specified. This separation was made to reflect the change when creating a backup via the Codabix Web Configuration, which no longer includes the project settings password key (see below). Codabix Engine: Support for Active Directory Authentication has been enhanced to also support Active Directory Groups. When setting the account type of a user to “Active Directory Group” and specifying the Domain field, Codabix attempts to contact the specified Active Directory domain to verify the user's password, and then checks whether the AD user is in the AD group specified in the Login Name field when authenticating the user. When authenticating a user, the authentication process is now logged as Debug entry in the runtime log (CodabixLog.txt), to allow tracing the steps especially for Active Directory authentication. When writing Codabix Runtime Log entries (e.g. created by Scripts) into the CodabixLog.txt log file, C0 and C1 control characters (except for HT, LF, CR) are now replaced, to ensure terminals cannot be manipulated with escape sequences when printing the log file. Codabix Web Configuration: For security reasons, when creating a backup, the project settings password key (used e.g. to encrypt the back-end database login password) is no longer included. The key will still be included when creating the backup via one of the host applications (Codabix application, Codabix Shell application), or via the CLI. For security reasons, when restoring a backup, you can no longer select to restore log files, as this would otherwise allow the Codabix Admin user to overwrite the audit trail log (when enabled). To restore log files, the backup needs to be restored via one of the host applications (Codabix application, Codabix Shell application), or via the CLI. Inline editing (via F2 or double-click) in the Scripts view has been removed, as that could cause a wrong script to be updated when the table was sorted. Instead, you can right-click on the Script and choose “Edit”. OPC UA Server Interface Plugin: When adding or removing users or changing their passwords in Codabix, it's longer necessary to restart the OPC UA Server Interface Channel, as the changes will be applied to the OPC UA Server after 30 seconds at the latest. v1.5.16 (released 2023-12-15) OPC UA Client Device Plugin: Fixed an issue that could lead to the channel hanging in the “Connecting…” state when the client lost the connection to the server and you have created at least one “Alarms + Events” node. v1.5.17 (released 2024-01-12) Updated the .NET Runtime to v7.0.15 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v120.0.6099.129 (includes security fixes). Codabix Engine: Fixed an issue (introduced in v1.5.11) that could cause a crash when invoking a method node that has output arguments, and the output arguments are written to the OUT nodes. OPC UA Client Device Plugin: Support for reading custom union types (as JSON string) has been added. Support for reading custom structured types (as JSON string), that are only declared via a data type definition instead of a data type description in the TypeDictionary, has been added. v1.5.18 (released 2024-02-02) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v120.0.6099.234 (includes security fixes). Codabix Engine: Fixed an issue that could cause active subscriptions on device variables to continue reading values from an old addresses after changing the node's Path property. Socket Device Plugin: A new setting Auto Reconnect (enabled by default) has been added that allows to specifiy whether to automatically reconnect after the connection was closed or couldn't be established. It is now possible to shutdown the send channel of the connection (sending a FIN flag, instead of resetting the connection) by writing a null value (instead of a string) into the transmit buffer. TCP Keep-Alive is now enabled to detect a broken connection after a maximum of 30 seconds. v1.5.19 (released 2024-02-07) Codabix Engine: Updated SQLite to v3.45.1. Fixed a issue (introduced in v1.5.18 by the subscription fix), that could cause a crash in certain circumstances when creating a subscription on a device variable after changing its path. Script Interface: Added the io.storagemodel namespace that contains types for accessing FTP servers. v1.5.20 (released 2024-03-05) Updated the .NET Runtime to v7.0.16 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v121.0.6167.184 (includes security fixes). Codabix Engine: Added new value types Variant and Variant-Array, where the former allows to write any primitive (non-array) value except for CodabixObject, and the latter allows to write an array where each element can be any of the supported primitive (non-array) types except for CodabixObject, including null values. SQL Exchange Plugin: You can now change the value type of the ColumnsSet nodes to the new Variant-Array value type, so that it's possible to read columns where one of the rows has a NULL value. REST Interface Plugin: The UserGroups entries returned by the /api/rest/Users/authenticate endpoint now contain the group's name via the name property. Script Interface: Fixed an issue that caused the FtpStorage constructor (added in v1.5.19) not to check whether outbound connections are allowed in the Access Security settings of the Codabix Project Settings. v1.5.21 (released 2024-03-21) Updated the .NET Runtime to v7.0.17 (includes security fixes). Extension XML Plugin: Fixed an issue that could cause the XML export to fail when one of the nodes contained string values with control characters that are not allowed by the XML 1.0 specification. In this case, such control characters are now replaced with the U+FFFD replacement character. SQL Exchange Plugin: When browsing a table, nodes in the ColumnsSet folder whose Value Type has been set to Variant-Array (introduced in v1.5.20) will now keep using that type, instead of being changed back to the original Value Type that doesn't allow to read NULL values. REST Interface Plugin: When reading history values, the property receiveTimestamp is now included that returns the receive timestamp of the value. SignalR Interface Plugin: When reading history values, the property receiveTimestamp is now included that returns the receive timestamp of the value. Note: When using the Codabix.Web.SignalR NuGet package in a .NET application, this change will require at least version 1.0.0-preview9-240322 in order to be able to read history values. v1.5.22 (released 2024-04-12) Updated the .NET Runtime to v7.0.18 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v123.0.6312.46 (includes security fixes). REST Interface Plugin: Fixed an issue that could cause the CreateNode endpoint to return a node ID format that is not parsable when passing it back to the interface. Properties globalIdentifier and token have been added when reading a node. SignalR Interface Plugin: Fixed an issue that could cause the CreateNode endpoint to return a node ID format that is not parsable when passing it back to the interface. Properties globalIdentifier and token have been added when reading a node. v1.5.23 (released 2024-04-15) EUROMAP Device Plugin: Added new nodes UserName and UserID in the Data folder of Change events, which contain the user_name and user_id values. Fixed a regression (introduced in v1.5.21) that could result in the error “Invalid job name” when executing an Euromap operation. v1.5.26 (released 2024-05-06) Updated the .NET Runtime to v8.0.4. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v124.0.6367.119 (includes security fixes). Codabix Engine: Fixed an issue when creating a backup that includes history values, which could cause error messages about history values (but no data loss) after restoring the backup. S7 Device Plugin: Fixed an issue that caused some variables to be missing when importing STEP7 projects. EUROMAP Device Plugin: Added a workaround for a syntax issue in the Time field in alarm files that may be produced by certain machines. REST Interface Plugin/SignalR Interface Plugin: Fixed an issue that prevented to read history values when specifying both the start and end timestamps, and end is less than start. This can be used to read the newest values in descending order, instead of reading the oldest values in ascending order. v1.5.27 (released 2024-05-21) Updated the .NET Runtime to v8.0.5 (includes security fixes). OPC UA Client Device Plugin: Added setting “Preload Node Cache” (in section “Classic”) that allows to disable the initial preloading of the node cache, if the server has a huge number of nodes. Implemented a workaround for some OPC Classic servers that don't support reading certain properties. v1.5.28 (released 2024-06-12) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v125.0.6422.142 (includes security fixes). OPC UA Client Device Plugin: Added setting “Ignore Read During Subscription” which specifies whether the channel worker should ignore read commands for a node (and just return the current node value as result) when a subscription for that node is currently active. SignalR Interface Plugin: Fixed the exception Microsoft.AspNetCore.SignalR.HubException: 'Failed to invoke 'FindNodes' due to an error on the server. HubException: Method does not exist.' which could occur when a client called CodabixClient.ReadNodesAsync(). v1.5.29 (released 2024-07-10) Updated the .NET Runtime to v8.0.7 (includes security fixes). Codabix Engine: Synchronous read operations for the same variable nodes that are started within the same node lock are now always combined, if supported by the plugin module. This improves predictability in certain cases, for example when using the transfer script with multiple transfers using the same trigger and source nodes. Allen-Bradley Device Plugin: Fixed an issue with the “Check Connection” mechanism (introduced with v1.4.16) which could cause the connection status to show “Connected.” even when the connection actually couldn't be established. v1.5.30 (released 2024-07-23) Codabix Engine: Fixed an issue which could lead to a hang when using SQLite (Embedded) as back-end database mode and using an OPC UA Client to read history values for multiple nodes in Codabix via the OPC UA Server Interface. Script Interface: Fixed an issue with node event handlers (like ValueChanged), where the prototype object instead of the actual codabix.Node instance object was erroneously passed as this value. v1.5.31 (released 2024-08-20) Updated the .NET Runtime to v8.0.8 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v127.0.6533.100 (includes security fixes). Codabix Engine: Updated SQLite to v3.46.0. Codabix Dashboards: Bugfixes: The minutes were not read out correctly in the line chart widget when using the “Until now” setting option. v1.4 v1.4.0 (released 2022-07-28) (Changes compared to v1.3.12) Updated the .NET Runtime to v6.0.7. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v103.0.5060.134 (includes security fixes). The Codabix Dashboards application which is available under the URL /dashboards/ was updated to version 1.1.0 which contains improvements. Codabix Engine: [Breaking Change] For security reasons, device plugins that access directly connected devices like the serial port or I²C bus now require the option “Allow Context-sensitive Resource Access” in the Codabix Access Security Settings to be enabled. Added node properties MaxHistoryValues and MaxHistoryAge that can be used to limit the number/age of history values for a node. A background task checks regularly (about every 5 minutes) for values that exceed this limit, and deletes the corresponding history values. When exporting nodes as XML (through the context menu in the Codabix Web Configuration), you can now specify to decrypt passwords (that are stored in Password nodes), so that when later importing the XML file in a another project (that uses a different password key), the passwords will be kept. WebService Client Device Plugin: Added the WebService Client Device Plugin which allows to call HTTP-/SOAP-based Web Services using method nodes in Codabix. MQTT Device Plugin: You can now manually specify a ClientID. If not specified, a new ID is generated for each session. SINUMERIK Device Plugin: Added method nodes for uploading and downloading files. The Upload method transfers a file from the machine to Codabix, while the Download method transfers a file from Codabix to the machine. The MPI Address can now be set. The connection status (Connected or Disconnected) is now shown in the channel's control panel. S7 Device Plugin: Fixed an issue that caused the channel type Operator Panel to be used for S7-300 and S7-400 even if Programmer Device was selected. SQL Exchange Plugin: Connection management has been improved in order to reduce overhead and resource usage. OPC UA Server Interface Plugin: Channels now have a new Nodes folder. When the folder is not empty while the channel is started, that folder's child nodes are then directly exposed in the OPC UA Server's Objects folder, instead of providing a Codabix folder that contains the Codabix root nodes. REST Interface Plugin: Fixed an security issue through which a user could gain access to nodes which they shouldn't have access to (according to the set UserGroups). Script Interface: Added namespace runtime.convert which contains methods to convert a Base64 string (that is returned e.g. returned when accessing a Blob value) to an ArrayBuffer, and vice versa. Improved behavior when starting a script, so that generating native code for the script functions (which may take some time) is now done before actually starting the script, so that it doesn't lead to delays when a script function is called for the first time. v1.4.1 (released 2022-08-18) Updated the .NET Runtime to v6.0.8 (includes security fixes). Codabix Dashboards: Fixes: incorrectly displayed name of a graph in the line chart widget incorrect display of the selected date in the settings of the line chart widget no content is shown after the initialization of the Dashboards application Added features: new widget for displaying a node's value as segment display new widget for displaying nodes in a bar chart new widget for displaying nodes in a doughnut chart enable customization of the x-Axis labels of a line chart dark and light mode SignalR Interface Plugin: Added features: A ReadNode now has a new property NodePath, that contains the absolute node path of the read node REST Interface Plugin: Added features: A ReadNode now has a new property NodePath, that contains the absolute node path of the read node v1.4.2 (released 2022-09-14) Updated the .NET Runtime to v6.0.9 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v105.0.5195.102 (includes security fixes). Codabix Dashboards: Fixed Bugs: Connection loss to Codabix not handled The design was not always adjusted correctly in dark mode After leaving a dashboard, the overview page was not correctly displayed for a short time Adding multiple dashboards with the same name was not possible In the case of incorrect username or password, no corresponding error message was issued Added Features: New widget for displaying a node's value as speedometer display Throwing an error if the linked node path in a widget points to an invalid node type Dashboards and widgets can be duplicated A dashboard can be zoomed in or out S7 Device Plugin: Fixes: import of Step7 projects: Data blocks which are marked as monitorable and controllable have not been imported import of Step7 projects: Incorrect address calculation of specific data types v1.4.3 (released 2022-10-12) Updated the .NET Runtime to v6.0.10 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v106.0.5249.91 (includes security fixes). Codabix Web Configuration: You can now also link existing datapoint nodes using Drag & Drop from a second Node Explorer window. SignalR Interface Plugin: Fixed an issue (introduced with v1.4.2) that could cause a performance degradation when reading multiple nodes. REST Interface Plugin: Fixed an issue (introduced with v1.4.2) that could cause a performance degradation when reading multiple nodes. v1.4.4 (released 2022-11-04) OPC UA Server Interface Plugin: You can now specify the NodeId Seperator used to build NodeIds from node names. The default is /, which was also used in previous versions. Extension Lifebit Plugin: Added the Extension Lifebit Plugin that allows to write a lifebit (alternating True and False values) to nodes (e.g. device variables) at a specified interval. Codabix Dashboards: For the time specification as a unit for the x-axis of the line chart, the timestamp with milliseconds can now also be displayed Possible to display boolean values in the line chart The user interface (logo, title, color scheme) can now be customized v1.4.5 (released 2022-11-09) Updated the .NET Runtime to v6.0.11. SignalR Interface Plugin: Fixed an issue (introduced with v1.4.3) that could cause an error when using admin as username (as e.g. in the Codabix Dashboards application). REST Interface Plugin: Fixed an issue (introduced with v1.4.3) that could cause an error when using admin as username (as e.g. in the Codabix Dashboards application). v1.4.6 (released 2022-12-14) Updated the .NET Runtime to v6.0.12 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v107.0.5304.110 (includes security fixes). OPC UA Server Interface Plugin: Added the setting Server Diagnostics Enabled (in the Diagnostics folder) that allows to enable Server Diagnostics, so that e.g. the currently active Sessions are displayed in the OPC UA Server object. REST Interface Plugin: It is now possible to authenticate in the Swagger UI, in order to use the “Try it out” feature. Fixed some issues that could cause an error when accessing the REST Interface. Codabix Dashboards: It is possible to include Start Time Boundary for line chart values. v1.4.7 (released 2023-01-16) Updated the .NET Runtime to v6.0.13 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v109.0.5414.87 (includes security fixes). Extension Lifebit Plugin: Fixed an issue that caused no life bit value being written to a node if it was in a subfolder within the group's “Nodes” folder. v1.4.8 (released 2023-02-07) Codabix Engine: The /System/Environment folder contains new subfolders Backend and History which monitor the status of the back-end and history database. For example, if the history value buffer overflows as the database cannot insert them fast enough, this error is now reported using a negative status code for at least 5 seconds (in addition to logging the error in the Codabix Runtime Log). Extension Lifebit Plugin: You can now create conditions, so that the life bit is only written if the condition's node value is matched. Codabix Dashboards: New Features: Implemented a kioskMode (add the following to the dashboard url: &displayMode=kiosk) Implemented a option to hide the dashboard title (add the following to the dashboard url: &showTitle=false) The dashboard settings were extended. Its now possible to adjust the header color Bug Fixes: No dashboards for a short time when switching from a dashboard to the dashboard overview Error handling of the individual widget was not handled correctly It was not handled correctly if the logged in user on the dashboard no longer exists in Codabix If individual values for the colors were set in the dashboard settings, the new color was not applied everywhere in the dashboard v1.4.9 (released 2023-02-27) Updated the .NET Runtime to v6.0.14 (includes security fixes). Codabix Engine: The maximum size of the history queue that buffers history values that are to be inserted into the back-end database has been increased, to avoid losing history values during a transient emergence of a huge number of history values. v1.4.10 (released 2023-03-16) Updated the .NET Runtime to v6.0.15. EUROMAP Device Plugin: Fixed an infinite loop that could sometimes occur when parsing GETINFO response files. Added workarounds for syntax errors in GETINFO response files and session response files produced by certain machines. Serial Port Device Plugin: The check of the port name/path was relaxed, to allow to access serial ports whose name was specified e.g. with a udev rules file. v1.4.12 (released 2023-04-05) EUROMAP Device Plugin: The Min Session Number setting is now honored. Added a workaround for parsing a command response files produced by certain machines, where semicolons are missing. S7 Device Plugin: Settings Connect Timeout, Transmit Timeout, and ReceiveTimeout have been added to control these connection timeouts. SQL Exchange Plugin: The specified Command Timeout is now applied correctly for Oracle database connections. v1.4.13 (released 2023-04-19) Updated the .NET Runtime to v6.0.16 (includes security fixes). Codabix Engine: Nodes can now be made read-only (e.g. by specifying IsReadOnly="True" in the XML file used to import nodes, by using a script to set the isReadOnly property to true, or by using the REST/SignalR Interface), in which case a user cannot change any property of the node (except for IsReadOnly), cannot (un-)link it, and cannot write values to it. When using Microsoft SQL Server as back-end database, and a database operation fails due to the database reaching the maximum file size (NO_MORE_SPACE_IN_FG), history values whose CreationTimestamp is less than the minimum CreationTimestamp plus 24 hours are now automatically deleted, to ensure new history values can be inserted again. Codabix Web Configuration: Fixed an issue that could result in a crash when using the Web Configuration to change the value type of a node from File to another type. SQL Exchange Plugin: A new method node DeleteRows has been added which can be used to execute a DELETE FROM … SQL statement for the table. You can specify the corresponding WHERE clause in the DeleteSqlExpression table setting. EUROMAP Device Plugin: When break detection restarts a report on the Euromap machine, the a new file name is generated for the report response file, to avoid accidentally reading stale data if the old file still exists. H1 Device Plugin: Fixed an issue which prevented addresses from being parsed correctly. v1.4.15 (released 2023-05-16) EUROMAP Device Plugin: Fixed an issue that caused a failed attempt to get the job result to not being retried. OPC UA Client Device Plugin: Fixed an issue which caused unnecessary fields in the SelectClause of an EventFilter (for an event subscription) to be added. v1.4.16 (released 2023-05-17) Codabix Engine: Improved behavior of writing history values to the back-end database, so that old history values are not deleted at the same time when new history values are inserted. Allen-Bradley Device Plugin: Added a new channel setting Check Connection which allows to check whether a TCP connection to the PLC can be established, and display the state in the Channel Status (like for other device plugins). This setting is disabled by default as it requires a separate TCP connection (so there may be two TCP connections opened for a single channel at the same time), which might reduce the remaining number of available connections to the PLC. v1.4.17 (released 2023-06-14) Updated the .NET Runtime to v6.0.18 (includes security fixes). Codabix Engine: Fixed an issue which could cause the error “Collection was modified; enumeration operation may not execute.” in specific situations, e.g. when importing variable nodes from an XML file. Script Interface: Increased the maximum log string length (when passed to logger functions) after which the string is truncated to 5000 chars. v1.4.20 (released 2023-07-06) EUROMAP Device Plugin: Changed the value type of the EventType node for alarms from Int32 to String, to handle machines that incorrectly write a text instead of a number for the alarm_number field. GETINFO requests can now use the response mode May Linger. Modbus Device Plugin: The connection check now uses the Read Holding Register function (03) instead of the Read Coil function (01), as not all Modbus devices support the latter. Fixed an issue that could cause response data to be misinterpreted after a read timeout occured. OPC UA Client Device Plugin: Added a new setting “Browse Array Element Child Nodes” which, when set to True, disables the optimization when browsing the server, which would skip nodes that represent an array element. v1.4.21 (released 2023-07-13) Updated the .NET Runtime to v6.0.20 (includes security fixes). v1.4.22 (released 2023-08-23) Updated the .NET Runtime to v6.0.21 (includes security fixes). Codabix Engine: Fixed an issue that could cause connections to the back-end database to hang when using History Value Mode Table per Node. Fixed an issue that could cause Codabix to crash when using MSSQL as back-end database and the MSSQL server was temporarily not available. EUROMAP Device Plugin: When a report is active and the report file has less rows than before, a warning is logged and the internal row counter is reset to zero, so that all rows in the file are then read. This is to handle the case when the report file got truncated. v1.3 v1.3.0 (released 2021-12-16) (Changes compared to v1.2.6) Updated the .NET Runtime to v6.0.1. [Linux] Linux distributions which use OpenSSL 3 (e.g. Ubuntu 22.04) are now supported. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v96.0.4664.110 (includes security fixes). [Linux] When running on a Raspberry Pi, a different machine code is now generated. However, licenses that use the previous machine code will continue to work. A new setting Allow outbound connections has been added to the Codabix Access Security Settings, which can be disabled to disallow outbound socket and serial port connections. For example, this allows you to view and edit the Codabix configuration (nodes and scripts) without Codabix interfering with external devices and databases. Codabix Engine: Improved the behavior of devices where Simluation Mode is enabled (e.g. in the OPC UA Client Device), in order to respect the forceUpdate flag when creating a subscription. AKLAN Device Plugin: Breaking Change: AKLAN Connections are blocked by default for security reasons. To allow them, enable the option “Allow context-sensitive credentials” in the Codabix Access Security settings. EUROMAP Device Plugin: Added method nodes in the device channel that allow to execute DOWNLOAD and UPLOAD commands. Modbus Device Plugin: Support for the Modbus RTU protocol has been added. SINUMERIK Device Plugin: The plugin is now considered stable, and is installed by default. v1.3.1 (released 2021-12-20) SignalR Interace Plugin: Improved the behavior when ForceUpdate is set to False in the NodeValueSubscriptionParameters, so that a value from the ValueChanged event is only sent to the client if the value has actually changed (if IsValueChanged is True), in order to reduce network traffic. v1.3.2 (released 2022-01-12) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v97.0.4692.71 (includes security fixes). Database Plugin: Added a new attribute schema to the <DbConnection> element, which can be used to specify the table schema (e.g. for MSSQL, when it is not dbo). REST Interface Plugin/SignalR Interace Plugin: Fixed an issue which could cause the read node value(s) operation (where PerformRead is set to true, or when using a batch read) to fail. Fixed an issue which could allow a user to get read access to the nodes of one of their user groups even though the user group's access type was set to NoAccess. Script Interface: Fixed an issue in method net.httpClient.connectWebSocketAsync() which caused no timeout to be applied, which could cause a hang in specific circumstances (e.g. when the network connection was interrupted or the server never sends a response). Now, the method uses a timeout of 100 seconds, similar to the HTTP client. v1.3.3 (released 2022-01-13) OPC UA Client Device Plugin: Added a new setting SubscriptionPublishingInteval to the channel which allows to set the PublishingInterval to be used for the created OPC UA subscriptions. S7 Device Plugin: Fixed an issue which could cause a read of a variable to return an error like “The addressed data area does not exist” even if it actually exists, in case the variable is read together with another variable whose data area does not exist. v1.3.4 (released 2022-01-31) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v97.0.4692.99 (includes security fixes). OPC UA Client Device Plugin: Added a new setting Locales to the application settings which can be used to specify the supported locales. When AutoAcceptUntrustedCertificates is true (the default), other certificate errors (e.g. expired certificates) are ignored as well, as the connection is already no longer secure. OPC UA Server Interface Plugin: When a client has subscribed a node and that node is then deleted, renamed or moved in Codabix, the client will now get a new value with status BadNodeIdUnknown to indicate that the monitored item is no longer working, instead of erroneously displaying a stale value with Good status. Script Interface: When a script is stopped due to exceeding the timeout of 15 seconds, the stack trace is now also shown in the error message to help with debugging. v1.3.5 (released 2022-02-10) Updated the .NET Runtime to v6.0.2 (includes security fixes). Codabix Engine: Fixed a security issue which could cause the Codabix Access Security to incorrectly allow access to directories with a different casing in their path than the one specified in the Access Security settings on case-sensitive file systems (like on Linux). v1.3.6 (released 2022-03-09) Updated the .NET Runtime to v6.0.3 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v99.0.4844.51 (includes security fixes). Codabix Web Configuration: Fixed an issue which caused the “Unlink” button in the “Link Node” dialog to not work correctly. Codabix Engine: Fixed an issue which could cause a restore backup operation to fail when using Microsoft SQL Server as back-end database and using “Table per Node” as History Value Mode. v1.3.7 (released 2022-04-20) Modbus Device Plugin: The compatibility with different Modbus Implementations has been improved. v1.3.8 (released 2022-04-25) Updated the .NET Runtime to v6.0.4. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v100.0.4896.127 (includes security fixes). v1.3.9 (released 2022-05-04) EUROMAP Device Plugin: Fixed an infinite loop that could occur when parsing certain incorrectly encoded GETID response files. v1.3.10 (released 2022-05-20) Updated the .NET Runtime to v6.0.5 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v101.0.4951.67 (includes security fixes). SINUMERIK Device Plugin: You can now import .DEF or .NSK files in the channel, which will automatically create the corresponding folders and variables. Script Interface: Added method get to the inputArguments and outputArguments arrays of NodeCommandContext, so that it is possible to retrieve a node argument by name. v1.3.12 (released 2022-06-20) Updated the .NET Runtime to v6.0.6 (includes security fixes). This update also includes a fix for a regression that caused starting scripts to take more time than usual. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v102.0.5005.115 (includes security fixes). EUROMAP Device Plugin: Added a new setting Use Break Detection which, when enabled, regularly sends GETINFO commands to the machine to detect whether the machine lost active reports/events, and restart them in that case. REST Interface Plugin: Fixed an issue which prevented the Swagger UI from correctly showing the endpoint documentation. v1.2 v1.2.0 (released 2021-09-29) (Changes compared to v1.1.6) Breaking Change: [Windows] Codabix now requires Windows 8 or Windows Server 2012, or higher. Breaking Change: [Linux] On Debian (or derivates like Raspberry Pi OS), Codabix now requires Debian 10 or higher, and on Fedora, Codabix now requires Fedora 33 or higher. Updated the .NET Runtime to v5.0.10. [Windows] A new build Codabix for Windows (Arm64) is now available which runs on ARM-based PCs, such as the Surface Pro X, or Windows VMs running on a Apple Silicon based Mac. Note: Currently, this build doesn't include the Melsec QJ Device Plugin and the H1 Device Plugin. Codabix Host: Support for the NO_COLOR environment variable has been added to the Codabix Shell application, in order to disable virtual terminal sequences (“ANSI color”) when that variable is present. Codabix Web Configuration: Updated the Script Editor environment to Monaco Editor v0.25.2 and TypeScript v4.3. Codabix Engine: A new option History Value Mode can be set in the Project Settings, which allows to use a separate history value table per Node (instead of a single table) in order to improve performance when reading history values. Allen-Bradley Device Plugin: Updated driver to libplctag v2.3.8. Beckhoff Device Plugin: Added the Beckhoff Device Plugin which allows you to connect to TwinCAT machines (using TwinCAT 3.1.4024 or higher). EUROMAP Device Plugin: Support for Events (Alarms/Changes) has been added. Support for file access using FTP has been added. The behavior of accepting a response has been improved when the Command Response Mode is set to MayLinger. Logging at Debug level was improved for diagnostic purposes. Modbus Device Plugin: The endianness (byte order) for numeric values can now be configured. OPC UA Client Device Plugin: Breaking Change: Connections to OPC Classic servers are blocked by default for security reasons. To allow them, enable the option “Allow context-sensitive credentials” in the Codabix Access Security settings. Support for event subscriptions has been added using the Alarms + Events folder. A new section Classic has been added to the settings that allow to customize OPC Classic connections. When reading variant nodes (that specify a datatype ID of i=24), built-in structured datatypes like LocalizedText, DataValue, Range are now fully serialized as JSON. For method nodes, you can now specify the variant data type (i=24) in the path (JSON format) of their OUT argument nodes so that built-in structured datatypes like LocalizedText, DataValue, Range are serialized as JSON. RFC-1006 Device Plugin: Fixed an issue where a wrong TPDU size was sent as part of the connection handshake in server mode. Serial Port Device Plugin: Added the Serial Port Device Plugin which allows you to connect to serial devices, like barcode scanners. SQL Exchange Plugin: Support for calling stored procedures and functions when using MySQL/MariaDB has been added. Additionally to the nodes in folder Columns, there is now a folder ColumnsSet that will also contain column nodes after browsing the database/table, but with array types. This allows you to read a whole result set (multiple rows) from the table, where then the array for each node contains the values for this column from each row that was read. Columns with unsupported value types can now be read as String value. Fixed an issue that prevented a CHAR(36) column from being read as string when using a MySQL or MariaDB database. OPC UA Server Interface Plugin: Fixed an issue that caused the wrong value type being returned (byte array instead of ByteString) when calling the Read method on file nodes. REST Interface Plugin: Authentication tokens now use a project-specific key, instead of one generated in the current process. SignalR Interace Plugin: The HTTP header Access-Control-Allow-Credentials is no longer sent for security reasons because it isn't necessary for this application. For browser-based SignalR clients, you can specify "withCredentials": false in the object used by withUrl(). Authentication tokens now use a project-specific key, instead of one generated in the current process. Script Interface: Added method net.ping.sendAsync that allows you to send an ICMP echo request. Method net.registerHttpRoute() now has an additional options parameter that can be used to enable/force user authentication. If enabled, the client can acquire a token from the REST Interface v2 and then send it as Authorization: Bearer <token> header. Information about the authenticated user can then be retrieved from the net.HttpContext.user property. Added property expectContinue to net.httpClient.HttpRequestMessage to allow to specify that an Expect: 100-continue header is to be sent, in order to wait for a response from the server before sending the request body. [Windows] Accuracy for timeouts specified in timer.delayAsync has been improved for low values. v1.2.1 (released 2021-10-14) Updated the .NET Runtime to v5.0.11 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v94.0.4606.71 (includes security fixes). Socket Device Plugin: Fixed a synchronization issues that could lead to a packet written into the transmit buffer node being sent for the next connection instead of for the current one. REST Interface Plugin/SignalR Interace Plugin: Fixed an issue that could lead to a hang when reading history values. v1.2.2 (released 2021-10-18) OPC UA Server Interface Plugin: Fixed an issue (introduced in v1.2.0) that could cause file nodes to open the file of a different file node. Script Interface: Fixed an issue in method net.RawWebSocket.receiveAsync which could lead to returning immediately without receiving a message, or to swallowing an empty message. v1.2.3 (released 2021-10-28) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v95.0.4638.54 (includes security fixes). EUROMAP Device Plugin: Support for Reports has been enhanced, so that reports are automatically started in the machine and values from the resulting report log files are automatically written back into the corresponding parameter nodes in Codabix. OPC UA Client Device Plugin: The ConditionId node is now automatically created when browsing a event whose type is derived from ConditionType. v1.2.4 (released 2021-11-26) Updated the .NET Runtime to v5.0.12. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v96.0.4664.55 (includes security fixes). MQTT Device Plugin: The MQTT Device Plugin implementation has been revised in order to be useable for production scenarios. v1.2.6 (released 2021-12-01) Database Plugin: Fixed an issue (introduced with v1.2.4) which could cause connections to Microsoft SQL Server to fail when the server supports SSL/TLS. EUROMAP Device Plugin: Reports are now generated using the APPEND mode to ensure the report data is not overwritten. SignalR Interace Plugin: Increased the maximum receive message size from 32 KiB to 4 MiB, to allow to receive larger requests. v1.2.7 (released 2021-12-16) Updated the .NET Runtime to v5.0.13. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v96.0.4664.110 (includes security fixes). Codabix Engine: Improved the behavior of devices where Simluation Mode is enabled (e.g. in the OPC UA Client Device), in order to respect the forceUpdate flag when creating a subscription. v1.1 v1.1.0 (released 2021-05-07) (Changes compared to v1.0.10) Codabix Host: A preview version of the new Codabix Dashboards application was added which is available under the URL /dashboards/. Codabix Engine: Breaking Change: The name of settings files used by plugins (CSV Exchange Plugin, Database Plugin, S7 Device Plugin) was changed from CoDaBix.*.Settings.xml to Codabix.*.Settings.xml. When you upgrade from a previous Codabix version, Codabix automatically tries to rename the files, but you should check if you used the previous file names in other applications. Breaking Change: The Precision property of a node has been replaced with the Format property that can contain a .NET format string for numeric and DateTime/TimeSpan value types. When upgrading from a previous version, the existing Precision values are automatically converted to corresponding Format values. A new field “Login Name” has been added to User objects which can be used for logging in (alternatively to E-Mail and Phone Number), e.g. in the REST API and in OPC UA Clients. A new fixed Anonymous User (ID -1) has been added that can be used to configure anonymous user access for plugins that support anonymous authentication. Improved value conversion to not convert a value into the node value type before invoking value converters when reading a value from a device, in order to allow value converters access the raw value. OPC UA Server Interface Plugin: Anonymous user authentication can now be used by adding the Anonymous User to one or more user groups. Added new transport settings MaxMessageQueueSize and MaxNotificationsPerPublish and use high default values, so that the server can buffer a higher number of notifications. OPC UA Client Device Plugin: Support for OPC Classic was refactored in a separate component (OPC UA Gateway) for better stability. Note: The OPC UA Gateway component requires the .NET Framework 4.7.2 or higher to be installed. S7 Device Plugin: It is now possible to import a channel from an S7 OPC UA & Mobile HMI database (either in Codabix using the Import context menu entry of the channel, or in the S7 Configurator). RFC-1006 Device Plugin: The implementation was reworked for better stability and efficiency. Additional values are now written into the ReceiveBuffer node for connection events: A Null value with status Good once when the connection is established, and a Null Value with status Bad once the connection is closed. TSAP strings now use ISO-8859-1 instead of Windows-1252 as encoding (but string values in the ReceiveBuffer and TransmitBuffer node continue to use UTF-8). When specifying an empty string for one of the TSAP values, it will not be specified in the RFC-1006 CR (Connection Request) frame. The maximum size of a message (TSDU) when receiving is currently limited to 20 MiB. EUROMAP Device Plugin: Added a new setting ReadValueMode that controls how the REPORT for reading values is generated. Added a new setting OperationTimeout that specifies how long to wait for read/write operations to complete before aborting them. CSV Exchange Plugin: The configuration is now possible via the node tree instead of using a XML settings file. An existing XML settings file is automatically migrated to the node tree configuration (when the plugin is started, or when the XML settings file is created while the plugin is running), and being copied to the “backup” folder. After that the file is deleted, to prevent overwriting the node settings when restarting the plugin. SQL Exchange Plugin: Performance has been improved when executing a SELECT command to read column nodes, by specifying a LIMIT 1 clause (for MySQL/PostgreSQL/SQLite) or TOP (1) (for MSSQL) as only the first returned row will actually be used. REST Interface Plugin: Added the new REST Interface v2 which is available using URL /api/rest. It provides a RESTful API to access and manage a Codabix instance. SignalR Interace Plugin: Added the SignalR Interface Plugin which provides a realtime web API to access and manage a Codabix instance using the Microsoft SignalR Core framework. SINUMERIK Device Plugin [UNSTABLE]: Added an experimental version of the SINUMERIK Device Plugin that allows you to connect to Sinumerik Powerline and Solution Line machines. Note: Do not use this plugin in production environments, as it might not work correctly and could cause hangs or crashes. v1.1.1 (released 2021-06-02) Updated the .NET Runtime to v5.0.6. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v90.0.4430.212 (includes security fixes). RFC-1006 Device Plugin: [Linux] Fixed an issue where connecting to a server using a hostname (instead of an IP address) might fail. S7 Device Plugin: Fixed an issue which could cause high CPU usage for a few seconds when the PLC closes the connection. SQL Exchange Plugin: MySQL connections now set the SQL mode NO_BACKSLASH_ESCAPES so that backslashes within string literals are not treated as escape character, which makes the behavior consistent with other DBs like PostgreSQL, SQLite, MSSQL. This allows easier handling for scripts that need to set the ReadSqlExpression or WriteSqlExpression and need specify a string literal from custom data. SignalR Interace Plugin: Fixed an issue which could lead to Codabix becoming unresponsive. OPC UA Server Interface Plugin: A ByteString is now always correctly converted to a Codabix Blob value and vice versa. The ArrayDimensions attribute is now correctly specified for variable nodes representing an array value. OPC UA Client Device Plugin: A Codabix Blob value is now always correctly converted to a ByteString and vice versa. v1.1.2 (released 2021-06-11) Updated the .NET Runtime to v5.0.7 (includes security fixes). Codabix Engine: Fixed a security issue which caused node tokens (used for authentication with the REST Interface v1) not to be encrypted with the project's password key. Fixed an issue (introduced with v1.1.1) which could lead to back-end database errors when using a MySQL database. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v91.0.4472.77 (includes security fixes). S7 Device Plugin: Fixed an issue which caused the OS default encoding (e.g. UTF-8 on Linux, Windows-1252 on west european Windows systems) instead of ISO-8859-1 being used as string encoding when reading values (but not when writing them). OPC UA Client Device Plugin: Fixed an issue which could lead to a crash when calling a method node with unsupported parameter types. v1.1.3 (released 2021-07-26) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v92.0.4515.107 (includes security fixes). v1.1.4 (released 2021-08-23) Updated the .NET Runtime to v5.0.9 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v92.0.4515.159 (includes security fixes). v1.1.5 (released 2021-09-20) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v93.0.4577.82 (includes security fixes). v1.1.6 (released 2021-09-29) [Linux] Fixed an issue where the machine code generation would fail with an error “No valid disk could be found”. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v94.0.4606.61 (includes security fixes). v1.1.7 (released 2021-10-14) Updated the .NET Runtime to v5.0.11 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v94.0.4606.71 (includes security fixes). v1.1.8 (released 2021-11-30) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v96.0.4664.55 (includes security fixes). v1.0 v1.0.0 (released 2020-12-11) ⚠️ Breaking Change: A new license code must be entered after upgrading to this version. Without enterling a new license key, Codabix runs again in evaluation mode for 28 days (Windows) or for three hours (Linux/Raspberry Pi). Important Change: [Windows] On Windows 7 SP1 and Windows Server 2008 R2 SP1, update KB3063858 (x64 or x86) is required. Additionally, to use licenses with a machine code, the Windows Management Framework 3.0 (KB2506143) must be installed. Breaking Change: [Linux] On Ubuntu, Codabix now requires Ubuntu 18.04 or higher, and on Fedora, Codabix now requires Fedora 32 or higher. Breaking Change: When using MySQL as back-end database, Codabix now requires MySQL v8.0 or higher. [Linux] A new build Codabix for Linux (ARM64) is now available, which runs e.g. on a Raspberry Pi 4 with a 64-bit Raspberry Pi OS. [Linux] The build Codabix for Raspberry Pi was renamed to Codabix for Linux (ARM32) to better align with the other builds. Spelling of the product was changed from CoDaBix to Codabix. The Codabix Product Model is now displayed in the About page of the Codabix Web Configuration and in the window titles. Updated the .NET Runtime to v5.0.1 for better performance and flexibility for all Codabix releases (including Windows). Codabix Host: Breaking Change: The file name of the executables has been changed, to make it easier to use them on the command line: Codabix Shell application: From CoDaBix-Shell[.exe] to codabix[.exe] Codabix application (Windows only): From CoDaBix.exe to codabix-ui.exe Breaking Change: Format of command-line arguments in the Codabix and Codabix Shell applications has been changed to match common practice. You can run codabix --help to get a list of possible commands and arguments. For example, the argument to use a fixed project directory has been changed from --projectDirectory:<path> to --project-directory=<path>. Breaking Change: The command-line argument --remoteHttp has been removed from the Codabix Shell application. Instead of using this argument, you can now configure remote HTTP bindings (including https) via the project settings. Breaking Change: [Windows] The Web Server Mode Windows HTTP Server API (formerly HTTP.sys) is now only supported on Windows 10 Version 1607/Windows Server 2016, or higher. On older Windows versions, you can use Embedded (Kestrel) instead. Breaking Change: [Linux/Raspberry Pi] When using a project where the Web Server Mode is set to Windows HTTP Server API (which is only supported on Windows), instead of silently switching to Kestrel, Codabix now refuses to start. You can change the mode by editing the Project Settings in the Codabix Shell application. [Windows] The embedded web server (Kestrel) is now used as default Web Server Mode rather than the Windows HTTP Server API, as Kestrel generally provides the best performance. [Windows] Updated the embedded web browser in the Codabix application to Chromium v87.0.4280.88 with fixes for security vulnerabilities. [Linux] The web server setting Use Local HTTP Port is now enabled by default, to ensure users can reach the Codabix Web Configuration from remote machines. [Linux] When installing the service from a process running as root (e.g. as part of a longer installation routine), Codabix now tries to determine the original user ID by using the SUDO_* environment variables, to ensure files created by the service will get the correct owner. When creating a new https binding in the project settings, a self-signed SSL certificate is automatically generated for testing purposes. The obsolete X-Frame-Options HTTP header sent by the web server has been replaced with a Content-Security-Policy header containing a frame-ancestors directive, only allowing pages of the same origin to embed content in a frame. If needed, the header can be customized to add additional sources by editing the project.cbxproj settings file and adding string entries to the ContentSecurityPolicyFrameAncestorSources array. When restoring a backup and using an external database server as back-end database (such as MySQL, MariaDB or Microsoft SQL Server), instead of dropping and recreating the wohle database/schema, only its contents (like tables or sequences) are recreated. This ensures user rights granted to the used database are not lost when restoring a backup. Added new command line arguments to the Codabix Shell application to view/set license information. You no longer need to restart Codabix after entering a license code. Codabix Web Configuration: Breaking Change: Internet Explorer 11 and older (EdgeHTML-based) Microsoft Edge versions are no longer supported. If you were previously using one of these browsers to open the Codabix Web Configuration, please install a modern browser like Microsoft Edge, Google Chrome, or Mozilla Firefox. Folder nodes now have a new context menu entry “Node Explorer”, which opens a separate node explorer window that allows you to drag'n'drop nodes in order to create links. The node tree now automatically updates itself on server-side changes. This fixes also a few bugs related to moving nodes in the tree. It is now possible to create and restore backups from within the Codabix Web Configuration, even when Codabix is running as service. The current license status is now shown in case an evaluation licenses is used or licensing problems have occured. Additionally, extended license information can now be retrieved from the “About” page. The style has been improved for a better look-and-feel. Hotkeys have been added in the “Nodes” view to make the node explorer nearly completely controllable by keyboard (the hotkeys are shown in the tooltips of the toolbar buttons). The toolbar has a new layout. When displaying the value of a DateTime node (in local time), the time zone information is now output so that it's possible to definitely identify the point in time. Updated the Script Editor environment to Monaco Editor v0.21.2 and TypeScript v4.1. Codabix Engine: Added support for structured data types. The control nodes Action and StartMode have been unified into a single IsActive node. This ensures that after restarting Codabix, a module or channel will start if and only if it was started when Codabix was shut down. Node event handling has been improved to raise events during node transactions, rather than raising them after the transaction has been committed. This also improves the handling when duplicating nodes in the Codabix Web Configuration or importing nodes using the Extension XML Plugin, so that imported/duplicated settings are no longer overwritten with default settings by the Entity Model. Node command handling has been improved to allow to run commands asynchronously. This ensures that during long-running methods (e.g. when browsing an OPC UA Client Device Channel) it's still possible to call other methods (e.g. browse other channels) or start/stop other channels at the same time. When writing values into nodes that don't have a NodeWriter, a status code of Good is now returned as result of the write operaton, rather than the status of the written value. This is because the value to be written can have a status Bad, but writing that value into the node actually succeeded, and the returned status should indicate whether the write succeeded. When using a project directory with a older back-end database version, Codabix no longer automatically upgrades the database, but asks for a confirmation of the upgrade. This avoids an accidental upgrade of the currently selected project, because an upgrade means the project can no longer be used with older Codabix versions. The maximum node name length has been increased from 100 to 200. [Windows] Fixed a issue that would cause the embedded database (SQLite) to fail when using an UNC path as project directory. S7 Device Plugin: Breaking Change: The device node has been renamed from S7 TCP-IP Device to S7 Device. If you use the node path /System/Devices/S7 TCP-IP Device e.g. in a script, you will need to update it to /System/Devices/S7 Device. Breaking Change: The specified rack and slot settings are now always used. If a connection to a S7 now fails with The specified CPU could not be found, you may need to adjust the rack/slot settings to the correct values. Added support for 64-bit types LInt (Int64), LWord (UInt64), and LReal (Double). Added support for importing S7 File Logger project files (.fgg). Entries from multiple write jobs will now be combined into a single write job if possible (while keeing the individual values), to reduce network latency and improve performance. Allen-Bradley Device Plugin: Updated driver to libplctag v2.1.17 which improves connectivity to devices connected using a DH+ bridge. Added support for bit access (of integer or BOOL types), along with a new path syntax that allows to specify the bit range. EUROMAP Device Plugin: Added the EUROMAP Device Plugin which allows you to connect to machines implementing the EUROMAP 63 specification (file-based access). It supports the following features: Browsing the machine (by executing a GETID command) to automatically create available parameters Reading values through a manual read or using a subscription (by generating a REPORT command that records a single sample) Writing values (by generating a SET command) Starting and aborting custom Report definitions (however, the recorded values are not yet read back into the parameter nodes). MQTT Device Plugin [UNSTABLE]: Added an experimental/unstable version of the MQTT Device Plugin that you can use to connect to MQTT brokers. The plugin can optionally be installed on Windows. Note: Do not use this plugin in production environments, as it might not work correctly and could even cause a crash of the application. CSV Exchange Plugin: Breaking Change: The name of the settings file was changed from CoDaBix.CsvFileServer.Settings.xml to CoDaBix.CsvExchangePlugin.Settings.xml. When you upgrade from a previous Codabix version, Codabix automatically tries to rename the file, but you should check if you used the previous file name in other applications. You no longer need to specify the ColumnIndex attribute for a <Binding> element when the column index is the same as the element index. SQL Exchange Plugin: Breaking Change: ODBC connections are blocked by default for security reasons. To allow them, enable the option “Allow context-sensitive credentials” in the Codabix Access Security settings. Added support for PostgreSQL. [Windows] Added support for using Windows Authentication when connecting to MSSQL or PostgreSQL servers. Note: Using Windows Authentication is blocked by default for security reasons. To allow it, enable the option “Allow context-sensitive credentials” in the Codabix Access Security settings. Note: When installing Codabix as service, it will run as a different user by default (LocalSystem) than the user who installed the service. In order for Windows Authentication to work, you will need to switch the user account under which the service runs in the Services application. OPC UA Server Interface Plugin: Breaking Change: The interface node has been renamed from OPC-UA Server Interface to OPC UA Server Interface. If you use the node path /System/Interfaces/OPC-UA Server Interface e.g. in a script, you will need to update it to /System/Interfaces/OPC UA Server Interface. Added a setting TransportProtocol that allows you to use HTTPS instead of OPC UA TCP (opc.tcp) as transport protocol. Added support for passing arguments to method nodes. The application certificate is now automatically regenerated if the current certificate's domain name doesn't match the hostname of the OPC UA Server. OPC UA Client Device Plugin: Breaking Change: The device node has been renamed from OPC-UA Client Device to OPC UA Client Device. If you use the node path /System/Devices/OPC-UA Client Device e.g. in a script, you will need to update it to /System/Devices/OPC UA Client Device. Method nodes can now be browsed and be called. When browsing an OPC UA Server, nodes with a Variant data type are now created as String nodes in Codabix, rather than Null, to allow to read values. REST/JSON Interface Plugin: The "ct" property (category) of node values has been removed. Script Interface: Breaking Change: The parameter doNotCreateSubscription of codabix.Node.addValueChangedEventListener has been inverted and renamed to createSubscription. If you were previously specifying true for this parameter to not create a subscription, you should change the argument to false. Breaking Change: A new parameter (fields) was added to the constructor of codabix.Type after typeCode. Breaking Change: The type of properties codabix.Node.path and codabix.NodeStructure.path was changed from string | null to NodePathType (equal to NodeValueType) because it's now possible to use any type as path type, not only string types. Added method codabix.Node.registerCommand that allows you to register a node command (callback) for nodes of type Method, including support for arguments passed to the method when calling it. This allows you to implement handlers for method nodes that can be called e.g. using an OPC UA Client, in the Codabix Web Configuration, or from another script. Added method net.httpClient.connectWebSocketAsync for connecting to WebSocket servers. Added classes codabix.TypeMember and codabix.TypeField. Added method codabix.Type.getFields that returns codabix.TypeField instances if the Type has type code Object. Added class codabix.Object that represents structured data and can be stored in nodes with an object value type. The return type of method codabix.NodeReader.readValuesAsync has been changed from Promise<(NodeValue | null)[] | null | undefined> to Promise<void>, because the returned values are actually not used since version 0.18. Existing scripts using the previous return type will still work after updating to this version. It is now possible to throw an exception in a HTTP handler method registered with net.registerHttpRoute without causing the script to be stopped. The ES2015 method Object.setPrototypeOf is now supported. Performance of Promise-based methods has been improved. v1.0.1 (released 2020-12-14) Codabix Web Configuration: Fixed an issue that could prevent the “Login” button from being clickable. Codabix Engine: Fixed an issue (introduced with v1.0.0) that could cause two equal node values to be determined unequal. For example, if you used e.isValueChanged in a ValueChanged event listener in a script, it would return true even if the value was equal to the previous value. v1.0.2 (released 2020-12-17) Codabix Web Configuration: Fixed an issue that could prevent the menu from working correctly if the Script Interface Plugin is not installed or not licensed. Codabix Engine: Fixed an issue (introduced with v1.0.0) that could cause device variables for which a subscription is created to not be updated to a Bad status when the channel is currently stopped. v1.0.3 (released 2021-01-13) Updated the .NET Runtime to v5.0.2 (includes security fixes). Codabix Engine: The behavior of scheduled actions (callbaks that are to be run once the current event handler has been left) has been improved, so that a scheduled action is always run before the method that raised the event returns, even when scheduled actions are currently already being run in a lower call stack level. The PropertyChanged and ChildrenChanged events are now raised correctly when (un-)linking a node. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v87.0.4280.141 (includes security fixes). v1.0.4 (released 2021-02-05) A better error message is displayed when a license may only be used in a containerized environment. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v88.0.4324.146 (includes security fixes). v1.0.5 (released 2021-02-10) Updated the .NET Runtime to v5.0.3 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v88.0.4324.150 (includes security fixes). OPC UA Server Interface Plugin: Added new transport settings MaxMessageQueueSize and MaxNotificationsPerPublish and use high default values, so that the server can buffer a higher number of notifications. v1.0.6 (released 2021-03-02) It is now possible to use subscription-based (non-hardware-bound) licenses also in non-containerized environments. Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v88.0.4324.182 (includes security fixes). v1.0.7 (released 2021-03-10) Updated the .NET Runtime to v5.0.4 (includes security fixes). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v89.0.4389.72 (includes security fixes). v1.0.8 (released 2021-03-12) Reverted the .NET Runtime back to v5.0.3 due to a regression in the PropertyGrid that impacts the Codabix (Windows) application. v1.0.9 (released 2021-04-09) Updated the .NET Runtime to v5.0.5 (includes security fixes compared to previously used v5.0.3). Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v89.0.4389.114 (includes security fixes). Script Interface: Fixed an issue with method io.file.readAllTextAsync() which incorrectly returned a UTF-8 BOM at the beginning of the file as a U+FEFF character as part of the string. v1.0.10 (released 2021-05-07) Codabix Host: [Windows] Updated the embedded web browser in the Codabix application to Chromium v90.0.4430.85 (includes security fixes). S7 Device Plugin: Added support for the S7 DTL data type (variable type DateTimeLong) that can be used in Codabix with a variable using the DateTime value type. Fixed an issue (introduced in v1.0.0) when using a character array like Char[10] with a String variable, where only a single character would be read. Script Interface: Fixed an issue where the internal recursion counter wasn't triggered when only native functions (like codabix.writeNodeValueAsync()) were on the stack, which could cause a crash due to a stack overflow in certain cases. 0.23 0.23.0 (released 2020-06-25) Improved the behavior of the Backup & Restore mechanism to minimize the risk of accidental data loss: When restoring a backup, instead of erasing the whole project directory, only CoDaBix-defined folders and files are deleted, before the corresponding files and folders are restored from the backup. This includes the following items in the project directory: Folders: dashboard, log, plugins, userdata, webfiles Files: codabixdb.db, codabixdb.db-*, codabixhistorydb.db, codabixhistorydb.db-*, project.cbxproj, project.cbxkeys Consequently, only files that are placed in one of these folders are actually included in a backup and restored later. Files that are placed in the project directory root (or in a different folder not listed above) will not be included in the backup (and will not be restored even if the backup was created with an earlier CoDaBix version which included such files in the backup). Dialogs prompting the user to confirm the restore operation have been improved to warn more explicitely about a possible data loss and to indicate more clearly what folders in which directory will be deleted when running the restore. 0.23.1 (released 2020-07-30) [Linux/Raspberry Pi] Updated .NET Core to 2.1.20 for security and stability fixes. Added the --namedInstance:<name> command line argument to specify an instance name. Fixed a bug which could prevent the engine from starting if option “Serve Static Web Files” was disabled in the project settings. Updated the OPC UA Client Device Plugin to version 1.0.22: Fixed a bug which prevented to read values using an LocalizedText Array type. 0.23.2 (released 2020-09-09) Updated .NET Core and ASP.NET Core components to 2.1.22 for security and stability fixes. 0.23.3 (released 2020-10-19) Updated the OPC UA Client Device Plugin to version 1.0.23: Fixed a security issue which could result in the client connecting to a less secure endpoint than is configured. Updated the Omron Device Plugin to version 1.0.1: Added support for Host-Link/C-Mode Commands. 0.23.4 (released 2020-10-30) [Windows] Updated the embedded web browser in the Codabix application to Chromium v85.0.4183.121 with a fix for security vulnerability CVE-2020-15999. 0.23.5 (released 2020-11-13) [Windows] Updated the embedded web browser in the Codabix application to Chromium v86.0.4240.183 with fixes for security vulnerabilities, including CVE-2020-16009. 0.23.7 (released 2021-02-10) Updated .NET Core and ASP.NET Core components to 2.1.25 for security and stability fixes. Updated the OPC UA Client Device Plugin: The Browse method node of each channel now has two additional IN argument nodes that can be used to control the browsing behavior. Updated the OPC UA Server Interface Plugin: Added new transport settings MaxMessageQueueSize and MaxNotificationsPerPublish and use high default values, so that the server can buffer a higher number of notifications. 0.22 0.22.0 (released 2020-04-27) Updated the S7 Device Plugin to version 1.1.0: The requirement of using an S7 XML Configuration File has been removed. Instead, you can now create and modify channels and variables directly within the CoDaBix Web Configuration, just like with any other device plugin. It is now possible to import STEP7 projects using the Web Configuration (by using the channel's context menu). It is now possible to load and save a channel from an S7 XML Configuration File in the Web Configuration (by using the channel's context menu). A S7 XML Configuration File in the S7DevicePlugin folder of the project directory can still be used to automatically synchronize channels, with the following changes: Instead of using a single S7 XML Configuration File (CoDaBix.S7DevicePlugin.Settings.xml) for all channels, each channel now uses its own file with the file name format CoDaBix.S7DevicePlugin.<ChannelName>.Settings.xml. When upgrading from an ealier CoDaBix version, the previously used file will automatically be split into separate files per channel. A S7 XML Configuration File is only assigned to an S7 channel if a file with the corresponding name exists when starting the S7 Plugin (i.e. when starting CoDaBix) or when creating a new channel. Additionally to the synchronization from XML to CoDaBix (which happens when the XML Settings file is modified), there is now also a synchronization from CoDaBix to the XML Settings file (when variables in CoDaBix are changed). The ChangeType attribute has been removed. In order to delete a variable, you can just remove it in the S7 XML Configuration File; except when starting the S7 Plugin (i.e. when starting CoDaBix), where variables missing in the S7 XML Configuration File are added to the file. When synchronizing changes from the S7 XML Configuration File to CoDaBix, the S7 Plugin and its channels no longer need to stop and restart (which would interrupt communication); instead, the changes are applied “live” (while the S7 Plugin is running). [Windows] The S7 Configurator was changed: The S7 Configurator is no longer installed by default, but you can still install it by modifying the features in the CoDaBix Setup. Instead of editing the CoDaBix.S7DevicePlugin.Settings.xml file in the currently set CoDaBix project directory, you can now manually open and save S7 XML Configuration Files from arbitrary locations. Instead of editing multiple channels at the same time, you can now edit a single channel per S7 XML Configuration File. Updated the Allen-Bradley Device Plugin to version 1.0.1: Added support for String variables. Fixed a bug which would allow to create datapoint nodes within the Channels folder which could then no longer be deleted. Fixed a bug which prevented to import a XML file on a channel node that was previously exported from a different channel node. Script API: Added support for specifying PATCH as HTTP method for method net.httpClient.sendAsync. 0.22.3 (released 2020-05-25) [Linux/Raspberry Pi] Updated .NET Core to 2.1.18 for security and stability fixes. Updated the S7 Device Plugin to version 1.1.1: Fixed an issue that could prevent to import some STEP7 projects, or could lead to wrong symbol names being used. 0.22.4 (released 2020-06-25) [Linux/Raspberry Pi] Updated .NET Core to 2.1.19 for security and stability fixes. Updated the S7 Device Plugin to version 1.1.2: Fixed a bug that could cause synchronization from a channel to an assigned S7 XML file not to be fired when you changed the channel settings but not the variables. 0.22.5 (released 2020-07-29) [Linux/Raspberry Pi] Updated .NET Core to 2.1.20 for security and stability fixes. Fixed a bug which could prevent the engine from starting if option “Serve Static Web Files” was disabled in the project settings. 0.21 0.21.0 (released 2019-12-18) Added a new folder node Environment in the System path which contains nodes providing information about the CoDaBix environment, including the CoDaBix version, project directory/name, and the current system time. Added new command line arguments to the CoDaBix Shell application to initialize the project directory, access the project settings, and to reset the admin password. The OPC UA Trace Log has been removed as it may produce far too many log entries. [Linux/Raspberry Pi] Updated .NET Core to 2.1.14 for stability fixes. Added the Allen-Bradley Device Plugin (version 1.0.0) that allows you to connect to Allen-Bradley PLCs (like ControlLogix, CompactLogix, Micro800, MicroLogix, PLC-5, SLC 500). Updated the SQL Exchange Plugin to version 1.1.1: Support for accessing SQLite databases has been added (using the value of Hostname as database file path). 0.21.2 (released 2020-01-15) [Linux/Raspberry Pi] Updated .NET Core to 2.1.15 for security and stability fixes. Updated the OPC UA Server Interface Plugin to version 1.0.19: When generating the application certificate, the correct hostname of the OPC UA Server is now used as domain name. A new diagnostic logging option LogNodeManagerTrace has been added to log the time spend in the node manager for operations like updating node values. 0.21.5 (released 2020-05-25) [Linux/Raspberry Pi] Updated .NET Core to 2.1.18 for security and stability fixes. Updated the S7 Device Plugin to version 1.0.15: Fixed an issue that could prevent to import some STEP7 projects, or could lead to wrong symbol names being used. 0.20 0.20.0 (released 2019-07-22) [Linux] The I²C Device Plugin has been removed from the Linux distribution as it is only intended to be used on a Raspberry Pi. [Linux/Raspberry Pi] Improved file locking behavior. A new value type Password Blob has been introduced (similar to the “Password” type) that can be used to store blobs that are encrypted with the project's password key. In order to improve start-up performance, the last written history values for each node are no longer read on start-up. This means that when the node's History Options are set to Yes; only on Value Change, the first captured history value for that node after start-up will always be written into the database. Increased the maximum array length for node values to 100,000. Fixed a bug (introduced in 0.19.0) which could cause a S7 Device Channel to show an incorrect status after restarting it. Fixed a bug (introduced in 0.18.6) that could lead to a scaling/conversion being applied incorrectly for a node where no node writer was registered. Fixed a bug which could cause CoDaBix to crash when reading an array device variable that contained more than the allowed maximum number of array elements. Update the Dashboard to version 0.0.28: Fixed a bug which could cause the page to not load nodes correctly. Added the Omron Device Plugin (version 1.0.0) that allows you to connect to Omron PLCs. Added the XML Exchange Plugin (version 1.0.0) that allows you to exchange data with XML files. Updated the OPC UA Server Interface Plugin to version 1.0.17: Added a new Server Configuration setting folder that allows to specify the minimum and maximum session timeout. Added a new Diagnostics setting folder that allows to enable and configure diagnostic logging for various events related to Sessions, Read/Write, Subscriptions, and MonitoredItems. When creating a new application certificate, it will now be encrypted with the project's password key. Updated the OPC UA Client Device Plugin to version 1.0.18: When creating/specifying a new application certificate or login certificate, it will now be encrypted with the project's password key. Updated the REST Interface: Additional node properties are supported: unit, precision, scalingFactor, scalingOffset, maxValueAge. Script API: Added the method net.httpClient.sendAsync() that allows you to send HTTP requests to external servers. Added methods createAsync(), deleteAsync(), moveAsync() to the io.directory namespace, and methods getDirectoryName() and getFileName() to the io.path namespace. 0.20.1 (released 2019-07-24) Updated the OPC UA Server Interface Plugin to version 1.0.18: Fixed a bug (introduced in CoDaBix 0.20.0) that caused the removal of monitored items to not being handled correctly. Updated the OPC UA Client Device Plugin to version 1.0.19: Fixed a bug (introduced in CoDaBix 0.19.0) that caused custom data types to not correctly being recognized when browsing the OPC UA server. 0.20.2 (released 2019-08-19) Script Interface Plugin: Fixed a bug (introduced in CoDaBix 0.20.0) that prohibits scripts with strictness levels Medium or High to be saved with Go Live. 0.20.4 (released 2019-09-16) [Linux/Raspberry Pi] Updated .NET Core to 2.1.13 for security and stability fixes. Updated the RFC-1006 Device Plugin to version 1.0.3: Fixed a bug that could lead to a crash when stopping a channel. Updated the OPC UA Client Device Plugin to version 1.0.20: Fixed a bug which could cause a subscribed node value to not be updated when the connection to the server broke and the client could not create a new connection to the server, or e.g. when the NodeID doesn't exist on the server. In these cases, a Bad value is now written to the node, and the client tries repeatedly to recreate the subscription. Fixed a bug (introduced in CoDaBix 0.20.1) which could cause foundation data types to not correctly being recognized when browsing the OPC UA server. 0.20.5 (released 2019-09-25) Updated the CSV Exchange Plugin to version 1.1.1: Improved the trigger handling to start a synchronous read directly in the trigger's event handler, rather than after finishing the last synchronous read. This makes the collected value set more deterministic, especially when the edge trigger value is also collected, and ensures trigger queue entries cannot pile up when a trigger fires in shorter intervals than the time synchronous reads need to complete. This also aligns the behavior with the Database Plugin. 0.20.6 (released 2019-10-16) [Linux/Raspberry Pi] Fixed a bug (introduced in 0.20.1) that could sometimes prevent the OPC UA Client Device Plugin and the OPC UA Server Interface Plugin from working. Updated the OPC UA Client Device Plugin to version 1.0.21: Added support for reading and writing values of type LocalizedText by using a new JSON path format when browsing the server. 0.20.7 (released 2019-10-21) Improved performance when multiple read jobs are created for a device variable at the same time. Updated the S7 Device Plugin to version 1.0.12: Fixed a bug that could cause variables to have an incorrect value when reading multiple variables with the same address at the same time. 0.20.8 (released 2019-10-24) Updated the S7 Device Plugin to version 1.0.13: Added a new setting DateTimeInterpretation that can be used to swich the interpretation of DateTime values from the PLC between UTC and local time. 0.20.9 (released 2019-11-11) Updated the S7 Device Plugin to version 1.0.14: Fixed a bug that could prevent to import some STEP7 projects. 0.20.12 (released 2019-11-19) Updated the CSV Exchange Plugin to version 1.1.2: Fixed a bug that could cause SCP connections to not read any more data after some time. Fixed a bug that could cause an Edge or ValueChange trigger to not work when using mode SystemToFile. 0.20.13 (released 2020-01-15) [Linux/Raspberry Pi] Updated .NET Core to 2.1.15 for security and stability fixes. 0.19 0.19.0 (released 2019-05-29) The product name has been simplified: CoDaBix® Compact is now called CoDaBix. Introduced CoDaBix Project Management, which means that project-specific settings (like Back-end database credentials, Log level, HTTP Port etc.) are now stored in the Project Directory (formerly Data Directory) using file project.cbxproj, instead of storing them in a user-global folder. This makes it more easy to switch between different projects, as the settings will be kept per project. A new setting Project Name has been added that allows to specify a name for your project. This name is then displayed in the CoDaBix application's title bar and is used for the default backup file name. In the CoDaBix File Access Security (FAS), the default permissions for level “Normal” have been changed to no longer include a r/w permission for the whole project directory, but to include r/w permissions for specific subfolders like plugins, log, userdata, webfiles, dashboard. The user experience when CoDaBix detects that the currently installed service uses a different project directory has been improved. When upgrading from a previous CoDaBix version, the CoDaBix settings used so far will be migrated to project settings in the currently selected project directory. [Windows] When restoring a backup in the CoDaBix application, you can now change the project directory (and the settings) before doing the restore. [Windows] Improved the CoDaBix MSI Installer so that it offers to create a backup when updating to a newer CoDaBix version. [Linux/Raspberry Pi] Improved the CoDaBix Setup to also work with Linux distributions where sudo isn't available. Revised the History Timer behavior that was introduced in 0.18: When enabling the History Options of a node, but not specifying a History Interval, then history values will be captured when writing a value to the node (like in previous versions), instead of being handled by the History Timer with an interval of 500 ms. But when a History Interval is specified, history values will be captured by the History Timer in that interval. In the History Options combobox of the CoDaBix Web Configuration, the items “on Interval” and “on ValueChange” have been renamed to “Yes” and “Yes (only on Value Change)” for better clarity. When writing a value to a device variable and that value is written back to the node by the device (after successfully writing the value to the device), the correct status code and timestamp is now used, instead of using those from the provided value. Improved handling of DateTime values in the CoDaBix Web Configuration, so that you can enter a value in the same format that is used to display the values. When selecting a menu item in the CoDaBix Web Configuration, you now open it in a separate window. Additionally, a new menu entry has been added to open the CoDaBix Online Documentation. Updated the OPC UA Client Device Plugin to version 1.0.17: [Windows] You can now connect to an OPC Classic server using the URL format opc.com://<hostname>(:<port>)/<progId>/<classId>. Updated the OPC UA Server Interface Plugin to version 1.0.16: Requests from OPC UA Clients that would add or remove nodes (which will not be handled by CoDaBix) are now correctly denied. Updated the CSV Exchange Plugin to version 1.1.0: It is now possible to generate a filename from a node value, using the syntax ${Path/to/Node} (Node Query Expression) within the Path attribute of the <File> element. When using SyncMode SystemToFile, the specified nodes will be included in the synchronous read of the column nodes, and then evaluated when writing the file. When using SyncMode FileToSystem, the specified nodes will be evaluated once when starting the channel. When using SyncMode FileToSystem, you can specify a filter like XY*.csv in the Path attribute of the <File> element, so that the plugin will monitor and process all files in the directory matching that filter. When using SyncMode FileToSystem, you can specify a <Binding> element with SystemValueType="CreationTimestamp" to indicate that the column contains a timestamp, which should be used as CreationTimestamp for the CoDaBix values of this line. When using SyncMode FileToSystem, a new SyncAction MoveFile is available that can be specified in the BeforeSyncAction or AfterSyncAction attribute together with a BeforeSyncMoveFileTo or AfterSyncMoveFileTo attribute, which allows you to move or rename a file before or after it is synchronized to CoDaBix. The specified file path can also include a Node Query Expression which is evaluated before moving the file. When using SyncMode SystemToFile and using a trigger of type Edge, you can have the ChangeBackValue be written to a different node than the one used by the trigger, by specifying the ChangeBackNode attribute with the node path. Added a new attribute HasHeader to the <File> element that allows to to specify if a CSV file has a header. This means that for the SyncMode FileToSystem, the first line of the CSV file will be ignored, and when using SyncMode SystemToFile, a header line will be output if the file is empty. Additionally, for each <Binding> element, you can specify the HeaderName attribute to with the header value to be written to the CSV file (which can also include a Node Query Expression that will be included in the synchronous read of the column nodes). It is now possible to specify the format for DateTime and TimeSpan values (for both SyncModes FileToSystem and SystemToFile) by specifying the ValueType attribute on the <Binding> element containing the type (e.g. DateTime) and then specifying the ValueFormat attribut with the desired format string. Fixed a bug which could lead to a CSV file being imported twice when it was saved once. Updated the SQL Exchange Plugin to version 1.1.0: Stored Procedures and Functions for Oracle databases can now be handled as method nodes, so that they can be executed e.g. with a Script using codabix.executeNodeCommandsAsync(). Added setting DateTime Interpretation that allows you to switch between interpreting date/time values as UTC time or local time per database. When browsing a MSSQL or MySQL server, the time datatype is now mapped to the CoDaBix TimeSpan value type. Updated the H1 Device Plugin to version 1.0.1: Fixed a bug that could prevent the plugin from starting when multiple network adapters with the same name were available. Updated the Extension XML Plugin to version 1.0.1: You can now export and import node values. Script API: Added method runtime.date.format() that can be used to format a Date object using a .NET DateTime format string (can be a standard or custom format string). Method codabix.executeNodeCommands() has been replaced by the method codabix.executeNodeCommandsAsync() that returns a Promise which will be resolved when the execution of the node commands is finished. 0.19.1 (released 2019-07-22) [Windows] Updated ASP.NET Core components to 2.1.12 for security fixes (CVE-2019-1075). [Windows] Fixed a bug that could cause the CoDaBix Service to fail to start when the set project directory ended with a backslash (\). [Linux/Raspberry Pi] Updated .NET Core to 2.1.12 for stability fixes. Fixed a bug that prevented the private key of SSL certificates used for Kestrel from being encrypted with the project's password key. 0.18 0.18.6 (released 2019-02-08) [Windows] Separate .MSI installers for x64 (64-bit) and x86 (32-bit) are now available. [Windows] Performance of the embedded web browser has been improved by switching to a Chromium-based browser. [Windows] CoDaBix now officially supports running on a Windows Server Core installation that has the Server Core App Compatibility FOD installed. [Windows] Updated ASP.NET Core components to 2.1.7 for security fixes. [Raspberry Pi] Breaking Change: CoDaBix now requires Raspbian 9 (Stretch) or higher. [Raspberry Pi] Updated .NET Core to 2.1.7 for stability and security fixes. Added support for Microsoft SQL Server 2012 or higher to be used as back-end database. The CoDaBix Dashboard is now embedded in CoDaBix Compact and will be served by the web server for path /dashboard/. It can also be displayed within the Web Configuration GUI. Implemented a History Timer that captures the current value of a node into a history value at the specified History Interval (for nodes where History Options are enabled), thus replacing the previous behavior of immediately capturing a history value whenever a value is written to the node. If the History Options are set to on Value Change, a captured history value is inserted into the database only if it is different than the previously written history value for that node. The new behavior therefore makes capturing history values more deterministic. A new node property History Resolution has been added which, if specified, causes numeric history values to be rounded to that resolution when being captured. History values displayed in the Web Configuration GUI are now sorted by insertion order (instead of Creation Timestamp) to have a better overview of the values, and additionally the Receive Timestamp is now displayed. A new menu entry Password Security has been added to the Web Configuration GUI that allows you to encrypt passwords using the back-end database password key. This allows you to store the encrypted password e.g. in Plugin XML configuration files, or in Script code where it can be decrypted with codabix.security.decryptPassword(). You can now reset the password key (that is used to encrypt passwords) in the CoDaBix® Settings. When setting the log level to Debug, the OPC UA Trace Log is written to the log file OpcUaTraceLog.txt which can help you to diagnose OPC UA connectivity issues. Performance of inserting history values has been improved. Increased the maximum size for a Script to 1,000,000 characters. Increased the maximum size of a string/blob value to 1,000,000 characters/bytes. Improved handling when applying scaling or value converters to a node. Implemented the limitation of the maximum number of channels or clients specified by the license for plugins. Improved license handling in regards to the machine code. Fixed a bug (introduced in 0.17.0) that could cause CoDaBix to hang when you use a Script that registers a codabix.NodeReader for a node. Fixed a bug that prevented to delete a node within a Variables folder if the node or one of its children contained a virtual link. [Windows] Added the H1 Device Plugin (version 1.0.0) that allows you to connect to PLC devices using the SINEC H1 protocol. Note: This plugin requires WinPcap 4.1.3 or higher to be installed. Added the Socket Device Plugin (version 1.0.0) that allows you to connect to a TCP server. Added the Modbus Device Plugin (version 1.0.0) that allows you to connect to Modbus TCP servers. Added the Extension XML Plugin (version 1.0.0) that allows you to export and import node structures in the Web Configuration GUI using the context menu as XML files. Updated the OPC UA Client Device Plugin to version 1.0.15: Channels that have set SubscriptionType to OpcSubscription now correctly use an OPC-based subscription instead of polling. Instead of browsing the whole server, you can now also browse individual folder nodes. Added a new setting MaxMonitoredItemsPerSubscription that allows you to split monitored items across multiple subscriptions (e.g. when connecting to a Siemens PLC OPC UA server that only allows 1000 elements per subscription). By default, the value 0 is set which means monitored items use a single subscription. Improved performance of adding or removing CoDaBix node subscriptions. When reading more than 1000 nodes at once from the server, these are split into chunks of each up to 1000 nodes to ensure they are read correctly if the server limits the maximum number of request elements. When browsing a server, variable nodes with an Enumeration DataType are now created in CoDaBix as Int32 nodes. When browsing a server, variable nodes that contain a single child HA Configuration are now created as datapoint nodes instead of as folder nodes. [Windows] Updated the Melsec QJ Device Plugin to version 1.0.1: Fixed a bug which lead to more bytes being read than necessary when reading boolean values. Updated the S7 Device Plugin to version 1.0.10: Variables of type S5 Time are now correctly read when they have the value 0. Fixed a bug that could cause some variables being missed or not correctly laid out when importing a STEP7 project. Updated the SQL Exchange Plugin to version 1.0.5: Fixed a bug that could lead to outstanding synchronous reads reporting a value with a Good status after stopping the channel, even when the read actually failed. Improved support for Microsoft SQL Server so that values from unsigned data types can now be written. Improved support for Oracle. Updated the Database Plugin to version 1.0.11: You can now specify an encrypted password instead of a plaintext password in the password attribute. Support for Microsoft SQL Server was improved so that values from unsigned data types can now be written. The plugin no longer fails to start if one of the nodes specified for an edge or valueChange trigger or for an AfterSyncAction could not be found; instead a warning is logged. Updated the CSV Exchange Plugin to version 1.0.5: You can now specify an encrypted password instead of a plaintext password in the Password attribute. Updated the REST Interface: When retrieving history values for a node and specifying all of from, to and count parameters and to is smaller than from, then the oldest values (limited by count) will be returned instead of the newest values. The browse command now shows child nodes that are only indirectly accessible for the current user (when the user does't have access to the child node itself but to one of its successors). Script API: Breaking Change: The value property of a codabix.NodeValue containing a TimeSpan now returns the milliseconds as number, instead of a formatted string value. Breaking Change: When calling codabix.readNodeHistoryValuesAsync() and specifying all of startTime, endTime and maxCount parameters and endTime is smaller than startTime, then the oldest values (limited by maxCount) will be returned instead of the newest values. Breaking Change: When the Promise object returned by an implementation of the codabix.NodeReader.readValuesAsync() method resolves to an array of codabix.NodeValue, these values are ignored for the result of the synchronous read operation, and instead the values of the nodes (at the time the Promise is resolved) are used. This is because otherwise the returned values would not be post-processed (scaled or converted) and thus might be incorrect. Callbacks registered with codabix.Node.registerValueConverter() or codabix.nodeconfiguration.registerNodeContextMenuAction() can now throw an exception (or reject the returned Promise) without causing the Script to be aborted due to an unhandled exception. An optional parameter throwIfNotFound has been added to methods codabix.findNode() and codabix.Node.findNode() that allows to have the methods throwing an exception if the node could not be found, instead of returning null. Property historyResolution has been added to types codabix.Node and codabix.NodeStructure. Additionally, properties historyOptions and historyInterval have been added to codabix.Node. The property isValueChanged has been added to the listener argument for the node's ValueChanged event which specifies if the new value is actually different than the old value. Static method codabix.NodeValue.equals() has been added to allow to determine if two node values can be considered to be equal, by checking their value and status. Property receiveTimestamp has ben added to the node value instances returned by codabix.readNodeHistoryValuesAsync() that allows you to get the time when the history value was captured in CoDaBix. Enum value IntervalElapsed on codabix.NodeHistoryOptions has been renamed to Subscription. Existing scripts using the previous name will still work after updating to this version. [Raspberry Pi] Updated the UniPi Device Plugin to version 1.0.1. [Raspberry Pi] Updated the UniPi Device Plugin to version 1.0.1: Breaking Change: You can find the migration steps here (german only). 0.18.7 (released 2019-02-11) Fixed a bug that could cause channel settings to be lost when upgrading from an earlier CoDaBix version. 0.18.8 (released 2019-02-14) [Raspberry Pi] Updated .NET Core to 2.1.8 for security and stability fixes. 0.18.9 (released 2019-03-04) Fixed a bug which could cause unnecessary history values to be generated for status nodes of plugins that were not loaded. Updated the S7 Device Plugin to version 1.0.11: Fixed a bug (introduced in CoDaBix® 0.18.7) that caused the plugin to not adopt changes (renaming a channel/variable or changing the variable's address) after editing the XML configuration file. [Raspberry Pi] Fixed a bug that sometimes prevented to read floating-point variables (Single/Double). 0.18.10 (released 2019-03-11) Improved subcription handling, so that when a device channel with active subscriptions is stopped, a “Bad” status is now written into the subscribed variables, which makes the behavior consistent with doing a synchronous read where also such a “Bad” status is written to the variable. When duplicating a node, its value is now also duplicated. Updated the OPC UA Client Device Plugin to version 1.0.16: Fixed a bug (introduced in CoDaBix® 0.18.9) that could cause CoDaBix to crash in special circumstances. Updated the OPC UA Server Interface Plugin to version 1.0.13: Fixed a bug that could cause subscriptions from OPC UA clients to not be removed from CoDaBix when the channel is stopped or restarted. 0.18.11 (released 2019-03-18) CoDaBix® Compact for Linux (x64) is now available for Debian 9 or higher, Ubuntu 16.04 or higher, Fedora 29 or higher, OpenSUSE Leap 15.0 or higher. 0.18.13 (released 2019-04-15) [Linux/Raspberry Pi] Updated .NET Core to 2.1.10 for stability fixes. Fixed a bug (introduced in CoDaBix® 0.18.6 (Raspberry Pi), 0.18.10 (Windows) and 0.18.11 (Linux)) that caused an error when upgrading a back-end database that was last used with CoDaBix® 0.14.0 or earlier. Updated the OPC UA Server Interface Plugin to version 1.0.15: Write requests specifying an IndexRange (which is not supported in CoDaBix) are now correctly rejected with a BadWriteNotSupported status code according to the OPC UA specification. Fixed a bug (introduced in CoDaBix® 0.18.10) that could cause the CoDaBix process to not exit after shutting down the CoDaBix® Engine, if you tried to start a channel with a port that was already in use. 0.18.14 (released 2019-04-25) Fixed a bug (introduced in CoDaBix® 0.18.10) that could lead to an outstanding synchronous read reporting an incorrect value when the channel was stopped after the read was started but before the read was finished. Fixed a minor memory leak that could occur when repeatedly creating and deleting device variables. 0.18.15 (released 2019-05-29) [Linux/Raspberry Pi] Updated .NET Core to 2.1.11 for security and stability fixes. 0.17 0.17.0 (released 2018-07-27) CoDaBix® Compact for Raspberry Pi is now available for Raspbian 8.7 or 9, running on a Raspberry Pi 2 or 3. [Windows] Breaking Change: CoDaBix® Compact now requires the .NET Framework 4.7.2 or higher. Please refer to Installing CoDaBix® for more information. [Windows] Kestrel can now be used as alternative web server implementation instead of the Windows-based HTTP.sys. On Windows 7 SP1 and Windows Server 2008 R2 SP1, Kestrel is automatically used to ensure WebSocket connections also work on these operating systems. [Raspberry Pi] Added the UniPi Device Plugin (version 1.0.0) which can be used to access UniPi Neuron devices. [Raspberry Pi] Added the I²C Device Plugin (version 1.0.0) which can be used to access devices using the I²C interface. [Raspberry Pi] Added Service Management to the CoDaBix Shell, so that you can install CoDaBix Compact as a service (like on Windows) that is automatically started when the machine boots. Using MySQL 8.0 as back-end database is now supported. Improved performance when doing a lot of Node changes (e.g. creating a lot of nodes). When using SQLite as back-end database, this also guards against the error “attempt to write a readonly database” that can sometimes occur under heavy load. The handling of writing values to device variables was improved, so that it is possible for the caller to determine if the write succeeded. For example, when you write a value to a variable in the Web Configuration GUI, and the device is not available, a corresponding error dialog will appear. Additionally, values written to a device variable are now stored in the variable if they were successfully written. Nodes with a datatype other than “Null” can now get NULL values even if the status is not Bad. For example, this allows to accurately represent null values in table columns for the SQL Exchange Plugin. You can now select to include log files when creating a Backup. Added a new CoDaBix setting Update DB Mode that can be used to restrict the number of times data is written into the back-end database, which can be useful for embedded devices like Raspberry Pi (where this option is enabled by default). Fixed an issue when using node subscriptions, which could lead to not updating the node value even though the value in the device has changed. Fixed an issue that caused node subscription parameters like Interval to be not correctly applied when creating multiple subscriptions for the same nodes. To fix this issue, the Script API for codabix.NodeReader had to be changed (see below). Fixed a bug in the parsing and displaying of DateTime values, which were previously displayed in UTC time instead of local time. In the CoDaBix® File Access Security (FAS), the default permissions for level “Normal” have been changed to not include read-only access to the install directory anymore (which normally isn't needed). Updated the SQL Exchange Plugin to version 1.0.3: NULL values that are successfully read from the database are now represented using a Good status. Updated the OPC UA Server Interface Plugin to version 1.0.10: Start-up time and memory footprint have been reduced. Processing of node values has been improved. When writing a CoDaBix node value failed (e.g. because the device is not available), the OPC UA client will now receive a 'Bad' status indicating the error. The Name of a CoDaBix node is now used as BrowseName for the corresponding OPC UA node, and the DisplayName of a CoDaBix node is now used as DisplayName for the corresponding OPC UA node. Fixed a bug which caused existing subscriptions from OPC UA clients to stop working when changing the History Options of one of the subscribed nodes. Updated the OPC UA Client Device Plugin to version 1.0.12: When browsing an Siemens OPC UA server that creates child nodes for each array element, these array element nodes are no longer created in CoDaBix because the parent node contains already the array value. The number of maximum browsed nodes is now configurable. The BrowseName of an OPC UA node is now used as Name for the corresponding CoDaBix node, and the DisplayName of an OPC UA node is now used as DisplayName for the corresponding CoDaBix node. Updated the RFC-1006 Device Plugin to version 1.0.2: You can now specify the TCP port that the connection should use. Script API: Breaking Change: The parameters of methods codabix.NodeReader.subscriptionCreated() and codabix.NodeReader.subscriptionModified() have been changed to provide the interval and forceUpdate parameters for each codabix.Node instead of single parameters for all nodes. This was done to to fix the problem (as mentioned above) where sometimes subscription parameters were not correctly applied when creating multiple subscriptions for the same node. Method codabix.NodeReader.readValuesAsync() has been changed to allow to return an array of codabix.NodeValue, so that a NodeReader can directly indicate the recently read values. If returning null (or undefined), CoDaBix will use the current node values as a result of the synchronous read. Method codabix.readNodeHistoryValues() has been replaced by the method codabix.readNodeHistoryValuesAsync() in order to not block CoDaBix while reading history values (which might take some time). Methods codabix.writeNodeValueAsync() and codabix.writeNodeValuesAsync() have been changed to return a codabix.NodeValueStatus (or an array of it), which indicates if writing the values was successful (if the nodes are device variables). Property codabix.Node.virtualLinkDestination has been added that allows you to get the virtual link destination of a Node. The namespace codabix.nodeconfiguration has been added with methods that allow to register a context menu action for a node which can generate a file download result. Method timer.scheduleCallback() has been replaced by the method codabix.scheduleCallback() because it is actually a CoDaBix-specific function and not a regular timer function. Method timer.yield() has been added that allows you to asynchronously interrupt execution by returning a Promise object which will be fulfilled after the current script execution is finished (and the current NodeLock is released). Scripts can now register a shutdown handler with runtime.onShutdown which will be called when the script is about to stop normally (e.g. because the engine is shutting down or the user has stopped the script). 0.17.1 (released 2018-08-10) [Raspberry Pi] The deployment now consists of a self-extracting setup. [Raspberry Pi] Fixed a bug that caused wrong access rights of the installation directory. [Raspberry Pi] Fixed a bug in the OPC UA Server Interface Plugin that caused an error on restart of a cannel with a connected client. OPC UA Client Device Plugin A channel can now be started in simulation mode. In this way the channel can be run without a server in order to implement a simulation. 0.17.2 (released 2018-08-13) OPC UA Client Device Plugin Fixed a bug in simulation mode: If a node does not have a value a default value is used. 0.17.5 (released 2018-09-03) Updated the OPC UA Client Device Plugin to version 1.0.13: When browsing an OPC UA server that doesn't provide the Description attribute for nodes (e.g. a S7-1500 OPC UA Server), you can now provide the description values by placing the exported NodeSet XML file into <CodabixDataDir>\OpcUaClientDevicePlugin\<ChannelName>\NodeSet.xml. Updated the OPC UA Server Interface Plugin to version 1.0.11: Additional server settings (e.g. transport settings) can now be configured. Script API: Node/Value tuple objects passed to codabix.writeNodeValuesAsync() can now additionally contain a source property with a value which is later provided in the ValueChanged event of a codabix.Node, e.g. to identify the case when a NodeWriter passes a value back to the node after it has been successfully written to a device. 0.17.7 (released 2018-09-26) [Raspberry Pi] When running as service, the service will change to the identity of the user that originally set up the service after binding the web ports, in order to avoid problems with file permissions. Using MariaDB 10.3 or higher as back-end database is now officially supported. The performance of inserting a lot of data into a MySQL or MariaDB back-end database (e.g. when restoring a backup or when history values are inserted) has been considerably improved. When scanning a directory specified by a Directory Node fails, the child nodes are not deleted (as this is treated as a temporary error) and a warning is logged to the Runtime Log. Updated the OPC UA Server Interface Plugin to version 1.0.12: Fixed a bug that could cause CoDaBix to hang when a lot of client requests from OPC UA clients occur at the same time. Updated the SQL Exchange Plugin to version 1.0.4: Fixed a bug that prevented to browse a table immediately after creating the table. Updated the REST Interface: For get and browse requests, the node's unit is now now output using the unit property, and the history options are correctly output using the hi property. 0.17.8 (released 2018-10-23) Fixed a bug that could cause requests from OPC UA clients (using the OPC UA Server Interface) to fail and cause CoDaBix to log error messages in the Runtime Log in certain circumstances. 0.16 0.16.0 (released 2018-04-13) User groups can now set to be read-only, which means that users in this group only have read access to the nodes specified in this group, but cannot write values or change the nodes. This setting is checked in the REST Interface and in the OPC UA Server Interface. When serving static files from the webfiles folder, the embedded web server now also serves GZIP-compressed files ending with .gz in their compressed form when requesting the file name without .gz, which allows you to reduce network traffic. Added the Melsec QJ Device Plugin (version 1.0.0) that allows you to connect to Mitsubishi PLC devices of the Melsec-Q and Melsec-A series. Added the AKLAN Device Plugin (version 1.0.0) that allows you to transmit data to AKLAN services. Note that this plugin requires additional components, which need to be installed manually. The Demo Data (Continuous) plugin is no longer installed by default when running the CoDaBix® Compact Setup. Updated the OPC UA Server Interface Plugin to version 1.0.9: Improved access performance (e.g. when a client browses the server) when a lot of nodes have been created. The server now checks if a user has read-only access when writing node values. A new setting “Hostname Mode” has been added to the channel settings that allows to select if the server's endpoint host name should be “localhost”, the current computer name or a custom name. The type CodabixBlob is now mapped to the OPC UA data type ByteString. Fixed a bug (introduced in version 1.0.8) that caused the AutoAcceptUntrustedCertificates setting to be ignored. Fixed a bug that caused the server to incorrectly report scalar types as array types in the ValueRank attribute. Updated the OPC UA Client Device Plugin to version 1.0.10: The OPC UA data type ByteString is now mapped to the type CodabixBlob. Updated the S7 Device Plugin to version 1.0.9: Added the option IsSimulation to the channel settings that allows to run a S7 Channel in simulation mode, so that it does not actually communicate with a physical PLC device. Improved performance when doing a lot of synchronous reads for the same variable. Fixed a bug that caused wrong decoding of umlauts when importing a STEP7 project. Fixed a bug that could cause missing blocks, types, values and objects when importing a STEP7 project. Updated the CSV Exchange Plugin to version 1.0.4: An interval trigger has been added that can be used in SyncMode SystemToFile. Fixed a bug which meant the ColumnIndex attribute was ignored when synchronizing a CSV file to CoDaBix. Script API: The method close() in io.Closeable has been replaced with the async method closeAsync(), because closing a resource might be a blocking operation. Existing scripts that call the close() method will still work after updating to this version (as long as they don't call the method while an async operation is still in progress), and will log a warning. The global object Guid has been added which allows to generate a new GUID string. The method io.util.encodeXml() has been moved to xml.encode(). Existing scripts using the previous method will still work after updating to this version. Increased the Script timeout from 1500 ms to 5000 ms. 0.16.2 (released 2018-05-14) Fixed a bug in the handling of writing values to a Device Variable, which could cause the value to write to be ignored when the write was recursively executed from a handler scheduled within a ValueChange event from that device, e.g. in a Script using timer.schedule(). Fixed a bug in the Diff Script Editor that prevented to save the script. Improved handling regarding time measurement in device worker threads, to ensure subscribed variables are read in a timely manner even when a lot of synchronous read requests are handled. Plugin licenses can now be managed even when CoDaBix® Compact is running as a service, or when the CoDaBix® Engine is not running. Updated the OPC UA Client Device Plugin to version 1.0.11: When browsing an OPC UA server, the Description attribute of an OPC UA node is now read and stored in the created CoDaBix node. Updated the RFC-1006 Device Plugin to version 1.0.1: Fixed a bug that would reset the type of the ReceiveBuffer or the TransmitBuffer node to Blob on start-up if they previously have been set to String by the user. Script API: Added methods codabix.subscribeNodes() and codabix.unsubscribeNodes() with which you can explicitely create a subscription for one or more nodes, and specify the subscription interval. Added methods codabix.Node.registerReader() and codabix.Node.unregisterReader() with which you can register a NodeReader which will be called when a synchronous read for the given nodes is requested or a subscription is created. 0.16.3 (released 2018-05-24) Fixed a bug (introduced in 0.16.2) which could sometimes lead to the first write of a Device Variable being ignored. Updated the SQL Exchange Plugin to version 1.0.1: Added support for ODBC database connections, where the Channel's Database Name setting is used as ODBC data source name (DSN). 0.16.4 (released 2018-06-20) Fixed an issue which caused HTTPS bindings to not work when specifying a host name. Updated the SQL Exchange Plugin to version 1.0.2: You can now specify 0 as port when using Microsoft SQL Server, in which case it will try to connect to the default SQL Server instance. Updated the Database Plugin to version 1.0.10: You can now specify 0 as port when using Microsoft SQL Server, in which case it will try to connect to the default SQL Server instance. 0.15 0.15.0 (released 2018-01-18) Breaking Change: CoDaBix® Compact now requires the .NET Framework 4.6.1 or higher. Please refer to Installing CoDaBix® for more information. The embedded web server now allows to serve static files from the data directory's webfiles folder. This allows you in combination with the new Script HTTP Handler feature (see below) to develop Web Apps served by the CoDaBix® web server (e.g for visualization). Additionally, in the CoDaBix® Settings you can now specify a custom HTTP redirect URL for the root path, so that users just need to type e.g. http://<hostname>/ to view the custom web page. The data directory now contains a new folder userdata where you can store custom files. This folder is guaranteed to not be used differently in future CoDaBix® versions. The security of encrypted passwords that are stored in Datapoint Nodes of type “Password” or are generated using the Script API codabix.security.encryptPassword() has been improved. CoDaBix® File Access Security (FAS) now prevents write access to the SQLite back-end database files (except for setting “Full Access”) since they are considered to be system files. The properties HistoryOptions and HistoryInterval for a linked Node are now retrieved from the link destination since they are closely related to the history values of the Datapoint Node. Log rotation has been improved so that the CoDaBix® runtime log file, the Database Plugin log file and log files from the Entity Model are no longer rotated each day, but after they got a size of more than 5 MiB, in which case they are automatically compressed into a ZIP file to reduce the space they occupy. Additionally, by default log files older than 30 days are automatically deleted. CoDaBix® Compact can now be run on Windows systems that have enabled the policy “System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing”. License handling has been improved in regards to the machine code. Updated the CSV Exchange Plugin to version 1.0.2: Breaking Change: The plugin's folder name has been renamed from B. CSV-Server to CsvExchangePlugin to match the documentation. When you upgrade from a previous CoDaBix® Compact version, CoDaBix automatically tries to rename the folder, but you should check if you used the previous folder name in other applications. Breaking Change: When using the SyncMode SystemToFile, CSV rows are no longer implicitely generated when one of the node's value changes. Instead, you can now define triggers (like in the Database Plugin) to specify when values should be written into the CSV file. Furthermore, the CSV Exchange Plugin now does a synchronous read when one of the trigger fires, just like the Database Plugin. When using the SystemToFile mode, you can now specify to use a system value instead of a node value for a <Binding>, e.g. to write the current time into the CSV file. Script API: You can now register HTTP Handlers by calling net.registerHttpRoute(). This allows you to specify async functions that are called when a client makes a HTTP request to CoDaBix®. For example, you can dynamically generate HTML pages like it can be done with PHP or ASP.NET. This feature also allows you to handle server-side WebSocket connections using the net.RawWebSocket interface when running CoDaBix® Compact on Windows 8 / Windows Server 2012 or higher. Added overloads to the timer.scheduleCallback() method that accept a callback with parameters, and accept additional arguments that are passed to the callback. E.g. for an event listener, this allows to store the callback and then reusing it by passing the event parameters to it, rather than creating a closure on each event listener invocation which is relatively expensive. Added a parameter to the methods copyFileAsync(), writeAllTextAsync() and openFileWriterAsync() of the io.file namespace that allows you to specify to throw an exception if the file already exists, instead of overwriting it. Increased the Script timeout from 1000 ms to 1500 ms. Breaking Change: The property fileLength of class io.FileReader has been replaced with the async method getFileLengthAsync since determining the current file length is an I/O operation that might be blocking. 0.14 0.14.0 (released 2017-07-13) In the CoDaBix® File Access Security (FAS) settings, you can now specify access credentials for each path. This allows you to access files e.g. in a script to which the current user wouldn't have access (internally, this uses impersonation). Additionally, if the path is an UNC path, you can add it as network resource. This is useful when running CoDaBix® as a service, which doesn't have access to mapped Windows Network Drives (with corresponding access credentials) of the current user. For Device Plugins, Interface Plugins and Exchange Plugins, the most important settings are now directly displayed when adding or editing the channel in the Configuration Web GUI. Additionally, a Control Panel is shown for when opening a channel that shows a live overview of the channel's state. The Scaling Factor and Scaling Offset properties of datapoint Nodes are now used to scale values that are read from (or written to) a device. Because these properties were not used previously (but you were able to enter arbitrary values), these properties are cleared when updating to this version to ensure previous values don't cause problems. When creating a Backup, you can now specify to not export passwords for security reasons. This applies to the MySQL back-end database password and passwords stored in Nodes of type Password (e.g. for OPC UA Client Device and SQL Exchange), as well as to passwords encrypted with the Script API codabix.security.encryptPassword() that are stored e.g. in Scripts. The CoDaBix® runtime log is now created in the log folder instead of logfiles. When a plugin fails to start, it is attempted to restart after 30 seconds to ensure temporary error conditions do not prevent the plugin from working after the error is fixed. History values can now be cleared in the CoDaBix® settings dialog. Updated the REST Interface: Authentication via username and password has been implemented. History values can now be retrieved for a specific time range. Updated the CSV Exchange Plugin to version 1.0.1: Support for file transfer over a SSH Server (using SCP or SFTP) has been added. The CustomerName attribute no longer needs to be specified in the XML configuration file. Updated the S7 Device Plugin to version 1.0.7: Fixed a bug that prevented from reading strings with a maximum length of more than 221 characters. Updated the OPC UA Server Interface Plugin to version 1.0.6: Refactored the policy settings so that multiple policies can be enabled for the same endpoint (channel). The auto-generated application instance certificate now uses the computer name instead of “localhost” as domain name. Fixed a bug which caused a new application instance certificate to be generated at every start of CoDaBix®. Updated the OPC UA Client Device Plugin to version 1.0.7: Added a setting that allows to specify whether a regular OPC UA subscription or polling should be used for CoDaBix® subscriptions on OPC UA Client variables. Fixed a bug which caused a new application instance certificate to be generated at every start of CoDaBix® (and prevented the certificate to be stored as a blob in the corresponding CoDaBix® Node). Added the SQL Exchange Plugin (version 1.0.0) that allows you to bidirectionally exchange data with a MySQL, MSSQL or Oracle database. Script API: Added the NodeChangeCompleted event to the codabix namespace which is raised when a series of multiple ValueChanged, PropertyChanged or ChildrenChanged events of Nodes has completed. Added method codabix.Node.registerValueConverter() that allows to register a callback which is called when a value is read from (or written to) a device, so that the value can be adjusted. A parameter to the logger.log() method has been added that accepts a log level (the default is Info). Additionally, the methods logDebug(), logInfo(), logWarning() and logError() have been added to the logger namespace. Added the codabix.security namespace that contains methods to encrypt and decrypt passwords that are to be stored in a password Node. 0.14.1 (released 2017-07-27) Improved the log handling for the Configuration Web GUI: Runtime log error entries are no more displayed immediately; instead, a button shows the number of new log entries. By clicking the button, a (live) dialog with the last log entries will open. The maximum length of the Node's path property has been increased from 200 to 2000 characters to support e.g. longer file paths. 0.14.2 (released 2017-09-06) When creating a Backup, you can now specify to not include history values if you don't need them in order to reduce the backup size. Updated the OPC UA Client Device Plugin to version 1.0.8: Fixed a memory leak that could occur when a Server is not available while the Client tries to connect. Improved browsing behavior to get more accurate type information for a browsed data variable Node instead of simply using a “Null” datatype. Added support for the Basic256Sha256 security policy algorithm. Updated the OPC UA Server Interface Plugin to version 1.0.7: Fixed a memory leak that could occur when Clients often connect and disconnect. Added support for the Basic256Sha256 security policy algorithm. Script API: Improved the declaration of codabix.NodeValueConverter to allow to return undefined additionally to null. 0.14.3 (released 2017-09-28) Fixed a bug which could cause the CSV Exchange Plugin to hang when using file transfer over SCP. Minor bug fixes and improvements. 0.14.4 (released 2017-10-09) Fixed a bug which could cause the CSV Exchange Plugin to not recognize changes to files accessed over SMB (Windows Shares) after a network problem occured. 0.14.12 (released 2017-11-24) Log rotation has been improved so that the CoDaBix® runtime log file and the Database Plugin log file are no longer rotated each day, but after they got a size of more than 5 MiB, in which case they are automatically compressed into a ZIP file to reduce the space they occupy. Additionally, by default log files older than 30 days are automatically deleted. Updated the Database Plugin to version 1.0.9: Added the instantChangeBackValue attribute to the Trigger element (fortype="edge"), which allows you to specify a value that is immediately written to the node after the trigger has fired, as opposed to the changeBackValue value that is written after the record set has been collected (i.e. the synchronous read of the values has finished). Improved performance by writing rows in a single transaction when a lot of rows are buffered. 0.14.13 (released 2017-12-20) CoDaBix® Compact can now be run on Windows systems that have enabled the policy “System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing”. Improved log rotation (including the creation of a ZIP file) is now also applied to log files from the Entity Model. Updated the OPC UA Client Device Plugin to version 1.0.9: The performance of browsing an OPC UA Server has been improved. Fixed a bug which prevented variables added under a pre-existing folder from working until CoDaBix® was restarted. The specified OperationTimeout value is now correctly applied for connect attempts. NodeIds can now be specified in a format like ns=2;s=ABC which is also used by other OPC UA tools. Updated the OPC UA Server Interface Plugin to version 1.0.8: The ValueRank attribute for Datapoint Nodes is now correctly specified for array types. 0.12 0.12.0 (released 2017-05-09) The CoDaBix® settings dialog now allows you to specify the log level that determines how detailed logfiles are written. Log rotation has been implemented so that now also the report logfiles will rotate after a day. When using SQLite as a back-end database, history values are now written into a separate database (codabixhistorydb.db) to improve performance. For security reasons, when installing CoDaBix® as a service on new CoDaBix® installations, a remote HTTP binding using the local HTTP port is no longer included by default. If you want to allow remote machines on the network to access your CoDaBix® instance, you will need to enable the option “Use the Local Port as remote HTTP Binding” in the “Service HTTP(S) Bindings” options, or manually add HTTP/HTTPS bindings. Fixed a memory leak which occured when running CoDaBix® as a service, which could lead to a crash after some time. Fixed a bug which prevented to restore a backup containing datapoint Nodes of the type DateTime. Fixed a bug which prevented to restore a backup on Windows Server systems that have been installed using the Server Core option (i.e. without Desktop Experience). Updated the S7 Device Plugin to version 1.0.6: Fixed a bug which led to too many bytes being read or written on a variable of type Char. Updated the Database Plugin to version 1.0.7: Fixed a memory leak that could occur when triggers fire faster than datasets can be written to the database, which could lead to a crash. Script API: The Script Editor now shows an error in async functions on method calls returning a Promise object, where the returned object is not awaited or used otherwise. If discarding the Promise is intentional, you can use the void operator to silence the error, e.g. void codabix.writeNodeValueAsync(). 0.12.1 (released 2017-05-11) Improved startup time when running CoDaBix® Compact as a service. Fixed a bug which sometimes prevented to duplicate a Node in the Configuration Web GUI. Updated the Database Plugin to version 1.0.8: A new trigger type valueChange has been added which will fire when a Node's value has changed. Added the property attribute to the <Node> element that allows you to specify what Node property should be written into the database. Rather than the Node value, you can also write the Node value's timestamp, the Node's unit etc. Log a better error message when a specified Node could not be found. Updated the OPC UA Client Device Plugin to version 1.0.5: When browsing an OPC UA Server, OPC Nodes with a datatype of Integer and UInteger are now created as CoDaBix® Nodes of type Int64 and UInt64 instead of Null, so that values for such Nodes can be read. Note that because Integer and UInteger are abstract data types in the OPC UA, it could happen that a write operation will fail, in which case you will need to select other, smaller datatypes like Int32 for the Node. 0.12.2 (released 2017-05-16) When a single plugin can not be started, an error message is written into the runtime log and then CoDaBix® continues to start. Added a shortcut in the CoDaBix® Compact program group that allows to clear history values in the current back-end database. Updated the OPC UA Client Device Plugin to version 1.0.6: By default, only 10 concurrent channels (connections) are allowed. The number can be increased by applying a license. Script API: Fixed a memory leak which could occur when scripts are often restarted. In order to fix the leak, the codabix.Node.children property had to be changed to return a non-live array, i.e. everytime the property is accessed a new array is returned. 0.11 0.11.0 (released 2017-02-27) Revised the Configuration Web GUI: A context menu has been added. Folder Nodes are loaded in the tree only after they are expanded. Variable Nodes are now also displayed in the tree, instead of only in the table. When displaying history values for a Node which has numeric values, a line chart of the history values is shown. Fixed a bug which prevented duplicating Nodes. Fixed a bug which prevented creating a new user. Updated the S7 Device Plugin to version 1.0.4: Removed the indirection through “Variables” folder Nodes when creating a variable of type “Object”. Fixed a bug which prevented to use the S5 String data type. Updated the OPC UA Client Device Plugin to version 1.0.3: Removed the indirection through “Variables” folder Nodes when creating a subfolder. Updated the Database Plugin to version 1.0.5: Changed the trigger handling to start a synchronous read directly in the trigger's event handler, rather than a short time later. This makes the collected DataSet values more deterministic, especially when the edge trigger value is also collected. 0.11.1 (released 2017-04-12) A Backup-And-Restore functionality has been implemented which allows you to back-up the current back-end database, the data directory and the CoDaBix® settings into a single, compressed file, and later restore the data. This does even work if you are using a different back-end database type (MySQL/SQLite) when restoring. In the CoDaBix® settings dialog, you can now save and load the settings. You can now execute commands of method Nodes in the Configuration Web GUI. Added an additional editor strictness level “Medium” for scripts where the Script Editor does not show errors on unused local variables and unused parameters. When installing CoDaBix® Compact as a service, the startup type is now set to “Automatic (Delayed Start)” to ensure the CoDaBix® service can start even if the computer's hard drive is busy or the MySQL database is not yet available. Fixed a bug which prevented FAS (File Access Security) from correctly handling “Deny” entries. Improved the performance when reading history values filtered by a timestamp from the embedded (SQLite) back-end database. Updated the OPC UA Client Device Plugin to version 1.0.4: The implementation has been rewritten to use a dedicated thread per channel, to avoid delays in CoDaBix® and to improve the general stability of the plugin. A browse functionality has been implemented. By executing the Browse command, the OPC UA Server is scanned and new variable Nodes are automatically created in the channel. Fixed a bug that could lead to a hang on startup in rare circumstances. Fixed a bug with handling subscriptions. Updated the OPC UA Server Interface Plugin to version 1.0.5: Added support for method Nodes which can be called by OPC UA Clients. Updated the S7 Device Plugin to version 1.0.5: Added the new setting “SolveSiemensPduBug” that solves a problem with some S7 devices which send incorrect responses, resulting in an error like “specified data area does not exist”. Updated the Database Plugin to version 1.0.6: Added the attribute commandTimeout to the <DbConnection> element in the XML configuration file. Minor bug fixes and stability improvements. Script API: The method codabix.Node.getNodePath() has been implemented to retrieve the absolute Node path of a Node. The method codabix.readNodeHistoryValues() has been implemented to retrieve history values of a Node. 0.10 0.10.0 RC1 (released 2016-12-21) Revised the CoDaBix® type system: For Node values and the Node's path, Enum types can be defined and validation expressions can be specified. Added the DateTime and TimeSpan types. The type “Byte-Array” has been aligned with type “Blob”: The maximum length of a Byte-Array has been increased from 1000 bytes to 500000 bytes. Byte-Arrays are serialized more efficently. Revised the CoDaBix® Entity Model: Devices and channels can now be stopped and (re-)started using their Action Node. When creating a new channel Node, its subtree is automatically created and shown. It is now possible to specify diverse HTTP and HTTPS bindings for the embedded web server when running CoDaBix® as a service. This allows you to connect to CoDaBix® from remote machines over an encrypted TLS connection. Implemented plugin specific licensing. For each plugin you can manage its license. Implemented user access level per Node, so that a plugin can define which Nodes the user is allowed to modify. Added the RFC-1006 Device Plugin (version 1.0.0) that allows you to connect to Clients or Servers using the RFC 1006 protocol. Updated the S7 Device Plugin to version 1.0.2: Support for the Date, DateTime, Time, TimeOfDay and S5Time datatypes has been added. When reading a variable failed, a more detailed status text (instead of only “Good” or “Bad”) is logged and displayed in the Configuration Web GUI. Updated the OPC UA Server Interface Plugin to version 1.0.4: The default port for new installations has been changed to 4840. Breaking Change: Renamed the Database Exchange Plugin to Database Plugin (version 1.0.3): The plugin's directory in the data directory (<CodabixDataDir>) has been renamed from "DataBaseExchangePlugin" to "DatabasePlugin". The plugin's configuration file has been renamed from "CoDaBix.DataBaseExchangePlugin.Settings.xml" to "CoDaBix.DatabasePlugin.Settings.xml". Scripts will now also automatically restart when an uncaught exception occurs in the initialization phase, not only when it occurs in the callback phase. Script API Breaking Changes: The method timer.setImmediate() has been replaced with the method timer.scheduleCallback() which is more efficient. The method timer.sleepAsync() has been renamed to timer.delayAsync(). The NodeValue class now supports Date instances to work with the CoDaBix® DateTime type. The type property of the class codabix.Node doesn't contain value types like Int32 any more. Instead, they are now available using the valueType.typeCode property. The valueType.isArray property specifies if the type is an array type. The type codabix.NodeValueStatus (as used e.g. in codabix.NodeValue.status) has been changed to an interface with a statusCode and a statusText property. 0.10.1 (released 2017-01-27) Breaking Change: Implemented File Access Security (FAS) to restrict file access within CoDaBix, configurable in the CoDaBix® Settings. This feature prevents a user that has the CoDaBix® admin password and has local or network access to the Configuration Web GUI from accessing arbitrary files on the system (especially when running as a service). By default, the data directory is permitted for read/write access, and the Install Directory is permitted for read access. This setting applies to: File Nodes (accessed via HTTP Access URL or by an OPC UA Client) and directory Nodes Scripts using the io.file and io.directory namespaces CSV file paths that are specified in the CSV Exchange Plugin's XML configuration file Performance improvements and bug fixes. Updated the S7 Device Plugin to version 1.0.3: Configurator: Support to copy channels and variables Channels: Added support for descriptions Variables: Added support for descriptions Added a new “Method” type for Nodes where plugins can register commands to run on such a Node. Updated the Database Plugin to version 1.0.4: Added the attributes connectTimeout and maxPoolSize to the <DbConnection> element in the XML configuration file. Script API: Implemented the io.file, io.directory and io.path namespaces to enable scripts to access files, e. g. to read or write a text file. 0.10.2 (released 2017-02-07) The reliability of CoDaBix® Compact has been improved. Fixed a bug which prevented to read array values or history values. Fixed a bug which reset the “HistoryOptions” of a Node after a restart of CoDaBix® Compact. Fixed a bug which prevented the script timeout from being applied to script code in catch or finally clauses. Fixed a bug which prevented to create variables for the OPC UA Client Device Plugin. 0.10.4 (released 2017-02-09) Updated the OPC UA Client Device Plugin to version 1.0.2: Fixed a bug which prevented reading or writing variable Nodes which have been created in a folder Node. Improved conversion of arrays of wrapped OPC UA values so that they can be written into CoDaBix® Nodes having an array type. When reading multiple Nodes and one of them cannot be read, the other Nodes are now still read. 0.9 0.9.0 The internal database structure has changed, so that every Node will get a GUID to identify it. Plugins can automatically restart themselves if their settings file has changed. You can now write a value directly to a Node in the Configuration Web GUI. Added the Database Exchange Plugin which allows you to write Node values to external MySQL/MSSQL databases. S7 variables don't have a GUID as their name. Instead, they will get their correct name. The S7 Device Plugin can now read and write arrays (e.g. an Int32 array). The S7 Device Plugin doesn't automatically create subscriptions anymore. Instead, it waits for an external source to create a subscription (like a OPC UA Client connected through the OPC UA Server Plugin) or to do a synchronous read until variables will be read from the PLC. 0.9.2 Added the CoDaBix.AutoSubscribe plugin which automatically subscribes to Nodes which have their “Has History Values” set to “Yes”. This allows you to have S7 variables be automatically read without having to create a subscription by e.g. using an OPC UA Client. The CoDaBix® Compact setup now allows you to exactly select which plugins shall be installed with CoDaBix® Compact. The Configuration Web GUI now shows the status of the actual value for Nodes. Fixed a bug when using the Int16-Array datatype. 0.9.3 Fixed a bug which prevented writing UInt64 values to a Node. Fixed a bug which occured when using MySQL as back-end database. 0.9.4 (released 2016-09-07) Completely revised the Configuration Web GUI appearance for a better look & feel. For example, it is now possible to do a synchronous read on S7 variables directly in the Configuration GUI. The S7 Device Plugin now automatically checks the connection to the PLC device at a regular interval, so that the channel status contains the current connection status to the device. The S7 Device Plugin now supports reading PLC objects. The directory name of the S7 Device Plugin in the data directory (<CodabixDataDir>) has been renamed from "S7DeviceServer" to "S7DevicePlugin" and the configuration file has been renamed from "CoDaBix.S7DeviceServer.Settings.xml" to "CoDaBix.S7DevicePlugin.Settings.xml". The directory name of the DataBase Exchange Plugin in the data directory (<CodabixDataDir>) has been renamed from "DataBase" to "DataBaseExchangePlugin" and the configuration file has been renamed from "CoDaBix.DataBase.Settings.xml" to "CoDaBix.DataBaseExchangePlugin.Settings.xml". The DataBase Exchange Plugin now supports using an edge trigger. 0.9.5 (released 2016-09-08) Fixed some minor bugs in the Configuration Web GUI . Updated the DataBase Exchange Plugin to version 1.0.1: Added “AfterSyncActions” which allow to write a value to a Node after the record set has been collected. 0.9.6 (released 2016-09-13) Updated the S7 Device Plugin to version 1.0.1: Added a S5 String datatype which doesn't have a 2-byte length prefix. 0.9.7 (released 2016-09-14) Fixed a bug which prevented saving a Script Plugin. 0.9.8 (released 2016-09-20) Added new “Directory” and “File” types for Nodes which represent a physical file on the host computer. This allows you to read that files using an OPC UA Client (as soon as the feature is implemented in the OPC UA Server Interface Plugin) or download it using the HTTP Access URL. The plugin manager now automatically creates a backup of the plugin configuration if a plugin can start successfully. If a plugin fails to start, its previously backed-up configuration is used instead, if present. Updated the Database Exchange Plugin to version 1.0.2: Fixed a bug which lead to record sets being written twice if the same trigger was used in multiple data sets. 0.9.10 (released 2016-10-05) Revised the Script Plugin API to be more sophisticated and more stable for future releases. Added the OPC UA Client Device Plugin that allows you to connect to other OPC UA Servers and map their variables to CoDaBix®. Updated the OPC UA Server Interface Plugin to version 1.0.2: Supports accessing historic values of CoDaBix® Nodes through HDA (Historical Data Access) Supports transferring Files that are represented by CoDaBix® file Nodes The surface of the Configuration Web GUI has been reworked. 0.9.11 (released 2016-10-17) Updated the OPC UA Server Interface Plugin to version 1.0.3: The configuration scheme has been improved to match other plugins. The configuration is now located under the system Node “Interfaces”. It is now possible to configure the application instance certificate, and to use “SignAndEncrypt” mode for an encrypted transport. Fixed some bugs related to user authentication and refreshing Nodes. Updated the OPC UA Client Device Plugin to version 1.0.1: When reading multiple Nodes at once and one Node cannot be read, it will now get a value with a “Bad” status but the other values will be correctly read. System-wide errors are now displayed immediately in the Configuration Web GUI (additionally to CodabixDebugLog.txt), so you don't have to close and open the log file manually. 0.9.12 (released 2016-10-18) Fixed a problem with the Configuration Web GUI which occured when the system was configured to use a proxy Server. 0.9.13 (released 2016-10-21) Fixed a bug which prevented the OPC UA Server Interface Plugin and the OPC UA Client Device Plugin from starting and which prevented installing CoDaBix® Compact as a service, if the CoDaBix® Compact process previously was terminated abnormally. 0.9.15 (released 2016-11-03) The reliability of CoDaBix® Compact has been improved. It is now possible to directly download files represented by file Nodes in the Configuration Web GUI by using the “Write a new value” button. The browse function of the REST/JSON Interface Plugin now supports the ttl parameter for doing a synchronous read.