TRENZ.Extensions.Infisical 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package TRENZ.Extensions.Infisical --version 1.0.2                
NuGet\Install-Package TRENZ.Extensions.Infisical -Version 1.0.2                
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="TRENZ.Extensions.Infisical" Version="1.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TRENZ.Extensions.Infisical --version 1.0.2                
#r "nuget: TRENZ.Extensions.Infisical, 1.0.2"                
#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.
// Install TRENZ.Extensions.Infisical as a Cake Addin
#addin nuget:?package=TRENZ.Extensions.Infisical&version=1.0.2

// Install TRENZ.Extensions.Infisical as a Cake Tool
#tool nuget:?package=TRENZ.Extensions.Infisical&version=1.0.2                

InfisicalExtensions

This project adds extension methods for the Infisical .NET SDK to register it as a configuration provider in your .NET app.

Usage

Disable End-to-End encryption in your Infisical project settings. The .NET SDK does not support it yet:

Screenshot of disabled End-to-End Encryption checkbox

Note While you're in the settings, we also recommend to disable "Auto Capitalization"

Add your infisical settings to appsettings.json:

{
  "Infisical": {
    "ClientId": "07ebc18f-df32-475a-8fef-1bdd79a5c7ac",
    "ClientSecret": "insert-your-client-secret",
    "SiteUrl": "https://<your infisical host>",
    "ProjectId": "some-project-id"
  }
}

Call AddInfisicalConfiguration on your application builder:

var builder = WebApplication.CreateBuilder(args);

builder.AddInfisicalConfiguration();

// ...

This will add a InfisicalConfigurationProvider that provides all available secrets through IConfiguration.


Suppose you want to store your connection string in Infisical.

You first need to add a secret in the respective environment through the infisical interface:

Note that infisical doesn't support nested secrets. The keys of the secrets need to include ":" to represent nested keys in an appsettings.json.

Screenshot of Infisical with a secret called "ConnectionStrings:MyDatabase"

Then, in code, you can inject IConfiguration in your class and access its value as if it was in your appsettings.json:

public class MyConnectionStringProvider(IConfiguration configuration) {
    public string GetConnectionString() {
        // The following call looks up the key "ConnectionStrings:MyDatabase" in IConfiguration
        return configuration.GetConnectionString("MyDatabase");
    }
}

You could also access the key directly using:

var connectionString = configuration["ConnectionStrings:MyDatabase"];

Installation

dotnet add package TRENZ.Extensions.Infisical

License

Licensed under MIT. For more information, see LICENSE

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

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.6 153 10/4/2024
1.0.5 224 5/10/2024
1.0.4 116 5/10/2024
1.0.3 192 3/5/2024
1.0.2 137 2/20/2024
1.0.1 109 2/20/2024
1.0.0 113 2/20/2024

# 1.0.2
- Better handling for nested child keys
- Added support for `PollingInterval` to detect changes in secrets
# 1.0.1
- Fixed an issue where an invalid `AccessToken` was set on the Infisical client settings
# 1.0.0
- Initial release
- Support for adding Infisical to `IConfiguration` via `appsettings.json`