Releases: ptarmiganlabs/butler
butler-v15.0.0
15.0.0 (2025-12-10)
⚠ BREAKING CHANGES
- store preload task success in InfluxDB
- store preload and user sync task failures in InfluxDB
- preload-alert: send email when preload task fail or succeed
- distribute-alert: send email when distribution tasks succeed
- distribute-alert: send email when distribution tasks fail
- distribute-alert: store info in InfluxDB about successful/failed distribution tasks
- email-alert: add support for script log head/tail for reload task suceeded emails
- store info about successful and failed distribution tasks in InfluxDB
- store info about successful and failed external program tasks in InfluxDB
- store info about successful user sync tasks in InfluxDB
Features
- add hostname validation for Windows service monitoring (9214882)
- add support for preload tasks in XML appender file (3baf297)
- add weekly security scan of codebase (a79ba95)
- config-file-validation: more informative logging when config file is invalid (d4b2558)
- constants: add distribution queue constants (b3b4e16)
- constants: centralize magic numbers and hardcoded values (87e4b02)
- constants: centralize magic numbers and hardcoded values (d05f24b)
- distribute-alert: send email when distribution tasks fail (c7f3b37)
- distribute-alert: send email when distribution tasks succeed (fdd0dde)
- distribute-alert: store info in InfluxDB about successful/failed distribution tasks (1dc9c2f)
- email-alert: add support for script log head/tail for reload task suceeded emails (e9b20bb)
- error-handling: add await to async UDP handler calls and improve service monitor error handling (6e50314)
- error-handling: add comprehensive async error handling to prevent unhandled promise rejections (3911d07)
- error-handling: add global unhandled rejection handler and improve async error handling (bb486a9)
- preload-alert: send email when preload task fail or succeed (009c56a)
- store info about successful and failed distribution tasks in InfluxDB (6cb4d78)
- store info about successful and failed external program tasks in InfluxDB (a79b217)
- store info about successful user sync tasks in InfluxDB (5bd28f6)
- store preload and user sync task failures in InfluxDB (8bb880f)
- store preload task success in InfluxDB (ff4b24c)
- udp: add validation, error handling, and task type detection for UDP handlers (48decbe)
Bug Fixes
- alerts: update Sense log appender files to work with latest Butler features (59a2c63)
- butler: throw correct error variable in server ready callbacks (6cafb5c)
- butler: throw correct error variable in server ready callbacks (6f4c03e)
- certificates: Do not load Sense API certificates when --no-qs-connection is used when starting Butler (f8fd8fd)
- email-templates: update email footers for consistency and remove outdated links (acb4b15)
- qseow: make log script retrieval more robust when reload tasks h… (edd8970)
- qseow: make log script retrieval more robust when reload tasks have failed, succeeded or been aborted (86c397b)
- smtp: easier to understand log messages when sending alert emails (12f262a)
- udp: correct task type enum values in comments (1383b86)
- udp: prevent Butler crashes on External Program Task completion, add robust error handling, and refactor into manageable modules (19a82f3)
Miscellaneous
- deps: update actions/setup-node action to v6 (e5b9e29)
- deps: update actions/setup-node action to v6 (e4df5cf)
- deps: update dependencies to latest versions (a3e9e10)
- deps: update dependencies to latest versions (ed03415)
- deps: update github/codeql-action action to v4 (e4cca30)
- deps: update github/codeql-action action to v4 (9f4cf99)
- pin OSV-Scanner action to use specific commit SHA (549f181)
- update action versions in CI workflows for consistency and security (a730408)
- update dependencies to latest versions (6073f22)
Refactoring
- email: restructure email related code for better maintainability and future development (962ece3)
- implement shared task detail comparison function for sorting execution results (ea76075)
- restructure the codebase to make it easier to add more task event types (91da101)
- streamline error message handling in tests (da8cc9e)
- udp: split udp_handlers.js into multiple manageable files (aa8561d)
🛡 VirusTotal GitHub Action analysis:
butler-v14.2.0
14.2.0 (2025-10-07)
Features
- scriptlog: More robust retrieval of script logs, offering better support for both older and newer client-managed Sense versions (8af5ffa)
Miscellaneous
- deps: update nodemailer to version 7.0.9 and posthog-node to version 5.9.3 (cfb2ec0)
🛡 VirusTotal GitHub Action analysis:
butler-v14.1.0
14.1.0 (2025-10-06)
Features
- qseow: Add retries when retrieving script logs. Implements #1499 (2bf1f97)
- Refactor error logging to be more consistent and relevant (d6064bd)
Bug Fixes
- improve formatting and regex for release tag matching in update-autorelease-label workflow (d150b1e)
- logging: Enhance error logging for Teams webhook failures (c7d4a36)
- test suite fails on Windows due to how file timestamp works when copying files (04fdb41)
Miscellaneous
- deps: update nodemailer, systeminformation, and other dependen… (dc87461)
- deps: update nodemailer, systeminformation, and other dependencies (f4b9e10)
🛡 VirusTotal GitHub Action analysis:
butler-v14.0.1
What's Changed
- revert back to automatic version numbering by @mountaindude in #1475
- Fix regression in 14.0.0 by @mountaindude in #1477
- chore(master): release butler 14.0.1 by @mountaindude in #1474
Full Changelog: butler-v14.0.0...butler-v14.0.1
🛡 VirusTotal GitHub Action analysis:
butler-v14.0.0
14.0.0 (2025-10-01)
🥳🎉 This the 100th release of Butler!
Not a whole lot of new features in this release, but still a major version bump due to the breaking change of making the -c / --configfile option mandatory.
Also added a lot of unit tests to improve overall code quality and reliability, as well as improvement to the build and CI/CD processes - all which should make future development smoother and more efficient.
⚠ BREAKING CHANGES
- -c / --configfile option is now mandatory.
Features
- -c / --configfile option is now mandatory. (f8a54a5)
- enhance log messages when no config file is specified on startup (8fe18cf)
- implement conditional configuration validation and update dependencies (dd85636)
- qseow: implement proper CSRF protection in calls to QRS API (d78c303)
- replace qrs-interact dependency with Axios-based QRS client (bf22399)
- ci: add automatic Windows insider build deployment and log monitoring (5cf49df)
- ci: add Windows insider build deployment and log monitoring workflows (e9df0eb)
Bug Fixes
- build: add build:docker script for Docker image creation (fe837f7)
- config: merge YAML-configured headers with hardcoded QRS headers (07de0db)
- config: replace hardcoded QRS and Engine ports/SSL with config values and preserve header merging (93ee135)
- config: replace hardcoded QRS port 4242 with config values (589ea75)
- config: respect SSL settings for QRS and Engine API calls (8ad4423)
- logging: improve debug output for custom properties in email and InfluxDB assertions (6619dbc)
- mqtt: add broken start-tasks-via-mqtt feature (8604de7)
- security: better, more secure parsing of Slack notification templates (93d611c)
- security: resolve critical Slack notification escaping and prototype pollution vulnerabilities (6335351)
- tests: add getQRSHttpHeaders mock to various test files (8743413)
- tests: fix service_monitor test error handling and qliksense_license test imports (e9d750f)
- tests: remove problematic test files and analyze coverage gaps for targeted test additions (75dac07)
- tests: update post_to_influxdb tests with correct function names and working test cases (4dde3b7)
- update notification functions to use await for asynchronous calls in Teams, Slack, and Webhook notifications (a14032a)
Miscellaneous
- deps: update actions/setup-node action to v5 (9fcdbc0)
- deps: update actions/stale action to v10 (363561b)
- deps: update dependencies and UUID related unit tests (426f710)
- deps: update dependencies to latest versions (cc59884)
- deps: upgrade jsontree to v4.7.1 and add unit tests (302d6fd)
- deps: upgrade prism.js from v1.29.0 to v1.30.0 and add unit tests (b62d01a)
- master: release butler 14.0.0 (cee8821)
- update dependencies for fastify, posthog-node, eslint-plugin-jsdoc (8ddc544)
- add first set of tests in the new unit test suite (a3cf65e)
- build: include build date in insider's build versioning (247de86)
- configvis: add jjsontree upgrade infrastructure (666a943)
- configvis: upgrade jsontree to v4.7.1 and add unit tests (8559104)
- lib: replace serializeapp dependency with internal implementation (b4a5c13)
- static: upgrade prism.js from v1.29.0 to v1.30.0 with tests (fdd2f2c)
- svc monitor: filter out empty service status blocks in statusAll function (9af44c9)
- tests: add API schema tests for key-value store and scheduler (513df1f)
- tests: add app owner alert tests and TLS configuration tests for smtp module (70ed05e)
- tests: add unit tests for API schemas and utility functions (7459d05)
- tests: add unit tests for assert_config_file and smtp modules (e4d7318)
- tests: add unit tests for config_obfuscate, qscloud/util, and qseow/get_qs_urls modules (3b112ec)
- tests: add unit tests for email notifications, Teams notifications, scheduler, telemetry, and config assertion modules (466038c)
- tests: add unit tests for incident management modules achieving 85%+ coverage (cd82abf)
- tests: add unit tests for QS Cloud API modules (2be39a2)
- tests: add unit tests for qseow modules achieving 85%+ coverage for critical components (15f5e9e)
- tests: add unit tests for scriptlog, webhook_notification, msteams_notification, smtp, qliksense_license and winsvc modules (f364379)
- tests: Add more unit tests, increasing test coverage (7999742)
- tests: add MQTT API schema tests and configure coverage collection (777eddf)
- tests: add unit tests for email_notification_qscloud with tag gating functionality (fadb32d)
- tests: add unit tests for support plugin, improving overall test coverage (54bea3a)
- tests: add working unit tests for scheduler.js (61% coverage) and telemetry.js (73% coverage) (620909f)
- tests: implement unit tests for API schemas and utility functions (7b04e2f)
- tests: improve test coverage for telemetry, post_to_influxdb, qliksense_license, and service_monitor ([722851d](722851d178cc9f29dd0476f1e8d1e...
butler: v13.1.2
13.1.2 (2024-11-30)
Bug Fixes
- access-license: Make logging when releasing licenses less verbose (3e54c0a), closes #1303
- qseow: Fix broken email templates for failed/aborted/successful reloads (0f44dd5), closes #1292
- qseow: Make writing reload script logs to disk more robust (d42f27d), closes #1296
Miscellaneous
- Update dependencies to stay safe and secure (ebe8c44)
🛡 VirusTotal GitHub Action analysis:
butler: v13.1.1
13.1.1 (2024-10-24)
Bug Fixes
- influxdb: Remove pre-defined schema for InfluxDB database (cbdfce3), closes #1286
- license-release: Allow empty arrays for never-release users, custom properties etc (03ac212), closes #1287
- logs: Clearer logging when sending data to InfluxDB (56663da), closes #1288
Miscellaneous
- deps: Updated dependencies (82a2c7c)
🛡 VirusTotal GitHub Action analysis:
butler: v13.1.0
13.1.0 (2024-10-20)
This release fixes a couple of regression bugs in 13.0.
This version 13.1 is also a first step towards cleaning up the logging done by Butler.
Over the years new features have been added, resulting in somewhat inconsistent logging.
Some features log extensively, others not so much.
A first step is to prefix log messages related to client-managed Qlik Sense with [QSEOW], and Qlik Sense Cloud related messages with [QSCLOUD]. Should make it a bit easier to interpret the logs.
Features
Bug Fixes
- alert: Fix unhandled exception when getting client-managed app metadata (c838e01), closes #1274
- cloud-reload-alert: Make script log head/tail include correct number of rows (a230f0d), closes #1275
Miscellaneous
Refactoring
🛡 VirusTotal GitHub Action analysis:
butler: v13.0.0
13.0.0 (2024-10-15)
This is a major update, possibly the biggest ever for Butler.
As always, please report bugs, issues and ideas in the repository's discussion forum.
Please also note that the config file format has changed and will require some changes and additions.
Butler will tell what config properties are missing, but the included template config YAML file can (should!) also be used as reference.
The documentation at https://butler.ptarmiganlabs.com has been updated with respect to 13.0.
⚠ BREAKING CHANGES
- script-log: Changing config fils structure to prep for future features
- config: Get rid of old typos and outdated structure in config file
- ms-teams: Use MS Power Automate for sending Teams messges
Features
- alert-templates: Add more template variables to email, Slack, Teams alerts (25aaa2b), closes #1250
- alerts: Add arbitrary URLs to reload failed/stopped/success msgs (5e613db), closes #1220
- config-vis: Show current config in web page (b53eaf7), closes #1199
- config: Visualise config file in Butler hosted web page (29356ce), closes #1199
- email-alert: Send email when select reload tasks finish successfully (6a0e49b), closes #1207
- failed-task-alert: Make failed reload task email look the same as QS Cloud ditto (c163ad4), closes #1237
- qs-cloud: Reload failed alerts to email (1d4a62d)
- qs-cloud: Reload failed alerts to MS Teams (523722a)
- qs-cloud: Reload failed alerts to Slack (fa35d91)
- Verify that needed email alert related custom properties exist in QS (6babb0f), closes #1256
Bug Fixes
- Fix error when sending successful reload email for apps and tasks with no tags associated with them (c945493)
- ms-teams: Use MS Power Automate for sending Teams messges (4f46e60), closes #1239
- scheduler: Fix broken "scheduler" test case (0012f6d), closes #1245
- script-log: Changing config fils structure to prep for future features (e81ee39)
- service-alerts: Update win service alert templates to latest look-n-feel (b2e8bab), closes #1257
- Show correct config file path in log during startup (580d00d), closes #1270
- slack-alert: Align Slack template for QSEoW alerts with QS Cloud ditto (2769553), closes #1238
- Test case "senseapp" now works again (054faa6), closes #1244
- test: Fix broken test of
buterpingAPI endpoint (39827c8) - winsvc-monitor: Making verbose logging less spammy (f8981b3), closes #1234
- xml-appender: Update XML appender files to more reliably detect successful reloads (b02e6a8), closes #1259
Miscellaneous
- Bump Docker build action to v6 (6793cae)
- deps: Update dependencies (e18ce59)
- deps: Update dependencies to stay safe and secure (16032c0)
- deps: Upgrade dependencies to stay safe and secure (2960da0)
- master: release butler 13.0.0 (f487c35)
- Update to use latest release-please action (d0d8a62)
Refactoring
- config: Better verification of config file during startup (d1ebfaa), closes #1236
- config: Get rid of old typos and outdated structure in config file (985b749), closes #1242
- config: Remove support for "enabled" properties in config file, only support "enable". (b3a9a40), closes #1243
🛡 VirusTotal GitHub Action analysis: