Zum Hauptinhalt springen
Jede Operation auf dieser Seite beginnt damit, eine Application-Instanz zu erhalten:
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) gibt eine Application zurück. Wenn der App eine Website-Domain zugeordnet ist, wird sie als WebsiteApplication zurückgegeben — verfeinere den Typ zur Laufzeit mit app.isWebsite(), bevor du .network verwendest (siehe Network).

Anwendungseigenschaften

EigenschaftTypBeschreibung
idstringAnwendungs-ID (24 Hex-Zeichen)
namestringAnzeigename
descriptionstring?Beschreibung aus squarecloud.app
urlstringURL des Web-Dashboards
ramnumberZugewiesener RAM in MB
clusterstringCluster, auf dem die App läuft
languagestringjavascript | typescript | python | java | elixir | rust | go | php | dotnet | static
domainstring | nullStandard-Host <subdomain>.squareweb.app (null bei Nicht-Web-Apps)
customstring | nullDer App zugeordnete Custom-Domain, sofern konfiguriert
createdAtDateErstellungsdatum
In v4 ist app.custom null, wenn keine Custom-Domain gesetzt ist (war in v3 undefined).

Den Anwendungsstatus abrufen

app.getStatus() gibt eine ApplicationStatus-Instanz mit dem aktuellen Laufzeitzustand zurück.
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

Zusammengefasster Status für jede Anwendung

Um nicht eine Anfrage pro App zu senden, rufe api.applications.statusAll() auf:
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);
}

Die Logs abrufen

app.getLogs() gibt die letzten Log-Ausgaben als string zurück.
const logs = await app.getLogs();
console.log(logs);

Metriken abrufen

app.getMetrics() gibt die letzten 24 Stunden an CPU-, RAM- und Netzwerk-Messwerten zurück (bis zu 288 Punkte, einer alle 5 Minuten).
const metrics = await app.getMetrics();

console.log(metrics.length, "data points");
console.log(metrics[0]);
// { timestamp: 1717084800000, cpu: 12.3, ram: 187, network: { ... } }
getMetrics() erfordert, dass der Anwendung mindestens 512MB RAM zugewiesen sind.

Echtzeit-Event-Stream

app.realtime() öffnet einen Server-Sent Events-Stream. Ein vollständiges Beispiel findest du auf der eigenen Realtime-Seite.

Lebenszyklus

Alle Lebenszyklus-Methoden lösen zu boolean auf (true bei Erfolg).
await app.start();
await app.restart();
await app.stop();

Eine Anwendung löschen

app.delete() entfernt die Anwendung dauerhaft. Sofern du keinen Snapshot hast, können die Daten nicht wiederhergestellt werden.
const deleted = await app.delete();
console.log(deleted); // true | false

Die Anwendungsdaten aktualisieren

app.fetch() lädt die Anwendung erneut von der API und gibt eine völlig neue Application-Instanz zurück. Verwende es, wenn du vermutest, dass die zwischengespeicherten Daten veraltet sind.
const fresh = await app.fetch();