Files
2026-06-07 11:21:53 +00:00

105 lines
5.7 KiB
Markdown

# Changelog
## [Unreleased]
## [01.04.00] --- 2026-06-07
## [01.03.00] --- 2026-06-07
## [01.02.00] --- 2026-06-07
### Added
- Joomla-styled standalone installer (MokoRestore) with 7-step wizard, admin password reset, and client provisioning
- Web cron trigger for shared hosting without crontab — URL-based backup with secret word, IP whitelist
- Placeholder support for backup directories and archive filenames ([host], [date], [site_name], [profile_name], etc.)
- FolderPicker JS placeholder resolution — resolves [site_name]/[host] when browsing, reverse-replaces on selection for portable profiles
- Archive Name Format field on backup profiles with customizable filename templates
- Interactive directory tree browser for exclude filters (replaces plain text input)
- Backup log viewer modal in backup records list and inline in detail view
- Clickable dashboard status tiles linking to backup records, detail views, and scheduled tasks
- Table exclusion now supports separate Data and Structure checkboxes (backward compatible)
- Tar.gz archive format support
- User group notifications for backup events
- Folder picker field with live server directory browsing
- Default directory dashboard warning when backups are stored inside web root
- Backup log files written alongside archives (.log)
- Backup detail view with checksum, file path, DB size, and embedded log
- Browser beforeunload warning during backup progress
### Changed
- Renamed all extension elements from mokobackup to mokojoombackup (pkg, com, all plugins, DB tables, namespaces, language keys)
- Renamed source directory from src/ to source/ per MokoStandards convention
- Dashboard health check shows actual resolved backup directory path from profiles
- Update site post-install notice links to filtered list view (avoids Joomla core bug)
- License warning suppressed when download key is already configured
- Download key preserved across package updates via preflight/postflight backup
### Fixed
- Download ERR_INVALID_RESPONSE — flush output buffers before sending file headers
- Backup directory path resolution for absolute paths outside web root
- Schema migrations consolidated to version within extension range
- PSR-4 class file naming (MokoBackup*.php → MokoJoomBackup*.php)
- Nested package directories from rename flattened
- INSERT IGNORE for default profile prevents duplicate key on update
- ActionlogsHelper::getIp() replaced — method does not exist in Joomla 5
- Console plugin namespace and quickicon translation keys
- CLI exit codes and SQL schema defaults
- Component Options page (added config.xml)
- Placeholder-aware directory checks in FolderPicker and dashboard health
## 01.01 — 2026-06-04
### Added
- Admin dashboard view as default landing page with status cards, quick actions, and system health checklist (#28)
- Console plugin (plg_console_mokojoombackup) — CLI commands: run, list, profiles, restore, cleanup (#29)
- Content plugin (plg_content_mokojoombackup) — auto-backup before extension install/update (#30)
- Actionlog plugin (plg_actionlog_mokojoombackup) — logs backup and profile actions to User Action Logs (#31)
- BackupEngine dispatches onMokoJoomBackupAfterRun event for plugin listeners
- Update site notice on dashboard and post-install
### Changed
- Renamed Kickstart to MokoRestore throughout
### Fixed
- SQL update migration and error handling
- Removed orphaned scriptfile from component manifest
- Consolidated admin files into single files block
## 01.00 — 2026-06-02
### Added
- Initial package structure with component, system plugin, task plugin, and webservices plugin
- Joomla Scheduled Tasks integration (plg_task_mokojoombackup) — create multiple tasks, each running a different backup profile on its own schedule
- Individual form fields for all profile settings (no raw JSON)
- FTP/FTPS uploader with recursive directory creation, passive mode, SSL, and size verification
- Google Drive uploader using OAuth2 refresh tokens and resumable upload API
- S3-compatible remote storage: AWS S3, Wasabi, Backblaze B2, MinIO (#16)
- RemoteUploaderInterface for pluggable storage backends
- Remote upload integrated into BackupEngine with option to delete local copy after upload
- Restore engine with file restoration and database import
- MokoRestore standalone restore script — self-contained site restoration without Joomla
- "Include Restore Script" toggle per profile
- FileRestorer with protected file handling (preserves configuration.php, .htaccess)
- DatabaseImporter with streaming line-by-line SQL execution and error tolerance
- Admin dashboard quickicon widget — backup status at a glance with warnings (#18)
- Differential backups — only back up files changed since last full backup (#19)
- DifferentialScanner with file manifests stored in backup records
- JPA archive format import for Akeeba Backup migration (#20)
- AES-256 archive encryption with per-profile password (#17)
- SHA-256 checksum verification for backup integrity (#15)
- Email notifications on backup success/failure via Joomla mailer (#14)
- Akeeba Backup Pro importer — profiles, filters, remote storage, and backup history
- Auto-disables Akeeba plugins and scheduled tasks after successful import
- AJAX step-based backup engine for shared hosting (overcomes max_execution_time)
- Progress bar modal in admin UI with real-time phase/percentage updates
- Per-profile archive settings: format, compression level, split size, backup directory
- Backup engine with database dumper, file scanner, and ZIP archive builder
- Backup profiles with independent configurations
- Backup record management (list, download, delete)
- CLI script for cron/scheduled backups
- REST API compatible with MokoJoomBackup MCP server
- System plugin for automatic backup cleanup with configurable retention