Parser File Environment
I file environment (.env) archiviano la configurazione come coppie chiave-valore, mantenendo i segreti e le impostazioni separati dal codice. Resi popolari dalla metodologia twelve-factor app, sono usati in Node.js, Python, Ruby e altri ecosistemi. Questo strumento analizza file .env e visualizza le variabili in una vista strutturata.
Specifiche
Casi d'uso comuni
- Ispezione della configurazione dell'ambiente applicativo
- Validazione della sintassi del file .env prima del deploy
- Confronto dei file environment tra ambienti (dev, staging, prod)
- Conversione delle variabili d'ambiente in JSON per la documentazione
- Revisione della configurazione senza esposizione nei log
Funzionalità
- Analisi di coppie KEY=value con vari formati
- Gestione dei valori tra virgolette (singole e doppie)
- Salto di commenti (#) e righe vuote
- Toggle Mostra/Nascondi segreti (maschera le chiavi corrispondenti a password, token, api, secret, ecc.)
- Conversione in JSON e YAML per uso programmatico
- Visualizzazione del conteggio commenti
Esempi
Configurazione applicativa
Provalo →Un tipico file .env con impostazioni database e API.
# Database configuration
DATABASE_URL=postgres://localhost:5432/myapp
DATABASE_POOL_SIZE=10
# API Keys
API_KEY="sk-1234567890"
SECRET_KEY='super-secret-value'Suggerimenti
- Non committare mai i file .env nel controllo versione. Usa invece .env.example.
- I valori tra virgolette preservano gli spazi iniziali/finali.
- Alcune implementazioni supportano l'espansione delle variabili: ${VAR}.
- Usa file .env separati per ogni ambiente: .env.development, .env.production.
Approfondimenti Parser File Environment
I file di variabili d'ambiente (.env) archiviano la configurazione dell'applicazione come semplici coppie KEY=VALUE, una per riga. Il formato e stato reso popolare dalla metodologia twelve-factor app, che promuove una rigida separazione della configurazione dal codice. Invece di codificare direttamente URL di database, chiavi API e flag di funzionalita, le applicazioni li leggono dalle variabili d'ambiente, e i file .env forniscono un modo conveniente per impostare quelle variabili durante lo sviluppo.
La libreria dotenv, originariamente per Ruby e successivamente portata su Node.js, Python, PHP e praticamente ogni ecosistema, legge i file .env e inietta i valori nell'ambiente del processo. Il formato supporta valori senza virgolette (DATABASE_HOST=localhost), valori tra doppi apici con sequenze di escape (MESSAGE="Hello\\nWorld") e valori tra singoli apici trattati letteralmente (REGEX='^\\d+$'). I commenti iniziano con # e le righe vuote vengono ignorate.
Una pratica critica e non committare mai i file .env nel controllo versione poiche contengono tipicamente segreti. Al contrario, i progetti includono un .env.example che elenca tutte le variabili richieste con valori segnaposto. I sistemi CI/CD e le piattaforme di hosting forniscono i propri meccanismi per impostare le variabili d'ambiente in modo sicuro.
L'espansione delle variabili (il riferimento ad altre variabili con la sintassi \${VAR}) e supportata da alcune implementazioni dotenv. Docker Compose la supporta nativamente. Quando ti affidi all'espansione, verifica che la tua implementazione dotenv specifica la supporti, poiche il comportamento varia tra i linguaggi.
Il file .env contiene tipicamente segreti come password del database, chiavi API e chiavi di crittografia. Committarli in git li espone a chiunque abbia accesso al repository, e persistono nella cronologia di git anche dopo la cancellazione. Aggiungi .env al .gitignore e usa un .env.example con valori segnaposto per documentare le variabili richieste. I valori tra doppi apici interpretano le sequenze di escape (\\n diventa un'interruzione di riga), mentre i valori tra singoli apici sono trattati come letterali grezzi senza elaborazione delle escape. I valori senza virgolette vengono privati degli spazi finali e si fermano al primo carattere #, che viene trattato come commento inline.
La gestione di piu ambienti prevede tipicamente file .env separati: .env per i valori predefiniti, .env.local per le personalizzazioni specifiche della macchina (non committato), e .env.development o .env.production per i valori specifici dell'ambiente. Framework come Next.js, Vite e Create React App li caricano in un ordine di priorita specifico. Per Docker, Compose supporta env_file per caricare variabili da un file e la chiave environment per impostarle direttamente. Il file .env di Compose nella radice del progetto viene usato per la sostituzione delle variabili in docker-compose.yml stesso. Le variabili ARG del build-time sono diverse dalle variabili ENV del runtime e non dovrebbero contenere segreti.