Spaces:
Running
Running
fix: dashboard display bugs (Invalid Date, DB status, backup status)
Browse files- Add startTime to /health response (was missing, caused Invalid Date)
- Show DB as green when status is unknown (pre-sync state is fine)
- Backup status: show Disabled when no HF_TOKEN, Pending before first sync
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- health-server.js +12 -11
health-server.js
CHANGED
|
@@ -33,6 +33,7 @@ app.get("/health", async (req, res) => {
|
|
| 33 |
status: "healthy",
|
| 34 |
timestamp: new Date().toISOString(),
|
| 35 |
uptime: Math.floor(uptime),
|
|
|
|
| 36 |
services: {
|
| 37 |
healthServer: {
|
| 38 |
status: "running",
|
|
@@ -621,10 +622,11 @@ function getDashboardHTML() {
|
|
| 621 |
|
| 622 |
// Update DB status
|
| 623 |
const dbEl = document.getElementById('db-status');
|
| 624 |
-
|
| 625 |
-
|
|
|
|
| 626 |
} else {
|
| 627 |
-
dbEl.innerHTML = '<span class="
|
| 628 |
}
|
| 629 |
|
| 630 |
// Update last backup
|
|
@@ -638,15 +640,14 @@ function getDashboardHTML() {
|
|
| 638 |
|
| 639 |
// Update backup status
|
| 640 |
const backupStatusEl = document.getElementById('backup-status');
|
| 641 |
-
if (data.backup.enabled) {
|
| 642 |
-
|
| 643 |
-
|
| 644 |
-
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
}
|
| 648 |
} else {
|
| 649 |
-
backupStatusEl.innerHTML = '<span class="pending">
|
| 650 |
}
|
| 651 |
|
| 652 |
// Update uptime
|
|
|
|
| 33 |
status: "healthy",
|
| 34 |
timestamp: new Date().toISOString(),
|
| 35 |
uptime: Math.floor(uptime),
|
| 36 |
+
startTime: new Date(Date.now() - uptime * 1000).toISOString(),
|
| 37 |
services: {
|
| 38 |
healthServer: {
|
| 39 |
status: "running",
|
|
|
|
| 622 |
|
| 623 |
// Update DB status
|
| 624 |
const dbEl = document.getElementById('db-status');
|
| 625 |
+
const dbStatus = data.services.database.status;
|
| 626 |
+
if (dbStatus === 'connected' || dbStatus === 'unknown') {
|
| 627 |
+
dbEl.innerHTML = '<span class="success">PostgreSQL ✓</span>';
|
| 628 |
} else {
|
| 629 |
+
dbEl.innerHTML = '<span class="error">Unavailable</span>';
|
| 630 |
}
|
| 631 |
|
| 632 |
// Update last backup
|
|
|
|
| 640 |
|
| 641 |
// Update backup status
|
| 642 |
const backupStatusEl = document.getElementById('backup-status');
|
| 643 |
+
if (!data.backup.enabled) {
|
| 644 |
+
backupStatusEl.innerHTML = '<span class="pending">Disabled (no HF_TOKEN)</span>';
|
| 645 |
+
} else if (data.services.database.lastSyncError) {
|
| 646 |
+
backupStatusEl.innerHTML = '<span class="error">Error</span>';
|
| 647 |
+
} else if (data.backup.lastSync) {
|
| 648 |
+
backupStatusEl.innerHTML = '<span class="success">Enabled ✓</span>';
|
|
|
|
| 649 |
} else {
|
| 650 |
+
backupStatusEl.innerHTML = '<span class="pending">Pending first sync</span>';
|
| 651 |
}
|
| 652 |
|
| 653 |
// Update uptime
|