Skip to content

Releases: Azure/iot-operations-sdks

Azure.Iot.Operations.Services 1.2.1 Release

19 May 23:17
3ed8803

Choose a tag to compare

Fix how ADR client uses telemetry codegen layer (#1329)

Azure.Iot.Operations.Connector 1.1.1 Release

19 May 23:18
3ed8803

Choose a tag to compare

Fix bug where updating an asset would not cancel previously invoked 'WhileAssetIsAvailable' callback (#1323)

[Rust] mqtt@v1.0.2

14 May 20:41
9e028d0

Choose a tag to compare

Fixes

  • Disable kTLS by default in the Tokio/OpenSSL TLS transport to avoid incorrect handling of server-sent TLS session tickets #1333

Azure.Iot.Operations.Services 1.2.0 Release

27 Apr 22:59
be05c50

Choose a tag to compare

  • Change StopAsync/DisposeAsync pattern (#1297)
    • This change now requires users to call StopAsync on SchemaRegistryClient, StateStoreClient, LeasedLockClient, LeaderElectionClient, and AzureDeviceRegistryClient in order to unsubscribe from any MQTT topics that they were subscribed to. Previously, simply disposing these clients would unsubscribe from these topics, but now it does not.
  • Add support for reporting health status of endpoints, management actions, streams, etc. (#1290)

Azure.Iot.Operations.Protocol 1.2.0 Release

27 Apr 22:55
be05c50

Choose a tag to compare

  • Change StopAsync/DisposeAsync pattern (#1297)
    • This change now requires users to call StopAsync on CommandInvoker, CommandExecutor, and TelemetryReceiver in order to unsubscribe from any MQTT topics that they were subscribed to. Previously, simply disposing these clients would unsubscribe from these topics, but now it does not.

Azure.Iot.Operations.MQTT 1.1.0 Release

27 Apr 22:52
be05c50

Choose a tag to compare

  • Add new "ThrowIfUsedWhenSessionInactive" flag to session client options and new "SessionClosedException" that will be thrown if this flag is set and a session client attempts to publish/subscribe/unsubscribe while the session is closed (#1297)
  • Fix bug where disposing session client while it is reconnecting could cause unobserved ObjectDisposeException (#1289)

Azure.Iot.Operations.Connector 1.1.0 Release

27 Apr 23:01
be05c50

Choose a tag to compare

  • Adopt new pattern of calling StopAsync and DisposeAsync on clients such as SchemaRegistryClient (#1297)
  • Add support for reporting health status of endpoints, management actions, streams, etc. (#1290)
    • Minor note: DeviceEndpointClient and AssetClient now implement IAsyncDisposable rather than IDisposable, but this disposal was already being done for the user in the base connector

[Rust] connector@v2.0.1

21 Apr 15:24
d0bc6d4

Choose a tag to compare

Fixes

  • Storage destinations are no longer rejected as a configuration error and can now be created. Forwarding data to a Storage destination now returns a ValidationError instead of panicking with unimplemented!()

[Rust] services@v1.2.0

20 Mar 18:20
e1768f5

Choose a tag to compare

Design Changes

  • Adds Health Status reporting support to the Azure Device Registry Client
    • New RuntimeHealth type for reporting health status (Available/Unavailable with optional message and reason code)
    • Adds convenience methods on the Client for creating background health reporters:
      • new_device_endpoint_health_reporter()
      • new_dataset_health_reporter()
      • new_event_health_reporter()
      • new_stream_health_reporter()
      • new_management_action_health_reporter()
    • Health reporters automatically re-report events in the background at a user-specified interval
      • Background health reporting includes deduplication to skip redundant reports for the same status
    • HealthReporterSender provides report(), pause() APIs for controlling health reporting
    • New direct reporting methods on the Client: report_device_endpoint_runtime_health_event(), report_dataset_runtime_health_events(), report_event_runtime_health_events(), report_stream_runtime_health_events(), report_management_action_runtime_health_events()

Fixes

  • Fixed an issue where ADR Client auto-ack could be incorrectly set to false due to conflicting derive(Default) and derive(Builder) defaults. The derive(Default) was removed from ClientOptions so that builder defaults are always used. If the ::default() is used then auto-ack would be set to true. [#1252]

[Rust] connector@v2.0.0

20 Mar 18:23
e1768f5

Choose a tag to compare

Design Changes

  • Adds Management Actions support
    • New ManagementActionExecutor for receiving and responding to management action requests via RPC commands
    • New ManagementActionClient for managing management action lifecycle and notifications
    • ManagementActionNotification enum with variants: AssetUpdated, Updated, UpdatedWithNewExecutor, and Deleted
    • New ManagementActionSpecification and ManagementGroupSpecification types containing action/group configuration, type, target URI, timeout, and topic information
    • ManagementActionRef and ManagementActionStatusReporter for status reporting
    • ManagementActionRequest provides payload, content type, format indicator, custom user data, and topic tokens
    • ManagementActionResponseBuilder for constructing responses with optional application errors
  • Adds UnsupportedComponentClient convenience trait and implementations for DataOperationClient and ManagementActionClient to more easily handle unsupported components in a generic way
  • Adds health event reporting functionality
    • RuntimeHealthEvent enum (Available/Unavailable) for reporting component health
    • report_health_event(), pause_health_reporting(), refresh_health_version(), pause_and_refresh_health_version() APIs on DataOperationClient and ManagementActionClient
    • Health events are periodically re-reported in the background with deduplication
  • Exposes reconnect policy in BaseConnectorOptions to allow applications to control MQTT reconnection behavior

Breaking

  • DataOperationNotification enum has been redesigned
    • Updated and UpdatedInvalid variants are replaced by AssetUpdated(Result<(), AdrConfigError>) and Updated(Result<(), AdrConfigError>)
    • AssetUpdated indicates the containing Asset was updated without changes to the Data Operation definition
    • Update notifications now return a Result indicating whether the SDK detected a configuration error for the Data Operation
    • New Data Operations with SDK-detected config errors are now provided to the application with error details, rather than being withheld
  • AssetClient creation notification now returns AssetComponentClient instead of DataOperationClient to handle management action creation.

Limitations

  • Default topic resolution for Management Actions is not supported

Fixes

  • Fixed Data Operation notification bugs where asset updates were not propagated to Data Operation notification channels, causing the application to not re-report status [#1187]
  • SDK-detected configuration errors for Data Operations are now surfaced to the application instead of being silently handled internally, reducing race conditions between Asset and Data Operation updates [#1187]
  • Fixed an issue where an early publish not getting acknowledged by the ADR client blocked all further publishes from being received [#1252]