f2e1dfe114
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 3s
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 4s
Universal: PR Check / Changelog Updated (pull_request) Successful in 4s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been skipped
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been skipped
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been skipped
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
12 KiB
12 KiB
Changelog
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.
[Unreleased]
Planned
- License/subscription check
- System email template branding (DB approach)
[02.01.37] - 2026-05-23
Added
- Health check endpoint at
/?mokowaas=healthwith 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
reasonfield 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
developmenttag
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
<a>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:onAfterInitialiseevent hook for framework initializationonAfterRouteevent 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
- Namespace:
- 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 stringsplg_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.htmlfiles 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:
- Backup your current installation
- Download the latest release package
- Install via Joomla Extension Manager
- Clear Joomla cache
- 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 for details on our code of conduct and the process for submitting pull requests.
When adding entries to this changelog:
- Add new changes under
[Unreleased]section - Use categories: Added, Changed, Deprecated, Removed, Fixed, Security
- Include clear, concise descriptions
- Reference issue numbers where applicable
- Move items from Unreleased to versioned section upon release
Links
- MokoStandards - Coding and documentation standards
- Keep a Changelog - Changelog format specification
- Semantic Versioning - Version numbering specification
- Repository - Project repository
Note: For detailed technical documentation, see the /docs/ directory and README.md.