nmemmert
7968c9231e
Feature: integrate app icon in UI and email alerts
2025-12-16 14:36:42 -05:00
nmemmert
51bc5ea6be
Fix: Status page not displaying data - fix /api/resources response format
2025-12-16 13:50:20 -05:00
nmemmert
5ff9fd6c99
Chore: Remove debug console.log statements from server and client code
2025-12-16 13:46:55 -05:00
nmemmert
400953dfd7
Feature: Add public status page at /status showing incidents, maintenance, and system health
2025-12-16 13:44:02 -05:00
nmemmert
9dae22d696
Feature: Add incident editing modal for updating descriptions - PATCH /api/incidents/:id endpoint
2025-12-16 13:40:42 -05:00
nmemmert
03147ef772
Feature: Display incident descriptions in incidents timeline with expandable view
2025-12-16 13:38:29 -05:00
nmemmert
6a291e120d
Feature: Independent settings section saving - no password re-entry required
...
- Refactored SettingsWizard to allow saving each section separately (Email, Webhook, Monitoring)
- Each section now has its own Save button
- Removed global Save button - sections save independently
- No longer need to re-enter email passwords when changing other settings
- Added success/error status messages that appear for 3-5 seconds
- Status messages appear as toast notifications in top-right corner
- Updated CSS with save-status styling and slideIn animation
- handleSaveSection() only POSTs the relevant fields for that section
2025-12-16 13:27:53 -05:00
nmemmert
5330c8932f
Feature: Auto-create incidents after 10 failed checks with rich descriptions
...
- Add description and failed_check_count fields to incidents table
- Update handleIncident() to use configurable threshold (default 10 checks)
- Auto-generate incident description with:
- Number of consecutive failures
- Last error message/reason
- First failure timestamp
- Add API endpoints: GET/POST /api/settings/incident-threshold
- Add UI settings field to configure incident failure threshold
- Server: Get threshold from database settings (persistent across restarts)
- Default threshold: 10 consecutive failed checks per resource
2025-12-16 13:24:20 -05:00
nmemmert
6b00530a89
Fix: Change email input type from email to text to support comma-separated addresses
...
- Allows users to enter multiple email addresses separated by commas
- Updated both Add Resource and Edit Resource forms
- Improved placeholder text to show example of comma-separated format
2025-12-16 13:08:40 -05:00
nmemmert
02a71f980a
Feature: Multi-email alerts and move resource between groups
...
- notificationService.js: Parse comma-separated emails from resource.email_to or global config; validate and send to each recipient
- index.js: Add PATCH /api/resources/:id/group endpoint to move resource between groups with validation and cache invalidation
- App.js: Add group selector to edit modal; wire group change to PATCH endpoint; add help text for multi-email format (comma-separated)
2025-12-16 13:03:59 -05:00
nmemmert
923c36e494
Feature: Multi-email alerts and move resource between groups
...
- notificationService: Parse comma-separated emails from resource.email_to or global config; validate and send to each recipient
- API: Add PATCH /api/resources/:id/group endpoint to move resource between groups with validation and cache invalidation
- UI: Add group selector to edit modal; wire group change to PATCH endpoint; add help text for multi-email format
2025-12-16 13:01:37 -05:00
nmemmert
9c1c972045
Scheduler: stagger resource checks with spacing and jitter; rebuild client
2025-12-16 12:31:30 -05:00
nmemmert
803c5adbc2
Scheduler: stagger resource checks with spacing and jitter to avoid thundering herd
2025-12-16 12:31:03 -05:00
nmemmert
b4860241dd
UI: Add Actions dropdown for New Group, Add Resource, Export/Import
2025-12-16 11:12:35 -05:00
nmemmert
16daa5770e
Fix trend delta rendering with safe numeric coercion
2025-12-16 08:54:58 -05:00
nmemmert
d4e4467c0c
Add trends UI, cleanup logs, refresh build
2025-12-16 08:48:48 -05:00
nmemmert
71d1dbd5c1
chore: commit workspace changes
2025-12-16 07:56:40 -05:00
nmemmert
8bd9c6caf7
feat(ui): dashboard maintenance indicator and yellow uptime during maintenance; rebuild
2025-12-15 16:40:57 -05:00
nmemmert
65fca3d3e3
feat(maintenance): add maintenance_mode flag, API support, UI toggle; skip alerts during maintenance; rebuild client
2025-12-15 16:35:52 -05:00
nmemmert
2329362f09
UI: filters/timeline, SLA card, paginated checks/incidents
2025-12-15 16:25:31 -05:00
nmemmert
c8de1257ba
Add checks/incidents APIs with filters and SLA summary
2025-12-15 16:22:15 -05:00
nmemmert
49cd477991
Fix timezone formatting fallback by normalizing timestamps
2025-12-15 16:14:04 -05:00
nmemmert
3235ae3789
Fix: return ISO timestamps for dashboard stats and last checks
2025-12-15 16:11:59 -05:00
nmemmert
ccae38bb4d
Fix: Use ISO 8601 format (T separator) for timestamps to ensure proper timezone conversion
2025-12-15 15:03:25 -05:00
nmemmert
fc7bf6976e
Fix: Remove /build from client .gitignore to include production builds
2025-12-15 15:00:10 -05:00
nmemmert
a93e517d34
Add timezone debugging to client time formatting
2025-12-15 14:55:49 -05:00
nmemmert
88680d478a
Add PM2 ecosystem config with timezone support
2025-12-15 14:51:38 -05:00
nmemmert
92cb495ef2
Append Z suffix to timestamps so browser treats them as UTC
2025-12-15 13:45:49 -05:00
nmemmert
91bc41aa5f
Fix timezone formatting in client timeUtils
2025-12-15 13:40:51 -05:00
nmemmert
c7577f6ce2
Force add client build with timezone fix
2025-12-15 13:39:13 -05:00
nmemmert
28e3c6a544
Fix timezone display: client uses server timezone from settings, revert SQL offset
2025-12-15 13:36:40 -05:00
nmemmert
3653016912
Add detailed logging for timezone offset calculation
2025-12-15 13:29:16 -05:00
nmemmert
95cd2cc746
Invert timezone offset sign for correct SQL datetime conversion
2025-12-15 13:25:56 -05:00
nmemmert
6d361e6359
Add /api/debug/timezone endpoint to verify offset calculation
2025-12-15 13:20:45 -05:00
nmemmert
cf62481341
Improve timezone offset calculation by comparing formatted times; add logging
2025-12-15 13:19:45 -05:00
nmemmert
5a92c7f98d
Fix timezone offset using Intl API to get accurate UTC adjustment
2025-12-15 13:18:39 -05:00
nmemmert
1c8873b0aa
Apply timezone offset to all check timestamp queries (dashboard, resource history)
2025-12-15 13:17:29 -05:00
nmemmert
d8f303043f
Fix timezone offset calculation (reverse UTC-TZ to get correct adjustment)
2025-12-15 13:16:12 -05:00
nmemmert
eda5511609
Server: apply timezone offset to SQL datetime queries for correct timestamp display
2025-12-15 13:14:21 -05:00
nmemmert
0ceedaf032
Rebuild client with ErrorBoundary
2025-12-15 13:08:22 -05:00
nmemmert
0f7d11a197
Client: add ErrorBoundary to avoid blank screen and surface errors; rebuild
2025-12-15 13:04:25 -05:00
nmemmert
b7f882f38b
SLA: cap by retention in API; SLA UI uses effective days and shows retention notice; rebuild client
2025-12-15 12:59:51 -05:00
nmemmert
c8e8d54aa8
Fix SLA queries to use parsed daysNum instead of string days
2025-12-15 12:45:24 -05:00
nmemmert
ecfe725f6f
Fix SLA component React hook dependencies
2025-12-15 12:38:41 -05:00
nmemmert
8c608d72a3
Add comprehensive upgrade guide
2025-12-15 12:35:12 -05:00
nmemmert
1d95b6d026
Restructure documentation into separate files with links
2025-12-15 12:33:06 -05:00
nmemmert
9892c63f3b
Add comprehensive History feature documentation
2025-12-15 12:29:38 -05:00
nmemmert
5e2c236057
Fix parameter count in SQL query
2025-12-15 12:23:55 -05:00
nmemmert
234ac59fe8
Fix SQL bucketing using Julian Day calculation
2025-12-15 12:22:57 -05:00
nmemmert
b1b1c36839
Add cache clear endpoint and timestamp to debug logs
2025-12-15 12:21:14 -05:00
nmemmert
07f46ce5c9
Simplify SQL bucketing query to fix aggregation
2025-12-15 12:19:00 -05:00
nmemmert
e741c8cadb
Enhanced debug logging to trace averaged parameter
2025-12-15 12:17:09 -05:00
nmemmert
c7a49432f5
Add server-side debug logging for averaged parameter
2025-12-15 12:14:45 -05:00
nmemmert
e308322e00
Add debug logging for averaged mode
2025-12-15 12:11:54 -05:00
nmemmert
3aafa07e04
Fix: use server-provided status for red/green bars in history graph
2025-12-15 12:07:48 -05:00
nmemmert
c5027b339b
History graph: show down status in red instead of green
2025-12-15 12:04:15 -05:00
nmemmert
63bdc6c91c
Enable Show Averages by default in History view
2025-12-15 12:02:08 -05:00
nmemmert
c244ebb26c
History: request averaged data from server; rebuild client assets
2025-12-15 11:51:16 -05:00
nmemmert
9446737e5a
History: return full time window for accurate averaging (7/14/30 days); rebuild
2025-12-15 11:08:03 -05:00
nmemmert
3b2b00d810
History: scale checks_limit by days and averages; rebuild client
2025-12-15 11:00:44 -05:00
nmemmert
3d66b82c88
History API: return up to 100 checks per resource by default (separate from page size)
2025-12-15 10:26:39 -05:00
nmemmert
dcc09422c9
Trigger GHCR build
2025-12-15 10:15:16 -05:00
nmemmert
60ea0b7f3e
Trigger GHCR build
2025-12-15 10:12:19 -05:00
nmemmert
fe0f1ba23b
Trigger GHCR build
2025-12-15 10:09:32 -05:00
nmemmert
76fe1d9aae
Commit built client assets (main.54d4db7c.js) for deployment
2025-12-15 09:52:13 -05:00
nmemmert
ef76d46e96
Use GHCR token fallback for registry login
2025-12-15 09:46:09 -05:00
nmemmert
d07250e982
Fix env settings formatting and runtime sync
2025-12-15 09:43:23 -05:00
nmemmert
fb175c162b
Fix docker publish workflow YAML and GHCR push
2025-12-15 09:41:50 -05:00
nmemmert
a5f741b332
Add comprehensive settings: data retention, incident thresholds, alert retry, scheduling, and dashboard customization
2025-12-15 09:40:21 -05:00
nmemmert
41430d0428
Add timezone configuration to settings UI and backend API
2025-12-15 09:24:06 -05:00
nmemmert
0751f30de2
Rebuild client frontend
2025-12-15 09:10:00 -05:00
nmemmert
564aa7c1b8
Fix email stats rendering when avgResponseTime is non-numeric
2025-12-11 14:25:08 -05:00
nmemmert
2cff0b7147
Improve email alert logging for per-resource targets
2025-12-11 14:23:23 -05:00
nmemmert
5a6ce1db00
Fix reinstall script - ensure data directory exists
2025-12-11 13:09:18 -05:00
nmemmert
c59e94547e
Add complete reinstall script with database backup
2025-12-11 13:06:42 -05:00
nmemmert
5174a14d76
Add server update script and package-lock changes
2025-12-11 11:21:55 -05:00
nmemmert
4cf5d2bdcb
Update DEPLOYMENT.md with off-box build workflow
2025-12-11 11:17:20 -05:00
nmemmert
cfba8a4d43
Fix email_to persistence: add column to resources table with debug logging
2025-12-11 10:26:19 -05:00
nmemmert
96e801b8be
Fix email_to field not persisting in edit modal - include all resource fields in dashboard API
2025-12-11 10:22:56 -05:00
nmemmert
63874a7329
Auto-commit built React app
2025-12-11 10:18:50 -05:00
nmemmert
84f0d4399a
Fix build:commit script quotes for Windows compatibility
2025-12-11 10:11:15 -05:00
nmemmert
e12f8e3f8c
Fix browser tab title to show 'SkyWatch' and rebuild app
2025-12-11 10:09:31 -05:00
nmemmert
322f0d2b57
Rebrand app name from 'Resource Monitor' to 'SkyWatch'
2025-12-11 09:59:07 -05:00
nmemmert
a4295d8081
Add in-memory caching strategy for aggregated queries with TTL and automatic invalidation on data changes
2025-12-11 09:54:19 -05:00
nmemmert
a4206b9a0f
Add pagination UI to History and SLA pages with configurable page size
2025-12-11 09:51:46 -05:00
nmemmert
dae36330fb
Add full edit modal for all resource settings (name, URL, type, interval, timeout, keywords, headers, quiet hours, cert expiry, SLA, email)
2025-12-11 09:45:34 -05:00
nmemmert
7f6cab827d
Add per-resource email targets to resource form
2025-12-11 09:39:07 -05:00
nmemmert
dd7f3aeeda
Performance: add database indexes and optimize history queries with aggregation and pagination
2025-12-11 09:33:20 -05:00
nmemmert
285b94692b
Ensure build files are always tracked in git + update deployment docs
2025-12-11 09:28:42 -05:00
nmemmert
cbb08c89be
Fix SLA data filtering error
2025-12-11 09:27:15 -05:00
nmemmert
87a047d6e8
Add latest built React app
2025-12-11 09:25:12 -05:00
nmemmert
1844bccbd4
Add major features: mobile responsive, alert acknowledgment, quiet hours, HTTP keyword matching, custom headers, certificate expiry warnings, and SLA dashboard
2025-12-11 09:20:52 -05:00
nmemmert
c8a8cc581a
Add missing main.js build files
2025-12-11 08:51:09 -05:00
nmemmert
a40cac4491
Fix static file routing - prevent catch-all from intercepting static files
2025-12-11 08:48:58 -05:00
nmemmert
4bb0466f3a
Improve History page: better styling, readability, and averaging toggle
2025-12-11 08:43:49 -05:00
nmemmert
b2923e593d
Add built React app
2025-12-10 16:18:55 -05:00
nmemmert
b05efbaa34
Fix MIME types using express.static options
2025-12-10 16:17:19 -05:00
nmemmert
61f29b2431
Add explicit MIME type headers for JS and CSS files
2025-12-10 16:14:43 -05:00
nmemmert
29c1bd3b83
Fix ESLint errors: replace ternary with conditional in onClick handlers
2025-12-10 16:11:50 -05:00
nmemmert
e54d6dea5e
Compact dashboard cards with sparklines and recent check data
2025-12-10 16:04:48 -05:00