Cross.PepperVault 1.0.0-dev.9

This is a prerelease version of Cross.PepperVault.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Cross.PepperVault --version 1.0.0-dev.9
                    
NuGet\Install-Package Cross.PepperVault -Version 1.0.0-dev.9
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cross.PepperVault" Version="1.0.0-dev.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cross.PepperVault" Version="1.0.0-dev.9" />
                    
Directory.Packages.props
<PackageReference Include="Cross.PepperVault" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Cross.PepperVault --version 1.0.0-dev.9
                    
#r "nuget: Cross.PepperVault, 1.0.0-dev.9"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Cross.PepperVault@1.0.0-dev.9
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Cross.PepperVault&version=1.0.0-dev.9&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Cross.PepperVault&version=1.0.0-dev.9&prerelease
                    
Install as a Cake Tool

License GitHub Release Date NuGetVersion NugetDownloads Coverage issues .NET PR

Size GitHub contributors GitHub commits since latest release (by date) Activity Activity Activity

Cross.PepperVault

A set of .NET libraries for configurable loading of pepper values (secret strings used to harden password hashes and similar use cases), with support for multiple versions, a TTL cache, reload, and FluentValidation of options at startup. The core defines the IPepperVaultProvider contract and shared infrastructure; data sources live in separate NuGet packages.

Features

  • Pepper versions — version dictionary, active current version, rotation without application downtime.
  • Cache and TTL — providers built on PepperProviderBase cache loads and refresh on timeout and when options change via IOptionsMonitor.
  • ConfigurationPepper section, binding via AddPepperOptions, ValidateOnStart(), and composite FluentValidation validators.
  • Providers — environment, file, Azure Key Vault, AWS Secrets Manager, GCP Secret Manager, HashiCorp Vault, and more; reference only what you need.
  • Extensibility — plug in your own source: inherit PepperProviderBase and register IPepperVaultProvider in DI.

Target frameworks

All projects target netstandard2.1 and net6.0 through net10.0 (see .csproj).

Packages

Per-package NuGet download and latest-version badges. Issues: the core package row shows the repo-wide open-issue count; each provider row shows the count for a GitHub search scoped to this repository and the full NuGet package id (there are no per-package labels in this repo).

Package Downloads NuGet latest Issues Notes
Cross.PepperVault NuGet NuGet issues Core: options, validation, IPepperVaultProvider, PepperProviderBase.
Cross.PepperVault.Env NuGet NuGet issues Pepper from configuration (Pepper:ProviderOptions: current version and dictionary).
Cross.PepperVault.EnvJson NuGet NuGet issues JSON from an environment variable.
Cross.PepperVault.FileJson NuGet NuGet issues JSON from a file.
Cross.PepperVault.AzureKvJson NuGet NuGet issues Azure Key Vault secret whose payload is versioned JSON.
Cross.PepperVault.AzureKvVersioned NuGet NuGet issues Multiple secret versions in Key Vault via tags.
Cross.PepperVault.AwsSecretsJson NuGet NuGet issues AWS Secrets Manager secret as JSON.
Cross.PepperVault.GcpSecretManagerJson NuGet NuGet issues Google Cloud Secret Manager.
Cross.PepperVault.HcvKv2Json NuGet NuGet issues HashiCorp Vault KV v2 via VaultSharp.

Target frameworks: libraries target netstandard2.1 and .NET 6 through .NET 10. Keep Cross.PepperVault and your provider packages on compatible NuGet versions (same release line); pin versions in production.

# Package Manager Console (Visual Studio) — install core + any providers you need
Install-Package Cross.PepperVault
Install-Package Cross.PepperVault.Env
Install-Package Cross.PepperVault.EnvJson
Install-Package Cross.PepperVault.FileJson
Install-Package Cross.PepperVault.AzureKvJson
Install-Package Cross.PepperVault.AzureKvVersioned
Install-Package Cross.PepperVault.AwsSecretsJson
Install-Package Cross.PepperVault.GcpSecretManagerJson
Install-Package Cross.PepperVault.HcvKv2Json

Then register AddPepperOptions (with your provider options and validator types) and IPepperVaultProvider in DI — see Quick start below.

Quick start

  1. Add NuGet packages (example: core + Env):
dotnet add package Cross.PepperVault
dotnet add package Cross.PepperVault.Env
  1. Register options and the provider:
services.AddPepperOptions<EnvProviderOptions, EnvProviderOptionsValidator>(configuration);
services.AddSingleton<IPepperVaultProvider, EnvPepperProvider>();
  1. Sample configuration for Env:
{
  "Pepper": {
    "Provider": "Env",
    "Ttl": "00:10:00",
    "ProviderOptions": {
      "Current": 1,
      "Peppers": {
        "1": "your-secret-pepper-v1",
        "2": "your-secret-pepper-v2"
      }
    }
  }
}

Provider names and ProviderOptions shape depend on the package you choose.

Build

dotnet build Cross.PepperVault.slnx -c Release

Packaging: config.nuspec in each project directory (after a Release build).

Unit tests

Tests follow the Given_When_Then naming convention:

  • Given — context / preconditions.
  • When — the action under test.
  • Then — the expected outcome.

Example: Given_ExistingUser_When_RequestCode_Then_SendsCodeAndReturnsLastCode.

Tests live in the Cross.PepperVault.Tests project (Options, Providers, Extensions, and related folders).

See also

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on Cross.PepperVault:

Package Downloads
Cross.PepperVault.Env

Провайдер pepper из переменных окружения (Cross.PepperVault.Env).

Cross.PepperVault.EnvJson

Провайдер pepper из JSON в переменной окружения (Cross.PepperVault.EnvJson).

Cross.PepperVault.GcpSecretManagerJson

Провайдер pepper из Google Cloud Secret Manager (JSON) — Cross.PepperVault.GcpSecretManagerJson.

Cross.PepperVault.HcvKv2Json

Провайдер pepper из HashiCorp Vault KV v2 (JSON) через VaultSharp — Cross.PepperVault.HcvKv2Json.

Cross.PepperVault.AwsSecretsJson

Провайдер pepper из AWS Secrets Manager (JSON) — Cross.PepperVault.AwsSecretsJson.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 531 4/9/2026
1.0.0-dev.11 57 4/9/2026
1.0.0-dev.10 55 4/9/2026
1.0.0-dev.9 58 4/9/2026
1.0.0-dev.8 61 4/9/2026

Cross.PepperVault: ядро библиотеки pepper-провайдеров.