91 lines
6.0 KiB
Markdown
91 lines
6.0 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.50.00
|
|
BRIEF: Version history using `Keep a Changelog`
|
|
-->
|
|
|
|
# Changelog
|
|
|
|
## [Unreleased]
|
|
|
|
## [02.50.00] --- 2026-06-28
|
|
|
|
## [02.50.00] --- 2026-06-28
|
|
|
|
### Added
|
|
- **Mirror Domains & Staging** — repeatable subform table in DevTools plugin for configuring domain aliases with per-alias offline bypass, robots directive, and labels
|
|
- **Daily Support PIN** — HMAC-SHA256 rotating PIN shown on cpanel module, component dashboard, and HQ site cards
|
|
- **Support PIN in status bar** — cache/temp module now shows PIN request button instead of domain; click to request, click again to copy
|
|
- **Frontend link in status bar** — cache/temp module now has 4 buttons: Site (frontend link), PIN, Cache, Temp
|
|
- **Help buttons** — all admin views link to Gitea wiki pages via toolbar help button
|
|
- **Support PIN in heartbeat** — core system plugin includes current PIN in heartbeat payload to HQ
|
|
- **HQ config sync** — client stores HQ-configured `support_pin_hours` from heartbeat response, PIN TTL now configurable from HQ
|
|
|
|
### Changed
|
|
- **Support PIN UI unified** — `SupportPinHelper::renderBadge()` and `renderScript()` replace 3 separate inline implementations (dashboard, cpanel module, cache module) with click-to-copy on all PIN badges
|
|
- Admin sidebar menu module now loads component-local language files (fixes untranslated keys for MokoSuiteCross and other components)
|
|
- Support PIN TTL is now configurable via HQ global options instead of hardcoded 72 hours
|
|
- Removed MokoSuiteHQ from extension catalog (internal app, not for client sites)
|
|
- **SupportPinHelper** — shared helper centralises PIN generation across dashboard, cpanel module, cache module, and AJAX controller
|
|
- **Current IP display** — firewall plugin settings show admin's IP with copy button
|
|
- **Heartbeat monitor** — consolidated into core plugin from retired monitor plugin, with diagnostic logging on all bail-out points
|
|
- **Backup bridge plugin** — discovers MokoSuiteBackup's BackupStatusHelper and sends status in heartbeat payloads
|
|
- **Activity log** — blockchain-style hash chain for tamper detection in MokoSuiteHQ
|
|
- **Dev domain in heartbeat** — client sends dev alias to HQ for display on dashboard
|
|
- **Login app badges** — recent logins table shows Admin/Site badge parsed from Joomla action log message JSON
|
|
|
|
### Changed
|
|
- **Plugin install** — self-healing: extracts plugin zips from package on every update, creates missing extension records with namespace
|
|
- **Menu naming** — MokoSuiteClient displays as "MokoSuite", MokoSuiteHQ as "MokoHQ", others stripped of prefix
|
|
- **Menu ordering** — HQ first, MokoSuite second, others alphabetical
|
|
- **Cpanel module** — always starts collapsed, access level 3 (Special), pretty plugin badge labels
|
|
- **Module namespaces** — fixed cpanel (MokoSuiteCpanel → MokoSuiteClientCpanel) and cache (MokoSuiteCache → MokoSuiteClientCache)
|
|
- **Health checks** — return status:error on exceptions instead of false status:ok; MokoSuiteBackup detection queries correct table
|
|
- **Heartbeat** — correct URL (suite.dev), correct API route (mokosuitehq), correct headers (X-MokoSuite-*), fresh RSA key pair
|
|
- **Date formats** — all templates use Joomla locale-aware DATE_FORMAT_LC2/LC4
|
|
- **Domains** — updated from waas.dev to suite.dev.mokoconsulting.tech throughout
|
|
- **Dashboard info bar** — reverted stacked layout; info items back to horizontal row
|
|
- **Extension version bar** — full-width auto-sized strip with equal-width cells and border separators
|
|
- **Recent logins** — exact match on LOGGED_IN key (excludes logout noise), limit increased to 10
|
|
|
|
### Removed
|
|
- **Helpdesk/tickets** — migrated to MokoSuiteCRM (issue #67)
|
|
- **Monitor plugin** — retired, config consolidated into core plugin
|
|
- **Backup bridge** — temporarily removed from package manifest (build pipeline issue)
|
|
- **Update server migration** — removed migrateUpdateServerUrls, cleanupStaleUpdateSites, fixUpdateRecords, enableUpdateServer calls
|
|
|
|
### Fixed
|
|
- **Regular Labs import** — destination tables missing from SQL update files; sites that upgraded never got the tables, causing "No data found" on import
|
|
- **Regular Labs import banner** — detection now requires both source AND destination tables before showing the import button
|
|
- **DB-IP auto-enrichment** — all IPs in `<code>` tags in admin backend now show country flag emoji and geo tooltip on hover
|
|
- **MokoSuiteBackup quick action** — dashboard now includes MokoSuiteBackup button when component is installed
|
|
- **PIN copy** — fixed duplicate click handlers (4 toast messages), "Copied!" not reverting, added "Click to copy" hover tooltip
|
|
- Health endpoint cron check SQL error — orphan `setQuery(getQuery(true), 0, 5)` produced bare `LIMIT 5`, returning 503 for all health polls
|
|
- License plugin missing `src/` and `language/` directories causing install failure
|
|
- PIN generation inconsistency — controller used `floor(now/TTL)` while display used `floor(requestedAt/TTL)`
|
|
- Plugin files installing to group root instead of element subdirectory (ALTER TABLE DEFAULT '' + empty element cleanup)
|
|
- Orphan extension rows with empty element or display-name-as-element
|
|
- Module not publishing (ensureAdminModule direct DB update bypasses checked_out)
|
|
- RSA key pair had Windows line endings causing signature verification failure
|
|
- Heartbeat connection failing due to wrong domain, route, and header names
|
|
|
|
## [02.44.00] --- 2026-06-20
|
|
|
|
## [02.42.00] --- 2026-06-20
|
|
|
|
## [02.42.00] --- 2026-06-20
|