feat: content-only reset with asset rebuild, task-driven settings, snapshot on save #98

Merged
jmiller merged 29 commits from dev into main 2026-05-31 02:44:58 +00:00
Owner

Summary

  • Content-only snapshot: articles, categories, menus, modules, users, tags, fields, contacts, banners
  • Never touches #__extensions, #__assets (system), #__schemas, or any system tables
  • Rebuilds assets after restore: deletes stale content assets, rebuilds nested set trees, re-creates missing asset entries
  • All demo settings moved to scheduled task form
  • Snapshot triggers on task save (not next scheduled run)
  • Task info card shows schedule, next/last run, banner status, baseline status
  • Fixed UTC timezone parsing for next_execution display

Test plan

  • Take snapshot via task form, verify content tables dumped
  • Restore via scheduled task, verify content reset and site still works
  • Verify extensions, templates, and config unchanged after restore
  • Verify banner shows with countdown from task next_execution
## Summary - Content-only snapshot: articles, categories, menus, modules, users, tags, fields, contacts, banners - Never touches #__extensions, #__assets (system), #__schemas, or any system tables - Rebuilds assets after restore: deletes stale content assets, rebuilds nested set trees, re-creates missing asset entries - All demo settings moved to scheduled task form - Snapshot triggers on task save (not next scheduled run) - Task info card shows schedule, next/last run, banner status, baseline status - Fixed UTC timezone parsing for next_execution display ## Test plan - [ ] Take snapshot via task form, verify content tables dumped - [ ] Restore via scheduled task, verify content reset and site still works - [ ] Verify extensions, templates, and config unchanged after restore - [ ] Verify banner shows with countdown from task next_execution
jmiller added 26 commits 2026-05-31 02:43:34 +00:00
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>
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Universal: Auto Version Bump / Version Bump (push) Failing after 4s
Update Server / Update Server (push) Successful in 10s
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
b3f4df89c5
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 13s
Universal: Auto Version Bump / Version Bump (push) Failing after 16s
Update Server / Update Server (push) Failing after 12s
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
e1db91ba84
fix: take snapshot immediately on task save, not on next scheduled run
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Failing after 4s
Update Server / Update Server (push) Successful in 14s
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
24c76cadbf
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>
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>
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Auto Version Bump / Version Bump (push) Failing after 4s
Update Server / Update Server (push) Successful in 11s
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
9f779b2dfa
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>
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 21s
Universal: Auto Version Bump / Version Bump (push) Failing after 24s
Update Server / Update Server (push) Failing after 11s
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
b0aa4e8763
refactor(demo): content-only snapshot — never touch system tables
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Universal: Auto Version Bump / Version Bump (push) Failing after 4s
Update Server / Update Server (push) Successful in 14s
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
1032074e5c
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>
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>
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 16s
Universal: Auto Version Bump / Version Bump (push) Failing after 18s
Update Server / Update Server (push) Successful in 23s
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
9af7e6bc7c
Merge branch 'dev' of https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS into dev
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 3s
Universal: Auto Version Bump / Version Bump (push) Failing after 5s
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 5s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 6s
Universal: PR Check / Validate PR (pull_request) Successful in 5s
Universal: Build & Release / Promote to RC (pull_request) Failing after 8s
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
526fe33e10
jmiller added 1 commit 2026-05-31 02:44:41 +00:00
fix: onContentAfterSave receives single event object in Joomla 6
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (pull_request) Successful in 2s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 4s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 5s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
Universal: Auto Version Bump / Version Bump (push) Failing after 4s
Universal: PR Check / Validate PR (pull_request) Successful in 5s
Update Server / Update Server (push) Successful in 12s
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
83880ed740
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jmiller added 1 commit 2026-05-31 02:44:54 +00:00
jmiller added 1 commit 2026-05-31 02:44:55 +00:00
chore: update development channel 02.26.15-dev [skip ci]
Branch Cleanup / Delete merged branch (pull_request) Has been skipped
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 22s
c756b0df30
jmiller merged commit f1a5f818a5 into main 2026-05-31 02:44:58 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoWaaS#98