Webority.Azure.DataProtection
0.1.3
See the version list below for details.
dotnet add package Webority.Azure.DataProtection --version 0.1.3
NuGet\Install-Package Webority.Azure.DataProtection -Version 0.1.3
<PackageReference Include="Webority.Azure.DataProtection" Version="0.1.3" />
<PackageVersion Include="Webority.Azure.DataProtection" Version="0.1.3" />
<PackageReference Include="Webority.Azure.DataProtection" />
paket add Webority.Azure.DataProtection --version 0.1.3
#r "nuget: Webority.Azure.DataProtection, 0.1.3"
#:package Webority.Azure.DataProtection@0.1.3
#addin nuget:?package=Webority.Azure.DataProtection&version=0.1.3
#tool nuget:?package=Webority.Azure.DataProtection&version=0.1.3
Webority.Azure
Shared Azure infrastructure for the Webority product fleet — one canonical, optimized implementation of the Azure plumbing every product used to hand-copy (and drift on).
Package IDs stay Webority.Azure.* for a tidy nuget.org grouping, but the C# namespaces are
deliberately Webority.AzureStorage / Webority.AzureTelemetry / Webority.AzureDataProtection /
Webority.AzureNotificationHubs — not Webority.Azure.*. A Webority.Azure.* namespace would
shadow the Azure SDK's own Azure root namespace for any consumer code living under a
Webority.* namespace, since C# walks enclosing namespaces and finds Webority.Azure before it
ever reaches global Azure.Core/Azure.Identity.
| Package | What it gives a product |
|---|---|
Webority.Azure.Storage |
Blob / Queue / Table services: singleton cached clients, streaming downloads (DownloadStreamingAsync), seekable OpenReadAsync for range-resumable large downloads, resumable chunked block upload (caller-supplied block ids shareable with a browser client, plus GetStagedBlockIdsAsync to resume an interrupted upload) with content type on commit, HTTPS-only read and write SAS for both auth models (user-delegation key cached), Base64 queues with known-queue cache, Table service + IDistributedCache implementation. |
Webority.Azure.DataProtection |
One-call ASP.NET Core DataProtection key persistence to blob storage. |
Webority.Azure.Telemetry |
One-call OpenTelemetry → Azure Monitor bootstrap (connection string, sampling ratio, noisy-metric drop views) replacing the per-head copied block. |
Webority.Azure.NotificationHubs |
Push notifications (FCM v1 + APNS) over Azure Notification Hubs with typed payload building. |
Auth model (Storage)
One options contract, two modes — set exactly one:
Azure:Storage:StorageAccountName→ Entra / managed identity via a narrowedDefaultAzureCredentialchain (ManagedIdentity in Azure, Azure CLI locally — nothing else, so no slow credential probing on constrained plans). One cached credential per process.Azure:Storage:ConnectionString→ shared key (the local-development default: developers without Azure access use the staging account's connection string).
Conventions
- All services register as singletons (Azure SDK clients own their transport and are built
for process-wide reuse — see
dotnet.md, HttpClient/SDK-client rule). - Options are validated on start (
ValidateDataAnnotations().ValidateOnStart()); a misconfigured host crashes at boot, never at first request. - Public type names match the pre-extraction fleet implementations (
IAzureStorageBlobService, …), so migrating a product is ausingswap plus deleting its local copy.
Releasing
Version lives once in Directory.Build.props (<Version>). Push to main runs tests, packs
all four packages, and publishes to public nuget.org (.github/workflows/publish.yml).
Work happens on development; a release is a PR development → main merged with a merge
commit, per the fleet git conventions.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Azure.Extensions.AspNetCore.DataProtection.Blobs (>= 1.5.3)
- Microsoft.AspNetCore.DataProtection (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Webority.Azure.Storage (>= 0.1.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.10.0 | 36 | 10/4/2026 |
| 0.9.0 | 36 | 10/4/2026 |
| 0.8.0 | 47 | 10/3/2026 |
| 0.7.0 | 81 | 9/27/2026 |
| 0.6.0 | 90 | 9/25/2026 |
| 0.5.1 | 99 | 9/25/2026 |
| 0.5.0 | 87 | 9/22/2026 |
| 0.4.0 | 90 | 9/22/2026 |
| 0.3.1 | 99 | 9/22/2026 |
| 0.3.0 | 98 | 9/15/2026 |
| 0.2.0 | 96 | 9/13/2026 |
| 0.1.4 | 125 | 8/12/2026 |
| 0.1.3 | 112 | 8/12/2026 |
| 0.1.2 | 109 | 8/12/2026 |
| 0.1.1 | 113 | 8/12/2026 |
| 0.1.0 | 113 | 8/12/2026 |