Releases: Azure/Industrial-IoT
Azure Industrial IoT OPC Publisher 2.9.11
We are pleased to announce the release of version 2.9.11 of OPC Publisher and the companion web api service. This monthly patch release comes with several bug and security fixes and is the latest supported release. Older releases below are no longer supported.
Changes in 2.9.11
- Fixes an issue when using amqp as transport combined with batching, some batches are not sent successfully (#2321)
- Dependency updates to fix critical vulnerabilities as well as bugs such as proper support for cgroup v2 is used bug (#2261)
- Resiliency and fixes of critical bugs in reconnect scenarios:
- Fix an issue with a runaway Heartbeat timer causing publishing wrong values at wrong time (#2313)
- API addition allowing selecting which OPC Publisher to use for discovery feature request (#2302)
Azure Industrial IoT OPC Publisher 2.9.10
We are pleased to announce the release of version 2.9.10 of OPC Publisher and the companion web api service. This monthly patch release comes with several bug and security fixes and is the latest supported release. Older releases below are no longer supported.
Changes in 2.9.10
- Update OPC UA .net stack to the latest 1.05 version and move forward other dependencies
- API to get the server session, channel and subscription diagnostics for connections (#2303)
- New --aq command line option to calculate queue sizes automatically from publishing interval and sampling interval (#2300)
- New --ipi option to ignore publishing intervals in JSON configuration and use the default configured with --op (#2299)
- New --spw option to configure creating a session per dataset writer (#2298)
- Provide example and documentation for Browse Path definition. Allow browse path without node id in configuration (#2296)
- New defaults for Keep alive counter and lifetime counters set to 0 to let server decide (#2294)
- Updates and additions to writer API to manage writers and writer groups with data set fields (#2257, #2285, #2269, #2293, #2269)
- Fix setting Heartbeat Interval with API is using milliseconds instead of seconds (#2292)
- Fix issue that after calling reset API (/v2/reset) publisher stops receiving data changes (#2291)
- Fix bug where ConditionHandling and Heartbeat timers stop working after reconnects (#2288)
- Fix bug where Complex types are not decoded in initial messages (#2281)
- Allow configuring message TTL on DatasetWriterGroup level (#2280)
- Add ability to set Timestamp in UserProperties of message when using MQTT Transport (#2277)
- JSON Configuration now provides the ability to set a (default) sampling interval for a writer (#2271)
- Show log message when namespace table changes inside a client and between session reconnects (#2263)
- Return ProblemDetails JSON for all error responses (#2201)
- Fix incompatibility when generating SDK from openapi.json using Autorest (#2199)
Azure Industrial IoT OPC Publisher 2.9.9
We are pleased to announce the release of version 2.9.9 of OPC Publisher and the companion web api service. This release comes with several bug and security fixes and is the latest supported release. We recommend strongly to update from 2.9.8 due to several security fixes and some instability reported in 2.9.8 in reconnect situations.
Changes in 2.9.9
- Update OPC UA .net stack to the latest 1.05 version and move forward other dependencies
- Monitored item state is not properly cleaned up after a hard reconnect which leads to heartbeat timers still being alive.
- Allow configuring a watchdog for monitored items and set behavior when watchdog expires (#2164)
- Limit number of publish requests to 10, allow override using command line argument (#2215)
- Fix issue where count of bad and good monitored items is incorrect (#2202)
- Return better error messages in responses (#2195)
- Fix issue where publisher stops respecting reconnect period after initial successful connection (#2189)
- Added sample to show using NodeRead to read attributes (#2226)
- New command line option to read configuration from first certificate found in own folder addresses several backward compatibility breaks when migrating between OPC Publisher versions (#2166)
- Added call timeouts that can be overridden in request header and automatically cancel after timeout (#2203, #2219, #2213)
- Fix an issue where linger does not work when reference continuation token between calls is the same (#2227)
- Add a command line option to disable runtime metrics (#2200, #2197)
- Added ability to write encoded messages to stdout/stderr for debugging (#2259)
- Add ability to disable resource monitoring via command line option to work around any incompatibility with host systems (related to #2261)
- Improved documentation.
Azure Industrial IoT OPC Publisher 2.9.8
We are pleased to announce the release of version 2.9.8 of OPC Publisher and the companion web api service. This release comes with several bug and security fixes and is the latest supported release.
Changes in 2.9.8
- Update OPC UA .net stack to the latest 1.05 version and move forward other dependencies
- Telemetry messages are sent with non default (0) ttl now to support DAPR >= 1.13 (#2243)
- Elevation property in request header does work now when service calls are sent using edge API (#2218)
- Add more Info to Logs in case of publishing errors, e.g. "Too many publish request error" (#2229)
- New Security mode "NotNone" reflecting the legacy "UseSecurity":true setting in nodes. "Best" (any) is persisting after Opc Publisher is restarted (#2228)
- Latest OPC UA .net stack fixes "CRL with zero revoked certificates fails to be decoded (#2214)
- Enable the definition of the GRPC endpoint host name for DAPR (#2235)
- Diagnostic info API returns incorrect information (#2230)
- Make TransferSubscriptionsOnReconnect configurable (via publishednodes.json) (#2205)
- Ability to disable Complex type system loading (#2185)
- Several improvements for cyclic read (#2169)
- BadNodeIdUnknown not re-evaluated despite short retry delays? (#2188)
- Additional information in diagnostic messages including resource consumption (total)
- Persistency of published nodes file now uses .net storage provider which supports enabling file change polling via command line option (needed on some linux setups)
Azure Industrial IoT OPC Publisher 2.9.6
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
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
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
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
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
- 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
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