Saltar al contenido principal
Último parche cubierto aquí: v4.0.1 (publicado el 2026-05-30).

Requisitos

  • Node.js 20.0.0 o superior (v3 admitía Node 18)

Resumen de cambios incompatibles

v3.xv4.x
client.users.*client.user.*
app.backup / app.backupsapp.snapshots
Export BackupExport Snapshot
app.deploys.list() devuelve un Deployment[] planoDevuelve Deployment[][] (usa .flat() para la forma anterior)
Deployment.id con formato `git-${string}`SHA-1 de commit simple (40 caracteres hex)
app.network.dns() devuelve un arrayDevuelve { ownership, ssl }
app.network.analytics() no recibe argumentosRequiere { start, end } (string ISO o Date)
app.network.purgeCache(paths?)purgeCache() — argumento eliminado en v4.0.1, siempre purga toda la caché
app.custom === undefinedapp.custom === null
workspace.members / .applications contenían arrays de datosRenombrados a workspace.memberList / .applicationList; los nombres originales son ahora módulos
app.commit(file, name, restart)app.commit(file, name) — tercer argumento eliminado
app.files.create(content, fullPath)app.files.create(content, fileName, path)

Renombramientos

client.usersclient.user

// v3
await api.users.get();

// v4
await api.user.get();
api.users todavía se exporta como un getter obsoleto que redirige a api.user, pero imprime una advertencia en tiempo de ejecución.

Backups → Snapshots

// v3
await app.backups.create();
await app.backup.list();

// v4
await app.snapshots.create();
await app.snapshots.list();
El export Backup es ahora un alias obsoleto de Snapshot.

Application

Application.custom

app.custom es ahora null (era undefined en v3) cuando no hay ningún dominio personalizado vinculado.

app.commit(file, fileName, restart)

El tercer argumento restart ha sido eliminado. Reinicia manualmente después de hacer commit:
// v3
await app.commit(buffer, "index.js", true);

// v4
await app.commit(buffer, "index.js");
await app.restart();

app.files.create(content, path)

La firma es ahora create(content, fileName, path = "/"). Migración:
// v3 — ruta combinada única
await app.files.create(content, "./folder/test_file.txt");

// v4 — nombre de archivo y directorio separados
await app.files.create(content, "test_file.txt", "/folder");

Deploys

Forma de app.deploys.list()

// v3
const events: Deployment[] = await app.deploys.list();

// v4
const timelines: Deployment[][] = await app.deploys.list();
const events = timelines.flat(); // misma forma que en v3

Deployment.id

Ahora es un SHA-1 de commit simple (40 caracteres hex) en lugar de una cadena con formato `git-…`.

Network

app.network.dns()

// v3
const records: DnsRecord[] = await app.network.dns();

// v4
const { ownership, ssl } = await app.network.dns();

app.network.analytics()

// v3
const data = await app.network.analytics();

// v4 — { start, end } ahora es obligatorio (string ISO o Date)
const data = await app.network.analytics({
    start: new Date(Date.now() - 24 * 60 * 60 * 1000),
    end:   new Date(),
});

app.network.purgeCache()

// v3 y v4.0.0
await app.network.purgeCache(["/static/old.js"]);

// v4.0.1 y posteriores — purga selectiva eliminada
await app.network.purgeCache();

Workspaces

// v3
workspace.members;      // datos de miembros sin procesar
workspace.applications; // datos de aplicaciones sin procesar

// v4
workspace.memberList;        // datos de miembros sin procesar
workspace.applicationList;   // datos de aplicaciones sin procesar
workspace.members.add(...);  // módulo de miembros
workspace.applications.add(...); // módulo de aplicaciones

Novedades en v4

Más allá de los renombramientos y los cambios de firma anteriores, v4 añade un conjunto sustancial de funciones:
  • Databases — ciclo de vida completo, credenciales, snapshots y métricas (Databases)
  • Workspaces — colaboración en equipo con códigos de invitación y roles (Workspaces)
  • Variables de entorno — listar / definir / reemplazar / eliminar (Variables de entorno)
  • Métricas de aplicación — muestras de CPU/RAM/red de 24 h (Gestión de aplicaciones)
  • Stream SSE en tiempo realapp.realtime() (Realtime)
  • Analíticas de edge — analíticas, errores, logs y percentiles de latencia (Network)
  • Integración con GitHub Appapp.deploys.linkGithubApp({ ... }) (Deploys)
  • Restauración de snapshotsapp.snapshots.restore({ snapshotId, versionId }) y db.snapshots.restore(snapshotId, versionId)
  • Endpoints status-allapi.applications.statusAll(), api.databases.statusAll()
  • Estado del servicioapi.service.status()
  • Snapshots por usuarioapi.user.snapshots(scope)
  • Nuevos campos de UserUser.locale, User.createdAt, User.databases
  • Nuevos campos de BaseApplicationdomain, custom, createdAt
  • SquareCloudAPIError.code — público para el manejo de errores basado en switch