Feature: download a snapshot and restore it into an installation (Kickstart-style transfer) #237

Open
opened 2026-07-06 03:40:17 +00:00 by jmiller · 1 comment
Owner

Request

Add the ability to download a snapshot as a portable file and restore it into an installation — similar to how Akeeba's JPA/JPS + Kickstart (or a JPXML-style transfer) works: take a snapshot, download it, drop it on another server (or the same one), and run a restore that rebuilds the site/content from it.

Existing building blocks to reuse

  • #__mokosuitebackup_snapshots table + snapshot subsystem (content snapshots of articles/categories/modules with tags, custom fields, workflow associations).
  • CLI: mokosuitebackup:snapshot create|restore|list|delete.
  • REST API: create/list/restore/delete/download snapshots.
  • MokoRestore standalone (restore.php) — already does full-site archive restore via a browser wizard (the "Kickstart-equivalent" for full backups).

Scope to design

  1. Download format — a single portable file (e.g. a .msbsnap = zip of the snapshot JSON + manifest + any media), self-describing with a version + checksum.
  2. Restore-to-installation flow — a wizard (browser, like MokoRestore) that accepts an uploaded snapshot file and restores it into the current install: conflict resolution (replace/merge/skip), target category/section mapping, media handling.
  3. Relationship to MokoRestore — decide whether this is a mode of MokoRestore (content-only) or a separate "Snapshot Transfer" wizard. Content snapshots are lighter than full-site archives, so a dedicated lightweight importer likely makes sense.
  4. Cross-site transfer — importing a snapshot taken on site A into site B (differing IDs, prefixes, base URLs).

Open questions

  • Should a downloaded snapshot be encryptable (they can contain user/content data)?
  • Portable across major Joomla versions, or same-major only?
  • Selective restore (pick which articles/categories) on import, mirroring the existing snapshot restore modes (Replace / Merge / Selective)?

Design pass needed before implementation. Not blocking the current full-screen backup-screen work.

https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i

## Request Add the ability to **download a snapshot as a portable file** and **restore it into an installation** — similar to how Akeeba's JPA/JPS + Kickstart (or a JPXML-style transfer) works: take a snapshot, download it, drop it on another server (or the same one), and run a restore that rebuilds the site/content from it. ## Existing building blocks to reuse - `#__mokosuitebackup_snapshots` table + snapshot subsystem (content snapshots of articles/categories/modules with tags, custom fields, workflow associations). - CLI: `mokosuitebackup:snapshot create|restore|list|delete`. - REST API: create/list/restore/delete/**download** snapshots. - **MokoRestore** standalone (`restore.php`) — already does full-site archive restore via a browser wizard (the "Kickstart-equivalent" for full backups). ## Scope to design 1. **Download format** — a single portable file (e.g. a `.msbsnap` = zip of the snapshot JSON + manifest + any media), self-describing with a version + checksum. 2. **Restore-to-installation flow** — a wizard (browser, like MokoRestore) that accepts an uploaded snapshot file and restores it into the current install: conflict resolution (replace/merge/skip), target category/section mapping, media handling. 3. **Relationship to MokoRestore** — decide whether this is a mode of MokoRestore (content-only) or a separate "Snapshot Transfer" wizard. Content snapshots are lighter than full-site archives, so a dedicated lightweight importer likely makes sense. 4. **Cross-site transfer** — importing a snapshot taken on site A into site B (differing IDs, prefixes, base URLs). ## Open questions - Should a downloaded snapshot be encryptable (they can contain user/content data)? - Portable across major Joomla versions, or same-major only? - Selective restore (pick which articles/categories) on import, mirroring the existing snapshot restore modes (Replace / Merge / Selective)? Design pass needed before implementation. Not blocking the current full-screen backup-screen work. https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Author
Owner

Branch created: feature/237-feature-download-a-snapshot-and-restore-

git fetch origin
git checkout feature/237-feature-download-a-snapshot-and-restore-
Branch created: [`feature/237-feature-download-a-snapshot-and-restore-`](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/src/branch/feature/237-feature-download-a-snapshot-and-restore-) ```bash git fetch origin git checkout feature/237-feature-download-a-snapshot-and-restore- ```
Sign in to join this conversation.