Saltar al contenido principal
Cada operación de esta página comienza obteniendo una instancia de Application:
import { SquareCloudAPI } from "@squarecloud/api";

const api = new SquareCloudAPI(process.env.SQUARE_API_KEY!);
const app = await api.applications.fetch("abc123def456abc123def456");
api.applications.fetch(id) devuelve una Application. Cuando la aplicación tiene un dominio web asociado, se devuelve como una WebsiteApplication: refina el tipo en tiempo de ejecución con app.isWebsite() antes de usar .network (consulta Network).

Propiedades de la aplicación

PropiedadTipoDescripción
idstringID de la aplicación (24 caracteres hexadecimales)
namestringNombre visible
descriptionstring?Descripción de squarecloud.app
urlstringURL del panel web
ramnumberRAM asignada en MB
clusterstringCluster en el que se ejecuta la aplicación
languagestringjavascript | typescript | python | java | elixir | rust | go | php | dotnet | static
domainstring | nullHost <subdomain>.squareweb.app por defecto (null para aplicaciones no web)
customstring | nullDominio personalizado asociado a la aplicación, cuando está configurado
createdAtDateFecha de creación
En la v4, app.custom es null cuando no hay un dominio personalizado configurado (era undefined en la v3).

Obtención del estado de la aplicación

app.getStatus() devuelve una instancia de ApplicationStatus con el estado en vivo del runtime.
const status = await app.getStatus();

console.log(status.status);          // "running" | "starting" | "restarting" | "exited" | "created" | "deleting"
console.log(status.running);         // boolean
console.log(status.usage.cpu);       // "0.22%"
console.log(status.usage.ram);       // "70MB"
console.log(status.usage.network);   // { total: "0 KB ↑ 0 KB ↓", now: "0 KB ↑ 0 KB ↓" }
console.log(status.usage.storage);   // "0B"
console.log(status.uptime);          // Date | undefined
console.log(status.uptimeTimestamp); // number | undefined

Resumen de estado de cada aplicación

Para evitar una petición por aplicación, llama a api.applications.statusAll():
const list = await api.applications.statusAll();

for (const summary of list) {
    console.log(`${summary.applicationId} → running=${summary.running}`);
    if (summary.running) {
        console.log(`  cpu=${summary.usage.cpu}, ram=${summary.usage.ram}`);
    }

    // Promote a summary to the full status with .fetch()
    const full = await summary.fetch();
    console.log(full.uptime);
}

Obtención de los logs

app.getLogs() devuelve la salida de logs más reciente como un string.
const logs = await app.getLogs();
console.log(logs);

Obtención de métricas

app.getMetrics() devuelve las últimas 24 horas de muestras de CPU, RAM y red (hasta 288 puntos, uno cada 5 minutos).
const metrics = await app.getMetrics();

console.log(metrics.length, "data points");
console.log(metrics[0]);
// { timestamp: 1717084800000, cpu: 12.3, ram: 187, network: { ... } }
getMetrics() requiere que la aplicación tenga asignados al menos 512MB de RAM.

Flujo de eventos en tiempo real

app.realtime() abre un stream de Server-Sent Events. Consulta la página dedicada de Realtime para ver un ejemplo completo.

Ciclo de vida

Todos los métodos del ciclo de vida se resuelven con un boolean (true en caso de éxito).
await app.start();
await app.restart();
await app.stop();

Eliminación de una aplicación

app.delete() elimina la aplicación de forma permanente. A menos que tengas un snapshot, los datos no se pueden recuperar.
const deleted = await app.delete();
console.log(deleted); // true | false

Actualización de los datos de la aplicación

app.fetch() vuelve a obtener la aplicación desde la API y devuelve una instancia de Application totalmente nueva. Úsalo cuando sospeches que los datos en caché están desactualizados.
const fresh = await app.fetch();