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

# Commit & Backup

> Substituindo código de uma app existente e gerando backups

## Commit — substituir o código

Envia um novo `.zip` para substituir o código de uma aplicação **já existente**, reconstruindo-a a partir dele.

```ts theme={null}
commit(appId: string, zipFile: FileInput, fileName?: string): Promise<unknown>
```

```ts theme={null}
import { readFile } from 'node:fs/promises';

const zipBuffer = await readFile('./meu-app.zip');
await sonder.apps.commit(appId, zipBuffer, 'app.zip');
```

**appId** `string` *required*

UUID da aplicação a ser atualizada.

**zipFile** `FileInput` *required*

Novo conteúdo do `.zip`. Aceita `Buffer`, `Blob`, `ArrayBuffer` ou `Uint8Array`.

**fileName** `string` (default: app.zip)

Nome do arquivo enviado no `multipart/form-data`.

> [!NOTE]
>
> Diferente de `upload()`, `commit()` não recebe `options` — ele reaproveita a configuração já existente da aplicação (linguagem, comando, memória, domínio) e só troca o código.

## Backup — gerar e baixar um `.zip`

```ts theme={null}
backup(appId: string): Promise<Buffer>
```

```ts theme={null}
import { writeFile } from 'node:fs/promises';

const zipBuffer = await sonder.apps.backup(appId);
await writeFile('./backup.zip', zipBuffer);
```

> [!NOTE]
>
> `backup()` já retorna um `Buffer` pronto para uso — o SDK baixa a `Response` bruta e converte internamente. O backup é removido do servidor logo após o download ser concluído.

## Referência de métodos

| Método | Rota | Descrição |
| - | - | - |
| `apps.commit(appId, zip, fileName?)` | `POST /v1/apps/:id/commit` | Substitui o código atual por um novo `.zip`. |
| `apps.backup(appId)` | `POST /v1/apps/:id/backup` | Gera e baixa um backup `.zip` (retorna `Buffer`). |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.