CloudScale Backup & Restore

Changelog

3.2.592

  • FIX: Fatal-error-handler drop-in now written via the WordPress Filesystem API instead of raw copy() (resolves Plugin Check PluginDirectoryWrite)
  • FIX: Crash Recovery config and notification lock moved from the wp-content root into uploads/cloudscale-backup/ per WordPress.org guidelines; old files removed on upgrade
  • FIX: Removed wp_prime_option_caches() (WordPress 6.4+) so the plugin stays compatible with its declared minimum of WordPress 6.0
  • CHANGE: Drop-in notifications now use the non-blocking wp_remote_post() HTTP API instead of cURL
  • CHANGE: Dev-only crash-test harness and clone module excluded from the release build; removed duplicate Plugin URI header

3.2.421

  • FIX: Remove four dead wp_ajax_csbr_do_sync_job_* handlers that called undefined function csbr_do_async_sync(), legacy loopback architecture replaced by register_shutdown_function() in v3.2.257
  • FIX: Automatic Crash Recovery Explain modal and How It Works list now correctly document all notification channels (email, Twilio SMS, ntfy push) instead of only Twilio
  • ADD: DocBlocks added to csbr_set_job(), csbr_get_job(), csbr_delete_job(), csbr_find_rclone(), csbr_find_aws(), csbr_list_tables_in_dump(), csbr_list_backups()
  • CLEANUP: Remove unused csbr_verify_nonce() helper (all handlers use check_ajax_referer() directly)

3.2.257

  • FIX: PCP compliance: cs_admin_page() now independently checks current_user_can(‘manage_options’)
  • FIX: PCP compliance: wp_unslash() added to $_POST[‘cs_action’] and $_POST[‘schedule_enabled’]; phpcs:ignore annotations added
  • FIX: PCP compliance: data-free-bytes attribute annotated with phpcs:ignore EscapeOutput.OutputNotEscaped
  • FIX: uninstall.php: Dropbox options now cleaned up on plugin delete
  • FIX: Dropbox history pane infinite reload loop resolved
  • FIX: AMI Save/Create buttons now show feedback message correctly
  • UX: Copy buttons on all Explain modal code blocks; Dropbox setup wizard guide; italic placeholders

3.2.1

  • Renamed internal constants with CS_BACKUP_ prefix to avoid collisions with other plugins
  • Replaced @unlink(), @copy(), @rmdir() with wp_delete_file(), copy(), rmdir() per WordPress coding standards

3.2.0

  • NEW: Split backup scheduling into two independent cron events: file backup and AMI snapshot each have their own day picker and time selector
  • NEW: Configurable backup filename prefix (default: bkup), set in the Retention card
  • NEW: S3 sync auto-retry: on failure a single cron event fires 5 minutes later; UI shows pending state and a manual Retry button
  • FIX: Scheduled backup run hour never saved due to missing name attribute on the hour select
  • FIX: Full+ backup type badge now renders distinctly from Full (separate CSS rule)
  • AMI explain modal updated to document the two-schedule architecture; reboot defaults clarified (off = crash-consistent, no downtime)

2.74.2

  • FIX: AMI creation failed with “Character sets beyond ASCII are not supported” due to em dash in description
  • AMI description now stripped to printable ASCII only via regex
  • AMI name now sanitised to AWS allowed characters (alphanumeric, hyphens, underscores, dots, slashes, parens) and capped at 128 chars
  • Replaced sanitize_file_name with stricter AWS specific character filter

2.74.1

  • FIX: AMI panel could vanish if IMDS endpoint was unreachable or curl failed during page render
  • All IMDS calls now wrapped in try/catch with error suppression so failures cannot break the admin page
  • Added curl_init availability check before attempting IMDS calls
  • IMDS results cached in WordPress transients (1 hour TTL) to avoid repeated metadata calls on every page load
  • AMI panel init block wrapped in top level try/catch, falls back to empty state on any error

2.74.0

  • NEW: EC2 AMI Snapshot panel: create full machine images of the hosting instance directly from the plugin
  • AMI name uses configurable prefix with automatic yyyyMMdd_HHmm timestamp suffix
  • Optional instance reboot for filesystem consistent snapshots
  • AMI creation history log with status tracking (last 5 shown, 20 stored)
  • Check Status button to poll AMI state from AWS
  • Explain modal with IAM policy requirements and restore instructions
  • Auto detection of EC2 instance ID and region via IMDS (v1 and v2)
  • Save/create/status operations via self contained AJAX handlers

1.0.0

  • Initial public release of CloudScale Backup & Restore
  • Manual and scheduled backup of database, media uploads, plugins folder, and themes folder
  • Configurable schedule interval in days with specific run hour
  • Configurable retention with automatic cleanup of oldest backups
  • Backup history table with type labels, sizes, dates, and ages
  • Download any backup from the admin panel
  • Restore from stored backup or uploaded .zip / .sql file
  • WordPress maintenance mode enabled during restore and always removed after
  • Restore confirmation modal with snapshot warning and checkbox gate
  • Smart detection of mysqldump and mysql CLI for native backup and restore
  • PHP streamed fallback for environments without CLI tool access
  • Backup directory protected with .htaccess deny-all
  • System info panel showing detected methods, memory limits, and backup path

Plugin Website
Visit website

Author
andrewjbaker
Version:
3.2.592
Last Updated
June 5, 2026
Requires
WordPress 6.0
Tested Up To
WordPress 7.0
Requires PHP
8.1

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.