Backup
Zip berisi konten Anda sebagai berkas data, tanpa kredensial dan field pribadi.
Baca 4 menit
Apa itu backup
Backup adalah satu berkas zip berisi konten satu brand. Backup dibuat untuk menyimpan salinan dan memindahkan data, sehingga Anda bisa menyimpan salinan di luar ATLAS dan mengunduhnya kapan pun perlu.
Semua yang ada di halaman ini untuk admin. Semua panggilan berada di bawah https://api.atlascms.id/v1/manage dan memerlukan sesi yang sudah masuk serta header X-Brand-Id.
Tidak ada tombol restore
ATLAS tidak memulihkan brand dari backup brand lewat API maupun dasbor. Arsip ini adalah salinan data yang bisa dibaca, bukan rollback sekali klik. Untuk membatalkan kesalahan di konten, gunakan revisi dan rollback pada entri. Untuk memulihkan seluruh instalasi, hubungi orang yang mengoperasikan server ATLAS Anda, yang memegang backup database tingkat platform.
Isi arsip
| Berkas | Isi |
|---|---|
manifest.json | schema_version, atlas_version, brand, created_at, target, counts per tabel, exclusions, dan media_count. |
{table}.jsonl | Satu berkas per tabel milik brand (entri, revisi, term, menu, pengaturan, formulir, dan seterusnya), satu objek JSON per baris. Baris yang dihapus lunak disertakan dengan deleted_at. |
entry_term.jsonl | Hubungan antara entri dan term, hanya untuk entri brand ini. |
media.jsonl | Daftar berkas media Anda. Berkasnya sendiri tidak ada di dalam zip. |
Berkas media tetap berada di penyimpanan media Anda. Arsip mendaftarkannya agar Anda tahu mana yang milik brand.
Yang tidak disertakan
Backup tidak pernah memuat secret atau data pribadi:
- Apa pun yang disimpan terenkripsi atau ter-hash, seperti secret integrasi, hash token API, secret webhook, dan hash token undangan.
- Username, host, dan password koneksi email.
- Field pribadi lead: field yang dikirim, nilai UTM, id klik, catatan, halaman sumber, referrer, hash IP, user agent, error, dan penerima tugas.
manifest.json mendaftar setiap kolom yang dikecualikan per tabel, sehingga Anda bisa memeriksa persis apa yang tidak ada.
Memulai backup
/v1/manage/backupsMengantrekan backup dan menjawab 202 beserta prosesnya. Anda bisa memulai hingga 10 per menit. Selama backup lain masih pending atau berjalan (dan berusia kurang dari 2 jam), jawabannya 409 dengan "code": "backup_in_progress".
curl -s -X POST "https://api.atlascms.id/v1/manage/backups" \
-H "X-Brand-Id: $BRAND_ID" --cookie "$SESSION"{ "data": { "id": "01m5300000000000000000000b", "kind": "backup", "status": "pending",
"file_name": null, "file_size": null, "download": null, "created_at": "2026-10-21T14:42:20+00:00" } }status berpindah dari pending ke running, lalu completed atau failed. Progres disiarkan di brand.{id}.tools. Proses yang gagal membawa error berisi alasan singkat.
GET /v1/manage/backups menampilkan daftar proses, 20 per halaman, terbaru lebih dulu. GET /v1/manage/backups/{toolRun} menampilkan satu proses. Id proses milik brand lain dijawab 404.
Mengunduh
Proses yang selesai membawa objek download berisi URL bertanda tangan dan expires_at-nya. Tautan berlaku 5 menit, dan setiap pembacaan proses menerbitkan tautan baru.
curl -s "https://api.atlascms.id/v1/manage/backups/$RUN_ID" \
-H "X-Brand-Id: $BRAND_ID" --cookie "$SESSION" \
| jq -r '.data.download.url' \
| xargs curl -s -o backup.zipEndpoint unduhannya adalah GET /v1/backups/{id}/download. Tautan tanpa tanda tangan atau yang kedaluwarsa dijawab 403, brand yang ditangguhkan dijawab 403, dan backup yang sudah tidak tersedia dijawab 410. Unduhan dibatasi 30 per menit dan setiap unduhan dicatat di log audit.
Hanya tautannya yang kedaluwarsa. Arsip tetap ada sampai retensi atau Anda menghapusnya dengan DELETE /v1/manage/backups/{toolRun} (204, yang juga menghapus berkasnya).
Pengaturan
GET /v1/manage/backups/settings dan PUT /v1/manage/backups/settings membaca dan mengubah jadwal, retensi, dan tujuan. Sebelum penyimpanan pertama Anda mendapat nilai bawaan: jadwal off, 02:00, simpan 5 terakhir, simpan 30 hari, target shared.
| Pengaturan | Keterangan |
|---|---|
schedule | off, daily, atau weekly. Mingguan berjalan pada hari Senin. |
run_at | HH:MM (00:00 sampai 23:59) dalam zona waktu brand. Proses dimulai pada atau setelah jam ini. |
keep_last | Simpan N backup selesai terbaru (1 sampai 100). |
keep_days | Hapus backup yang lebih tua dari N hari (1 sampai 3650). |
target | shared, brand_storage, atau s3. |
endpoint, region, bucket, prefix, path_style | Untuk s3. Endpoint harus alamat HTTPS publik di port 443. Prefix mengizinkan huruf, angka, ., _, -, dan /. |
access_key_id, secret_access_key | Untuk s3. Hanya bisa ditulis. |
{
"schedule": "daily",
"run_at": "02:30",
"keep_last": 7,
"keep_days": 30,
"target": "s3",
"endpoint": "https://s3.example.com",
"region": "auto",
"bucket": "my-atlas-backups",
"prefix": "atlas",
"path_style": true,
"access_key_id": "AKIA...",
"secret_access_key": "..."
}Responsnya mengulang pengaturan dengan penanda has_access_key dan has_secret. Kuncinya sendiri tidak pernah dikembalikan.
Ke mana berkas disimpan
| Target | Disimpan di |
|---|---|
shared | Penyimpanan media platform, di bawah tools/{brand_id}/backups/. Ini bawaan. |
brand_storage | Konfigurasi penyimpanan media milik brand. Proses gagal dengan backup_failed bila brand belum punya. |
s3 | Bucket milik Anda sendiri, di {prefix}/tools/{brand_id}/backups/{run}.zip. Menyimpan salinan di bucket yang Anda kendalikan adalah pilihan paling aman. |
Setiap proses mengingat ke mana ia ditulis. Jika Anda mengubah target atau bucket kemudian, backup lama tetap bisa diunduh dan dihapus dari tempatnya.
Uji sebelum diandalkan
POST /v1/manage/backups/settings/test (6 per menit) memeriksa tujuan tanpa menyimpan. Kirim field yang sama dengan pengaturan, atau kosongkan untuk menguji yang tersimpan. Jawabannya { "data": { "ok", "reason", "at" } }. Bila ok bernilai false, reason adalah salah satu dari credentials_missing, bucket_missing, storage_not_configured, endpoint_refused, auth_failed, bucket_not_found, atau unreachable.
Jadwal dan retensi
Penjadwal memeriksa setiap menit. Untuk tiap brand, ia memulai paling banyak satu backup per jendela:
dailyberjalan sekali sehari setelahrun_at,weeklysekali seminggu setelahrun_athari Senin.- Brand yang punya backup pending, berjalan, selesai, atau gagal di jendela saat ini dilewati.
- Proses yang macet lebih dari 2 jam ditandai
faileddengan alasanstale. Proses gagal dicoba lagi paling cepat satu jam kemudian, hingga 3 kali gagal per jendela. - Retensi berjalan setelah setiap backup berhasil dan sekali sehari.
keep_daysmenghapus proses selesai dan gagal yang lebih tua dari batas,keep_lastmenyimpan proses selesai terbaru. Proses pending dan berjalan tidak pernah dihapus.
Ukuran dan waktu
Backup mengalirkan tiap tabel lewat berkas sementara dan mengunggah zip sebagai aliran, sehingga pemakaian memori tetap datar bahkan untuk brand besar. Proses masuk ke antrean panjang imports dengan batas waktu satu jam. Karena berkas media tidak ada di dalam zip, ukurannya mengikuti konten teks, revisi, dan pengaturan, bukan pustaka gambar Anda. Brand besar dengan revisi bertahun-tahun tetap bisa memerlukan beberapa menit, jadi tunggu sampai completed sebelum mengunduh.
Keamanan
- Hanya admin yang bisa memulai, melihat daftar, mengunduh, mengubah pengaturan, atau menghapus. Editor dan publisher mendapat 403.
- Tautan unduhan bertanda tangan dan berlaku 5 menit.
- Kredensial S3 dienkripsi, hanya bisa ditulis, dan tidak pernah muncul di respons, log, atau baris audit. Baris audit (
backup.started,backup.downloaded,backup.deleted,backup.settings.updated) memuat id dan nama pengaturan, tidak pernah nilainya. - Panggilan keluar ke bucket Anda memakai penjaga yang sama dengan penyimpanan media: HTTPS, port 443, hanya alamat publik.
- Perlakukan zip sebagai data sensitif. Isinya seluruh konten Anda dan alamat email undangan yang masih tertunda.
Apakah halaman ini membantu?