This is a .NET library that makes it easy to use the .NET configuration system with Infisical.
dotnet add package Infisical.IConfigurationProvider
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.
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.
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 tohttps://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.
SetUniversalAuth()*
clientId
(string): The client ID of your universal auth machine identity.clientSecret
(string): The client secret of your universal auth machine identity.