Passer au contenu principal
Chaque opération de cette page commence par l’obtention d’une instance 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) renvoie une Application. Lorsque l’application a un domaine de site web qui lui est associé, elle est renvoyée en tant que WebsiteApplication — affinez le type à l’exécution avec app.isWebsite() avant d’utiliser .network (voir Network).

Propriétés de l’application

PropriétéTypeDescription
idstringID de l’application (24 caractères hexadécimaux)
namestringNom d’affichage
descriptionstring?Description issue de squarecloud.app
urlstringURL du tableau de bord web
ramnumberRAM allouée en Mo
clusterstringCluster sur lequel l’application s’exécute
languagestringjavascript | typescript | python | java | elixir | rust | go | php | dotnet | static
domainstring | nullHôte <subdomain>.squareweb.app par défaut (null pour les applications non web)
customstring | nullDomaine personnalisé associé à l’application, lorsqu’il est configuré
createdAtDateDate de création
En v4, app.custom vaut null lorsqu’aucun domaine personnalisé n’est défini (c’était undefined en v3).

Obtenir le statut de l’application

app.getStatus() renvoie une instance ApplicationStatus avec l’état d’exécution en direct.
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

Statut résumé de chaque application

Pour éviter une requête par application, appelez 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);
}

Obtenir les logs

app.getLogs() renvoie la sortie de logs la plus récente sous forme de string.
const logs = await app.getLogs();
console.log(logs);

Obtenir les métriques

app.getMetrics() renvoie les dernières 24 heures d’échantillons de CPU, RAM et réseau (jusqu’à 288 points, un toutes les 5 minutes).
const metrics = await app.getMetrics();

console.log(metrics.length, "data points");
console.log(metrics[0]);
// { timestamp: 1717084800000, cpu: 12.3, ram: 187, network: { ... } }
getMetrics() nécessite que l’application dispose d’au moins 512 Mo de RAM allouée.

Flux d’événements en temps réel

app.realtime() ouvre un flux Server-Sent Events. Consultez la page dédiée Realtime pour un exemple complet.

Cycle de vie

Toutes les méthodes du cycle de vie se résolvent en boolean (true en cas de succès).
await app.start();
await app.restart();
await app.stop();

Supprimer une application

app.delete() supprime définitivement l’application. À moins d’avoir un snapshot, les données ne peuvent pas être récupérées.
const deleted = await app.delete();
console.log(deleted); // true | false

Actualiser les données de l’application

app.fetch() récupère à nouveau l’application depuis l’API et renvoie une toute nouvelle instance Application. Utilisez-le lorsque vous soupçonnez que les données mises en cache sont périmées.
const fresh = await app.fetch();