affe2db36ae10b65f1e1f7a9fa54dbb02c7ebd9d
46 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d3b6fe7663 |
Merge remote-tracking branch 'origin/main' into dev
Universal: Auto Version Bump / Version Bump (push) Successful in 6s
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Generic: Project CI / Lint & Validate (push) Successful in 13s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Project CI / Lint & Validate (pull_request) Successful in 12s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 12s
Universal: PR Check / Validate PR (pull_request) Failing after 10s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 14s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 38s
Generic: Project CI / Tests (push) Has been cancelled
Generic: Project CI / Tests (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
# Conflicts: # .mokogitea/workflows/issue-branch.yml # .mokogitea/workflows/pre-release.yml # source/pkg_mokojoombackup.xml |
||
|
|
a13f7ca6a6 |
chore: rename src/ to source/ per MokoStandards convention
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Update all references in Makefile, manifest.xml, .gitignore, and CI workflows (ci-joomla, pr-check, repo-health) to use source/ as the primary directory with src/ as a fallback for compatibility. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
28fcc72ced |
fix: consolidate schema migrations to version within extension range
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Migrations 01.01.08 and 01.01.09 were never applied on upgrade because their version numbers exceeded the extension version (01.01.07-dev). Joomla skips migrations with version > extension version. Consolidated into 01.01.02.sql which falls between 01.01.01 and 01.01.07-dev, ensuring existing installs receive the ALTER TABLE statements for notify_user_groups and archive_name_format. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
2755ef709f |
feat: interactive directory tree browser for exclude filters
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Replace plain text ExcludeList with DirectoryFilter field that provides a browsable server directory tree with checkboxes, removable pills, and manual path entry. Backward compatible storage format. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
df59fd7303 |
fix: dashboard tiles use onclick navigation, last backup links to record detail
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
b1632e790e |
feat: make dashboard status tiles clickable links to their sections
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
3c469f0dae |
feat: placeholder support, download fix, table exclusion modes, log viewer, detail view
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Universal: Build & Release / Promote to RC (pull_request) Has been cancelled
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been cancelled
Branch Cleanup / Delete merged branch (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- Add PlaceholderResolver for [host], [date], [profile_name], etc. in backup_dir and new archive_name_format profile field - Fix download ERR_INVALID_RESPONSE by flushing output buffers before sending file headers - Table exclusions now have separate Data and Structure checkboxes (backward compatible with existing newline format) - Backup log files written alongside archive for posterity - Log viewer modal in backup records list and inline in detail view - Clickable record description links to detail view with checksum, file path, DB size, and full log - Dashboard health check shows actual resolved backup directory path - Fix update site link to use list view (avoids Joomla core bug) - Schema migration 01.01.09 for archive_name_format column Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
75e72c248a |
feat: tar.gz archives, table checkbox excludes, user group notifications (#32, #33, #34)
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Archive formats (#32): - ArchiverInterface abstraction with ZipArchiver and TarGzArchiver - BackupEngine uses archiver factory based on profile archive_format - tar.gz uses PharData (bundled with PHP, no extra extensions) - RestoreEngine detects and extracts tar.gz via PharData - AES-256 encryption skipped for non-ZIP formats with log warning Exclude fields (#33): - ExcludeListField: dynamic table with add/remove rows for dirs and files - DatabaseTablesField: auto-populated checkbox list of all site tables - Replaces textarea-based exclusion fields in profile form User group notifications (#34): - usergrouplist field added to profile notifications fieldset - NotificationSender resolves group members to emails at send time - Combined with manual email addresses, deduplicated - SQL migration adds notify_user_groups column Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
cf50551595 |
feat: folder picker field and default directory dashboard warning
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
- Custom FolderPickerField with AJAX server-side directory browser (Browse button opens collapsible tree, click to navigate, double-click to select). Uses safe DOM methods instead of innerHTML. - AjaxController::browseDir() endpoint lists subdirectories - Dashboard shows warning when any profile uses the default backup directory inside the web root - Profile form and config.xml use FolderPicker for backup_dir field Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
368461577e |
fix: CLI exit codes and SQL schema defaults
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- Console commands: replace self::SUCCESS/FAILURE with 0/1 (Joomla's AbstractCommand doesn't define these Symfony constants) - SQL: make manifest and log columns DEFAULT NULL to prevent "doesn't have a default value" on INSERT Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
fea1800e06 |
fix: console plugin namespace and quickicon translation
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- Console: use Joomla\Application\ApplicationEvents (was wrong namespace Joomla\Application\Event\ApplicationEvents causing ClassNotFoundError on CLI) - Quickicon: translate text key with Text::_() so language strings render instead of showing raw keys Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
26635f933c | chore: add dlid and blockChildUninstall to package manifest [skip ci] | ||
|
|
8d80c218da | chore(version): auto-bump 01.01.07-dev [skip ci] | ||
|
|
807da034c9 |
fix: add config.xml for component Options
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
The Options toolbar button was crashing with "Form::loadForm could not load file" because config.xml did not exist. Added config.xml with global settings: default backup dir, default profile, update notice toggle, cleanup defaults, notification defaults, and permissions. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
e4d704dd84 | chore(version): auto-bump 01.01.06-dev [skip ci] | ||
|
|
a805351dd1 |
fix: move postinstall string to package sys.ini
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
COM_MOKOBACKUP_POSTINSTALL_UPDATE_SITE was showing as a raw key after install because the component language file isn't loaded during package installation. Moved to PKG_MOKOBACKUP_POSTINSTALL_UPDATE_SITE in pkg_mokobackup.sys.ini where the installer can resolve it. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
5ab6296ad5 | chore(version): auto-bump 01.01.05-dev [skip ci] | ||
|
|
c1521cb235 |
feat: add dashboard view and console, content, actionlog plugins (#24, #25, #26, #27)
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Dashboard view becomes the default landing page with status cards, quick actions (backup now w/ profile selector), and system health checks. Three new plugins round out the package: - plg_console_mokobackup: CLI commands (run, list, profiles, restore, cleanup) - plg_content_mokobackup: auto-backup before extension install/update - plg_actionlog_mokobackup: logs backup and profile actions to User Action Logs BackupEngine now dispatches onMokoBackupAfterRun for plugin listeners. Package manifest and install script updated to include and auto-enable the new plugins. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
4f14009003 | feat(update): migrate update server URL to Gitea Pages [skip ci] | ||
|
|
f884314e28 |
fix: consolidate admin files into single files block
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
Joomla core components use a single <files folder="admin"> block with <folder> entries for all subdirectories. Our manifest had multiple separate <files folder="..."> blocks which may not be fully processed by the component installer. Consolidate to match the Joomla standard pattern using <files folder="."> with folder entries. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
a34b715cff | chore(version): auto-bump 01.01.04-dev [skip ci] | ||
|
|
3ded91608a |
fix: remove orphaned scriptfile from component manifest
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
The component manifest declared <scriptfile>script.php</scriptfile> but no script.php exists in the component sub-package. The install script belongs at the package level (pkg_mokobackup.xml) only. This caused Joomla to abort component installation before copying files or running SQL, producing the "SQL File not found" error. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
8eab341c1e | chore(version): pre-release bump to 01.01.03-dev [skip ci] | ||
|
|
2aee667d00 | chore(version): auto-bump 01.01.03-dev [skip ci] | ||
|
|
6bab1ad5fa |
fix: add SQL update migration and error handling for PR review
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled
- Add sql/updates/mysql/01.01.01.sql to rename include_kickstart column to include_mokorestore for existing installations - Wrap checkUpdateSite() in try/catch to prevent dashboard crash - Use COM_MOKOBACKUP_UPDATE_SITE_MISSING when no update site found Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
44e309c57f | chore(version): auto-bump 01.01.02-dev [skip ci] | ||
|
|
6ed0eee4a1 |
feat: add update site notice on dashboard and post-install
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Link directly to the Joomla Update Sites record for pkg_mokobackup on the Backups dashboard and after install/update, so users can configure their download key without a license warning popup. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
1f225689ba | chore(version): auto-bump 01.01.01-dev [skip ci] | ||
|
|
e5ca71f2c5 |
chore: sync workflows from moko-platform + fix SQL install path
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- Sync all universal workflows from moko-platform v09.23.00 - Add pre-release.yml for dev/alpha/beta/rc builds - Add auto-bump.yml, branch-cleanup.yml, issue-branch.yml, update-server.yml - Fix mokobackup.xml: include install/uninstall SQL files in <files> section Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
610f875ad9 |
refactor: rename Kickstart to MokoRestore
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Replace all Akeeba Kickstart branding with MokoRestore: - Rename Kickstart.php to MokoRestore.php - Rename class Kickstart to MokoRestore - Update DB column: include_kickstart → include_mokorestore - Update form field and language string keys - Update all variable names, log messages, and comments - Update CHANGELOG references Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
aa36a01a7f |
chore: bump version to 01.01.00-dev for next development cycle
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
0136a5a24b |
chore: release prep v01.00.00
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- Remove -dev suffix from all version strings - Convert CHANGELOG [Unreleased] section to 01.00.00 Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
63997252bf |
feat: dashboard widget (#18), differential backups (#19), JPA import (#20)
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
#18 — Dashboard Quickicon Widget: - plg_quickicon_mokobackup: shows backup status on admin dashboard - Displays: last backup time, total count, storage used - Warning states: no backups, recent failures, stale (>7 days) - Links to backup records view #19 — Differential Backups: - New backup_type: "differential" — only backs up changed/new files - DifferentialScanner: builds manifest (path+size+mtime) on full backups - Compares current filesystem against base manifest on differential runs - Manifest stored in backup record (LONGTEXT column) - Falls back to full backup if no base manifest exists - Database is always fully dumped (no incremental DB) #20 — JPA Format Import: - JpaUnarchiver: parses Akeeba JPA binary format - Handles: archive header, file entities, gzip decompression, permissions - RestoreEngine auto-detects JPA vs ZIP by reading signature bytes - Enables restoring from existing Akeeba .jpa backup files Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
9d311f30e0 |
feat: AES-256 archive encryption (#17)
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- Per-profile encryption_password field in archive settings - BackupEngine encrypts all files in ZIP using ZipArchive::EM_AES_256 (WinZip-compatible, requires PHP 7.2+ with libzip 1.2.0+) - Encryption runs after ZIP creation, before checksum computation - RestoreEngine accepts password parameter for decryption - BackupsController passes encryption_password to restore - Kickstart restore.php: password input field in Step 2, passed to ZipArchive::setPassword() before extraction - Clear error messages for wrong password or missing AES support Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
74ee3ea3ab |
feat: SHA-256 checksums (#15) and S3 storage backend (#16)
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
#15 — Backup Integrity Verification: - Compute SHA-256 hash after archive creation, store in checksum column - "Verify Integrity" toolbar button re-computes and compares - Hash logged in backup step log #16 — S3-Compatible Storage: - S3Uploader with AWS Signature V4 (no SDK dependency, pure cURL) - Single PUT for files <= 100 MB, multipart upload for larger files - Multipart: 10 MB parts, abort on failure, XML completion - Works with AWS S3, Wasabi, Backblaze B2, MinIO (custom endpoints) - Profile form fields: endpoint, region, access key, secret key, bucket, path - showon conditional visibility (only shown when remote_storage=s3) - Akeeba importer maps S3 credentials from Akeeba profiles - Added to BackupEngine createUploader() factory Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
1f4471e088 |
feat: email notifications on backup success/failure (#14)
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
- NotificationSender: sends email via Joomla's mailer on backup complete or fail, with site info, duration, size, and log excerpt - Per-profile settings: notify_email (comma-separated), notify_on_success, notify_on_failure (default: on) - Notifications tab added to profile editor - Wired into BackupEngine for both success and failure paths - Failure emails include last 30 lines of backup log for debugging Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
c0ee2608f1 |
feat: Akeeba Backup Pro settings importer with auto-disable
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Import Akeeba profiles, filters, remote storage settings, and backup history into MokoJoomBackup. After successful import, Akeeba plugins and scheduled tasks are automatically disabled. - AkeebaImporter: reads #__ak_profiles and #__ak_stats tables - Parses both INI-format and JSON-format Akeeba configuration - Maps backup types (dbonly→database, filesonly→files) - Maps remote storage (ftp, googledrive) with credential transfer - Parses Akeeba filter format (per-root, nested) to newline lists - Imports backup history with profile ID remapping - "Import from Akeeba" button auto-detected in Profiles view toolbar - Disables Akeeba plugins + scheduled tasks (does NOT uninstall) Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
40402bb6a0 |
feat: add profile selector to backup records view
Generic: Repo Health / Access control (push) Has been cancelled
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
The Backup Now button was hardcoded to profile 1. Now the backups view shows a profile dropdown with all published profiles, displaying name and type (full/database/files). The selected profile is passed to the stepped backup engine. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
5e5d79327b |
feat: AJAX step-based backup engine for shared hosting
On shared hosting where max_execution_time cannot be overridden, backups now run as a series of small AJAX requests. Each request does one unit of work (dump one table, add one batch of files) and returns within the time limit. - SteppedBackupEngine: orchestrates init → database → files → finalize → upload → complete phases - SteppedSession: persists state between requests via temp JSON files with automatic cleanup of stale sessions (24h) - AjaxController: handles init and step requests with CSRF protection - Admin UI: progress bar modal with real-time phase and percentage updates, auto-reloads on completion - Steps: 1 table per DB step, 200 files per file step (configurable) Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
e597896e73 |
feat: add PHP limit overrides and runtime extension checks
- BackupEngine: set_time_limit(0), memory_limit 512M, ignore_user_abort, flush output buffers, disable zlib compression - RestoreEngine: same PHP limit overrides - FtpUploader: check ext-ftp before upload attempt - GoogleDriveUploader: check ext-curl before upload attempt - BackupEngine: check ext-zip and ext-mbstring at startup - Kickstart restore.php: check ext-pdo_mysql and ext-mbstring in preflight, show max_execution_time and memory_limit in check results Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
044722c7cf |
fix: use underscores in backup archive filenames
Example: mokoconsulting.tech_20260602_143000_profile1.zip Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
029f88fe4b |
fix: use hostname-timestamp-profile naming for backup archives
Archive filenames now follow: {hostname}-{YYYYMMDD-HHmmss}-profile{N}.zip
Example: mokoconsulting.tech-20260602-143000-profile1.zip
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
||
|
|
5502c19a5d |
feat: add restore engine and Kickstart self-extracting archives
- Add RestoreEngine: extract ZIP, restore files, import DB, preserve configuration.php, clean up staging directory - Add FileRestorer: recursive file copy with protected file handling (skips configuration.php, .htaccess at root level) - Add DatabaseImporter: streaming line-by-line SQL execution with comment/multiline handling and error tolerance - Add Kickstart: standalone restore.php generator with web UI for restoring on blank servers (like Akeeba Kickstart Pro) - Pre-flight checks (PHP version, zip ext, writable) - Step-by-step: extract, import DB, update config, cleanup - Dark theme UI, CSRF protection, no dependencies - Add "Include Restore Script" toggle per profile — wraps backup as outer.zip containing restore.php + site-backup.zip - Add restore button to admin backups toolbar - Fix innerHTML XSS risk (use DOM methods instead) Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
4a159bab39 |
feat: implement FTP and Google Drive remote uploaders
- Add RemoteUploaderInterface for pluggable storage backends - Add FtpUploader: FTP/FTPS with passive mode, SSL, recursive dir creation, and post-upload size verification - Add GoogleDriveUploader: OAuth2 refresh token auth, resumable upload API with 5 MB chunking for reliable large-file transfers - Wire uploaders into BackupEngine Step 3: after ZIP creation, upload to configured remote, optionally delete local copy - No SDK dependencies — pure PHP with cURL for Google Drive Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
201a281e3a |
feat: add scheduled tasks, individual fields, remote storage
- Add plg_task_mokobackup: Joomla Scheduled Tasks integration so each backup profile can run on its own schedule (like Akeeba Backup Pro) - Replace JSON config/filters with individual form fields and DB columns - Add FTP/FTPS and Google Drive remote storage options per profile - Add archive settings tab (format, compression, split size, backup dir) - Add exclusion filter fields (dirs, files, tables) as newline-separated textareas instead of raw JSON Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
b82c1f8a24 |
feat: initial MokoJoomBackup package — Akeeba Backup Pro replacement
Full-site backup and restore for Joomla with three sub-extensions: - com_mokobackup: Admin component with backup engine, profiles, and records - plg_system_mokobackup: Auto-cleanup of expired backups - plg_webservices_mokobackup: REST API wire-compatible with mcp_mokobackup Backup engine supports full/database/files modes with step-based execution, file/directory/table exclusion filters, and CLI script for cron use. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |