Releases: containeroo/heartbeats
v0.9.0
v0.8.0
📝 Release Notes
✨ Features
-
Retry logic for failed notifications
Notifications now include built-in retry handling. If a delivery fails, it can be retried automatically based on the configured policy. -
New flags for retry behavior
Retry logic is fully configurable via two new flags:--retry-count
: number of times to retry a failed notification (use-1
for infinite retries).--retry-delay
: delay between retries (e.g.2s
).
✅ Improvements
-
Extensive unit test coverage added
New tests were added to ensure correctness across the system, covering:- Notifier validation and resolution (
Email
,Slack
,MSTeams
) - Retry logic and dispatcher behavior
- Template formatting and helper functions
- Middleware chain and logging
- Heartbeat actor transitions, including recovery scenarios
- Server startup (
Run
) and graceful shutdown - History ring buffer (
RingStore
)
- Notifier validation and resolution (
-
Continuous Integration added
GitHub Actions now run unit tests automatically on pull requests and tagged releases. CI also builds and publishes Docker images using GoReleaser on new tags.
Full Changelog: v0.7.8...v0.8.0
v0.7.7
v0.7.4
v0.7.3
v0.7.2
v0.7.1
🛠️ Heartbeats vNext – Refactored Release Notes
🚨 Breaking Changes
The Heartbeats application has been completely refactored for better maintainability, idiomatic Go design, and testability. As a result, the configuration format has changed significantly and requires manual migration.
🔄 Change | ✅ Action Required |
---|---|
notifications: → receivers: |
Rename the top-level field to receivers . |
notifications: field inside heartbeats |
Also renamed to receivers: inside the heartbeats: list. |
Singular keys → plural arrays | Replace slack_config , mail_config , etc. with plural: slack_configs , etc. |
title , text , subject , body → *Template |
Rename template-based fields to titleTemplate , textTemplate , etc. |
enabled: true/false |
Removed – Presence of a config implies it is enabled. |
Environment fallback | Env vars can no longer be used for CLI flags like --config , only in YAML. |
Code structure | Source code now split into internal/ and pkg/ packages for clarity. |
/ping/{id} endpoint |
Renamed to /bump/{id} for conciseness and semantic clarity. |
/history endpoint |
Removed – can be seen on the Web UI. |
--reduce flag |
Removed – history is now stored in a ring buffer of configurable size. |
--max-size -> --history-size |
Renamed to history-size |
✨ New Features
- 🧪 New Web UI – Lightweight interface for live status viewing and debugging.
- 🎨 Bootstrap-powered UI – Uses Bootstrap for a responsive, mobile-friendly design with minimal CSS overhead and zero JS dependencies.
- 🔐 Global TLS Skip –
--skip-tls
disables certificate checks across all notifiers (overridable per receiver). - 🔍 Per-Receiver TLS – Individual
skipTLS: true|false
setting for fine-grained control. - ⚙️ New
--debug
flag – Enables full HTTP request logging on every request. - 🛎️ Gracefully renamed
/ping
to/bump
– better aligned with the "heartbeat" domain vocabulary.
Full Changelog: v0.6.13...v0.7.1