Files
MokoSuiteClient/CHANGELOG.md
T
gitea-actions[bot] 13bccc041a
Generic: Project CI / Lint & Validate (push) Successful in 9s
Generic: Project CI / Tests (push) Has been cancelled
chore: promote changelog [Unreleased] → [02.42.00]
2026-06-20 19:05:27 +00:00

7.8 KiB

Changelog

[Unreleased]

[02.42.00] --- 2026-06-20

[02.42.00] --- 2026-06-20

[02.41.00] --- 2026-06-20

Fixed

  • Ticket automation and offline bypass plugins not enabling on install/update — enablePlugin() now handles empty element columns with a fallback match by manifest name
  • Heartbeat silently failing — sendHeartbeat() was reading config from the retired monitor plugin; now reads from core plugin params
  • Cpanel module not publishing on update — ensureAdminModule() now does a direct DB update for existing modules (bypasses ModuleModel checked_out issues)
  • Cpanel module access level changed from 6 (may not exist) to 3 (Special)
  • Admin menu module ordering set to -1 to ensure it appears at the top of the menu position

Changed

  • Retired monitor plugin config (base_url, signing_key, heartbeat_enabled) consolidated into core plugin params with one-time migration
  • Runtime heartbeat moved from retired plg_system_mokosuiteclient_monitor into core plugin (checkHeartbeat on admin page load after version change)
  • DisplayController::sendHeartbeat() reads from core plugin instead of retired monitor plugin
  • Removed monitor plugin from cpanel dashboard plugin grid

Added

  • Missing language strings for IMAP poll and auto-close ticket automation task routines
  • Monitor fieldset in core plugin XML with heartbeat_enabled, monitor_base_url, and monitor_signing_key fields
  • Language strings for monitor fieldset (PLG_SYSTEM_MOKOSUITECLIENT_FIELDSET_MONITOR_*)

[02.35.00] --- 2026-06-18

Changed

  • Full rename: MokoSuite → MokoSuiteClient — repo, all Joomla element names (com_mokosuiteclient, plg_system_mokosuiteclient, mod_mokosuiteclient_*, etc.), PHP classes, language files, folder structure, and manifest references. This is the client tracker for the MokoSuite platform.

Added

  • RSA-signed heartbeat authentication — private key in monitor plugin manifest, public key on MokoSuiteClientHQ
  • Monitor plugin base_url set via manifest (hidden from admin UI), propagated via update server
  • Send Heartbeat button on health token field for manual heartbeat testing
  • Font Awesome 7 loaded in admin backend — picks up MokoOnyx Kit code if present, falls back to bundled FA7 Free or FA6 CDN
  • MokoWaaS → MokoSuiteClient database table migration in install script (create new, copy data, drop old)
  • MokoWaaS → MokoSuiteClient extension param migration — copies params from all old mokowaas plugins/modules/component, then removes old entries and filesystem remnants
  • Ticket contact linking — optional FK to Joomla contact records with display in list and detail views
  • Multi-assignee tickets — junction table supports multiple users and user groups per ticket
  • Customizable ticket statuses — admin-configurable lookup table replaces hardcoded ENUM (title, color, is_closed flag)
  • Customizable ticket priorities — admin-configurable lookup table with weight and color
  • Joomla custom fields integration for tickets (context: com_mokosuiteclient.ticket) with field groups assignable per category
  • MokoWaaS/MokoWaaSHQ migration bridge repos with updates.xml redirecting existing installs to MokoSuiteClient/HQ
  • Pre-release workflow triggers on push to dev/alpha/beta/rc branches (deployed to all 11 repos)

Removed

  • PerfectPublisher webservices plugin (no longer needed)

Fixed

  • Download key lost on update: cleanupStaleUpdateSites used old /raw/branch/main/ URL format, deleting the manifest-registered update site that held the key

[02.35.00] - 2026-06-06

Added

  • Core plugin stripped to heartbeat-only config (~5,500 lines removed)
  • Extension catalog (catalog.xml) with update server discovery (#186)
  • Download key preservation across Joomla updates (#187)
  • Remote login endpoint for MokoSuiteClientHQ auto-login
  • Provision reset API for new client setup (hits, versions, tokens)
  • Setup required banner after provision reset
  • Support verification PIN (MOKO-XXXX-XXXX)
  • mod_mokosuiteclient_categories — auto-category tree menu (#184)
  • Cache/temp split button in status bar
  • Dashboard version tiles for component and modules
  • Monitor plugin sends full health payload to MokoSuiteClientHQ
  • Firewall: block_frontend_superuser, own trusted_ip_entry.xml
  • DevTools: reset download keys toggle

Changed

  • Renamed src/ to source/ (#188)
  • Service classes relocated to owning plugins
  • API controller execute() signatures fixed (#183)
  • Joomla 5/6 event compatibility in DevTools and Monitor
  • Dead placeholder resolver removed from install script

Fixed

  • Firewall subform paths after core cleanup
  • Missing Security Headers language strings

[02.34.00] - 2026-06-04

Added

  • Database Tools view — table status, optimize, repair, session purge (#127)
  • Cache Cleanup view — directory size reporting and one-click cleanup (#128)
  • mod_mokosuiteclient_cache — one-click cache cleaner button in admin status bar (replaces Regular Labs Cache Cleaner)
  • mod_mokosuiteclient_menu — collapsible admin sidebar menu using native MetisMenu classes (like Community Builder)
  • SSL certificate expiry monitoring in cpanel module (#148)
  • MokoSuiteClient-specific update badge (blue) separate from other updates in cpanel module
  • migrateUpdateServerUrls() — rewrites all Moko extension update server URLs to clean /updates.xml on install/update
  • fixMenuIcons() — sets menu_icon params on submenu items (Joomla only renders img on level 1)
  • setupCacheModule() — registers cache cleaner module in status bar position on install
  • Component config.xml for Joomla Options modal (#149)
  • preflight() ALTER for #__extensions.element default (MySQL strict mode fix)
  • Retire MokoJoomTOS, MokoATS-Automation, MokoDPCalendarAPI, MokoGalleryCalendar on install
  • MokoJoomTOS settings auto-migrate to mokosuiteclient_offline before removal
  • dev-release and pre-release workflows with changelog extraction into release notes
  • RC pre-release consolidates dev patches into clean minor version bump

Changed

  • Move security hardening methods (protectPlugin, ensureProtectedFlag, isOurExtension) from core plugin to firewall plugin (#155)
  • Admin menu module uses native Joomla MetisMenu CSS classes
  • Helpdesk icon changed to fa-handshake-angle, .htaccess to fa-solid fa-file-code
  • clearCache purges all cache files recursively (replaces Regular Labs Cache Cleaner behavior)
  • License key warning moved from every-page onAfterRoute to package postflight only
  • Update server URL changed to dynamic MokoGitea feed
  • Component manifest adds <languages> for global language dir deployment
  • Privacy and WAF Log added to component manifest submenu
  • MokoOnyx template removed from package manifest (separate repo/release)

Removed

  • Static updates.xml — MokoGitea generates update feed dynamically from releases
  • update-server.yml workflow — replaced by pre-release.yml

Fixed

  • Tickets list showing raw <em>Unassigned</em> HTML instead of italic text
  • Cache cleaner CSRF failure — token now sent as POST FormData
  • Admin menu icons missing for Helpdesk and .htaccess Maker
  • Firewall install error "Field 'element' doesn't have a default value" (MySQL strict mode)