Estandarditza com
les teves apps consumeixen
secrets.

Deixa de reinventar la càrrega de secrets a cada projecte. Defineix un contracte d'entorn i resol-lo a tot arreu.

Resolució de secrets open source per a AWS SSM i Azure Key Vault, per al desenvolupament local, CI/CD i el runtime de l’aplicació.

AWS SSM · Azure Key Vault · GitHub Action · SDKs de runtime
npm install -g envilder
# AWS CLI configurat amb permisos a SSM aws sts get-caller-identity{ "UserId": "AROAADALOVELACE1815DC", "Account": "123456789012", "Arn": "arn:aws:sts::123456789012:assumed-role/secrets-role/ada.lovelace"} # Puja cada secret a SSM Parameter Store npx envilder --push --key=OPENAI_API_KEY --value=example-not-a-real-secret --secret-path=/openai/prod/api-key 📤 PUSHING SECRET━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━OPENAI_API_KEY → *****************key ⭐ SECRET PUSHED - OPENAI_API_KEY=*******************secret → *****************key
AWS SSM
Azure Key Vault
GitHub Actions
npm

Per què la gestió de secrets està trencada

Cada equip, cada etapa, cada runtime gestiona els secrets de forma diferent. Sense estàndard. Sense consistència. Sense confiança.

Fragmentada entre eines

L'entorn local utilitza fitxers .env. CI/CD llegeix d'integracions amb vaults. Producció té el seu propi mètode. Mateixa app, diferents fluxos de configuració a tot arreu.

Secrets compartits per canals insegurs

Claus API enviades per Slack, fitxers .env als repositoris, pàgines wiki amb credencials en text pla. Un incident de seguretat esperant a passar.

El desfasament de configuració és inevitable

Sense una font única de veritat sobre quins secrets necessita una app. Dev, staging i producció es desincronitzen. Els desplegaments fallen. Ningú sap quina config és la correcta.

Per què Envilder?

Envilder és una capa de resolució sobre el teu gestor de secrets existent. Els secrets es queden al teu núvol. El mapeig JSON és només el contracte que manté cada entorn consistent.

Zero infraestructura

Sense servidors, sense proxies, sense SaaS intermediari. Construït sobre AWS SSM i Azure Key Vault, serveis que ja utilitzes i pagues.

Un fitxer, tots els secrets

Un sol contracte JSON defineix cada secret per a cada entorn. Versionat a Git, revisable en PRs, comparable. El teu equip revisa canvis de secrets al mateix PR que el codi.

Rotació de secrets segura

Rota valors a AWS SSM o Azure Key Vault sense canviar envilder.json. Els fitxers .env generats només s'actualitzen quan tornes a executar Envilder; els consumidors de runtime s'han de reiniciar o tornar a resoldre els secrets.

El teu magatzem de secrets, un contracte de mapeig

Conserva els secrets a la configuració d'AWS SSM o Azure Key Vault que ja utilitzes. Envilder preserva el contracte de mapeig envilder.json entre eines; les credencials i la migració de secrets continuen sent específiques de cada proveïdor.

També inclou

GitHub ActionObté secrets en workflows CI/CD. Mateix mapeig, zero intervenció manual.
Sincronització bidireccionalObté a .env o puja valors .env al teu proveïdor al núvol via CLI.
Els secrets no toquen discSDKs de runtime carreguen secrets directament a memòria a l'inici de l'app. Sense fitxers .env escrits a disc.
IAM i RBAC natiuPolítiques IAM d'AWS o RBAC d'Azure. Sense capa d'auth extra.
Registres d'accés natius del proveïdorCloudTrail o Azure Monitor poden registrar l'accés al proveïdor quan estan configurats. Envilder no crea cap registre d'auditoria per si mateix.
Suport de perfils AWSCanvia entre perfils AWS CLI per a configuracions multi-compte.

Com funciona

Defineix. Resol. Desplega.

PAS01

Defineix el model de mapeig

Un fitxer JSON que mapeja noms de variables d'entorn a rutes de secrets al núvol. Fes-ne commit. Revisa'l en PRs. Compara entre entorns. Un model per a cada etapa i runtime.

envilder.jsonjson
{
  "DB_PASSWORD": "/my-app/prod/db-password",
  "API_KEY":     "/my-app/prod/api-key",
  "SECRET_TOKEN": "/my-app/prod/secret-token"
}
PAS02

Resol amb la CLI

Una comanda obté cada secret del teu vault al núvol i els escriu a .env. Utilitza'l localment o en scripts. Mateix mapeig, mateix comportament.

terminalbash
$ envilder --map=envilder.json --envfile=.env

 Obtingut DB_PASSWORD ···word
 Obtingut API_KEY ···key
 Obtingut SECRET_TOKEN ···oken
 Fitxer d'entorn escrit a .env
PAS03

Carrega en runtime amb SDKs

Salta't el fitxer .env completament. Carrega secrets directament a la teva aplicació a l'inici amb SDKs natius: Python, .NET, Node.js i més.

pip install envilder
settings.pypython
from envilder import Envilder, SecretProviderType

# One-liner: load secrets into os.environ
Envilder.load("envilder.json")

