El CLI 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 prefijo TECSAS3_ y son consumidas por pydantic-settings. Equivalen 1:1 a los flags del CLI.

Archivos TOML

Los perfiles viven bajo la clave profile.<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.
El archivo config.toml no contiene secretos. Si necesitas versionar credenciales, usa variables de entorno o un secreto de CI. Cualquier TECSAS3_TOKEN o clave API en este archivo es un anti-patrón: queda expuesto en el historial de git.

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.
Si necesitas conectarte a un proxy local sobre HTTP, usa 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 exportas TECSAS3_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