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
14a96eeb60
fix: sync manifest to 02.01.38 [skip ci]
2026-05-23 20:44:31 +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
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
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
1553289af1
chore: update stable channel 02.01.37 [skip ci]
2026-05-23 19:56:11 +00:00
jmiller
5164edaf7f
Merge pull request 'feat: health endpoint with 16 diagnostic checks ( #54 )' ( #23 ) from dev into main
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-23 19:49:39 +00:00
jmiller
665582b913
fix(ci): add branch output to auto-release [skip ci]
2026-05-23 19:47:53 +00:00
Jonathan Miller
f2e1dfe114
docs: update CHANGELOG and README for 02.01.37 release
...
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 >
2026-05-23 02:09:01 -05:00
jmiller
0357364908
Merge pull request 'chore: cascade main → dev ( e7de6e4) [skip ci]' ( #22 ) from main into dev
...
chore: cascade main → dev [skip ci]
2026-05-23 05:09:28 +00:00
Jonathan Miller
e7de6e4c9a
Revert "Merge remote-tracking branch 'origin/dev'"
...
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
This reverts commit b27ef3aee3 , reversing
changes made to c4d8381828 .
2026-05-23 00:09:22 -05:00
jmiller
c08efa81fe
chore: sync updates.xml 02.01.37 from main [skip ci]
2026-05-23 05:02:16 +00:00
gitea-actions[bot]
ea16fd92d7
chore: update release-candidate channel 02.01.37 [skip ci]
2026-05-23 05:02:15 +00:00
gitea-actions[bot]
0f446709b8
chore(version): bump to 02.01.37 [skip ci]
2026-05-23 05:02:15 +00:00
jmiller
3817d7ed13
Merge pull request 'chore: cascade main → dev ( b27ef3a) [skip ci]' ( #21 ) from main into dev
...
chore: cascade main → dev [skip ci]
2026-05-23 04:57:00 +00:00
Jonathan Miller
b27ef3aee3
Merge remote-tracking branch 'origin/dev'
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-22 23:56:45 -05:00
gitea-actions[bot]
030423a16d
chore: update development channel 02.01.36 [skip ci]
2026-05-23 04:42:48 +00:00
jmiller
c4d8381828
chore: sync updates.xml 02.01.36 from dev [skip ci]
2026-05-23 04:42:48 +00:00
gitea-actions[bot]
590e1eb385
chore(version): bump to 02.01.36 [skip ci]
2026-05-23 04:42:46 +00:00
Jonathan Miller
f1f2785f0f
feat: add 10 new health checks — SSL, cron, errors, DB size, content, users, mail, SEO, template, config
...
New checks:
- ssl: certificate expiry, days left, issuer
- cron: scheduled tasks, failed count, last run
- errors: PHP error log size, recent errors
- db_size: total MB, table count, largest tables
- content: articles, categories, menu items, modules
- users: total, active sessions, failed logins, last login
- mail: mailer type, from address, queue count
- seo: robots.txt, sitemap, htaccess, SEF
- template: site/admin template, override count
- config: debug mode, error reporting, force SSL, caching
Degraded reasons for SSL expiry, failed cron tasks, config drift.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 23:23:19 -05:00
Jonathan Miller
138af226d1
feat: add site size and total disk to filesystem health check
...
Reports total_disk_mb and site_size_mb (images, media, tmp, cache, logs).
Shows in Infrastructure table on Grafana dashboard.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 23:13:20 -05:00
Jonathan Miller
17eaaf2347
feat: add Akeeba Backup and Admin Tools checks to health endpoint
...
New health checks:
- backup: last backup date/status/size, days since, total count, 7d count
- security: Admin Tools WAF status, blocked requests 24h/7d
Degraded reasons:
- No backups found
- Last backup older than 7 days
- Last backup failed/incomplete
Dashboard updated with Backup and Security rows.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 22:43:41 -05:00
Jonathan Miller
21020027d0
feat: add human-readable reason field to health endpoint
...
Status 'degraded' now includes reason like '3 extension updates available'
or 'Low disk space: 45 MB free'. Shows in dashboard Site Info table.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 22:00:33 -05:00
jmiller
fa4622c0ca
Merge pull request 'chore: cascade main → dev ( a45a6cb) [skip ci]' ( #20 ) from main into dev
...
chore: cascade main → dev [skip ci]
2026-05-23 01:15:04 +00:00
Jonathan Miller
0d280717f1
Revert "Merge pull request 'chore: merge dev to main' ( #19 ) from dev into main"
...
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 1s
This reverts commit a45a6cb59c , reversing
changes made to 018b197147 .
2026-05-22 20:12:46 -05:00
jmiller
a45a6cb59c
Merge pull request 'chore: merge dev to main' ( #19 ) from dev into main
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 2s
2026-05-23 01:10:42 +00:00
gitea-actions[bot]
8edced75d3
chore: update development channel 02.01.39 [skip ci]
Universal: Build & Release / Build & Release Pipeline (pull_request) Failing after 25s
2026-05-23 01:08:12 +00:00
jmiller
018b197147
chore: sync updates.xml 02.01.39 from dev [skip ci]
2026-05-23 01:08:12 +00:00
gitea-actions[bot]
142ee2387e
chore(version): bump to 02.01.39 [skip ci]
2026-05-23 01:08:10 +00:00
Jonathan Miller
ea66ad4b4a
security: hide MokoWaaS from plugin list for non-master users
...
Injects JS on com_plugins that removes the MokoWaaS row from the
plugin table. Combined with the edit/save block, non-master users
cannot see, edit, or save the plugin settings.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 05:53:14 -05:00
Jonathan Miller
48cb040505
security: restrict plugin settings to master user + rename Gitea to MokoGitea
...
- Non-master users blocked from editing MokoWaaS plugin config
- isOurPlugin() helper checks extension_id against our plugin
- Blocks both edit view and save task for non-master users
- Renamed bare 'Gitea' references to 'MokoGitea' in docs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 05:51:20 -05:00
jmiller
8df006876b
chore: sync updates.xml 02.01.38 from dev [skip ci]
2026-05-22 09:57:19 +00:00
gitea-actions[bot]
aec849c9ae
chore: update development channel 02.01.38 [skip ci]
2026-05-22 09:57:19 +00:00
gitea-actions[bot]
d3281066dc
chore(version): bump to 02.01.38 [skip ci]
2026-05-22 09:57:18 +00:00
Jonathan Miller
b17b36e02e
security: make plugin hard to disable + block uninstall
...
- enforceLocked() runs every page load — re-enables, re-locks, re-protects
if someone tampers with the database flags
- preflight() blocks uninstall attempts with error message
- Logs tampering attempts to mokowaas log category
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 04:56:48 -05:00
jmiller
cb6d19ece8
chore: sync updates.xml 02.01.37 from dev [skip ci]
2026-05-22 09:41:25 +00:00
gitea-actions[bot]
5020b58da1
chore: update development channel 02.01.37 [skip ci]
2026-05-22 09:41:24 +00:00
gitea-actions[bot]
c97432495b
chore(version): bump to 02.01.37 [skip ci]
2026-05-22 09:41:23 +00:00
Jonathan Miller
b22842f302
refactor: replace Grafana API with heartbeat receiver provisioning
...
Remove all Grafana API code (630 lines), obfuscated tokens, SA tokens,
ensureGrafanaPlugin, provisionGrafanaDatasource, buildDashboardModel.
Replace with simple HTTP POST to heartbeat receiver on bench server.
Receiver writes Grafana provisioning YAML and restarts Grafana container.
No API tokens or RBAC permissions needed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-22 04:40:51 -05:00
jmiller
6a186ed365
chore: sync updates.xml 02.01.36 from dev [skip ci]
2026-05-22 04:02:26 +00:00
gitea-actions[bot]
42d530bfbf
chore: update development channel 02.01.36 [skip ci]
2026-05-22 04:02:26 +00:00
gitea-actions[bot]
307dc37d47
chore(version): bump to 02.01.36 [skip ci]
2026-05-22 04:02:25 +00:00
Jonathan Miller
2e4fdcb07e
fix: new Grafana SA token with datasource:create + visible heartbeat errors
...
- New service account token with correct RBAC permissions
- script.php postflight now shows success/failure messages to admin
- Logs all heartbeat attempts with HTTP code and cURL errors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 23:01:33 -05:00
Jonathan Miller
0ec18b9868
Merge remote-tracking branch 'origin/dev'
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
2026-05-21 22:52:14 -05:00
Jonathan Miller
e3f4890e5d
docs: update CHANGELOG for production release 02.01.35 [skip ci]
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-05-21 22:51:13 -05:00
jmiller
6e81585177
chore: sync updates.xml 02.01.35 from dev [skip ci]
2026-05-22 03:49:22 +00:00