gitea-actions[bot]
4aec41d21f
chore(version): pre-release bump to 02.54.01-dev [skip ci]
2026-07-04 20:26:30 +00:00
jmiller
10248b284a
fix: enforce per-profile retention and repair Purge Old Backups button
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Generic: Project CI / Lint & Validate (pull_request) Successful in 12s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 27s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 39s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 30s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 4m0s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Two related backup-management fixes.
Retention (records/days to keep):
- The retention fieldset was defined in profile.xml but never rendered
in the profile editor, so retention_days/retention_count were invisible.
Render the retention fieldset on the Archive tab.
- retention_days/retention_count were read by nothing, so they pruned no
backups. Add RetentionManager::prune(), called from completeRecord() in
both BackupEngine and SteppedBackupEngine after a backup finishes.
Policy: delete a completed/warning backup when EITHER it is older than
retention_days OR it falls outside the newest retention_count copies
(0 = unlimited for that rule). Deleting a record also removes its
archive and log file.
- Correct misleading language/schema text ("use global default" — no such
global backup-retention setting exists) to "0 = unlimited".
Purge Old Backups button:
- The modal only opened via a fragile selector match on the toolbar
button's inline onclick, which Joomla 6's Atum toolbar does not render,
so the button did nothing. Wrap Joomla.submitbutton to open the modal
for the backups.purgeModal task, keeping the selector as a fallback.
2026-07-04 15:25:43 -05:00
gitea-actions[bot]
2e5b57fe5d
chore(release): build 02.54.00 [skip ci]
2026-07-04 20:25:20 +00:00
jmiller
bdbbe74021
Merge pull request 'Hardcode manifest names/descriptions and enforce Type - Name convention' ( #201 ) from chore/manifest-naming-convention into main
2026-07-04 20:24:46 +00:00
jmiller
d155958be3
chore(manifests): hardcode names/descriptions and enforce Type - Name convention
...
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Generic: Project CI / Lint & Validate (pull_request) Successful in 11s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 8s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Generic: Repo Health / Access control (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 28s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 45s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 31s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 4m23s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Per the package-XML convention, manifests must not use language strings for
titles/descriptions, and <name> must follow "Type - Name".
- Component <name> "MokoSuiteBackup" → "Component - MokoSuiteBackup"
- Module <name> "mod_mokosuitebackup_cpanel" → "Module - MokoSuiteBackup - cPanel"
- Hardcode every <description> (pkg, com, mod, all 7 plugins) with the literal
text previously stored in the *_DESCRIPTION language constants
- Hardcode the component admin submenu titles (Dashboard, Backup Records,
Content Snapshots, Backup Profiles)
Plugin <name> values already followed the Group - Name format and are
unchanged. All manifests validated as well-formed XML.
2026-07-04 15:24:18 -05:00
jmiller
0df6008a3b
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-04 20:23:20 +00:00
jmiller
145155d06e
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-07-04 20:23:18 +00:00
jmiller
84f37a8b51
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-07-04 20:23:16 +00:00
gitea-actions[bot]
6ff350fb1c
chore: promote changelog [Unreleased] → [02.53.00]
2026-07-04 20:21:10 +00:00
gitea-actions[bot]
c492d30b1c
chore(release): build 02.53.00 [skip ci]
2026-07-04 20:20:57 +00:00
jmiller
23360f4cbc
Merge pull request 'Add COM_MOKOJOOMBACKUP_SHORT and apply short name to views and admin menu' ( #200 ) from chore/short-name-branding into main
Sync Workflows to Repos / sync (push) Failing after 2s
2026-07-04 20:20:37 +00:00
jmiller
ece864329e
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-04 19:39:08 +00:00
jmiller
6cf34ea2ed
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-07-04 19:39:06 +00:00
jmiller
1ee5e6ba9b
chore: sync branch-cleanup.yml from Template-Generic [skip ci]
2026-07-04 19:39:05 +00:00
gitea-actions[bot]
1be16af5a4
chore(version): pre-release bump to 02.52.27-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 35s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 5m7s
2026-07-04 19:21:24 +00:00
jmiller
a808789acb
feat: add COM_MOKOJOOMBACKUP_SHORT and apply short name to views and admin menu
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
- Add COM_MOKOJOOMBACKUP_SHORT="Backup" to the component .ini and .sys.ini
(en-GB + en-US) so both view titles and the admin sidebar menu resolve it.
- Prefix every admin view's toolbar title with the short brand via the
constant (e.g. "Backup: Dashboard", "Backup: Records"), and tighten the
view title strings that redundantly led with "Backup"/"MokoSuiteBackup".
- Admin sidebar top-level menu now shows the short name. Hardcoded as
"Backup" in the manifest per the package-xml convention (no language
strings in package XML).
2026-07-04 14:20:54 -05:00
jmiller
406b666486
chore: sync sync-on-merge.yml from Template-Generic [skip ci]
2026-07-04 19:06:42 +00:00
jmiller
77d93602d6
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-07-04 19:06:41 +00:00
jmiller
c5f4daa2e6
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-07-04 19:06:40 +00:00
jmiller
caaedfdff5
chore: sync notify.yml from Template-Generic [skip ci]
2026-07-04 19:06:39 +00:00
jmiller
6792688740
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-07-04 19:06:38 +00:00
jmiller
318b1469e3
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-07-04 19:06:37 +00:00
jmiller
b6b101be3a
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-07-04 19:06:36 +00:00
jmiller
13af787c13
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-30 19:19:09 +00:00
gitea-actions[bot]
481e395624
chore: promote changelog [Unreleased] → [02.52.24]
2026-06-30 19:18:28 +00:00
gitea-actions[bot]
202a26847b
chore(release): build 02.52.24 [skip ci]
2026-06-30 19:18:21 +00:00
jmiller
7b38e238f5
Merge pull request 'fix: use warning status when backup succeeds but upload fails' ( #199 ) from fix/upload-fail-warning-status into main
2026-06-30 19:18:06 +00:00
gitea-actions[bot]
9820d75212
chore(version): pre-release bump to 02.52.24-dev [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 24s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 2m56s
2026-06-30 19:17:57 +00:00
jmiller
9c0c6eae15
docs: add warning status changes to changelog
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 6s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Generic: Project CI / Lint & Validate (pull_request) Successful in 16s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 36s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 14:17:34 -05:00
gitea-actions[bot]
1daa6869cc
chore(version): pre-release bump to 02.52.23-dev [skip ci]
2026-06-30 19:14:33 +00:00
jmiller
aefa46e0c4
fix: use warning status when backup succeeds but remote upload fails
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
Previously a successful backup with a failed remote upload was marked
as "complete", hiding the upload failure. Now these records get a
"warning" status with a yellow badge so operators can see at a glance
which backups didn't reach their remote destination.
Warning-status records are treated as usable backups throughout:
- Downloadable, browsable, and restorable (the archive is intact)
- Counted in dashboard stats, storage totals, and success streaks
- Included in purge operations and differential base lookups
- Shown with yellow "warning" badge in list, detail, and cpanel module
- Filterable via the status dropdown on Backup Records
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 14:14:06 -05:00
jmiller
ed55ab068b
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-30 18:56:24 +00:00
gitea-actions[bot]
765e6feea6
chore: promote changelog [Unreleased] → [02.52.22]
2026-06-30 18:53:53 +00:00
gitea-actions[bot]
007036301d
chore(release): build 02.52.22 [skip ci]
2026-06-30 18:53:45 +00:00
jmiller
1db4015003
Merge pull request 'fix: cancel stalled backups with ACL + auto-timeout failsafe' ( #197 ) from fix/cancel-stalled-backup into main
2026-06-30 18:53:15 +00:00
gitea-actions[bot]
8dac5a7448
chore(version): pre-release bump to 02.52.22-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 22s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 11m45s
2026-06-30 18:53:06 +00:00
jmiller
4560ffb84b
docs: update changelog with cancel stalled and pre-update modal
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Project CI / Lint & Validate (pull_request) Successful in 11s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 3s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 29s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 34s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 13:52:42 -05:00
gitea-actions[bot]
5be922613f
chore(version): pre-release bump to 02.52.21-dev [skip ci]
2026-06-30 18:50:40 +00:00
jmiller
b26a21820b
fix: auto-cancel stalled backups after 30 min timeout
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 29s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Failing after 14s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 13s
Generic: Project CI / Lint & Validate (pull_request) Successful in 43s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 47s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
PreflightCheck now auto-cancels "running" backup records that have
exceeded 30 minutes, treating them as stalled. Partial archive files
are cleaned up. The auto-cancelled records are surfaced as warnings
so the user knows what happened.
Records younger than 30 minutes are assumed to be legitimately running
and still block new backups for the same profile.
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 13:50:18 -05:00
gitea-actions[bot]
a56f72b186
chore(version): pre-release bump to 02.52.20-dev [skip ci]
2026-06-30 18:49:16 +00:00
jmiller
1eb1c18bdf
fix: add cancel stalled backup action with ACL permission
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
Backups stuck in "running" status block all future backups for the same
profile via the preflight check. Previously the only fix was a manual
DB update.
Adds a toolbar button and AJAX endpoint to cancel stalled backups:
- New ACL permission: mokosuitebackup.backup.cancel
- BackupsController::cancelStalled() for toolbar (multi-select)
- AjaxController::cancelBackup() for AJAX/API use
- Sets status to "fail", cleans up partial archive files
- Updated preflight error message to mention the cancel action
- Language keys for en-GB and en-US
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 13:48:51 -05:00
jmiller
eea1a40265
Merge pull request 'fix: remove orphaned deploy-manual workflow' ( #195 ) from fix/remove-deploy-manual into main
...
fix: remove orphaned deploy-manual workflow [skip ci]
2026-06-30 18:33:51 +00:00
jmiller
ebc692789c
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-30 18:12:34 +00:00
gitea-actions[bot]
983ec77dbd
chore: promote changelog [Unreleased] → [02.52.18]
2026-06-30 18:12:06 +00:00
gitea-actions[bot]
25cf65f4cf
chore(release): build 02.52.18 [skip ci]
2026-06-30 18:11:56 +00:00
jmiller
2d3a697f22
Merge pull request 'fix: remote upload prefix mismatch and restore security file' ( #193 ) from fix/sftp-upload-and-restore-security into main
2026-06-30 18:11:32 +00:00
jmiller
a4df3a651d
fix: remove orphaned deploy-manual workflow [skip ci]
2026-06-30 18:07:18 +00:00
gitea-actions[bot]
3d9c48f40f
chore(version): pre-release bump to 02.52.18-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 33s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Successful in 2m23s
2026-06-30 18:00:27 +00:00
jmiller
4093267984
fix: add verbose error_log throughout restore script
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 8s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Generic: Project CI / Lint & Validate (pull_request) Successful in 16s
Universal: PR Check / Secret Scan (pull_request) Successful in 11s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 30s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 41s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Every action handler now logs entry, key parameters, outcomes, and
failures to PHP error_log. Security file creation logs directory
permissions, PHP user, and the specific error when file_put_contents
fails. Database import logs SQL file size, statement counts, and
individual errors. Cleanup logs each file removal success/failure.
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 12:59:59 -05:00
gitea-actions[bot]
236609341f
chore(version): pre-release bump to 02.52.17-dev [skip ci]
2026-06-30 17:53:59 +00:00
jmiller
20ce945e73
fix: recreate security file if missing while verification is pending
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 11s
Generic: Project CI / Lint & Validate (pull_request) Successful in 13s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 22s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 34s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
The security file was only written inside the code-generation block
(first page load). If the file was deleted or failed to write, it
was never recreated because the session already held the code. Now
file writing is a separate check that runs whenever verification is
pending and the file is missing.
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 12:53:36 -05:00
gitea-actions[bot]
f2f424a565
chore(version): pre-release bump to 02.52.16-dev [skip ci]
2026-06-30 17:50:30 +00:00
jmiller
3a6bb1c783
fix: remote upload prefix mismatch and restore security file visibility
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
Remote uploaders (SFTP, FTP, S3, Google Drive) expect type-prefixed
property names (sftp_host, ftp_port, etc.) but createUploaderFromParams
passes unprefixed keys from the remotes table params JSON. Add prefix
mapping in createUploaderFromParams to bridge the naming gap.
Rename .mokorestore-security.php to mokorestore-security.php (no leading
dot) so the file is visible in file managers and not blocked by web
server dotfile rules. Also clean it up in actionCleanup.
Closes #13
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-30 12:50:02 -05:00
jmiller
785ffd85a3
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-28 20:10:19 +00:00
jmiller
71da4af64b
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-28 19:39:25 +00:00
jmiller
4d5711c304
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-28 19:39:22 +00:00
gitea-actions[bot]
1a4bb32c6c
chore: promote changelog [Unreleased] → [01.45.00]
2026-06-28 19:31:25 +00:00
gitea-actions[bot]
13a526d6be
chore(release): build 01.45.00 [skip ci]
2026-06-28 19:31:21 +00:00
jmiller
babdb9e390
ci: add submodules: recursive to checkout (fixes MokoSuiteClient packaging)
2026-06-28 19:30:15 +00:00
jmiller
57c9ea600b
ci: add submodules: recursive to checkout (fixes MokoSuiteClient packaging)
2026-06-28 19:25:18 +00:00
jmiller
afffef78bd
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-28 19:12:12 +00:00
jmiller
720f008050
Merge pull request 'release: promote dev to main (v01.43.37)' ( #159 ) from dev into main
2026-06-28 19:03:51 +00:00
jmiller
cd1d3241bd
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup into dev
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 10s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 16s
Generic: Project CI / Lint & Validate (pull_request) Successful in 20s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Universal: PR Check / Secret Scan (pull_request) Successful in 11s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 3s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 16s
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 17s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 29m21s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
2026-06-28 14:03:25 -05:00
jmiller
e2d88313cf
merge: resolve version conflicts (keep dev's 01.43.37)
...
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-28 14:02:44 -05:00
gitea-actions[bot]
256d79a270
chore(version): pre-release bump to 01.44.01-dev [skip ci]
2026-06-28 18:57:02 +00:00
gitea-actions[bot]
d8d5a1e48e
chore(version): auto-bump patch 01.43.38-dev [skip ci]
2026-06-28 18:56:50 +00:00
jmiller
330cfa9dc5
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-28 18:56:20 +00:00
jmiller
8485f24342
docs: update changelog for v01.43.35, add retention to README
...
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 21s
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-28 13:56:17 -05:00
gitea-actions[bot]
51c4db5115
chore: promote changelog [Unreleased] → [01.44.00]
2026-06-28 18:52:14 +00:00
gitea-actions[bot]
fd33c86157
chore(release): build 01.44.00 [skip ci]
2026-06-28 18:52:07 +00:00
gitea-actions[bot]
ac7673805e
chore(version): pre-release bump to 01.43.37-dev [skip ci]
2026-06-28 18:51:38 +00:00
gitea-actions[bot]
428e217b56
chore(version): auto-bump patch 01.43.36-dev [skip ci]
2026-06-28 18:51:13 +00:00
jmiller
c0ba29aca8
Merge pull request 'release: promote dev to main (v01.43.x)' ( #157 ) from dev into main
2026-06-28 18:50:58 +00:00
jmiller
81a72d466b
merge: resolve workflow file conflicts (take main's v05.02.00)
...
Universal: Auto Version Bump / Version Bump (push) Successful in 16s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Project CI / Lint & Validate (pull_request) Successful in 1m0s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 34s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 1m0s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 29s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 21m34s
Generic: Project CI / Tests (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
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: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-28 13:50:24 -05:00
gitea-actions[bot]
942b33f9ce
chore(version): pre-release bump to 01.43.35-dev [skip ci]
2026-06-28 18:46:50 +00:00
jmiller
60e04cfd0a
Merge pull request 'fix: remove ordering column from profiles table' ( #158 ) from fix/remove-profiles-ordering into dev
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 12s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 44s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 31s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
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
2026-06-28 18:46:09 +00:00
gitea-actions[bot]
672b953ef5
chore(version): pre-release bump to 01.43.34-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
2026-06-28 18:45:40 +00:00
jmiller
1b481f2e2c
fix: remove ordering column from profiles table
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
The ordering column was unused in the profiles UI — profiles sort by ID.
Drops the column via migration, removes all references from model,
config query, importer, and install SQL.
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-28 13:45:01 -05:00
gitea-actions[bot]
4a027d6245
chore(version): pre-release bump to 01.43.32-dev [skip ci]
2026-06-28 07:49:06 +00:00
jmiller
8af19f875c
chore: add SECURITY.md from Template-Joomla
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Has been cancelled
2026-06-28 07:25:44 +00:00
jmiller
b56e4060bf
chore: add SECURITY.md from Template-Joomla
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 29s
2026-06-28 07:15:34 +00:00
jmiller
9b5d0475f5
chore: sync ci-generic.yml from Template-Generic [skip ci]
2026-06-27 20:45:20 +00:00
jmiller
53e11fe9ad
chore: sync rc-revert.yml from Template-Generic [skip ci]
2026-06-27 05:32:40 +00:00
gitea-actions[bot]
9757658c34
chore(version): pre-release bump to 01.43.31-dev [skip ci]
2026-06-27 02:33:25 +00:00
gitea-actions[bot]
c82378128a
chore(version): auto-bump patch 01.43.30-dev [skip ci]
2026-06-27 02:33:14 +00:00
jmiller
f95505704a
fix: add submodule checkout to pre-release workflow
...
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
The CI checkout step was missing submodules: recursive, causing
MokoSuiteClient to be an empty gitlink during builds. This resulted
in broken MokoSuiteClient.zip and "Install path does not exist" errors.
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-26 21:32:49 -05:00
gitea-actions[bot]
6cdc9b04d0
chore(version): pre-release bump to 01.43.29-dev [skip ci]
2026-06-27 02:20:50 +00:00
jmiller
bad73529ae
Merge pull request 'fix: SSH key indicator, schema alignment, MokoSuiteClient bundle' ( #155 ) from fix/ssh-key-indicator into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 11s
2026-06-27 02:20:30 +00:00
jmiller
288baf41d3
fix: remove duplicate version tags from 8 manifests, align AjaxController to params column
...
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 30s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
CI version_bump was creating duplicate <version> lines in all
sub-extension manifests. Also AjaxController still referenced the old
`config` column and removed `keep_local` column on the remotes table.
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-26 21:19:21 -05:00
gitea-actions[bot]
7d1dcf3e1c
chore(version): pre-release bump to 01.43.26-dev [skip ci]
2026-06-26 21:19:20 -05:00
jmiller
2002c1fcad
fix: remove stray 't' in package manifest and duplicate version in component manifest
...
The CI version_bump wrote 't' instead of a tab before <version> in
pkg_mokosuitebackup.xml, and appended a duplicate <version> line in
mokosuitebackup.xml instead of replacing the existing one.
Claude-Session: https://claude.ai/code/session_01MbEjBtsSjPuTWhqqrMS2wG
2026-06-26 21:19:19 -05:00
gitea-actions[bot]
4abe81f916
chore(version): pre-release bump to 01.43.25-dev [skip ci]
2026-06-26 21:19:19 -05:00
jmiller
571b03743f
docs: update README with multi-remote, MokoSuiteClient, sub-extension count
2026-06-26 21:19:18 -05:00
gitea-actions[bot]
7fc1cad305
chore(version): pre-release bump to 01.43.24-dev [skip ci]
2026-06-26 21:19:18 -05:00
jmiller
03a1dd75c9
feat: bundle MokoSuiteClient as nested package in release ZIP
...
- Add MokoSuiteClient as git submodule under source/packages/
- Add pkg_mokosuiteclient entry to pkg_mokosuitebackup.xml
- Fix duplicate <version> tag in package manifest
2026-06-26 21:19:17 -05:00
gitea-actions[bot]
02d8312d1b
chore(version): pre-release bump to 01.43.23-dev [skip ci]
2026-06-26 21:19:16 -05:00
jmiller
c508fcc8d5
fix: align remotes table schema, add restore_script_name column, profile ordering
...
- install.mysql.sql: rename `config` → `params` and drop `keep_local` from remotes
table to match update file 01.41.00 and RemoteTable.php code (fixes Joomla
database maintenance "one problem")
- install.mysql.sql: fix idx_enabled index to use composite (profile_id, enabled)
- install.mysql.sql: add restore_script_name column to profiles table
- 01.43.22.sql: ALTER TABLE to add restore_script_name for existing installs
- DashboardModel: order profile dropdown by ID instead of ordering column
- SteppedBackupEngine: add stack trace logging around MokoRestore standalone
generation to debug str_replace FATAL on SFTP profiles
2026-06-26 21:18:47 -05:00
jmiller
3af3708020
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-06-27 00:49:34 +00:00
jmiller
3098b7ad40
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-25 19:47:25 +00:00
jmiller
d10bda3321
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-25 19:47:24 +00:00
jmiller
12214bade1
chore: sync ci-issue-reporter.yml from Template-Generic [skip ci]
2026-06-25 19:47:22 +00:00
gitea-actions[bot]
d104b7b936
chore(version): pre-release bump to 01.43.22-dev [skip ci]
2026-06-25 17:18:29 +00:00
jmiller
80110ac111
Merge pull request 'fix: SSH key indicator and missing delete language key' ( #154 ) from fix/ssh-key-indicator into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 9s
2026-06-25 17:18:21 +00:00
gitea-actions[bot]
3bd1f63833
chore(version): pre-release bump to 01.43.21-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
2026-06-25 17:18:03 +00:00
jmiller
93f0fa0a47
fix: SSH key indicator detection and missing delete language key
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 9s
- SshKeyField: detect base64-encoded keys from DB so the "Key loaded"
badge displays correctly after initial upload
- Add COM_MOKOJOOMBACKUP_BACKUPS_N_ITEMS_DELETED language keys for
Joomla's AdminController delete feedback message
2026-06-25 12:17:45 -05:00
jmiller
ee1de178b1
chore: sync workflow-sync-trigger.yml from Template-Generic [skip ci]
2026-06-25 17:12:17 +00:00
jmiller
014d659908
chore: sync version-set.yml from Template-Generic [skip ci]
2026-06-25 17:12:17 +00:00
jmiller
113febad3f
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-25 17:12:16 +00:00
jmiller
18a3a524f2
chore: sync pre-release.yml from Template-Generic [skip ci]
2026-06-25 17:12:16 +00:00
jmiller
659fc6e274
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-25 17:12:15 +00:00
jmiller
89af9fa14c
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-25 17:12:14 +00:00
jmiller
d60535ae64
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-25 17:12:14 +00:00
jmiller
b9ef947feb
chore: sync cleanup.yml from Template-Generic [skip ci]
2026-06-25 17:12:13 +00:00
jmiller
e7ab83c5fb
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-25 17:12:12 +00:00
jmiller
dc81cd7cc8
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-25 17:12:11 +00:00
gitea-actions[bot]
268b3d54d7
chore(version): pre-release bump to 01.43.20-dev [skip ci]
2026-06-25 16:27:48 +00:00
jmiller
1cfe7c6c6e
Merge pull request 'fix: add SQL update file to match manifest version' ( #153 ) from fix/schema-version-file-2 into dev
...
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
fix: add SQL update file to match manifest version
2026-06-25 16:26:38 +00:00
jmiller
f0da0c02b4
fix: add SQL update file to match manifest version
...
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 46s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Joomla's Database view requires a SQL update file matching the manifest
version. Missing file causes persistent schema version mismatch warning.
2026-06-25 11:25:56 -05:00
gitea-actions[bot]
2f8a65388c
chore(version): pre-release bump to 01.43.19-dev [skip ci]
2026-06-25 16:13:23 +00:00
gitea-actions[bot]
9978622960
chore(version): pre-release bump to 01.43.18-dev [skip ci]
2026-06-25 16:13:03 +00:00
jmiller
35e5fc1503
Merge pull request 'fix(db): add 01.43.11 schema update file' ( #152 ) from fix/schema-version-file into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
2026-06-25 16:12:46 +00:00
gitea-actions[bot]
2338ba5197
chore(version): pre-release bump to 01.43.17-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
2026-06-25 16:12:33 +00:00
jmiller
e67eedbc93
fix(db): add 01.43.11 schema update file to resolve version mismatch
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
Joomla's database checker requires a SQL update file matching the manifest
version. Missing file caused schema version to stay at 01.41.00.
2026-06-25 11:12:22 -05:00
gitea-actions[bot]
d812aca832
chore(version): pre-release bump to 01.43.15-dev [skip ci]
2026-06-25 16:00:54 +00:00
gitea-actions[bot]
4315f36c6a
chore(version): pre-release bump to 01.43.14-dev [skip ci]
2026-06-25 15:59:41 +00:00
jmiller
10467835ac
Merge pull request 'fix: UI cleanup, custom restore script name, version bump 01.43.11-dev' ( #150 ) from fix/ui-cleanup-restore-name into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
2026-06-25 15:59:30 +00:00
gitea-actions[bot]
f26d58504e
chore(version): pre-release bump to 01.43.13-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
2026-06-25 15:58:38 +00:00
jmiller
07fb4dcc24
fix: remove run/backup buttons, move actions to detail view, custom restore script name, version bump 01.43.11-dev
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
- Remove Run Backup / Backup Now buttons from profiles list, profile edit toolbar, and backup records view
- Move download, browse archive, and view log from backup list rows into individual backup record detail view
- Add download button to backup detail toolbar
- Link profile column in backup records list to profile edit
- Complete restore script filename customization across BackupEngine, SteppedBackupEngine, and MokoRestore
- Remove ordering field from profiles, default sort by ID ascending
- Fix untranslated JFIELD language keys
- Bump all manifests to 01.43.11-dev
2026-06-25 10:54:35 -05:00
gitea-actions[bot]
21a4352b3b
chore(version): pre-release bump to 01.43.10-dev [skip ci]
2026-06-25 15:02:09 +00:00
gitea-actions[bot]
9d26f59f98
chore(version): pre-release bump to 01.43.09-dev [skip ci]
2026-06-25 15:01:45 +00:00
jmiller
3488434f28
Merge pull request 'fix(mokorestore): Joomla detection, multi-zip selector, standalone backup scan' ( #148 ) from fix/mokorestore-improvements into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
2026-06-25 15:01:14 +00:00
gitea-actions[bot]
f97cd30c95
chore(version): pre-release bump to 01.43.08-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
2026-06-25 15:00:33 +00:00
jmiller
836d1bc8b7
fix(mokorestore): add Joomla detection warning, multi-zip selector, and standalone backup scan
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
- Preflight now detects existing Joomla installation (configuration.php / Version.php)
and shows a yellow warning — does not block, but alerts the user
- Standalone mode: backup archive check scans for all ZIPs instead of hardcoded name
- Multi-zip selector integrated into extract step with radio buttons
- Selected backup file passed through to extract action
- Added warn-style CSS class (yellow) for preflight warnings
2026-06-25 10:00:07 -05:00
gitea-actions[bot]
79b3caa35a
chore(version): pre-release bump to 01.43.05-dev [skip ci]
2026-06-25 13:39:28 +00:00
gitea-actions[bot]
6102c8f590
chore(version): pre-release bump to 01.43.04-dev [skip ci]
2026-06-25 13:39:01 +00:00
jmiller
88e53c5698
Merge pull request 'fix: Bootstrap 5 modals, language keys, ntfy default, MokoRestore error handling' ( #146 ) from fix/bootstrap-modals into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
2026-06-25 13:38:43 +00:00
gitea-actions[bot]
ec1c3486c5
chore(version): pre-release bump to 01.43.03-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
2026-06-25 13:38:28 +00:00
jmiller
3742477aef
fix: convert inline modals to Bootstrap 5, fix language keys, ntfy default, and MokoRestore error handling
...
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 29s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
- Convert 10 inline CSS modals to Bootstrap 5 (backups: 7, snapshots: 3)
- Replace style.display show/hide with Bootstrap Modal API
- Fix JFIELD_ORDERING_LABEL_ASC → JFIELD_ORDERING_ASC in profile filter
- Add COM_MOKOJOOMBACKUP_CONFIGURATION key for Options page title
- Change ntfy default server to ntfy.mokoconsulting.tech
- Add profile ID to dropdown labels across backups, dashboard, cpanel module
- Add error handling to MokoRestore post() and runPreflight() to prevent UI stalling
- Remove outdated SSH auth pattern references from field descriptions
2026-06-25 08:35:40 -05:00
jmiller
1c256bba7a
chore: sync version-set.yml from Template-Generic [skip ci]
2026-06-24 11:51:45 +00:00
jmiller
cd4dc6efd2
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-24 11:51:44 +00:00
jmiller
2e6b71ac97
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-24 11:51:41 +00:00
jmiller
5b4f84bad7
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-24 11:51:39 +00:00
jmiller
847bb9bd0f
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-24 11:51:37 +00:00
jmiller
ebcaf44b63
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-24 11:51:32 +00:00
jmiller
17b05f9a13
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-24 11:51:30 +00:00
gitea-actions[bot]
bb8e4a258a
chore(version): pre-release bump to 01.43.02-dev [skip ci]
2026-06-24 11:49:56 +00:00
gitea-actions[bot]
e6d646011a
chore(version): auto-bump patch 01.43.01-dev [skip ci]
2026-06-24 11:49:37 +00:00
jmiller
726291995c
chore: sync main into dev ( #145 )
Universal: Auto Version Bump / Version Bump (push) Successful in 16s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 19s
2026-06-24 11:49:19 +00:00
gitea-actions[bot]
2ac4923d74
chore: promote changelog [Unreleased] → [01.43.00]
Universal: PR Check / Branch Policy (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
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 43s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
2026-06-24 11:49:15 +00:00
gitea-actions[bot]
adc4935587
chore(release): build 01.43.00 [skip ci]
2026-06-24 11:49:12 +00:00
jmiller
8f7b747c59
fix: add missing module entry point for cpanel module install ( #144 )
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 47s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
2026-06-24 11:49:01 +00:00
gitea-actions[bot]
42b7503d7b
chore(version): pre-release bump to 01.42.04-dev [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 17s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 4m51s
2026-06-24 00:05:44 +00:00
jmiller
9ac8757a8c
Merge pull request 'fix: add missing module entry point for cpanel module install' ( #143 ) from fix/cpanel-module-install into dev
...
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
fix: add missing module entry point for cpanel module install (#143 )
2026-06-24 00:05:30 +00:00
gitea-actions[bot]
ef3fde1c39
chore(version): pre-release bump to 01.42.03-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
2026-06-23 23:53:35 +00:00
Jonathan Miller
5750e71d15
fix: add missing module entry point for cpanel module install
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
Joomla's module installer requires a <filename module="..."> element
in the manifest's <files> section. Without it, installation fails with
"No module file specified." Added the stub PHP file and manifest entry.
2026-06-23 18:53:00 -05:00
gitea-actions[bot]
c8e022d46b
chore(version): pre-release bump to 01.42.02-dev [skip ci]
2026-06-23 23:06:28 +00:00
jmiller
21f2ba0eff
Merge pull request 'chore: sync main into dev (preserves dev-only changes)' ( #142 ) from chore/sync-main-to-dev into dev
Universal: Auto Version Bump / Version Bump (push) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
2026-06-23 23:06:15 +00:00
gitea-actions[bot]
821c4bae11
chore(version): pre-release bump to 01.42.01-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
2026-06-23 23:05:52 +00:00
Jonathan Miller
e86c104276
Merge remote-tracking branch 'origin/main' into chore/sync-main-to-dev
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 16s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 41s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
2026-06-23 18:05:20 -05:00
gitea-actions[bot]
af2a1a2dae
chore: promote changelog [Unreleased] → [01.42.00]
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 36s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
2026-06-23 23:00:23 +00:00
gitea-actions[bot]
c88b163de0
chore(release): build 01.42.00 [skip ci]
2026-06-23 23:00:20 +00:00
jmiller
358a7eb68a
Merge pull request 'docs: Comprehensive CHANGELOG consolidation + wiki update + testing parameters' ( #140 ) from chore/changelog-wiki-testing into main
2026-06-23 23:00:08 +00:00
Jonathan Miller
898520d1db
chore: sync auto-release.yml from Template-Generic [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 18s
2026-06-23 17:58:49 -05:00
gitea-actions[bot]
e633d0cc0a
chore(version): pre-release bump to 01.41.03-dev [skip ci]
2026-06-23 22:20:21 +00:00
Jonathan Miller
ff7418721d
fix: review findings — key desc, missing changelog, [HOST] domain resolution
...
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 7s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 14s
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
- Language: "encrypted" → "base64-encoded" for SSH key description
- CHANGELOG: added 3 missing bug fix entries (fields_values scope, CSRF
token on Run Backup, SFTP showon/required)
- [HOST] placeholder: resolve domain from Joomla live_site config when
HTTP_HOST is unavailable (CLI), instead of falling back to system
hostname (joomla.invalid). Applied to both PlaceholderResolver and
FolderPickerField.
2026-06-23 17:20:05 -05:00
gitea-actions[bot]
0b2b885163
chore(version): pre-release bump to 01.41.02-dev [skip ci]
2026-06-23 22:10:35 +00:00
Jonathan Miller
6c47838b30
fix: clean up wordy field descriptions — shorter, punchier text
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 13s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 48s
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
Backup dir, archive name, MokoRestore, SFTP key, sanitization,
encryption descriptions all shortened. Removed redundant placeholder
lists (now handled by clickable pills and help modal).
2026-06-23 17:09:59 -05:00
gitea-actions[bot]
0f95cb6e9f
chore(version): pre-release bump to 01.41.01-dev [skip ci]
2026-06-23 22:01:24 +00:00
Jonathan Miller
1da2fdb856
docs: comprehensive CHANGELOG consolidation for v01.41.00
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Consolidated all fragmented changelog entries from the session into
a single clean v01.41.00 release entry organized by feature area.
Covers: multi-remote, snapshots, SFTP, MokoRestore, sanitization,
engine improvements, admin UI, CLI/API, notifications, security.
2026-06-23 17:01:11 -05:00
gitea-actions[bot]
4bafaa519a
chore: promote changelog [Unreleased] → [01.41.00]
2026-06-23 21:54:11 +00:00
gitea-actions[bot]
3c32bd93e9
chore(release): build 01.41.00 [skip ci]
2026-06-23 21:54:07 +00:00
jmiller
ef17873448
Merge pull request 'feat: Multi-remote storage — multiple destinations per profile ( #97 )' ( #139 ) from feat/multi-remote-storage into main
2026-06-23 21:53:51 +00:00
Jonathan Miller
dae30161ae
feat: multi-remote storage — multiple destinations per profile ( #97 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 8s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 5s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 41s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 22s
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
New #__mokosuitebackup_remotes table stores remote destinations with
JSON params per type (SFTP/S3/GDrive/FTP). Each profile can have
multiple enabled destinations — the engine uploads to all of them.
Database:
- New table with profile_id FK, type, enabled, params JSON, ordering
- Migration auto-converts existing profile remote columns to new table
- RemoteTable, RemoteModel, RemotesModel classes
Engine:
- BackupEngine: loadRemoteDestinations() + createUploaderFromParams()
iterates all enabled remotes, falls back to legacy columns
- SteppedBackupEngine: one upload step per remote destination, persisted
via session.remoteDestinations + remoteIndex
- Local copy only deleted when ALL uploads succeed
UI:
- Profile edit: "Remote Destinations" linked table with AJAX CRUD
- Add/edit modal with type selector showing dynamic fields
- Toggle enabled/disabled, delete with confirmation
- Legacy fields hidden when remotes configured, shown as fallback
- Secrets masked in responses, merged from DB on save
Closes #97
2026-06-23 16:53:08 -05:00
jmiller
8e70bfb723
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 21:52:37 +00:00
jmiller
dcd772018e
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 21:52:36 +00:00
jmiller
26d765b74e
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 21:52:35 +00:00
jmiller
78b68d2647
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 21:52:34 +00:00
gitea-actions[bot]
50a879155d
chore: promote changelog [Unreleased] → [01.40.00]
2026-06-23 19:18:42 +00:00
gitea-actions[bot]
b4fb674566
chore(release): build 01.40.00 [skip ci]
2026-06-23 19:18:28 +00:00
jmiller
1b93d2ac21
Merge pull request 'feat: Complete config.xml, access.xml + ACL enforcement audit ( #137 )' ( #138 ) from feat/config-acl-audit into main
2026-06-23 19:17:48 +00:00
Jonathan Miller
8e5913d706
fix: enforce correct ACL permissions across all controllers ( #137 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 11s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 33s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 5s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 54s
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
13 ACL fixes across 5 files:
- BackupsController: purge() uses backup.purge (was core.delete)
- SnapshotsController: delete() uses snapshot.manage (was core.delete)
- AjaxController: restoreInit/Step use backup.restore (was backup.run),
browseArchive uses backup.browse (was core.manage),
countPurge uses backup.purge (was core.delete),
compareBackups uses backup.compare (was core.manage)
- API SnapshotsController: displayList/download use snapshot.manage
(was core.manage)
- HtmlView: verify gated by core.manage, compare by backup.compare,
purge separated from delete with backup.purge
Closes #137
2026-06-23 14:16:54 -05:00
Jonathan Miller
1f7def05c1
feat: complete config.xml and access.xml ( #137 )
...
config.xml:
- Defaults fieldset: archive format, MokoRestore mode, sanitization
defaults (passwords, emails, sessions), log retention days
- Global ntfy fieldset: server, topic, token (fallback for profiles)
access.xml:
- mokosuitebackup.backup.purge — bulk delete old backups
- mokosuitebackup.backup.compare — compare two backups
- mokosuitebackup.backup.browse — browse archive file listings
30+ new language strings for all fields and ACL actions.
Partial #137 (ACL enforcement audit in separate commit)
2026-06-23 14:04:12 -05:00
gitea-actions[bot]
95317fb707
chore: promote changelog [Unreleased] → [01.39.01]
2026-06-23 18:37:04 +00:00
gitea-actions[bot]
cb5ff2843d
chore(release): build 01.39.01 [skip ci]
2026-06-23 18:36:54 +00:00
jmiller
4e6369094b
Merge pull request 'fix: Resolve merge conflict markers in script.php' ( #136 ) from fix/script-merge-conflicts into main
2026-06-23 18:32:45 +00:00
Jonathan Miller
0fbcc861d9
fix: resolve merge conflict markers in script.php
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 10s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 44s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Universal: PR Check / Branch Policy (pull_request) Failing after 3s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 12s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3m49s
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
12 conflict markers from a stale stash pop were accidentally
committed to main in PR #135 . Resolved all by keeping the
"Updated upstream" blocks which include both error_log() and
user-facing enqueueMessage() calls.
2026-06-23 13:32:03 -05:00
jmiller
8cea58d1f6
chore: remove security-audit.yml -- handled by MokoGitea
2026-06-23 18:27:10 +00:00
gitea-actions[bot]
4df70531e2
chore(version): pre-release bump to 01.39.02-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
2026-06-23 18:13:45 +00:00
gitea-actions[bot]
845b856cda
chore(version): auto-bump patch 01.28.03-dev [skip ci]
2026-06-23 18:12:45 +00:00
jmiller
84511b08d2
Merge pull request 'feat: Purge, CPanel module, 7z format, SFTP browser ( #119 , #105 , #122 , #98 )' ( #135 ) from feat/final-batch into main
2026-06-23 18:06:23 +00:00
Jonathan Miller
899a33bc58
feat: purge, CPanel module, 7z format, SFTP browser ( #119 , #105 , #122 , #98 )
...
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 10s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 4s
Universal: PR Check / Validate PR (pull_request) Failing after 3s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 13s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 4m50s
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
#119 : Manual purge — toolbar button opens modal with date picker,
AJAX count preview, confirmation before bulk delete.
#105 : CPanel admin dashboard module (mod_mokosuitebackup_cpanel) —
backup status, quick action buttons per profile, next scheduled,
stats, and quick links. Registered in package manifest.
#122 : 7z archive format via system 7za/7z CLI binary with optional
password encryption. New SevenZipArchiver engine class.
#98 : SFTP remote file browser — custom SftpPathField with "Browse
Remote" button, modal directory listing via SSH ls, click to navigate,
double-click to select.
Also: CHANGELOG updated, wiki Home updated, #121 verified (encryption
field already visible in Archive Settings tab).
Closes #119 , closes #105 , closes #122 , closes #98 , closes #121
2026-06-23 13:05:42 -05:00
jmiller
633e9b7f1e
chore: remove security-audit.yml -- handled by MokoGitea
Universal: Auto Version Bump / Version Bump (push) Successful in 20s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 43s
2026-06-23 18:05:04 +00:00
gitea-actions[bot]
ec0b7eb8a4
chore(version): auto-bump patch 01.28.02-dev [skip ci]
2026-06-23 18:04:50 +00:00
jmiller
7d119565da
chore: remove deploy-manual.yml -- no longer needed
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 21s
2026-06-23 17:59:42 +00:00
jmiller
7970597fb8
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 17:51:32 +00:00
jmiller
13f1c1db5e
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 17:51:30 +00:00
jmiller
7ea30aa146
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 17:51:30 +00:00
jmiller
d96f3e7760
chore: sync deploy-manual.yml from Template-Generic [skip ci]
2026-06-23 17:51:29 +00:00
jmiller
10b31fea84
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 17:51:28 +00:00
jmiller
997924a107
Merge pull request 'fix: MokoRestore review findings + README rewrite' ( #134 ) from fix/mokorestore-review-findings into main
2026-06-23 17:49:49 +00:00
gitea-actions[bot]
9319abec41
chore(version): pre-release bump to 01.39.01-dev [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 8s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 4m25s
2026-06-23 17:49:32 +00:00
Jonathan Miller
7e404b0246
fix: MokoRestore review findings + update README
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 13s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Universal: Build & Release / Promote to RC (pull_request) Failing after 10s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 42s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 50s
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
Review fixes:
- data-only mode uses REPLACE INTO (was INSERT INTO, broke on dupes)
- temporary password is random 16-char hex (was hardcoded "changeme")
README rewritten with all features: snapshots, SFTP, MokoRestore
wizard, sanitization, dashboard, CLI, API.
2026-06-23 12:49:17 -05:00
jmiller
6638577cf5
Merge pull request 'feat: MokoRestore post-restore resets + per-table conflict resolution' ( #133 ) from feat/mokorestore-enhancements into main
2026-06-23 17:37:49 +00:00
Jonathan Miller
114995242d
chore: merge main, resolve conflicts, remove stale files
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 8s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 7s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 58s
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 5s
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
2026-06-23 12:37:29 -05:00
jmiller
3d6c0974fa
chore: remove deprecated .mokogitea/workflows/composer-publish.yml [skip ci]
2026-06-23 17:36:30 +00:00
jmiller
8aefc1d702
chore: remove deprecated .mokogitea/workflows/deploy-manual.yml [skip ci]
2026-06-23 17:36:27 +00:00
Jonathan Miller
da52a9d2f9
Merge remote-tracking branch 'origin/main' into feat/mokorestore-enhancements
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Branch Policy (pull_request) Failing after 3s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 17s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 51s
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
2026-06-23 12:33:59 -05:00
Jonathan Miller
0dc0eb1bef
feat: MokoRestore post-restore resets + per-table conflict resolution ( #131 , #132 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: Build & Release / Promote to RC (pull_request) Failing after 13s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 53s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 1m0s
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
#131 : Post-restore actions step in MokoRestore wizard:
- Reset all passwords to temporary "changeme" with requireReset flag
- Reset article hit counters to zero
- Clear content versions (#__history)
- Clear sessions (#__session)
- Clear cache tables and filesystem cache
- Auto-detect sanitized password hashes and prompt for reset
#132 : Per-table conflict resolution during database import:
- New "Tables" step shows all tables from database.sql
- Per-table dropdown: Replace / Skip / Merge / Data Only
- Preset buttons: All Replace, All Skip, Everything except users
- Skip mode skips all statements for that table
- Merge mode uses INSERT IGNORE instead of INSERT INTO
- Data Only skips DROP/CREATE, inserts data only
Wizard now has 9 steps: Pre-check → Extract → Tables → Database →
Config → Admin → Post-Restore → Provisioning → Complete
Closes #131 , closes #132
2026-06-23 12:33:18 -05:00
jmiller
1def73df19
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 17:11:33 +00:00
jmiller
48f132ecf9
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 17:11:32 +00:00
jmiller
c17349277d
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 17:11:31 +00:00
jmiller
5a6ad02b53
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 17:11:29 +00:00
gitea-actions[bot]
29da9776cd
chore: promote changelog [Unreleased] → [01.39.00]
2026-06-23 17:08:24 +00:00
gitea-actions[bot]
09bac755a9
chore(release): build 01.39.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
2026-06-23 17:08:16 +00:00
jmiller
f830dc2ddf
Merge pull request 'feat: Data sanitization — passwords, emails, sessions ( #129 )' ( #130 ) from feat/sanitize-user-passwords into main
2026-06-23 17:06:47 +00:00
Jonathan Miller
5698c074da
feat: data sanitization — passwords, emails, sessions ( #129 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9s
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 6s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 54s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 33s
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
New "Data Sanitization" fieldset on profile form with four options:
- Sanitize User Passwords: replaces all bcrypt hashes with invalid sentinel
- Preserve Super Admin: keeps Super Users group passwords intact
- Sanitize User Emails: replaces with user123@sanitized.example.com
- Clear Session Data: excludes #__session table data (default: on)
DatabaseDumper sanitizes rows inline during dump — both in-memory
and file-streaming paths. Super admin detection uses group_id=8
from #__user_usergroup_map with static caching.
Use cases: sharing backups, creating demo/staging sites, GDPR compliance.
Partial #129 (Part 2 — restore script password reset — tracked separately)
2026-06-23 12:06:19 -05:00
gitea-actions[bot]
aaf189b87a
chore: promote changelog [Unreleased] → [01.38.05]
2026-06-23 16:59:10 +00:00
gitea-actions[bot]
61023821e6
chore(release): build 01.38.05 [skip ci]
Publish to Composer / Publish Package (release) Failing after 34s
2026-06-23 16:59:02 +00:00
jmiller
02a6e30db1
Merge pull request 'feat: Comprehensive help modal for backup directory + fix help button' ( #128 ) from fix/folder-picker-tooltip into main
2026-06-23 16:58:45 +00:00
gitea-actions[bot]
5a0cd51df6
chore(version): pre-release bump to 01.38.05-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 4s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 5s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 33s
2026-06-23 16:58:33 +00:00
Jonathan Miller
12c832d7fe
feat: comprehensive help modal for backup directory field
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 11s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 4s
Universal: Build & Release / Promote to RC (pull_request) Failing after 8s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 43s
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
Expanded the help modal with:
- Absolute paths: starts with / or drive letter, used as-is
- Relative paths: ./backups, ../backups, ../../backups with table
showing URL-style conventions and resolved examples
- Placeholder paths: detailed descriptions of each placeholder
with current server values
- Recommended configurations table: single site, multi-site,
date-organized, per-profile, shared hosting
- Security warnings for web-root-accessible paths
- Help button uses JS click handler with Bootstrap 5 fallback
(fixes non-working tooltip icon)
2026-06-23 11:58:20 -05:00
gitea-actions[bot]
65c8820db4
chore: promote changelog [Unreleased] → [01.38.04]
2026-06-23 16:53:45 +00:00
gitea-actions[bot]
0f914c3061
chore(release): build 01.38.04 [skip ci]
Publish to Composer / Publish Package (release) Failing after 42s
2026-06-23 16:53:42 +00:00
jmiller
4191f44c1b
Merge pull request 'feat: Uppercase all placeholders + EXAMPLE prefix in display' ( #127 ) from fix/uppercase-placeholders into main
2026-06-23 16:53:28 +00:00
gitea-actions[bot]
fb99afbeba
chore(version): pre-release bump to 01.38.04-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 1s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 17s
Publish to Composer / Publish Package (release) Failing after 33s
2026-06-23 16:53:16 +00:00
Jonathan Miller
de632e9c5c
feat: uppercase all placeholders + EXAMPLE prefix in resolution display
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 10s
Universal: PR Check / Validate PR (pull_request) Failing after 11s
Universal: PR Check / Secret Scan (pull_request) Successful in 12s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 14s
Universal: Build & Release / Promote to RC (pull_request) Failing after 10s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 47s
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
All placeholders changed from lowercase to UPPERCASE:
[host] → [HOST], [site_name] → [SITE_NAME], [date] → [DATE],
[datetime] → [DATETIME], [profile_id] → [PROFILE_ID], etc.
[HOME] and [DEFAULT_DIR] were already uppercase — now consistent.
SQL migration 01.39.01 updates existing profile data in the database.
Resolution display prefixed with "EXAMPLE:" to clarify these are
example values resolved at backup time.
13 files updated across engines, fields, forms, templates, and SQL.
2026-06-23 11:52:52 -05:00
gitea-actions[bot]
53ff99148c
chore: promote changelog [Unreleased] → [01.38.03]
2026-06-23 16:50:30 +00:00
gitea-actions[bot]
c2ff3b272a
chore(release): build 01.38.03 [skip ci]
Publish to Composer / Publish Package (release) Failing after 4s
2026-06-23 16:50:27 +00:00
jmiller
747b68c179
Merge pull request 'fix: Resolve [site_name] and all placeholders in checkDir AJAX' ( #126 ) from fix/site-name-resolution into main
2026-06-23 16:50:07 +00:00
gitea-actions[bot]
cbff40d04c
chore(version): pre-release bump to 01.38.03-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 6s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 21s
2026-06-23 16:49:45 +00:00
Jonathan Miller
e415e701cd
fix: resolve [site_name] and other placeholders in checkDir AJAX
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 3s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 15s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 8s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: Build & Release / Promote to RC (pull_request) Failing after 15s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 46s
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
BackupDirectory::resolve() only handles [HOME] and [DEFAULT_DIR].
The checkDir AJAX endpoint now uses PlaceholderResolver to also
resolve [site_name], [host], [profile_id], [date], etc. before
checking if the directory exists. This makes the "Resolves to"
display accurate for all placeholder types.
2026-06-23 11:49:21 -05:00
jmiller
d184ed9de0
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 16:38:26 +00:00
jmiller
297f27c807
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 16:38:26 +00:00
jmiller
30e8d7baa9
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 16:38:25 +00:00
jmiller
efc5754bef
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 16:38:23 +00:00
gitea-actions[bot]
e3e422d29e
chore: promote changelog [Unreleased] → [01.38.02]
2026-06-23 16:37:12 +00:00
gitea-actions[bot]
9f5c8c0b5e
chore(release): build 01.38.02 [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
2026-06-23 16:37:04 +00:00
jmiller
044e57adf3
Merge pull request 'fix: Placeholder resolution display + CSRF token on Run Backup button' ( #125 ) from fix/placeholder-resolution-display into main
2026-06-23 16:36:45 +00:00
gitea-actions[bot]
e7f165ac96
chore(version): pre-release bump to 01.38.02-dev [skip ci]
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 13s
Universal: PR Check / Secret Scan (pull_request) Successful in 12s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Publish to Composer / Publish Package (release) Failing after 45s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 48s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 31s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3m46s
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
2026-06-23 16:36:09 +00:00
Jonathan Miller
fc41e1801a
fix: placeholder resolution display + CSRF token on Run Backup button
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 26s
FolderPickerField: shows resolved placeholder values below input as
badges (e.g. [HOME]=/home/user, [host]=example.com), plus full
resolved path. Updates live as user types.
BackupsController::start(): accept CSRF token from both GET and POST
so the "Run Backup Now" link button on profile edit works without
triggering "security token did not match" error.
2026-06-23 11:35:48 -05:00
gitea-actions[bot]
1aa35dd041
chore: promote changelog [Unreleased] → [01.38.01]
2026-06-23 16:28:19 +00:00
gitea-actions[bot]
6a1f4a8797
chore(release): build 01.38.01 [skip ci]
Publish to Composer / Publish Package (release) Failing after 6s
2026-06-23 16:28:13 +00:00
jmiller
6f6a6c705b
Merge pull request 'fix: include_mokorestore column type — TINYINT cannot store 'standalone'' ( #124 ) from fix/mokorestore-column-type into main
2026-06-23 16:27:48 +00:00
gitea-actions[bot]
e8d7d1d421
chore(version): pre-release bump to 01.38.01-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 4s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 7s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 29s
2026-06-23 16:27:27 +00:00
Jonathan Miller
cd31617e21
fix: change include_mokorestore column from TINYINT to VARCHAR(20)
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Universal: Build & Release / Promote to RC (pull_request) Failing after 10s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 45s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 50s
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
The column was TINYINT(1) which can only store 0/1. The new
'standalone' mode value causes MySQL to truncate the string to 0,
breaking profile save. Changed to VARCHAR(20) to support all three
modes: '0' (none), '1' (wrapped), 'standalone'.
2026-06-23 11:27:04 -05:00
jmiller
6d9d96d7cd
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 16:23:22 +00:00
jmiller
df7c07bec4
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 16:23:21 +00:00
jmiller
5b4717bf6f
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 16:23:20 +00:00
jmiller
65d30613b2
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 16:23:18 +00:00
gitea-actions[bot]
d5bbab7e72
chore: promote changelog [Unreleased] → [01.38.00]
2026-06-23 16:22:00 +00:00
gitea-actions[bot]
18b65d30ac
chore(release): build 01.38.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 34s
2026-06-23 16:21:52 +00:00
jmiller
f55b032cc9
Merge pull request 'feat: Standalone restore script — separate file that scans for ZIPs ( #107 )' ( #123 ) from feat/standalone-restore-script into main
2026-06-23 16:21:33 +00:00
Jonathan Miller
e62dba8f40
feat: standalone restore script — separate file that scans for ZIPs ( #107 )
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Universal: PR Check / Branch Policy (pull_request) Failing after 3s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 16s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 53s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 31s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 8m41s
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
New MokoRestore mode: 'standalone' generates restore.php as a separate
file that scans its directory for ZIP backup archives and lets the user
choose which one to restore. Unlike 'wrapped' mode which bundles
restore.php inside the backup ZIP, standalone mode keeps both files
separate — ideal for remote servers where you SCP the backup.
Changes:
- MokoRestore::generateStandalone() — writes restore.php with ZIP scanner
- Profile form: include_mokorestore now a dropdown (none/wrapped/standalone)
- BackupEngine: standalone mode writes restore.php + uploads to remote
- Restore script uses safe DOM methods (no innerHTML with user data)
Closes #107
2026-06-23 11:20:23 -05:00
jmiller
0619825f38
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 16:05:30 +00:00
gitea-actions[bot]
70d7da34b3
chore: promote changelog [Unreleased] → [01.37.00]
2026-06-23 16:04:44 +00:00
gitea-actions[bot]
13c251196b
chore(release): build 01.37.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 4s
2026-06-23 16:04:41 +00:00
jmiller
4841f24eab
Merge pull request 'feat: Profiles UI, snapshot detail, progress warning, action logs' ( #120 ) from feat/batch-ui-fixes into main
2026-06-23 16:03:42 +00:00
Jonathan Miller
64ffbb9d61
feat: profiles UI, snapshot detail, progress warning, action logs ( #100 , #104 , #108 , #110 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 10s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 39s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 18s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 4m10s
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
#100 : Run Backup button on profiles list (per-row) and edit toolbar,
backup count badge linking to filtered backups view, View Backups
toolbar button on profile edit.
#101 : Profile → filtered backup list link (included in #100 ).
#104 : Snapshot browse modal now shows tabbed view (Articles,
Categories, Modules) with item counts. AjaxController returns
all content types. Categories show indented hierarchy.
#108 : "Do not navigate away or close this window" warning banner
added to both backup and restore progress modals.
#110 : Joomla Action Logs integration — RestoreEngine, SnapshotEngine,
and SnapshotRestoreEngine now dispatch events that the actionlog
plugin logs to #__action_logs.
Closes #100 , closes #101 , closes #104 , closes #108 , closes #110
2026-06-23 11:03:13 -05:00
jmiller
83e91c6fa6
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 15:50:28 +00:00
jmiller
b1833825e7
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 15:50:27 +00:00
jmiller
bde20e82ad
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 15:50:26 +00:00
jmiller
8348d23fe4
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 15:50:25 +00:00
gitea-actions[bot]
d9557489d5
chore: promote changelog [Unreleased] → [01.36.00]
2026-06-23 15:48:58 +00:00
gitea-actions[bot]
089ec69595
chore(release): build 01.36.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
2026-06-23 15:48:50 +00:00
jmiller
7427cbb043
Merge pull request 'feat: Clickable placeholder pills for backup dir and archive name' ( #102 ) from feat/clickable-placeholders into main
2026-06-23 15:48:34 +00:00
Jonathan Miller
456e744d81
feat: clickable placeholder pills for backup dir and archive name fields
...
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Branch Policy (pull_request) Failing after 4s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 12s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 14s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 26s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 9m59s
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
Both Backup Directory and Archive Name Format fields now show clickable
placeholder tags below the input. Clicking a tag inserts the placeholder
at the current cursor position using selectionStart/End.
- FolderPickerField: pills for [HOME], [DEFAULT_DIR], [host], [site_name],
[date], [profile_id], [profile_name], [type]
- PlaceholderTextField: new custom field type used by archive_name_format,
configurable placeholders via XML attribute
- Cursor position preserved after insert, input event dispatched for
live status updates
2026-06-23 10:47:45 -05:00
gitea-actions[bot]
6d5ef50727
chore: promote changelog [Unreleased] → [01.35.04]
2026-06-23 15:41:32 +00:00
gitea-actions[bot]
00e7963988
chore(release): build 01.35.04 [skip ci]
Publish to Composer / Publish Package (release) Failing after 4s
2026-06-23 15:41:29 +00:00
jmiller
bc06657317
Merge pull request 'fix: SFTP fields not showing when SFTP selected' ( #99 ) from fix/sftp-key-upload into main
2026-06-23 15:40:43 +00:00
Jonathan Miller
bda4b0a23d
Merge branch 'fix/sftp-key-upload' of https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup into fix/sftp-key-upload
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 5s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 38s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 44s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 21s
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
# README.md
# source/packages/com_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml
# source/pkg_mokosuitebackup.xml
2026-06-23 10:40:27 -05:00
Jonathan Miller
e327f9cf5c
chore: normalize workflows
2026-06-23 10:40:16 -05:00
Jonathan Miller
5b9351e5f0
Merge remote-tracking branch 'origin/main' into fix/sftp-key-upload
2026-06-23 10:38:26 -05:00
gitea-actions[bot]
5785e9fd1e
chore(version): pre-release bump to 01.35.04-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 32s
2026-06-23 15:37:59 +00:00
Jonathan Miller
1e9c8d54f4
fix: remove required attr from SFTP showon fields — blocks save when not SFTP
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 22s
Joomla validates required fields server-side regardless of showon
visibility. SFTP fields with required="true" block saving when
remote_storage is set to None or S3/GDrive because the hidden
fields submit empty values. Validation should be done in
ProfileTable::check() conditionally instead.
2026-06-23 10:37:38 -05:00
jmiller
7515274712
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 13:54:34 +00:00
jmiller
0be459fe34
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 13:54:33 +00:00
jmiller
11ccdbfde4
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 13:54:32 +00:00
jmiller
fd517c16f3
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 13:54:31 +00:00
gitea-actions[bot]
fe76f81b47
chore: promote changelog [Unreleased] → [01.35.03]
2026-06-23 13:53:26 +00:00
gitea-actions[bot]
18127454b5
chore(release): build 01.35.03 [skip ci]
Publish to Composer / Publish Package (release) Failing after 5s
2026-06-23 13:53:23 +00:00
jmiller
7826c315b1
Merge pull request 'feat: SFTP key file upload, auth type dropdown, security hardening' ( #96 ) from fix/sftp-key-upload into main
2026-06-23 13:53:03 +00:00
gitea-actions[bot]
e329dbd99b
chore(version): pre-release bump to 01.35.03-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 7s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 20s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 2m33s
2026-06-23 13:52:11 +00:00
Jonathan Miller
d6b3e8cff0
feat: SFTP key file upload, auth type dropdown, security hardening
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 23s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 13s
Universal: Build & Release / Promote to RC (pull_request) Failing after 11s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 34s
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
SFTP UX improvements:
- SshKeyField: file upload button (FileReader → base64 → hidden field),
key never displayed as readable text, __KEEP_EXISTING__ sentinel
preserves DB value on re-save without re-uploading
- Auth type dropdown: password / key file / key file + passphrase
with conditional field visibility via showon
- Required field markers on host, username, path, password
- Remove insecure FTP option from remote storage dropdown
Security:
- Private key stored base64-encoded in database
- SftpUploader decodes base64 before writing temp file
- ProfileTable::store() handles sentinel to prevent key leakage
- Key content never rendered in HTML form output
2026-06-23 08:51:49 -05:00
gitea-actions[bot]
80c97620a5
chore: promote changelog [Unreleased] → [01.35.01]
2026-06-23 13:33:26 +00:00
gitea-actions[bot]
33d852bacf
chore(release): build 01.35.01 [skip ci]
Publish to Composer / Publish Package (release) Failing after 3s
2026-06-23 13:33:24 +00:00
jmiller
8be0500913
Merge pull request 'fix: SFTP fields not showing when SFTP selected' ( #95 ) from fix/sftp-showon into main
2026-06-23 13:32:53 +00:00
Jonathan Miller
27dded6c62
Merge remote-tracking branch 'origin/main' into fix/sftp-showon
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: PR Check / Validate PR (pull_request) Failing after 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 14s
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 7s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 24s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 46s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 15s
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
# README.md
# source/packages/com_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_actionlog_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_console_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_content_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_quickicon_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_system_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_task_mokosuitebackup/mokosuitebackup.xml
# source/packages/plg_webservices_mokosuitebackup/mokosuitebackup.xml
# source/pkg_mokosuitebackup.xml
2026-06-23 08:32:28 -05:00
gitea-actions[bot]
e465dfa6ee
chore(version): pre-release bump to 01.35.01-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 42s
2026-06-23 13:29:25 +00:00
Jonathan Miller
3ac0318ba3
fix: move SFTP fields into remote fieldset for showon to work
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 7s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: Build & Release / Promote to RC (pull_request) Failing after 12s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 49s
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
Joomla's showon JS only finds the controlling field (remote_storage)
within the same rendered fieldset/tab. SFTP fields were in a separate
fieldset so they were never shown. Moved into the remote fieldset
alongside the dropdown.
2026-06-23 08:29:12 -05:00
gitea-actions[bot]
17e4625448
chore: promote changelog [Unreleased] → [01.35.00]
2026-06-23 13:22:50 +00:00
gitea-actions[bot]
eb748323f7
chore(release): build 01.35.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 8s
2026-06-23 13:22:43 +00:00
jmiller
bc3085f74b
Merge pull request 'feat: SFTP remote storage with key file auth + CLI restore options' ( #94 ) from feat/sftp-keyfile into main
2026-06-23 13:22:29 +00:00
Jonathan Miller
f66100f74f
feat: SFTP remote storage with key file auth + CLI restore options
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 13s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 9s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 1s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 34s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 27s
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
SFTP support:
- SftpUploader uses system scp/ssh binaries with key file auth
- Private key stored as MEDIUMTEXT in profile table (sftp_key_data)
- Key written to temp file (0600) at upload time, deleted after
- Profile form: host, port, username, password, key textarea,
passphrase, remote path — all with showon="remote_storage:sftp"
- SQL migration for 7 new SFTP columns
- Wired into BackupEngine, SteppedBackupEngine, PreflightCheck
- API credential masking includes SFTP fields
CLI restore options:
- --files-only: restore files without touching database
- --db-only: restore database without touching files
- --no-preserve-config: overwrite configuration.php
- --password: decryption password for encrypted archives
2026-06-23 08:21:10 -05:00
jmiller
be8b1f73bf
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-23 12:24:35 +00:00
jmiller
0f2c4fc238
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-23 12:24:34 +00:00
jmiller
d0fe641d5c
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-23 12:24:32 +00:00
jmiller
4a2520a43b
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-23 12:24:30 +00:00
gitea-actions[bot]
54c3a6e2e9
chore: promote changelog [Unreleased] → [01.34.00]
2026-06-23 12:23:11 +00:00
gitea-actions[bot]
a27ec0f0b9
chore(release): build 01.34.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 6s
2026-06-23 12:23:05 +00:00
jmiller
a7c30ad67c
Merge pull request 'feat: Dashboard snapshot widget, backup trend, storage breakdown ( #61 )' ( #93 ) from feat/61-dashboard-widgets into main
2026-06-23 12:22:45 +00:00
Jonathan Miller
ee21f7a373
feat: dashboard snapshot widget, backup trend chart, storage breakdown ( #61 )
...
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 15s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 42s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 25s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3m18s
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
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 three new dashboard widgets:
- Snapshot widget: latest snapshot info, type badges, item counts,
link to snapshots view, total count
- Backup trend: CSS bar chart showing daily backup sizes over 30 days,
red bars for days with failures, tooltips with details
- Storage breakdown: horizontal bars showing space used per profile
with color coding and backup counts
Closes #61
2026-06-23 07:22:04 -05:00
gitea-actions[bot]
5c0ff72d27
chore: promote changelog [Unreleased] → [01.33.00]
2026-06-23 09:40:07 +00:00
gitea-actions[bot]
50c016d707
chore(release): build 01.33.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 4s
2026-06-23 09:40:05 +00:00
jmiller
e4de103a00
Merge pull request 'feat: Selective restore, archive browser, backup comparison + install fix ( #58 , #59 , #64 )' ( #92 ) from feat/batch-58-59-64 into main
2026-06-23 09:39:55 +00:00
Jonathan Miller
8c66fd3260
feat: backup comparison — diff two backup records ( #64 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 3s
Generic: Repo Health / Access control (pull_request) Successful in 3s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 8s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 13s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 16s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 1s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 3s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 14s
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
Select two backups and compare side-by-side:
- AjaxController::compareBackups() returns metadata + deltas
- Compare toolbar button (requires 2 checkboxes)
- Modal shows size, files, tables, duration differences
Closes #64
2026-06-23 04:39:00 -05:00
Jonathan Miller
4213def0ad
feat: backup archive browser — view files without extracting ( #59 )
...
AJAX-powered file browser in backups list and detail views:
- AjaxController::browseArchive() reads ZIP/tar.gz entries
- Browse button on each backup row + detail view
- Modal shows file list with names and sizes (first 500 entries)
Closes #59
2026-06-22 22:21:49 -05:00
Jonathan Miller
8a4ebe1bde
feat: selective article restore from snapshot ( #58 )
...
Browse articles inside a snapshot and restore individual items:
- SnapshotRestoreEngine::restoreSelectedArticles() merges by ID
- AjaxController::browseSnapshot() returns article list as JSON
- SnapshotsController::restoreSelected() handles selective restore
- Browse modal with checkboxes + Restore Selected button
Closes #58
2026-06-22 22:18:48 -05:00
Jonathan Miller
8ea09ee0d1
fix: convert single-line comments to block comments in script.php
...
The build pipeline strips newlines from PHP files during packaging.
Single-line comments (//) then eat everything after them on the
concatenated line, causing a FatalError on install. Block comments
(/* */) survive minification.
2026-06-22 19:38:46 -05:00
gitea-actions[bot]
d562e0dc10
chore: promote changelog [Unreleased] → [01.32.00]
2026-06-22 14:28:27 +00:00
gitea-actions[bot]
29c7e974b5
chore(release): build 01.32.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 22s
2026-06-22 14:28:22 +00:00
jmiller
6d47b70aaf
Merge pull request 'feat: Scheduled snapshots, restore notifications, stepped restore ( #56 , #60 , #62 )' ( #91 ) from feat/batch-56-60-62 into main
2026-06-22 14:28:01 +00:00
Jonathan Miller
01bed8942c
feat: AJAX stepped restore engine for large sites ( #62 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 9s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 32s
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 6s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 23s
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
Break restore into phases (extract, files, database, config, cleanup)
executed via AJAX steps to avoid PHP timeout on shared hosting.
- SteppedRestoreEngine with session persistence
- AjaxController restoreInit/restoreStep endpoints
- Restore modal uses AJAX progress instead of synchronous submit
- Files copied in batches of 200, SQL in batches of 500
Closes #62
2026-06-22 09:27:18 -05:00
Jonathan Miller
391047d8e5
feat: email/ntfy notifications for restore operations ( #60 )
...
Send notifications when site restores and snapshot create/restore
complete. Uses sendRestoreNotification() with type-specific subjects.
All calls wrapped in try-catch to never break the actual operation.
Closes #60
2026-06-22 09:27:16 -05:00
Jonathan Miller
5a672454ad
feat: scheduled task for automated content snapshots ( #56 )
...
Add mokosuitebackup.snapshot task type for com_scheduler with params
for content_types and description_format ([date]/[datetime] placeholders).
Closes #56
2026-06-22 09:27:14 -05:00
jmiller
ed799217bf
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-22 00:47:57 +00:00
jmiller
5f0f958aca
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-22 00:47:56 +00:00
jmiller
7bf42f1a89
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-22 00:47:56 +00:00
jmiller
a919d52cf7
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-22 00:47:55 +00:00
gitea-actions[bot]
a7e94467ee
chore: promote changelog [Unreleased] → [01.31.00]
2026-06-22 00:47:07 +00:00
gitea-actions[bot]
01335ac70f
chore(release): build 01.31.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 26s
2026-06-22 00:47:04 +00:00
jmiller
35b7e2a0b8
Merge pull request 'feat: CLI snapshots, auto-verify integrity, snapshot REST API ( #55 , #65 , #54 )' ( #90 ) from feat/batch-55-65-54 into main
2026-06-22 00:46:52 +00:00
Jonathan Miller
c72e950a25
feat: REST API endpoints for content snapshots ( #54 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Universal: PR Check / Secret Scan (pull_request) Successful in 10s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 15s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 39s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 17s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 1m49s
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
Add five endpoints matching the existing backup API pattern:
- GET /snapshots — list with pagination
- POST /snapshot — create (content_types, description)
- POST /snapshot/:id/restore — restore (mode, content_types)
- DELETE /snapshot/:id — delete record + file
- GET /snapshot/:id/download — stream JSON file
ACL: mokosuitebackup.snapshot.manage for write ops, core.manage for read.
Routes registered in webservices plugin alongside backup routes.
Closes #54
2026-06-21 19:46:07 -05:00
Jonathan Miller
5dcba6d8cb
feat: auto-verify backup integrity after creation ( #65 )
...
After archive is created and checksum computed, automatically verify:
- Archive opens without error
- Contains at least one entry
- database.sql present when backup type includes database
- First entry is readable (spot-check)
Applied to both BackupEngine and SteppedBackupEngine. Throws
RuntimeException on verification failure (backup marked as failed).
Closes #65
2026-06-21 19:45:46 -05:00
Jonathan Miller
0638c2cef6
feat: CLI command for content snapshots ( #55 )
...
Add `mokosuitebackup:snapshot` command with four actions:
- create: --types=articles,categories,modules --description="text"
- restore: --id=N --mode=replace|merge --types=articles
- list: displays table of all snapshots
- delete: --id=N removes file + DB record
Closes #55
2026-06-21 19:45:09 -05:00
jmiller
fc0c1b05a6
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-22 00:35:41 +00:00
jmiller
3547667158
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-22 00:35:40 +00:00
jmiller
b882e8ba90
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-22 00:35:39 +00:00
jmiller
db2beef189
chore: sync auto-release.yml from Template-Generic [skip ci]
2026-06-22 00:35:37 +00:00
jmiller
b0629f9f30
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-22 00:35:37 +00:00
gitea-actions[bot]
b3d955e1a8
chore: promote changelog [Unreleased] → [01.30.00]
2026-06-22 00:34:05 +00:00
gitea-actions[bot]
f5e8d0fe03
chore(release): build 01.30.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 34s
2026-06-22 00:34:02 +00:00
jmiller
5815a65a39
Merge pull request 'feat: Snapshot retention, extended snapshots, graceful remote degradation ( #63 , #57 , #66 )' ( #89 ) from feat/batch-63-57-66 into main
2026-06-22 00:33:51 +00:00
Jonathan Miller
ad1c0cf349
fix: scope #__fields_values dump and restore to com_content.article
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 28s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 17s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 2m55s
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
The fields_values table is shared across all Joomla extensions.
Previously, dump captured ALL field values and restore deleted ALL
field values, destroying data for contacts, users, and other
extensions. Now scoped via subquery on field_id WHERE context =
'com_content.article'.
2026-06-21 19:32:23 -05:00
Jonathan Miller
8b6e260b28
fix: graceful degradation when remote upload fails ( #66 )
...
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 9s
Universal: PR Check / Secret Scan (pull_request) Successful in 11s
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Has been skipped
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 44s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 47s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 17s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
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
Remote upload failure (S3/FTP/GDrive) no longer marks the entire
backup as failed. The local archive is preserved with status
'complete' and the upload failure is logged as a warning. Applies
to both BackupEngine and SteppedBackupEngine.
Closes #66
2026-06-21 19:09:20 -05:00
Jonathan Miller
eb7f48d3a2
feat: extend snapshots to include custom fields and tags ( #57 )
...
When articles are included in a snapshot, now also captures:
- #__tags (tag definitions)
- #__fields (custom field definitions for com_content.article)
- #__fields_values (custom field values)
- #__fields_categories (field-to-category mappings)
Restore correctly scopes deletes to avoid touching non-content fields.
Closes #57
2026-06-21 19:08:53 -05:00
Jonathan Miller
974b971340
feat: snapshot retention and automatic cleanup ( #63 )
...
Add retention settings for content snapshots (max count, max age days)
in component options. System plugin runs cleanupOldSnapshots() alongside
existing backup cleanup, deleting JSON files and DB records.
Closes #63
2026-06-21 19:08:27 -05:00
gitea-actions[bot]
9db7331a72
chore(version): pre-release bump to 01.28.01-dev [skip ci]
Publish to Composer / Publish Package (release) Failing after 5s
2026-06-21 23:58:07 +00:00
gitea-actions[bot]
32931c1e37
chore(version): auto-bump patch 01.27.04-dev [skip ci]
2026-06-21 23:57:56 +00:00
gitea-actions[bot]
c299798542
chore: promote changelog [Unreleased] → [01.27.03]
Universal: Auto Version Bump / Version Bump (push) Successful in 14s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 14s
Publish to Composer / Publish Package (release) Failing after 28s
2026-06-21 23:57:36 +00:00
gitea-actions[bot]
612dc4acd5
chore(release): build 01.27.03 [skip ci]
Publish to Composer / Publish Package (release) Failing after 6s
2026-06-21 23:57:32 +00:00
jmiller
cdb54f6a3e
Merge pull request 'fix: Remove orphaned root-level webservices plugin files' ( #87 ) from fix/remove-orphaned-root-files into main
2026-06-21 23:56:04 +00:00
jmiller
6fbc91527e
chore: remove unused Makefile - builds handled by CI auto-release
2026-06-21 23:55:32 +00:00
Jonathan Miller
57bfb37be1
fix: remove orphaned root-level webservices plugin files
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 5s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 8s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 8s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 8s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 14s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 26s
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
The root mokosuitebackup.xml and mokosuitebackup.php are stale
copies from before the code was restructured into source/packages/.
The webservices plugin lives at source/packages/plg_webservices_mokosuitebackup/
with its own manifest and src/ directory.
The root manifest still referenced <folder>src</folder> but that
directory was removed in PR #82 , causing Joomla installer to fail
with "File does not exist [ROOT][TMP]/.../mokosuitebackup/src".
2026-06-21 18:54:45 -05:00
Jonathan Miller
3328d7cf19
feat: backup type filter + path traversal protection ( #68 , #72 )
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 25s
Universal: Build & Release / Promote to RC (pull_request) Successful in 28s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 7s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 11s
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
#68 : Add backup type filter dropdown to backups list view
- filter_backups.xml: full/database/files/differential options
- BackupsModel: backup_type filter in getListQuery()
- Language string: COM_MOKOJOOMBACKUP_FILTER_TYPE_ALL
#72 : Path traversal protection in RestoreEngine and MokoRestore
- RestoreEngine::extractArchive(): validate ZIP entries before extractTo()
- RestoreEngine::extractTarGz(): validate PharData entries before extractTo()
- MokoRestore standalone script: same validation in generated PHP code
- Rejects entries containing ../ or starting with / or \
Closes #68 , closes #72
2026-06-21 18:50:07 -05:00
jmiller
c410c02487
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-21 23:38:38 +00:00
jmiller
93879c8118
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-21 23:38:37 +00:00
jmiller
e4329c9fc6
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-21 23:38:34 +00:00
gitea-actions[bot]
0fa58daa12
chore: promote changelog [Unreleased] → [01.27.00]
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 21s
Publish to Composer / Publish Package (release) Failing after 1m46s
2026-06-21 23:24:27 +00:00
gitea-actions[bot]
f8591ed15c
chore(release): build 01.27.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 48s
2026-06-21 23:24:24 +00:00
jmiller
cbc7004d18
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-21 23:24:11 +00:00
jmiller
a33a585b98
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-21 23:24:10 +00:00
jmiller
2573ba8599
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-21 23:24:09 +00:00
jmiller
f0d506bbb1
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-21 23:24:06 +00:00
jmiller
a26343a76e
Merge pull request 'fix: Remaining audit findings — OOM, security, error handling ( #81 )' ( #85 ) from fix/audit-remaining into main
2026-06-21 23:17:56 +00:00
Jonathan Miller
9990240d2d
fix: remaining audit findings — OOM, security, error handling ( #81 )
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 5s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 22s
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Universal: PR Check / Secret Scan (pull_request) Successful in 7s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 49s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 5s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 46s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 2m32s
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
CRITICAL:
- #73 : S3Uploader now streams file via CURLOPT_PUT/INFILE instead of
loading entire file into RAM with file_get_contents
- #74 : DatabaseDumper gains dumpToFile() that streams SQL to disk;
BackupEngine uses addFile() instead of addFromString() to avoid
holding the entire dump in memory
- #75 : AkeebaImporter removes unserialize() — only uses json_decode,
skips legacy serialized filter data to prevent object injection
MEDIUM (also fixed):
- BackupEngine: $archiveName initialized before try block (prevents
undefined variable in catch)
- BackupEngine: plaintext archive deleted on encryption failure
- BackupEngine: temp SQL file cleaned up in both success and failure
- BackupEngine: createArchiver() throws on unknown format instead of
silently falling back to ZIP
- TarGzArchiver: intermediate .tar cleaned up in finally block
Closes #73 , closes #74 , closes #75
Ref #81
2026-06-21 18:16:46 -05:00
jmiller
418db394a4
Merge pull request 'chore: remove automation directory' ( #82 ) from fix/remove-automation into main
2026-06-21 23:10:42 +00:00
jmiller
d939d8c9d7
Merge pull request 'fix: Critical and high audit findings ( #81 )' ( #83 ) from fix/audit-critical-high into main
2026-06-21 23:10:19 +00:00
gitea-actions[bot]
6383e9b111
chore(version): pre-release bump to 01.27.03-dev [skip ci]
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 21s
Publish to Composer / Publish Package (release) Failing after 44s
Branch Cleanup / Delete merged branch (pull_request) Failing after 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 5s
2026-06-21 23:10:10 +00:00
Jonathan Miller
2395a4eabc
fix: critical and high audit findings ( #81 )
...
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 5s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 23s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 17s
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 7m48s
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
Fixes all critical and high severity issues from the codebase audit:
CRITICAL:
- #71 : RestoreCommand passed wrong args to RestoreEngine (filepath
instead of record ID) — CLI restore was completely broken
- #72 : JpaUnarchiver path traversal — added traversal rejection and
realpath boundary check to prevent writes outside staging dir
- #77 : RestoreEngine staging path sanitized — $record->tag stripped
of non-alphanumeric characters
HIGH:
- #75 : (noted, AkeebaImporter unserialize needs separate refactor)
- #76 : BackupTable now deletes DB row before file — prevents data
loss if DB delete fails
- #78 : API profiles endpoint now masks sensitive fields (passwords,
keys, tokens) with '***'
- #79 : Webcron handler adds return after sendJsonResponse — prevents
execution falling through on non-terminal close()
- #80 : BackupModel/ProfileModel loadFormData() now casts array to
object — prevents TypeError on PHP 8.x form state restore
PREFLIGHT HARDENING:
- PreflightCheck::run() wrapped in try-catch for DB exceptions
- mkdir() failure now includes actual error reason
- Unresolved placeholders generate a warning instead of silent return
Closes #71 , closes #76 , closes #77 , closes #78 , closes #79 , closes #80
Ref #72 , ref #81
2026-06-21 18:08:58 -05:00
Jonathan Miller
1ec8ec8f6d
chore: remove automation directory
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 6s
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 10s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 52s
Universal: Build & Release / Promote to RC (pull_request) Failing after 14s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
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
2026-06-21 18:03:55 -05:00
jmiller
8df630c529
chore: sync repo-health.yml from Template-Generic [skip ci]
2026-06-21 22:56:04 +00:00
jmiller
5c8503e79e
chore: sync pr-check.yml from Template-Generic [skip ci]
2026-06-21 22:56:02 +00:00
jmiller
3a087d7859
chore: sync issue-branch.yml from Template-Generic [skip ci]
2026-06-21 22:56:01 +00:00
jmiller
58d3b812a7
chore: sync auto-bump.yml from Template-Generic [skip ci]
2026-06-21 22:55:58 +00:00
gitea-actions[bot]
ac3727f22f
chore: promote changelog [Unreleased] → [01.27.00]
Universal: Auto Version Bump / Version Bump (push) Successful in 13s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 14s
2026-06-21 22:54:50 +00:00
gitea-actions[bot]
43a4e552ce
chore(release): build 01.27.00 [skip ci]
Publish to Composer / Publish Package (release) Failing after 6s
2026-06-21 22:54:47 +00:00
jmiller
a532e639ea
Merge pull request 'feat: Pre-flight checks before backup starts ( #67 )' ( #70 ) from feature/67-preflight-checks into main
2026-06-21 22:54:34 +00:00
gitea-actions[bot]
f099ad8fe9
chore(version): auto-bump patch 01.26.02-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 18s
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 2m35s
2026-06-21 22:54:29 +00:00
Jonathan Miller
dbed0d0da7
fix: address PR review — remove dead code, consistent warnings key
...
Universal: PR Check / Branch Policy (pull_request) Failing after 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 7s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 35s
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
- Remove dead checkRequiredExtensions() method (superseded by PreflightCheck)
- Add 'warnings' key to ALL return paths in BackupEngine::run() and
SteppedBackupEngine::init() to prevent undefined key access on PHP 8.x
- Include preflight warnings in success, failure, and early-exit returns
2026-06-21 17:54:11 -05:00
gitea-actions[bot]
617c103055
chore(version): auto-bump patch 01.26.01-dev [skip ci]
2026-06-21 22:47:28 +00:00
Jonathan Miller
edb202071c
feat: add pre-flight checks before backup starts ( #67 )
...
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Validate backup prerequisites before creating any record, catching
common issues early with clear messages instead of failing mid-backup.
Pre-flight checks:
- Required PHP extensions (zip, pdo, pdo_mysql, mbstring, curl)
- Backup directory exists and is writable
- Sufficient disk space (last backup size + 20% buffer, skipped if
no previous backup exists)
- No other backup already running for this profile
- Excluded tables exist in database (warns on missing)
- Remote storage credentials minimally configured (FTP/S3/GDrive)
Errors block the backup; warnings are logged and displayed but allow
the backup to proceed. Integrated into both BackupEngine::run() and
SteppedBackupEngine::init() before any record is inserted.
UI: AJAX init response includes warnings array, displayed in the
stepped backup progress modal.
Closes #67
2026-06-21 17:47:13 -05:00