Files
MokoSuiteBackup/source/packages/com_mokosuitebackup/config.xml
T
Jonathan Miller e745735ccd
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 1s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 5s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Failing after 8s
Universal: Auto Version Bump / Version Bump (push) Successful in 9s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 6s
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / 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
feat: auto-backup before extension update or uninstall
Add two new options in component config (Pre-action Backups fieldset):
- Backup Before Extension Update (default: No)
- Backup Before Extension Uninstall (default: No)

System plugin subscribes to onExtensionBeforeUpdate and
onExtensionBeforeUninstall events. When enabled, runs a full backup
using the default profile before any extension is updated or
uninstalled. Throttled to once per 10 minutes via session flag to
prevent duplicate backups during batch operations.
2026-06-13 08:02:07 -05:00

166 lines
4.5 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
* @package MokoSuiteBackup
* @subpackage com_mokosuitebackup
* @author Moko Consulting <hello@mokoconsulting.tech>
* @copyright Copyright (C) 2026 Moko Consulting. All rights reserved.
* @license GNU General Public License version 3 or later; see LICENSE
-->
<config>
<fieldset name="general" label="COM_MOKOJOOMBACKUP_CONFIG_GENERAL">
<field
name="default_backup_dir"
type="FolderPicker"
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR"
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_BACKUP_DIR_DESC"
default="administrator/components/com_mokosuitebackup/backups"
addfieldprefix="Joomla\Component\MokoSuiteBackup\Administrator\Field"
/>
<field
name="default_profile"
type="sql"
label="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE"
description="COM_MOKOJOOMBACKUP_CONFIG_DEFAULT_PROFILE_DESC"
query="SELECT id AS value, title AS text FROM #__mokosuitebackup_profiles WHERE published = 1 ORDER BY ordering ASC"
default="1"
>
<option value="1">Default Backup Profile</option>
</field>
<field
name="show_update_notice"
type="radio"
label="COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE"
description="COM_MOKOJOOMBACKUP_CONFIG_SHOW_UPDATE_NOTICE_DESC"
default="1"
class="btn-group"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="webcron" label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON">
<field
name="webcron_secret"
type="text"
label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_SECRET"
description="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_SECRET_DESC"
default=""
filter="string"
maxlength="64"
/>
<field
name="webcron_enabled"
type="radio"
label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_ENABLED"
description="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_ENABLED_DESC"
default="0"
class="btn-group"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="webcron_ip_whitelist"
type="text"
label="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_IP"
description="COM_MOKOJOOMBACKUP_CONFIG_WEBCRON_IP_DESC"
default=""
filter="string"
hint="Leave blank to allow any IP"
/>
</fieldset>
<fieldset name="preaction" label="COM_MOKOJOOMBACKUP_CONFIG_PREACTION">
<field
name="backup_before_update"
type="radio"
label="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UPDATE"
description="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UPDATE_DESC"
default="0"
class="btn-group"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="backup_before_uninstall"
type="radio"
label="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UNINSTALL"
description="COM_MOKOJOOMBACKUP_CONFIG_BACKUP_BEFORE_UNINSTALL_DESC"
default="0"
class="btn-group"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="cleanup" label="COM_MOKOJOOMBACKUP_CONFIG_CLEANUP">
<field
name="max_age_days"
type="number"
label="COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE"
description="COM_MOKOJOOMBACKUP_CONFIG_MAX_AGE_DESC"
default="30"
min="1"
max="365"
/>
<field
name="max_backups"
type="number"
label="COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS"
description="COM_MOKOJOOMBACKUP_CONFIG_MAX_BACKUPS_DESC"
default="10"
min="1"
max="100"
/>
</fieldset>
<fieldset name="notifications" label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFICATIONS">
<field
name="notify_email"
type="text"
label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL"
description="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_EMAIL_DESC"
default=""
filter="string"
/>
<field
name="notify_on_success"
type="radio"
label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS"
description="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_SUCCESS_DESC"
default="0"
class="btn-group"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="notify_on_failure"
type="radio"
label="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE"
description="COM_MOKOJOOMBACKUP_CONFIG_NOTIFY_FAILURE_DESC"
default="1"
class="btn-group"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="permissions" label="JCONFIG_PERMISSIONS_LABEL"
description="JCONFIG_PERMISSIONS_DESC">
<field
name="rules"
type="rules"
label="JCONFIG_PERMISSIONS_LABEL"
filter="rules"
validate="rules"
component="com_mokosuitebackup"
section="component"
/>
</fieldset>
</config>