Pular para o conteúdo principal

Requisitos

Inalterado em relação à v4: Node.js 20.0.0 ou superior, tanto ESM quanto CJS.

Resumo das breaking changes

v4.xv5.x
client.users.* (proxy depreciado)Removido. Use client.user.*
app.backup / app.backupsRemovido. Use app.snapshots
Export BackupRemovido. Use Snapshot / DatabaseSnapshot
api.applications.create(file) retorna { id, name, lang, ram }Retorna { id, name, ram, cpu, language, description?, subdomain? }
app.network.dns() retorna { ownership, ssl }Retorna um array de registros DNS

client.users removido

Diferente da migração de v3 para v4, desta vez não há proxy depreciado. client.users não existe mais, chamá-lo lança um erro.
// v4
await api.users.get();

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

Backups removidos

app.backup e app.backups foram removidos, junto com o export Backup. Snapshots são o único caminho suportado tanto para aplicações quanto para bancos de dados.
// v4
await app.backups.create();
await app.backup.list();

// v5
await app.snapshots.create();
await app.snapshots.list();
Use a classe Snapshot para snapshots de aplicação e DatabaseSnapshot para snapshots de banco de dados.

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

A aplicação criada agora retorna dados mais ricos de linguagem e recursos, em vez do 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 agora é um objeto, ex.: { name: "javascript", version: "22" }
// cpu é a CPU alocada (shares, number)
// description e subdomain só estão presentes quando definidos no squarecloud.config

Formato de app.network.dns()

dns() agora retorna um array de registros DNS em vez de um ú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 }]
Os registros txt cobrem tanto a propriedade do domínio quanto a validação SSL; o registro cname é o registro de tráfego. status reflete o estado de validação (pending, pending_validation, active, e assim por diante).

Outras mudanças

  • ApplicationLanguage agora inclui ruby, além de javascript, typescript, python, java, elixir, go, rust, php, dotnet e static.
  • Os códigos de erro foram padronizados. Os novos nomes são exportados através de APIErrorCode; os nomes antigos permanecem disponíveis como aliases de tipo depreciados. Veja códigos de erro para a tabela completa de renomeações.