From 9a313439aeea62a72c9255d93d231cdc3e28143c Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Sat, 30 May 2026 22:17:40 +0000 Subject: [PATCH 01/11] chore: sync updates.xml 02.25.00 from main [skip ci] --- updates.xml | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/updates.xml b/updates.xml index 0ea76be..15ec669 100644 --- a/updates.xml +++ b/updates.xml @@ -1,29 +1,10 @@ - - MokoWaaS - MokoWaaS stable build. - pkg_mokowaas - package - site - 02.24.00 - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/stable - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.24.00.zip - - b659d10d8e5e66cd03cedcafcc9230389e2c43b5a3a8bc996eed7fe79cb0bba1 - stable - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - Package - MokoWaaS Package - MokoWaaS dev build. @@ -36,7 +17,7 @@ https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.00-dev.zip - f4fb93caec805ec4d3c325ea50aa5dc2b156b2161c121571f2d3f21ef24efdd7 + 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting @@ -55,7 +36,7 @@ https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/alpha/pkg_mokowaas-02.25.00-alpha.zip - f4fb93caec805ec4d3c325ea50aa5dc2b156b2161c121571f2d3f21ef24efdd7 + 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 alpha https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting @@ -74,7 +55,7 @@ https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/beta/pkg_mokowaas-02.25.00-beta.zip - f4fb93caec805ec4d3c325ea50aa5dc2b156b2161c121571f2d3f21ef24efdd7 + 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 beta https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting @@ -89,15 +70,34 @@ site 02.25.00-rc 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/release-candidate + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/release-candidate - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/release-candidate/pkg_mokowaas-02.25.00-rc.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/release-candidate/pkg_mokowaas-02.25.00-rc.zip - f4fb93caec805ec4d3c325ea50aa5dc2b156b2161c121571f2d3f21ef24efdd7 + 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 rc https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech + + + + Package - MokoWaaS + Package - MokoWaaS stable build. + pkg_mokowaas + package + site + 02.25.00 + 2026-05-30 + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/stable + + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.25.00.zip + + 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 + stable + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md + Moko Consulting + https://mokoconsulting.tech -- 2.52.0 From 96e89d0b0f42790b8c6aad202f14e4afbecdb9f9 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 17:51:37 -0500 Subject: [PATCH 02/11] feat: add copy-to-clipboard button on health API token field New CopyableTokenField renders a readonly monospace input with a Copy button, matching Joomla's native API token UX in user profiles. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Field/CopyableTokenField.php | 63 +++++++++++++++++++ src/packages/plg_system_mokowaas/mokowaas.xml | 3 +- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 src/packages/plg_system_mokowaas/Field/CopyableTokenField.php diff --git a/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php new file mode 100644 index 0000000..f6be18a --- /dev/null +++ b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php @@ -0,0 +1,63 @@ +value ?? '', ENT_QUOTES, 'UTF-8'); + $id = $this->id; + + if (empty($this->value)) + { + return '
Token will be generated automatically on first save.
'; + } + + return << + + + +HTML; + } +} diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 946534f..60c4aa5 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -395,10 +395,11 @@
Date: Sat, 30 May 2026 22:52:06 +0000 Subject: [PATCH 03/11] chore(version): auto-bump 02.25.01-dev [skip ci] --- .mokogitea/manifest.xml | 2 +- .mokogitea/workflows/issue-branch.yml | 2 +- CHANGELOG.md | 2 +- CODE_OF_CONDUCT.md | 2 +- GOVERNANCE.md | 2 +- LICENSE.md | 2 +- README.md | 2 +- SECURITY.md | 2 +- docs/guides/build-guide.md | 4 ++-- docs/guides/configuration-guide.md | 4 ++-- docs/guides/installation-guide.md | 4 ++-- docs/guides/operations-guide.md | 4 ++-- docs/guides/rollback-and-recovery-guide.md | 4 ++-- docs/guides/testing-guide.md | 4 ++-- docs/guides/troubleshooting-guide.md | 4 ++-- docs/guides/upgrade-and-versioning-guide.md | 4 ++-- docs/index.md | 4 ++-- docs/plugin-basic.md | 4 ++-- docs/update-server.md | 2 +- src/packages/com_mokowaas/mokowaas.xml | 2 +- src/packages/plg_system_mokowaas/Extension/MokoWaaS.php | 2 +- src/packages/plg_system_mokowaas/Field/AllowedIpsField.php | 2 +- src/packages/plg_system_mokowaas/Field/CopyableTokenField.php | 2 +- src/packages/plg_system_mokowaas/Field/CurrentIpField.php | 2 +- .../plg_system_mokowaas/Service/ContentSyncReceiver.php | 2 +- .../plg_system_mokowaas/Service/ContentSyncService.php | 2 +- src/packages/plg_system_mokowaas/Service/DemoResetService.php | 2 +- src/packages/plg_system_mokowaas/mokowaas.xml | 2 +- src/packages/plg_system_mokowaas/script.php | 2 +- src/packages/plg_system_mokowaas/services/provider.php | 2 +- src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml | 2 +- src/packages/plg_webservices_mokowaas/mokowaas.xml | 2 +- .../plg_webservices_perfectpublisher/perfectpublisher.xml | 2 +- .../plg_webservices_perfectpublisher/services/provider.php | 2 +- .../src/Extension/PerfectPublisherApi.php | 2 +- src/pkg_mokowaas.xml | 2 +- updates.xml | 2 +- 37 files changed, 47 insertions(+), 47 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index 8b16b66..ecae0b3 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -8,7 +8,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.24.01 + 02.25.01 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index f99f4da..8d0c330 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: moko-platform.Automation -# VERSION: 02.24.01 +# VERSION: 02.25.01 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index 060e5be..b03d431 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: ./CHANGELOG.md - VERSION: 02.24.01 + VERSION: 02.25.01 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 8287ca2..72fa31a 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 1d60037..1b9782f 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -19,7 +19,7 @@ DEFGROUP: mokoconsulting-tech.MokoWaaSBrand INGROUP: MokoStandards.Governance REPO: https://github.com/mokoconsulting-tech/MokoWaaSBrand - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index b53d18d..aaa3f74 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -15,7 +15,7 @@ INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: ./LICENSE.md - VERSION: 02.24.01 + VERSION: 02.25.01 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index 998ae8b..abb15b8 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 71033f8..1d53c51 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 02.24.01 +VERSION: 02.25.01 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index c36f97b..2b2dcd1 100644 --- a/docs/guides/build-guide.md +++ b/docs/guides/build-guide.md @@ -11,13 +11,13 @@ INGROUP: MokoWaaS.Build REPO: https://github.com/mokoconsulting-tech/mokowaas FILE: build-guide.md - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/ BRIEF: Build and packaging guide for the MokoWaaS system plugin NOTE: Defines environment setup, repository layout, packaging rules, and release preparation --> -# MokoWaaS Build Guide (VERSION: 02.24.01) +# MokoWaaS Build Guide (VERSION: 02.25.01) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index 0d73bfb..9b32dbc 100644 --- a/docs/guides/configuration-guide.md +++ b/docs/guides/configuration-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/configuration-guide.md BRIEF: Configuration guide for the MokoWaaS system plugin NOTE: Defines plugin parameters, expected behaviors, and recommended defaults --> -# MokoWaaS Configuration Guide (VERSION: 02.24.01) +# MokoWaaS Configuration Guide (VERSION: 02.25.01) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index 8084bc4..27538dc 100644 --- a/docs/guides/installation-guide.md +++ b/docs/guides/installation-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/installation-guide.md BRIEF: Installation guide for the MokoWaaS system plugin NOTE: First document in the guide set --> -# MokoWaaS Installation Guide (VERSION: 02.24.01) +# MokoWaaS Installation Guide (VERSION: 02.25.01) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index ce8538d..8111be0 100644 --- a/docs/guides/operations-guide.md +++ b/docs/guides/operations-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/operations-guide.md BRIEF: Operational guide for administering and managing the MokoWaaS system plugin NOTE: Defines lifecycle, responsibilities, and operational behaviors --> -# MokoWaaS Operations Guide (VERSION: 02.24.01) +# MokoWaaS Operations Guide (VERSION: 02.25.01) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index 7f3c710..767c9b4 100644 --- a/docs/guides/rollback-and-recovery-guide.md +++ b/docs/guides/rollback-and-recovery-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/rollback-and-recovery-guide.md BRIEF: Rollback and recovery guide for restoring stable operation after plugin related incidents NOTE: Completes the core guide set for WaaS plugin governance --> -# MokoWaaS Rollback and Recovery Guide (VERSION: 02.24.01) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.25.01) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index cd9bb56..0fe0cfb 100644 --- a/docs/guides/testing-guide.md +++ b/docs/guides/testing-guide.md @@ -7,13 +7,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/testing-guide.md BRIEF: Testing guide for MokoWaaS v02.01.08 NOTE: Covers manual test procedures for language overrides, install/uninstall, and configuration --> -# MokoWaaS Testing Guide (VERSION: 02.24.01) +# MokoWaaS Testing Guide (VERSION: 02.25.01) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index a42255e..f6bb830 100644 --- a/docs/guides/troubleshooting-guide.md +++ b/docs/guides/troubleshooting-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/troubleshooting-guide.md BRIEF: Troubleshooting guide for diagnosing and resolving issues related to the MokoWaaS plugin NOTE: Designed for administrators and WaaS operations teams --> -# MokoWaaS Troubleshooting Guide (VERSION: 02.24.01) +# MokoWaaS Troubleshooting Guide (VERSION: 02.25.01) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index 44e26ee..85c7536 100644 --- a/docs/guides/upgrade-and-versioning-guide.md +++ b/docs/guides/upgrade-and-versioning-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/guides/upgrade-and-versioning-guide.md BRIEF: Guide for updating, versioning, and maintaining the MokoWaaS plugin NOTE: Defines release flow, version rules, and upgrade validation --> -# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.24.01) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.25.01) ## Introduction diff --git a/docs/index.md b/docs/index.md index 5609f14..8b3df44 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.24.01 + VERSION: 02.25.01 PATH: /docs/index.md BRIEF: Master index of all documentation for the MokoWaaS plugin NOTE: Automatically maintained index for all guide canvases --> -# MokoWaaS Documentation Index (VERSION: 02.24.01) +# MokoWaaS Documentation Index (VERSION: 02.25.01) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 56da3a0..581a128 100644 --- a/docs/plugin-basic.md +++ b/docs/plugin-basic.md @@ -11,12 +11,12 @@ INGROUP: MokoWaaS REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: /docs/plugin-basic.md - VERSION: 02.24.01 + VERSION: 02.25.01 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.24.01) +# MokoWaaS Plugin Overview (VERSION: 02.25.01) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index c8bebb6..b32bfc6 100644 --- a/docs/update-server.md +++ b/docs/update-server.md @@ -10,7 +10,7 @@ DEFGROUP: MokoWaaS.Documentation INGROUP: MokoStandards.Templates REPO: https://github.com/mokoconsulting-tech/MokoWaaS PATH: /docs/update-server.md -VERSION: 02.24.01 +VERSION: 02.25.01 BRIEF: How this extension's Joomla update server file (update.xml) is managed --> diff --git a/src/packages/com_mokowaas/mokowaas.xml b/src/packages/com_mokowaas/mokowaas.xml index 00c79ea..aeb2b63 100644 --- a/src/packages/com_mokowaas/mokowaas.xml +++ b/src/packages/com_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.24.01-dev + 02.25.01-dev Minimal API-only component for MokoWaaS. Provides REST endpoints for site health, cache, updates, and backups. Moko\Component\MokoWaaS\Api diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php index 8c386d8..25bfd77 100644 --- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php +++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.24.01 + * VERSION: 02.25.01 * PATH: /src/Extension/MokoWaaS.php * NOTE: Handles Joomla system events for rebranding functionality */ diff --git a/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php b/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php index cca7f84..2063a54 100644 --- a/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php +++ b/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php @@ -7,7 +7,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.24.01 + * VERSION: 02.25.01 * PATH: /src/Field/AllowedIpsField.php * BRIEF: Custom form field that displays the current IP whitelist */ diff --git a/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php index f6be18a..a04f1a1 100644 --- a/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php +++ b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.00 + * VERSION: 02.25.01 * PATH: /src/Field/CopyableTokenField.php * BRIEF: Read-only token field with a copy-to-clipboard button */ diff --git a/src/packages/plg_system_mokowaas/Field/CurrentIpField.php b/src/packages/plg_system_mokowaas/Field/CurrentIpField.php index 477a7fa..c1a8573 100644 --- a/src/packages/plg_system_mokowaas/Field/CurrentIpField.php +++ b/src/packages/plg_system_mokowaas/Field/CurrentIpField.php @@ -7,7 +7,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.24.01 + * VERSION: 02.25.01 * PATH: /src/Field/CurrentIpField.php * BRIEF: Read-only field that displays the current user's IP address */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index abae2e1..44f1caa 100644 --- a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php +++ b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php - * VERSION: 02.24.01 + * VERSION: 02.25.01 * BRIEF: Receiver-side content sync — applies incoming payload to local DB */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncService.php b/src/packages/plg_system_mokowaas/Service/ContentSyncService.php index 65a9d43..fd1b213 100644 --- a/src/packages/plg_system_mokowaas/Service/ContentSyncService.php +++ b/src/packages/plg_system_mokowaas/Service/ContentSyncService.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/ContentSyncService.php - * VERSION: 02.24.01 + * VERSION: 02.25.01 * BRIEF: Sender-side content sync — builds payload and pushes to remote sites */ diff --git a/src/packages/plg_system_mokowaas/Service/DemoResetService.php b/src/packages/plg_system_mokowaas/Service/DemoResetService.php index 0a114ac..419c6a8 100644 --- a/src/packages/plg_system_mokowaas/Service/DemoResetService.php +++ b/src/packages/plg_system_mokowaas/Service/DemoResetService.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/DemoResetService.php - * VERSION: 02.24.01 + * VERSION: 02.25.01 * BRIEF: Core snapshot/restore service for demo site reset */ diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 60c4aa5..3d4236a 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -30,7 +30,7 @@ GNU General Public License version 3 or later; see LICENSE.md hello@mokoconsulting.tech https://mokoconsulting.tech - 02.24.01-dev + 02.25.01-dev This plugin rebrands the Joomla system interface with MokoWaaS identity. It applies language overrides and ensures consistent branding across the platform. Moko\Plugin\System\MokoWaaS script.php diff --git a/src/packages/plg_system_mokowaas/script.php b/src/packages/plg_system_mokowaas/script.php index 714b018..53c7426 100644 --- a/src/packages/plg_system_mokowaas/script.php +++ b/src/packages/plg_system_mokowaas/script.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.24.01 + * VERSION: 02.25.01 * PATH: /src/script.php * BRIEF: Installation script for MokoWaaS plugin * NOTE: Handles installation, update, and uninstallation tasks including language override deployment diff --git a/src/packages/plg_system_mokowaas/services/provider.php b/src/packages/plg_system_mokowaas/services/provider.php index 5be6782..79d2a59 100644 --- a/src/packages/plg_system_mokowaas/services/provider.php +++ b/src/packages/plg_system_mokowaas/services/provider.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.24.01 + * VERSION: 02.25.01 * PATH: /src/services/provider.php * BRIEF: Service provider for dependency injection in Joomla 5.x * NOTE: Registers the plugin with Joomla's DI container diff --git a/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml b/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml index b07a2d2..203269c 100644 --- a/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml +++ b/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml @@ -12,7 +12,7 @@ GNU General Public License version 3 or later; see LICENSE hello@mokoconsulting.tech https://mokoconsulting.tech - 02.24.01-dev + 02.25.01-dev PLG_TASK_MOKOWAASDEMO_DESC Moko\Plugin\Task\MokoWaaSDemo diff --git a/src/packages/plg_webservices_mokowaas/mokowaas.xml b/src/packages/plg_webservices_mokowaas/mokowaas.xml index b0749af..4ed4c7d 100644 --- a/src/packages/plg_webservices_mokowaas/mokowaas.xml +++ b/src/packages/plg_webservices_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.24.01-dev + 02.25.01-dev Joomla Web Services API routes for MokoWaaS site management — health checks, cache, updates, backups, and site info. Moko\Plugin\WebServices\MokoWaaS diff --git a/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml b/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml index 544a4cd..c73781d 100644 --- a/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml +++ b/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.24.01-dev + 02.25.01-dev Joomla Web Services API routes for Perfect Publisher (com_autotweet) — channels, posts, requests, rules, and feeds. Moko\Plugin\WebServices\PerfectPublisher diff --git a/src/packages/plg_webservices_perfectpublisher/services/provider.php b/src/packages/plg_webservices_perfectpublisher/services/provider.php index 583dd0e..e3412b2 100644 --- a/src/packages/plg_webservices_perfectpublisher/services/provider.php +++ b/src/packages/plg_webservices_perfectpublisher/services/provider.php @@ -8,7 +8,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_webservices_perfectpublisher/services/provider.php - * VERSION: 02.24.01 + * VERSION: 02.25.01 * BRIEF: DI service provider for Perfect Publisher Web Services plugin */ diff --git a/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php b/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php index a4089ba..66c5ccd 100644 --- a/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php +++ b/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php @@ -8,7 +8,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php - * VERSION: 02.24.01 + * VERSION: 02.25.01 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index 19711c2..7dd3328 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.24.01-dev + 02.25.01-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 15ec669..badc3ac 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From 4bad7325f1a51618fd0730336f61a5be891ab834 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 30 May 2026 22:52:08 +0000 Subject: [PATCH 04/11] chore: update development channel 02.25.01-dev [skip ci] --- updates.xml | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/updates.xml b/updates.xml index badc3ac..4ec6043 100644 --- a/updates.xml +++ b/updates.xml @@ -1,29 +1,10 @@ - - Package - MokoWaaS - Package - MokoWaaS dev build. - pkg_mokowaas - package - site - 02.25.00-dev - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.00-dev.zip - - 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 - dev - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - Package - MokoWaaS Package - MokoWaaS alpha build. @@ -89,15 +70,34 @@ site 02.25.00 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/stable + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/stable - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.25.00.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.25.00.zip 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 stable https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech + + + + Package - MokoWaaS + Package - MokoWaaS development build. + pkg_mokowaas + package + site + 02.25.01-dev + 2026-05-30 + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development + + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.01-dev.zip + + 687264d128234cd85b2d6d52a15ecf83f1d5ff627257770c56c588278bcad43b + dev + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md + Moko Consulting + https://mokoconsulting.tech -- 2.52.0 From cd5a9f7ecb7f57305618592d1fb6f9ec2855c001 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 18:02:19 -0500 Subject: [PATCH 05/11] fix: calculate countdown at runtime and add 5/15/30 min presets - Countdown now calculates next reset on the fly from cron schedule if demo_next_reset is empty or in the past, instead of only on save - Added 5min, 15min, 30min presets to the schedule dropdown for testing Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Extension/MokoWaaS.php | 31 +++++++++++++++++-- src/packages/plg_system_mokowaas/mokowaas.xml | 3 ++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php index 25bfd77..d9d3fa0 100644 --- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php +++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php @@ -1104,13 +1104,38 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface $bgColor = htmlspecialchars($this->params->get('demo_banner_color', '#d9534f'), ENT_QUOTES, 'UTF-8'); $showCountdown = (int) $this->params->get('demo_banner_show_countdown', 0); - // Use stored next-reset timestamp (calculated from cron schedule on save) + // Use stored next-reset timestamp, or calculate on the fly from cron schedule $nextReset = $this->params->get('demo_next_reset', ''); $resetAtMs = 0; - if ($showCountdown && !empty($nextReset)) + if ($showCountdown) { - $resetAtMs = strtotime($nextReset) * 1000; + if (!empty($nextReset)) + { + $ts = strtotime($nextReset); + + // If stored timestamp is in the past, recalculate + if ($ts > time()) + { + $resetAtMs = $ts * 1000; + } + } + + // Calculate on the fly if no valid stored timestamp + if ($resetAtMs === 0) + { + $schedule = $this->params->get('demo_reset_schedule', '0 0 * * *'); + $cron = ($schedule === 'custom') + ? $this->params->get('demo_reset_cron', '0 0 * * *') + : $schedule; + + $calculated = $this->calculateNextCronRun($cron); + + if ($calculated) + { + $resetAtMs = strtotime($calculated) * 1000; + } + } } $countdownJs = ''; diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 3d4236a..505ff37 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -295,6 +295,9 @@ label="PLG_SYSTEM_MOKOWAAS_DEMO_SCHEDULE_LABEL" description="PLG_SYSTEM_MOKOWAAS_DEMO_SCHEDULE_DESC" default="0 0 * * *"> + + + -- 2.52.0 From a520b791a345df9a850396a6acbec6e60ebb4f13 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 30 May 2026 23:03:53 +0000 Subject: [PATCH 06/11] chore(version): auto-bump 02.25.02-dev [skip ci] --- .mokogitea/manifest.xml | 2 +- .mokogitea/workflows/issue-branch.yml | 2 +- CHANGELOG.md | 2 +- CODE_OF_CONDUCT.md | 2 +- GOVERNANCE.md | 2 +- LICENSE.md | 2 +- README.md | 2 +- SECURITY.md | 2 +- docs/guides/build-guide.md | 4 ++-- docs/guides/configuration-guide.md | 4 ++-- docs/guides/installation-guide.md | 4 ++-- docs/guides/operations-guide.md | 4 ++-- docs/guides/rollback-and-recovery-guide.md | 4 ++-- docs/guides/testing-guide.md | 4 ++-- docs/guides/troubleshooting-guide.md | 4 ++-- docs/guides/upgrade-and-versioning-guide.md | 4 ++-- docs/index.md | 4 ++-- docs/plugin-basic.md | 4 ++-- docs/update-server.md | 2 +- src/packages/com_mokowaas/mokowaas.xml | 2 +- src/packages/plg_system_mokowaas/Extension/MokoWaaS.php | 2 +- src/packages/plg_system_mokowaas/Field/AllowedIpsField.php | 2 +- src/packages/plg_system_mokowaas/Field/CopyableTokenField.php | 2 +- src/packages/plg_system_mokowaas/Field/CurrentIpField.php | 2 +- .../plg_system_mokowaas/Service/ContentSyncReceiver.php | 2 +- .../plg_system_mokowaas/Service/ContentSyncService.php | 2 +- src/packages/plg_system_mokowaas/Service/DemoResetService.php | 2 +- src/packages/plg_system_mokowaas/mokowaas.xml | 2 +- src/packages/plg_system_mokowaas/script.php | 2 +- src/packages/plg_system_mokowaas/services/provider.php | 2 +- src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml | 2 +- src/packages/plg_webservices_mokowaas/mokowaas.xml | 2 +- .../plg_webservices_perfectpublisher/perfectpublisher.xml | 2 +- .../plg_webservices_perfectpublisher/services/provider.php | 2 +- .../src/Extension/PerfectPublisherApi.php | 2 +- src/pkg_mokowaas.xml | 2 +- updates.xml | 2 +- 37 files changed, 47 insertions(+), 47 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index ecae0b3..e066cbf 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -8,7 +8,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.25.01 + 02.25.02 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 8d0c330..404f339 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: moko-platform.Automation -# VERSION: 02.25.01 +# VERSION: 02.25.02 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index b03d431..1094827 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: ./CHANGELOG.md - VERSION: 02.25.01 + VERSION: 02.25.02 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 72fa31a..4248c1f 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 1b9782f..9e88647 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -19,7 +19,7 @@ DEFGROUP: mokoconsulting-tech.MokoWaaSBrand INGROUP: MokoStandards.Governance REPO: https://github.com/mokoconsulting-tech/MokoWaaSBrand - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index aaa3f74..e55d27b 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -15,7 +15,7 @@ INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: ./LICENSE.md - VERSION: 02.25.01 + VERSION: 02.25.02 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index abb15b8..6fe827e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 1d53c51..2991a7c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 02.25.01 +VERSION: 02.25.02 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index 2b2dcd1..16592f6 100644 --- a/docs/guides/build-guide.md +++ b/docs/guides/build-guide.md @@ -11,13 +11,13 @@ INGROUP: MokoWaaS.Build REPO: https://github.com/mokoconsulting-tech/mokowaas FILE: build-guide.md - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/ BRIEF: Build and packaging guide for the MokoWaaS system plugin NOTE: Defines environment setup, repository layout, packaging rules, and release preparation --> -# MokoWaaS Build Guide (VERSION: 02.25.01) +# MokoWaaS Build Guide (VERSION: 02.25.02) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index 9b32dbc..5d1e56e 100644 --- a/docs/guides/configuration-guide.md +++ b/docs/guides/configuration-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/configuration-guide.md BRIEF: Configuration guide for the MokoWaaS system plugin NOTE: Defines plugin parameters, expected behaviors, and recommended defaults --> -# MokoWaaS Configuration Guide (VERSION: 02.25.01) +# MokoWaaS Configuration Guide (VERSION: 02.25.02) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index 27538dc..eba87c1 100644 --- a/docs/guides/installation-guide.md +++ b/docs/guides/installation-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/installation-guide.md BRIEF: Installation guide for the MokoWaaS system plugin NOTE: First document in the guide set --> -# MokoWaaS Installation Guide (VERSION: 02.25.01) +# MokoWaaS Installation Guide (VERSION: 02.25.02) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index 8111be0..ef8c7ba 100644 --- a/docs/guides/operations-guide.md +++ b/docs/guides/operations-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/operations-guide.md BRIEF: Operational guide for administering and managing the MokoWaaS system plugin NOTE: Defines lifecycle, responsibilities, and operational behaviors --> -# MokoWaaS Operations Guide (VERSION: 02.25.01) +# MokoWaaS Operations Guide (VERSION: 02.25.02) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index 767c9b4..2e63993 100644 --- a/docs/guides/rollback-and-recovery-guide.md +++ b/docs/guides/rollback-and-recovery-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/rollback-and-recovery-guide.md BRIEF: Rollback and recovery guide for restoring stable operation after plugin related incidents NOTE: Completes the core guide set for WaaS plugin governance --> -# MokoWaaS Rollback and Recovery Guide (VERSION: 02.25.01) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.25.02) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index 0fe0cfb..ea29b44 100644 --- a/docs/guides/testing-guide.md +++ b/docs/guides/testing-guide.md @@ -7,13 +7,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/testing-guide.md BRIEF: Testing guide for MokoWaaS v02.01.08 NOTE: Covers manual test procedures for language overrides, install/uninstall, and configuration --> -# MokoWaaS Testing Guide (VERSION: 02.25.01) +# MokoWaaS Testing Guide (VERSION: 02.25.02) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index f6bb830..f138455 100644 --- a/docs/guides/troubleshooting-guide.md +++ b/docs/guides/troubleshooting-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/troubleshooting-guide.md BRIEF: Troubleshooting guide for diagnosing and resolving issues related to the MokoWaaS plugin NOTE: Designed for administrators and WaaS operations teams --> -# MokoWaaS Troubleshooting Guide (VERSION: 02.25.01) +# MokoWaaS Troubleshooting Guide (VERSION: 02.25.02) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index 85c7536..b24b4a2 100644 --- a/docs/guides/upgrade-and-versioning-guide.md +++ b/docs/guides/upgrade-and-versioning-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/guides/upgrade-and-versioning-guide.md BRIEF: Guide for updating, versioning, and maintaining the MokoWaaS plugin NOTE: Defines release flow, version rules, and upgrade validation --> -# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.25.01) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.25.02) ## Introduction diff --git a/docs/index.md b/docs/index.md index 8b3df44..51914e0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.01 + VERSION: 02.25.02 PATH: /docs/index.md BRIEF: Master index of all documentation for the MokoWaaS plugin NOTE: Automatically maintained index for all guide canvases --> -# MokoWaaS Documentation Index (VERSION: 02.25.01) +# MokoWaaS Documentation Index (VERSION: 02.25.02) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 581a128..68377cc 100644 --- a/docs/plugin-basic.md +++ b/docs/plugin-basic.md @@ -11,12 +11,12 @@ INGROUP: MokoWaaS REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: /docs/plugin-basic.md - VERSION: 02.25.01 + VERSION: 02.25.02 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.25.01) +# MokoWaaS Plugin Overview (VERSION: 02.25.02) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index b32bfc6..7c0ba63 100644 --- a/docs/update-server.md +++ b/docs/update-server.md @@ -10,7 +10,7 @@ DEFGROUP: MokoWaaS.Documentation INGROUP: MokoStandards.Templates REPO: https://github.com/mokoconsulting-tech/MokoWaaS PATH: /docs/update-server.md -VERSION: 02.25.01 +VERSION: 02.25.02 BRIEF: How this extension's Joomla update server file (update.xml) is managed --> diff --git a/src/packages/com_mokowaas/mokowaas.xml b/src/packages/com_mokowaas/mokowaas.xml index aeb2b63..a6d18c8 100644 --- a/src/packages/com_mokowaas/mokowaas.xml +++ b/src/packages/com_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.01-dev + 02.25.02-dev Minimal API-only component for MokoWaaS. Provides REST endpoints for site health, cache, updates, and backups. Moko\Component\MokoWaaS\Api diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php index d9d3fa0..e6a26c9 100644 --- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php +++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.25.01 + * VERSION: 02.25.02 * PATH: /src/Extension/MokoWaaS.php * NOTE: Handles Joomla system events for rebranding functionality */ diff --git a/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php b/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php index 2063a54..80ba943 100644 --- a/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php +++ b/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php @@ -7,7 +7,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.01 + * VERSION: 02.25.02 * PATH: /src/Field/AllowedIpsField.php * BRIEF: Custom form field that displays the current IP whitelist */ diff --git a/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php index a04f1a1..30fdd06 100644 --- a/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php +++ b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.01 + * VERSION: 02.25.02 * PATH: /src/Field/CopyableTokenField.php * BRIEF: Read-only token field with a copy-to-clipboard button */ diff --git a/src/packages/plg_system_mokowaas/Field/CurrentIpField.php b/src/packages/plg_system_mokowaas/Field/CurrentIpField.php index c1a8573..8c4e3a2 100644 --- a/src/packages/plg_system_mokowaas/Field/CurrentIpField.php +++ b/src/packages/plg_system_mokowaas/Field/CurrentIpField.php @@ -7,7 +7,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.01 + * VERSION: 02.25.02 * PATH: /src/Field/CurrentIpField.php * BRIEF: Read-only field that displays the current user's IP address */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index 44f1caa..80f0000 100644 --- a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php +++ b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php - * VERSION: 02.25.01 + * VERSION: 02.25.02 * BRIEF: Receiver-side content sync — applies incoming payload to local DB */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncService.php b/src/packages/plg_system_mokowaas/Service/ContentSyncService.php index fd1b213..d8ab74b 100644 --- a/src/packages/plg_system_mokowaas/Service/ContentSyncService.php +++ b/src/packages/plg_system_mokowaas/Service/ContentSyncService.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/ContentSyncService.php - * VERSION: 02.25.01 + * VERSION: 02.25.02 * BRIEF: Sender-side content sync — builds payload and pushes to remote sites */ diff --git a/src/packages/plg_system_mokowaas/Service/DemoResetService.php b/src/packages/plg_system_mokowaas/Service/DemoResetService.php index 419c6a8..13fc439 100644 --- a/src/packages/plg_system_mokowaas/Service/DemoResetService.php +++ b/src/packages/plg_system_mokowaas/Service/DemoResetService.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/DemoResetService.php - * VERSION: 02.25.01 + * VERSION: 02.25.02 * BRIEF: Core snapshot/restore service for demo site reset */ diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 505ff37..24960fa 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -30,7 +30,7 @@ GNU General Public License version 3 or later; see LICENSE.md hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.01-dev + 02.25.02-dev This plugin rebrands the Joomla system interface with MokoWaaS identity. It applies language overrides and ensures consistent branding across the platform. Moko\Plugin\System\MokoWaaS script.php diff --git a/src/packages/plg_system_mokowaas/script.php b/src/packages/plg_system_mokowaas/script.php index 53c7426..59fae8e 100644 --- a/src/packages/plg_system_mokowaas/script.php +++ b/src/packages/plg_system_mokowaas/script.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.25.01 + * VERSION: 02.25.02 * PATH: /src/script.php * BRIEF: Installation script for MokoWaaS plugin * NOTE: Handles installation, update, and uninstallation tasks including language override deployment diff --git a/src/packages/plg_system_mokowaas/services/provider.php b/src/packages/plg_system_mokowaas/services/provider.php index 79d2a59..7e87e11 100644 --- a/src/packages/plg_system_mokowaas/services/provider.php +++ b/src/packages/plg_system_mokowaas/services/provider.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.25.01 + * VERSION: 02.25.02 * PATH: /src/services/provider.php * BRIEF: Service provider for dependency injection in Joomla 5.x * NOTE: Registers the plugin with Joomla's DI container diff --git a/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml b/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml index 203269c..14049f5 100644 --- a/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml +++ b/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml @@ -12,7 +12,7 @@ GNU General Public License version 3 or later; see LICENSE hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.01-dev + 02.25.02-dev PLG_TASK_MOKOWAASDEMO_DESC Moko\Plugin\Task\MokoWaaSDemo diff --git a/src/packages/plg_webservices_mokowaas/mokowaas.xml b/src/packages/plg_webservices_mokowaas/mokowaas.xml index 4ed4c7d..6bcaad4 100644 --- a/src/packages/plg_webservices_mokowaas/mokowaas.xml +++ b/src/packages/plg_webservices_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.01-dev + 02.25.02-dev Joomla Web Services API routes for MokoWaaS site management — health checks, cache, updates, backups, and site info. Moko\Plugin\WebServices\MokoWaaS diff --git a/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml b/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml index c73781d..47bc798 100644 --- a/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml +++ b/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.01-dev + 02.25.02-dev Joomla Web Services API routes for Perfect Publisher (com_autotweet) — channels, posts, requests, rules, and feeds. Moko\Plugin\WebServices\PerfectPublisher diff --git a/src/packages/plg_webservices_perfectpublisher/services/provider.php b/src/packages/plg_webservices_perfectpublisher/services/provider.php index e3412b2..9cb50f0 100644 --- a/src/packages/plg_webservices_perfectpublisher/services/provider.php +++ b/src/packages/plg_webservices_perfectpublisher/services/provider.php @@ -8,7 +8,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_webservices_perfectpublisher/services/provider.php - * VERSION: 02.25.01 + * VERSION: 02.25.02 * BRIEF: DI service provider for Perfect Publisher Web Services plugin */ diff --git a/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php b/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php index 66c5ccd..24bc1b5 100644 --- a/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php +++ b/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php @@ -8,7 +8,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php - * VERSION: 02.25.01 + * VERSION: 02.25.02 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index 7dd3328..b35de73 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.25.01-dev + 02.25.02-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 4ec6043..6885070 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From c8df9876fe16a938564db9127b493ff821134bcf Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 30 May 2026 23:03:54 +0000 Subject: [PATCH 07/11] chore: update development channel 02.25.02-dev [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index 6885070..3aecc0a 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -87,13 +87,13 @@ pkg_mokowaas package site - 02.25.01-dev + 02.25.02-dev 2026-05-30 https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.01-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.02-dev.zip - 687264d128234cd85b2d6d52a15ecf83f1d5ff627257770c56c588278bcad43b + 94419f8b14e4bfb4fb0d8cafda61cead81e13ec97eef1c466e36cc34def0c7eb dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From 888cd4cb67c474df4e30a0b10d1cf85a9cc2ceca Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 18:20:09 -0500 Subject: [PATCH 08/11] feat(demo): auto-load DB tables as checkboxes, multi-directory media snapshots - SnapshotTablesField: custom checkbox field that queries DB for all tables, groups by type (content/users/menus/modules), pre-selects important tables by default - Media snapshots now support multiple directories (images, media) with individual ZIPs per directory and legacy fallback - Backward compatible with old boolean and textarea param formats Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../api/src/Controller/ResetController.php | 10 +- .../api/src/Controller/SnapshotController.php | 10 +- .../Extension/MokoWaaS.php | 29 +++- .../Field/SnapshotTablesField.php | 157 ++++++++++++++++++ .../Service/DemoResetService.php | 147 ++++++++-------- .../language/en-GB/plg_system_mokowaas.ini | 4 +- .../language/en-US/plg_system_mokowaas.ini | 4 +- src/packages/plg_system_mokowaas/mokowaas.xml | 15 +- .../src/Extension/DemoReset.php | 10 +- 9 files changed, 290 insertions(+), 96 deletions(-) create mode 100644 src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php diff --git a/src/packages/com_mokowaas/api/src/Controller/ResetController.php b/src/packages/com_mokowaas/api/src/Controller/ResetController.php index 671332f..7d88c7d 100644 --- a/src/packages/com_mokowaas/api/src/Controller/ResetController.php +++ b/src/packages/com_mokowaas/api/src/Controller/ResetController.php @@ -103,11 +103,13 @@ class ResetController extends BaseController require_once $serviceFile; - $tablesRaw = $params->get('demo_snapshot_tables', ''); - $tables = array_filter(array_map('trim', explode("\n", $tablesRaw))); - $media = (bool) $params->get('demo_snapshot_include_media', 1); + $tablesParam = $params->get('demo_snapshot_tables', ''); + $tables = is_array($tablesParam) ? array_filter($tablesParam) : array_filter(array_map('trim', explode("\n", $tablesParam))); + $media = $params->get('demo_snapshot_include_media', ['images']); + if ($media === '1' || $media === true) $media = ['images']; + if ($media === '0' || $media === false) $media = []; - return new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($tables, $media); + return new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($tables, (array) $media); } /** diff --git a/src/packages/com_mokowaas/api/src/Controller/SnapshotController.php b/src/packages/com_mokowaas/api/src/Controller/SnapshotController.php index 2577cb7..b6cf8b4 100644 --- a/src/packages/com_mokowaas/api/src/Controller/SnapshotController.php +++ b/src/packages/com_mokowaas/api/src/Controller/SnapshotController.php @@ -130,11 +130,13 @@ class SnapshotController extends BaseController $plugin = PluginHelper::getPlugin('system', 'mokowaas'); $params = $plugin ? new Registry($plugin->params) : new Registry; - $tablesRaw = $params->get('demo_snapshot_tables', ''); - $tables = array_filter(array_map('trim', explode("\n", $tablesRaw))); - $media = (bool) $params->get('demo_snapshot_include_media', 1); + $tablesParam = $params->get('demo_snapshot_tables', ''); + $tables = is_array($tablesParam) ? array_filter($tablesParam) : array_filter(array_map('trim', explode("\n", $tablesParam))); + $media = $params->get('demo_snapshot_include_media', ['images']); + if ($media === '1' || $media === true) $media = ['images']; + if ($media === '0' || $media === false) $media = []; - return new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($tables, $media); + return new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($tables, (array) $media); } /** diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php index e6a26c9..835b0f0 100644 --- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php +++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php @@ -1734,16 +1734,33 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface { require_once __DIR__ . '/../Service/DemoResetService.php'; - $tablesRaw = $this->params->get('demo_snapshot_tables', ''); - $tables = array_filter( - array_map('trim', explode("\n", $tablesRaw)) - ); + $tablesParam = $this->params->get('demo_snapshot_tables', ''); - $includeMedia = (bool) $this->params->get('demo_snapshot_include_media', 1); + // Handle both checkbox array and legacy newline-separated textarea + if (is_array($tablesParam)) + { + $tables = array_filter($tablesParam); + } + else + { + $tables = array_filter(array_map('trim', explode("\n", $tablesParam))); + } + + $mediaDirs = $this->params->get('demo_snapshot_include_media', ['images']); + + // Handle legacy boolean value + if ($mediaDirs === '1' || $mediaDirs === true) + { + $mediaDirs = ['images']; + } + elseif ($mediaDirs === '0' || $mediaDirs === false) + { + $mediaDirs = []; + } return new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService( $tables, - $includeMedia + (array) $mediaDirs ); } diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php new file mode 100644 index 0000000..91965db --- /dev/null +++ b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php @@ -0,0 +1,157 @@ + ['content', 'categories', 'fields', 'tags', 'contentitem_tag_map', 'ucm_content', 'ucm_history'], + 'users' => ['users', 'user_usergroup_map', 'user_profiles', 'usergroups', 'user_keys', 'user_mfa'], + 'menus' => ['menu', 'menu_types'], + 'modules' => ['modules', 'modules_menu'], + 'assets' => ['assets'], + ]; + + protected function getOptions() + { + $db = Factory::getDbo(); + $prefix = $db->getPrefix(); + $tables = $db->getTableList(); + + $options = []; + + foreach ($tables as $table) + { + // Only show tables with the site's prefix + if (strpos($table, $prefix) !== 0) + { + continue; + } + + // Convert real table name to #__ notation + $logical = '#__' . substr($table, strlen($prefix)); + + // Determine group for display ordering + $group = 'Other'; + + foreach (self::TABLE_GROUPS as $groupName => $patterns) + { + $suffix = substr($table, strlen($prefix)); + + foreach ($patterns as $pattern) + { + if ($suffix === $pattern) + { + $group = ucfirst($groupName); + break 2; + } + } + } + + $obj = (object) [ + 'value' => $logical, + 'text' => $logical, + 'disable' => false, + 'class' => '', + 'onclick' => '', + ]; + + $options[$group][] = $obj; + } + + // Flatten with group headers: content tables first, then alphabetical + $priority = ['Content', 'Users', 'Menus', 'Modules', 'Assets']; + $sorted = []; + + foreach ($priority as $g) + { + if (isset($options[$g])) + { + $sorted = array_merge($sorted, $options[$g]); + unset($options[$g]); + } + } + + // Remaining tables (Other) + if (isset($options['Other'])) + { + sort($options['Other']); + $sorted = array_merge($sorted, $options['Other']); + } + + return $sorted; + } + + protected function getInput() + { + // If no value stored yet, use defaults + if ($this->value === null || $this->value === '') + { + $this->value = self::DEFAULT_TABLES; + } + elseif (is_string($this->value)) + { + // Handle legacy textarea format (newline-separated) + $this->value = array_filter(array_map('trim', explode("\n", $this->value))); + } + + return parent::getInput(); + } +} diff --git a/src/packages/plg_system_mokowaas/Service/DemoResetService.php b/src/packages/plg_system_mokowaas/Service/DemoResetService.php index 13fc439..33218cc 100644 --- a/src/packages/plg_system_mokowaas/Service/DemoResetService.php +++ b/src/packages/plg_system_mokowaas/Service/DemoResetService.php @@ -91,27 +91,39 @@ class DemoResetService private array $tables; /** - * Whether to include media files in snapshots. + * Directories to include in media snapshot (e.g. ['images', 'media']). * - * @var bool - * @since 02.21.00 + * @var array + * @since 02.25.00 */ - private bool $includeMedia; + private array $mediaDirs; /** * Constructor. * - * @param array $tables Table names with #__ prefix - * @param bool $includeMedia Include /images/ directory in snapshot - * @param string $baseDir Override snapshot root (for testing) + * @param array $tables Table names with #__ prefix + * @param array|bool $mediaDirs Dirs to snapshot: ['images','media'], true (= images), false/[] (= none) + * @param string $baseDir Override snapshot root (for testing) * * @since 02.21.00 */ - public function __construct(array $tables = [], bool $includeMedia = true, string $baseDir = '') + public function __construct(array $tables = [], $mediaDirs = ['images'], string $baseDir = '') { - $this->tables = !empty($tables) ? $tables : self::DEFAULT_TABLES; - $this->includeMedia = $includeMedia; - $this->snapshotDir = $baseDir ?: JPATH_ROOT . '/mokowaas-snapshots'; + $this->tables = !empty($tables) ? $tables : self::DEFAULT_TABLES; + $this->snapshotDir = $baseDir ?: JPATH_ROOT . '/mokowaas-snapshots'; + + if ($mediaDirs === true) + { + $this->mediaDirs = ['images']; + } + elseif ($mediaDirs === false || empty($mediaDirs)) + { + $this->mediaDirs = []; + } + else + { + $this->mediaDirs = (array) $mediaDirs; + } } /** @@ -193,12 +205,22 @@ class DemoResetService $dumped++; } - // Media snapshot - $hasMedia = false; + // Media snapshot — one ZIP per directory + $mediaDirs = []; - if ($this->includeMedia) + foreach ($this->mediaDirs as $dir) { - $hasMedia = $this->snapshotMedia($path); + $fullPath = JPATH_ROOT . '/' . $dir; + + if (is_dir($fullPath)) + { + $zipName = 'media_' . $dir . '.zip'; + + if ($this->snapshotDirectory($fullPath, $path . '/' . $zipName)) + { + $mediaDirs[] = $dir; + } + } } // Write manifest @@ -207,7 +229,8 @@ class DemoResetService 'created_at' => gmdate('Y-m-d\TH:i:s\Z'), 'tables' => $dumped, 'table_list' => $this->tables, - 'has_media' => $hasMedia, + 'has_media' => !empty($mediaDirs), + 'media_dirs' => $mediaDirs, 'joomla_version' => JVERSION, ]; @@ -308,12 +331,41 @@ class DemoResetService } } - // Restore media + // Restore media directories $mediaRestored = false; + $restoredDirs = $manifest['media_dirs'] ?? []; - if ($manifest['has_media'] ?? false) + // Legacy support: old manifests used has_media=true with a single media.zip for /images/ + if (empty($restoredDirs) && ($manifest['has_media'] ?? false)) { - $mediaRestored = $this->restoreMedia($path); + $restoredDirs = ['images']; + } + + foreach ($restoredDirs as $dir) + { + $zipName = 'media_' . $dir . '.zip'; + $zipPath = $path . '/' . $zipName; + + // Legacy fallback: old snapshots used media.zip for images + if (!file_exists($zipPath) && $dir === 'images' && file_exists($path . '/media.zip')) + { + $zipPath = $path . '/media.zip'; + } + + if (file_exists($zipPath)) + { + $targetDir = JPATH_ROOT . '/' . $dir; + $this->clearDirectory($targetDir); + + $zip = new \ZipArchive(); + + if ($zip->open($zipPath) === true) + { + $zip->extractTo($targetDir); + $zip->close(); + $mediaRestored = true; + } + } } Log::add( @@ -495,25 +547,23 @@ class DemoResetService } /** - * Create a ZIP archive of the /images/ directory. + * Create a ZIP archive of a directory. * - * @param string $snapshotDir Snapshot directory path + * @param string $sourceDir Full path to the directory to archive + * @param string $zipPath Full path for the output ZIP file * - * @return bool True if media was archived + * @return bool True if archived successfully * - * @since 02.21.00 + * @since 02.25.00 */ - private function snapshotMedia(string $snapshotDir): bool + private function snapshotDirectory(string $sourceDir, string $zipPath): bool { - $imagesDir = JPATH_ROOT . '/images'; - - if (!is_dir($imagesDir)) + if (!is_dir($sourceDir)) { return false; } - $zipPath = $snapshotDir . '/media.zip'; - $zip = new \ZipArchive(); + $zip = new \ZipArchive(); if ($zip->open($zipPath, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) !== true) { @@ -521,13 +571,13 @@ class DemoResetService } $iterator = new \RecursiveIteratorIterator( - new \RecursiveDirectoryIterator($imagesDir, \RecursiveDirectoryIterator::SKIP_DOTS), + new \RecursiveDirectoryIterator($sourceDir, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST ); foreach ($iterator as $item) { - $relativePath = substr($item->getPathname(), strlen($imagesDir) + 1); + $relativePath = substr($item->getPathname(), strlen($sourceDir) + 1); $relativePath = str_replace('\\', '/', $relativePath); if ($item->isDir()) @@ -545,41 +595,6 @@ class DemoResetService return true; } - /** - * Restore media files from a snapshot ZIP. - * - * @param string $snapshotDir Snapshot directory path - * - * @return bool True if media was restored - * - * @since 02.21.00 - */ - private function restoreMedia(string $snapshotDir): bool - { - $zipPath = $snapshotDir . '/media.zip'; - $imagesDir = JPATH_ROOT . '/images'; - - if (!file_exists($zipPath)) - { - return false; - } - - // Clear existing images directory contents (keep the directory itself) - $this->clearDirectory($imagesDir); - - $zip = new \ZipArchive(); - - if ($zip->open($zipPath) !== true) - { - return false; - } - - $zip->extractTo($imagesDir); - $zip->close(); - - return true; - } - /** * Ensure the snapshot root directory exists with .htaccess protection. * diff --git a/src/packages/plg_system_mokowaas/language/en-GB/plg_system_mokowaas.ini b/src/packages/plg_system_mokowaas/language/en-GB/plg_system_mokowaas.ini index 8bd0219..e9fc2f3 100644 --- a/src/packages/plg_system_mokowaas/language/en-GB/plg_system_mokowaas.ini +++ b/src/packages/plg_system_mokowaas/language/en-GB/plg_system_mokowaas.ini @@ -171,8 +171,8 @@ PLG_SYSTEM_MOKOWAAS_DEMO_NEXT_RESET_LABEL="Next Scheduled Reset" PLG_SYSTEM_MOKOWAAS_DEMO_NEXT_RESET_DESC="Calculated automatically from the reset schedule. The banner countdown uses this timestamp." PLG_SYSTEM_MOKOWAAS_DEMO_TABLES_LABEL="Snapshot Tables" PLG_SYSTEM_MOKOWAAS_DEMO_TABLES_DESC="Database tables to include in snapshots. One per line, using #__ prefix. These tables will be truncated and restored during a reset." -PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_LABEL="Include Media Files" -PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_DESC="Include the /images/ directory in snapshots. Disabling this speeds up snapshot/restore for sites with large media libraries." +PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_LABEL="Include Directories" +PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_DESC="Select which directories to include in the snapshot. Images contains uploaded media, Media contains extension assets." PLG_SYSTEM_MOKOWAAS_DEMO_ACTIVE_BASELINE_LABEL="Active Baseline Name" PLG_SYSTEM_MOKOWAAS_DEMO_ACTIVE_BASELINE_DESC="Name of the baseline snapshot used by admin toggles and scheduled tasks. Alphanumeric, hyphens, and underscores only." PLG_SYSTEM_MOKOWAAS_DEMO_TAKE_SNAPSHOT_LABEL="Take Snapshot Now" diff --git a/src/packages/plg_system_mokowaas/language/en-US/plg_system_mokowaas.ini b/src/packages/plg_system_mokowaas/language/en-US/plg_system_mokowaas.ini index 8bd0219..e9fc2f3 100644 --- a/src/packages/plg_system_mokowaas/language/en-US/plg_system_mokowaas.ini +++ b/src/packages/plg_system_mokowaas/language/en-US/plg_system_mokowaas.ini @@ -171,8 +171,8 @@ PLG_SYSTEM_MOKOWAAS_DEMO_NEXT_RESET_LABEL="Next Scheduled Reset" PLG_SYSTEM_MOKOWAAS_DEMO_NEXT_RESET_DESC="Calculated automatically from the reset schedule. The banner countdown uses this timestamp." PLG_SYSTEM_MOKOWAAS_DEMO_TABLES_LABEL="Snapshot Tables" PLG_SYSTEM_MOKOWAAS_DEMO_TABLES_DESC="Database tables to include in snapshots. One per line, using #__ prefix. These tables will be truncated and restored during a reset." -PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_LABEL="Include Media Files" -PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_DESC="Include the /images/ directory in snapshots. Disabling this speeds up snapshot/restore for sites with large media libraries." +PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_LABEL="Include Directories" +PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_DESC="Select which directories to include in the snapshot. Images contains uploaded media, Media contains extension assets." PLG_SYSTEM_MOKOWAAS_DEMO_ACTIVE_BASELINE_LABEL="Active Baseline Name" PLG_SYSTEM_MOKOWAAS_DEMO_ACTIVE_BASELINE_DESC="Name of the baseline snapshot used by admin toggles and scheduled tasks. Alphanumeric, hyphens, and underscores only." PLG_SYSTEM_MOKOWAAS_DEMO_TAKE_SNAPSHOT_LABEL="Take Snapshot Now" diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 24960fa..b02504e 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -268,6 +268,7 @@
- - + - - + description="PLG_SYSTEM_MOKOWAAS_DEMO_MEDIA_DESC"> + + get('demo_snapshot_tables', ''); - $tables = array_filter(array_map('trim', explode("\n", $tablesRaw))); - $media = (bool) $sysParams->get('demo_snapshot_include_media', 1); + $tablesParam = $sysParams->get('demo_snapshot_tables', ''); + $tables = is_array($tablesParam) ? array_filter($tablesParam) : array_filter(array_map('trim', explode("\n", $tablesParam))); + $media = $sysParams->get('demo_snapshot_include_media', ['images']); + if ($media === '1' || $media === true) $media = ['images']; + if ($media === '0' || $media === false) $media = []; - $service = new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($tables, $media); + $service = new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($tables, (array) $media); try { -- 2.52.0 From 5e290a21a150316b23031e16c4469d76d7b5b250 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 30 May 2026 23:21:41 +0000 Subject: [PATCH 09/11] chore(version): auto-bump 02.25.03-dev [skip ci] --- .mokogitea/manifest.xml | 2 +- .mokogitea/workflows/issue-branch.yml | 2 +- CHANGELOG.md | 2 +- CODE_OF_CONDUCT.md | 2 +- GOVERNANCE.md | 2 +- LICENSE.md | 2 +- README.md | 2 +- SECURITY.md | 2 +- docs/guides/build-guide.md | 4 ++-- docs/guides/configuration-guide.md | 4 ++-- docs/guides/installation-guide.md | 4 ++-- docs/guides/operations-guide.md | 4 ++-- docs/guides/rollback-and-recovery-guide.md | 4 ++-- docs/guides/testing-guide.md | 4 ++-- docs/guides/troubleshooting-guide.md | 4 ++-- docs/guides/upgrade-and-versioning-guide.md | 4 ++-- docs/index.md | 4 ++-- docs/plugin-basic.md | 4 ++-- docs/update-server.md | 2 +- src/packages/com_mokowaas/mokowaas.xml | 2 +- src/packages/plg_system_mokowaas/Extension/MokoWaaS.php | 2 +- src/packages/plg_system_mokowaas/Field/AllowedIpsField.php | 2 +- src/packages/plg_system_mokowaas/Field/CopyableTokenField.php | 2 +- src/packages/plg_system_mokowaas/Field/CurrentIpField.php | 2 +- .../plg_system_mokowaas/Field/SnapshotTablesField.php | 2 +- .../plg_system_mokowaas/Service/ContentSyncReceiver.php | 2 +- .../plg_system_mokowaas/Service/ContentSyncService.php | 2 +- src/packages/plg_system_mokowaas/Service/DemoResetService.php | 2 +- src/packages/plg_system_mokowaas/mokowaas.xml | 2 +- src/packages/plg_system_mokowaas/script.php | 2 +- src/packages/plg_system_mokowaas/services/provider.php | 2 +- src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml | 2 +- src/packages/plg_webservices_mokowaas/mokowaas.xml | 2 +- .../plg_webservices_perfectpublisher/perfectpublisher.xml | 2 +- .../plg_webservices_perfectpublisher/services/provider.php | 2 +- .../src/Extension/PerfectPublisherApi.php | 2 +- src/pkg_mokowaas.xml | 2 +- updates.xml | 2 +- 38 files changed, 48 insertions(+), 48 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index e066cbf..f05211e 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -8,7 +8,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.25.02 + 02.25.03 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 404f339..49fdc16 100644 --- a/.mokogitea/workflows/issue-branch.yml +++ b/.mokogitea/workflows/issue-branch.yml @@ -5,7 +5,7 @@ # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: moko-platform.Automation -# VERSION: 02.25.02 +# VERSION: 02.25.03 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index 1094827..ec4516c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: ./CHANGELOG.md - VERSION: 02.25.02 + VERSION: 02.25.03 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 4248c1f..2caaced 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,7 +14,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: ./CODE_OF_CONDUCT.md BRIEF: Reference + packaging repo for Moko Consulting Developer GPT Other Default --> diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 9e88647..86bf09c 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -19,7 +19,7 @@ DEFGROUP: mokoconsulting-tech.MokoWaaSBrand INGROUP: MokoStandards.Governance REPO: https://github.com/mokoconsulting-tech/MokoWaaSBrand - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index e55d27b..023be5d 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -15,7 +15,7 @@ INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: ./LICENSE.md - VERSION: 02.25.02 + VERSION: 02.25.03 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index 6fe827e..fb8e990 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 2991a7c..6f01a3b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -23,7 +23,7 @@ DEFGROUP: [PROJECT_NAME] INGROUP: [PROJECT_NAME].Documentation REPO: [REPOSITORY_URL] PATH: /SECURITY.md -VERSION: 02.25.02 +VERSION: 02.25.03 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index 16592f6..dd64c04 100644 --- a/docs/guides/build-guide.md +++ b/docs/guides/build-guide.md @@ -11,13 +11,13 @@ INGROUP: MokoWaaS.Build REPO: https://github.com/mokoconsulting-tech/mokowaas FILE: build-guide.md - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/ BRIEF: Build and packaging guide for the MokoWaaS system plugin NOTE: Defines environment setup, repository layout, packaging rules, and release preparation --> -# MokoWaaS Build Guide (VERSION: 02.25.02) +# MokoWaaS Build Guide (VERSION: 02.25.03) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index 5d1e56e..3df63e2 100644 --- a/docs/guides/configuration-guide.md +++ b/docs/guides/configuration-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/configuration-guide.md BRIEF: Configuration guide for the MokoWaaS system plugin NOTE: Defines plugin parameters, expected behaviors, and recommended defaults --> -# MokoWaaS Configuration Guide (VERSION: 02.25.02) +# MokoWaaS Configuration Guide (VERSION: 02.25.03) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index eba87c1..a6f0cd7 100644 --- a/docs/guides/installation-guide.md +++ b/docs/guides/installation-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/installation-guide.md BRIEF: Installation guide for the MokoWaaS system plugin NOTE: First document in the guide set --> -# MokoWaaS Installation Guide (VERSION: 02.25.02) +# MokoWaaS Installation Guide (VERSION: 02.25.03) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index ef8c7ba..803380a 100644 --- a/docs/guides/operations-guide.md +++ b/docs/guides/operations-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/operations-guide.md BRIEF: Operational guide for administering and managing the MokoWaaS system plugin NOTE: Defines lifecycle, responsibilities, and operational behaviors --> -# MokoWaaS Operations Guide (VERSION: 02.25.02) +# MokoWaaS Operations Guide (VERSION: 02.25.03) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index 2e63993..9bb4ec3 100644 --- a/docs/guides/rollback-and-recovery-guide.md +++ b/docs/guides/rollback-and-recovery-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/rollback-and-recovery-guide.md BRIEF: Rollback and recovery guide for restoring stable operation after plugin related incidents NOTE: Completes the core guide set for WaaS plugin governance --> -# MokoWaaS Rollback and Recovery Guide (VERSION: 02.25.02) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.25.03) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index ea29b44..c2c7ad7 100644 --- a/docs/guides/testing-guide.md +++ b/docs/guides/testing-guide.md @@ -7,13 +7,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/testing-guide.md BRIEF: Testing guide for MokoWaaS v02.01.08 NOTE: Covers manual test procedures for language overrides, install/uninstall, and configuration --> -# MokoWaaS Testing Guide (VERSION: 02.25.02) +# MokoWaaS Testing Guide (VERSION: 02.25.03) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index f138455..bd86bc3 100644 --- a/docs/guides/troubleshooting-guide.md +++ b/docs/guides/troubleshooting-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/troubleshooting-guide.md BRIEF: Troubleshooting guide for diagnosing and resolving issues related to the MokoWaaS plugin NOTE: Designed for administrators and WaaS operations teams --> -# MokoWaaS Troubleshooting Guide (VERSION: 02.25.02) +# MokoWaaS Troubleshooting Guide (VERSION: 02.25.03) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index b24b4a2..62d414e 100644 --- a/docs/guides/upgrade-and-versioning-guide.md +++ b/docs/guides/upgrade-and-versioning-guide.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Guides REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/guides/upgrade-and-versioning-guide.md BRIEF: Guide for updating, versioning, and maintaining the MokoWaaS plugin NOTE: Defines release flow, version rules, and upgrade validation --> -# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.25.02) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.25.03) ## Introduction diff --git a/docs/index.md b/docs/index.md index 51914e0..86ff52b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,13 +10,13 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS.Documentation REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.25.02 + VERSION: 02.25.03 PATH: /docs/index.md BRIEF: Master index of all documentation for the MokoWaaS plugin NOTE: Automatically maintained index for all guide canvases --> -# MokoWaaS Documentation Index (VERSION: 02.25.02) +# MokoWaaS Documentation Index (VERSION: 02.25.03) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 68377cc..559c61c 100644 --- a/docs/plugin-basic.md +++ b/docs/plugin-basic.md @@ -11,12 +11,12 @@ INGROUP: MokoWaaS REPO: https://github.com/mokoconsulting-tech/mokowaas PATH: /docs/plugin-basic.md - VERSION: 02.25.02 + VERSION: 02.25.03 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.25.02) +# MokoWaaS Plugin Overview (VERSION: 02.25.03) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index 7c0ba63..f885389 100644 --- a/docs/update-server.md +++ b/docs/update-server.md @@ -10,7 +10,7 @@ DEFGROUP: MokoWaaS.Documentation INGROUP: MokoStandards.Templates REPO: https://github.com/mokoconsulting-tech/MokoWaaS PATH: /docs/update-server.md -VERSION: 02.25.02 +VERSION: 02.25.03 BRIEF: How this extension's Joomla update server file (update.xml) is managed --> diff --git a/src/packages/com_mokowaas/mokowaas.xml b/src/packages/com_mokowaas/mokowaas.xml index a6d18c8..00ab55f 100644 --- a/src/packages/com_mokowaas/mokowaas.xml +++ b/src/packages/com_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.02-dev + 02.25.03-dev Minimal API-only component for MokoWaaS. Provides REST endpoints for site health, cache, updates, and backups. Moko\Component\MokoWaaS\Api diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php index 835b0f0..a7183e3 100644 --- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php +++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.25.02 + * VERSION: 02.25.03 * PATH: /src/Extension/MokoWaaS.php * NOTE: Handles Joomla system events for rebranding functionality */ diff --git a/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php b/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php index 80ba943..b9a83ac 100644 --- a/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php +++ b/src/packages/plg_system_mokowaas/Field/AllowedIpsField.php @@ -7,7 +7,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.02 + * VERSION: 02.25.03 * PATH: /src/Field/AllowedIpsField.php * BRIEF: Custom form field that displays the current IP whitelist */ diff --git a/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php index 30fdd06..f035205 100644 --- a/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php +++ b/src/packages/plg_system_mokowaas/Field/CopyableTokenField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.02 + * VERSION: 02.25.03 * PATH: /src/Field/CopyableTokenField.php * BRIEF: Read-only token field with a copy-to-clipboard button */ diff --git a/src/packages/plg_system_mokowaas/Field/CurrentIpField.php b/src/packages/plg_system_mokowaas/Field/CurrentIpField.php index 8c4e3a2..3f96e91 100644 --- a/src/packages/plg_system_mokowaas/Field/CurrentIpField.php +++ b/src/packages/plg_system_mokowaas/Field/CurrentIpField.php @@ -7,7 +7,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.02 + * VERSION: 02.25.03 * PATH: /src/Field/CurrentIpField.php * BRIEF: Read-only field that displays the current user's IP address */ diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php index 91965db..7a4e891 100644 --- a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php +++ b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.25.00 + * VERSION: 02.25.03 * PATH: /src/Field/SnapshotTablesField.php * BRIEF: Multi-select field that loads DB tables with sensible defaults pre-checked */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index 80f0000..03f7016 100644 --- a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php +++ b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php - * VERSION: 02.25.02 + * VERSION: 02.25.03 * BRIEF: Receiver-side content sync — applies incoming payload to local DB */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncService.php b/src/packages/plg_system_mokowaas/Service/ContentSyncService.php index d8ab74b..1c25565 100644 --- a/src/packages/plg_system_mokowaas/Service/ContentSyncService.php +++ b/src/packages/plg_system_mokowaas/Service/ContentSyncService.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/ContentSyncService.php - * VERSION: 02.25.02 + * VERSION: 02.25.03 * BRIEF: Sender-side content sync — builds payload and pushes to remote sites */ diff --git a/src/packages/plg_system_mokowaas/Service/DemoResetService.php b/src/packages/plg_system_mokowaas/Service/DemoResetService.php index 33218cc..89ff461 100644 --- a/src/packages/plg_system_mokowaas/Service/DemoResetService.php +++ b/src/packages/plg_system_mokowaas/Service/DemoResetService.php @@ -10,7 +10,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/DemoResetService.php - * VERSION: 02.25.02 + * VERSION: 02.25.03 * BRIEF: Core snapshot/restore service for demo site reset */ diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index b02504e..2dcecb8 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -30,7 +30,7 @@ GNU General Public License version 3 or later; see LICENSE.md hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.02-dev + 02.25.03-dev This plugin rebrands the Joomla system interface with MokoWaaS identity. It applies language overrides and ensures consistent branding across the platform. Moko\Plugin\System\MokoWaaS script.php diff --git a/src/packages/plg_system_mokowaas/script.php b/src/packages/plg_system_mokowaas/script.php index 59fae8e..e6d5f86 100644 --- a/src/packages/plg_system_mokowaas/script.php +++ b/src/packages/plg_system_mokowaas/script.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.25.02 + * VERSION: 02.25.03 * PATH: /src/script.php * BRIEF: Installation script for MokoWaaS plugin * NOTE: Handles installation, update, and uninstallation tasks including language override deployment diff --git a/src/packages/plg_system_mokowaas/services/provider.php b/src/packages/plg_system_mokowaas/services/provider.php index 7e87e11..9ef2551 100644 --- a/src/packages/plg_system_mokowaas/services/provider.php +++ b/src/packages/plg_system_mokowaas/services/provider.php @@ -22,7 +22,7 @@ * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS * REPO: https://github.com/mokoconsulting-tech/mokowaas - * VERSION: 02.25.02 + * VERSION: 02.25.03 * PATH: /src/services/provider.php * BRIEF: Service provider for dependency injection in Joomla 5.x * NOTE: Registers the plugin with Joomla's DI container diff --git a/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml b/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml index 14049f5..6fb5c55 100644 --- a/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml +++ b/src/packages/plg_task_mokowaasdemo/mokowaasdemo.xml @@ -12,7 +12,7 @@ GNU General Public License version 3 or later; see LICENSE hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.02-dev + 02.25.03-dev PLG_TASK_MOKOWAASDEMO_DESC Moko\Plugin\Task\MokoWaaSDemo diff --git a/src/packages/plg_webservices_mokowaas/mokowaas.xml b/src/packages/plg_webservices_mokowaas/mokowaas.xml index 6bcaad4..ea28726 100644 --- a/src/packages/plg_webservices_mokowaas/mokowaas.xml +++ b/src/packages/plg_webservices_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.02-dev + 02.25.03-dev Joomla Web Services API routes for MokoWaaS site management — health checks, cache, updates, backups, and site info. Moko\Plugin\WebServices\MokoWaaS diff --git a/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml b/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml index 47bc798..64f93fe 100644 --- a/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml +++ b/src/packages/plg_webservices_perfectpublisher/perfectpublisher.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.25.02-dev + 02.25.03-dev Joomla Web Services API routes for Perfect Publisher (com_autotweet) — channels, posts, requests, rules, and feeds. Moko\Plugin\WebServices\PerfectPublisher diff --git a/src/packages/plg_webservices_perfectpublisher/services/provider.php b/src/packages/plg_webservices_perfectpublisher/services/provider.php index 9cb50f0..fb2f0d8 100644 --- a/src/packages/plg_webservices_perfectpublisher/services/provider.php +++ b/src/packages/plg_webservices_perfectpublisher/services/provider.php @@ -8,7 +8,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_webservices_perfectpublisher/services/provider.php - * VERSION: 02.25.02 + * VERSION: 02.25.03 * BRIEF: DI service provider for Perfect Publisher Web Services plugin */ diff --git a/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php b/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php index 24bc1b5..505ceb4 100644 --- a/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php +++ b/src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php @@ -8,7 +8,7 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_webservices_perfectpublisher/src/Extension/PerfectPublisherApi.php - * VERSION: 02.25.02 + * VERSION: 02.25.03 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index b35de73..03ac2df 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.25.02-dev + 02.25.03-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 3aecc0a..f21a51b 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From 440e5287864b1041cbca2268fdf405a071eb94ee Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sat, 30 May 2026 23:21:42 +0000 Subject: [PATCH 10/11] chore: update development channel 02.25.03-dev [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index f21a51b..d0ff713 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -87,13 +87,13 @@ pkg_mokowaas package site - 02.25.02-dev + 02.25.03-dev 2026-05-30 https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.02-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.03-dev.zip - 94419f8b14e4bfb4fb0d8cafda61cead81e13ec97eef1c466e36cc34def0c7eb + 6719c979e91444c217183f896c598d2701d7b810c6f416d5bad170ba8f4a07eb dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From 6b0919daf32bc36a5623bfd73355e49aa09576aa Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Sat, 30 May 2026 23:37:37 +0000 Subject: [PATCH 11/11] chore: sync updates.xml 02.26.00-rc from rc [skip ci] --- updates.xml | 126 ++++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/updates.xml b/updates.xml index d0ff713..0bbfce2 100644 --- a/updates.xml +++ b/updates.xml @@ -1,67 +1,10 @@ - - Package - MokoWaaS - Package - MokoWaaS alpha build. - pkg_mokowaas - package - site - 02.25.00-alpha - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/alpha - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/alpha/pkg_mokowaas-02.25.00-alpha.zip - - 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 - alpha - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - - - Package - MokoWaaS - Package - MokoWaaS beta build. - pkg_mokowaas - package - site - 02.25.00-beta - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/beta - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/beta/pkg_mokowaas-02.25.00-beta.zip - - 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 - beta - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - - - Package - MokoWaaS - Package - MokoWaaS rc build. - pkg_mokowaas - package - site - 02.25.00-rc - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/release-candidate - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/release-candidate/pkg_mokowaas-02.25.00-rc.zip - - 67f7f86d822d8dc6f450c1d0b68fbaca886ccb42046bcb3c04da909789f95c28 - rc - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - Package - MokoWaaS Package - MokoWaaS stable build. @@ -83,21 +26,78 @@ Package - MokoWaaS - Package - MokoWaaS development build. + Package - MokoWaaS dev build. pkg_mokowaas package site - 02.25.03-dev + 02.26.00-dev 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.25.03-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.00-dev.zip - 6719c979e91444c217183f896c598d2701d7b810c6f416d5bad170ba8f4a07eb + 22f4def98469d371d673cde0c740a9b54a5e71d2eeb15c4506aed159541daae8 dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech + + + + Package - MokoWaaS + Package - MokoWaaS alpha build. + pkg_mokowaas + package + site + 02.26.00-alpha + 2026-05-30 + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/alpha + + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/alpha/pkg_mokowaas-02.26.00-alpha.zip + + 22f4def98469d371d673cde0c740a9b54a5e71d2eeb15c4506aed159541daae8 + alpha + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md + Moko Consulting + https://mokoconsulting.tech + + + + Package - MokoWaaS + Package - MokoWaaS beta build. + pkg_mokowaas + package + site + 02.26.00-beta + 2026-05-30 + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/beta + + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/beta/pkg_mokowaas-02.26.00-beta.zip + + 22f4def98469d371d673cde0c740a9b54a5e71d2eeb15c4506aed159541daae8 + beta + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md + Moko Consulting + https://mokoconsulting.tech + + + + Package - MokoWaaS + Package - MokoWaaS rc build. + pkg_mokowaas + package + site + 02.26.00-rc + 2026-05-30 + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/release-candidate + + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/release-candidate/pkg_mokowaas-02.26.00-rc.zip + + 22f4def98469d371d673cde0c740a9b54a5e71d2eeb15c4506aed159541daae8 + rc + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md + Moko Consulting + https://mokoconsulting.tech -- 2.52.0