Configuración personalizada
Important
La CLI de Tabular Editor se encuentra en vista previa pública limitada. Se ofrece para su evaluación con una cuenta de Tabular Editor; no se requiere ninguna licencia durante la vista previa. Los comandos, las opciones y las salidas pueden cambiar antes de la disponibilidad general. La versión preliminar dejará de funcionar después del 2026-10-31. No recomendamos usar la CLI en pipelines de CI/CD de producción mientras esté en vista previa.
La CLI de Tabular Editor lee una configuración opcional desde un archivo JSON. La configuración controla tres cosas:
- Rutas de archivo: dónde lee la CLI las macros y las reglas de BPA, y dónde escribe el registro de consultas.
- Valores predeterminados de comportamiento — controles de BPA, formato automático y validación.
- Perfiles de conexión guardados — la lista de perfiles con nombre entre los que puedes alternar.
La CLI es independiente: no lee ni escribe en ningún PATH de instalación de la versión de escritorio de Tabular Editor 3. Los archivos de reglas de BPA y de macros deben definirse explícitamente en esta configuración (o inicializarse cuando haga falta con te bpa rules init / te macro init).
La mayoría de los usuarios no necesitan editar el archivo de configuración directamente: te config list, te config set <key> <value> y te profile set cubren las operaciones habituales.
Ubicación del archivo de configuración
Se comprueban las siguientes ubicaciones en este orden:
- La variable de entorno
$TE_CONFIG(si está definida y el archivo existe). ~/.config/te/config.json(en Windows,%USERPROFILE%\.config\te\config.json).- Si no hay archivo de configuración, la CLI usa los valores predeterminados integrados.
TE_CONFIG se tiene en cuenta de forma coherente en todas las operaciones del archivo de configuración: te config list, te config set, te config init y te config paths leen y escriben en la ruta resuelta. Está pensado principalmente para pruebas, instalaciones mediante scripts y configuración por entorno.
Para crear una configuración predeterminada:
te config init # Create config at TE_CONFIG (or ~/.config/te/config.json)
te config init --force # Overwrite existing config
Ver la configuración
te config list # Display all settings
te config list --output-format json # Machine-readable
te config paths # Show resolved macros and BPA rule paths
Usa te config paths para ver qué archivos usará realmente la CLI para las macros y las reglas de BPA. Es útil para depurar por qué faltan archivos de datos. La salida muestra dos filas: macros (la ruta del archivo de macros resuelta o [not set]) y bpa.rules (el primer archivo de reglas de BPA existente resuelto por el resolvedor de rutas, o [not set]).
Note
te config paths emite campos null explícitamente en el modo --output-format json (por ejemplo, {"macros": null, "bpa": {"rules": null}}). Informar de los resultados de la resolución es precisamente el propósito del comando, así que null es una respuesta significativa: «se intentó, pero no se resolvió nada». te config list --output-format json elimina los campos null de forma predeterminada, así que conviene que quien lo consuma lo interprete con tolerancia.
Configurar valores
te config set autoFormat true
te config set bpa.onDeploy false
te config set hidePreviewNotice true
te config set macros null # Clear a path override
te config set -p spinner=false # -p key=value works too
Las claves pueden pasarse por posición (te config set <key> <value>) o como -p key=value. Las claves desconocidas provocan que el comando finalice con el código de salida 1 y un error que enumera las claves válidas.
Si no existe ningún archivo de configuración, te config set crea uno automáticamente en la ruta resuelta ($TE_CONFIG si está establecido; de lo contrario, ~/.config/te/config.json) antes de aplicar el cambio.
Note
Puedes establecer cualquier clave del esquema mediante te config set, incluidas las claves anidadas mediante rutas con puntos (bpa.onDeploy, formatOptions.useSqlBiDaxFormatter, etc.). La única excepción es formatVersion, que la CLI administra automáticamente. Ejecuta te config paths para encontrar el archivo de configuración si prefieres editar el JSON directamente.
Esquema completo
El esquema completo de configuración JSON con todas las claves en sus valores predeterminados. Úsalo como referencia al editar directamente el archivo de configuración o al buscar la ruta con puntos para una llamada a te config set.
{
"formatVersion": 2,
"macros": null,
"autoFormat": false,
"validateOnMutation": true,
"vertipaqOnRefresh": false,
"mutationOutput": "diff",
"bpa": {
"rules": null,
"onDeploy": true,
"onSave": true,
"onMutation": false,
"builtInRules": true,
"disabledBuiltInRuleIds": null
},
"interactiveEditMode": "stage",
"launchInteractiveMode": "auto",
"formatOptions": {
"shortFormat": false,
"skipSpaceAfterFunction": false,
"useSqlBiDaxFormatter": false
},
"hidePreviewNotice": false,
"spinner": true,
"debug": false,
"disableTelemetry": false,
"queryLog": null,
"profiles": {}
}
Rutas de archivo
Configúralas en tu configuración para evitar pasar las mismas rutas en cada comando. Las opciones específicas de cada comando y las variables de entorno prevalecen sobre los valores de configuración; consulta Prioridad de resolución de rutas más abajo.
| Clave | Significado |
|---|---|
macros |
Ruta explícita a un archivo JSON de macros (normalmente MacroActions.json). La resuelve cualquier comando te macro. Apunta a un archivo compartido (un recurso compartido de red, un archivo local del repositorio o incluso el archivo de escritorio de TE3) para reutilizar el mismo conjunto de macros en distintos equipos y entre la CLI y TE3 Desktop. |
bpa.rules |
Lista ordenada de rutas o URL a archivos de reglas de BPA. te bpa run y la compuerta de implementación/guardado cargan todas las entradas existentes; te bpa rules list y te config paths usan la primera entrada existente. Los valores separados por comas en te config set bpa.rules ... se separan en el arreglo. |
queryLog |
Ruta a un archivo de registro en el que cada invocación de te query añade el texto de la consulta y los metadatos de ejecución. Útil para mantener registros de auditoría o analizar patrones de consulta a lo largo del tiempo. Admite ~ para el directorio personal (p. ej., ~/.config/te/queries.log). |
Prioridad de resolución de rutas
Para cada archivo proporcionado por el usuario (macros, reglas de BPA), la CLI resuelve la ruta en este orden:
- Opción de línea de comandos -
--macros <path>para comandos de macros;--bpa-rules <path>para la compuerta de implementación/guardado;--rules-file <path>para los subcomandos dete bpa rules. - Variable de entorno -
TE_MACROS_PATHpara macros,TE_BPA_RULESpara reglas de BPA. - Configuración de la CLI -
macrospara macros, la primera entrada existente debpa.rules[]para reglas de BPA.
La CLI no detecta automáticamente ninguna ubicación de instalación de TE3; configúralas explícitamente. Para empezar con un archivo predeterminado en el directorio de trabajo actual, ejecuta te macro init (crea ./MacroActions.json) o te bpa rules init (crea ./BPARules.json).
Ejecuta te config paths para ver qué archivo resolvió realmente la CLI.
Valores predeterminados de comportamiento
Toda la configuración relacionada con BPA está en el objeto bpa y se referencia mediante claves con puntos en te config set.
| Clave | Predeterminado | Descripción |
|---|---|---|
autoFormat |
false |
Formatea automáticamente las expresiones DAX modificadas por un comando de modificación. El formato se limita a los objetos que tocó el comando, pero abarca todas las propiedades que contienen expresiones DAX (expresiones, expresiones de cadena de formato dinámica, filas de detalle, objetivo/estado/tendencia de KPI, expresiones de grupos de cálculo y de permisos de tabla, etc.). Las consultas de partición de Power Query (M) y SQL nunca se reformatean. Siempre usa el formateador interno sin conexión con el dialecto de comas; se aplican las claves de diseño de formatOptions. |
validateOnMutation |
true |
Después de un comando de modificación (add, set, mv, macro run), comprueba que todas las referencias Table[Column] del modelo se sigan resolviendo. Detecta referencias huérfanas introducidas por cambios de nombre o eliminaciones antes de llegar al despliegue. |
mutationOutput |
diff |
Cómo presentan los comandos de modificación (add, set, move, remove, script, bpa run --fix) el conjunto de cambios resultante en la salida de texto: diff (diff completo de antes/después), stat (recuentos de cambios por objeto), name-only (rutas de los objetos modificados) o none (suprime el conjunto de cambios; solo de configuración: no existe el indicador --none). Las opciones --diff / --stat / --name-only de cada comando anulan esta configuración para una sola ejecución. La salida JSON siempre incluye la matriz changes completa en cualquier caso. |
bpa.onMutation |
false |
Ejecuta un análisis de BPA acotado después de cada comando de modificación (set, add, mv, rm, macro run). Solo se comprueban los objetos de la tabla afectada, no los de todo el modelo; útil para obtener retroalimentación rápida durante ediciones iterativas. |
bpa.onDeploy |
true |
Ejecuta el control de BPA antes de que se ejecute te deploy. El despliegue se aborta si se dispara alguna regla con una gravedad >= error. Omítelo en una invocación concreta con --skip-bpa, o corrígelo automáticamente con --fix-bpa. |
bpa.onSave |
true |
Ejecuta el control de BPA antes de que te save-as escriba en disco. Omítelo en una invocación concreta con --skip-bpa o --force. |
bpa.builtInRules |
true |
Incluye el conjunto depurado de reglas integradas de BPA cada vez que se ejecute el control. Configúralo en false para ignorar por completo las reglas integradas; entonces el control ejecutará solo las reglas configuradas mediante bpa.rules y cualquier regla incrustada en el modelo. |
bpa.disabledBuiltInRuleIds |
null |
ID de reglas integradas individuales que se excluirán de la puerta de calidad. Este valor se modifica mediante te bpa rules disable <id> / te bpa rules enable <id>; es preferible usar esos comandos en lugar de editar el arreglo directamente. |
vertipaqOnRefresh |
false |
Tras una actualización correcta (full, dataonly, automatic o add), ejecuta automáticamente el análisis de VertiPaq para mostrar estadísticas de almacenamiento de las tablas actualizadas. Útil para detectar de inmediato regresiones inesperadas de cardinalidad o memoria. |
interactiveEditMode |
stage |
Comportamiento predeterminado para las mutaciones en memoria dentro de te interactive. stage mantiene las mutaciones en memoria hasta que se invoca save (la opción más segura); save escribe en el origen después de cada comando que modifica el estado (úsese con cuidado en orígenes remotos: cada set desencadena una escritura XMLA); revert descarta las mutaciones después de cada comando, a menos que se haya pasado --save o --stage. Las marcas --save / --revert / --stage por comando siempre prevalecen. |
launchInteractiveMode |
auto |
Indica si al ejecutar te en un terminal sin argumentos se inicia el REPL interactivo. auto (predeterminado) inicia el REPL solo cuando los tres flujos (stdin, stdout y stderr) están asociados a un TTY, de modo que los scripts y las canalizaciones de CI pasan al análisis normal. always inicia el REPL independientemente de la redirección. never desactiva por completo el inicio automático y restaura el comportamiento tradicional de mostrar ayuda cuando no hay argumentos. La opción global --non-interactive fuerza never para una sola invocación. También puede establecerse para una sola invocación mediante la variable de entorno TE_INTERACTIVE. |
disableTelemetry |
false |
Desactiva la telemetría de uso anónima. La CLI recopila datos básicos de uso de comandos (nombre del comando, código de salida y duración) para orientar la priorización de funciones. La CLI nunca recopila el contenido del modelo, PATH ni el texto de las consultas. |
te config set bpa.rules "/etc/te/team.json,/etc/te/strict.json"
te config set bpa.onDeploy true
te config set bpa.builtInRules false
te config set bpa.disabledBuiltInRuleIds "TE3_BUILT_IN_DATE_TABLE_EXISTS,TE3_BUILT_IN_HIDE_FOREIGN_KEYS"
Opciones de formato
Se aplica cada vez que la CLI formatea DAX. La CLI incluye un formateador que funciona totalmente sin conexión. Las claves de diseño (shortFormat, skipSpaceAfterFunction) se aplican cuando autoFormat reformatea expresiones modificadas y cuando te query genera el texto de la consulta; en cambio, el formato explícito mediante te set <path> --format <Property> y te util format-dax usa las marcas equivalentes por invocación (--long, --no-space-after-function). No existe deliberadamente ninguna clave de separador de listas: el DAX almacenado en un modelo o enviado a Analysis Services siempre se separa con comas, así que todo formateo controlado por la configuración usa comas. El único caso en que se aplica el dialecto de punto y coma es la opción --semicolons de te util format-dax, para el DAX que hayas escrito con punto y coma. formatOptions.useSqlBiDaxFormatter hace que el formato explícito y la salida de te query pasen por el servicio web SQL BI daxformatter.com (requiere acceso a Internet) si necesitas ese estilo; autoFormat siempre usa el formateador interno, independientemente de ello.
| Clave | Predeterminado | Descripción |
|---|---|---|
formatOptions.shortFormat |
false |
Prefiere un formato corto, de una sola línea, cuando sea posible, en lugar del diseño predeterminado de varias líneas. |
formatOptions.skipSpaceAfterFunction |
false |
Omite el espacio entre el nombre de una función y su paréntesis de apertura (por ejemplo, SUM(x) en lugar de SUM (x)). |
formatOptions.useSqlBiDaxFormatter |
false |
Formatea DAX con el servicio web SQL BI daxformatter.com en lugar del formateador interno. Requiere acceso a Internet. El formateador interno (predeterminado) funciona sin conexión y coincide con la configuración predeterminada de Tabular Editor 3 Desktop. |
Visualización
Ajustes que controlan la salida del terminal de la CLI y el nivel de detalle de los diagnósticos.
| Clave | Predeterminado | Descripción |
|---|---|---|
hidePreviewNotice |
false |
Suprime el banner amarillo de vista previa. Se ignora cuando faltan menos de 14 días para el vencimiento. |
spinner |
true |
Muestra indicadores de progreso animados en el terminal. Desactivar para CI. |
debug |
false |
Activa siempre el registro de depuración (equivale a pasar --debug). |
Perfiles
Los perfiles de conexión guardados se almacenan bajo la clave profiles. No los edites a mano; usa te profile set / remove / list. Consulta Autenticación y conexiones para la gestión de perfiles.
Los perfiles pueden incluir anulaciones que sustituyen los valores predeterminados de comportamiento anteriores siempre que el perfil esté activo. Las claves que un perfil puede sobrescribir son autoFormat, validateOnMutation, mutationOutput, bpa.onMutation, bpa.onDeploy, bpa.onSave, vertipaqOnRefresh, spinner e interactiveEditMode. Así, un perfil de desarrollo puede relajar la validación y el BPA, mientras que uno de producción los mantiene estrictos:
te profile set dev --validate-on-mutation false --bpa-on-deploy false
te profile set prod --auto-format true
te profile set expone opciones para las más comunes (--auto-format, --validate-on-mutation, --bpa-on-mutation, --bpa-on-deploy, --vertipaq-on-refresh, --spinner); cada una acepta true, false o null para eliminar la anulación.
Control BPA
El control BPA es la red de seguridad que impide que se guarde o se despliegue un modelo con infracciones de reglas. Se ejecuta automáticamente con los siguientes comandos:
te deployejecuta el control, a menos que se pase--skip-bpao quebpa.onDeployseafalse.te save-asejecuta el control, a menos que se pase--skip-bpa(o--force) o quebpa.onSaveseafalse.te add,te set,te move,te remove,te macro runsolo ejecutan la validación cuandobpa.onMutationestrue.
El control carga las reglas de BPA desde bpa.rules y, de forma predeterminada, el conjunto de reglas integrado (controlado por bpa.builtInRules). Las reglas integradas pueden excluirse individualmente mediante bpa.disabledBuiltInRuleIds; se administran con te bpa rules disable <id> / te bpa rules enable <id>.
Cuando el control se activa y detecta incumplimientos con gravedad >= error, el comando falla con el código de salida 1 y un resumen de los incumplimientos. Opciones para resolverlo:
--fix-bpa- aplica en memoria lafixExpressionde la regla al artefacto que se va a desplegar o guardar; los archivos fuente no se modifican.--skip-bpa- desactiva el control solo para este comando.--bpa-rules <path>- repetible; sustituyebpa.rulesen esta única ejecución dete deployote save-as. Las reglas integradas siguen aplicándose salvo quebpa.builtInRulesseafalse.
Ejecuta te bpa run de forma independiente para previsualizar el comportamiento del control sin desplegar:
te bpa run --model ./model --fail-on error
te bpa run --model ./model --fix --save # Apply fixes to the source
Reglas de BPA integradas
La CLI incluye un único conjunto canónico de reglas de BPA integradas, incrustado como recurso JSON. Las reglas integradas son de solo lectura: te bpa rules set y te bpa rules remove se niegan a modificar los ID integrados y remiten a los usuarios a te bpa rules disable en su lugar. Para personalizar el comportamiento de una regla integrada, cópiala en tu archivo local de reglas como una regla nueva con un ID distinto y deshabilita la regla integrada.
Tanto bpa.builtInRules como bpa.disabledBuiltInRuleIds se aplican de forma coherente a la validación de implementación/guardado/mutación y al comando manual te bpa run: si deshabilitas una regla una vez con te bpa rules disable, queda excluida en todas partes.
Comportamiento tras la mutación
Cuando ejecutas un comando que modifica (te add, te set, te move, te macro run), la CLI realiza estas comprobaciones automáticamente:
- Los errores de TOM siempre se muestran. Un DAX o M no válidos en medidas, columnas, particiones o elementos de cálculo siempre hacen que el comando falle.
- La validación del esquema (
validateOnMutation, valor predeterminadotrue) comprueba que las referenciasTable[Column]en DAX sigan resolviéndose y verifica la consistencia de los metadatos. - Formato automático de DAX (
autoFormat, valor predeterminadofalse) da formato a cualquier expresión afectada por la mutación mediante el DAX Formatter integrado cuando está habilitado. - BPA tras la mutación (
bpa.onMutation, valor predeterminadofalse) ejecuta BPA después de la mutación cuando está habilitado, y muestra una advertencia o hace que el comando falle según--fail-on.
Deshabilita una comprobación con te config set <key> false, o limita esa relajación a un entorno concreto mediante un perfil.
Directivas de administración
En Windows, te respeta las mismas directivas de administrador que Tabular Editor 3. Las directivas se leen del registro en Software\Policies\Tabular Editor ApS, con una subclave opcional TECLI para los valores que deben aplicarse solo a la CLI y una subclave TE3 para la aplicación de escritorio; y también de la clave anterior Software\Policies\Kapacity\Tabular Editor, que sigue funcionando sin cambios. Un valor de ámbito de máquina (HKEY_LOCAL_MACHINE) tiene prioridad sobre uno por usuario (HKEY_CURRENT_USER), y dentro de una colmena, un valor específico del producto tiene prioridad sobre uno compartido. Cuando una directiva desactiva una función, el comando indica qué directiva es la responsable, no hace nada y finaliza con error, de modo que una canalización que dependa de algo que un administrador haya desactivado más tarde falle de forma visible en lugar de indicar que tuvo éxito con un trabajo que nunca hizo.
| Directiva | Efecto en la CLI |
|---|---|
DisableCSharpScripts |
Rechaza te script y las correcciones automáticas de te bpa run --fix. |
DisableMacros |
Rechaza cualquier comando te macro. |
DisableBpaDownload |
Rechaza las reglas de Best Practice Analyzer indicadas mediante una URL. Los archivos de reglas en disco y las reglas integradas no se ven afectados. |
DisableTelemetry |
Desactiva las estadísticas de uso anónimas, independientemente de lo que diga disableTelemetry en la configuración. |
Las directivas que controlan funciones que la CLI no tiene —la comprobación de actualizaciones, los Reports de errores, el Optimizador de DAX, el Administrador de paquetes de DAX, el asistente de IA y el servidor MCP— no tienen ningún efecto sobre ella. Consulta Directivas para ver la lista completa de directivas y cómo implementarlas.
Variables de entorno
Usa las siguientes variables de entorno específicas de la CLI para PATH, comportamiento y diagnósticos. Para las variables de autenticación de Azure (AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_CERTIFICATE_PATH, etc.), consulta Autenticación y conexiones.
| Variable | Propósito |
|---|---|
TE_CONFIG |
Ruta de acceso a un archivo de configuración alternativo. Se respeta en todas las operaciones de te config (list, set, init, paths). |
TE_MACROS_PATH |
Anula la ruta del archivo de macros (segundo en el orden de resolución; ver arriba). La leen los comandos te macro. |
TE_BPA_RULES |
Anula la lista de archivos/URL de reglas de BPA utilizada por los subcomandos te bpa run y te bpa rules. |
TE_BPA_CONFIG |
Anula la ruta de acceso a la configuración del gate de BPA (.te-bpa.json) que lee el gate de despliegue/guardado. |
TE_DEBUG |
Establece el valor en 1 para habilitar el registro de depuración globalmente (igual que --debug o debug: true en la configuración). |
NO_SPINNER |
Establece el valor en 1 o true para desactivar los indicadores de progreso animados (alternativa a spinner: false en la configuración). |
CI |
Se detecta automáticamente. Cuando vale 1 o true, la CLI desactiva el spinner y cambia a una salida de texto sin formato. La mayoría de los runners de CI lo configuran automáticamente. |
TE_SESSION |
Sobrescribe el identificador de sesión por terminal que se usa para el estado de la conexión activa. Útil para ejecutar varias sesiones aisladas de la CLI dentro del mismo shell, por ejemplo, en trabajos de matriz de CI en paralelo. Inspecciona y gestiona las sesiones con te session. |
TE_INTERACTIVE |
Anula launchInteractiveMode para una sola invocación. Acepta auto, always o never. Útil para scripts puntuales que quieran usar el REPL interactivo (TE_INTERACTIVE=always) o forzar el comportamiento clásico de mostrar ayuda cuando no hay argumentos (TE_INTERACTIVE=never) sin tocar el archivo de configuración. |
TE_COMPAT |
Establécela en te2 para forzar el modo de compatibilidad con TE2; consulta Migración desde la línea de comandos de TE2. |
Páginas relacionadas
- Autenticación y conexiones - perfiles, autenticación y almacenamiento de credenciales.
- Referencia de comandos - subcomandos de
te config. - Integración de CI/CD - configuración del gate de BPA para pipelines.