EonaCat.SecretsManager
1.0.0
Prefix Reserved
dotnet add package EonaCat.SecretsManager --version 1.0.0
NuGet\Install-Package EonaCat.SecretsManager -Version 1.0.0
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="EonaCat.SecretsManager" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EonaCat.SecretsManager" Version="1.0.0" />
<PackageReference Include="EonaCat.SecretsManager" />
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 EonaCat.SecretsManager --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EonaCat.SecretsManager, 1.0.0"
#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 EonaCat.SecretsManager@1.0.0
#: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=EonaCat.SecretsManager&version=1.0.0
#tool nuget:?package=EonaCat.SecretsManager&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
EonaCat.SecretsManager
Store your secrets securely using the EonaCat.SecretsManager.
// Create secrets manager with file provider and encryption
var secretsManager = new SecretsManager()
.WithEncryption("MySecretEncryptionKey123!")
.WithProvider(new FileSecretsProvider("./secrets"));
// Store different types of secrets
await secretsManager.SetSecretAsync("database-password", "MySecurePassword123!");
await secretsManager.SetApiKeyAsync("openai", "sk-1234567890abcdef");
await secretsManager.SetConnectionStringAsync("maindb", "Server=localhost;Database=MyApp;Trusted_Connection=true;");
// Store complex objects
var config = new { ApiUrl = "https://api.example.com", Timeout = 30 };
await secretsManager.SetSecretAsync("api-config", config, TimeSpan.FromHours(24));
// Retrieve secrets
var dbPassword = await secretsManager.GetSecretStringAsync("database-password");
var apiKey = await secretsManager.GetApiKeyAsync("openai");
var connectionString = await secretsManager.GetConnectionStringAsync("maindb");
var apiConfig = await secretsManager.GetSecretAsync<dynamic>("api-config");
Console.WriteLine($"Database Password: {dbPassword}");
Console.WriteLine($"API Key: {apiKey}");
Console.WriteLine($"Connection String: {connectionString}");
// Rotate a secret
await secretsManager.RotateSecretAsync("database-password", async currentValue =>
{
// In real scenarios, this would generate a new password and update the database
return GenerateNewPassword();
});
// Get metadata
var metadata = await secretsManager.GetSecretMetadataAsync("database-password");
if (metadata != null)
{
Console.WriteLine($"Secret accessed {metadata.AccessCount} times");
Console.WriteLine($"Last accessed: {metadata.LastAccessedAt}");
}
}
private static string GenerateNewPassword()
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
var random = new Random();
return new string(Enumerable.Repeat(chars, 16)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 was computed. 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 was computed. 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.
-
net8.0
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.17)
- System.IdentityModel.Tokens.Jwt (>= 8.12.1)
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 |
---|---|---|
1.0.0 | 147 | 6/29/2025 |