> ## 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 vers la v5

> Ce qui a changé entre @squarecloud/api v4 et v5 — ruptures de compatibilité et les correctifs minimaux nécessaires pour migrer.

## 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.x                                                              | v5.x                                                                 |
| ----------------------------------------------------------------- | -------------------------------------------------------------------- |
| `client.users.*` (proxy déprécié)                                 | Supprimé. Utilisez `client.user.*`                                   |
| `app.backup` / `app.backups`                                      | Supprimé. Utilisez `app.snapshots`                                   |
| Export `Backup`                                                   | Supprimé. 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.

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

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

```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 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 }`.

```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 }]
```

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](/fr/sdks/js/client) pour le tableau complet de renommage.
