Skip to content

Releases: Azure/Industrial-IoT

Azure Industrial IoT OPC Publisher 2.9.6

16 Apr 10:58
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.9.6 of OPC Publisher and the companion web api service. It is the latest supported release.

Changes in 2.9.6

  • Update OPC UA .net stack to the latest 1.05 version and move forward other dependencies fixing several reported CVE vulnerabilities.
  • Additional option to log encoded notifications to trace data all the way to send path.
  • Hardened code paths that made it possible that no more publishing requests are enqueued after a while. Continuously ensure minimum amount of publish requests are in progress when receiving good session keep alives.

Azure Industrial IoT OPC Publisher 2.9.5

20 Mar 01:05
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.9.5 of OPC Publisher and the companion web api service. It is the latest supported release.

Changes in 2.9.5

  • Update OPC UA .net stack to the latest 1.05 version and move forward other dependencies
  • Fixed a bug where OPC Publisher could not connect when the port provided in the endpoint during discovery is different than the port in of the discovery URL.

Azure Industrial IoT OPC Publisher 2.9.4

08 Feb 11:13
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.9.4 of OPC Publisher and the companion web api service. This release comes with several bug and security fixes and is the latest supported release.

Breaking changes in 2.9.4

IMPORTANT. Please read when updating from previous versions of OPC Publisher

  • Arm64 and AMD64 container images are published now with Mariner (Azure) Linux (distroless) as base images instead of Alpine.
  • Arm32 (v7) images of OPC Publisher continue to use Alpine as base image. Support transitions to the same model as for "preview" features. Security updates are released as a result of updates to the AMD64 and ARM64 version of OPC Publisher.
  • Swagger UI has been removed without replacement.

