Sekret.Client 0.1.0

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

Sekret.Client

Strongly-typed .NET SDK for the Sekret secret-management server. Used by every Operaro .NET host through Sekret.Extensions.Configuration to load secrets at startup.

Available services

var client = new SekretClient(new SekretOptions { ... });

await client.Secrets.GetAsync("DATABASE_URL");
await client.Projects.ListAsync();
await client.Environments.ListAsync(project: "operaro");
await client.Tokens.CreateAsync(...);
await client.Audit.GetEventsAsync(...);
await client.Webhooks.RegisterAsync(...);
await client.Rotations.CreateAsync(...);   // W3.32

Rotation API (W3.32)

The rotation surface mirrors the Go server's /api/v1/projects/{project}/rotations/* endpoints. Each rotation configuration binds a secret key in a project + environment to a provider (currently postgres, redis, rabbitmq) and an interval; the server runs an internal scheduler that flips the underlying credential and updates the secret value in lockstep.

// 1. Define a rotation: rotate POSTGRES_PASSWORD every 90 days.
var created = await client.Rotations.CreateAsync(
    project: "operaro",
    new CreateRotationRequest
    {
        SecretKey = "POSTGRES_PASSWORD",
        EnvironmentName = "production",
        ProviderType = "postgres",
        IntervalDays = 90,
        ConnectionConfig = JsonSerializer.SerializeToElement(new
        {
            host = "operaro-postgres",
            port = 5432,
            user = "rotator",
            db = "postgres",
        }),
    });

// 2. Trigger an immediate manual rotation (e.g. responding to incident).
await client.Rotations.RotateAsync("operaro", created.Id);

// 3. Poll status until the scheduler reports success.
var status = await client.Rotations.GetStatusAsync("operaro", created.Id);
// status.RotationStatusValue ∈ { idle, running, succeeded, failed }
Secret type Interval Notes
Database password 90 days Pair with pgbouncer / connection pooler restart
Redis password 90 days Stateless — no app-level orchestration needed
RabbitMQ password 90 days Same
ABP DefaultPassPhrase Annual Manual re-encryption required — see docs/audit/2026-04-17/encryption-key-rotation.md
OAuth provider secret Per provider policy Cannot automate — provider's UI

Adding a new provider type

Implementations live on the Go server under internal/rotation/providers/*. The C# SDK is purely a transport client — adding a new provider type only requires the server change plus picking the new string for CreateRotationRequest.ProviderType.

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 (1)

Showing the top 1 NuGet packages that depend on Sekret.Client:

Package Downloads
Sekret.Extensions.Configuration

ASP.NET Core IConfigurationProvider for Sekret secrets management

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 259 5/2/2026