Zum Hauptinhalt springen

Anforderungen

Unverändert seit v4: Node.js 20.0.0 oder neuer, sowohl ESM als auch CJS.

Zusammenfassung der Breaking Changes

v4.xv5.x
client.users.* (veralteter Proxy)Entfernt. Verwenden Sie client.user.*
app.backup / app.backupsEntfernt. Verwenden Sie app.snapshots
Backup-ExportEntfernt. Verwenden Sie Snapshot / DatabaseSnapshot
api.applications.create(file) liefert { id, name, lang, ram }Liefert { id, name, ram, cpu, language, description?, subdomain? }
app.network.dns() liefert { ownership, ssl }Liefert ein Array von DNS-Einträgen

client.users entfernt

Anders als bei der Migration von v3 zu v4 gibt es diesmal keinen veralteten Proxy. client.users existiert nicht mehr, ein Aufruf wirft einen Fehler.
// v4
await api.users.get();

// v5
await api.user.get();

Backups entfernt

app.backup und app.backups sind entfernt, ebenso der Backup-Export. Snapshots sind der einzige unterstützte Weg, sowohl für Anwendungen als auch für Datenbanken.
// v4
await app.backups.create();
await app.backup.list();

// v5
await app.snapshots.create();
await app.snapshots.list();
Verwenden Sie die Klasse Snapshot für Anwendungs-Snapshots und DatabaseSnapshot für Datenbank-Snapshots.

Rückgabeform von api.applications.create(file)

Die erstellte Anwendung liefert jetzt umfangreichere Sprach- und Ressourcendaten anstelle des flachen Paars lang/ram.
// v4
const { id, name, lang, ram } = await api.applications.create(file);

// v5
const { id, name, ram, cpu, language, description, subdomain } =
    await api.applications.create(file);

// language ist jetzt ein Objekt, z. B. { name: "javascript", version: "22" }
// cpu ist die zugewiesene CPU-Kapazität (number)
// description und subdomain sind nur vorhanden, wenn sie in squarecloud.config gesetzt sind

Form von app.network.dns()

dns() liefert jetzt ein Array von DNS-Einträgen anstelle eines einzelnen Objekts { ownership, ssl }.
// v4
const { ownership, ssl } = await app.network.dns();

// v5
const records = await app.network.dns();
// [{ type: "txt", name, value, status }, { type: "cname", name, value: "cname.squareweb.app", status }]
txt-Einträge decken sowohl Ownership als auch SSL-Validierung ab; der cname-Eintrag ist der Traffic-Eintrag. status spiegelt den Validierungsstatus wider (pending, pending_validation, active und so weiter).

Weitere Änderungen

  • ApplicationLanguage enthält jetzt ruby, neben javascript, typescript, python, java, elixir, go, rust, php, dotnet und static.
  • Fehlercodes wurden standardisiert. Neue Namen werden über APIErrorCode exportiert; die alten Namen bleiben als veraltete Typ-Aliase verfügbar. Siehe Fehlercodes für die vollständige Umbenennungstabelle.