4b9a675d0f
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Generic: Project CI / Lint & Validate (push) Successful in 36s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 40s
Generic: Project CI / Tests (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
All Joomla element names, PHP classes, language files, folder structure, and manifest references renamed from mokosuite to mokosuiteclient. This repo is now the client-facing tracker for the MokoSuite platform.
210 lines
12 KiB
Markdown
210 lines
12 KiB
Markdown
<!--
|
|
Copyright (C) 2025 Moko Consulting <hello@mokoconsulting.tech>
|
|
|
|
This file is part of a Moko Consulting project.
|
|
|
|
SPDX-LICENSE-IDENTIFIER: GPL-3.0-or-later
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License (./LICENSE.md).
|
|
|
|
# FILE INFORMATION
|
|
DEFGROUP:
|
|
INGROUP: MokoSuiteClient.Documentation
|
|
REPO: https://github.com/mokoconsulting-tech/mokosuiteclient
|
|
PATH: ./CHANGELOG.md
|
|
VERSION: 02.34.50
|
|
BRIEF: Version history using `Keep a Changelog`
|
|
-->
|
|
|
|
# Changelog
|
|
|
|
## [Unreleased]
|
|
|
|
### 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)
|
|
|
|
|
|
## [02.32] - 2026-06-02
|
|
|
|
### Added
|
|
- Admin control panel dashboard in com_mokosuiteclient with site info bar, feature plugin grid, and quick actions
|
|
- Feature plugin architecture — MokoSuiteClient features split into toggleable plugins managed from the dashboard
|
|
- plg_system_mokosuiteclient_firewall — HTTPS enforcement, trusted IPs, session timeout, upload restrictions, password policy
|
|
- plg_system_mokosuiteclient_tenant — Installer, sysinfo, config, template, and menu restrictions for non-master users
|
|
- plg_system_mokosuiteclient_devtools — Dev mode, hit counter reset, content version cleanup
|
|
- plg_system_mokosuiteclient_monitor — Grafana heartbeat integration and health monitoring
|
|
- MokoSuiteClientHelper 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_mokosuiteclient 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] - 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 MokoSuiteClient 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)
|
|
- Suite 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] - 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_mokosuiteclientsync` — 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/mokosuiteclient/install` — install extensions from a remote ZIP URL
|
|
|
|
- Demo Mode with configurable warning banner on frontend when enabled
|
|
|
|
- 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 /?mokosuiteclient=reset` and `POST /?mokosuiteclient=snapshot` (query-string)
|
|
- REST endpoints `POST /api/v1/mokosuiteclient/reset` and `GET/POST /api/v1/mokosuiteclient/snapshot`
|
|
- `plg_task_mokosuiteclientdemo` — 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 MokoSuiteClient sites
|
|
- Content Sync: API endpoints `POST /?mokosuiteclient=sync` (sender) and `POST /?mokosuiteclient=sync-receive` (receiver)
|
|
- Content Sync: REST endpoints `POST /api/v1/mokosuiteclient/sync` and `POST /api/v1/mokosuiteclient/sync-receive`
|
|
- Content Sync: configurable sync targets with URL + API token in plugin settings
|
|
- Package installer: protect all MokoSuiteClient extensions (not just system plugin) and ensure update server stays enabled
|
|
- Package installer: clean up legacy `mokosuiteclientbrand` extension entries and files on install/update
|
|
- API endpoint `GET /?mokosuiteclient=extensions` and `GET /api/v1/mokosuiteclient/extensions` — list installed extensions with version, status, and update server info
|
|
|
|
## [02.20] --- 2026-05-28
|