Skip to content

v2.8.0

Latest

Choose a tag to compare

@austinginder austinginder released this 17 Jul 22:54
· 1 commit to main since this release

Disembark 2.8.0 adds restore and migration: bring a backup into any site running Disembark, or migrate one live site directly into another — with a rollback point saved before anything is touched.

Added

  • Restore a Backup (dashboard): restore from an uploaded backup .zip — staged chunked upload, rollback point first, file deploy, database import, URL rewrite, and one-click rollback.
  • Restore from a live site (dashboard): the destination pulls files and database from the source's REST API server-to-server. Paste the source's disembark connect … line into either field to fill both.
  • Restore / Import REST API: preflight, rollback snapshot, chunked upload with server-side extraction, staged database import, serialize-aware search/replace, prefix remap, finalize, and rollback.
  • Cross-prefix migration: table names are remapped during import and prefix-scoped data (usermeta capabilities, user_roles) fixed afterward, so migrated users keep their roles.
  • Serialize-aware search/replace: re-serializes PHP serialized values so length prefixes stay valid through a URL change.

Improved

  • Endpoints authorize administrators first (application password or cookie + nonce) with per-site token fallback. The token is preserved across a database import so a restore stays authenticated end-to-end.
  • The restore page suppresses the "session expired" modal (the import replaces the users table) and finishes with a clean log-in prompt.

Security

  • Pull channel verifies TLS (behavior change): live-site restores verify the source certificate and refuse internal/non-http(s) URLs by default. Opt out for self-signed/local sources with define( 'DISEMBARK_DEV_MODE', true ) or the disembark_pull_sslverify filter.
  • SQL transforms are statement-anchored — post content containing table names or SQL keywords can never be corrupted by a restore.
  • Token disclosure locked down (dashboard shortcode renders only for admins; token-auth REST bypass scoped to Disembark routes).
  • Import paths validated against traversal, zip-slip-safe extraction in both ZipArchive and PclZip paths, wp-config.php protected from the file editor and restores.
  • Quote/comment-aware SQL statement splitting.

Pairs with Disembark CLI v2.8.0 (disembark restore, --rollback).