> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Migration zu v5

> Was sich zwischen @squarecloud/api v4 und v5 geändert hat — Breaking Changes und die kleinsten Patches, die für ein Upgrade nötig sind.

## Anforderungen

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

## Zusammenfassung der Breaking Changes

| v4.x                                                              | v5.x                                                                 |
| ----------------------------------------------------------------- | -------------------------------------------------------------------- |
| `client.users.*` (veralteter Proxy)                               | Entfernt. Verwenden Sie `client.user.*`                              |
| `app.backup` / `app.backups`                                      | Entfernt. Verwenden Sie `app.snapshots`                              |
| `Backup`-Export                                                   | Entfernt. 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.

```typescript theme={null}
// 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.

```typescript theme={null}
// 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`.

```typescript theme={null}
// 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 }`.

```typescript theme={null}
// 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](/de/sdks/js/client) für die vollständige Umbenennungstabelle.
