9cbf0ecb13
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
439 lines
9.3 KiB
Markdown
439 lines
9.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project are documented here, organized by release.
|
|
|
|
## [5.3.8]
|
|
|
|
### Added
|
|
- Wiki home page with overview and getting started guide
|
|
|
|
### Fixed
|
|
- Release workflow: use `GITHUB_REF`/`GITHUB_OUTPUT` (Gitea Actions uses GitHub-compatible variable names)
|
|
- Release workflow: replace `head -1` with `grep -m 1` to avoid SIGPIPE (exit 141) in changelog step
|
|
|
|
---
|
|
|
|
## [5.3.7]
|
|
|
|
### Added
|
|
- Dark mode with light/dark/auto theme setting
|
|
- UNKNOWN level filter in Log of Events
|
|
- Per-metric grace period input in threshold settings
|
|
- Replace Dynamic DNS YAML editor with a web form
|
|
- Sort hosts, thresholds, and channels alphabetically on settings page
|
|
- Suppress alerts for unwatched hosts
|
|
|
|
### Fixed
|
|
- Preserve log message order when replaying history on connect
|
|
|
|
---
|
|
|
|
## [5.3.6]
|
|
|
|
### Added
|
|
- MIT license
|
|
|
|
### Fixed
|
|
- Correct ZFS pool status threshold operator and add per-metric grace
|
|
- Normalize email and domain fields
|
|
- Move dependencies back under `[project]` in pyproject.toml
|
|
|
|
---
|
|
|
|
## [5.3.4]
|
|
|
|
### Fixed
|
|
- Run full reload after HTTP config publish, not just `config.reload()`
|
|
|
|
---
|
|
|
|
## [5.3.3]
|
|
|
|
### Added
|
|
- Replace YAML threshold editor with a form-based UI
|
|
- Replace multi-select fields with dual-panel picker on settings page
|
|
- Nav bar button to publish pending config changes
|
|
- Host, level, and message filters in Log of Events
|
|
|
|
### Fixed
|
|
- Remove container max-width; stop stretching inputs on settings page
|
|
|
|
### Removed
|
|
- Legacy `dyndnshosts`/`drophosts` config keys
|
|
|
|
---
|
|
|
|
## [5.3.2]
|
|
|
|
### Added
|
|
- Retry DNS resolution indefinitely; add `-4`/`-6` address-family flags to `hbc` and `hbc_mini`
|
|
- Replace YAML hosts editor with form-based CRUD table
|
|
- Replace YAML notification channel editor with form-based UI
|
|
|
|
### Fixed
|
|
- Support list-valued `threshold_config` in hosts table
|
|
- Derive hosts threshold config list from config file keys
|
|
- Replace channel checkboxes in Users table with multi-select
|
|
- Support plugin-level `enabled: false` in threshold config
|
|
- Always populate glance strip for all hosts on page load
|
|
- Fetch host info on initial page load
|
|
|
|
---
|
|
|
|
## [5.3.1]
|
|
|
|
### Added
|
|
- Host info section in Host Overview (fetched and rendered on card expand)
|
|
- `GET /api/0/hosts/{hostname}/info` endpoint
|
|
- Show suffix-matched metric coverage in host info threshold table
|
|
- Move `hbc_version` and `hbc_type` out of `os_info` into the host info section
|
|
|
|
### Fixed
|
|
- Correct `THRESHOLD_DEFAULTS` metric keys and add missing defaults
|
|
|
|
---
|
|
|
|
## [5.3.0]
|
|
|
|
### Added
|
|
- Profile page self-service: change identity, password, and notification channels
|
|
- Settings page editor with form sections, YAML editors, stage/publish/rollback workflow
|
|
- Config read API: `GET /api/0/config`, `/section/{name}`, `/backups`
|
|
- Config write API: `POST /api/0/config`, `POST /api/0/config/rollback`
|
|
- `configio` module for comment-preserving YAML round-trip writes
|
|
- Multi-provider OAuth2 login page and generic provider routes
|
|
- Log login/logout events to the event log with auth source
|
|
|
|
### Fixed
|
|
- ZFS monitor alerts dropped on restart with wildcard pool thresholds
|
|
- Preserve OAuth users across config reload
|
|
- Config API error handling, consistent 403 messages, deduplicated key lists
|
|
- Validate password body type; coerce `notification_channels` to strings in profile API
|
|
- Preserve OAuth `client_secret` on roundtrip; harden rollback path validation
|
|
|
|
---
|
|
|
|
## [5.2.6]
|
|
|
|
### Added
|
|
- Alerts host-filter field with URL query parameter and notify URL
|
|
- Optional logo on Gitea OAuth login button
|
|
|
|
### Fixed
|
|
- Show human-readable duration in re-notification messages
|
|
|
|
---
|
|
|
|
## [5.2.5]
|
|
|
|
### Added
|
|
- Alert CRITICAL on degraded or suspended ZFS pools (ONLINE=OK, DEGRADED=WARNING, all else=CRITICAL)
|
|
- Sign in with Gitea button on login page with OAuth2 redirect/callback routes
|
|
- OAuth2 CSRF state management
|
|
- Host owner shown in glance strip for admin users
|
|
- C port of `hbc_mini` (single-file client in `scripts/c/`)
|
|
|
|
### Fixed
|
|
- Use `base_url` config for OAuth redirect URI to handle reverse proxy deployments
|
|
- Preserve OAuth users across config reload
|
|
- Escape HTML in login page error display
|
|
|
|
---
|
|
|
|
## [5.2.4]
|
|
|
|
### Added
|
|
- `hbc`/`hbc_mini`: `owner` config field included in `os_info`; server applies to host record
|
|
- Server requests InfoPlugin refresh when a host has no plugin data
|
|
- Event log stores structured dicts; filter by user
|
|
|
|
### Fixed
|
|
- Strip `_status_code` suffix from displayed metric names in threshold alerts
|
|
- Use plain URL in Mattermost plugin metrics link
|
|
- Fall back to `default_owner` when `os_info` has no owner
|
|
|
|
---
|
|
|
|
## [5.2.3]
|
|
|
|
### Added
|
|
- `hbc`/`hbc_mini`: log name and version at startup
|
|
- Show metric name inline with hostname in alerts and notifications
|
|
|
|
### Fixed
|
|
- Send shutdown message only if a boot message was previously sent; suppress both on restart
|
|
|
|
---
|
|
|
|
## [5.2.2]
|
|
|
|
### Fixed
|
|
- Retry connection on network error instead of permanently dropping it
|
|
- Silence `aiohttp.access` log; strip plugin prefix in alerts UI
|
|
|
|
---
|
|
|
|
## [5.2.1]
|
|
|
|
### Fixed
|
|
- Threshold and logging improvements
|
|
|
|
---
|
|
|
|
## [5.2.0]
|
|
|
|
### Added
|
|
- `nagios` operator for direct exit-code severity mapping
|
|
|
|
### Fixed
|
|
- Always show `THRESHOLD_DEFAULTS` in Settings threshold config
|
|
|
|
---
|
|
|
|
## [5.1.21]
|
|
|
|
### Added
|
|
- `nagios_runner` improvements and alerts page fixes
|
|
|
|
---
|
|
|
|
## [5.1.20]
|
|
|
|
### Added
|
|
- Generic threshold matching for `nagios_runner` with `{check_name}` display support
|
|
|
|
### Fixed
|
|
- Reduce default hysteresis from 10% to 2%
|
|
- Show recovery threshold in alerts UI
|
|
|
|
---
|
|
|
|
## [5.1.19]
|
|
|
|
### Added
|
|
- Exclude ZFS ARC from `memory_percent`
|
|
- Add `uptime_seconds` to `cpu_monitor`
|
|
|
|
### Fixed
|
|
- Send boot/shutdown message on the first open connection, not blindly on the first in list
|
|
|
|
---
|
|
|
|
## [5.1.18]
|
|
|
|
### Added
|
|
- Fetch-based Update/Delete buttons with toast notifications on Host Overview
|
|
|
|
### Fixed
|
|
- Settings thresholds show correct per-config metrics; miscellaneous `hbc` fixes
|
|
|
|
---
|
|
|
|
## [5.1.17]
|
|
|
|
### Added
|
|
- Owner Update/Delete buttons on Host Overview; purge stale alerts on reload
|
|
- Retry `AsyncConnection.open()` indefinitely; drop IPv6 only on early startup failure
|
|
- Alert pie chart in the nav bar
|
|
|
|
### Fixed
|
|
- Make Alerts page scrollable
|
|
|
|
---
|
|
|
|
## [5.1.16]
|
|
|
|
### Added
|
|
- Generic `ping_monitor` thresholds; round RTT to nearest ms
|
|
|
|
---
|
|
|
|
## [5.1.15]
|
|
|
|
### Added
|
|
- Link hostnames in Live Dashboard to Host Overview
|
|
- Threshold Configurations section on settings page
|
|
|
|
### Fixed
|
|
- Suppress notifications on alert de-escalation (e.g. CRITICAL→WARNING)
|
|
- Suppress recover messages for down durations under 4 seconds
|
|
|
|
---
|
|
|
|
## [5.1.14]
|
|
|
|
### Added
|
|
- ZFS pool renderer in Host Overview
|
|
|
|
---
|
|
|
|
## [5.1.13]
|
|
|
|
### Added
|
|
- ZFS monitor plugin
|
|
- Host-level watch flag to suppress notifications
|
|
- Filter Live Dashboard and Host Overview by owner/manager
|
|
- Composable `threshold_config` list for per-host threshold layering
|
|
- Restart on SIGHUP in `hbc` and `hbc_mini`
|
|
|
|
### Fixed
|
|
- Mask `api_password` and `access_token` in settings page
|
|
|
|
---
|
|
|
|
## [5.1.12]
|
|
|
|
Internal release — no user-visible changes.
|
|
|
|
---
|
|
|
|
## [5.1.11]
|
|
|
|
### Fixed
|
|
- Install under Docker
|
|
- Clean up install script
|
|
|
|
---
|
|
|
|
## [5.1.10]
|
|
|
|
### Fixed
|
|
- Synchronize version in `hbc_mini`
|
|
- Install script no longer overwrites itself
|
|
|
|
---
|
|
|
|
## [5.1.9]
|
|
|
|
### Added
|
|
- Install `hbc_mini` via package or install script
|
|
|
|
---
|
|
|
|
## [5.1.8]
|
|
|
|
### Added
|
|
- Track `hbc` type and version
|
|
|
|
### Fixed
|
|
- Nav bar position
|
|
|
|
---
|
|
|
|
## [5.1.7]
|
|
|
|
### Added
|
|
- `hbc_mini`: single-file heartbeat client
|
|
|
|
### Fixed
|
|
- Drop dead connections on protocol error
|
|
|
|
---
|
|
|
|
## [5.1.6]
|
|
|
|
### Fixed
|
|
- Simplify event log usage; fix argument handling
|
|
|
|
---
|
|
|
|
## [5.1.5]
|
|
|
|
### Added
|
|
- Update `hbc` via `hb_install.sh` instead of code patching
|
|
|
|
---
|
|
|
|
## [5.1.4]
|
|
|
|
### Added
|
|
- Redesign Plugin Metrics page as Host Overview
|
|
|
|
---
|
|
|
|
## [5.1.3]
|
|
|
|
### Added
|
|
- Validate absolute command paths at `nagios_runner` init
|
|
- Async subprocess in `nagios_runner` with stderr capture and signal handling
|
|
- `skip_reason` field on `Plugin`; surface in `PluginLoader` init messaging
|
|
|
|
### Fixed
|
|
- Use `shlex.split()` for `nagios_runner` path validation to handle quoted paths
|
|
- Reconfigure logging to syslog after `daemonize()`
|
|
|
|
---
|
|
|
|
## [5.1.2]
|
|
|
|
### Fixed
|
|
- Plugin config lookup shadowed by `CLIENT_DEFAULTS` plugins key
|
|
- Apply grace period to all threshold alerts before logging/notifying
|
|
- RECOVER routing: use consistent level name and route via alerted channel
|
|
- Early reminder notifications and lost recovery notifications
|
|
- Non-alerting of overdue hosts
|
|
|
|
### Added
|
|
- Swiss clock widget in the UI
|
|
|
|
---
|
|
|
|
## [5.1.1]
|
|
|
|
### Added
|
|
- SMS and Matrix notification channels
|
|
- CLI commands `stop`, `restart`, and `reload` for `hbd`
|
|
- WebSocket endpoint at `http://.../ws`
|
|
- Mobile HTML pages
|
|
|
|
### Fixed
|
|
- Profile not updating
|
|
- Sortable columns in tables
|
|
|
|
---
|
|
|
|
## [5.1.0]
|
|
|
|
### Added
|
|
- Ping monitor plugin
|
|
- Persist state to pickle file; restart timers on server restart
|
|
- SIGHUP config reload for `hbd`
|
|
- Renotify on CRITICAL only; persistent user sessions
|
|
- RTT count threshold
|
|
|
|
### Fixed
|
|
- Bogus notification on new clients
|
|
- Show "overdue" in alerts instead of null
|
|
|
|
---
|
|
|
|
## [5.0.12]
|
|
|
|
### Added
|
|
- User management and settings page
|
|
|
|
---
|
|
|
|
## [5.0.10]
|
|
|
|
### Added
|
|
- Publish package to Gitea PyPI registry
|
|
|
|
---
|
|
|
|
## [5.0.9]
|
|
|
|
### Added
|
|
- Use `SO_TIMESTAMP` for RTT measurement (Linux, FreeBSD, macOS)
|
|
- Persist state to pickle file; restart timers on restart
|
|
|
|
---
|
|
|
|
## [5.0.6]
|
|
|
|
### Added
|
|
- Major codebase refactoring: restructured into client/server components
|
|
- Per-client threshold configuration
|
|
- Display and acknowledge alerts in the UI
|
|
- Proper `hbc` termination; `hbd` config reloadable at runtime
|