diff --git a/.mokogitea/manifest.xml b/.mokogitea/manifest.xml index ec1f159..9cc9685 100644 --- a/.mokogitea/manifest.xml +++ b/.mokogitea/manifest.xml @@ -8,7 +8,7 @@ MokoWaaS MokoConsulting White-label identity, security hardening, and tenant restriction layer for WaaS-managed Joomla environments - 02.16.00-dev + 02.17.00-dev GNU General Public License v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2afffbd..5e9074f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,13 +19,15 @@ --> # Changelog +## [Unreleased] + All notable changes to the MokoWaaS plugin will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [02.17.00-dev] --- 2026-05-28 ### Changed - Migrated all workflow and template paths from `.github/` to `.mokogitea/` @@ -144,288 +146,3 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Heartbeat receiver accepts any 200 status (registered/updated/ok) - script.php uses heartbeat receiver instead of Grafana API (fixes 403 RBAC) - -## [02.01.37] - 2026-05-23 - -### Added -- Health check endpoint at `/?mokowaas=health` with 16 diagnostic checks (#54) -- Core checks: database latency, filesystem writability/size, cache, extensions -- Backup checks: Akeeba Backup last backup date/status/size, days since, frequency -- Security checks: Admin Tools WAF status, blocked requests 24h/7d -- SSL certificate: expiry date, days left, issuer (degraded <30d, error <7d) -- Scheduled tasks: Joomla task scheduler status, failed tasks 24h -- Error log: PHP error log size, recent errors, last error message -- Database size: total MB, table count, top 5 largest tables -- Content stats: articles, categories, menu items, modules -- User activity: total users, active sessions, failed logins 24h, last login -- Mail system: mailer type, from address, SMTP host, queue count -- SEO health: robots.txt, sitemap, htaccess, SEF status -- Template info: site/admin template names, override count -- Configuration drift: debug mode, error reporting, force SSL, caching -- Human-readable `reason` field explaining degraded/error status -- Site size reporting (images, media, tmp, cache, logs directories) -- Heartbeat provisioning via receiver at bench.mokoconsulting.tech -- Grafana datasource auto-provisioning via YAML (no API token needed) -- ntfy notifications on heartbeat registration (mokowaas-heartbeat topic) -- Grafana dashboard with 9 rows covering all 16 health checks -- Auto-generated health API token (separate from Joomla user tokens) - -### Changed -- Health endpoint always enabled — no config toggle needed -- Grafana provisioning uses heartbeat receiver pattern (replaces direct API) -- Removed config fields: enable_health_endpoint, grafana_url, grafana_api_key -- Migrated .gitea/ to .mokogitea/ directory standard -- Updated all references from MokoStandards to moko-platform -- Renamed Gitea references to MokoGitea in docs - -### Fixed -- SSL verification disabled for Grafana cURL calls (shared hosting) -- cURL follow redirects enabled -- updates.xml download URL uses correct `development` tag - -### Security -- Plugin hidden from plugin list for non-master users -- Plugin settings restricted to master user only -- Self-healing lock (enforceLocked) runs every page load -- Uninstall blocked in preflight -- Health endpoint requires HTTPS + bearer token -- Heartbeat shared secret for receiver authentication - -## [02.01.08] - 2026-04-07 - -### Added -- Template-based language overrides with `{{BRAND_NAME}}`, `{{COMPANY_NAME}}`, `{{SUPPORT_URL}}` placeholders -- Configurable brand name, company name, and support URL via plugin params -- Sentinel-block merge pattern that preserves existing site overrides -- Install respects user-defined overrides (non-overwrite) -- ~50 override keys across admin and frontend -- Powered by links with anchor tag to support URL -- Login support URL enforcement (mokoconsulting.tech/support, /kb, /news) -- Atum template branding via params (logoBrandLarge, logoBrandSmall, loginLogo) -- Shipped media assets: logo.png, favicon.ico, favicon.svg, favicon_256.png -- Favicon injection (SVG + ICO + Apple touch icon) -- Admin color scheme via Atum template style params (hue, link-color, special-color) -- Custom CSS textarea injection -- Master user enforcement (persistent super admin — "Webmaster") -- Emergency access (DB password + file verification two-factor) -- IP whitelist via configuration.php (empty blocks access) -- IP whitelist display in plugin config (shows current IPs + your IP) -- All emergency access attempts logged to Joomla Action Logs -- Email notification on successful emergency login -- Tenant restrictions: Extension Installer, System Info, Global Configuration, Template code editor -- Dynamic admin menu hiding via onPreprocessMenuItems -- Disable install-from-URL for all users -- Force HTTPS redirect (supports reverse proxy) -- Admin session idle timeout (default 60 min, master user exempt) -- Password policy (min length, uppercase, number, special character) -- Upload type and size restrictions (default 100MB) -- Maintenance actions: reset all hits, delete all versions -- Auto-enable plugin on first install -- Action log extension registration in #__action_logs_extensions and #__action_log_config -- Custom AllowedIpsField form field for IP whitelist display -- Joomla 5.x and 6.x compatibility - -### Fixed -- Column heading overrides removed (broke module/plugin list views) -- RegularLabs Position column workaround -- Nested `` tags in login support overrides -- Emergency access moved from onUserAuthenticate to onAfterInitialise (Joomla uses isolated auth dispatcher) -- Session created directly for emergency login (bypasses auth dispatcher) -- Auto-complete emergency login after verify file deletion (no re-entering credentials) - -### Changed -- Version bumped to 02.01.08 across all files -- Configuration guide fully rewritten with all fieldsets documented -- Testing guide with 17 test suites -- README updated with Usage section, new features, Joomla 5/6 badges - -## [01.04.00] - 2026-02-22 - -### Added -- Complete Joomla 5.x system plugin implementation with modern architecture -- Main plugin class (`src/mokowaas.php`) with event handlers: - - `onAfterInitialise` event hook for framework initialization - - `onAfterRoute` event hook for routing integration -- Plugin manifest (`src/mokowaas.xml`) with Joomla 5.x namespace support - - Namespace: `Moko\Plugin\System\MokoWaaS` - - Configuration parameter for enabling/disabling branding -- Dependency injection service provider (`src/services/provider.php`) - - DI container registration for Joomla 5.x compatibility -- Plugin language files in `src/language/en-GB/`: - - `plg_system_mokowaas.ini` - Plugin UI strings - - `plg_system_mokowaas.sys.ini` - System/installation strings -- Enhanced language overrides (57+ strings): - - Installation sample data branding - - Site name labels - - Admin-specific UI elements - - Version and About sections -- Security `index.html` files throughout directory structure -- Comprehensive README.md with: - - Badges for version, license, Joomla, and PHP compatibility - - Table of contents with 12+ major sections - - Detailed installation instructions (2 methods) - - Technical implementation documentation - - Repository structure overview - - Development and build instructions - -### Changed -- Updated all documentation to version 01.04.00 -- Enhanced language overrides with more comprehensive coverage -- Improved plugin configuration options - -### Fixed -- Typo in language override: "ERROR OCCURED" → "ERROR OCCURRED" -- Repository references updated from placeholders to actual GitHub URLs - -### Technical -- Integrates with Joomla's native language override system -- No programmatic string loading (performance optimization) -- Event-driven architecture for minimal overhead -- PSR-4 autoloading through service provider - -## [01.03.00] - 2025-12-11 - -### Changed -- General cleanup and code organization -- Documentation structure improvements - -## [01.02.01] - 2025-12-11 - -### Changed -- Version bump for release alignment - -## [01.02.00] - 2025-12-11 - -### Added -- Documentation directory (`/docs/`) with comprehensive guides: - - Installation guide - - Configuration guide - - Build guide - - Operations guide - - Troubleshooting guide - - Upgrade and versioning guide - - Rollback and recovery guide -- GitHub workflow for automated builds (`.github/workflows/build.yml`) -- Image and favicon replacement feature for complete branding - -### Changed -- Improved documentation structure and organization - -## [01.01.05] - 2025-12-11 - -### Changed -- Version bump for release coordination - -## [01.01.04] - 2025-12-11 - -### Fixed -- Plugin manifest corrections and validation fixes - -## [01.01.03] - 2025-12-11 - -### Fixed -- Administrator language file location corrected -- Language override path alignment with Joomla standards - -## [01.01.02] - 2025-12-11 - -### Changed -- Moved plugin code to `/src/` directory for better organization -- Aligned repository structure with release deployment pipeline -- Improved packaging workflow - -### Added -- Release deployment pipeline integration -- Automated build and validation scripts - -## [1.0.0] - 2025-12-11 - -### Added -- Initial release of MokoWaaS plugin -- Basic language override system for Joomla rebranding -- Frontend language overrides (en-GB, en-US) -- Administrator language overrides (en-GB, en-US) -- Core branding replacements: - - Footer "Powered by" text - - Control panel welcome messages - - Help and documentation links - - Generic Joomla→MokoWaaS replacements -- Basic plugin structure and manifest -- License (GPL-3.0-or-later) -- Contributing guidelines -- Code of conduct - -### Technical Details -- Joomla 5.x compatible -- PHP 8.1+ requirement -- Language override mechanism using Joomla's native system - ---- - -## Version History Summary - -| Version | Date | Type | Summary | -|------------|------------|-----------|-------------------------------------------| -| 01.04.00 | 2026-02-22 | Major | Complete plugin implementation & enhanced docs | -| 01.03.00 | 2025-12-11 | Minor | Cleanup and organization | -| 01.02.01 | 2025-12-11 | Patch | Version alignment | -| 01.02.00 | 2025-12-11 | Minor | Documentation and build system | -| 01.01.05 | 2025-12-11 | Patch | Version coordination | -| 01.01.04 | 2025-12-11 | Patch | Manifest fixes | -| 01.01.03 | 2025-12-11 | Patch | Language location fix | -| 01.01.02 | 2025-12-11 | Patch | Repository restructuring | -| 1.0.0 | 2025-12-11 | Major | Initial release | - ---- - -## Upgrade Notes - -### Upgrading to 01.04.00 - -**Breaking Changes:** None - -**New Features:** -- Complete Joomla 5.x plugin implementation -- Dependency injection support -- Enhanced language overrides (14+ new strings) - -**Installation:** -1. Backup your current installation -2. Download the latest release package -3. Install via Joomla Extension Manager -4. Clear Joomla cache -5. Verify branding appears correctly - -### Upgrading to 01.02.00 - -**New Features:** -- Comprehensive documentation in `/docs/` -- Automated build workflows - -**Notes:** -- Review new documentation for operational guidance -- Check GitHub workflows for automated builds - ---- - -## Contributing - -Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests. - -When adding entries to this changelog: -1. Add new changes under `[Unreleased]` section -2. Use categories: Added, Changed, Deprecated, Removed, Fixed, Security -3. Include clear, concise descriptions -4. Reference issue numbers where applicable -5. Move items from Unreleased to versioned section upon release - -## Links - -- [MokoStandards](https://github.com/mokoconsulting-tech/MokoStandards) - Coding and documentation standards -- [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Changelog format specification -- [Semantic Versioning](https://semver.org/spec/v2.0.0.html) - Version numbering specification -- [Repository](https://github.com/mokoconsulting-tech/mokowaas) - Project repository - ---- - -**Note:** For detailed technical documentation, see the `/docs/` directory and [README.md](README.md). diff --git a/README.md b/README.md index f189d42..ccf1b18 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.16.00-dev + VERSION: 02.17.00-dev PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/src/packages/com_mokowaas/mokowaas.xml b/src/packages/com_mokowaas/mokowaas.xml index efc040b..961a306 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.16.00-dev + 02.17.00-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/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 0650ccf..b06bf37 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.16.00-dev + 02.17.00-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_webservices_mokowaas/mokowaas.xml b/src/packages/plg_webservices_mokowaas/mokowaas.xml index 3238172..9776a0f 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.16.00-dev + 02.17.00-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 12ae8fe..a25039b 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.16.00-dev + 02.17.00-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/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index d2d3427..ef8fb17 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ MokoWaaS mokowaas - 02.16.00-dev + 02.17.00-dev 2026-05-23 Moko Consulting hello@mokoconsulting.tech