Improve handling of client publish max request count.
What's Changed
- remove winforms sample projects from main repo by @romanett in #2626
- Client Structure by @romanett in #2668
- Add test cases which need security none but are currently skipped on a secured server by @mregen in #2678
- Bump NUnit.Console from 3.17.0 to 3.18.1 by @dependabot in #2682
- Remove System.Security.Cryptography.Cng dependency by @mregen in #2688
- Bump Serilog and System.Diagnostics.DiagnosticSource by @dependabot in #2689
- Bump NUnit3TestAdapter from 4.5.0 to 4.6.0 by @dependabot in #2690
- Bump NunitXml.TestLogger from 3.1.20 to 4.0.254 by @dependabot in #2691
- Enhance publish request count management to allow limiting the publish requests to a max count by @marcschier in #2681
- (bug) fix #2697 - m_keepAliveInterval should always be >= kMinKeepAliveTimerInterval by @BoBiene in #2698
- Fix template based constructor in Subscription.cs by @ThomasNehring in #2677
- Added PublisherMqttClientOptions and SubscriberMqttClientOptions for enabling custom configurations. by @mrsuciu in #2672
- Remove default rejected store creation by @romanett in #2696
- More fuzz targets for binary and Xml decoders by @mregen in #2621
- Bump Microsoft.NET.Test.Sdk from 17.9.0 to 17.10.0 by @dependabot in #2701
- [Server] Limit Access to server diagnostics array to Admin User by @romanett in #2695
- Fix CI Build flaky tests by reducing log output, default tests to net8.0, by @mregen in #2704
- Bump Nerdbank.GitVersioning from 3.6.139 to 3.6.141 by @dependabot in #2706
- Bump BenchmarkDotNet from 0.13.12 to 0.14.0 and fix some build issues for legacy platforms by @dependabot in #2707
- Managed Browse and Browse Next for the UA client. by @ThomasNehring in #2673
- Server SDK mistakenly uses SendBufferSize as ReceiveBufferSize and vice versa by @mregen in #2718
- Bump System.Security.Cryptography.Cng from 4.5.2 to 5.0.0 by @dependabot in #2724
- Bump Newtonsoft.Json and System.Runtime.InteropServices.RuntimeInformation by @dependabot in #2723
- Improve reconnect error messages, misc. small improvements by @mregen in #2719
- Remove example of how to select unrecommended RSA15 Policy by @Archie-Miller in #2728
- In the managed browse, pass the request header into browse next. by @ThomasNehring in #2726
- Allow bad status code for optional Attributes in ReadNodes by @NoahHoelterhoff in #2730
- Add tolerance to timestamp validation to reduce excessive future time… by @BoBiene in #2711
- Skip client server cert app uri validation due to IOP issues by @mregen in #2733
- Fix a deadlock in binary channel on cleanup, reduce contention due to locks on high server load by @mregen in #2714
- AddRejected method for ICertificateStore by @mregen in #2720
- Add a 1.05 update notice by @BoBiene in #2709
- Check that DataValue.Value is not null when verifying the event notifier for an object by @kristianmo in #2729
- August release testing: Improve cert blob decoding hot path and fix cert validator semaphore regression by @mregen in #2748
- Remove https package from OPCFoundation.NetStandard.Opc.Ua dependencies, causes build issues. by @mregen in #2751
- Release testing: Fix channel remove issue and channel exhaustion on reconnect by @mregen in #2749
- Merge main in release branch by @mregen in #2750
- Bump Moq from 4.20.70 to 4.20.72 by @dependabot in #2758
- Bump MQTTnet from 4.3.6.1152 to 4.3.7.1207 by @dependabot in #2756
- Bump Microsoft.NET.Test.Sdk from 17.11.0 to 17.11.1 by @dependabot in #2757
- Openstore returns null if CertificateIdentifier is empty by @mregen in #2761
- Merge some fixes for release by @mregen in #2762
Bug fixes
- Various smaller bug fixes.
- Removed the mandatory client check for a match of the application Uri in the server certificate and the returned endpoint. Many production servers have it incorrectly configured. Open work item to make the check optional.
- Winforms samples were moved to the samples repo. The Reference server Quickstart samples are available in a Nuget package from the preview feed.
- Improve handling of client publish max request count. by @marcschier
- The rejected store can be completely disabled (by @romanett) and the rejected certificate history can be limited with a new setting MaxRejectedCertificates. Rejected store is only supported with Directory store.
- Better support for client browse with a ManagedBrowse implementation, which handles BrowseNext and all various types of errors that can occur. Implicitely also used by the NodeCache and other API that exposed browse functionality. by @ThomasNehring.
- Reduce Server NodeManager contention on high load by moving some dictionaries to ConcurrentDictionary to avoid blocking in service calls.
- Fix a server deadlock in channel cleanup.
- More fuzz targets for the Xml Encoder/decoder. Now all encoders follow the dispose pattern.
Breaking changes
- ICertificateStore has a new member NoPrivateKeys and a new method AddRejected optimized to save certs with low overhead.
- CertificateStoreIdentifier.OpenStore has been flagged deprecated to allow for certificate caching.
- CertificateStoreIdentifier with DirectoryStore supports to cache certificates if the store is just closed, not disposed.
- Removed https package from OPCFoundation.NetStandard.Opc.Ua and marked it deprecated. Recommended is to set a dependency only to required packages, e.g. Server, Client, GDS.Client etc. to minimize the number of dependencies.
- The Basic128Rsa15 policy has been removed from server configurations. It is considered unsafe and should only be used when connecting to legacy devices with no other option.