Changes in 2.9.4

  • Update OPC UA .net stack to the 1.05 version including latest node set and fixing numerous issues. (#2162)
  • ApiKey and other secrets can now be provided ahead of time through docker secrets (or command line) in addition to being only available in the Module Twin. (#2181)
  • Send the error of CreateMonitoredItem as part of the keyframe field and in heartbeats if WatchdogLKV heartbeat behavior is used (#2150).
  • Credential based authentication uses concrete types for credentials now which are documented in openapi.json (#2152)
  • OPC Publisher can now obtain TLS certificates from IoT Edge workload API to secure the HTTPS API (#2101)
  • Fix release build issue which broke support for ARM64 images running on RPi4 (#2145).
  • Update console diagnostics output to provide better naming, additional diagnostics and reflect other transports than IoT Edge Hub (#2141)
  • Add keep alive notification counts to Diagnostics output and messages
  • Better diagnostics messages of cyclic reads, heartbeats and events including per minute and second reporting (#2175, #2174)
  • Experimental feature to allow publishing model changes in the underlying server address space (change feed) (#2158)
  • Add a full version that includes runtime, framework and full version string to runtime state message, twin, diagnostic object, and in console output.
  • When only using cyclic reads, the underlying dummy subscription should stay disabled (#2139)
  • Recreate session if it expires on server (#2138)
  • Log subscription keep alive error only when session is connected (#2137)
  • Added the ability to switch publisher to emit logs in syslog or systemd format using --lfm command line option.
  • Fix issue where certain publish errors cause reconnect state machine to fail (#2104, #2136)
  • Fix issues with cyclic reads not working as expected, subscribing to nodes > 300 not working (#2160, #2165)
  • Metric names are not like they were in 2.8, some metrics are missing (#2149)
  • SiteId placeholder is not working in TelemetryTopicTemplate (#2161)
  • Messaging mode can now be overridden in Strict mode to use a non-compliant mode. (#2167)

Azure Industrial IoT OPC Publisher 2.9.3

13 Dec 09:57
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.9.3 of OPC Publisher and the companion web api. This release moves OPC Publisher to .net 8 which is the latest LTS version of .net and comes with several new features, bug and security fixes. 2.9.3 is the latest supported release.

Breaking changes

IMPORTANT. Please read when updating from previous versions of OPC Publisher

  • All container images published now use Mariner Linux (distroless) base images instead of Alpine.
  • Metadata collection has shown to be very taxing on OPC UA servers. When 2.9 was dropped in to replace 2.8 in production, memory consumption was too large and connections would drop. OPC Publisher now defaults to --dm=true in 2.9.3 to disable metadata messages to be compatible with 2.8 when --strict / -c is not specified. If you need meta data messages but do not use strict mode (not recommended) you must explicitly enable it using --dm=false.

New features

  • For security the OPC Publisher Web API container now runs root-less. (#2114)
  • New configuration option to specify quality of service. This allows setting QOS0 as alternative to QOS1 (#2085)
  • Diagnostic info can now also be periodically published to a topic or IoT Edge output name using new --dtt diagnostics topic template. (#2068)
  • New Module to module method to get REST endpoint info and API key so that other modules can access the REST API (#2096)
  • Fixed Publisher HTTPS API returning SSL_ERROR_SYSCALL error. Now a self signed certificate is the fallback if workload api cannot produce a certificate with private key (#2101)
  • Restart announcement now includes additional information, including version, timestamp of (re-)start, module and device ids.
  • X509 User Authentication support using secrets reference feature request (#2005)
  • New API to manage the PKI infrastructure of the OPC Publisher (certificate stores). You can now list, add and remove certificates from the OPC UA certificate stores remotely. (#1996)
  • You can now configure OPC Publisher to re-use a session across writer groups with the same endpoint url and security settings. (#2065)
  • Subscription Watchdog monitors keep alive notifications and generates metric and logs when subscription keep alive is missing (#2060)
  • Added samples to show how to call OPC Publisher API over MQTT, HTTP and IoT Hub.

Bug fixes

  • 2.8 Start instrument was missing on 2.9 prometheus endpoint (#2110)
  • Harden when OPC UA server sometimes reports monitored items samples changes unordered in subscription notification and thus samples messages are also unordered (#2108)
  • Need to have timestamp information and other information in runtime state reporting message, need to have a special routing path for runtime state messages feature request. Restart announcement now includes additional information, including version, timestamp of (re-)start, module and device ids. (#2111)
  • Optimize metadata collection, do not collect metadata from servers for built in types (#2105)
  • Fix that it was not possible to configure event subscriptions for multiple events on the same node id (#2098)
  • Fix complex type encoding where Json message encoding has value in Binary encoding for complex (multilevel structure) (#2090)
  • Dapr now works without requiring state component. Dapr now runs over http instead of https by default. New option to select the url scheme (#2102, #2119, #2117, #2109
  • It is now possible to disable retrying subscription re-creation by configuring a value of 0. (#2100)
  • Fix that extension field values show up wrong in samples mode. (#2092)
  • Fix Event subscription using the REST Api fails with: "The request field is required." (#2078)
  • The configuration of the OpcPublisher 2.9.2 fails using the REST Api bug (#2066)
  • For each configured in pn.json Dataset publisher must try to reuse an existing session for this EndpointUrl with the identical security settings (if exists). feature request
  • Address issues deploying the web api, e.g., getting error when trying to use option 2 to deploy Azure IIoT Deployment and ./aad-register.ps1 errors with "A parameter cannot be found that matches the parameter name 'ReplyUrl'." (#2063, #2064)
  • Update documentation, including breaking changes, Add Azure Storage, Azure Key Vault services, and Application Insights to arch diagram, how to setup the OPCPublisher edge module with X.509 certificates documentation, and how to emit ExtensionFields in Pub sub mode using key frame counter. (#1917, #2091, #2083)
  • Fix incorrect API definitions in OpenAPI JSON for OPC publisher
  • FileSystem event client target now appends data instead of updating the file content. FileSystem target now supports arbitrary chars in topics.

Azure Industrial IoT OPC Publisher 2.9.2

19 Sep 06:10
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.9.2 of OPC Publisher. This release comes with several bug and security fixes and is the latest supported release.

Changes in this release

  • Update to version 1.4.372 of the OPC UA .net stack and updated to latest secure version of nuget dependencies.
  • Fixed a bug where data stopped flowing in OPC Publisher bug on reconnect when subscription ids do not match server state (#2055)
  • Ability to select the message timestamp and behavior of Heartbeat
    • Ability to generate heartbeats with different sourceTimestamp and serverTimestamp (#2049)
    • Added a behavior option to update the source timestamp relative to the LKV to mimic previous behavior (#2048)
  • First Heartbeat message now dows not send anymore GoodNoData status when the monitored item is not yet live (#2041)
  • MQTT reconnect and disconnect reasons are now logged as errors (#2025)
  • Fixed an issue where Publisher failed to subscribe to a node because namespace table entry was not available during connect/subscribe (#2042) (Thank you @quality-leftovers for contributing this fix)
  • The default application name used to create certs is now the same as in 2.8 (#2047)
  • Batch size and Batch trigger have same defaults now than 2.8 (#2045)
  • Fix a bug where the user was not added correctly as owner in the aad_register.ps1 script (Thank you @0o001 for contributing this fix)

Azure Industrial IoT OPC Publisher 2.9.1

02 Sep 08:37
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.9.1 of OPC Publisher. 2.9.1 comes with several bug and security fixes and is the latest supported release.

Changes in this release

  • Update all dependencies to latest version, in particular latest opc ua .net stack release 372
  • MQTT samples and making MQTT method calls over RPC working with Mqtt.net (#2039)
  • IoT Hub direct method samples (#2032)
  • The CLI switches using the environment variable names do no work (#2021)
  • New command line setting to select which clock is chosen for message timestamp (publish time or publisher current time) (#2035)
  • Fix negative count shown in diagnostics (#2031)
  • Documentation updates and fixes

Azure Industrial IoT OPC Publisher 2.9.0

14 Jul 06:31
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.9.0 of OPC Publisher. This is the next major iteration of the Industrial IoT Platform and is the result of feedback received from partners and community. This release combines all separate Azure IoT Edge modules we shipped in 2.8 into a single OPC Publisher module. The cloud services previously shipped have also been combined into a single Web-API service that can be deployed as an Azure App Service.

OPC Publisher 2.9.0 is a drop-in replacement for OPC Publisher 2.8.7. In addition to backwards compatibility, it is based on a modern foundation including .net 7, using latest analyzers and nullable type annotations, ASP.net core and the most recent OPC UA .net stack and comes with many new and heavily requested features.

New in 2.9.0

  • Alarms and Events support. You can now subscribe to events in addition to value changes and in the familiar ways using the published nodes json configuration and direct methods.
  • Dead band filtering. We introduced data change triggers in 2.8.4 and are now supporting the full data change filter configuration to configure percent and absolute dead band as defined in OPC UA.
  • Standards compliant. We now support a Strict mode to make OPC Publisher adhere to OPC UA Part 14 and Part 6, including message formats and data type serialization. It is recommended to enable this setting in all new deployments. In addition
    • The publisher id in each message is now always the same value across all writer groups rather than previously where a random GUID was used per writer group when a publisher id was not configured.
    • OPC Publisher provides full support for UADP network message encoding, as well as reversible Json profiles (JsonReversible). We added support for smaller network messages by removing network message and dataset message headers (adding new MessageType.RawDataset and MessageType.DataSetMessages).
    • New support for gzip encoded Json (MessageEncoding.JsonGzip and MessageEncoding.JsonReversibleGzip) to compress JSON without resorting to UADP.
  • Send additional extension fields as part of dataset message and enable free form configuration of extension fields #1940
  • We brought back support for --sf and SkipFirst property to skip the first data change notification to be sent when subscription is created which we dropped in OPC Publisher 2.6.
  • Ability to run all edge modules without micro services #464
    • OPC Discovery has been included into the OPC Publisher module.
    • OPC Twin has been included into the OPC Publisher module, the container name must be updated to refer to OPC Publisher.
    • Support for opc-twin module api direct method calls with input arguments (not requiring OPC Twin micro services) #1512, #996, #464
  • New APIs to enable additional scenarios:
    • A new synchronous FindServer API has been added to allow discovery by discovery url through a single API call.
    • Support for a new TestConnection API to test a connection to a server and receiving detailed error information back.
    • New API to request opc server's nodes information #1960
  • Support for Reverse Connect #1586
  • New deterministic Heartbeat behavior (heartbeat acts as value change watchdog). #1993
  • With cyclic read support OPC Publisher can now poll data from server periodically rather than subscribing. #1934, #605
  • Cyclic reads and monitored items now also support Registered read to register the node id for faster access in some servers.
  • All micro services have been combined into a single WebAPI with the same resource paths as the 2.8 AKS deployment and all-in-one service.
    • Supervisor, Discoverer entities have been removed, but the API has been layered on top of the publisher entity for backwards compatibility. Do not use these API's anymore.
    • A new RegisterEndpoint API has been added that calls the new sync FindServer API and adds the result into the registry in one call.
    • The telemetry and onboarding processors have been integrated into the WebAPI, but only forwards to SignalR. The secondary event hub has been removed. If you need to post process telemetry you must read telemetry data directly from IoT Hub.
  • New Namespaces for all projects and simplified code structure. There are now 2 SDK projects, one for the OPC Publisher module, and another for the optional cloud WebAPI companion service.
  • Improved and simplified documentation
    • Documentation for the diagnostics output in the new troubleshooting guide #1952
    • Better documentation for REST API call with API Key #1991/#1976/#1504
    • Documentation for --strict mode in OPC Publisher, Better documentation for all other message profiles. #1938
  • dotnet publish can be used to build a docker container for OPC Publisher from the repository #1949
  • This release adds OpenTelemetry exporter for metrics and new instrumentation
    • Metrics and log output showing number of sessions currently active (related to #1923)
    • Metric on OPC Server down or wrong credentials provided #1445
  • Support for iotedgehubdev IoT Edge Simulator environment
    • Fix Can't run OPC UA Publisher standalone module inside IoT Edge Simulator environment (iotedgehubdev) #1708
    • No BypassCertVerification required in Simulation with VS Code / iotedgehubdev #1922
    • Fix standalone OPC-Publisher in Edge Simulator doesn't work #1999
  • Application uri of the publisher is now unique in a deployment. #1986
  • Publisher will now prefer the endpoint matching the configured endpoint url instead of picking the first in the list. #2013
  • JSON encoder now uses G8/17 to serialize float/double for precision Float/Double Serializer #1709
  • Many new configuration options and 2.9 configuration schema extensions
    • Configuration can now specify published nodes using browse path #47
    • DisplayName values defined for the event fields in pn.json are now used as keys in the payload of dataset messages (#1963)
    • Ability to select the namespace format for nodes and qualified names to switch between nsu and ns index format like ns=1;s=CycleCounter using API and telemetry #1057
    • Option to directly enable subscription during create rather than using SetPublishingMode request. #1773
    • Option to enable swagger UI in release build publishers. #2009
    • Select security mode and profile in configuration #2008
    • Command line option to disable complex type loading. #1953

This release is based on the latest .net 7 foundation and comes with all latest nuget dependencies. It has passed all our tests, nevertheless, please let us know if you encounter issues by opening a GitHub issue.

Azure Industrial IoT OPC Publisher 2.8.7

07 Jul 06:51
Compare
Choose a tag to compare

We are pleased to announce the release of version 2.8.7 of OPC Publisher as latest patch update of the 2.8 Long-Term Support (LTS) release of OPC Publisher. This is the first extended LTS release of OPC Publisher edge module (standalone). This release contains security updates and bugfixes.

IMPORTANT: This version of OPC Publisher is only supported in "standalone" mode, not in context with Industrial IoT Platform 2.8.

Changes in this release

  • Latest version of OPC UA stack .371 fixing several vulnerabilities and bugs
  • Fix CVE in 1 .net dependency (PKCS), updated other dependencies to latest.
  • Using latest Alpine base image

Azure Industrial IoT OPC Publisher 2.9.0 Preview 4

26 Jun 11:30
Compare
Choose a tag to compare

We are pleased to announce the fourth preview release of version 2.9.0 of OPC Publisher. This release adds several new features including support for reverse connect.

Use the "2.9.0-preview4" tag when pulling containers from MCR or running the deployment scripts.

IMPORTANT: Preview releases are only supported through GitHub issues. This particular release due to the number of changes included might have backward compatibility breaks that have not yet been documented. Please file issues and we will try to address them ahead of GA release.

Changes in 2.9.0 Preview 4

  • [OPC Publisher] Better documentation for REST API call with API Key #1991
  • [OPC Publisher] Fix Can't run OPC UA Publisher standalone module inside IoT Edge Simulator environment (iotedgehubdev) #1708
  • [OPC Publisher] No BypassCertVerification required in Simulation with VS Code / iotedgehubdev #1922
  • [OPC Publisher] Fix standalone OPC-Publisher in Edge Simulator doesn't work #1999
  • [OPC Publisher] Fix 2.9 preview 3 not supporting iot edge decrypt of passwords #1998
  • [OPC Publisher] Application uri of the publisher should be unique for the deployment. #1986
  • [OPC Publisher] Better documentation for --strict mode in OPC Publisher, Better documentation for all other message profiles. #1938
  • [OPC Publisher] A way to node id in nsu and ns index format like ns=1;s=CycleCounter using API and telemetry #1057
  • [OPC Publisher] Support for Reverse Connect # 1586

Azure Industrial IoT OPC Publisher 2.9.0 Preview 3

13 Jun 07:18
Compare
Choose a tag to compare

We are pleased to announce the third preview release of version 2.9.0 of OPC Publisher. This release adds several new features including support for cyclic reads.

Use the "2.9.0-preview3" tag when pulling containers from MCR or running the deployment scripts.

IMPORTANT: Preview releases are only supported through GitHub issues. This particular release due to the number of changes included might have backward compatibility breaks that have not yet been documented. Please file issues and we will try to address them ahead of GA release.

Changes in 2.9.0 Preview 3

  • [OPC Publisher] Heartbeat behavior is not deterministic - implement heartbeat as value change watchdog. #1993
  • [OPC Publisher] When enabling client linger in preview2 a failing connection retries forever #1985
  • [OPC Publisher] Alarm condition integration tests have been partially disabled and need to enable again #1989
  • [OPC Publisher] Need OPC Publisher to poll data from server periodically rather than subscribing. #1934
  • [OPC Publisher] Polling mechanism instead of PubSub in OPCPublisher #605
  • [OPC Publisher] Configuration of the published nodes by browse path #47
  • [OPC Publisher] deploy.ps1 fails upon deploying "platform" #1981
  • [OPC Publisher] Updated documentation and nuget dependencies