From 56053746ba23a5ec5c0e87025265c4824a73cda3 Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Sun, 31 May 2026 02:18:16 +0000 Subject: [PATCH 01/22] chore: sync updates.xml 02.27.00 from main [skip ci] --- updates.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/updates.xml b/updates.xml index 99a04e7..ebb19c0 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -13,16 +13,16 @@ site 02.26.09-dev 2026-05-31 - 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.26.09-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.09-dev.zip cc51f6ec8036b99492eb9c9f4d1e5f9ba876d18a19973df8cf046d9b115eefa3 dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech - + Package - MokoWaaS @@ -89,15 +89,15 @@ site 02.27.00 2026-05-31 - 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.27.00.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.27.00.zip - e5f53d51ae3dd9d0bee3f7f1bcd4b8ef1269141ee321fded13458ae18e847005 + c2ee6db0e024e43471d32e272322ca148781a941a420058916d86b0ca5042bcc stable https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech - + -- 2.52.0 From 141265ba4e8042f666ca9bb23eae6a7ae7435b37 Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Sun, 31 May 2026 02:18:38 +0000 Subject: [PATCH 02/22] chore: sync updates.xml 02.27.00 from main [skip ci] --- updates.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/updates.xml b/updates.xml index ebb19c0..11c1660 100644 --- a/updates.xml +++ b/updates.xml @@ -93,7 +93,7 @@ https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.27.00.zip - c2ee6db0e024e43471d32e272322ca148781a941a420058916d86b0ca5042bcc + 53cd7af0554b35797f559618c363e296dfbdb3c387e86236d29c49d724a172d9 stable https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From a650036591c52fa316847f12c8ca59494c891853 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 21:26:15 -0500 Subject: [PATCH 03/22] refactor(demo): move all demo settings into the scheduled task form Demo mode is now controlled entirely through the Joomla Scheduled Task: - Create a "MokoWaaS Demo Reset" task to enable demo mode - Task form has: snapshot toggle, media toggle, banner settings - System plugin reads banner config from the task params - Plugin config shows task status card with link to manage it - Removed demo_mode_enabled, schedule, and one-shot toggles from plugin Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Extension/MokoWaaS.php | 184 ++++++------------ .../Field/DemoTaskInfoField.php | 183 +++++++++++++++++ src/packages/plg_system_mokowaas/mokowaas.xml | 70 +------ .../forms/reset_params.xml | 36 ++++ .../src/Extension/DemoReset.php | 112 ++++++++--- 5 files changed, 366 insertions(+), 219 deletions(-) create mode 100644 src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php index d3b0c6c..0995704 100644 --- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php +++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php @@ -862,92 +862,6 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface ); } - // Demo Mode: Calculate next reset time and manage scheduled task - if ((int) $params->get('demo_mode_enabled', 0) === 1) - { - $schedule = $params->get('demo_reset_schedule', '0 0 * * *'); - $cron = ($schedule === 'custom') - ? $params->get('demo_reset_cron', '0 0 * * *') - : $schedule; - - $nextReset = $this->calculateNextCronRun($cron); - - if ($nextReset) - { - $params->set('demo_next_reset', $nextReset); - $changed = true; - } - - // Auto-create or update the scheduled task - $baseline = 'default'; - $this->ensureDemoResetTask($cron, $baseline); - } - else - { - if ($params->get('demo_next_reset', '') !== '') - { - $params->set('demo_next_reset', ''); - $changed = true; - } - - // Remove the scheduled task when demo mode is off - $this->removeDemoResetTask(); - } - - // Demo Mode: Take Snapshot Now - if ((int) $params->get('demo_take_snapshot_now', 0) === 1) - { - $params->set('demo_take_snapshot_now', '0'); - $changed = true; - - try - { - $this->params = $params; - $service = $this->createDemoResetService(); - $baseline = 'default'; - $result = $service->createSnapshot($baseline); - - $app->enqueueMessage( - sprintf('Demo snapshot created (%.1f MB database, media=%s).', $result['dump_size_mb'] ?? 0, ($result['has_media'] ?? false) ? 'yes' : 'no'), - 'message' - ); - } - catch (\Throwable $e) - { - $app->enqueueMessage( - 'Snapshot failed: ' . $e->getMessage(), - 'error' - ); - } - } - - // Demo Mode: Restore Baseline Now - if ((int) $params->get('demo_restore_now', 0) === 1) - { - $params->set('demo_restore_now', '0'); - $changed = true; - - try - { - $this->params = $params; - $service = $this->createDemoResetService(); - $baseline = 'default'; - $result = $service->restoreSnapshot($baseline); - - $app->enqueueMessage( - sprintf('Site restored to baseline (media=%s).', ($result['media_restored'] ?? false) ? 'yes' : 'no'), - 'message' - ); - } - catch (\Throwable $e) - { - $app->enqueueMessage( - 'Restore failed: ' . $e->getMessage(), - 'error' - ); - } - } - // Content Sync: Push Now if ((int) $params->get('sync_push_now', 0) === 1) { @@ -1080,10 +994,15 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface $this->injectAliasRobots($doc); } - // Demo mode banner (frontend only) - if ($this->app->isClient('site') && (int) $this->params->get('demo_mode_enabled', 0)) + // Demo mode banner (frontend only) — check if scheduled task is active + if ($this->app->isClient('site')) { - $this->injectDemoBanner($doc); + $demoTask = $this->getDemoTaskParams(); + + if ($demoTask && !empty($demoTask['banner_enabled'])) + { + $this->injectDemoBanner($doc, $demoTask); + } } if (!$this->app->isClient('administrator')) @@ -1113,43 +1032,23 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface * * @since 02.21.00 */ - protected function injectDemoBanner($doc) + protected function injectDemoBanner($doc, array $taskData) { - $message = htmlspecialchars($this->params->get('demo_banner_message', 'This is a demo site. All changes will be reset periodically.'), ENT_QUOTES, 'UTF-8'); - $bgColor = htmlspecialchars($this->params->get('demo_banner_color', '#d9534f'), ENT_QUOTES, 'UTF-8'); - $showCountdown = (int) $this->params->get('demo_banner_show_countdown', 0); + $message = htmlspecialchars($taskData['banner_message'] ?? 'This is a demo site. All changes will be reset periodically.', ENT_QUOTES, 'UTF-8'); + $bgColor = htmlspecialchars($taskData['banner_color'] ?? '#d9534f', ENT_QUOTES, 'UTF-8'); + $showCountdown = (int) ($taskData['show_countdown'] ?? 0); - // Use stored next-reset timestamp, or calculate on the fly from cron schedule - $nextReset = $this->params->get('demo_next_reset', ''); - $resetAtMs = 0; + // Get next_execution from the scheduled task + $resetAtMs = 0; + $nextExec = $taskData['next_execution'] ?? ''; - if ($showCountdown) + if ($showCountdown && !empty($nextExec)) { - if (!empty($nextReset)) + $ts = strtotime($nextExec); + + if ($ts > time()) { - $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; - } + $resetAtMs = $ts * 1000; } } @@ -1195,6 +1094,49 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface "); } + /** + * Get demo task params from #__scheduler_tasks if task is enabled. + * + * @return array|null Task params merged with task metadata, or null if no active task + * + * @since 02.29.00 + */ + protected function getDemoTaskParams(): ?array + { + try + { + $db = Factory::getDbo(); + $query = $db->getQuery(true) + ->select([ + $db->quoteName('params'), + $db->quoteName('state'), + $db->quoteName('next_execution'), + $db->quoteName('last_execution'), + ]) + ->from($db->quoteName('#__scheduler_tasks')) + ->where($db->quoteName('type') . ' = ' . $db->quote('mokowaas.demo.reset')) + ->where($db->quoteName('state') . ' = 1'); + + $db->setQuery($query); + $task = $db->loadAssoc(); + + if (!$task) + { + return null; + } + + $params = json_decode($task['params'] ?? '{}', true) ?: []; + $params['next_execution'] = $task['next_execution']; + $params['last_execution'] = $task['last_execution']; + + return $params; + } + catch (\Throwable $e) + { + return null; + } + } + /** * Hide MokoWaaS plugin and package from the extensions list via JS. * diff --git a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php new file mode 100644 index 0000000..5423f4c --- /dev/null +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -0,0 +1,183 @@ +getQuery(true) + ->select('*') + ->from($db->quoteName('#__scheduler_tasks')) + ->where($db->quoteName('type') . ' = ' . $db->quote('mokowaas.demo.reset')); + + $db->setQuery($query); + $task = $db->loadAssoc(); + } + catch (\Throwable $e) + { + $task = null; + } + + $newTaskLink = Route::_('index.php?option=com_scheduler&task=task.add'); + + if (!$task) + { + return '
' + . 'No demo reset task configured. ' + . 'Create a Scheduled Task ' + . 'and select MokoWaaS Demo Reset to enable demo mode.
'; + } + + $taskId = (int) $task['id']; + $state = (int) $task['state']; + $siteTimezone = Factory::getApplication()->get('offset', 'UTC'); + + // Parse schedule from execution_rules + $rules = json_decode($task['execution_rules'] ?? '{}', true); + $schedule = $rules['cron-expression'] ?? 'Not set'; + + // Friendly schedule labels + $friendlySchedule = $this->friendlySchedule($schedule); + + // Next execution + $nextExec = $task['next_execution'] ?? ''; + $nextFormatted = 'Not scheduled'; + $nextBadge = ''; + + if (!empty($nextExec) && $nextExec !== '0000-00-00 00:00:00') + { + try + { + $dt = new \DateTime($nextExec); + $dt->setTimezone(new \DateTimeZone($siteTimezone)); + $nextFormatted = $dt->format('M j, Y g:i A T'); + } + catch (\Throwable $e) + { + $nextFormatted = $nextExec; + } + + $diff = strtotime($nextExec) - time(); + + if ($diff <= 0) + { + $nextBadge = 'DUE'; + } + elseif ($diff < 3600) + { + $nextBadge = 'in ' . (int) ceil($diff / 60) . ' min'; + } + elseif ($diff < 86400) + { + $nextBadge = 'in ' . round($diff / 3600, 1) . 'h'; + } + else + { + $nextBadge = 'in ' . round($diff / 86400, 1) . 'd'; + } + } + + // Last execution + $lastExec = $task['last_execution'] ?? ''; + $lastFormatted = 'Never'; + + if (!empty($lastExec) && $lastExec !== '0000-00-00 00:00:00') + { + try + { + $dt = new \DateTime($lastExec); + $dt->setTimezone(new \DateTimeZone($siteTimezone)); + $lastFormatted = $dt->format('M j, Y g:i A T'); + } + catch (\Throwable $e) + { + $lastFormatted = $lastExec; + } + } + + // State badge + $stateBadge = $state === 1 + ? 'Enabled' + : 'Disabled'; + + // Link to edit the task + $editLink = Route::_('index.php?option=com_scheduler&task=task.edit&id=' . $taskId); + + // Build info card + return '
' + . '' + . '' + . '' + . '' + . '' + . '' + . '
Status' . $stateBadge . '
Schedule' . htmlspecialchars($schedule) . ' (' . htmlspecialchars($friendlySchedule) . ')
Next Reset' . htmlspecialchars($nextFormatted) . ' ' . $nextBadge . '
Last Reset' . htmlspecialchars($lastFormatted) . '
Runs' . (int) ($task['times_executed'] ?? 0) . ' executed, ' . (int) ($task['times_failed'] ?? 0) . ' failed
' + . '' + . ' Manage Scheduled Task' + . '
'; + } + + protected function getLabel() + { + return ''; + } + + /** + * Convert a cron expression to a human-readable string. + * + * @param string $cron Cron expression + * + * @return string + */ + private function friendlySchedule(string $cron): string + { + $map = [ + '* * * * *' => 'Every minute', + '*/5 * * * *' => 'Every 5 minutes', + '*/15 * * * *' => 'Every 15 minutes', + '*/30 * * * *' => 'Every 30 minutes', + '0 */1 * * *' => 'Every hour', + '0 */4 * * *' => 'Every 4 hours', + '0 */6 * * *' => 'Every 6 hours', + '0 */12 * * *' => 'Every 12 hours', + '0 0 * * *' => 'Daily at midnight', + '0 6 * * *' => 'Daily at 6:00 AM', + '0 0 * * 0' => 'Weekly (Sunday)', + '0 0 1 * *' => 'Monthly (1st)', + ]; + + return $map[$cron] ?? 'Custom'; + } +} diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 2af10e1..d74a26d 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -270,75 +270,9 @@ description="PLG_SYSTEM_MOKOWAAS_FIELDSET_DEMO_DESC" addfieldprefix="Moko\Plugin\System\MokoWaaS\Field" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ + + + + + + + + + + + + + + + + +
diff --git a/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php b/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php index 820cfa0..bfd54da 100644 --- a/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php +++ b/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php @@ -10,33 +10,26 @@ namespace Moko\Plugin\Task\MokoWaaSDemo\Extension; defined('_JEXEC') or die; +use Joomla\CMS\Factory; use Joomla\CMS\Plugin\CMSPlugin; -use Joomla\CMS\Plugin\PluginHelper; use Joomla\Component\Scheduler\Administrator\Event\ExecuteTaskEvent; use Joomla\Component\Scheduler\Administrator\Task\Status; use Joomla\Component\Scheduler\Administrator\Traits\TaskPluginTrait; -use Joomla\Event\DispatcherInterface; use Joomla\Event\SubscriberInterface; -use Joomla\Registry\Registry; /** * MokoWaaS Demo Reset — Joomla Scheduled Task Plugin. * - * Registers a task routine that restores the site to a named baseline - * snapshot on a configurable schedule (e.g. every 24 hours). + * All demo settings live here in the task form: snapshot, media, + * banner message, color, countdown. The system plugin reads these + * settings from the task to render the banner. * - * @since 02.21.00 + * @since 02.29.00 */ final class DemoReset extends CMSPlugin implements SubscriberInterface { use TaskPluginTrait; - /** - * Task routine map. - * - * @var array - * @since 02.21.00 - */ protected const TASKS_MAP = [ 'mokowaas.demo.reset' => [ 'langConstPrefix' => 'PLG_TASK_MOKOWAASDEMO_RESET', @@ -45,11 +38,6 @@ final class DemoReset extends CMSPlugin implements SubscriberInterface ], ]; - /** - * @return array - * - * @since 02.21.00 - */ public static function getSubscribedEvents(): array { return [ @@ -60,31 +48,31 @@ final class DemoReset extends CMSPlugin implements SubscriberInterface } /** - * Reset the demo site to a baseline snapshot. + * Reset the demo site to the baseline snapshot. * * @param ExecuteTaskEvent $event The task event * * @return int Status::OK or Status::KNOCKOUT * - * @since 02.21.00 + * @since 02.29.00 */ private function resetDemoSite(ExecuteTaskEvent $event): int { $params = $event->getArgument('params'); - // Load system plugin params for table list and media setting - $sysPlugin = PluginHelper::getPlugin('system', 'mokowaas'); - - if (!$sysPlugin) + // Check if snapshot needs to be taken first + if (!empty($params->take_snapshot_on_save) && (int) $params->take_snapshot_on_save === 1) { - $this->logTask('MokoWaaS system plugin not enabled — cannot reset'); + // Take snapshot then reset the flag + $this->takeSnapshot($params); + $this->clearSnapshotFlag(); - return Status::KNOCKOUT; + $this->logTask('Baseline snapshot created'); + + return Status::OK; } - $sysParams = new Registry($sysPlugin->params); - - // Load the service + // Normal reset: restore from snapshot $serviceFile = JPATH_PLUGINS . '/system/mokowaas/Service/DemoResetService.php'; if (!file_exists($serviceFile)) @@ -96,8 +84,7 @@ final class DemoReset extends CMSPlugin implements SubscriberInterface require_once $serviceFile; - $media = (bool) $sysParams->get('demo_snapshot_include_media', 1); - + $media = !empty($params->include_media) && (int) $params->include_media === 1; $service = new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($media); try @@ -114,4 +101,69 @@ final class DemoReset extends CMSPlugin implements SubscriberInterface return Status::KNOCKOUT; } } + + /** + * Take a baseline snapshot. + * + * @param object $params Task params + * + * @return void + * + * @since 02.29.00 + */ + private function takeSnapshot(object $params): void + { + $serviceFile = JPATH_PLUGINS . '/system/mokowaas/Service/DemoResetService.php'; + + if (!file_exists($serviceFile)) + { + return; + } + + require_once $serviceFile; + + $media = !empty($params->include_media) && (int) $params->include_media === 1; + $service = new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($media); + $service->createSnapshot('default'); + } + + /** + * Reset the take_snapshot_on_save flag back to 0 after snapshot. + * + * @return void + * + * @since 02.29.00 + */ + private function clearSnapshotFlag(): void + { + try + { + $db = Factory::getDbo(); + $db->setQuery( + $db->getQuery(true) + ->select($db->quoteName(['id', 'params'])) + ->from($db->quoteName('#__scheduler_tasks')) + ->where($db->quoteName('type') . ' = ' . $db->quote('mokowaas.demo.reset')) + ); + $task = $db->loadAssoc(); + + if ($task) + { + $p = json_decode($task['params'], true) ?: []; + $p['take_snapshot_on_save'] = '0'; + + $db->setQuery( + $db->getQuery(true) + ->update($db->quoteName('#__scheduler_tasks')) + ->set($db->quoteName('params') . ' = ' . $db->quote(json_encode($p))) + ->where($db->quoteName('id') . ' = ' . (int) $task['id']) + ); + $db->execute(); + } + } + catch (\Throwable $e) + { + // Best effort + } + } } -- 2.52.0 From f465b49f1f64a5a394f7d8368ab0969906c91c84 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:26:30 +0000 Subject: [PATCH 04/22] chore(version): auto-bump 02.26.10-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 +- src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php | 2 +- src/packages/plg_system_mokowaas/Field/NextResetField.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 +- 40 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index 950f4f8..5aae58f 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -9,7 +9,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.26.09 + 02.26.10 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index d1a04e4..627a0de 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.26.09 +# VERSION: 02.26.10 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a24b85..e2ba9d2 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.26.09 + VERSION: 02.26.10 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index fe3afec..1d5f830 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.26.09 + VERSION: 02.26.10 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 26f5fe6..472d4a0 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.26.09 + VERSION: 02.26.10 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index 2eb29c5..05bb21c 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.26.09 + VERSION: 02.26.10 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index f3b8911..88bf4e5 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.26.09 + VERSION: 02.26.10 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 3ccb7e5..d722e49 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.26.09 +VERSION: 02.26.10 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index 3ac76a6..b31af68 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Build Guide (VERSION: 02.26.10) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index 54d67bf..931b1cc 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Configuration Guide (VERSION: 02.26.10) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index e1e78c3..29780c8 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Installation Guide (VERSION: 02.26.10) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index 038f0c1..0edce8b 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Operations Guide (VERSION: 02.26.10) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index aa8af89..9c2943c 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.26.10) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index 088fb3e..4ff589e 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Testing Guide (VERSION: 02.26.10) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index 0280506..74c1792 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Troubleshooting Guide (VERSION: 02.26.10) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index 57333cf..f543074 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.26.10) ## Introduction diff --git a/docs/index.md b/docs/index.md index d828e5c..f13057d 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.26.09 + VERSION: 02.26.10 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.26.09) +# MokoWaaS Documentation Index (VERSION: 02.26.10) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 629c011..6983a2b 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.26.09 + VERSION: 02.26.10 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.26.09) +# MokoWaaS Plugin Overview (VERSION: 02.26.10) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index 88e7327..0e2e9fc 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.26.09 +VERSION: 02.26.10 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 81f8801..337403b 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.26.09-dev + 02.26.10-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 0995704..b899011 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.26.09 + * VERSION: 02.26.10 * 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 1f1b2e1..9fa8725 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.26.09 + * VERSION: 02.26.10 * 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 7cd6767..1d78b46 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.26.09 + * VERSION: 02.26.10 * 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 f464e11..bcfeb8d 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.26.09 + * VERSION: 02.26.10 * 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/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index 5423f4c..3fce286 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.29.00 + * VERSION: 02.26.10 * PATH: /src/Field/DemoTaskInfoField.php * BRIEF: Read-only field showing scheduled task info with link to manage it */ diff --git a/src/packages/plg_system_mokowaas/Field/NextResetField.php b/src/packages/plg_system_mokowaas/Field/NextResetField.php index 556bb53..0aab442 100644 --- a/src/packages/plg_system_mokowaas/Field/NextResetField.php +++ b/src/packages/plg_system_mokowaas/Field/NextResetField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.09 + * VERSION: 02.26.10 * PATH: /src/Field/NextResetField.php * BRIEF: Read-only field showing next reset time from Joomla scheduled task */ diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php index b97cee4..07c3830 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.26.09 + * VERSION: 02.26.10 * PATH: /src/Field/SnapshotTablesField.php * BRIEF: Multi-select list field that loads DB tables with sensible defaults */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index 1de08b1..c92c639 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.26.09 + * VERSION: 02.26.10 * 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 56a9948..0dcae02 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.26.09 + * VERSION: 02.26.10 * 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 60bf40d..2c2f5f0 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.26.09 + * VERSION: 02.26.10 * BRIEF: Full database 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 d74a26d..269c824 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.26.09-dev + 02.26.10-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 0d8306f..7b192d7 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.26.09 + * VERSION: 02.26.10 * 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 d76177a..88c14cc 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.26.09 + * VERSION: 02.26.10 * 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 073d3f1..a913dcf 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.26.09-dev + 02.26.10-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 6191c99..826ba52 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.26.09-dev + 02.26.10-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 d8cd47d..efe92fd 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.26.09-dev + 02.26.10-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 2edd34d..04a2e99 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.26.09 + * VERSION: 02.26.10 * 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 776169b..509f158 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.26.09 + * VERSION: 02.26.10 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index 09d8c37..8d67b78 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.26.09-dev + 02.26.10-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 11c1660..4eec617 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From 3a2655d5ef5b64b1b671a411ee7ac09f1dd78ab2 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:26:31 +0000 Subject: [PATCH 05/22] chore: update development channel 02.26.10-dev [skip ci] --- updates.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/updates.xml b/updates.xml index 4eec617..83c51a1 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -11,18 +11,18 @@ pkg_mokowaas package site - 02.26.09-dev + 02.26.10-dev 2026-05-31 - 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.26.09-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.10-dev.zip - cc51f6ec8036b99492eb9c9f4d1e5f9ba876d18a19973df8cf046d9b115eefa3 + 0203d8117b55faab6af8448c2d913d8c9692b398ca355cd99f9bf5964dad5c5d dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech - + Package - MokoWaaS @@ -89,15 +89,15 @@ site 02.27.00 2026-05-31 - 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.27.00.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.27.00.zip 53cd7af0554b35797f559618c363e296dfbdb3c387e86236d29c49d724a172d9 stable https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech - + -- 2.52.0 From beb52fde99ad0e379bc204cb03f74a9c2d4df25e Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 21:28:27 -0500 Subject: [PATCH 06/22] fix: add fieldset label to task form to prevent untranslated key Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- src/packages/plg_task_mokowaasdemo/forms/reset_params.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packages/plg_task_mokowaasdemo/forms/reset_params.xml b/src/packages/plg_task_mokowaasdemo/forms/reset_params.xml index 36f7bac..4c4e774 100644 --- a/src/packages/plg_task_mokowaasdemo/forms/reset_params.xml +++ b/src/packages/plg_task_mokowaasdemo/forms/reset_params.xml @@ -1,6 +1,6 @@
-
+
Date: Sat, 30 May 2026 21:31:06 -0500 Subject: [PATCH 07/22] fix: take snapshot immediately on task save, not on next scheduled run Snapshot now triggers via onContentAfterSave when the task is saved with take_snapshot_on_save=1, instead of waiting for the next execution. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../src/Extension/DemoReset.php | 70 +++++++++++++++---- 1 file changed, 57 insertions(+), 13 deletions(-) diff --git a/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php b/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php index bfd54da..d0bda8c 100644 --- a/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php +++ b/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php @@ -44,9 +44,66 @@ final class DemoReset extends CMSPlugin implements SubscriberInterface 'onTaskOptionsList' => 'advertiseRoutines', 'onExecuteTask' => 'standardRoutineHandler', 'onContentPrepareForm' => 'enhanceTaskItemForm', + 'onContentAfterSave' => 'onContentAfterSave', ]; } + /** + * Handle snapshot-on-save when the task is saved with take_snapshot_on_save=1. + * + * @param string $context The save context + * @param object $table The table object + * @param bool $isNew Whether this is a new record + * + * @return void + * + * @since 02.29.00 + */ + public function onContentAfterSave($context, $table, $isNew): void + { + if ($context !== 'com_scheduler.task') + { + return; + } + + // Only act on our task type + if (($table->type ?? '') !== 'mokowaas.demo.reset') + { + return; + } + + $params = json_decode($table->params ?? '{}', true) ?: []; + + if (!empty($params['take_snapshot_on_save']) && (int) $params['take_snapshot_on_save'] === 1) + { + $serviceFile = JPATH_PLUGINS . '/system/mokowaas/Service/DemoResetService.php'; + + if (file_exists($serviceFile)) + { + require_once $serviceFile; + + $media = !empty($params['include_media']) && (int) $params['include_media'] === 1; + $service = new \Moko\Plugin\System\MokoWaaS\Service\DemoResetService($media); + + try + { + $result = $service->createSnapshot('default'); + Factory::getApplication()->enqueueMessage( + sprintf('Demo snapshot created (%.1f MB database, media=%s).', $result['dump_size_mb'] ?? 0, ($result['has_media'] ?? false) ? 'yes' : 'no'), + 'message' + ); + } + catch (\Throwable $e) + { + Factory::getApplication()->enqueueMessage('Snapshot failed: ' . $e->getMessage(), 'error'); + } + } + + // Reset the flag + $this->clearSnapshotFlag(); + } + } + /** * Reset the demo site to the baseline snapshot. * @@ -60,19 +117,6 @@ final class DemoReset extends CMSPlugin implements SubscriberInterface { $params = $event->getArgument('params'); - // Check if snapshot needs to be taken first - if (!empty($params->take_snapshot_on_save) && (int) $params->take_snapshot_on_save === 1) - { - // Take snapshot then reset the flag - $this->takeSnapshot($params); - $this->clearSnapshotFlag(); - - $this->logTask('Baseline snapshot created'); - - return Status::OK; - } - - // Normal reset: restore from snapshot $serviceFile = JPATH_PLUGINS . '/system/mokowaas/Service/DemoResetService.php'; if (!file_exists($serviceFile)) -- 2.52.0 From c307e97d5733f16bdf2d0477b3ba8c95cbb7aa98 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:31:24 +0000 Subject: [PATCH 08/22] chore(version): auto-bump 02.26.11-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 +- src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php | 2 +- src/packages/plg_system_mokowaas/Field/NextResetField.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 +- 40 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index 5aae58f..ca07c1a 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -9,7 +9,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.26.10 + 02.26.11 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 627a0de..1ffb803 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.26.10 +# VERSION: 02.26.11 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index e2ba9d2..5380bdd 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.26.10 + VERSION: 02.26.11 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 1d5f830..7c14e01 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.26.10 + VERSION: 02.26.11 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 472d4a0..86e622f 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.26.10 + VERSION: 02.26.11 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index 05bb21c..e877580 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.26.10 + VERSION: 02.26.11 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index 88bf4e5..9bb037f 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.26.10 + VERSION: 02.26.11 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index d722e49..934352e 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.26.10 +VERSION: 02.26.11 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index b31af68..dc71361 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Build Guide (VERSION: 02.26.11) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index 931b1cc..572efd1 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Configuration Guide (VERSION: 02.26.11) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index 29780c8..8d7f58c 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Installation Guide (VERSION: 02.26.11) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index 0edce8b..ce37fe6 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Operations Guide (VERSION: 02.26.11) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index 9c2943c..bc62fad 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.26.11) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index 4ff589e..c436c58 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Testing Guide (VERSION: 02.26.11) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index 74c1792..7ffab4b 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Troubleshooting Guide (VERSION: 02.26.11) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index f543074..37c5b7f 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.26.11) ## Introduction diff --git a/docs/index.md b/docs/index.md index f13057d..1309605 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.26.10 + VERSION: 02.26.11 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.26.10) +# MokoWaaS Documentation Index (VERSION: 02.26.11) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 6983a2b..5b56096 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.26.10 + VERSION: 02.26.11 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.26.10) +# MokoWaaS Plugin Overview (VERSION: 02.26.11) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index 0e2e9fc..fe4e0c8 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.26.10 +VERSION: 02.26.11 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 337403b..bc6ee94 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.26.10-dev + 02.26.11-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 b899011..d3a3b99 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.26.10 + * VERSION: 02.26.11 * 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 9fa8725..bd2af2b 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.26.10 + * VERSION: 02.26.11 * 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 1d78b46..b20db17 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.26.10 + * VERSION: 02.26.11 * 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 bcfeb8d..e32035f 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.26.10 + * VERSION: 02.26.11 * 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/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index 3fce286..22b47df 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.10 + * VERSION: 02.26.11 * PATH: /src/Field/DemoTaskInfoField.php * BRIEF: Read-only field showing scheduled task info with link to manage it */ diff --git a/src/packages/plg_system_mokowaas/Field/NextResetField.php b/src/packages/plg_system_mokowaas/Field/NextResetField.php index 0aab442..b4f9b7b 100644 --- a/src/packages/plg_system_mokowaas/Field/NextResetField.php +++ b/src/packages/plg_system_mokowaas/Field/NextResetField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.10 + * VERSION: 02.26.11 * PATH: /src/Field/NextResetField.php * BRIEF: Read-only field showing next reset time from Joomla scheduled task */ diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php index 07c3830..3c6ed16 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.26.10 + * VERSION: 02.26.11 * PATH: /src/Field/SnapshotTablesField.php * BRIEF: Multi-select list field that loads DB tables with sensible defaults */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index c92c639..0c27c21 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.26.10 + * VERSION: 02.26.11 * 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 0dcae02..a104869 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.26.10 + * VERSION: 02.26.11 * 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 2c2f5f0..00909f3 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.26.10 + * VERSION: 02.26.11 * BRIEF: Full database 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 269c824..f906b95 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.26.10-dev + 02.26.11-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 7b192d7..76212d8 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.26.10 + * VERSION: 02.26.11 * 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 88c14cc..2ce3faf 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.26.10 + * VERSION: 02.26.11 * 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 a913dcf..8a1b1ab 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.26.10-dev + 02.26.11-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 826ba52..39ead69 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.26.10-dev + 02.26.11-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 efe92fd..b5d51f2 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.26.10-dev + 02.26.11-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 04a2e99..f07e807 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.26.10 + * VERSION: 02.26.11 * 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 509f158..3c64969 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.26.10 + * VERSION: 02.26.11 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index 8d67b78..34153f2 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.26.10-dev + 02.26.11-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 83c51a1..666a715 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From 5abfec2de2d8516497d4607331d8ce0a84e69e9e Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:31:27 +0000 Subject: [PATCH 09/22] chore: update development channel 02.26.11-dev [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index 666a715..52d4612 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -11,13 +11,13 @@ pkg_mokowaas package site - 02.26.10-dev + 02.26.11-dev 2026-05-31 https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.10-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.11-dev.zip - 0203d8117b55faab6af8448c2d913d8c9692b398ca355cd99f9bf5964dad5c5d + c4067547b02079234fc14ad6ab2e97545df7068af6d2dd41bbb04c726b1ac255 dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From 61286748db58b468611f6d9af98a0eaf819f1dfa Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 21:33:03 -0500 Subject: [PATCH 10/22] =?UTF-8?q?fix:=20parse=20next=5Fexecution=20as=20UT?= =?UTF-8?q?C=20=E2=80=94=20Joomla=20stores=20times=20without=20timezone=20?= =?UTF-8?q?suffix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DreamHost server timezone is America/Los_Angeles, so PHP was interpreting the UTC datetime as Pacific time, causing the display to be hours off. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- src/packages/plg_system_mokowaas/Extension/MokoWaaS.php | 2 +- .../plg_system_mokowaas/Field/DemoTaskInfoField.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php index b899011..ed0b12e 100644 --- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php +++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php @@ -1044,7 +1044,7 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface if ($showCountdown && !empty($nextExec)) { - $ts = strtotime($nextExec); + $ts = strtotime($nextExec . ' UTC'); if ($ts > time()) { diff --git a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index 3fce286..49b80a0 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -80,7 +80,7 @@ class DemoTaskInfoField extends FormField { try { - $dt = new \DateTime($nextExec); + $dt = new \DateTime($nextExec, new \DateTimeZone('UTC')); $dt->setTimezone(new \DateTimeZone($siteTimezone)); $nextFormatted = $dt->format('M j, Y g:i A T'); } @@ -89,7 +89,7 @@ class DemoTaskInfoField extends FormField $nextFormatted = $nextExec; } - $diff = strtotime($nextExec) - time(); + $diff = strtotime($nextExec . ' UTC') - time(); if ($diff <= 0) { @@ -117,7 +117,7 @@ class DemoTaskInfoField extends FormField { try { - $dt = new \DateTime($lastExec); + $dt = new \DateTime($lastExec, new \DateTimeZone('UTC')); $dt->setTimezone(new \DateTimeZone($siteTimezone)); $lastFormatted = $dt->format('M j, Y g:i A T'); } -- 2.52.0 From fe5f74b640704098a7572da7a9ac7f8370b635d5 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:33:35 +0000 Subject: [PATCH 11/22] chore(version): auto-bump 02.26.12-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 +- src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php | 2 +- src/packages/plg_system_mokowaas/Field/NextResetField.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 +- 40 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index ca07c1a..8f558c4 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -9,7 +9,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.26.11 + 02.26.12 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 1ffb803..e72b9ce 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.26.11 +# VERSION: 02.26.12 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index 5380bdd..d3228cc 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.26.11 + VERSION: 02.26.12 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 7c14e01..d4d0755 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.26.11 + VERSION: 02.26.12 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 86e622f..a8eba57 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.26.11 + VERSION: 02.26.12 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index e877580..8096663 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.26.11 + VERSION: 02.26.12 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index 9bb037f..bcb598f 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.26.11 + VERSION: 02.26.12 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 934352e..7b9986b 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.26.11 +VERSION: 02.26.12 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index dc71361..715ad30 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Build Guide (VERSION: 02.26.12) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index 572efd1..59d1227 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Configuration Guide (VERSION: 02.26.12) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index 8d7f58c..63afd9c 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Installation Guide (VERSION: 02.26.12) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index ce37fe6..981676f 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Operations Guide (VERSION: 02.26.12) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index bc62fad..2a16fdd 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.26.12) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index c436c58..39b002c 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Testing Guide (VERSION: 02.26.12) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index 7ffab4b..5821c7b 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Troubleshooting Guide (VERSION: 02.26.12) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index 37c5b7f..61e88d8 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.26.12) ## Introduction diff --git a/docs/index.md b/docs/index.md index 1309605..edf47b7 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.26.11 + VERSION: 02.26.12 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.26.11) +# MokoWaaS Documentation Index (VERSION: 02.26.12) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 5b56096..988daf4 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.26.11 + VERSION: 02.26.12 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.26.11) +# MokoWaaS Plugin Overview (VERSION: 02.26.12) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index fe4e0c8..8645a93 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.26.11 +VERSION: 02.26.12 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 bc6ee94..1f4f8d8 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.26.11-dev + 02.26.12-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 3904c5a..ed46579 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.26.11 + * VERSION: 02.26.12 * 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 bd2af2b..915524a 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.26.11 + * VERSION: 02.26.12 * 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 b20db17..6e5465e 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.26.11 + * VERSION: 02.26.12 * 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 e32035f..52447cc 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.26.11 + * VERSION: 02.26.12 * 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/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index 2acec67..3301b80 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.11 + * VERSION: 02.26.12 * PATH: /src/Field/DemoTaskInfoField.php * BRIEF: Read-only field showing scheduled task info with link to manage it */ diff --git a/src/packages/plg_system_mokowaas/Field/NextResetField.php b/src/packages/plg_system_mokowaas/Field/NextResetField.php index b4f9b7b..9bc1d0d 100644 --- a/src/packages/plg_system_mokowaas/Field/NextResetField.php +++ b/src/packages/plg_system_mokowaas/Field/NextResetField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.11 + * VERSION: 02.26.12 * PATH: /src/Field/NextResetField.php * BRIEF: Read-only field showing next reset time from Joomla scheduled task */ diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php index 3c6ed16..3f6c831 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.26.11 + * VERSION: 02.26.12 * PATH: /src/Field/SnapshotTablesField.php * BRIEF: Multi-select list field that loads DB tables with sensible defaults */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index 0c27c21..6e21d93 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.26.11 + * VERSION: 02.26.12 * 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 a104869..90d7e7e 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.26.11 + * VERSION: 02.26.12 * 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 00909f3..88c99b6 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.26.11 + * VERSION: 02.26.12 * BRIEF: Full database 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 f906b95..27def30 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.26.11-dev + 02.26.12-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 76212d8..022a25c 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.26.11 + * VERSION: 02.26.12 * 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 2ce3faf..51f8258 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.26.11 + * VERSION: 02.26.12 * 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 8a1b1ab..ddbebdd 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.26.11-dev + 02.26.12-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 39ead69..b254c5c 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.26.11-dev + 02.26.12-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 b5d51f2..78ac147 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.26.11-dev + 02.26.12-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 f07e807..7f31f11 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.26.11 + * VERSION: 02.26.12 * 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 3c64969..442824f 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.26.11 + * VERSION: 02.26.12 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index 34153f2..6c11587 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.26.11-dev + 02.26.12-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 52d4612..71d57d4 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From f1c6fbd0b780b084ed5dd200a0dbf660d482d357 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:33:37 +0000 Subject: [PATCH 12/22] chore: update development channel 02.26.12-dev [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index 71d57d4..3b4d5a6 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -11,13 +11,13 @@ pkg_mokowaas package site - 02.26.11-dev + 02.26.12-dev 2026-05-31 https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.11-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.12-dev.zip - c4067547b02079234fc14ad6ab2e97545df7068af6d2dd41bbb04c726b1ac255 + 04e015038be52f68d13771f6e4d8e59a6c89ee661d80725e398822306098dbad dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From 6f19f580331f46c95ac66e32b6ce2c3cfcec315f Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 21:34:51 -0500 Subject: [PATCH 13/22] fix: read all execution rule types and show task params in info card Supports interval-minutes, interval-hours, interval-days, and cron-expression rule types. Shows banner, media, countdown, and baseline snapshot status in the plugin config info card. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Field/DemoTaskInfoField.php | 66 +++++++++++++++++-- 1 file changed, 60 insertions(+), 6 deletions(-) diff --git a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index 2acec67..9950413 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -66,10 +66,52 @@ class DemoTaskInfoField extends FormField // Parse schedule from execution_rules $rules = json_decode($task['execution_rules'] ?? '{}', true); - $schedule = $rules['cron-expression'] ?? 'Not set'; + $ruleType = $rules['rule-type'] ?? ''; - // Friendly schedule labels - $friendlySchedule = $this->friendlySchedule($schedule); + switch ($ruleType) + { + case 'cron-expression': + $schedule = $rules['cron-expression'] ?? ''; + $friendlySchedule = $this->friendlySchedule($schedule); + break; + + case 'interval-minutes': + $mins = (int) ($rules['interval-minutes'] ?? 0); + + if ($mins >= 1440 && $mins % 1440 === 0) + { + $days = $mins / 1440; + $schedule = 'Every ' . $days . ' day' . ($days > 1 ? 's' : ''); + } + elseif ($mins >= 60 && $mins % 60 === 0) + { + $hours = $mins / 60; + $schedule = 'Every ' . $hours . ' hour' . ($hours > 1 ? 's' : ''); + } + else + { + $schedule = 'Every ' . $mins . ' minute' . ($mins !== 1 ? 's' : ''); + } + + $friendlySchedule = $schedule; + break; + + case 'interval-hours': + $hours = (int) ($rules['interval-hours'] ?? 0); + $schedule = 'Every ' . $hours . ' hour' . ($hours !== 1 ? 's' : ''); + $friendlySchedule = $schedule; + break; + + case 'interval-days': + $days = (int) ($rules['interval-days'] ?? 0); + $schedule = 'Every ' . $days . ' day' . ($days !== 1 ? 's' : ''); + $friendlySchedule = $schedule; + break; + + default: + $schedule = $ruleType ?: 'Not set'; + $friendlySchedule = 'Custom'; + } // Next execution $nextExec = $task['next_execution'] ?? ''; @@ -135,14 +177,26 @@ class DemoTaskInfoField extends FormField // Link to edit the task $editLink = Route::_('index.php?option=com_scheduler&task=task.edit&id=' . $taskId); + // Task params + $taskParams = json_decode($task['params'] ?? '{}', true) ?: []; + $bannerOn = !empty($taskParams['banner_enabled']) && (int) $taskParams['banner_enabled'] === 1; + $mediaOn = !empty($taskParams['include_media']) && (int) $taskParams['include_media'] === 1; + $countdownOn = !empty($taskParams['show_countdown']) && (int) $taskParams['show_countdown'] === 1; + + // Check if snapshot exists + $snapshotExists = is_dir(JPATH_ROOT . '/mokowaas-snapshots/default'); + // Build info card return '
' - . '' - . '' - . '' + . '
Status' . $stateBadge . '
Schedule' . htmlspecialchars($schedule) . ' (' . htmlspecialchars($friendlySchedule) . ')
' + . '' + . '' . '' . '' . '' + . '' + . '' + . '' . '
Status' . $stateBadge . '
Schedule' . htmlspecialchars($friendlySchedule) . '
Next Reset' . htmlspecialchars($nextFormatted) . ' ' . $nextBadge . '
Last Reset' . htmlspecialchars($lastFormatted) . '
Runs' . (int) ($task['times_executed'] ?? 0) . ' executed, ' . (int) ($task['times_failed'] ?? 0) . ' failed
Baseline' . ($snapshotExists ? 'Saved' : 'Not taken yet') . '
Banner' . ($bannerOn ? 'On' : 'Off') . ($countdownOn ? ' + countdown' : '') . '
Images' . ($mediaOn ? 'Included' : 'Excluded') . '
' . '' . ' Manage Scheduled Task' -- 2.52.0 From 1032074e5c082265df6976cf7c2119bf020bad60 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 21:38:08 -0500 Subject: [PATCH 14/22] =?UTF-8?q?refactor(demo):=20content-only=20snapshot?= =?UTF-8?q?=20=E2=80=94=20never=20touch=20system=20tables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hardcoded safe table list: content, categories, menus, modules, users, tags, fields, contacts, banners. Never touches #__extensions, #__assets, #__schemas, #__session, #__update_sites, or any system tables. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Service/DemoResetService.php | 625 ++++++------------ 1 file changed, 187 insertions(+), 438 deletions(-) diff --git a/src/packages/plg_system_mokowaas/Service/DemoResetService.php b/src/packages/plg_system_mokowaas/Service/DemoResetService.php index 88c99b6..8661c2b 100644 --- a/src/packages/plg_system_mokowaas/Service/DemoResetService.php +++ b/src/packages/plg_system_mokowaas/Service/DemoResetService.php @@ -10,8 +10,8 @@ * INGROUP: MokoWaaS * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS * PATH: /src/packages/plg_system_mokowaas/Service/DemoResetService.php - * VERSION: 02.26.12 - * BRIEF: Full database snapshot/restore service for demo site reset + * VERSION: 02.30.00 + * BRIEF: Content-only snapshot/restore for demo site reset */ namespace Moko\Plugin\System\MokoWaaS\Service; @@ -22,47 +22,70 @@ use Joomla\CMS\Factory; use Joomla\CMS\Log\Log; /** - * Demo Reset Service — full database snapshot and restore. + * Demo Reset Service — content-only snapshot and restore. * - * Takes a complete mysqldump of the database and restores it wholesale. - * This avoids the complexity of selective table management and ensures - * the site returns to an exact known state. + * Only touches safe content tables (articles, categories, menus, modules, + * users, tags, fields). Never touches extensions, assets, sessions, + * schemas, update sites, or any system tables. * - * @since 02.28.00 + * @since 02.30.00 */ class DemoResetService { - /** - * Maximum snapshot name length. - * - * @var int - * @since 02.21.00 - */ private const MAX_NAME_LENGTH = 64; + private const BATCH_SIZE = 500; /** - * Root directory for all snapshots. - * - * @var string - * @since 02.21.00 + * Safe content tables to snapshot/restore. + * These can be wiped and restored without breaking the Joomla installation. + */ + private const SAFE_TABLES = [ + // Content + '#__content', + '#__content_frontpage', + '#__categories', + '#__fields', + '#__fields_values', + '#__fields_groups', + '#__tags', + '#__contentitem_tag_map', + '#__ucm_content', + + // Menus + '#__menu', + '#__menu_types', + + // Modules + '#__modules', + '#__modules_menu', + + // Users + '#__users', + '#__user_usergroup_map', + '#__user_profiles', + + // Contact + '#__contact_details', + + // Banners + '#__banners', + '#__banner_clients', + '#__banner_tracks', + ]; + + /** + * @var string */ private string $snapshotDir; /** - * Whether to include /images/ in snapshots. - * - * @var bool - * @since 02.21.00 + * @var bool */ private bool $includeMedia; /** - * Constructor. - * - * @param bool $includeMedia Include /images/ directory in snapshot - * @param string $baseDir Override snapshot root (for testing) - * - * @since 02.28.00 + * @param bool $includeMedia Include /images/ directory + * @param string $baseDir Override snapshot root */ public function __construct(bool $includeMedia = true, string $baseDir = '') { @@ -73,9 +96,7 @@ class DemoResetService /** * List all available snapshots. * - * @return array Array of manifest data keyed by snapshot name - * - * @since 02.21.00 + * @return array */ public function listSnapshots(): array { @@ -86,11 +107,9 @@ class DemoResetService return $snapshots; } - $dirs = glob($this->snapshotDir . '/*/manifest.json'); - - foreach ($dirs as $manifestPath) + foreach (glob($this->snapshotDir . '/*/manifest.json') as $path) { - $data = json_decode(file_get_contents($manifestPath), true); + $data = json_decode(file_get_contents($path), true); if ($data && isset($data['name'])) { @@ -102,16 +121,11 @@ class DemoResetService } /** - * Create a full database snapshot. + * Create a content snapshot. * * @param string $name Snapshot name * - * @return array Result payload - * - * @throws \InvalidArgumentException On invalid name - * @throws \RuntimeException On failure - * - * @since 02.28.00 + * @return array Result */ public function createSnapshot(string $name): array { @@ -125,212 +139,131 @@ class DemoResetService $this->removeDirectory($path); } - if (!mkdir($path, 0755, true)) + mkdir($path, 0755, true); + + $db = Factory::getDbo(); + $prefix = $db->getPrefix(); + $allTables = $db->getTableList(); + $dumped = 0; + + foreach (self::SAFE_TABLES as $logicalName) { - throw new \RuntimeException('Failed to create snapshot directory: ' . $path); + $realName = str_replace('#__', $prefix, $logicalName); + + if (!in_array($realName, $allTables)) + { + continue; + } + + $this->dumpTable($logicalName, $realName, $path, $db); + $dumped++; } - // Full database dump - $config = Factory::getConfig(); - $host = $config->get('host', 'localhost'); - $dbName = $config->get('db'); - $user = $config->get('user'); - $pass = $config->get('password'); - - $dumpFile = $path . '/database.sql'; - - // Use mysqldump for a complete, reliable dump - $cmd = sprintf( - 'mysqldump --host=%s --user=%s --password=%s --single-transaction --routines --triggers --add-drop-table %s > %s 2>&1', - escapeshellarg($host), - escapeshellarg($user), - escapeshellarg($pass), - escapeshellarg($dbName), - escapeshellarg($dumpFile) - ); - - exec($cmd, $output, $exitCode); - - if ($exitCode !== 0 || !file_exists($dumpFile) || filesize($dumpFile) === 0) - { - // Fallback: PHP-based dump if mysqldump is not available - $this->phpDatabaseDump($dumpFile); - } - - $dumpSizeMb = round(filesize($dumpFile) / 1048576, 1); - - // Media snapshot + // Media $hasMedia = false; - if ($this->includeMedia) + if ($this->includeMedia && is_dir(JPATH_ROOT . '/images')) { - $imagesDir = JPATH_ROOT . '/images'; - - if (is_dir($imagesDir)) - { - $hasMedia = $this->snapshotDirectory($imagesDir, $path . '/media.zip'); - } + $hasMedia = $this->zipDirectory(JPATH_ROOT . '/images', $path . '/media.zip'); } - // Write manifest $manifest = [ 'name' => $name, 'created_at' => gmdate('Y-m-d\TH:i:s\Z'), - 'type' => 'full-database', - 'dump_size_mb' => $dumpSizeMb, + 'type' => 'content-only', + 'tables' => $dumped, 'has_media' => $hasMedia, 'joomla_version' => JVERSION, ]; - file_put_contents( - $path . '/manifest.json', - json_encode($manifest, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) - ); + file_put_contents($path . '/manifest.json', json_encode($manifest, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); - Log::add( - sprintf('Demo snapshot "%s" created (full DB %.1f MB, media=%s)', $name, $dumpSizeMb, $hasMedia ? 'yes' : 'no'), - Log::INFO, - 'mokowaas' - ); + Log::add(sprintf('Demo snapshot "%s" created (%d tables, media=%s)', $name, $dumped, $hasMedia ? 'yes' : 'no'), Log::INFO, 'mokowaas'); return [ - 'status' => 'ok', - 'message' => 'Snapshot created', - 'name' => $name, - 'dump_size_mb' => $dumpSizeMb, - 'has_media' => $hasMedia, + 'status' => 'ok', + 'message' => 'Snapshot created', + 'name' => $name, + 'tables' => $dumped, + 'has_media' => $hasMedia, ]; } /** - * Restore the site to a named snapshot. + * Restore from a snapshot. * - * @param string $name Snapshot name to restore + * @param string $name Snapshot name * - * @return array Result payload - * - * @throws \InvalidArgumentException On invalid name - * @throws \RuntimeException On missing snapshot or restore failure - * - * @since 02.28.00 + * @return array Result */ public function restoreSnapshot(string $name): array { $this->validateSnapshotName($name); - $path = $this->getSnapshotPath($name); - $manifestFile = $path . '/manifest.json'; + $path = $this->getSnapshotPath($name); + $manifest = $path . '/manifest.json'; - if (!file_exists($manifestFile)) + if (!file_exists($manifest)) { throw new \RuntimeException('Snapshot not found: ' . $name); } - $manifest = json_decode(file_get_contents($manifestFile), true); + $manifestData = json_decode(file_get_contents($manifest), true); - if (!$manifest) + // Clear cache + try { Factory::getCache('')->clean(''); } catch (\Throwable $e) {} + + $db = Factory::getDbo(); + $prefix = $db->getPrefix(); + $restored = 0; + $sqlFiles = glob($path . '/*.sql'); + + foreach ($sqlFiles as $sqlFile) { - throw new \RuntimeException('Invalid manifest for snapshot: ' . $name); - } - - $dumpFile = $path . '/database.sql'; - - if (!file_exists($dumpFile)) - { - throw new \RuntimeException('Database dump not found in snapshot: ' . $name); - } - - // Clear Joomla cache - try - { - $cache = Factory::getCache(''); - $cache->clean(''); - } - catch (\Throwable $e) - { - // Best effort - } - - // Restore database - $config = Factory::getConfig(); - $host = $config->get('host', 'localhost'); - $dbName = $config->get('db'); - $user = $config->get('user'); - $pass = $config->get('password'); - - // Try mysql CLI first (fastest, handles large dumps) - $cmd = sprintf( - 'mysql --host=%s --user=%s --password=%s %s < %s 2>&1', - escapeshellarg($host), - escapeshellarg($user), - escapeshellarg($pass), - escapeshellarg($dbName), - escapeshellarg($dumpFile) - ); - - exec($cmd, $output, $exitCode); - - if ($exitCode !== 0) - { - // Fallback: PHP-based restore - $this->phpDatabaseRestore($dumpFile); + try + { + $this->restoreTable($sqlFile, $db, $prefix); + $restored++; + } + catch (\Throwable $e) + { + Log::add('Demo reset: failed to restore ' . basename($sqlFile) . ': ' . $e->getMessage(), Log::ERROR, 'mokowaas'); + } } // Restore /images/ $mediaRestored = false; - if ($manifest['has_media'] ?? false) + if (($manifestData['has_media'] ?? false) && file_exists($path . '/media.zip')) { - $zipPath = $path . '/media.zip'; - $imagesDir = JPATH_ROOT . '/images'; + $this->clearDirectory(JPATH_ROOT . '/images'); + $zip = new \ZipArchive(); - if (file_exists($zipPath)) + if ($zip->open($path . '/media.zip') === true) { - $this->clearDirectory($imagesDir); - - $zip = new \ZipArchive(); - - if ($zip->open($zipPath) === true) - { - $zip->extractTo($imagesDir); - $zip->close(); - $mediaRestored = true; - } + $zip->extractTo(JPATH_ROOT . '/images'); + $zip->close(); + $mediaRestored = true; } } - // After full DB restore, re-ensure the task plugin and scheduled task - // exist — the restore overwrote #__extensions and #__scheduler_tasks - $this->reRegisterAfterRestore(); - - Log::add( - sprintf('Demo site reset to baseline "%s" (full DB, media=%s)', $name, $mediaRestored ? 'yes' : 'no'), - Log::WARNING, - 'mokowaas' - ); + Log::add(sprintf('Demo site reset (%d tables, media=%s)', $restored, $mediaRestored ? 'yes' : 'no'), Log::WARNING, 'mokowaas'); return [ - 'status' => 'ok', - 'message' => 'Site restored to baseline: ' . $name, - 'baseline' => $name, - 'type' => 'full-database', - 'media_restored' => $mediaRestored, + 'status' => 'ok', + 'message' => 'Site content restored', + 'baseline' => $name, + 'restored_tables' => $restored, + 'media_restored' => $mediaRestored, ]; } /** - * Delete a named snapshot. - * - * @param string $name Snapshot name - * - * @return bool True on success - * - * @since 02.21.00 + * Delete a snapshot. */ public function deleteSnapshot(string $name): bool { $this->validateSnapshotName($name); - $path = $this->getSnapshotPath($name); if (!is_dir($path)) @@ -343,165 +276,99 @@ class DemoResetService return true; } - /** - * PHP fallback: dump entire database when mysqldump is unavailable. - * - * @param string $dumpFile Output file path - * - * @return void - * - * @since 02.28.00 - */ - private function phpDatabaseDump(string $dumpFile): void + // ------------------------------------------------------------------ + // Private helpers + // ------------------------------------------------------------------ + + private function dumpTable(string $logicalName, string $realName, string $dir, $db): void { - $db = Factory::getDbo(); - $tables = $db->getTableList(); - $fp = fopen($dumpFile, 'w'); + $safeFileName = str_replace('#__', 'jml__', $logicalName); + $fp = fopen($dir . '/' . $safeFileName . '.sql', 'w'); - if ($fp === false) + $columns = $db->getTableColumns($realName, false); + $colNames = array_keys($columns); + $quotedCols = array_map([$db, 'quoteName'], $colNames); + $colList = implode(', ', $quotedCols); + $offset = 0; + + while (true) { - throw new \RuntimeException('Cannot write dump file'); - } + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName($realName)) + ->setLimit(self::BATCH_SIZE, $offset); - fwrite($fp, "SET FOREIGN_KEY_CHECKS=0;\n\n"); + $db->setQuery($query); + $rows = $db->loadAssocList(); - foreach ($tables as $table) - { - // CREATE TABLE statement - $db->setQuery('SHOW CREATE TABLE ' . $db->quoteName($table)); - $create = $db->loadAssoc(); - $createSql = $create['Create Table'] ?? $create['Create View'] ?? ''; - - if (empty($createSql)) + if (empty($rows)) { - continue; + break; } - fwrite($fp, "DROP TABLE IF EXISTS " . $db->quoteName($table) . ";\n"); - fwrite($fp, $createSql . ";\n\n"); + $values = []; - // Skip views for data dump - if (isset($create['Create View'])) + foreach ($rows as $row) { - continue; + $vals = []; + + foreach ($colNames as $col) + { + $vals[] = $row[$col] === null ? 'NULL' : $db->quote($row[$col]); + } + + $values[] = '(' . implode(', ', $vals) . ')'; } - // Dump data in batches - $offset = 0; + fwrite($fp, 'INSERT INTO ' . $db->quoteName($realName) . ' (' . $colList . ') VALUES ' . "\n" . implode(",\n", $values) . ";\n\n"); - while (true) + $offset += self::BATCH_SIZE; + + if (count($rows) < self::BATCH_SIZE) { - $query = $db->getQuery(true) - ->select('*') - ->from($db->quoteName($table)) - ->setLimit(500, $offset); - - $db->setQuery($query); - $rows = $db->loadAssocList(); - - if (empty($rows)) - { - break; - } - - // Get column names - $columns = array_keys($rows[0]); - $quotedCols = array_map([$db, 'quoteName'], $columns); - $colList = implode(', ', $quotedCols); - - $values = []; - - foreach ($rows as $row) - { - $vals = []; - - foreach ($columns as $col) - { - $val = $row[$col]; - $vals[] = $val === null ? 'NULL' : $db->quote($val); - } - - $values[] = '(' . implode(', ', $vals) . ')'; - } - - fwrite($fp, 'INSERT INTO ' . $db->quoteName($table) - . ' (' . $colList . ') VALUES ' . "\n" - . implode(",\n", $values) . ";\n\n"); - - $offset += 500; - - if (count($rows) < 500) - { - break; - } + break; } } - fwrite($fp, "\nSET FOREIGN_KEY_CHECKS=1;\n"); fclose($fp); } - /** - * PHP fallback: restore database from SQL dump when mysql CLI is unavailable. - * - * @param string $dumpFile SQL dump file path - * - * @return void - * - * @since 02.28.00 - */ - private function phpDatabaseRestore(string $dumpFile): void + private function restoreTable(string $sqlFile, $db, string $prefix): void { - $db = Factory::getDbo(); - $sql = file_get_contents($dumpFile); + $baseName = basename($sqlFile, '.sql'); + $realTable = str_replace('jml__', $prefix, $baseName); - if (empty($sql)) + $db->setQuery('TRUNCATE TABLE ' . $db->quoteName($realTable)); + $db->execute(); + + $sql = file_get_contents($sqlFile); + + if (empty(trim($sql))) { - throw new \RuntimeException('Empty database dump file'); + return; } - // Split by semicolons followed by newlines (avoids splitting within values) - $statements = preg_split('/;\s*\n/', $sql); + $statements = array_filter( + array_map('trim', explode(";\n", $sql)), + function ($s) { return !empty($s) && $s !== ';'; } + ); foreach ($statements as $statement) { - $statement = trim($statement); + $statement = rtrim($statement, ';'); - if (empty($statement) || $statement === ';') + if (empty($statement)) { continue; } - try - { - $db->setQuery($statement); - $db->execute(); - } - catch (\Throwable $e) - { - // Log but continue — partial restore is better than aborting - Log::add('DB restore warning: ' . $e->getMessage(), Log::WARNING, 'mokowaas'); - } + $db->setQuery($statement); + $db->execute(); } } - /** - * Create a ZIP archive of a directory. - * - * @param string $sourceDir Full path to directory - * @param string $zipPath Output ZIP path - * - * @return bool - * - * @since 02.25.00 - */ - private function snapshotDirectory(string $sourceDir, string $zipPath): bool + private function zipDirectory(string $sourceDir, string $zipPath): bool { - if (!is_dir($sourceDir)) - { - return false; - } - $zip = new \ZipArchive(); if ($zip->open($zipPath, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) !== true) @@ -516,17 +383,8 @@ class DemoResetService foreach ($iterator as $item) { - $relativePath = substr($item->getPathname(), strlen($sourceDir) + 1); - $relativePath = str_replace('\\', '/', $relativePath); - - if ($item->isDir()) - { - $zip->addEmptyDir($relativePath); - } - else - { - $zip->addFile($item->getPathname(), $relativePath); - } + $rel = str_replace('\\', '/', substr($item->getPathname(), strlen($sourceDir) + 1)); + $item->isDir() ? $zip->addEmptyDir($rel) : $zip->addFile($item->getPathname(), $rel); } $zip->close(); @@ -534,117 +392,16 @@ class DemoResetService return true; } - /** - * Ensure the snapshot root directory exists with .htaccess protection. - * - * @return void - * - * @since 02.21.00 - */ - private function reRegisterAfterRestore(): void - { - try - { - $db = Factory::getDbo(); - $prefix = $db->getPrefix(); - - // Re-enable all MokoWaaS extensions (may have been overwritten by old snapshot) - $elements = [ - $db->quote('pkg_mokowaas'), - $db->quote('mokowaas'), - $db->quote('com_mokowaas'), - $db->quote('mokowaasdemo'), - $db->quote('perfectpublisher'), - ]; - - $db->setQuery( - $db->getQuery(true) - ->update($db->quoteName('#__extensions')) - ->set($db->quoteName('enabled') . ' = 1') - ->set($db->quoteName('protected') . ' = 1') - ->set($db->quoteName('locked') . ' = 0') - ->where($db->quoteName('element') . ' IN (' . implode(',', $elements) . ')') - ); - $db->execute(); - - // If the task plugin isn't registered, add it - $db->setQuery( - $db->getQuery(true) - ->select('COUNT(*)') - ->from($db->quoteName('#__extensions')) - ->where($db->quoteName('element') . ' = ' . $db->quote('mokowaasdemo')) - ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) - ); - - if ((int) $db->loadResult() === 0) - { - $obj = (object) [ - 'name' => 'Task - MokoWaaS Demo Reset', - 'type' => 'plugin', - 'element' => 'mokowaasdemo', - 'folder' => 'task', - 'client_id' => 0, - 'enabled' => 1, - 'protected' => 1, - 'locked' => 0, - 'access' => 1, - 'params' => '{}', - ]; - $db->insertObject('#__extensions', $obj); - } - - // Ensure the scheduled task exists and is enabled - $db->setQuery( - $db->getQuery(true) - ->select($db->quoteName('id')) - ->from($db->quoteName('#__scheduler_tasks')) - ->where($db->quoteName('type') . ' = ' . $db->quote('mokowaas.demo.reset')) - ); - $taskId = (int) $db->loadResult(); - - if ($taskId > 0) - { - // Re-enable and update next_execution to now so it stays active - $db->setQuery( - $db->getQuery(true) - ->update($db->quoteName('#__scheduler_tasks')) - ->set($db->quoteName('state') . ' = 1') - ->where($db->quoteName('id') . ' = ' . $taskId) - ); - $db->execute(); - } - - // Re-enable the update server - $db->setQuery( - $db->getQuery(true) - ->update($db->quoteName('#__update_sites')) - ->set($db->quoteName('enabled') . ' = 1') - ->where('(' . $db->quoteName('name') . ' LIKE ' . $db->quote('%MokoWaaS%') - . ' OR ' . $db->quoteName('location') . ' LIKE ' . $db->quote('%MokoWaaS%') . ')') - ); - $db->execute(); - } - catch (\Throwable $e) - { - // Best effort — don't let registration failure break the restore - } - } - private function ensureSnapshotDir(): void { if (!is_dir($this->snapshotDir)) { - if (!mkdir($this->snapshotDir, 0755, true)) - { - throw new \RuntimeException('Cannot create snapshot directory'); - } + mkdir($this->snapshotDir, 0755, true); } - $htaccess = $this->snapshotDir . '/.htaccess'; - - if (!file_exists($htaccess)) + if (!file_exists($this->snapshotDir . '/.htaccess')) { - file_put_contents($htaccess, "Deny from all\n"); + file_put_contents($this->snapshotDir . '/.htaccess', "Deny from all\n"); } } @@ -655,14 +412,9 @@ class DemoResetService private function validateSnapshotName(string $name): void { - if ($name === '' || strlen($name) > self::MAX_NAME_LENGTH) + if ($name === '' || strlen($name) > self::MAX_NAME_LENGTH || !preg_match('/^[a-zA-Z0-9_-]+$/', $name)) { - throw new \InvalidArgumentException('Snapshot name must be 1-' . self::MAX_NAME_LENGTH . ' characters'); - } - - if (!preg_match('/^[a-zA-Z0-9_-]+$/', $name)) - { - throw new \InvalidArgumentException('Snapshot name must contain only letters, numbers, hyphens, and underscores'); + throw new \InvalidArgumentException('Invalid snapshot name'); } } @@ -683,10 +435,7 @@ class DemoResetService private function clearDirectory(string $dir): void { - if (!is_dir($dir)) - { - return; - } + if (!is_dir($dir)) return; $items = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($dir, \RecursiveDirectoryIterator::SKIP_DOTS), -- 2.52.0 From 9c269117c4853de91379c2cef463929ff761ccad Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:38:21 +0000 Subject: [PATCH 15/22] chore(version): auto-bump 02.26.13-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 +- src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php | 2 +- src/packages/plg_system_mokowaas/Field/NextResetField.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 +- 40 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index 8f558c4..3dec5f5 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -9,7 +9,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.26.12 + 02.26.13 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index e72b9ce..0263a2b 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.26.12 +# VERSION: 02.26.13 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index d3228cc..a997f52 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.26.12 + VERSION: 02.26.13 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d4d0755..64f7e9a 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.26.12 + VERSION: 02.26.13 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 a8eba57..6808b36 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.26.12 + VERSION: 02.26.13 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index 8096663..0565c72 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.26.12 + VERSION: 02.26.13 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index bcb598f..45ba0eb 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.26.12 + VERSION: 02.26.13 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 7b9986b..7b0576e 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.26.12 +VERSION: 02.26.13 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index 715ad30..830514c 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Build Guide (VERSION: 02.26.13) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index 59d1227..a325d19 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Configuration Guide (VERSION: 02.26.13) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index 63afd9c..2211b9d 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Installation Guide (VERSION: 02.26.13) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index 981676f..92fe847 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Operations Guide (VERSION: 02.26.13) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index 2a16fdd..62a29df 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.26.13) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index 39b002c..d54da1d 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Testing Guide (VERSION: 02.26.13) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index 5821c7b..21775b2 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Troubleshooting Guide (VERSION: 02.26.13) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index 61e88d8..d39c00e 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.26.13) ## Introduction diff --git a/docs/index.md b/docs/index.md index edf47b7..216aca2 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.26.12 + VERSION: 02.26.13 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.26.12) +# MokoWaaS Documentation Index (VERSION: 02.26.13) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 988daf4..55176e1 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.26.12 + VERSION: 02.26.13 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.26.12) +# MokoWaaS Plugin Overview (VERSION: 02.26.13) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index 8645a93..a5ee233 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.26.12 +VERSION: 02.26.13 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 1f4f8d8..72529e2 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.26.12-dev + 02.26.13-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 ed46579..401f558 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.26.12 + * VERSION: 02.26.13 * 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 915524a..2d98659 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.26.12 + * VERSION: 02.26.13 * 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 6e5465e..7fcc4bf 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.26.12 + * VERSION: 02.26.13 * 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 52447cc..ebff215 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.26.12 + * VERSION: 02.26.13 * 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/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index c5074db..14a5041 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.12 + * VERSION: 02.26.13 * PATH: /src/Field/DemoTaskInfoField.php * BRIEF: Read-only field showing scheduled task info with link to manage it */ diff --git a/src/packages/plg_system_mokowaas/Field/NextResetField.php b/src/packages/plg_system_mokowaas/Field/NextResetField.php index 9bc1d0d..ea39525 100644 --- a/src/packages/plg_system_mokowaas/Field/NextResetField.php +++ b/src/packages/plg_system_mokowaas/Field/NextResetField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.12 + * VERSION: 02.26.13 * PATH: /src/Field/NextResetField.php * BRIEF: Read-only field showing next reset time from Joomla scheduled task */ diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php index 3f6c831..6b2e7cd 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.26.12 + * VERSION: 02.26.13 * PATH: /src/Field/SnapshotTablesField.php * BRIEF: Multi-select list field that loads DB tables with sensible defaults */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index 6e21d93..6810a6d 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.26.12 + * VERSION: 02.26.13 * 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 90d7e7e..31f8f92 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.26.12 + * VERSION: 02.26.13 * 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 8661c2b..799be6c 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.30.00 + * VERSION: 02.26.13 * BRIEF: Content-only snapshot/restore for demo site reset */ diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 27def30..6ae5f11 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.26.12-dev + 02.26.13-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 022a25c..7220c99 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.26.12 + * VERSION: 02.26.13 * 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 51f8258..dbf6ca4 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.26.12 + * VERSION: 02.26.13 * 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 ddbebdd..32fc945 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.26.12-dev + 02.26.13-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 b254c5c..5358f58 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.26.12-dev + 02.26.13-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 78ac147..c9c1192 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.26.12-dev + 02.26.13-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 7f31f11..eb3a0e9 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.26.12 + * VERSION: 02.26.13 * 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 442824f..0f27979 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.26.12 + * VERSION: 02.26.13 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index 6c11587..ad9d7e8 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.26.12-dev + 02.26.13-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 3b4d5a6..bf75822 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From 588a17e22c6fe10fc5fa9fe7a94e43e50008033f Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:38:24 +0000 Subject: [PATCH 16/22] chore: update development channel 02.26.13-dev [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index bf75822..d6f8f98 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -11,13 +11,13 @@ pkg_mokowaas package site - 02.26.12-dev + 02.26.13-dev 2026-05-31 https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.12-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.13-dev.zip - 04e015038be52f68d13771f6e4d8e59a6c89ee661d80725e398822306098dbad + e9f1fd16772c0063d251adf758774968d21f90886597dc83ce0649091c2b08f6 dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From 1ea9406f1ad27a442629a5cb73a1fe14caeb4a2b Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 21:40:28 -0500 Subject: [PATCH 17/22] fix: rebuild assets after content restore to fix ACL After restoring content tables, deletes stale content-level assets (articles, categories, modules, contacts, banners) and rebuilds: - Category nested set tree - Menu nested set tree - Asset nested set tree - Re-creates missing asset entries for articles with asset_id=0 Component and extension-level assets are never touched. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../Service/DemoResetService.php | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) diff --git a/src/packages/plg_system_mokowaas/Service/DemoResetService.php b/src/packages/plg_system_mokowaas/Service/DemoResetService.php index 8661c2b..9a7ad50 100644 --- a/src/packages/plg_system_mokowaas/Service/DemoResetService.php +++ b/src/packages/plg_system_mokowaas/Service/DemoResetService.php @@ -247,6 +247,9 @@ class DemoResetService } } + // Rebuild assets table to fix ACL after content restore + $this->rebuildAssets(); + Log::add(sprintf('Demo site reset (%d tables, media=%s)', $restored, $mediaRestored ? 'yes' : 'no'), Log::WARNING, 'mokowaas'); return [ @@ -276,6 +279,149 @@ class DemoResetService return true; } + /** + * Rebuild the assets table after content restore. + * + * Deletes content-related asset entries (which now have stale IDs) + * and rebuilds them using Joomla's Table classes. Extension and + * component-level assets are left untouched. + * + * @return void + */ + private function rebuildAssets(): void + { + try + { + $db = Factory::getDbo(); + + // Delete content-level assets (articles, categories, modules, etc.) + // Keep component-level and root assets intact + $contentAssetPrefixes = [ + 'com_content.article.%', + 'com_content.category.%', + 'com_contact.contact.%', + 'com_banners.banner.%', + 'com_banners.category.%', + 'com_modules.module.%', + 'com_menus.menu.%', + 'com_users.user.%', + ]; + + foreach ($contentAssetPrefixes as $prefix) + { + $db->setQuery( + $db->getQuery(true) + ->delete($db->quoteName('#__assets')) + ->where($db->quoteName('name') . ' LIKE ' . $db->quote($prefix)) + ); + $db->execute(); + } + + // Rebuild category tree (also fixes category assets) + $catTable = \Joomla\CMS\Table\Table::getInstance('Category'); + + if ($catTable) + { + $catTable->rebuild(); + } + + // Rebuild menu tree + $menuTable = \Joomla\CMS\Table\Table::getInstance('Menu'); + + if ($menuTable) + { + $menuTable->rebuild(); + } + + // Rebuild asset tree + $assetTable = \Joomla\CMS\Table\Table::getInstance('Asset'); + + if ($assetTable) + { + $assetTable->rebuild(); + } + + // Re-create assets for content items that lost theirs + $this->fixContentAssets($db); + } + catch (\Throwable $e) + { + Log::add('Asset rebuild warning: ' . $e->getMessage(), Log::WARNING, 'mokowaas'); + } + } + + /** + * Re-create missing asset entries for content items. + * + * After deleting stale assets and restoring content, some items + * may reference asset_id=0. This creates new asset rows for them. + * + * @param \Joomla\Database\DatabaseInterface $db + * + * @return void + */ + private function fixContentAssets($db): void + { + // Fix articles with missing assets + $query = $db->getQuery(true) + ->select([$db->quoteName('id'), $db->quoteName('title'), $db->quoteName('alias')]) + ->from($db->quoteName('#__content')) + ->where($db->quoteName('asset_id') . ' = 0'); + + $db->setQuery($query); + $articles = $db->loadAssocList() ?: []; + + // Find the com_content component asset as parent + $db->setQuery( + $db->getQuery(true) + ->select($db->quoteName('id')) + ->from($db->quoteName('#__assets')) + ->where($db->quoteName('name') . ' = ' . $db->quote('com_content')) + ); + $contentAssetId = (int) $db->loadResult(); + + foreach ($articles as $article) + { + $assetName = 'com_content.article.' . (int) $article['id']; + + $asset = (object) [ + 'parent_id' => $contentAssetId ?: 1, + 'lft' => 0, + 'rgt' => 0, + 'level' => 0, + 'name' => $assetName, + 'title' => $article['title'], + 'rules' => '{}', + ]; + + $db->insertObject('#__assets', $asset, 'id'); + + // Update content row with new asset_id + $db->setQuery( + $db->getQuery(true) + ->update($db->quoteName('#__content')) + ->set($db->quoteName('asset_id') . ' = ' . (int) $asset->id) + ->where($db->quoteName('id') . ' = ' . (int) $article['id']) + ); + $db->execute(); + } + + // Rebuild asset tree again after inserts + try + { + $assetTable = \Joomla\CMS\Table\Table::getInstance('Asset'); + + if ($assetTable) + { + $assetTable->rebuild(); + } + } + catch (\Throwable $e) + { + // Best effort + } + } + // ------------------------------------------------------------------ // Private helpers // ------------------------------------------------------------------ -- 2.52.0 From df4548ba8b678d374ec0587d759f65e93223f9ef Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:41:03 +0000 Subject: [PATCH 18/22] chore(version): auto-bump 02.26.14-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 +- src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php | 2 +- src/packages/plg_system_mokowaas/Field/NextResetField.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 +- 40 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index 3dec5f5..38b32c7 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -9,7 +9,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.26.13 + 02.26.14 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 0263a2b..168e176 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.26.13 +# VERSION: 02.26.14 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index a997f52..a798431 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.26.13 + VERSION: 02.26.14 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 64f7e9a..d54e19b 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.26.13 + VERSION: 02.26.14 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 6808b36..0fb150d 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.26.13 + VERSION: 02.26.14 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index 0565c72..6f4abb6 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.26.13 + VERSION: 02.26.14 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index 45ba0eb..c25047b 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.26.13 + VERSION: 02.26.14 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index 7b0576e..d3c9dc3 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.26.13 +VERSION: 02.26.14 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index 830514c..e9f7d70 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Build Guide (VERSION: 02.26.14) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index a325d19..ac966cb 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Configuration Guide (VERSION: 02.26.14) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index 2211b9d..6dc6a59 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Installation Guide (VERSION: 02.26.14) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index 92fe847..161cbd7 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Operations Guide (VERSION: 02.26.14) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index 62a29df..06f2777 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.26.14) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index d54da1d..c3f6a41 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Testing Guide (VERSION: 02.26.14) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index 21775b2..a044fae 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Troubleshooting Guide (VERSION: 02.26.14) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index d39c00e..b824e97 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.26.14) ## Introduction diff --git a/docs/index.md b/docs/index.md index 216aca2..c075677 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.26.13 + VERSION: 02.26.14 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.26.13) +# MokoWaaS Documentation Index (VERSION: 02.26.14) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 55176e1..619ffcd 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.26.13 + VERSION: 02.26.14 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.26.13) +# MokoWaaS Plugin Overview (VERSION: 02.26.14) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index a5ee233..e96219e 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.26.13 +VERSION: 02.26.14 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 72529e2..caf1eab 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.26.13-dev + 02.26.14-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 401f558..ab34c24 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.26.13 + * VERSION: 02.26.14 * 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 2d98659..44ac175 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.26.13 + * VERSION: 02.26.14 * 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 7fcc4bf..c5ec845 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.26.13 + * VERSION: 02.26.14 * 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 ebff215..ad19856 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.26.13 + * VERSION: 02.26.14 * 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/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index 14a5041..fac05f5 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.13 + * VERSION: 02.26.14 * PATH: /src/Field/DemoTaskInfoField.php * BRIEF: Read-only field showing scheduled task info with link to manage it */ diff --git a/src/packages/plg_system_mokowaas/Field/NextResetField.php b/src/packages/plg_system_mokowaas/Field/NextResetField.php index ea39525..f5e346e 100644 --- a/src/packages/plg_system_mokowaas/Field/NextResetField.php +++ b/src/packages/plg_system_mokowaas/Field/NextResetField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.13 + * VERSION: 02.26.14 * PATH: /src/Field/NextResetField.php * BRIEF: Read-only field showing next reset time from Joomla scheduled task */ diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php index 6b2e7cd..15ccff9 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.26.13 + * VERSION: 02.26.14 * PATH: /src/Field/SnapshotTablesField.php * BRIEF: Multi-select list field that loads DB tables with sensible defaults */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index 6810a6d..31e545e 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.26.13 + * VERSION: 02.26.14 * 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 31f8f92..088469d 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.26.13 + * VERSION: 02.26.14 * 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 3fe104d..7fdbf33 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.26.13 + * VERSION: 02.26.14 * BRIEF: Content-only snapshot/restore for demo site reset */ diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 6ae5f11..a31411c 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.26.13-dev + 02.26.14-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 7220c99..f345fd5 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.26.13 + * VERSION: 02.26.14 * 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 dbf6ca4..2b3bb1d 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.26.13 + * VERSION: 02.26.14 * 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 32fc945..597ca08 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.26.13-dev + 02.26.14-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 5358f58..1c607ad 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.26.13-dev + 02.26.14-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 c9c1192..8322a17 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.26.13-dev + 02.26.14-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 eb3a0e9..35e77e7 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.26.13 + * VERSION: 02.26.14 * 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 0f27979..000e9cc 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.26.13 + * VERSION: 02.26.14 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index ad9d7e8..0cf86a3 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.26.13-dev + 02.26.14-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index d6f8f98..aff097c 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From ea482939c2e28cf3f78dbb5c168024f4b2a6e633 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:41:05 +0000 Subject: [PATCH 19/22] chore: update development channel 02.26.14-dev [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index aff097c..24a325b 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -11,13 +11,13 @@ pkg_mokowaas package site - 02.26.13-dev + 02.26.14-dev 2026-05-31 https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.13-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.14-dev.zip - e9f1fd16772c0063d251adf758774968d21f90886597dc83ce0649091c2b08f6 + ae35f14628602e49528654436663ec86398cff7335dd10c8c401710eacbea06a dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From 83880ed7408d6c7116118f805e042fc6594b2eb2 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 30 May 2026 21:44:39 -0500 Subject: [PATCH 20/22] fix: onContentAfterSave receives single event object in Joomla 6 Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- .../src/Extension/DemoReset.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php b/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php index d0bda8c..d157d1f 100644 --- a/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php +++ b/src/packages/plg_task_mokowaasdemo/src/Extension/DemoReset.php @@ -59,15 +59,26 @@ final class DemoReset extends CMSPlugin implements SubscriberInterface * * @since 02.29.00 */ - public function onContentAfterSave($context, $table, $isNew): void + public function onContentAfterSave($event): void { + // Joomla 6 passes a single event object; Joomla 5 passes individual args + if (is_object($event) && method_exists($event, 'getArgument')) + { + $context = $event->getArgument('context', $event->getArgument(0, '')); + $table = $event->getArgument('subject', $event->getArgument(1, null)); + } + else + { + $context = $event; + $table = func_get_arg(1); + } + if ($context !== 'com_scheduler.task') { return; } - // Only act on our task type - if (($table->type ?? '') !== 'mokowaas.demo.reset') + if (!is_object($table) || ($table->type ?? '') !== 'mokowaas.demo.reset') { return; } -- 2.52.0 From 0f89de2003a64714edee8fbaee587bac1ab24d94 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:44:52 +0000 Subject: [PATCH 21/22] chore(version): auto-bump 02.26.15-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 +- src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php | 2 +- src/packages/plg_system_mokowaas/Field/NextResetField.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 +- 40 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index 38b32c7..a793e60 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -9,7 +9,7 @@ Package - MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.26.14 + 02.26.15 GNU General Public License v3 diff --git a/.mokogitea/workflows/issue-branch.yml b/.mokogitea/workflows/issue-branch.yml index 168e176..0a7e07b 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.26.14 +# VERSION: 02.26.15 # BRIEF: Auto-create feature branch when an issue is opened name: "Universal: Issue Branch" diff --git a/CHANGELOG.md b/CHANGELOG.md index a798431..61478c8 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.26.14 + VERSION: 02.26.15 BRIEF: Version history using `Keep a Changelog` --> diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d54e19b..6bb8a1a 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.26.14 + VERSION: 02.26.15 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 0fb150d..97c5834 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.26.14 + VERSION: 02.26.15 PATH: /GOVERNANCE.md BRIEF: Project governance rules, roles, and decision process for MokoWaaSBrand --> diff --git a/LICENSE.md b/LICENSE.md index 6f4abb6..22bb6e9 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.26.14 + VERSION: 02.26.15 BRIEF: Project license (GPL-3.0-or-later) --> GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index c25047b..47ca28f 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.26.14 + VERSION: 02.26.15 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/SECURITY.md b/SECURITY.md index d3c9dc3..f709408 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.26.14 +VERSION: 02.26.15 BRIEF: Security vulnerability reporting and handling policy --> diff --git a/docs/guides/build-guide.md b/docs/guides/build-guide.md index e9f7d70..1e9f1bc 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Build Guide (VERSION: 02.26.15) ## 1. Purpose diff --git a/docs/guides/configuration-guide.md b/docs/guides/configuration-guide.md index ac966cb..6db5596 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Configuration Guide (VERSION: 02.26.15) ## 1. Objective diff --git a/docs/guides/installation-guide.md b/docs/guides/installation-guide.md index 6dc6a59..8d03411 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Installation Guide (VERSION: 02.26.15) ## Introduction diff --git a/docs/guides/operations-guide.md b/docs/guides/operations-guide.md index 161cbd7..5d6565d 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Operations Guide (VERSION: 02.26.15) ## Introduction diff --git a/docs/guides/rollback-and-recovery-guide.md b/docs/guides/rollback-and-recovery-guide.md index 06f2777..9e5a416 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Rollback and Recovery Guide (VERSION: 02.26.15) ## Introduction diff --git a/docs/guides/testing-guide.md b/docs/guides/testing-guide.md index c3f6a41..28d9ec8 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Testing Guide (VERSION: 02.26.15) ## 1. Prerequisites diff --git a/docs/guides/troubleshooting-guide.md b/docs/guides/troubleshooting-guide.md index a044fae..dd8b846 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Troubleshooting Guide (VERSION: 02.26.15) ## Introduction diff --git a/docs/guides/upgrade-and-versioning-guide.md b/docs/guides/upgrade-and-versioning-guide.md index b824e97..f2f337c 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Upgrade and Versioning Guide (VERSION: 02.26.15) ## Introduction diff --git a/docs/index.md b/docs/index.md index c075677..cf01826 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.26.14 + VERSION: 02.26.15 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.26.14) +# MokoWaaS Documentation Index (VERSION: 02.26.15) ## Introduction diff --git a/docs/plugin-basic.md b/docs/plugin-basic.md index 619ffcd..765b075 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.26.14 + VERSION: 02.26.15 BRIEF: Baseline documentation for the MokoWaaS system plugin NOTE: Foundational reference for internal and external stakeholders --> -# MokoWaaS Plugin Overview (VERSION: 02.26.14) +# MokoWaaS Plugin Overview (VERSION: 02.26.15) ## Introduction diff --git a/docs/update-server.md b/docs/update-server.md index e96219e..8061248 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.26.14 +VERSION: 02.26.15 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 caf1eab..a7cd0c0 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.26.14-dev + 02.26.15-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 ab34c24..f23a564 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.26.14 + * VERSION: 02.26.15 * 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 44ac175..17dbed4 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.26.14 + * VERSION: 02.26.15 * 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 c5ec845..ca9ec10 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.26.14 + * VERSION: 02.26.15 * 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 ad19856..492f9af 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.26.14 + * VERSION: 02.26.15 * 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/DemoTaskInfoField.php b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php index fac05f5..0e97988 100644 --- a/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php +++ b/src/packages/plg_system_mokowaas/Field/DemoTaskInfoField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.14 + * VERSION: 02.26.15 * PATH: /src/Field/DemoTaskInfoField.php * BRIEF: Read-only field showing scheduled task info with link to manage it */ diff --git a/src/packages/plg_system_mokowaas/Field/NextResetField.php b/src/packages/plg_system_mokowaas/Field/NextResetField.php index f5e346e..1f3cb28 100644 --- a/src/packages/plg_system_mokowaas/Field/NextResetField.php +++ b/src/packages/plg_system_mokowaas/Field/NextResetField.php @@ -8,7 +8,7 @@ * FILE INFORMATION * DEFGROUP: Joomla.Plugin * INGROUP: MokoWaaS - * VERSION: 02.26.14 + * VERSION: 02.26.15 * PATH: /src/Field/NextResetField.php * BRIEF: Read-only field showing next reset time from Joomla scheduled task */ diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php index 15ccff9..d2fbc3b 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.26.14 + * VERSION: 02.26.15 * PATH: /src/Field/SnapshotTablesField.php * BRIEF: Multi-select list field that loads DB tables with sensible defaults */ diff --git a/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php b/src/packages/plg_system_mokowaas/Service/ContentSyncReceiver.php index 31e545e..b99992f 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.26.14 + * VERSION: 02.26.15 * 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 088469d..89f8339 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.26.14 + * VERSION: 02.26.15 * 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 7fdbf33..db1e163 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.26.14 + * VERSION: 02.26.15 * BRIEF: Content-only snapshot/restore for demo site reset */ diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index a31411c..2ffdf90 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.26.14-dev + 02.26.15-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 f345fd5..c8affd7 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.26.14 + * VERSION: 02.26.15 * 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 2b3bb1d..694644d 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.26.14 + * VERSION: 02.26.15 * 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 597ca08..3612d70 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.26.14-dev + 02.26.15-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 1c607ad..4a6e3d8 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.26.14-dev + 02.26.15-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 8322a17..aed2936 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.26.14-dev + 02.26.15-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 35e77e7..f7154ab 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.26.14 + * VERSION: 02.26.15 * 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 000e9cc..63e855b 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.26.14 + * VERSION: 02.26.15 * BRIEF: Web Services API plugin for Perfect Publisher (com_autotweet) */ diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index 0cf86a3..fd7a6ac 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ Package - MokoWaaS mokowaas - 02.26.14-dev + 02.26.15-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 24a325b..7363be1 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ -- 2.52.0 From c756b0df3044fa80a411a1a4c1d51f9cc5abb2ea Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 31 May 2026 02:44:54 +0000 Subject: [PATCH 22/22] chore: update development channel 02.26.15-dev [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index 7363be1..9b5cfb0 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -11,13 +11,13 @@ pkg_mokowaas package site - 02.26.14-dev + 02.26.15-dev 2026-05-31 https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.14-dev.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.26.15-dev.zip - ae35f14628602e49528654436663ec86398cff7335dd10c8c401710eacbea06a + 10216c269624df358ce02672382c75419f1ee16914357f923053b6cdbb432b36 dev https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0