Pular para o conteúdo principal
Todas as operações desta página começam obtendo uma instância 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) retorna uma Application. Quando a aplicação possui um domínio web, ela é retornada como WebsiteApplication — refine o tipo em tempo de execução com app.isWebsite() antes de usar .network (veja Rede).

Propriedades da aplicação

PropriedadeTipoDescrição
idstringID da aplicação (24 chars hex)
namestringNome de exibição
descriptionstring?Descrição vinda do squarecloud.app
urlstringURL do dashboard web
ramnumberRAM alocada em MB
clusterstringCluster onde a aplicação roda
languagestringjavascript | typescript | python | java | elixir | rust | go | php | dotnet | static
domainstring | nullHost padrão <subdominio>.squareweb.app (null para apps não-web)
customstring | nullDomínio customizado vinculado à aplicação, se configurado
createdAtDateData de criação
Na v4, app.custom é null quando nenhum domínio customizado está configurado (era undefined na v3).

Obtendo o status da aplicação

app.getStatus() retorna uma instância de ApplicationStatus com o estado de execução em tempo real.
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

Status resumido para todas as aplicações

Para evitar uma requisição por aplicação, use 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}`);
    }

    // Promova o resumo para o status completo com .fetch()
    const full = await summary.fetch();
    console.log(full.uptime);
}

Obtendo os logs

app.getLogs() retorna a saída de log mais recente como string.
const logs = await app.getLogs();
console.log(logs);

Obtendo métricas

app.getMetrics() retorna as últimas 24 horas de amostras de CPU, RAM e rede (até 288 pontos, um a cada 5 minutos).
const metrics = await app.getMetrics();

console.log(metrics.length, "pontos");
console.log(metrics[0]);
// { timestamp: 1717084800000, cpu: 12.3, ram: 187, network: { ... } }
getMetrics() exige que a aplicação tenha no mínimo 512MB de RAM alocados.

Stream de eventos em tempo real

app.realtime() abre um stream Server-Sent Events. Veja a página dedicada de Tempo real para um exemplo completo.

Ciclo de vida

Todos os métodos de ciclo de vida resolvem para boolean (true em caso de sucesso).
await app.start();
await app.restart();
await app.stop();

Excluindo uma aplicação

app.delete() remove a aplicação permanentemente. Sem um snapshot, os dados não podem ser recuperados.
const deleted = await app.delete();
console.log(deleted); // true | false

Atualizando os dados da aplicação

app.fetch() rebusca a aplicação na API e retorna uma nova instância de Application. Use quando suspeitar que os dados em cache estão desatualizados.
const fresh = await app.fetch();