Saltar al contenido principal

Requisitos

Sin cambios respecto a v4: Node.js 20.0.0 o superior, tanto ESM como CJS.

Resumen de cambios incompatibles

v4.xv5.x
client.users.* (proxy obsoleto)Eliminado. Usa client.user.*
app.backup / app.backupsEliminado. Usa app.snapshots
Export BackupEliminado. Usa Snapshot / DatabaseSnapshot
api.applications.create(file) devuelve { id, name, lang, ram }Devuelve { id, name, ram, cpu, language, description?, subdomain? }
app.network.dns() devuelve { ownership, ssl }Devuelve un array de registros DNS

client.users eliminado

A diferencia de la migración de v3 a v4, esta vez no hay un proxy obsoleto. client.users ya no existe; llamarlo lanza un error.
// v4
await api.users.get();

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

Backups eliminados

app.backup y app.backups desaparecieron, junto con el export Backup. Los snapshots son la única ruta soportada tanto para aplicaciones como para bases de datos.
// v4
await app.backups.create();
await app.backup.list();

// v5
await app.snapshots.create();
await app.snapshots.list();
Usa la clase Snapshot para snapshots de aplicaciones y DatabaseSnapshot para snapshots de bases de datos.

Forma de retorno de api.applications.create(file)

La aplicación creada ahora devuelve datos más ricos de lenguaje y recursos en lugar del par plano 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 ahora es un objeto, e.g. { name: "javascript", version: "22" }
// cpu son los shares de CPU asignados (number)
// description y subdomain solo están presentes cuando se definen en squarecloud.config

Forma de app.network.dns()

dns() ahora devuelve un array de registros DNS en lugar de un único objeto { 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 }]
Los registros txt cubren tanto la propiedad como la validación SSL; el registro cname es el registro de tráfico. status refleja el estado de validación (pending, pending_validation, active, etc.).

Otros cambios

  • ApplicationLanguage ahora incluye ruby, junto a javascript, typescript, python, java, elixir, go, rust, php, dotnet y static.
  • Los códigos de error se estandarizaron. Los nombres nuevos se exportan a través de APIErrorCode; los nombres antiguos siguen disponibles como alias de tipo obsoletos. Consulta códigos de error para la tabla completa de renombramientos.