Pega el archivo y los nombres requeridos. La tabla oculta valores de aspecto sensible por defecto, pero el JSON copiado conserva los originales.
Se ejecuta localmente en tu navegadorOpcional: un nombre de variable por línea. Las variables ausentes se indican como errores.
Las claves que parecen secretos se ocultan de forma predeterminada. Todo el análisis se realiza en el navegador.
Esta página lee el contenido de un archivo .env línea a línea, enumera las variables encontradas y avisa de nombres no válidos, claves duplicadas, variables obligatorias ausentes y posibles secretos. Pega el archivo, indica los nombres que deben existir y pulsa Analizar y validar. Todo ocurre en el navegador: en las pruebas el análisis no hizo ninguna petición de red, así que puedes revisar aquí un archivo que no deba salir de tu equipo.
El resultado es una tabla con clave, valor, línea y clasificación, una fila de contadores y una lista de resultados. Los valores cuyo nombre parece contener un secreto se muestran como •••••••• hasta que marques Mostrar valores en la tabla analizada, pero Copiar JSON escribe siempre los valores tal como están en el archivo: trata ese contenido del portapapeles como sensible.
Se ignoran las líneas vacías y las que empiezan, tras los espacios, por #, y se elimina el prefijo export, de modo que export API_URL=... y API_URL=... se comportan igual. La clave es todo lo que hay antes del primer =, sin espacios alrededor, y debe empezar por letra o guion bajo y continuar con letras, dígitos o guiones bajos: _PRIVATE se acepta y 9LIVES o A-B se señalan como nombres no válidos. El valor es el resto de la línea. Un valor entrecomillado conserva su contenido: las comillas dobles decodifican \n, \r, \t, \" y \\, y las simples solo tratan \' y \\; un valor sin comillas pierde un « # comentario» final y se recorta. Un # no precedido de espacio sigue formando parte del valor (A=a#b da a#b) y las referencias no se expanden: A=$HOME se queda en $HOME.
Si una clave aparece dos veces, se listan las dos líneas y el valor que llega al JSON es el último, como indica el aviso. Las claves distinguen mayúsculas y minúsculas, así que A y a son variables distintas. Los finales de línea de Windows y los espacios sobrantes se leen igual que un archivo LF limpio, y el número de línea cuenta todas las líneas físicas del archivo, incluidas las ignoradas.
La decisión se toma por el nombre, no por el valor. Los nombres que contienen password, passwd, pwd, passphrase, secret, token, api_key, access_key, ssh_key, signing_key, encryption_key, private, credential, dsn o webhook, y los que empiezan por auth o contienen _auth, se clasifican como sensibles. En las pruebas esto cubrió PWD, MYSQL_PWD, ACCESS_KEY, AWS_ACCESS_KEY_ID, SSH_KEY, SENTRY_DSN, SLACK_WEBHOOK_URL, ENCRYPTION_KEY y SIGNING_KEY, mientras que AUTHOR y AUTHORITY quedaron visibles por contener solo las letras de auth.
Al ser una comprobación por nombre, los secretos con nombres que no lo parecen se escapan: DATABASE_URL, MONGODB_URI, REDIS_URL y STRIPE_SK no se ocultaron en las pruebas, aunque una cadena de conexión suele llevar contraseña. Usa Mostrar valores para leerlos en la tabla y recuerda que el JSON copiado los contiene en cualquier caso.
No lee el entorno del proceso ni ningún archivo del disco, no accede a la red, no comprueba si un valor es válido, actual o accesible, y no escribe nada. Los nombres obligatorios se comparan literalmente, así que un nombre que no puede ser una clave, como A.B, se informa simplemente como ausente.
Conviene conocer dos límites de análisis: una comilla sin cerrar se conserva tal cual en vez de avisarse, y una barra invertida final no continúa la línea. El tamaño no es un límite práctico: en las pruebas se analizaron 2.000 variables en unos 0,3 s y un único valor de 200.000 caracteres en unos 0,2 s.