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 thedisembark_pull_sslverifyfilter. - 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.phpprotected from the file editor and restores. - Quote/comment-aware SQL statement splitting.
Pairs with Disembark CLI v2.8.0 (disembark restore, --rollback).