El fitxer .env és
un incident de seguretat
esperant a passar.
Envilder llegeix els teus secrets directament d'AWS o Azure cap a la teva app. Sense fitxers, sense SaaS, sense filtracions.
$ npm install -g envilder
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.
Un model, una font de veritat
Un únic fitxer de mapeig defineix quins secrets necessita la teva app. Versionat a Git. Revisable en PRs. El mateix contracte a cada entorn.
Resolució consistent a tot arreu
CLI per a desenvolupament local, GitHub Action per a CI/CD, SDKs de runtime per a l'inici de l'app. Mateix mapeig, mateix comportament, mateix resultat.
El teu núvol, sense intermediaris
AWS SSM, Azure Key Vault o GCP. Sense proxy SaaS. Els secrets es queden a la teva infraestructura. Control d'accés natiu IAM/RBAC.
Fet per a equips reals
Un sistema de resolució de configuració dissenyat per a seguretat, consistència i execució multi-runtime.
Model de mapeig únic
Un contracte JSON defineix tots els secrets. Versionat a Git, revisable en PRs, comparable entre entorns. El model és el producte.
SDKs de runtime
Carrega secrets directament a memòria a l'inici de l'app: Python, .NET, Node.js, Go, Java. Sense fitxers .env a disc. Sense secrets residuals.
Multi-Proveïdor
AWS SSM, Azure Key Vault i GCP Secret Manager (pròximament). El teu núvol, les teves regles. Sense dependència de proveïdor.
GitHub Action
Obté secrets en workflows CI/CD. Mateix mapeig, zero intervenció manual. Integració directa.
Sincronització bidireccional
Obté secrets a fitxers .env o puja valors .env al teu proveïdor al núvol. Suport complet d'anada i tornada via CLI.
Accés IAM i RBAC
Control d'accés natiu del núvol. Les polítiques IAM d'AWS o RBAC d'Azure defineixen qui llegeix què. Sense capa d'auth extra.
Totalment auditable
Cada lectura i escriptura queda registrada a AWS CloudTrail o Azure Monitor. Traçabilitat completa de qui ha accedit a què i quan.
Zero infraestructura
Sense servidors, sense proxies, sense SaaS. Construït sobre serveis natius del núvol que ja utilitzes i pagues.
Suport de perfils AWS
Configuració multi-compte? Utilitza --profile per canviar entre perfils AWS CLI. Perfecte per a entorns multi-etapa.
Com funciona
Defineix. Resol. Desplega.
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.
{
"DB_PASSWORD": "/my-app/prod/db-password",
"API_KEY": "/my-app/prod/api-key",
"SECRET_TOKEN": "/my-app/prod/secret-token"
} 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.
$ envilder --map=envilder.json --envfile=.env
✔ Obtingut DB_PASSWORD → ···word
✔ Obtingut API_KEY → ···key
✔ Obtingut SECRET_TOKEN → ···oken
✔ Fitxer d'entorn escrit a .env 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.
from envilder import Envilder
# One-liner: load secrets into os.environ
Envilder.load("envilder.json")
# Or resolve as a dict without injecting
secrets = Envilder.from_map_file("envilder.json").resolve() using Envilder;
// Load into IConfiguration
builder.Configuration.AddEnvilder("envilder.json");
// Or one-liner: resolve + inject into Environment
Env.Load("envilder.json"); import { Envilder } 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.fromMapFile('envilder.json').resolve(); 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.
$ 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 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.
El teu núvol. La teva elecció.
Envilder funciona amb AWS SSM Parameter Store, Azure Key Vault i GCP Secret Manager (pròximament). Configura en línia o amb flags CLI.
AWS SSM Parameter Store
{
"$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'auditoria CloudTrail
Azure Key Vault
{
"$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'auditoria Azure Monitor
GCP Secret Manager
Pròximament{
"$config": {
"provider": "gcp",
"projectId": "my-project-id"
},
"DB_PASSWORD": "my-app-prod-db-password",
"API_KEY": "my-app-prod-api-key"
} $ envilder --provider=gcp --map=envilder.json --envfile=.env
- ✔ Integració amb Google Cloud Secret Manager
- ✔ Application Default Credentials (ADC)
- ✔ Control d'accés basat en IAM
- ✔ Cloud Audit Logs
SDKs en temps d’execució
Carrega secrets directament a la teva aplicació a l’arrencada. Sense fitxers .env, sense intermediaris. Només el teu vault al núvol i el teu codi.
Integració nativa amb IConfiguration. Resol secrets a l’arrencada.
Instal·lar
dotnet add package Envilder Inici ràpid
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");
var app = builder.Build();
// --- 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(); Carrega secrets amb una línia. Compatible amb AWS SSM i Azure Key Vault.
Instal·lar
pip install envilder Inici ràpid
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()
) Carrega secrets directament a Node.js. Mateix map-file, zero dependències del CLI.
Instal·lar
npm install @envilder/sdk Inici ràpid
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(); Càrrega lleugera de secrets per a serveis Go.
Properament
Suport per a Spring Boot i Java standalone.
Properament
GitHub Action
Obté secrets en el moment del desplegament. Afegeix-lo a qualsevol workflow en minuts.
☁️ AWS SSM
- name: 🪙 Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: us-east-1
- name: 🔐 Pull Secrets from AWS SSM
uses: macalbert/envilder/github-action@v0
with:
map-file: envilder.json
env-file: .env 🔑 Azure Key Vault
- name: 🔑 Azure Login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: 🔐 Pull Secrets from Azure Key Vault
uses: macalbert/envilder/github-action@v0
with:
map-file: envilder.json
env-file: .env
provider: azure
vault-url: ${{ secrets.AZURE_KEY_VAULT_URL }} Inputs de l'Action
| Input | Requerit | Descripció |
|---|---|---|
map-file | Sí | Ruta al fitxer JSON que mapeja variables d'entorn a rutes de secrets |
env-file | Sí | Ruta al fitxer .env a generar |
provider | No | Proveïdor al núvol: aws o azure (per defecte: aws) |
vault-url | No | URL d'Azure Key Vault |
Output: env-file-path – Ruta al fitxer .env generat
Què ve ara
Envilder es desenvolupa activament. Aquí és cap on anem.
Descarregar secrets a .env
Mapeja noms de variables d'entorn a rutes de secrets al núvol via JSON i genera fitxers .env automàticament
Mode push (--push)
Puja valors .env o secrets individuals al proveïdor al núvol
GitHub Action
Utilitza Envilder en workflows CI/CD de forma nativa
Multi-proveïdor (AWS + Azure)
Suport d'AWS SSM Parameter Store i Azure Key Vault
Web de documentació
Web de docs dedicada amb guies, exemples i referència API
Python SDK (envilder)
Biblioteca per a Django/FastAPI/pipelines de dades. Publicat a PyPI
.NET SDK (Envilder)
Biblioteca per a apps enterprise i Azure-native. Publicat a NuGet
Node.js SDK (@envilder/sdk)
Biblioteca nativa de runtime: carrega secrets directament a process.env des d’un map-file. Publicat a npm
Go SDK (envilder)
PròximamentBiblioteca per a apps cloud-native i eines Kubernetes. Es publicarà com a mòdul Go
Java SDK (envilder)
PròximamentBiblioteca per a Spring Boot i backends Android. Es publicarà a Maven Central
GCP Secret Manager
Tercer proveïdor cloud. Completa el trident multi-núvol
Mode exec (--exec)
Injecta secrets en un procés fill sense escriure a disc
AWS Secrets Manager
Suport de secrets JSON junt amb SSM Parameter Store
Mode check/sync (--check)
Valida secrets al núvol vs .env local. Falla CI si estan desincronitzats
Comença ara
En funcionament en menys d'un minut.
Prerequisits
- Node.js v20+
- AWS CLI configurat (per AWS SSM)
- Azure CLI configurat (per Azure Key Vault)
- Permisos IAM:
ssm:GetParameter/ssm:PutParameter
Instal·lar
Inici ràpid
- Crea un envilder.json que mapegi variables d'entorn a rutes de secrets
- Executa envilder --map=envilder.json --envfile=.env
- El teu fitxer .env està llest ✔