pvNugsSecretManagerNc10Abstractions 10.0.1

dotnet add package pvNugsSecretManagerNc10Abstractions --version 10.0.1
                    
NuGet\Install-Package pvNugsSecretManagerNc10Abstractions -Version 10.0.1
                    
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="pvNugsSecretManagerNc10Abstractions" Version="10.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="pvNugsSecretManagerNc10Abstractions" Version="10.0.1" />
                    
Directory.Packages.props
<PackageReference Include="pvNugsSecretManagerNc10Abstractions" />
                    
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 pvNugsSecretManagerNc10Abstractions --version 10.0.1
                    
#r "nuget: pvNugsSecretManagerNc10Abstractions, 10.0.1"
                    
#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 pvNugsSecretManagerNc10Abstractions@10.0.1
                    
#: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=pvNugsSecretManagerNc10Abstractions&version=10.0.1
                    
Install as a Cake Addin
#tool nuget:?package=pvNugsSecretManagerNc10Abstractions&version=10.0.1
                    
Install as a Cake Tool

pvNugsSecretManagerNc10Abstractions

NuGet Version .NET License: MIT

pvNugsSecretManagerNc10Abstractions is the contract package for the pvWay Secret Manager architecture on .NET Core 10.

It defines the interfaces used by:

  • the Secret Manager orchestration layer (caching, cross-cutting concerns)
  • one provider implementation (Azure Key Vault, environment variables, HashiCorp Vault, and others)
  • the consumer application that requests secrets without coupling to a specific backend

Features

  • Static secret retrieval contracts
  • Dynamic credential retrieval contracts (username/password + expiration)
  • Database secrets support detection (rotating credentials)
  • Provider-agnostic API surface
  • Dictionary-based parameter model for maximum provider flexibility
  • Cancellation token support on all async operations
  • Rich XML documentation for IntelliSense and generated API docs

Installation

dotnet add package pvNugsSecretManagerNc10Abstractions

Package Manager Console:

Install-Package pvNugsSecretManagerNc10Abstractions

Target Framework

  • .NET Core 10.0+

Core Interfaces

IPvNugsSecretManager

Consumer-facing entry point to retrieve:

  • multiple static secrets (GetStaticSecretsAsync)
  • a single static secret (GetStaticSecretAsync)
  • a dynamic credential (GetDynamicSecretAsync)

Properties:

  • SupportsDatabaseSecrets - indicates whether the implementation supports dynamic database secrets (rotating credentials)

IPvNugsSecretProvider

Provider-facing contract implemented by backend adapters (Azure, env vars, HashiCorp Vault, etc.).

Properties:

  • SupportsDatabaseSecrets - indicates whether the provider supports dynamic database secrets (rotating credentials)

IPvNugsDynamicCredential

Represents short-lived access material:

  • Username
  • Password
  • ExpirationDateUtc

Parameter Dictionary Model

All retrieval methods use:

IReadOnlyDictionary<string, string> parameters

This allows each provider to define its own contract. Examples:

  • Azure provider: could require only name
  • HashiCorp Vault provider: could require mountPoint, path, key, roleName

The selected provider validates the dictionary and documents required/optional keys.

Quick Start (Consumer)

var parameters = new Dictionary<string, string>
{
    ["name"] = "database-password"
};

var secret = await secretManager.GetStaticSecretAsync(parameters, cancellationToken);

Dynamic credential example:

var parameters = new Dictionary<string, string>
{
    ["name"] = "app-database"
};

var credential = await secretManager.GetDynamicSecretAsync(parameters, cancellationToken);

if (credential == null || DateTime.UtcNow >= credential.ExpirationDateUtc)
    throw new InvalidOperationException("Unable to obtain valid credentials.");

Dependency Injection Example

The abstraction package only contains contracts. Typical DI wiring is done in the implementation packages:

services.AddSingleton<IPvNugsSecretProvider, YourProviderImplementation>();
services.AddSingleton<IPvNugsSecretManager, YourSecretManagerImplementation>();

Security Guidance

  • Do not log secret values or raw credential payloads
  • Validate dynamic credential expiration before use
  • Use secure transport/authentication to the backing secret store
  • Keep provider validation strict (required keys, formats, allowed values)
  • Prefer least-privilege access policies in the backend system

Architecture Overview

Three packages are typically used together:

  1. pvNugsSecretManagerNc10Abstractions
  2. pvNugsSecretManagerNc10
  3. One provider package (Azure / Environment Variables / HashiCorp Vault / AWS)

This split keeps consumers independent from backend details while preserving extensibility.

License

MIT - see LICENSE in the repository.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on pvNugsSecretManagerNc10Abstractions:

Package Downloads
pvNugsSecretManagerNc10ProviderAzure

Package Description

pvNugsSecretManagerNc10ProviderEnvironment

Package Description

pvNugsSecretManagerNc10ProviderHVault

Package Description

pvNugsSecretManagerNc10

Package Description

pvNugsCsProviderNc10PgSql

Secure, production-ready PostgreSQL connection string provider for .NET 10.0+ with advanced credential management, role-based access, and automatic secret rotation. Supports three modes: Config, StaticSecret, and DynamicSecret with unified secret manager interface.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.1 281 8/18/2026
10.0.0 220 6/15/2026

Added SupportsDatabaseSecrets property to IPvNugsSecretManager and IPvNugsSecretProvider interfaces to indicate support for dynamic database secrets (rotating credentials)