Files
MokoSuiteClient/CHANGELOG.md
T
2026-06-02 15:11:06 +00:00

6.8 KiB

Changelog

[02.32.00] - 2026-06-02

Added

  • Admin control panel dashboard in com_mokowaas with site info bar, feature plugin grid, and quick actions
  • Feature plugin architecture — MokoWaaS features split into toggleable plugins managed from the dashboard
  • plg_system_mokowaas_firewall — HTTPS enforcement, trusted IPs, session timeout, upload restrictions, password policy
  • plg_system_mokowaas_tenant — Installer, sysinfo, config, template, and menu restrictions for non-master users
  • plg_system_mokowaas_devtools — Dev mode, hit counter reset, content version cleanup
  • plg_system_mokowaas_monitor — Grafana heartbeat integration and health monitoring
  • MokoWaaSHelper utility class for shared master-user detection across feature plugins
  • AJAX plugin toggle — enable/disable feature plugins directly from the dashboard
  • Clear cache quick action on dashboard
  • Static updates.xml for update server (licensing system deferred)
  • Automatic param migration from core plugin to feature plugins on upgrade

Changed

  • com_mokowaas upgraded from API-only to full admin component with dashboard views
  • Package manifest updated with 4 new feature plugin entries (10 extensions total)
  • Update server URL changed to static raw file endpoint
  • Core plugin slimmed — security, tenant, devtools, and monitor features extracted to dedicated plugins

Removed

  • License key validation (licensing system not ready — will return in future release)
  • Dynamic MokoGitea update feed dependency (replaced with static updates.xml)

[02.31.00] - 2026-06-01

Added

  • License key support via Joomla's native Update Sites download key system (dlid)
  • Update server URL migrated from static XML to MokoGitea's dynamic update feed endpoint
  • Legacy static update site URLs auto-migrated to dynamic endpoint on install/update
  • Persistent admin warning when no license key is configured in Update Sites
  • Daily heartbeat validation of license key against MokoGitea — warns if key is invalid or expired
  • Stale/duplicate update site cleanup on install/update (removes old static URL entries and orphaned records)
  • Content sync rewritten — bulk MokoWaaS API endpoints (syncclear + syncpush) replace per-item Joomla API calls
  • Sync task per-instance config: target URL, health token, content type checkboxes (articles, categories, menus, modules)
  • Bulk sync completes in under 5 seconds (clear + push in 2-3 HTTP requests)
  • Asset table and nested set tree repair after sync push on target site
  • Enhanced dev mode: disables caching, enables Joomla + MokoOnyx debug, suppresses hit recording, shows offline on primary domain
  • Dev mode off: clears content versions, resets hits, disables debug, takes site online
  • Hardcoded dev alias (dev.{primary_domain}) with noindex/nofollow — bypasses offline mode for development
  • Primary domain auto-detected on first config save

Changed

  • Branding, master user, support URL, and admin colors are now hardcoded (no longer configurable)
  • Master user enforcement is always active (toggle removed)
  • Diagnostics + maintenance merged into default config tab
  • Emergency access moved to Security tab
  • Content sync configuration moved from system plugin to individual scheduled task instances

Removed

  • Static updates.xml — update feed is now generated dynamically by MokoGitea from git releases
  • Basic branding config tab (brand name, company name, support URL)
  • Visual branding config tab (colors, icon, custom CSS)
  • WaaS Access config tab (master user toggle, master email)
  • Content Sync config tab (targets now in scheduled tasks)
  • Site Aliases config tab (hardcoded to dev.{primary_domain})
  • File sync (images/, files/, media/) — sync is API/DB content only

[02.29.03] - 2026-05-31

Added

  • allow_extension_updates param — separate update rights from installer restrictions; tenants can update extensions by default even when the installer is restricted
  • Hardcoded master usernames — multiple privileged users supported with identical access

Fixed

  • Emergency access IP whitelist: empty allowed_ips now permits all IPs (was blocking everyone)

  • Emergency access reads allowed_ips from plugin params instead of global config

  • plg_task_mokowaassync — Joomla Scheduled Task plugin for automatic content sync to remote sites

  • Community Builder tables added to demo reset safe table list

  • API endpoint POST /api/index.php/v1/mokowaas/install — install extensions from a remote ZIP URL

  • Demo Mode with configurable warning banner on frontend when enabled

Fixed

  • Demo banner countdown now shows weeks/days/months for longer intervals instead of raw hours
  • DemoResetService — baseline snapshot and restore for DB tables + media files
  • API endpoints POST /?mokowaas=reset and POST /?mokowaas=snapshot (query-string)
  • REST endpoints POST /api/v1/mokowaas/reset and GET/POST /api/v1/mokowaas/snapshot
  • plg_task_mokowaasdemo — Joomla Scheduled Task plugin for automatic demo site reset
  • Admin toggles: Take Snapshot Now and Restore Baseline Now in plugin config
  • Content Sync: one-way push of articles, categories, menus, and modules to remote MokoWaaS sites
  • Content Sync: API endpoints POST /?mokowaas=sync (sender) and POST /?mokowaas=sync-receive (receiver)
  • Content Sync: REST endpoints POST /api/v1/mokowaas/sync and POST /api/v1/mokowaas/sync-receive
  • Content Sync: configurable sync targets with URL + API token in plugin settings
  • Package installer: protect all MokoWaaS extensions (not just system plugin) and ensure update server stays enabled
  • Package installer: clean up legacy mokowaasbrand extension entries and files on install/update
  • API endpoint GET /?mokowaas=extensions and GET /api/v1/mokowaas/extensions — list installed extensions with version, status, and update server info

[02.20.00] --- 2026-05-28

[02.20.00] --- 2026-05-28

[02.19.00] --- 2026-05-28

[02.18.00] --- 2026-05-28

All notable changes to the MokoWaaS plugin will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.