From 03e0b6d13b686d22d076df1b17a1ec46dd5dc45c Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 23 May 2026 17:29:52 -0500 Subject: [PATCH] fix: accept any 200 status from heartbeat (registered/updated/ok) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- src/Extension/MokoWaaS.php | 8 +++++--- src/script.php | 7 ++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Extension/MokoWaaS.php b/src/Extension/MokoWaaS.php index 3ec8e85..628bf69 100644 --- a/src/Extension/MokoWaaS.php +++ b/src/Extension/MokoWaaS.php @@ -2650,16 +2650,18 @@ class MokoWaaS extends CMSPlugin $app->enqueueMessage('Grafana heartbeat failed (' . $siteUrl . '): ' . $error, 'warning'); Log::add('Heartbeat failed: ' . $error, Log::WARNING, 'mokowaas'); } - elseif ($code === 200 && ($body['status'] ?? '') === 'registered') + elseif ($code === 200) { + $status = $body['status'] ?? 'ok'; $app->enqueueMessage( - 'Grafana heartbeat: ' . $siteUrl . ' registered (' . ($body['ds_uid'] ?? '') . ')', + 'Grafana heartbeat: ' . $siteUrl . ' ' . $status . ' (' . ($body['ds_uid'] ?? '') . ')', 'message' ); } else { - $msg = sprintf('Grafana heartbeat failed (%s): HTTP %d', $siteUrl, $code); + $msg = sprintf('Grafana heartbeat failed (%s): HTTP %d — %s', + $siteUrl, $code, $body['error'] ?? $body['message'] ?? 'Unknown'); $app->enqueueMessage($msg, 'warning'); Log::add($msg, Log::WARNING, 'mokowaas'); } diff --git a/src/script.php b/src/script.php index d18f6de..bd4cd4a 100644 --- a/src/script.php +++ b/src/script.php @@ -829,17 +829,18 @@ class plgSystemMokoWaaSInstallerScript implements InstallerScriptInterface $app->enqueueMessage('Grafana heartbeat failed: ' . $error, 'warning'); Log::add('Heartbeat failed: ' . $error, Log::WARNING, 'mokowaas'); } - elseif ($code === 200 && ($body['status'] ?? '') === 'registered') + elseif ($code === 200) { + $status = $body['status'] ?? 'ok'; $app->enqueueMessage( - 'Grafana heartbeat: site registered (' . ($body['ds_uid'] ?? '') . ')', + 'Grafana heartbeat: ' . $status . ' (' . ($body['ds_uid'] ?? '') . ')', 'message' ); } else { $msg = sprintf('Grafana heartbeat failed: HTTP %d — %s', - $code, $body['error'] ?? 'Unknown'); + $code, $body['error'] ?? $body['message'] ?? 'Unknown'); $app->enqueueMessage($msg, 'warning'); Log::add($msg, Log::WARNING, 'mokowaas'); }