Novedades
Notas de versión de ajat, de más reciente a más antigua.
Lo último
Saber cuándo hay algo que instalar
ajat doctor informa de la versión más reciente disponible para ti, junto al comando que la instala; la comprobación nunca hace fallar el diagnóstico y responde “no se pudo comprobar” si no hay conexión. Tras un comando normal, ajat también consulta el servicio de actualizaciones como mucho una vez al día, espera dos segundos como máximo e imprime una sola línea en stderr cuando existe una versión más reciente. El aviso no molesta: nunca en CI, nunca bajo sudo, nunca cuando stderr no es un terminal y nunca tras un comando que no necesita licencia. Desactívalo con ajat config set update.notice false.
ajat update sigue funcionando cuando se alcanza el límite diario de descargas de la tienda — cada archivo puede descargarse diez veces al día y, a partir de ahí, ajat obtiene la misma versión del almacenamiento propio de Climakers.
La activación es más estable en Linux
Los archivos de licencia se cifran contra un identificador de máquina y, en Linux, ese identificador ahora sobrevive a las actualizaciones de kernel y microcódigo y a los redimensionamientos de máquinas virtuales. Las licencias activadas antes de esta versión siguen funcionando: una licencia de suscripción se traslada al nuevo identificador la primera vez que se abre y una licencia offline firmada conserva el identificador con el que se emitió. No hace falta reactivar nada y macOS no se ve afectado.
Actualizaciones desde la propia herramienta
ajat update instala la versión más reciente que incluye tu licencia: la descarga de Climakers, verifica su suma SHA-256 y reemplaza el binario en ejecución. En macOS instala el paquete firmado y notarizado y se ejecuta como sudo ajat update; en Linux reemplaza el binario en su sitio y nunca usa sudo. --check informa sin cambiar nada. Las licencias locales (sin conexión) firmadas también se actualizan y, cuando termina una suscripción, las versiones publicadas antes de esa fecha siguen siendo instalables. Disponible desde v1.0.4. Consulta Actualizar ajat.
Informes
report workflowrepresenta cada regla como un runbook con diagrama de flujo: la forma del inventario de automatizaciones convertida en algo que una persona puede leer y entregar a auditoría. Consulta Generar informes HTML.- Diagramas de flujo SVG por regla en el inventario, mostrados por defecto al desplegar una regla.
- Detección de duplicados por comportamiento en el informe de colisiones. Dos reglas escritas de forma distinta pero que hacen lo mismo ahora se detectan, no solo los solapamientos literales de nombre o disparador.
- El informe de riesgo explica su propia puntuación y enlaza cada regla de la lista de categorías con la lista de reglas de automatización de Jira.
- Las personas y los proyectos enlazan directamente a Jira, así que un hallazgo de un informe está a un clic de la cuenta o del proyecto que describe. Las reglas enlazan con la lista de reglas de automatización del sitio: la API de Jira no expone el identificador que necesitaría un enlace por regla.
- Chips de identidad con avatares y estado en las listas de miembros, y los destinos de notificación — correos y canales — mostrados directamente en el informe.
- El panel de Analytics se explica solo y aparece en los informes de inventario, colisiones, consistencia y riesgo. El informe de workflow es un manual regla a regla y, deliberadamente, no incluye gráficas del conjunto.
Los fallos de la API te dicen qué hacer
Un token rechazado se mostraba antes como un simple estado HTTP. Los errores de las APIs de Jira y de licencias llevan ahora una pista:
Error: resolve cloud id: GET https://acme.atlassian.net/rest/api/3/myself returned 401: {"message":"Unauthorized"}
Hint: Authentication failed — verify your jira.username and jira.api_tokenLas pistas cubren autenticación (401), permisos (403), un dominio o recurso equivocado (404), límite de peticiones (429) y caídas de Jira (5xx). Un límite de peticiones agotado sugiere bajar --workers en lugar de simplemente reintentar, y un sitio que no es Cloud se identifica de forma explícita.
Correcciones
license activate --license-key <archivo>indica qué flag admite un archivo. Pasar un archivo de licencia a--license-keyrespondía “invalid license key format: expected UUID v4”; ahora explica que un archivo de licencia se activa con--license-filee imprime el comando exacto.ajat updatedetecta una versión nueva de inmediato. Justo después de una publicación,updatepodía informar de la versión anterior durante varios minutos porque el servicio de actualizaciones respondía desde una copia en caché. La instalación, yupdate --check --force, consultan ahora el servicio directamente.
jira.automation_base_url se ignoraba en silencio en todos los comandos
salvo doctor. Si trabajas contra un host de automatización privado,
doctor informaba de una instalación correcta mientras export, import,
invoke, search y todos los subcomandos de rule seguían hablando con
api.atlassian.com. El cliente de Jira se construye ahora en un único sitio,
así que todos los comandos leen la misma configuración.
--debugno producía salida alguna. Fijaba el nivel de log pero dejaba el destino en su valor por defecto, que lo descarta todo. Ahora escribe en stderr salvo que--log-fileindique otra cosa, y retira la barra de progreso para que no se pisen en el mismo flujo.- Un
log.level,log.formatolog.fileinválido bloqueaba todos los comandos, incluidos los comandosconfigque lo reparan, así queajat config set log.level infono podía arreglar unlog.levelincorrecto. Ahora recurren a unos ajustes que funcionan durante esa ejecución e indican qué clave cambiar. - Una opción global colocada antes de un comando exento hacía que este validara la configuración.
ajat --config-file broken.yaml config whereinspeccionaba--config-fileen lugar deconfigy se negaba a ejecutarse, mientras que el mismo comando con la opción movida sí funcionaba, lo que dejaba inservibles los comandosconfigjusto para inspeccionar la configuración rota que querías mirar. - La barra de progreso podía dejar una goroutine renderizando tras detenerse, de modo que la barra del siguiente comando corrompía el estado de la anterior. Detenerla ahora espera a que el renderizador termine, lo que además elimina un coste fijo de 50 ms en todos los comandos que muestran progreso.
Consulta también
- Generar informes HTML — los cinco tipos de informe
- Exportar el inventario — copia de seguridad y exportación incremental
- Configuración — credenciales, hosts y logging