Passer au contenu principal

Prérequis

Inchangé depuis la v4 : Node.js 20.0.0 ou plus récent, ESM comme CJS.

Résumé des ruptures de compatibilité

v4.xv5.x
client.users.* (proxy déprécié)Supprimé. Utilisez client.user.*
app.backup / app.backupsSupprimé. Utilisez app.snapshots
Export BackupSupprimé. Utilisez Snapshot / DatabaseSnapshot
api.applications.create(file) renvoie { id, name, lang, ram }Renvoie { id, name, ram, cpu, language, description?, subdomain? }
app.network.dns() renvoie { ownership, ssl }Renvoie un tableau d’enregistrements DNS

Suppression de client.users

Contrairement à la migration v3 vers v4, il n’y a cette fois aucun proxy déprécié. client.users n’existe plus, l’appeler lève une exception.
// v4
await api.users.get();

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

Suppression des backups

app.backup et app.backups ont disparu, ainsi que l’export Backup. Les snapshots sont désormais le seul chemin pris en charge, tant pour les applications que pour les bases de données.
// v4
await app.backups.create();
await app.backup.list();

// v5
await app.snapshots.create();
await app.snapshots.list();
Utilisez la classe Snapshot pour les snapshots d’application et DatabaseSnapshot pour les snapshots de base de données.

Forme du retour de api.applications.create(file)

L’application créée renvoie désormais des données de langage et de ressources plus riches, au lieu de la paire plate 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 est désormais un objet, ex. { name: "javascript", version: "22" }
// cpu est le nombre de parts CPU allouées (number)
// description et subdomain ne sont présents que s'ils sont définis dans squarecloud.config

Forme de app.network.dns()

dns() renvoie désormais un tableau d’enregistrements DNS au lieu d’un objet unique { 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 }]
Les enregistrements txt couvrent à la fois la propriété du domaine et la validation SSL ; l’enregistrement cname est l’enregistrement de trafic. status reflète l’état de validation (pending, pending_validation, active, etc.).

Autres changements

  • ApplicationLanguage inclut désormais ruby, aux côtés de javascript, typescript, python, java, elixir, go, rust, php, dotnet et static.
  • Les codes d’erreur ont été standardisés. Les nouveaux noms sont exportés via APIErrorCode ; les anciens noms restent disponibles en tant qu’alias de type dépréciés. Consultez les codes d’erreur pour le tableau complet de renommage.