Commit Graph

319 Commits

Author SHA1 Message Date
Jonathan Miller e8d494d590 feat: license key warning + heartbeat validation + stale update site cleanup
- Persistent admin warning when no download key is set on the MokoWaaS
  update site, with link to System → Update Sites
- Daily heartbeat validates the key against MokoGitea's dynamic endpoint;
  shows error if key is invalid or expired
- Package postflight removes stale/duplicate update site entries and
  orphaned #__updates rows

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 11:23:54 -05:00
Jonathan Miller 47bfdb9206 chore: bump version 02.29.04 → 02.30.00
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 11:18:12 -05:00
Jonathan Miller 1b6747d9f9 feat: integrate MokoGitea license system for update checks
Update server now points to MokoGitea's dynamic endpoint which
validates license keys (dlid) and generates update XML from git
releases. Users enter the download key via Joomla's native
System → Update Sites interface. Legacy static URLs are auto-migrated
on install/update.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 10:36:53 -05:00
Jonathan Miller 7ba7337054 fix: 02.29.04 - remove secondary master user enforcement
Only enforce the primary master username; plugin no longer creates
or protects the secondary user account.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 09:04:08 -05:00
Jonathan Miller f6aa0e590b chore: bump version 02.29.02 → 02.29.03
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 08:46:27 -05:00
Jonathan Miller a574032570 fix: obfuscate master usernames in source code (XOR + base64)
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 08:41:13 -05:00
Jonathan Miller ffed9f3d51 chore: bump version 02.29.00 → 02.29.01
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 08:25:09 -05:00
Jonathan Miller a12ecf96d9 fix: hardcode master usernames, fix IP whitelist blocking all access
- Hardcode mokoconsulting and jmiller as master usernames (no longer
  configurable via params)
