Changelogs
Here are the changelogs for Kener. Changelogs are only published when there are new features or breaking changes.
v3.2.1

Features
New Heartbeat Monitors
- Added support for push-based monitoring via heartbeats
- Monitors systems that send periodic signals to confirm they're running
- Configurable thresholds for degraded and down states
- Secured with secret token authentication
- Accessible via simple HTTP API endpoints
Data Interpolation Improvements
- Fixed data interpolation issues for more accurate uptime calculations
- Improved handling of timestamp boundaries
Fixes & Improvements
UI Enhancements
- Better mobile responsiveness for theme toggles and controls
- Fixed layout issues with bottom navigation buttons
- Improved timezone selector display
Data Processing
- Fixed edge case issues with uptime calculations
- Improved handling of "No Data" status in summaries
- More accurate time range display across timezones
Documentation
- Added comprehensive documentation for Heartbeat Monitors
- Updated API documentation with new endpoints
v3.2.0

Features
Improved Monitor Evaluation Functions
- Replaced unsafe
eval()
with secureFunction()
constructors across all monitor types - Added support for using modules (like cheerio) directly in evaluation functions
- Replaced unsafe
Enhanced API Monitors
- Raw response data is now passed directly to eval functions instead of base64 encoded
- Added
modules
parameter with access to cheerio for HTML parsing - Updated default evaluation function to use the new parameter structure
Improved TCP & Ping Monitors
- Simplified evaluation functions with direct access to ping/TCP data
- Removed unnecessary base64 encoding/decoding steps
- Better error handling for invalid evaluation functions
Documentation Updates
- Updated all examples and documentation for the new evaluation function signatures
- Added more detailed explanations of input parameters
- Improved examples showing usage with the new parameter structure
Breaking Changes
- Monitor Evaluation Functions
- Custom evaluation functions will need to be updated to the new parameter structure
- API monitors:
(statusCode, responseTime, responseRaw, modules)
instead of(statusCode, responseTime, responseDataBase64)
- TCP/Ping monitors:
(arrayOfPings)
instead of(responseDataBase64)
Fixes
- Fixed "cheerio is undefined" errors in API monitor evaluations
- Improved error handling and logging for monitor evaluation failures
- Security enhancements by removing
eval()
usage
Migration
If you're using custom evaluation functions in your monitors, you'll need to update them to the new format:
API Monitors
// Old format
;(async function (statusCode, responseTime, responseDataBase64) {
const resp = atob(responseDataBase64)
// Your logic here
})
// New format
;(async function (statusCode, responseTime, responseRaw, modules) {
// responseRaw is the direct response - no need to decode
// Access cheerio with modules.cheerio
// Your logic here
})
TCP/Ping Monitors
// Old format
;(async function (responseDataBase64) {
let arrayOfPings = JSON.parse(atob(responseDataBase64))
// Your logic here
})
// New format
;(async function (arrayOfPings) {
// arrayOfPings is directly available - no need to decode
// Your logic here
})
v3.1.8

Features
Timezone Support & UI Toggle
- Added timezone support using
date-fns-tz
for improved date formatting. - Introduced a UI toggle in settings to switch between different timezones.
- Added timezone support using
Enhanced Incident Management
- Improved incident filtering to prevent duplicate auto incidents when creating manual incidents.
- Added support for incident sources to refine incident handling.
Dynamic Cron Job Scheduling
- Cron jobs are now dynamically added and removed based on active monitors.
- Ensures jobs are triggered in the correct order and prevents duplicate incidents.
Monitor Component Improvements
- Refactored monitor component for better data display and interaction.
- Improved uptime calculations.
- Added a dropdown to select time ranges for better visibility.
Fixes & Improvements
- Refactored Incident Handling & Scheduling for better reliability and performance.
- UI Responsiveness Fixes to improve the experience on smaller screens.
- Dependency Updates to support new timezone functionality and ensure stability.
v3.0.10

Features
- Added TCP monitors
Breaking Changes
- Ping monitors will break.
Fixes
- Bug fixes in the UI
v3.0.9

Features
- Support of SMTP for email notifications. Read more here
- Introduction of event type
MAINTENANCE
for incidents. - You can write eval function for ping now in monitors. Read more here
- Added category filter for monitor management.
Fixes
- Support longer TLD in
siteURL
examplehttps://example.network
- Remove googleapis preconnect and preload
- Fixed wrong action url in webhook.
v3.0.1

Here are the changes in this release
Features
- Support for i18n in dates.
- Support of i18n in monitor embeds. Read more here
v3.0.0

Here are the changes in this release
Features
- New APIs for creating incidents and pushing updates. Read more here
- Incident management is now part of the admin UI and removed from the config file.
- The UI colors have been updated to be more muted.
- Email Notifications for incidents using resend.
- New Kener management portal. No monitors.yaml or site.yaml needed anymore
- Login Page and Setup Page
- Remove Github dependency
- Options to disable square or dot pattern
- Support for new languages
- Multiple DB support (mysql, postgres, sqlite3)
- New API reference
- New documentation site
v2.0.0

Here are the changes in this release
Features
- Added support for sqlite3 and removed dependency on file system
- Added support for postgres database. Read more here
- Added support for alerting. Read more here
- Added color customization. Read more here
- Added three new customizations for home page. Read more here
barStyle
barRoundness
summaryStyle
Migration
Kener will automatically migrate your data from file system to sqlite3. If you are using a custom domain, you need to update the site.yaml
file with the new siteURL
field. Read more here
v0.0.16

Here are the changes in this release
Features
- Added support for
hideURLForGet
in monitors. Read more here - New SVG badges for LIVE status. Read more here
[Breaking Change]
Removed dependency on Environment variablePUBLIC_KENER_FOLDER
. Read more here- Simplified build and deploy process
- Added support for fonts. Read more here
- Added support for home page pattern. Read more here
- Added support for adding your analytics provider. Read more here
- New Documentation Site
- Addes support for
sqaures
pattern in home page. Read more here - Redesigned the UI for better consistency
- Embed now supports background color using a parameter
bgc
. Read more here - Now title in
site.yaml
is<title>
andsiteName
is actually the name of the site. Read more here
Migration
Source
- Move data from
PUBLIC_KENER_FOLDER
to/database
file. - Move
site.yaml
to/config
folder - Move
monitors.yaml
to/config
folder
Docker
- Use
-v $(pwd)/database:/app/database
and-v $(pwd)/config:/app/config
in your docker run command