Dinaup Vault: gestiona secretos en .NET sin meterlos en el código
Saca claves API, contraseñas y cadenas de conexión de tu código .NET y léelas cifradas con Dinaup Vault. Un solo paquete, dos variables de entorno y unas pocas líneas.
Una clave API commiteada en GitHub sigue en el historial aunque la borres. Una contraseña de producción en appsettings.json viaja con cada copia del repositorio. Gestionar secretos a mano es lento y se rota mal.
Dinaup Vault resuelve esto. Guardas los secretos cifrados en tu cuenta de Dinaup y los lees desde .NET con dos líneas. En tu servidor solo viven las credenciales del propio Vault. El resto se queda fuera del código y del repositorio.
Qué ganas
- Cero secretos en el repo. Las claves no viven en el código ni en archivos de configuración.
- Una sola fuente de verdad. Cambias una contraseña en un sitio, no servidor por servidor.
- Secretos compartidos. Varias apps leen el mismo valor sin duplicarlo en cada una.
- Gestión desde la web. Añades y editas secretos en tu panel, sin redeploy.
Instalación
Vault viene en el SDK base de Dinaup. Instala un paquete y tienes la clase Dinaup.Vault.VaultData lista.
dotnet add package DinaupEl paquete NuGet se llama Dinaup. La clase de Vault vive en el namespace Dinaup.Vault. En los ejemplos importas los dos: Dinaup para el cliente y Dinaup.Vault para VaultData.
Cómo funciona
El flujo tiene tres pasos. Das de alta los secretos en la web, dejas las credenciales del Vault en variables de entorno e inicializas el Vault en arranque para leer lo que necesites.
Añade tus secretos en la web
Entra en tu cuenta de Dinaup, ve a la sección de API y crea cada secreto con una clave y su valor. Agrúpalos con una convención de puntos: dinaup.endpoint, dinaup.secretkey, db.connectionstring. Guarda.
Define las dos variables de entorno
Las únicas credenciales que salen del Vault y van a tu entorno son las del propio Vault:
VAULT_URL=...
VAULT_PASSWORD=...Cópialas de tu panel de Dinaup. Nada más vive en el entorno.
Inicializa y lee
using Dinaup;
using Dinaup.Vault;
// Las únicas credenciales que vienen del entorno
var vault = new VaultData(
Environment.GetEnvironmentVariable("VAULT_URL"),
Environment.GetEnvironmentVariable("VAULT_PASSWORD")
);
vault.Initialize();
// El resto sale cifrado del Vault
string secretKey = vault.Read("dinaup.secretkey");
string dbConnection = vault.Read("db.connectionstring");Read devuelve siempre una cadena, nunca null.
El caso típico: conectar el cliente Dinaup
El uso más habitual es leer del Vault las credenciales de la API de Dinaup y conectar el cliente. Todo cifrado, nada en el código. Elige según montes una app de consola o una web con DI. El recorrido completo del SDK —informes, escrituras, archivos— está en Conecta tu app .NET a Dinaup.
using Dinaup;
using Dinaup.Vault;
var vault = new VaultData(
Environment.GetEnvironmentVariable("VAULT_URL"),
Environment.GetEnvironmentVariable("VAULT_PASSWORD")
);
vault.Initialize();
var client = await DinaupClientC.ConnectAsync(
endPoint: vault.Read("dinaup.endpoint"),
publicKey: vault.Read("dinaup.publickey"),
secretKey: vault.Read("dinaup.secretkey")
);
if (client == null || client.IsConnected == false)
throw new Exception("No se pudo conectar a Dinaup");En una app web, conecta una vez en arranque y registra el cliente como singleton:
using Dinaup;
using Dinaup.Vault;
var builder = WebApplication.CreateBuilder(args);
var vault = new VaultData(
Environment.GetEnvironmentVariable("VAULT_URL"),
Environment.GetEnvironmentVariable("VAULT_PASSWORD")
);
vault.Initialize();
var client = await DinaupClientC.ConnectAsync(
endPoint: vault.Read("dinaup.endpoint"),
publicKey: vault.Read("dinaup.publickey"),
secretKey: vault.Read("dinaup.secretkey")
);
if (client == null || client.IsConnected == false)
throw new Exception("No se pudo conectar a Dinaup");
builder.Services.AddSingleton(client);
var app = builder.Build();Preguntas frecuentes
Siguiente paso
- Conecta tu app .NET a Dinaup — la guía práctica del SDK, con Vault integrado desde el primer ejemplo.
- Claves API — crea y gestiona las credenciales que guardarás en el Vault.
- Cliente Dinaup (SDK .NET) — la referencia completa del cliente.
