Septiembre de 2026

Pathly como API, y un provider de Terraform

APITras la escena

Describir la infraestructura en ficheros y crear la vigilancia a mano es mantener dos verdades que acaban divergiendo. Ahora se escribe como código: una API documentada y un provider de Terraform.

El contrato publicado es el que corre

La API sirve su propio contrato OpenAPI, sin autenticación, en una dirección pública. Ese documento no se escribe aparte del código: se genera a partir de la tabla que declara las rutas, la misma que decide, en cada llamada, qué alcance se exige. Una ruta que no figura en ella no arranca. La página de desarrolladores lee ese contrato en el momento del renderizado, de modo que una ruta retirada desaparece de la documentación sin que nadie lo piense. Una documentación copiada a mano siempre miente, la única pregunta es desde cuándo.

Alcances estrechos, y cuatro negativas

Una clave lleva alcances con la forma recurso y luego acción: leer los escenarios, escribirlos, lanzar una ejecución, cerrar un incidente. Escribir implica leer, porque una herramienta siempre relee lo que acaba de escribir. Lanzar sigue separado de leer, porque una ejecución consume cuota y no es una consulta.

Cuatro gestos quedan fuera del alcance de una clave, por decisión y no por olvido. Emitir o revocar una clave, porque una clave capaz de eso anula los alcances de todas las demás. Invitar a un miembro, porque es lo mismo por un rodeo: la nueva cuenta emitirá las claves que quiera. Cambiar de plan o tocar la facturación, porque un token de integración continua no debe comprometer gastos. Exportar la organización, porque la exportación contiene miembros, es decir, datos personales.

Lo que nunca se relee

Una contraseña de autenticación, la dirección de un webhook, los pasos de un recorrido de navegador: esos valores se escriben y no vuelven a salir. En su lugar, la API devuelve una huella de doce caracteres, que cambia en cuanto cambia el valor. Es suficiente para que una herramienta detecte que un recurso se modificó en otro sitio, y demasiado poco para reconstruir lo que contiene. Terraform lo usa exactamente así: el destino de un webhook editado a mano en la consola se ve en el siguiente plan, sin que la dirección se escriba nunca en un fichero de estado.

Lo que una herramienta automática espera de una API

El provider

Cuatro recursos —un escenario, una ventana de mantenimiento, un webhook, un objetivo de disponibilidad— y una fuente de datos que relee el inventario, suficiente para detectar un escenario creado a mano en la consola y ausente del código. Las claves de API y los miembros no figuran, por la razón ya dicha: un fichero Terraform que invita a un propietario es una escalada por rodeo.

Dos comportamientos importan más que la lista de recursos. Tras un apply, un plan debe estar vacío: si no, la herramienta propone un cambio en cada pasada y nadie vuelve a leer sus planes. Y cambiar la dirección, el intervalo o el umbral de latencia de un escenario debe modificarlo en su sitio, nunca destruirlo y recrearlo — un escenario recreado pierde su historial y sus incidentes, es decir, todo aquello por lo que se vigilaba. Esos dos puntos exigieron, del lado de la API, que todo lo que se escribe se relea idéntico. Es el trabajo menos visible del provider, y el que decide si es utilizable.

Adoptar un parque existente

Nadie rehace su vigilancia desde cero para pasar al código. Cada recurso se importa por su identificador: el escenario creado el año pasado en la consola entra en el estado de Terraform sin ser tocado, y el siguiente plan muestra la diferencia entre lo que es y lo que describe el fichero. Es la única manera honesta de migrar, y también la que permite dar marcha atrás.

En qué punto está

El provider está publicado en el registro público de Terraform, con su documentación y sus ejemplos: basta con declarar una versión en un bloque required_providers para instalarlo, sin espejo local ni compilación desde las fuentes. La numeración sigue en 0.x, y eso significa algo preciso: los recursos existentes no se moverán sin motivo, pero nos reservamos ajustar un esquema antes del 1.0. La API no espera al provider: una clave, una dirección y la documentación para desarrolladores bastan para pilotar lo mismo desde cualquier lenguaje.

Vea qué pasa en su propio sitio

Auditoría gratis en 30 segundos — o grabe un recorrido y vigílelo cada día.