Commit Graph

2396 Commits

Author SHA1 Message Date
Jonathan Miller 81591477b2 chore: resolve merge conflicts (version 02.01.43)
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Successful in 4s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 5s
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
Universal: PR Check / Changelog Updated (pull_request) Successful in 4s
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 26s
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 18:38:51 -05:00
Jonathan Miller cc907a5aa2 fix(heartbeat): only send heartbeat for primary domain, not aliases
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 3s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 4s
Joomla: Extension CI / Release Readiness Check (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
Universal: PR Check / Validate PR (pull_request) Failing after 3s
Universal: PR Check / Changelog Updated (pull_request) Successful in 3s
Alias domains were creating separate Grafana datasources with unique
UIDs, causing provisioning failures (duplicate UID) when Grafana
restarts. Only the primary domain should be registered.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 18:34:57 -05:00
Jonathan Miller 5360c641e9 chore: update CHANGELOG and README for 02.01.43 release
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 18:34:26 -05:00
jmiller d7a4066261 chore: sync updates.xml 02.01.43 from dev [skip ci] 2026-05-23 23:12:31 +00:00
gitea-actions[bot] 478eb262b9 chore: update development channel 02.01.43 [skip ci] 2026-05-23 23:12:31 +00:00
gitea-actions[bot] ea934ba04b chore(version): bump to 02.01.43 [skip ci] 2026-05-23 23:12:30 +00:00
Jonathan Miller a92c1ce772 feat: site aliases tab with per-alias offline, robots, and backend redirect
Move site aliases from a comma-separated text field in Diagnostics to its
own tab using Joomla's subform repeatable-table layout. Each alias entry
now supports: domain, offline toggle with custom message, robots meta
directive, and backend redirect to primary domain. Frontend stays on the
alias domain while admin requests can be redirected to the primary.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 18:11:07 -05:00
jmiller 0e55a546ff chore: sync updates.xml 02.01.42 from dev [skip ci] 2026-05-23 22:58:03 +00:00
gitea-actions[bot] 14e94518ba chore: update development channel 02.01.42 [skip ci] 2026-05-23 22:58:03 +00:00
gitea-actions[bot] b32d91c446 chore(version): bump to 02.01.42 [skip ci] 2026-05-23 22:58:02 +00:00
Jonathan Miller 03e0b6d13b fix: accept any 200 status from heartbeat (registered/updated/ok)
The receiver returns 'updated' when re-registering an existing site,
but the code only accepted 'registered', causing false 'HTTP 200 — Unknown' warnings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 17:30:52 -05:00
jmiller 21cb335727 chore: stable 02.01.42 [skip ci] 2026-05-23 22:25:01 +00:00
jmiller d2700f96fe chore: stable 02.01.42 [skip ci] 2026-05-23 22:25:01 +00:00
gitea-actions[bot] 7f7cdb4cc9 chore: update release-candidate channel 02.01.42 [skip ci] 2026-05-23 22:22:55 +00:00
jmiller b1b21e79d8 chore: sync updates.xml 02.01.42 from main [skip ci] 2026-05-23 22:22:55 +00:00
gitea-actions[bot] e44336d24a chore(version): bump to 02.01.42 [skip ci] 2026-05-23 22:22:53 +00:00
Jonathan Miller 76431371c3 Merge remote-tracking branch 'origin/dev' 2026-05-23 17:16:22 -05:00
jmiller 2d667ba4cd chore: sync updates.xml 02.01.41 from dev [skip ci] 2026-05-23 21:56:35 +00:00
gitea-actions[bot] 4bc23ae54f chore: update development channel 02.01.41 [skip ci] 2026-05-23 21:56:34 +00:00
gitea-actions[bot] 8843f721e5 chore(version): bump to 02.01.41 [skip ci] 2026-05-23 21:56:33 +00:00
Jonathan Miller 0a6744644d fix: script.php uses heartbeat receiver instead of Grafana API
The postflight still had the old Grafana API code with obfuscated tokens,
causing 403 RBAC errors on install/update. Now uses the heartbeat receiver
at bench.mokoconsulting.tech/api/waas-heartbeat/register.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 16:55:58 -05:00
jmiller e541e24741 chore: sync updates.xml 02.01.40 from dev [skip ci] 2026-05-23 21:52:55 +00:00
gitea-actions[bot] b30e6813fe chore: update development channel 02.01.40 [skip ci] 2026-05-23 21:52:54 +00:00
gitea-actions[bot] f61e8e53b5 chore(version): bump to 02.01.40 [skip ci] 2026-05-23 21:52:53 +00:00
Jonathan Miller dff7d73009 feat: MokoWaaS API — 6 endpoints for remote management
New API endpoints (all token-authenticated, HTTPS-only):
  ?mokowaas=health  — 16 diagnostic checks (GET)
  ?mokowaas=install — install extension from URL (POST)
  ?mokowaas=update  — trigger Joomla update check (POST)
  ?mokowaas=cache   — clear all caches + opcache (POST)
  ?mokowaas=backup  — trigger Akeeba Backup (POST)
  ?mokowaas=info    — compact site summary (GET)

Also adds:
  - Centralized API router with shared token auth
  - site_aliases config field for multi-domain support
  - Each alias registers its own Grafana datasource

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 16:51:32 -05:00
jmiller 186d129101 chore: sync updates.xml 02.01.39 from dev [skip ci] 2026-05-23 21:16:19 +00:00
gitea-actions[bot] 35ac2aaed2 chore: update development channel 02.01.39 [skip ci] 2026-05-23 21:16:19 +00:00
gitea-actions[bot] d825621502 chore(version): bump to 02.01.39 [skip ci] 2026-05-23 21:16:18 +00:00
Jonathan Miller 1aa1a8282f feat: rebuild with heartbeat receiver, 16 checks, multi-domain support
Reconstructed from git history after cascade revert wiped dev:
- 16 health checks (database, filesystem, cache, extensions, backup,
  security, SSL, cron, errors, db_size, content, users, mail, SEO,
  template, config)
- Heartbeat receiver provisioning (replaces Grafana API)
- Multi-domain support via site_aliases config field
- Each alias domain registers its own Grafana datasource
- Human-readable reason field for degraded status

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-23 16:15:45 -05:00
jmiller 6ca75bfbe7 chore: stable 02.01.39 [skip ci] 2026-05-23 20:51:38 +00:00
jmiller 0fd342cccd chore: stable 02.01.39 [skip ci] 2026-05-23 20:51:37 +00:00
jmiller f5ca5aadea chore: stable 02.01.39 [skip ci] 2026-05-23 20:50:47 +00:00
jmiller 6400bc9243 chore: sync updates.xml 02.01.39 from main [skip ci] 2026-05-23 20:45:17 +00:00
gitea-actions[bot] cd15dddc3f chore: update release-candidate channel 02.01.39 [skip ci] 2026-05-23 20:45:16 +00:00
gitea-actions[bot] b98c2e0b6e chore(version): bump to 02.01.39 [skip ci] 2026-05-23 20:45:15 +00:00
jmiller 943a19934e fix: sync README to 02.01.38 [skip ci] 2026-05-23 20:44:32 +00:00
jmiller dd57c23716 fix: sync manifest to 02.01.38 [skip ci] 2026-05-23 20:44:32 +00:00
jmiller 14a96eeb60 fix: sync manifest to 02.01.38 [skip ci] 2026-05-23 20:44:31 +00:00
jmiller 25c4d81e58 chore: sync updates.xml 02.01.38 from main [skip ci] 2026-05-23 20:27:28 +00:00
gitea-actions[bot] 177f233edb chore: update release-candidate channel 02.01.38 [skip ci] 2026-05-23 20:27:27 +00:00
gitea-actions[bot] e01ed29bad chore(version): bump to 02.01.38 [skip ci] 2026-05-23 20:27:26 +00:00
jmiller 640114e00c fix: sync manifest version to 02.01.37 [skip ci] 2026-05-23 20:26:29 +00:00
jmiller b82c8c4ba0 fix: sync version to 02.01.37 [skip ci] 2026-05-23 20:26:29 +00:00
jmiller 448592440a fix: sync manifest version to 02.01.37 [skip ci] 2026-05-23 20:26:28 +00:00
jmiller 474430ebba fix: sync version to 02.01.37 [skip ci] 2026-05-23 20:26:28 +00:00
jmiller 66183a6ec0 chore: sync updates.xml 02.01.36 from main [skip ci] 2026-05-23 20:24:29 +00:00
gitea-actions[bot] 28faea267c chore: update release-candidate channel 02.01.36 [skip ci] 2026-05-23 20:24:28 +00:00
gitea-actions[bot] 46d5bd0841 chore(version): bump to 02.01.36 [skip ci] 2026-05-23 20:24:27 +00:00
jmiller 6140b38662 chore: sync stable 02.01.37 to dev [skip ci] 2026-05-23 19:56:11 +00:00
jmiller 1553289af1 chore: update stable channel 02.01.37 [skip ci] 2026-05-23 19:56:11 +00:00