# Or resolve as a dict without injecting
secrets = Envilder.resolve_file("envilder.json")

# Fluent builder with provider override
secrets = (
    Envilder.from_map_file("envilder.json")
    .with_provider(SecretProviderType.AZURE)
    .with_vault_url("https://my-vault.vault.azure.net")
    .inject()
)
dotnet add package Envilder
Program.cscsharp
using Envilder;

var builder = WebApplication.CreateBuilder(args);

// Load secrets into IConfiguration
builder.Configuration.AddEnvilder("envilder.json");

// Register EnvilderClient in DI
builder.Services.AddEnvilder("envilder.json");

// --- Or standalone (no ASP.NET) ---

// One-liner: resolve + inject into Environment
Env.Load("envilder.json");

// Fluent builder with provider override
Env.FromMapFile("envilder.json")
    .WithProvider(SecretProviderType.Azure)
    .WithVaultUrl("https://my-vault.vault.azure.net")
    .Inject();
npm install @envilder/sdk
config.tstypescript
import { Envilder, SecretProviderType } from '@envilder/sdk';

// One-liner: resolve + inject into process.env
await Envilder.load('envilder.json');

// Or resolve as a Map without injecting
const secrets = await Envilder.resolveFile('envilder.json');

// Fluent builder with provider override
const override = await Envilder.fromMapFile('envilder.json')
  .withProvider(SecretProviderType.Azure)
  .withVaultUrl('https://my-vault.vault.azure.net')
  .inject();
PAS04

Push des de dev al vault

Necessites afegir o rotar un secret? Puja valors des del teu entorn local al proveïdor al núvol. Sense necessitat de consola.

terminalbash
$ envilder --push --envfile=.env --map=envilder.json

 Pujat DB_PASSWORD /my-app/prod/db-password
 Pujat API_KEY /my-app/prod/api-key
 Pujat SECRET_TOKEN /my-app/prod/secret-token
PAS05

Els secrets es queden al teu vault

Sense intermediaris. El teu núvol gestiona l'emmagatzematge, la rotació i el control d'accés. Envilder resol, mai emmagatzema.

Mira'l en acció

Mira com Envilder simplifica la gestió de secrets en menys de 2 minuts.

Comanda de la demo: envilder --map=envilder.json --envfile=.env. Envilder resol els secrets mapejats del proveïdor al núvol configurat i escriu les variables resultants a .env.

El teu núvol. La teva elecció.

Envilder funciona actualment amb AWS SSM Parameter Store i Azure Key Vault. GCP Secret Manager està planificat i encara no està disponible. Configura els proveïdors disponibles a envilder.json o amb flags CLI.

AWS SSM Parameter Store

envilder.jsonjson
{
  "$config": {
    "provider": "aws",
    "profile": "prod-account"
  },
  "DB_PASSWORD": "/my-app/prod/db-password",
  "API_KEY": "/my-app/prod/api-key"
}
$ envilder --map=envilder.json --envfile=.env
  • ✔ Suport de GetParameter amb WithDecryption
  • ✔ Suport de perfil AWS per a multi-compte
  • ✔ Control d'accés basat en polítiques IAM
  • ✔ Registre d'accés de CloudTrail quan està configurat

Azure Key Vault

envilder.jsonjson
{
  "$config": {
    "provider": "azure",
    "vaultUrl": "https://my-vault.vault.azure.net"
  },
  "DB_PASSWORD": "my-app-prod-db-password",
  "API_KEY": "my-app-prod-api-key"
}
$ envilder --provider=azure --vault-url=https://my-vault.vault.azure.net --map=envilder.json --envfile=.env
  • ✔ Auto-normalitza noms de secrets (barres → guions)
  • ✔ Autenticació DefaultAzureCredential
  • ✔ Control d'accés Azure RBAC
  • ✔ Registre d'accés d'Azure Monitor quan està configurat

GCP Secret Manager

Planificat
  • → Integració planificada amb GCP Secret Manager
  • → No disponible a la CLI, la GitHub Action ni els SDKs de runtime
Veure el roadmap →

Comença ara

En funcionament en menys d'un minut.

Prerequisits

  • Node.js v22.12+
  • Tria un proveïdor al núvol:
  • AWS SSM: credencials AWS amb ssm:GetParameter; afegeix ssm:PutParameter per a --push
  • Azure Key Vault: credencials Azure amb accés Get a secrets; afegeix accés Set per a --push

Instal·lar

npx
npm
pnpm

Inici ràpid

  1. Crea un envilder.json que mapegi variables d'entorn a rutes de secrets
  2. Executa npx envilder --map=envilder.json --envfile=.env
  3. El teu fitxer .env està llest ✔
# Crear fitxer de mapeig$ echo '{"API_KEY": "/app/api-key"}' > envilder.json # Pujar un secret$ npx envilder --push --key=API_KEY --value=example-not-a-real-secret --secret-path=/app/api-key
app.pypython
import os

from envilder import Envilder

Envilder.load("envilder.json")

# Els secrets ja són a os.environ
api_key = os.environ["API_KEY"]
Veure més exemples a GitHub →