メインコンテンツへスキップ
Snapshot は v3 の backup / backups API を置き換えるものです。app.backupapp.backups は v4 でも引き続きエクスポートされていますが、非推奨の警告を表示して app.snapshots へプロキシします。コードを新しい名前を使うように更新してください。
app.snapshotsSnapshotsModule を公開します。
const app = await api.applications.fetch("abc123def456abc123def456");
app.snapshots; // SnapshotsModule

snapshot の一覧表示

app.snapshots.list()Snapshot インスタンスの配列を返します。
const snapshots = await app.snapshots.list();

for (const snap of snapshots) {
    console.log(snap.url);          // signed download URL (valid for 30 days)
    console.log(snap.size);         // bytes
    console.log(snap.modifiedAt);   // Date
    console.log(snap.key);          // signed query string
}
各 snapshot は直接ダウンロードできます。
const buffer = await snapshots[0].download();

新しい snapshot の作成

app.snapshots.create() は新しい snapshot を生成し、署名付き URL とキーを返します。
const fresh = await app.snapshots.create();
console.log(fresh.url); // valid for 30 days
console.log(fresh.key);

ワンステップでのダウンロード

app.snapshots.download() は snapshot を作成し、Buffer としてダウンロードします。
import { writeFile } from "node:fs/promises";

const buffer = await app.snapshots.download();
await writeFile("./backup.zip", buffer);

snapshot からの復元

app.snapshots.restore({ snapshotId, versionId }) は、アプリケーションを以前の snapshot バージョンに巻き戻します。
await app.snapshots.restore({
    snapshotId: "00000000-0000-4000-8000-000000000000",
    versionId: "abc123def4567890",
});
フィールド説明
snapshotIdstringsnapshot 識別子 (UUID v4)
versionIdstringlist() が返すバージョン識別子

アカウント全体の snapshot の一覧表示

api.user.snapshots(scope) は、すべてのアプリケーションまたはデータベースにわたって所有しているすべての snapshot を返します。
const appSnapshots = await api.user.snapshots("applications");
const dbSnapshots  = await api.user.snapshots("databases");
api.user.snapshots() には有効な有料サブスクリプションが必要です。