Este proyecto está configurado con múltiples capas de .gitignore para proteger datos sensibles:
-
Variables de entorno:
.env,.env.local,.env.*.local- Cualquier archivo que contenga
MNEMONIC, claves privadas, o secretos
-
Logs:
*.log(todos los archivos de log).anvil.log,.web.log- Logs de npm, yarn, pnpm
-
Claves y certificados:
*.key,*.pem,*.p12,*.pfx- Archivos en directorios
secrets/osecret/
-
Builds y caché:
node_modules/,out/,build/,.next/- Archivos de caché de Foundry, subgraph, etc.
-
Datos locales:
subgraph/data/(datos de IPFS y Postgres)- Archivos temporales y backups
cd sc
cp .env.example .env.local
# Editar .env.local con tus valoresVariables requeridas en sc/.env.local:
MNEMONIC="tu mnemonic de 12 palabras solo para desarrollo local"
DERIVATION_PATH="m/44'/60'/0'/0/"
SEED=1
SEED_CHAINS=2
SEED_LOTS_PER_CHAIN=2
SEED_TRANSFERS_PER_STAGE=2
USE_MNEMONIC=1cd web
# El archivo .env.local se crea automáticamente durante el deployment
# con el script deploy_local.sh✅ Permitido:
- Usar mnemonics de prueba para cuentas locales
- Almacenar configuraciones en
.env.local - Compartir
.env.examplecon el equipo
❌ NUNCA HACER:
- Subir archivos
.env.locala git - Usar mnemonics reales o con fondos reales
- Commitear claves privadas
- Compartir archivos de log que puedan contener datos sensibles
🚨 CRÍTICO:
- NUNCA uses el mismo mnemonic que en desarrollo
- Usa hardware wallets (Ledger, Trezor)
- Implementa gestión de secretos (AWS Secrets Manager, HashiCorp Vault)
- Rota las claves regularmente
- Habilita autenticación de 2 factores
- Audita los contratos antes del deployment
# Ver archivos .env trackeados
git ls-files | grep -E "\\.env"
# Debería mostrar solo:
# sc/.env.example
# Y el .env.example de la raíz
# Ver logs trackeados
git ls-files | grep "\\.log"
# No debería mostrar ningún .log# Los siguientes archivos deben ser ignorados:
git check-ignore .anvil.log .web.log sc/.env.local web/.env.local
# Todos deberían aparecer en la salidaLos archivos de log locales son ignorados automáticamente:
.anvil.log- Logs del nodo local Anvil.web.log- Logs del servidor Next.js- Logs en
subgraph/data/ - Logs de npm/yarn/pnpm
Si commiteaste un archivo sensible por error:
# 1. Remover del tracking (mantiene local)
git rm --cached path/to/sensitive/file
# 2. Agregar al .gitignore
echo "path/to/sensitive/file" >> .gitignore
# 3. Commit el cambio
git add .gitignore
git commit -m "Remove sensitive file from tracking"
# 4. Si ya pusheaste a remote, considera:
# - Rotar todas las claves/secretos expuestos INMEDIATAMENTE
# - Usar git filter-branch o BFG Repo-Cleaner para limpiar el historial
# - Notificar al equipoAntes de cada commit:
- No hay archivos
.envo.env.localen staging - No hay claves privadas o mnemonics en el código
- Los logs no contienen información sensible
-
.gitignoreestá actualizado - Solo se commitean archivos
.env.examplecomo plantillas
Antes de deployment a producción:
- Claves únicas para producción
- Gestión segura de secretos implementada
- Auditoría de contratos completada
- Monitoreo y alertas configurados
- Plan de respuesta a incidentes documentado