tecsas3-cli resuelve su configuración combinando flags del comando, variables de entorno, un archivo TOML local al proyecto y un archivo TOML global del usuario. Los secretos (tokens) nunca viven en estos archivos: se gestionan por separado en authentication.
La regla de oro es: lo más específico pisa a lo más general. Si un flag y un archivo de config definen el mismo campo, gana el flag; si un env y el archivo global lo definen, gana el env; y así sucesivamente.
Precedencia de configuración
De mayor a menor prioridad. El CLI evalúa cada capa en este orden y la última escritura gana:
El archivo local pisa al global para todos los campos del mismo perfil. Si el campo no está definido en ninguna capa, se usa el valor por defecto del runtime (
DEFAULT_BASE_URL = "https://dev.tecsas3.com", DEFAULT_TIMEOUT = 30.0).
Variables de entorno
Todas las variables usan el prefijoTECSAS3_ y son consumidas por pydantic-settings. Equivalen 1:1 a los flags del CLI.
Archivos TOML
Los perfiles viven bajo la claveprofile.<nombre> en uno o ambos archivos. El formato es estable y compatible con tomllib (Python 3.11+).
~/.tecsas3/config.toml (global)
Es el archivo que tecsas3 config show lee primero. Lo crea el sub-comando tecsas3 config set con permisos 0600; el directorio padre se crea con 0700.
./.tecsas3/config.toml (proyecto)
Vive en la raíz del repo y se versiona con el código. Sirve para fijar el tenant y plan_id por proyecto sin contaminar el global. Pisar al global para campos del mismo perfil.
HTTPS obligatorio
load_settings rechaza cualquier base_url que use http:// salvo que el host sea localhost, 127.0.0.1 o ::1. Esto protege contra fugas accidentales de Authorization headers en redes no confiables.
http://localhost:... o configura verify_tls = false sólo bajo perfil de desarrollo.
Sub-comandos de tecsas3 config
Ejemplos de uso
Verificación rápida
Troubleshooting
ConfigError: base_url ... usa HTTP sin cifrar
El CLI rechaza http:// salvo localhost, 127.0.0.1 o ::1. Tres soluciones posibles:
ConfigError: Falta configuración de tenant
Las rutas bajo /api/, /paciente/, /familia/, /agente/api/, /eps_fhir/, etc. requieren X-Tenant-Slug. Si el comando falla con exit 4, define el tenant:
El perfil activo no es el esperado
Cambios en config.toml no se reflejan
El runtime cachea la configuración al inicio del proceso. Si editas el TOML manualmente, ejecuta un nuevo proceso del CLI. La recarga en caliente no está soportada.
Múltiples perfiles y entornos
Variables de entorno y TOML entran en conflicto
La precedencia es: flag > env > TOML local > TOML global. Si exportasTECSAS3_BASE_URL=https://... y a la vez lo defines en el TOML, gana la env. Para depurar, ejecuta tecsas3 config show --json y compara con tu env.
Siguientes pasos
- Profundiza en los formatos de salida soportados.
- Consulta los códigos de salida para scripting robusto.
- Revisa la redacción PHI activa por defecto en logs.