From cd975439b248d02449ee2651047cab8d6ad03f19 Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Mon, 29 Jun 2026 16:39:39 +0000 Subject: [PATCH] Update "Configuration" --- Configuration.md | 118 ++++++++++++++++++++++++++++++++++++++++ guides/Configuration.md | 60 -------------------- 2 files changed, 118 insertions(+), 60 deletions(-) create mode 100644 Configuration.md delete mode 100644 guides/Configuration.md diff --git a/Configuration.md b/Configuration.md new file mode 100644 index 0000000..9c8c0d3 --- /dev/null +++ b/Configuration.md @@ -0,0 +1,118 @@ +# Configuration + +## Component Settings + +Access via **Components > MokoSuiteBackup > Options** (toolbar gear icon). + +### General + +| Setting | Type | Default | Description | +|---|---|---|---| +| Default Backup Directory | FolderPicker | `[DEFAULT_DIR]` | Default storage path for new profiles | +| Default Profile | SQL list | `1` | Profile used by dashboard Backup Now | +| Show Update Notice | Radio | Yes | Display update notifications | + +### Defaults + +| Setting | Type | Default | Description | +|---|---|---|---| +| Default Archive Format | List | ZIP | zip, tar.gz, 7z for new profiles | +| Default MokoRestore Mode | List | None | none, wrapped, standalone | +| Default Sanitize Passwords | Radio | No | Sanitize user passwords in new profiles | +| Default Sanitize Emails | Radio | No | Sanitize user emails in new profiles | +| Default Sanitize Sessions | Radio | Yes | Skip session data in new profiles | +| Log Retention Days | Number | 90 | Delete backup logs older than N days (0–365) | + +### Webcron + +| Setting | Type | Default | Description | +|---|---|---|---| +| Webcron Secret | WebcronSecret | — | Secret key with CSPRNG generator + strength meter | +| Webcron Enabled | Radio | No | Enable/disable webcron endpoint | +| Webcron IP Whitelist | IpWhitelist | — | Allowed IPs with auto-detect + "Add my IP" button | + +### Pre-action + +| Setting | Type | Default | Description | +|---|---|---|---| +| Backup Before Update | Radio | No | Auto-backup before Joomla extension updates | +| Backup Before Uninstall | Radio | No | Auto-backup before extension uninstall | + +### Cleanup + +| Setting | Type | Default | Description | +|---|---|---|---| +| Max Backup Age | Number | 30 days | Delete completed backups older than this (1–365) | +| Max Backups | Number | 10 | Keep at most this many completed backups (1–100) | + +### Snapshot Retention + +| Setting | Type | Default | Description | +|---|---|---|---| +| Max Snapshot Count | Number | 20 | Maximum number of snapshots to keep (0–100) | +| Max Snapshot Age | Number | 30 days | Delete snapshots older than this (0–365) | + +### Notifications + +| Setting | Type | Default | Description | +|---|---|---|---| +| Notification Email | Text | — | Comma-separated recipient email addresses | +| Notify on Success | Radio | No | Send email when backup completes | +| Notify on Failure | Radio | Yes | Send email when backup fails (includes log excerpt) | + +### ntfy Push Notifications + +| Setting | Type | Default | Description | +|---|---|---|---| +| ntfy Server | URL | `https://ntfy.mokoconsulting.tech` | ntfy server URL | +| ntfy Topic | Text | — | ntfy topic name | +| ntfy Token | Password | — | ntfy access token (optional) | + +### Permissions + +Standard Joomla ACL permissions configuration. See [ACL Permissions](#acl-permissions) below. + +--- + +## ACL Permissions + +MokoSuiteBackup defines 14 ACL actions in `access.xml`: + +| Permission | Description | +|---|---| +| `core.admin` | Configure component settings and permissions | +| `core.options` | Access component options | +| `core.manage` | Access the component backend | +| `core.create` | Create new profiles | +| `core.delete` | Delete profiles and backup records | +| `core.edit` | Edit profiles | +| `core.edit.state` | Change profile published state | +| `mokosuitebackup.backup.run` | Start a backup | +| `mokosuitebackup.backup.download` | Download backup archives | +| `mokosuitebackup.backup.restore` | Restore from a backup | +| `mokosuitebackup.snapshot.manage` | Create, restore, and delete snapshots | +| `mokosuitebackup.backup.purge` | Purge old backups | +| `mokosuitebackup.backup.compare` | Compare two backups side-by-side | +| `mokosuitebackup.backup.browse` | Browse files inside an archive | + +All permissions are enforced across admin controllers, CLI commands, and REST API endpoints. + +--- + +## Dashboard Widget + +The quickicon plugin shows backup status on the Joomla admin dashboard: +- **Green (OK)**: Last backup within 7 days, no failures +- **Warning**: No backups yet, recent failures, or last backup > 7 days ago +- Shows: last backup time, total count, total storage + +## Backup Profile Settings + +Each profile has configuration tabs for: +- **General** — Title, description, backup type (Full / Database Only / Files Only / Differential) +- **Archive** — Format, compression, split size, backup directory (with placeholder pills), encryption, MokoRestore mode, restore script name +- **Exclusions** — Exclude directories, files (with wildcards), and database tables +- **Notifications** — Per-profile email, user groups, ntfy topic/server/token +- **Remote Destinations** — AJAX-driven add/edit/delete/toggle modal for multiple remotes per profile (see [Remote Storage](reference/Remote-Storage)) +- **Retention** — Per-profile retention days and count (0 = use global) +- **Sanitization** — Sanitize passwords, emails, sessions; preserve super admin option \ No newline at end of file diff --git a/guides/Configuration.md b/guides/Configuration.md deleted file mode 100644 index e75ac2c..0000000 --- a/guides/Configuration.md +++ /dev/null @@ -1,60 +0,0 @@ -# Configuration - -## Component Settings - -Access via **Components > MokoSuiteBackup > Options** (toolbar gear icon). - -The component has two main views: -- **Backup Records** — History of all backups with status, size, download, verify, and restore -- **Backup Profiles** — Configurable backup profiles - -## Dashboard Widget - -The quickicon plugin shows backup status on the Joomla admin dashboard: -- **Green (OK)**: Last backup within 7 days, no failures -- **Warning**: No backups yet, recent failures, or last backup > 7 days ago -- Shows: last backup time, total count, total storage - -## System Plugin Settings - -Access via **System > Manage > Plugins**, search for "System - MokoSuiteBackup". - -| Setting | Default | Description | -|---|---|---| -| Auto Cleanup | Yes | Automatically remove old backup archives | -| Max Backup Age | 30 days | Delete completed backups older than this | -| Max Backup Count | 10 | Keep at most this many completed backups | - -## Backup Profile Settings - -Each profile has six configuration tabs: - -### General Tab -- **Title** — Profile name (e.g. "Daily Full Backup") -- **Description** — Optional notes -- **Backup Type** — Full Site, Database Only, Files Only, or Differential - -### Archive Settings Tab -- **Archive Format** — ZIP -- **Compression Level** — None / Low / Normal / Maximum -- **Split Size** — Split archive into parts (0 = no splitting) -- **Backup Directory** — Relative path from Joomla root -- **Encryption Password** — AES-256 archive encryption (blank = none) -- **Include Restore Script** — Embed standalone restore.php for bare-server restores - -### Exclusion Filters Tab -- **Exclude Directories** — One path per line (relative to Joomla root) -- **Exclude Files** — One filename/pattern per line (supports `*` wildcards) -- **Exclude Tables** — One table name per line (use `#__` prefix) - -### Notifications Tab -- **Notification Email(s)** — Comma-separated recipient list -- **Notify on Success** — Send email when backup completes -- **Notify on Failure** — Send email when backup fails (includes log excerpt) - -### Remote Storage Tab -See [Remote Storage](Remote-Storage) for FTP, Google Drive, and S3 settings. - -### Sidebar -- **Status** — Published / Unpublished -- **Ordering** — Display order in profile lists