Skip to content

Infisical/infisical-dotnet-configuration

Repository files navigation

Infisical.IConfigurationProvider

This is a .NET library that makes it easy to use the .NET configuration system with Infisical.

Nuget

Installation

dotnet add package Infisical.IConfigurationProvider

Example usage

using Infisical.IConfigurationProvider;

var builder = WebApplication.CreateBuilder(args);


builder.Configuration
    .SetBasePath(builder.Environment.ContentRootPath)
    .AddInfisical(
        new InfisicalConfigBuilder()
            .SetProjectId("<your-project-id>")
            .SetEnvironment("<env-slug>")
            .SetSecretPath("<secret-path>") // Optional, defaults to "/"
            .SetInfisicalUrl("https://infisical-instance.com") // Optional, defaults to https://infisical.com
            .SetAuth(
                new InfisicalAuthBuilder()
                    .SetUniversalAuth(
                        "<machine-identity-client-id",
                        "<machine-identity-client-secret>"
                    )
                    .Build()
            )
            .Build()
    )
    .Build();

// Add services to the container.

How do I format secret keys?

Secret keys should be formatted like environment variables. For example, consider this appsettings.json file:

{
  "ConnectionStrings": {
    "DefaultConnection": "Data Source=db.sqlite3"
  }
}

The equivalent of this JSON would be a secret in Infisical with the key CONNNECTIONSTRINGS__DEFAULTCONNECTION. Note the double underscore. More information on this is available in ASP.NET Core's environment variable naming documentation.

InfisicalConfigBuilder Setters

SetProjectId()

  • projectId (string): The ID of the project to fetch secrets from.

SetEnvironment()

  • environmentSlug (string): The environment slug to fetch secrets from.

SetSecretPath()

  • secretPath (string): The secret path to fetch secrets from. Optional, and defaults to /

SetInfisicalUrl()

  • infisicalUrl (string): The URL of your Infisical instance. Optional, and defaults to https://app.infisical.com.

SetPrefix()

  • prefix (string): A string to prefix your secret keys with. Optional, and defaults to no prefix.

SetAuth()

  • auth (InfisicalAuth): The authentication details that will be used for authenticating against the Infisical API. See more details below.

InfisicalAuthBuilder Setters

SetUniversalAuth()*

  • clientId (string): The client ID of your universal auth machine identity.
  • clientSecret (string): The client secret of your universal auth machine identity.

About

Official Infisical .NET IConfigurationProvider.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages