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 secure Function() constructors across all monitor types
    • Added support for using modules (like cheerio) directly in evaluation functions
  • 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.
  • 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 example https://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 variable PUBLIC_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> and siteName 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