Commit Graph
52 Commits
Author SHA1 Message Date
nmemmert 40c65e1163 fix: Save all 27 settings fields to database for persistence
- Added incident_failure_threshold to POST /api/settings destructuring
- Added incident_failure_threshold to .env file generation
- Added incident_failure_threshold to process.env updates
- Added incident_failure_threshold to settingsTable for database storage
- Added incident_failure_threshold to GET /api/settings response (both success and fallback)
- All 27 settings now persist correctly to database and are retrieved properly
- Settings survive server restart and page reload
2026-01-14 15:36:17 -05:00
nmemmert 64b3852d53 fix: Settings persistence - save to database and process.env 2026-01-14 15:24:42 -05:00
nmemmert db85573986 feat: Add real-time notification center with WebSocket integration
- Add in-app notification system with database storage
- Implement bell icon component with unread count badge in dashboard header
- Add full Notifications page tab with pagination and filtering (All/Unread/Read)
- Implement real-time WebSocket push notifications to all connected clients
- Add notification API endpoints: GET, PUT /read, DELETE, POST /clear
- Fix critical bug in notificationService where 'status' variable was undefined
- Add Notifications route to App.js routing
- Enhanced UI with notification popup in header and dedicated full-page view
- Auto-reconnect WebSocket with 5s timeout on disconnect
- Support rich notification content with resource details and timestamps
2026-01-14 14:51:29 -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 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 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 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 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 c8de1257ba Add checks/incidents APIs with filters and SLA summary 2025-12-15 16:22:15 -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 92cb495ef2 Append Z suffix to timestamps so browser treats them as UTC 2025-12-15 13:45:49 -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 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 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 9446737e5a History: return full time window for accurate averaging (7/14/30 days); rebuild 2025-12-15 11:08:03 -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 d07250e982 Fix env settings formatting and runtime sync 2025-12-15 09:43:23 -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 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 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 dd7f3aeeda Performance: add database indexes and optimize history queries with aggregation and pagination 2025-12-11 09:33:20 -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 a40cac4491 Fix static file routing - prevent catch-all from intercepting static files 2025-12-11 08:48:58 -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 e54d6dea5e Compact dashboard cards with sparklines and recent check data 2025-12-10 16:04:48 -05:00
nmemmert 7214238f33 Fix: Always serve React build regardless of NODE_ENV 2025-12-10 15:33:18 -05:00
nmemmert 69e321d35f Add History page with detailed check data graphs and statistics 2025-12-10 15:16:28 -05:00
nmemmert 1e964d0c4c Add resource groups 2025-12-10 12:03:24 -05:00