ViennaNET.Extensions.Configuration.HashicorpVault 6.0.1-tags-6-0-0-0001

This is a prerelease version of ViennaNET.Extensions.Configuration.HashicorpVault.
There is a newer version of this package available.
See the version list below for details.
dotnet add package ViennaNET.Extensions.Configuration.HashicorpVault --version 6.0.1-tags-6-0-0-0001
                    
NuGet\Install-Package ViennaNET.Extensions.Configuration.HashicorpVault -Version 6.0.1-tags-6-0-0-0001
                    
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="ViennaNET.Extensions.Configuration.HashicorpVault" Version="6.0.1-tags-6-0-0-0001" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ViennaNET.Extensions.Configuration.HashicorpVault" Version="6.0.1-tags-6-0-0-0001" />
                    
Directory.Packages.props
<PackageReference Include="ViennaNET.Extensions.Configuration.HashicorpVault" />
                    
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 ViennaNET.Extensions.Configuration.HashicorpVault --version 6.0.1-tags-6-0-0-0001
                    
#r "nuget: ViennaNET.Extensions.Configuration.HashicorpVault, 6.0.1-tags-6-0-0-0001"
                    
#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.
#addin nuget:?package=ViennaNET.Extensions.Configuration.HashicorpVault&version=6.0.1-tags-6-0-0-0001&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ViennaNET.Extensions.Configuration.HashicorpVault&version=6.0.1-tags-6-0-0-0001&prerelease
                    
Install as a Cake Tool

ViennaNET.Extensions.Configuration.HashicorpVault

Предоставляет API поставщика конфигурации на основе секретов в хранилище Hashicorp Vault. Позволяет добавить, в качестве источника секрет в формате ключ/значение или JSON.

Оглавление

Введение

Библиотека добавляет поставщик конфигурации, который поддерживает загрузку секретов указанной версии или послденей активной версии, с возможностью последующей перезагрузки с заданным интервалом.

Установка

Добавьте в проект веб-службы сслыку на пакте ViennaNET.Extensions.Configuration.HashicorpVault.

dotnet add package ViennaNET.Extensions.Configuration.HashicorpVault

Руководство пользователя

Создайте секрет в Vault используя KV Secrets Engine и один из двух форматов представленных ниже.

<details> <summary>В классическом формате словаря (Key/Value).</summary>

  "SecretKey1": "SecretExampleValueString"
  "SecretKey2": "true"
  "SecretKey3": "123456"

Чтобы отразить иерархию используйте в качестве разделителя символы: -, . или _.

  "Secret-Example-Key1": "SecretExampleValueString",
  "Secret-Example-Key2": "true",
  "Secret-Example-Key3": "123456"

</details>

<details> <summary>В формате JSON (соответствует формату appsettings.json).</summary>

{
  "Secret": {
    "Example": {
      "Key1": "SecretExampleValueString",
      "Key2": true,
      "Key3": 123456
    }
  }
}

</details>

Затем добавьте и настройте поставщик конфигурации.


// Для получения параметров HTTP клиента Vault API.
builder.Configuration.AddEnvironmentVariables("VAULT_");

// Средонезависимая конфигурация. Без перезагрузки.
// В итоговый путь будет равен: /kv/appsettings.json
builder.Configuration.AddVault(options => builder.Configuration.Bind(options), "appsettings.json", 1);

// Средозависимая конфигурация, по аналогии с appsettings.Development.json и т. д.
// Без перезагрузки.
builder.Configuration.AddVault(options => builder.Configuration.Bind(options), 
    $"appsettings.{builder.Environment.EnvironmentName}.json");

// Средонезависимая конфигурация. Перезагружается раз в 10 секунд.
// Загружает последнюю доступную версию секрета "some-secret-name".
builder.Configuration.AddVault(options => builder.Configuration.Bind(options),
    "some-secret-name", reloadInterval: TimeSpan.FromSeconds(10));

Перед запуском приложения установите значения переменных сред любым, допустимым способом. Например с помощью ConfigMap и Secret в K8S или с помощью Ansible в не контейнерезированных средах.

Variable Описание Обязательно
VAULT_BASE_ADDRESS Адрес службы HashicorpVault, где размещены хранилища. ДА
VAULT_APP_ROLE_ID Учётные данные клиента: App Role ID ДА
VAULT_APP_SECRET_ID Учётные данные клиента: App Secret ID ДА

Далее используйте платформу конфигурации, как обычно.

Известные проблемы и ограничения

  1. Поставщик конфигурации поддерживает только KV Secrets Engine.
  2. Каждая версия секрета, считается не изменяемой, поэтому автоматическая перезагрузка возможна, только если вы не указываете версию. Тогда, при каждой перезагружке, поставщик запрашивает latest.
  3. Если целевая версия отмечена как удалённая, возникает исключение.
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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.

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
8.0.8 137 4/23/2024
8.0.7 142 1/11/2024
8.0.1 144 12/29/2023
6.0.5 147 12/29/2023
6.0.2 164 12/8/2023
6.0.1-tags-6-0-0-0001 113 12/5/2023