github Azure/azure-sdk-for-net Azure.Security.ConfidentialLedger_2.0.0-beta.2

pre-release3 hours ago

2.0.0-beta.2 (2026-08-13)

Features Added

  • Added support to route retryable HTTP responses and retryable transport failures to failover ledgers for GetLedgerEntry, GetLedgerEntryAsync, GetCurrentLedgerEntry, and GetCurrentLedgerEntryAsync. No other reads or writes fail over. The primary and every failover endpoint receive independent normal retry budgets; caller cancellation never initiates failover, and the original primary failure is preserved if discovery or all failovers fail.

  • Added ConfidentialLedgerClientOptions.Failover to control the order in which failover endpoints are attempted: Ordered (default, preserves the order reported by the identity service) or Random (shuffles the candidates to spread load across failover ledgers).

  • Added ConfidentialLedgerClientOptions.FailoverNetworkTimeout. When set, this network timeout applies independently to requests against each failover endpoint. When unset, the configured retry network timeout applies.

  • The client now treats a GetLedgerEntry/GetLedgerEntryAsync response that is still in the Loading state as transient and automatically polls until the entry is committed, bounded by the client's configured retry settings (ClientOptions.Retry.MaxRetries attempts with ClientOptions.Retry.Delay between attempts). Callers no longer need to write a manual polling loop.

  • Added ConfidentialLedgerClientOptions.EnableArchivedCollectionFallback. It defaults to true, so GetCurrentLedgerEntry and GetCurrentLedgerEntryAsync transparently fall back to a historical query for a collection whose latest entry has been archived (pruned), without additional caller logic or configuration. Set it to false to retain the legacy 404 Not Found behavior.

  • Added strongly typed convenience overloads for service operations. The existing protocol methods remain available for advanced scenarios.

  • Added experimental configuration and host-builder integration through ConfidentialLedgerClientSettings and ConfidentialLedgerClientHostExtensions.

Breaking Changes

  • Renamed and moved Azure.Security.ConfidentialLedger.Models.SecurityConfidentialLedgerModelFactory to Azure.Security.ConfidentialLedger.ConfidentialLedgerModelFactory.

Bugs Fixed

  • Failover requests are now validated by endpoint-specific transports against that ledger's own identity TLS certificate, fetched from the independently validated Identity Service. A certificate trusted for one ledger cannot authenticate another ledger. Custom transports remain supported.
  • PostLedgerEntryOperation now treats transient 406 NotAcceptable responses from the status endpoint as Pending and tolerates exactly 3 consecutive 404 NotFound HTTP responses while a transaction is replicated. The operation-specific 404 tolerance no longer multiplies with pipeline retries; normal 404 retry behavior remains unchanged for other operations.
  • Archived-collection fallback responses now preserve the complete historical ledger entry payload, including optional tags.

Don't miss a new azure-sdk-for-net release

NewReleases is sending notifications on new releases.