Un contrato, no una superficie
El OpenAPI sale de los schemas de validación de los propios handlers. Un endpoint no puede aceptar algo que el spec no describa. Cómo funciona
Cada operación de la API existe como llamada HTTP, como comando del CLI, como método del SDK y —cuando salga— como acción de MCP. Las cuatro se generan del mismo contrato, así que no pueden contradecirse.
curl https://api.truo.cloud/v1/services \ -H "Authorization: Bearer $TRUO_TOKEN"
curl https://api.truo.cloud/v1/vps/svc_10432/power \ -X POST \ -H "Authorization: Bearer $TRUO_TOKEN" \ -H "Content-Type: application/json" \ -d '{"action":"stop"}'truo auth logintruo services listtruo vps power svc_10432 stopimport { TruoClient } from "@truocloud/sdk";
const truo = new TruoClient(); // lee TRUO_TOKEN
for await (const svc of truo.services.listAll()) console.log(svc.id);
const op = await truo.vps.power("svc_10432", { action: "stop" });await truo.operations.wait(op.id);Un contrato, no una superficie
El OpenAPI sale de los schemas de validación de los propios handlers. Un endpoint no puede aceptar algo que el spec no describa. Cómo funciona
Credenciales que se pueden acotar
Scopes por recurso y acción, allowlist por servicio, y una key nunca puede crear otra key. Autenticación
Doce meses de aviso
Nada se elimina ni se renombra sin Deprecation/Sunset y un año de
ventana. La política
Pensada para agentes
Cada operación declara su scope, si es destructiva y si es asíncrona. Darle acceso a un agente
VPS · DNS · bases de datos administradas · contenedores · balanceadores · Object Storage · Mail Gateway. 103 operaciones en total — la referencia completa.
WordPress, cPanel, dominios, tickets y facturación llegan en v1.1. Lo que no
está en /v1/openapi.json no tiene
contrato todavía.