convex-backup

Siapkan cadangan Convex dan jalankan DRILL pemulihan yang membuktikan pemulihan — snapshot, pulihkan ke pratinjau sekali pakai, pastikan data kembali — plus jadwal yang sesuai dengan RPO Anda dan runbook pemulihan yang terkontrol.

npx skills add https://github.com/get-convex/agent-skills --skill convex-backup

Back up — and prove the restore works

Every backup story has two halves and most people only do the first: taking the backup, and proving you can get it back. This capability does both — it sets up regular snapshot exports and then runs a RESTORE DRILL that actually recovers the data into a disposable preview and asserts it's intact. The drill reuses migrate-rehearse's exact primitives (snapshot export → preview deploy → snapshot import) pointed at recovery instead of a forward change, so the safety net is tested, not assumed.

Workflow

  1. GUARD: deploy-guard — classify + announce the deployment being backed up (reading/exporting is safe; the drill's restore target is a throwaway preview, never prod).
  2. TAKE the snapshot: npx convex export --path backup-<date>.zip (add --include-file-storage if the app stores files). This is the backup artifact; treat it as sensitive real data.
  3. SCHEDULE it (the ongoing half): recommend a cadence matched to how fast the data changes and how much loss is tolerable (RPO) — e.g. a daily npx convex export via CI/cron to durable storage the user controls, with a retention window. Convex's own platform backups exist; this adds a user-owned, portable copy.
  4. RESTORE DRILL (the half almost nobody does — this is the point): (a) PRECONDITION: a Preview Deploy Key as CONVEX_DEPLOY_KEY (same requirement as migrate-rehearse; a paid-tier feature). If unavailable, drill against a fresh personal dev deployment instead and say so. (b) create a throwaway preview from the CURRENT code: npx convex deploy --preview-create restore-drill-<date>. (c) restore the snapshot into it: npx convex import backup-<date>.zip --deployment restore-drill-<date> --replace (import targets a deployment by NAME with --deployment; there is no --preview-name on import). (d) ASSERT recovery: read the restored data back (MCP tables for row counts, data/runOneoffQuery for spot-checks) and confirm the critical tables came back with the expected row counts and a sample of real records — a restore that 'succeeds' but lands 0 rows is a FAILED drill. Compare against the source's counts where available.
  5. REPORT the drill result plainly: what was backed up, that the restore was ACTUALLY performed and verified (or that it FAILED and why — a failed drill is the most valuable output, found before a real disaster), the recommended schedule + retention, and the recovery runbook (the exact commands to restore to prod: npx convex import backup.zip --replace --prod, gated by deploy-guard, with the post-snapshot-write-loss caveat stated).
  6. HYGIENE: delete local snapshot copies when done (real data); the drill preview auto-expires. Never commit a backup file.

Rules

  • A backup you have never restored is a hope, not a backup — always run (or offer to run) the restore DRILL, don't just take the export.
  • The drill restores into a THROWAWAY preview (or dev), never prod; the restore target and the backup source are different deployments.
  • Assert recovery, don't assume it: a restore that lands 0 rows is a FAILED drill — check critical-table row counts + a real-record sample against the source.
  • A FAILED drill is the most valuable output — surface it loudly; that's the whole reason to drill before a real disaster.
  • Schedule matched to RPO (how much data loss is tolerable); keep a user-owned portable copy alongside Convex's platform backups, with a retention window.
  • Snapshots are sensitive real data: delete local copies when done, never commit them; the restore-to-prod runbook is deploy-guard-gated with the post-snapshot-write-loss caveat stated.
  • Shares migrate-rehearse's snapshot+preview mechanics but aims them at RECOVERY, not a forward change — a forward schema change is migrate-rehearse.

Lebih banyak skill dari get-convex

convex-performance-audit
get-convex
Mengaudit performa Convex untuk pembacaan, langganan, kontensi penulisan, dan batas fungsi. Gunakan untuk fitur lambat, temuan wawasan, konflik OCC, atau amplifikasi pembacaan.
developmentdatabasedata-analysis
convex
get-convex
Mengarahkan permintaan Convex umum ke skill proyek yang tepat. Gunakan saat pengguna bertanya skill Convex mana yang harus digunakan atau memberikan tugas aplikasi Convex yang tidak dispesifikasikan secara jelas.
developmentdatabase
convex-setup-auth
get-convex
Menyiapkan auth Convex, pemetaan identitas, dan kontrol akses. Gunakan untuk login, penyedia auth, tabel pengguna, fungsi yang dilindungi, atau peran dalam aplikasi Convex.
developmentdatabaseapi
convex-quickstart
get-convex
Membuat atau menambahkan Convex ke aplikasi. Gunakan untuk proyek Convex baru, npm create convex@latest, pengaturan frontend, variabel lingkungan, atau menjalankan npx convex dev pertama kali.
developmentdatabase
convex-migration-helper
get-convex
Merencanakan migrasi skema dan data Convex dengan widen-migrate-narrow dan @convex-dev/migrations. Gunakan untuk perubahan skema yang bersifat breaking, backfill, pembentukan ulang tabel, atau peluncuran tanpa downtime.
developmentdatabase
convex-create-component
get-convex
Membangun komponen Convex yang dapat digunakan kembali dengan tabel terisolasi dan API yang menghadap aplikasi. Gunakan untuk komponen baru, modul backend yang dapat digunakan kembali, integrasi, atau pekerjaan batas komponen.
developmentdatabase
convex-migrate
get-convex
Migrasikan skema + isi ulang data pada aplikasi Convex yang diterapkan menggunakan @convex-dev/migrations.
developmentdatabase
convex-optimize
get-convex
Audit dan optimalkan aplikasi Convex yang ada: keamanan, skala, peningkatan, observabilitas.