- Fix isIpAllowed() reading from global config instead of plugin params
- Fix empty allowed_ips returning false (now allows all IPs)
- Both master users are auto-created and enforced as Super Admins

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 08:21:18 -05:00
Jonathan Miller 3d224ad9c0 chore: bump version 02.28.00 → 02.29.00
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 07:38:40 -05:00
Jonathan Miller 053f503af5 feat: separate extension update rights from installer restrictions
Add `allow_extension_updates` param (default: Yes) so tenants can
update extensions even when the installer is restricted. The update
and updatesites views are now permitted independently of the install
and manage views.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-31 07:28:41 -05:00
Jonathan Miller 8f5a05bad3 chore: merge main into dev, resolve conflicts for 02.28.00
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 22:56:13 -05:00
Jonathan Miller 639ac84c08 feat: add content sync task plugin, fix countdown, CB tables, remove workflows (02.28.00)
- Add plg_task_mokowaassync scheduled task plugin for automated content sync
- Fix demo banner countdown to show weeks/days/months for longer intervals
- Add Community Builder tables to DemoResetService safe reset list
- Remove all CI/CD workflow files (manual release process)
- Bump version to 02.28.00 across all manifests and updates.xml

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 22:45:54 -05:00
gitea-actions[bot] f6f815d377 chore(release): build 02.27.00 [skip ci] 2026-05-31 03:13:18 +00:00
gitea-actions[bot] a0b67dea1f chore(version): auto-bump 02.26.18-dev [skip ci] 2026-05-31 02:53:55 +00:00
Jonathan Miller 41aeeacbae Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:53:42 -05:00
Jonathan Miller a00f60327c fix: demo banner is static (not fixed), not dismissable, pushes body down
Banner is now a normal block element at the top of the body instead of
position:fixed. No close button, no sessionStorage dismiss. Content
flows below it naturally.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:53:19 -05:00
gitea-actions[bot] e53b55fd48 chore(version): auto-bump 02.26.17-dev [skip ci] 2026-05-31 02:52:08 +00:00
Jonathan Miller 2e59cbaa3b Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:51:51 -05:00
Jonathan Miller 3a47c3b453 fix: default show_countdown to 1 in banner injection
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:51:46 -05:00
gitea-actions[bot] 51dd09be46 chore(version): auto-bump 02.26.16-dev [skip ci] 2026-05-31 02:49:47 +00:00
Jonathan Miller 5d6871dd2f Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:49:29 -05:00
Jonathan Miller 905f896f22 fix: default banner/media/countdown to On when task params not yet saved
Task params only contain custom fields after the task is edited and
saved in the Scheduler UI. Before that, they're missing — default to
the form defaults (all On) instead of Off.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:49:07 -05:00
gitea-actions[bot] 0f89de2003 chore(version): auto-bump 02.26.15-dev [skip ci] 2026-05-31 02:44:52 +00:00
Jonathan Miller 83880ed740 fix: onContentAfterSave receives single event object in Joomla 6
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Has been cancelled
Generic: Repo Health / Site Health (pull_request) Has been cancelled
Generic: Repo Health / Access control (pull_request) Has been cancelled
Joomla: Extension CI / Lint & Validate (pull_request) Has been cancelled
Joomla: Extension CI / Release Readiness Check (pull_request) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Has been cancelled
Universal: PR Check / Validate PR (pull_request) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Generic: Repo Health / Release configuration (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:44:39 -05:00
gitea-actions[bot] df4548ba8b chore(version): auto-bump 02.26.14-dev [skip ci] 2026-05-31 02:41:03 +00:00
Jonathan Miller 9af7e6bc7c Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:40:32 -05:00
Jonathan Miller 1ea9406f1a fix: rebuild assets after content restore to fix ACL
After restoring content tables, deletes stale content-level assets
(articles, categories, modules, contacts, banners) and rebuilds:
- Category nested set tree
- Menu nested set tree
- Asset nested set tree
- Re-creates missing asset entries for articles with asset_id=0

Component and extension-level assets are never touched.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:40:28 -05:00
gitea-actions[bot] 9c269117c4 chore(version): auto-bump 02.26.13-dev [skip ci] 2026-05-31 02:38:21 +00:00
Jonathan Miller 1032074e5c refactor(demo): content-only snapshot — never touch system tables
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Hardcoded safe table list: content, categories, menus, modules, users,
tags, fields, contacts, banners. Never touches #__extensions, #__assets,
#__schemas, #__session, #__update_sites, or any system tables.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:38:08 -05:00
Jonathan Miller b0aa4e8763 Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:34:55 -05:00
Jonathan Miller 6f19f58033 fix: read all execution rule types and show task params in info card
Supports interval-minutes, interval-hours, interval-days, and
cron-expression rule types. Shows banner, media, countdown, and
baseline snapshot status in the plugin config info card.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:34:51 -05:00
gitea-actions[bot] fe5f74b640 chore(version): auto-bump 02.26.12-dev [skip ci] 2026-05-31 02:33:35 +00:00
Jonathan Miller 9f779b2dfa Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:33:19 -05:00
Jonathan Miller 61286748db fix: parse next_execution as UTC — Joomla stores times without timezone suffix
DreamHost server timezone is America/Los_Angeles, so PHP was interpreting
the UTC datetime as Pacific time, causing the display to be hours off.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:33:03 -05:00
gitea-actions[bot] c307e97d57 chore(version): auto-bump 02.26.11-dev [skip ci] 2026-05-31 02:31:24 +00:00
Jonathan Miller 24c76cadbf fix: take snapshot immediately on task save, not on next scheduled run
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Snapshot now triggers via onContentAfterSave when the task is saved
with take_snapshot_on_save=1, instead of waiting for the next execution.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:31:06 -05:00
Jonathan Miller e1db91ba84 Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:28:31 -05:00
Jonathan Miller beb52fde99 fix: add fieldset label to task form to prevent untranslated key
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:28:27 -05:00
gitea-actions[bot] f465b49f1f chore(version): auto-bump 02.26.10-dev [skip ci] 2026-05-31 02:26:30 +00:00
Jonathan Miller a650036591 refactor(demo): move all demo settings into the scheduled task form
Demo mode is now controlled entirely through the Joomla Scheduled Task:
- Create a "MokoWaaS Demo Reset" task to enable demo mode
- Task form has: snapshot toggle, media toggle, banner settings
- System plugin reads banner config from the task params
- Plugin config shows task status card with link to manage it
- Removed demo_mode_enabled, schedule, and one-shot toggles from plugin

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:26:15 -05:00
gitea-actions[bot] 3ce4d8599f chore(version): auto-bump 02.26.09-dev [skip ci] 2026-05-31 02:14:09 +00:00
Jonathan Miller 73130a0824 Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:13:44 -05:00
Jonathan Miller a26578fea3 fix: re-register MokoWaaS extensions and task after full DB restore
Full database restore overwrites #__extensions and #__scheduler_tasks
with snapshot data, losing the current plugin registrations. After
restore, re-enables all MokoWaaS extensions, re-registers the task
plugin if missing, and re-enables the update server.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:13:40 -05:00
gitea-actions[bot] d957dda7ed chore(version): auto-bump 02.26.08-dev [skip ci] 2026-05-31 02:07:58 +00:00
Jonathan Miller a0092773c7 Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 21:07:41 -05:00
Jonathan Miller de14cc2de7 fix: update admin messages for full-DB snapshot (no table count)
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:07:28 -05:00
gitea-actions[bot] 1b3b20d2f1 chore(version): auto-bump 02.26.07-dev [skip ci] 2026-05-31 02:05:03 +00:00
Jonathan Miller ad3bb21b39 feat(demo): pull next reset time from Joomla scheduled task, show last run
NextResetField now queries #__scheduler_tasks.next_execution directly
instead of using a stored param. Also shows last execution time.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-30 21:04:50 -05:00
gitea-actions[bot] 004d26293d chore(version): auto-bump 02.26.06-dev [skip ci] 2026-05-31 01:44:28 +00:00
Jonathan Miller 5f84b3166c Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been cancelled
Generic: Repo Health / Access control (push) Has been cancelled
Universal: Auto Version Bump / Version Bump (push) Has been cancelled
Update Server / Update Server (push) Has been cancelled
Generic: Repo Health / Release configuration (push) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
2026-05-30 20:44:13 -05:00