hexasync.dataprotection.azurekeyvault 1.10.45

hexasync.dataprotection.azurekeyvault

Azure Key Vault KEK-custody adapter for hexasync.dataprotection. Wraps/unwraps DEKs via Key Vault (the KEK never leaves the vault), version-pinned so DEKs stay unwrappable across KEK rotations, and secretless (DefaultAzureCredential / Workload Identity). The Azure SDK is isolated to this package; the core library has no Azure dependency.

Configuration (flat DATA_PROTECTION_* env vars)

House convention: flat UPPER_SNAKE_CASE env vars (no appsettings.json), mapped via [ConfigurationKeyName].

DATA_PROTECTION_KEK_PROVIDER=AzureKeyVault              # switch custody to KV (core setting)
DATA_PROTECTION_KV_VAULT_URI=https://my-vault.vault.azure.net/
DATA_PROTECTION_KV_KEY_NAME=hexasync-kek
DATA_PROTECTION_KV_ALLOW_LOCAL_CREDENTIALS=false        # true only for local dev against a real vault

kek_id is the KV key version (e.g. .../keys/hexasync-kek/<version>) — recorded per DEK so each stays unwrappable under the exact version that wrapped it, even after the vault's current version rotates.

Wiring

services.AddDbContextFactory<MyDbContext>(o => o.UseNpgsql(cs));
services.AddHexaSyncDataProtectionWithEf<MyDbContext>(configuration);   // Provider=AzureKeyVault → registers NO local wrapper
services.AddAzureKeyVaultKeyWrapper(configuration);                     // supplies the KV IKeyWrapper
  • Order-independent relative to AddHexaSyncDataProtection for the AzureKeyVault provider (it registers no wrapper, so the KV one fills the seam either way).
  • Do NOT mix with Provider=Local. AddAzureKeyVaultKeyWrapper throws if an IKeyWrapper is already registered — a Local provider registers one, so combining them is a fail-fast configuration error, not a silent override.

Credentials

Uses DefaultAzureCredential (Workload Identity on AKS / federated identity elsewhere) — no secrets in config. The identity needs Key Vault wrap/unwrap (and get for version resolution) on the KEK. Environment-credential fallback is excluded unless AllowLocalCredentials is set (local dev only).

Operations

KEK-retention (never delete a KEK version while any non-destroyed DEK records it, never faster than backups age out), compromise/rotation, and the fleet re-wrap burst budget are in the core repo's ops runbook: docs/data-protection/OPS_RUNBOOK.md.

No packages depend on hexasync.dataprotection.azurekeyvault.

Version Downloads Last updated
1.10.62 15 08/26/2026
1.10.61 43 08/12/2026
1.10.60 10 08/11/2026
1.10.59 0 08/10/2026
1.10.58 8 08/08/2026
1.10.57 19 08/05/2026
1.10.56 0 08/04/2026
1.10.55 10 08/03/2026
1.10.54 0 08/03/2026
1.10.54-pre 0 08/01/2026
1.10.53 6 07/31/2026
1.10.49 0 07/29/2026
1.10.48 4 07/28/2026
1.10.47 12 07/27/2026
1.10.46 0 07/25/2026
1.10.45 0 07/25/2026
1.10.44 26 07/22/2026
1.10.43 4 07/21/2026
1.10.42 0 07/21/2026
1.10.41 0 07/21/2026
1.10.40 0 07/20/2026
1.10.39 8 07/15/2026
1.10.38 0 07/14/2026
1.10.38-pre.1 0 07/14/2026
1.10.37 0 07/13/2026
1.10.36 24 07/13/2026
1.10.35 0 07/10/2026
1.10.35-pre.13 0 07/10/2026
1.10.35-pre.8 6 07/09/2026
1.10.35-pre.7 0 07/08/2026