Configuración
IaC Code lee la configuración desde argumentos CLI, variables de entorno y archivos en el directorio de configuración en tiempo de ejecución.
Precedencia de configuración:
Argumentos CLI > variables de entorno > archivos de configuración
El directorio de tiempo de ejecución por defecto es:
~/.iac-code/
Puede reubicarlo estableciendo la variable de entorno IAC_CODE_CONFIG_DIR (admite expansión de ~ y $VAR). Cuando se establece, todos los artefactos persistidos — credenciales, ajustes, historial, projects/, image-cache/, tool-results/, logs/, memory/, a2a/, telemetry/, skills/ — siguen la nueva ubicación.
Archivos comunes:
| Archivo | Descripción |
|---|---|
.credentials.yml | Credenciales de LLM |
.cloud-credentials.yml | Credenciales del proveedor de nube |
settings.yml | Proveedor seleccionado, modelo y configuraciones relacionadas |
| history files | Historial de entrada para flujos de trabajo interactivos |
Evite hacer commit o compartir archivos de este directorio porque pueden contener secretos o preferencias locales.
Configuración del proyecto
Además del archivo ~/.iac-code/settings.yml a nivel de usuario, IaC Code carga configuraciones a nivel de proyecto desde el directorio de trabajo actual:
| Archivo | Alcance |
|---|---|
.iac-code/settings.yml | Configuración compartida del proyecto (segura para hacer commit). |
.iac-code/settings.local.yml | Anulaciones locales (debe estar en .gitignore). |
Orden de fusión: configuración de usuario → configuración del proyecto → configuración local del proyecto → argumentos CLI (las fuentes posteriores anulan las anteriores).
Configuración de permisos de herramientas
La sección permissions en settings.yml configura qué acciones de herramientas se permiten, deniegan o requieren confirmación:
permissions:
mode: default
allow:
- "bash(git *)"
- "bash(ls:*)"
deny:
- "bash(rm -rf *)"
ask:
- "bash(curl:*)"
additional_directories:
- "/tmp/workspace"
| Campo | Descripción |
|---|---|
mode | Modo de permisos: default, accept_edits, bypass_permissions, dont_ask. |
allow | Lista de patrones de permisos de herramientas para aprobar automáticamente. |
deny | Lista de patrones de permisos de herramientas para denegar automáticamente. |
ask | Lista de patrones de permisos de herramientas que siempre requieren confirmación. |
additional_directories | Directorios adicionales más allá de cwd en los que el agente puede escribir. |
Sintaxis de patrones
Los patrones de permisos de herramientas siguen el formato tool_name(rule):
| Patrón | Significado |
|---|---|
bash | Coincidir con todos los comandos bash (nombre de herramienta simple). |
bash(git *) | Coincidir con comandos bash que comienzan con git. |
bash(curl:*) | Coincidir con comandos bash que comienzan con curl. |
write_file | Coincidir con todas las llamadas a la herramienta write_file. |
Las reglas se evalúan en orden: deny → ask → allow → comportamiento predeterminado. Los argumentos CLI (--allowed-tools, --disallowed-tools) tienen la mayor precedencia.