diff --git a/content/en/docs/examples/when things dont work/_index.md b/content/en/docs/examples/when things dont work/_index.md new file mode 100644 index 00000000..9fb43cd1 --- /dev/null +++ b/content/en/docs/examples/when things dont work/_index.md @@ -0,0 +1,89 @@ +--- +title: "When things don't work as expected" +linkTitle: "When things don't work" +weight: 9000 +description: > + Tips and tricks for troubleshooting Butler. +--- + +Butler is a complex piece of software, and it is not uncommon to run into issues when [setting up and configuring](/docs/getting-started/setup/) Butler. +In the vast majority of cases, the issues are caused by misconfiguration, and not by bugs in the tool itself. + +This page contains some tips and tricks that can be useful when troubleshooting a Butler instance. + +## General things to check + +### Is Butler running? + +The first thing to check is if Butler is running at all. + +If Butler is running as a Windows service, check the Windows Services applet to see if the service is running. + +If Butler is running as a Docker container, check the Docker container status with the `docker ps` command. + +### Logs + +Make sure logging to file is enabled in the Butler configuration file. +Take note of the log file location. + +Then check the log files for errors and warnings. + +In theory errors and warnings can occur as part of normal operation, but that should be rate. +If there are errors or warnings during startup, or if there are a lot of errors and warnings, then there is most likely a problem. + +You can also try increasing the log level to `verbose` or even `debug` to get more information about what's happening, and where in Butler the problem is occurring. + +Logging level is configured in the Butler configuration file or via the `--loglevel` command line parameter (which takes precedence over the configuration file). + +## Feature specific issues + +### Failed reload alerts not working + +Butler offers quite comprehensive support for dealing with failed or aborted reloads tasks. +As such there are a number of things that can go wrong and settings that can be misconfigured. + +When configured correctly, Butler's logs can look like below. +In this example Butler has received a reload task failure event from Qlik Sense, and is now sending out notifications to the following channels: + +- Script log archive (all failed reload logs are archived to a folder on disk) +- InfluxDB (from where the reload failure can be visualized in a Grafana dashboard) +- Slack +- Teams +- Outgoing webhook +- Email + +```text +2024-01-10T05:47:52.992Z info: SCRIPTLOG STORE: Writing failed task script log: C:\tools\butler\config\scriptlog\2024-01-10\2024-01-10_06-47-52_appId=8f1d1ecf-97a6-4eb5-8f47-f9156300b854_taskId=22b106a8-e7ed-4466-b700-014f060bef16.log +2024-01-10T05:47:52.994Z info: INFLUXDB RELOAD TASK FAILED: Sending reload task notification to InfluxDB +2024-01-10T05:47:53.008Z info: SLACK RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)" +2024-01-10T05:47:53.017Z info: TEAMS RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)" +2024-01-10T05:47:53.021Z info: WEBHOOK OUT RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)" +2024-01-10T05:47:53.300Z info: EMAIL RELOAD TASK FAILED ALERT: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)", Recipient: "joe@company.com" +``` + +{{% notice tip %}} +Rate limiting is defined in the Butler configuration file. +If the rate limiting condition is met, this will be shown as "Rate limiting check passed for failed task notification" in the logs. +{{% /notice %}} + +Things to check: + +- Is Butler receiving the reload task events from Qlik Sense? + - Check the Butler log files. + When Butler receives a reload task event from Qlik Sense, it will check if rate limiting conditions are met, and also log a message about that. + If there are no such messages: + - Butler has not received the event from Qlik Sense. + - Check the XML appender files deployed to the Qlik Sense servers. Make sure they send UDP events to the host and port where Butler is listening. + - Try pinging the host where Butler is running, from the Qlik Sense server (`ping `). If the ping fails, there is probably a network issue. + - Try doing a telnet to the UDP port where Butler is listening from the Qlik Sense server (`telnet `). If the telnet fails, there is for sure a network issue. + - Make sure reload failure events are enabled in the Butler configuration file. +- Are reload failure events received from some Sense nodes, but not others? + - Check the XML appenders on the nodes where the events are not received. + - Check the network connectivity between the nodes and the Butler host. + - The XML appender files can be identical on all nodes. +- Are some reload failure events forwarded to destinations, but not others? + - Check the Butler log files. + - Is rate limiting enabled? If so, check the rate limiting settings in the Butler configuration file. + - If events arrive more frequently than the rate limiting settings allow, Butler will not forward all events. + A failed rate limiting check will result in a log warning: + `Rate limiting failed. Not sending reload notification email for task ...` diff --git a/docs/404.html b/docs/404.html index e383fa69..a7ffeea9 100644 --- a/docs/404.html +++ b/docs/404.html @@ -144,7 +144,7 @@

Not found

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2019/11/01/v3.0.0-enable-some-rest-api-endpoints-disable-others./index.html b/docs/blog/2019/11/01/v3.0.0-enable-some-rest-api-endpoints-disable-others./index.html index 2a0cee41..8f618069 100644 --- a/docs/blog/2019/11/01/v3.0.0-enable-some-rest-api-endpoints-disable-others./index.html +++ b/docs/blog/2019/11/01/v3.0.0-enable-some-rest-api-endpoints-disable-others./index.html @@ -309,7 +309,7 @@

v3.0.0: Enable some REST API endpoints, disable others.

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2019/11/29/new-documentation-site-for-butler/index.html b/docs/blog/2019/11/29/new-documentation-site-for-butler/index.html index 3d793519..a844bd2b 100644 --- a/docs/blog/2019/11/29/new-documentation-site-for-butler/index.html +++ b/docs/blog/2019/11/29/new-documentation-site-for-butler/index.html @@ -328,7 +328,7 @@

New documentation site for Butler

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2019/11/29/v3.0.1-docker-health-check-is-now...-healthy./index.html b/docs/blog/2019/11/29/v3.0.1-docker-health-check-is-now...-healthy./index.html index 1da62209..236c2753 100644 --- a/docs/blog/2019/11/29/v3.0.1-docker-health-check-is-now...-healthy./index.html +++ b/docs/blog/2019/11/29/v3.0.1-docker-health-check-is-now...-healthy./index.html @@ -308,7 +308,7 @@

v3.0.1: Docker health check is now... healthy.

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2020/07/15/v3.1.0-an-armful-of-heart-beats/index.html b/docs/blog/2020/07/15/v3.1.0-an-armful-of-heart-beats/index.html index 8dd60dfd..7c3fd134 100644 --- a/docs/blog/2020/07/15/v3.1.0-an-armful-of-heart-beats/index.html +++ b/docs/blog/2020/07/15/v3.1.0-an-armful-of-heart-beats/index.html @@ -314,7 +314,7 @@

v3.1.0: An armful of heart beats

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2020/10/21/material-added-to-butler-doc-site/index.html b/docs/blog/2020/10/21/material-added-to-butler-doc-site/index.html index db3f0e41..96321f0c 100644 --- a/docs/blog/2020/10/21/material-added-to-butler-doc-site/index.html +++ b/docs/blog/2020/10/21/material-added-to-butler-doc-site/index.html @@ -314,7 +314,7 @@

Material added to Butler doc site

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2020/10/21/v4.0.0-a-senseops-reboot/index.html b/docs/blog/2020/10/21/v4.0.0-a-senseops-reboot/index.html index 6fa8f7fa..2cdd8771 100644 --- a/docs/blog/2020/10/21/v4.0.0-a-senseops-reboot/index.html +++ b/docs/blog/2020/10/21/v4.0.0-a-senseops-reboot/index.html @@ -324,7 +324,7 @@

v4.0.0: A SenseOps reboot

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2020/10/27/v4.1.0-file-copying--qlik-sense-useful/index.html b/docs/blog/2020/10/27/v4.1.0-file-copying--qlik-sense-useful/index.html index fc28b262..c441c96f 100644 --- a/docs/blog/2020/10/27/v4.1.0-file-copying--qlik-sense-useful/index.html +++ b/docs/blog/2020/10/27/v4.1.0-file-copying--qlik-sense-useful/index.html @@ -311,7 +311,7 @@

v4.1.0: File copying + Qlik Sense = Useful

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2020/10/28/v4.1.1-fixing-broken-start-sense-task-api-endpoint/index.html b/docs/blog/2020/10/28/v4.1.1-fixing-broken-start-sense-task-api-endpoint/index.html index d05b6cb0..e38c112f 100644 --- a/docs/blog/2020/10/28/v4.1.1-fixing-broken-start-sense-task-api-endpoint/index.html +++ b/docs/blog/2020/10/28/v4.1.1-fixing-broken-start-sense-task-api-endpoint/index.html @@ -309,7 +309,7 @@

v4.1.1: Fixing broken start Sense task API endpoint

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2020/10/28/v4.1.2-sense-demo-app-can-now-start-reloads/index.html b/docs/blog/2020/10/28/v4.1.2-sense-demo-app-can-now-start-reloads/index.html index 149f8c3a..0a94d6a3 100644 --- a/docs/blog/2020/10/28/v4.1.2-sense-demo-app-can-now-start-reloads/index.html +++ b/docs/blog/2020/10/28/v4.1.2-sense-demo-app-can-now-start-reloads/index.html @@ -308,7 +308,7 @@

v4.1.2: Sense demo app can now start reloads

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2020/11/07/v4.2.0-failed-reloads-notify-me/index.html b/docs/blog/2020/11/07/v4.2.0-failed-reloads-notify-me/index.html index 745af46c..69836baf 100644 --- a/docs/blog/2020/11/07/v4.2.0-failed-reloads-notify-me/index.html +++ b/docs/blog/2020/11/07/v4.2.0-failed-reloads-notify-me/index.html @@ -320,7 +320,7 @@

v4.2.0: Failed reloads? Notify me!

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2021/02/03/file-operations-examples-and-better-setup-instructions/index.html b/docs/blog/2021/02/03/file-operations-examples-and-better-setup-instructions/index.html index 52e5d828..cda50d5b 100644 --- a/docs/blog/2021/02/03/file-operations-examples-and-better-setup-instructions/index.html +++ b/docs/blog/2021/02/03/file-operations-examples-and-better-setup-instructions/index.html @@ -310,7 +310,7 @@

File operations examples and better setup instructions

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2021/02/03/v4.3.0-bug-fixes-improved-documentation/index.html b/docs/blog/2021/02/03/v4.3.0-bug-fixes-improved-documentation/index.html index 97a13b4a..75c4b966 100644 --- a/docs/blog/2021/02/03/v4.3.0-bug-fixes-improved-documentation/index.html +++ b/docs/blog/2021/02/03/v4.3.0-bug-fixes-improved-documentation/index.html @@ -318,7 +318,7 @@

Great features are usele

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2021/02/24/v5.0.0-reload-alerting-deluxe/index.html b/docs/blog/2021/02/24/v5.0.0-reload-alerting-deluxe/index.html index d9f7ad94..8cc94115 100644 --- a/docs/blog/2021/02/24/v5.0.0-reload-alerting-deluxe/index.html +++ b/docs/blog/2021/02/24/v5.0.0-reload-alerting-deluxe/index.html @@ -329,7 +329,7 @@

Be the first to know

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2021/03/03/v5.1.0-sharing-is-caring/index.html b/docs/blog/2021/03/03/v5.1.0-sharing-is-caring/index.html index a1722915..a394429c 100644 --- a/docs/blog/2021/03/03/v5.1.0-sharing-is-caring/index.html +++ b/docs/blog/2021/03/03/v5.1.0-sharing-is-caring/index.html @@ -345,7 +345,7 @@

Go get it!

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2021/04/12/v5.3.0-key-value-refinement/index.html b/docs/blog/2021/04/12/v5.3.0-key-value-refinement/index.html index 74658ad1..423f4673 100644 --- a/docs/blog/2021/04/12/v5.3.0-key-value-refinement/index.html +++ b/docs/blog/2021/04/12/v5.3.0-key-value-refinement/index.html @@ -320,7 +320,7 @@

Bug fixes

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/2023/04/14/butler-blog-moved-to-ptarmiganlabs.com/index.html b/docs/blog/2023/04/14/butler-blog-moved-to-ptarmiganlabs.com/index.html index a2ff3ce9..2cde9101 100644 --- a/docs/blog/2023/04/14/butler-blog-moved-to-ptarmiganlabs.com/index.html +++ b/docs/blog/2023/04/14/butler-blog-moved-to-ptarmiganlabs.com/index.html @@ -307,7 +307,7 @@

Butler blog moved to ptarmiganlabs.com

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/_print/index.html b/docs/blog/_print/index.html index e3498f99..7ec2bc32 100644 --- a/docs/blog/_print/index.html +++ b/docs/blog/_print/index.html @@ -1113,7 +1113,7 @@

v3.0.0: Enable some REST API endpoi

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/index.html b/docs/blog/index.html index 93d57c26..51286818 100644 --- a/docs/blog/index.html +++ b/docs/blog/index.html @@ -654,7 +654,7 @@
- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/news/_print/index.html b/docs/blog/news/_print/index.html index ad7b5bee..07f4d6d0 100644 --- a/docs/blog/news/_print/index.html +++ b/docs/blog/news/_print/index.html @@ -392,7 +392,7 @@

New documentation site for Butler
- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/news/index.html b/docs/blog/news/index.html index b310e748..38d5e71b 100644 --- a/docs/blog/news/index.html +++ b/docs/blog/news/index.html @@ -441,7 +441,7 @@
- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/page/2/index.html b/docs/blog/page/2/index.html index 839e2980..d23a6392 100644 --- a/docs/blog/page/2/index.html +++ b/docs/blog/page/2/index.html @@ -556,7 +556,7 @@
- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/releases/_print/index.html b/docs/blog/releases/_print/index.html index 8d7120bf..7d554f62 100644 --- a/docs/blog/releases/_print/index.html +++ b/docs/blog/releases/_print/index.html @@ -806,7 +806,7 @@

v3.0.0: Enable some REST API endpoi

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/releases/index.html b/docs/blog/releases/index.html index 4802a294..71f193dc 100644 --- a/docs/blog/releases/index.html +++ b/docs/blog/releases/index.html @@ -656,7 +656,7 @@
v4.0.
- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/blog/releases/page/2/index.html b/docs/blog/releases/page/2/index.html index 34f86637..6af2a41e 100644 --- a/docs/blog/releases/page/2/index.html +++ b/docs/blog/releases/page/2/index.html @@ -410,7 +410,7 @@
- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/community/_print/index.html b/docs/community/_print/index.html index 7c2be19b..470656ed 100644 --- a/docs/community/_print/index.html +++ b/docs/community/_print/index.html @@ -227,7 +227,7 @@

Develop and Contribute

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/community/index.html b/docs/community/index.html index 70a9a91e..84382f6e 100644 --- a/docs/community/index.html +++ b/docs/community/index.html @@ -227,7 +227,7 @@

Develop and Contribute

- © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

About

diff --git a/docs/docs/_print/index.html b/docs/docs/_print/index.html index 22ad1592..a3db12ce 100644 --- a/docs/docs/_print/index.html +++ b/docs/docs/_print/index.html @@ -1626,6 +1626,25 @@

Documentation

+ + + + + + +
  • 4.9: When things don't work as expected
  • + + + +
      + + + + + + + +
    @@ -11565,6 +11584,109 @@

    4.8 - Run Butler as a Windows servi + + + + + +
    + +

    4.9 - When things don't work as expected

    +
    Tips and tricks for troubleshooting Butler.
    +

    Butler is a complex piece of software, and it is not uncommon to run into issues when setting up and configuring Butler.
    +In the vast majority of cases, the issues are caused by misconfiguration, and not by bugs in the tool itself.

    +

    This page contains some tips and tricks that can be useful when troubleshooting a Butler instance.

    +

    General things to check

    +

    Is Butler running?

    +

    The first thing to check is if Butler is running at all.

    +

    If Butler is running as a Windows service, check the Windows Services applet to see if the service is running.

    +

    If Butler is running as a Docker container, check the Docker container status with the docker ps command.

    +

    Logs

    +

    Make sure logging to file is enabled in the Butler configuration file.
    +Take note of the log file location.

    +

    Then check the log files for errors and warnings.

    +

    In theory errors and warnings can occur as part of normal operation, but that should be rate.
    +If there are errors or warnings during startup, or if there are a lot of errors and warnings, then there is most likely a problem.

    +

    You can also try increasing the log level to verbose or even debug to get more information about what’s happening, and where in Butler the problem is occurring.

    +

    Logging level is configured in the Butler configuration file or via the --loglevel command line parameter (which takes precedence over the configuration file).

    +

    Feature specific issues

    +

    Failed reload alerts not working

    +

    Butler offers quite comprehensive support for dealing with failed or aborted reloads tasks.
    +As such there are a number of things that can go wrong and settings that can be misconfigured.

    +

    When configured correctly, Butler’s logs can look like below.
    +In this example Butler has received a reload task failure event from Qlik Sense, and is now sending out notifications to the following channels:

    +
      +
    • Script log archive (all failed reload logs are archived to a folder on disk)
    • +
    • InfluxDB (from where the reload failure can be visualized in a Grafana dashboard)
    • +
    • Slack
    • +
    • Teams
    • +
    • Outgoing webhook
    • +
    • Email
    • +
    +
    2024-01-10T05:47:52.992Z info: SCRIPTLOG STORE: Writing failed task script log: C:\tools\butler\config\scriptlog\2024-01-10\2024-01-10_06-47-52_appId=8f1d1ecf-97a6-4eb5-8f47-f9156300b854_taskId=22b106a8-e7ed-4466-b700-014f060bef16.log
    +2024-01-10T05:47:52.994Z info: INFLUXDB RELOAD TASK FAILED: Sending reload task notification to InfluxDB
    +2024-01-10T05:47:53.008Z info: SLACK RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.017Z info: TEAMS RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.021Z info: WEBHOOK OUT RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.300Z info: EMAIL RELOAD TASK FAILED ALERT: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)", Recipient: "joe@company.com"
    +
    +

    +

    Tip

    Rate limiting is defined in the Butler configuration file.
    +If the rate limiting condition is met, this will be shown as “Rate limiting check passed for failed task notification” in the logs.

    +

    Things to check:

    +
      +
    • Is Butler receiving the reload task events from Qlik Sense? +
        +
      • Check the Butler log files. +When Butler receives a reload task event from Qlik Sense, it will check if rate limiting conditions are met, and also log a message about that. +If there are no such messages: +
          +
        • Butler has not received the event from Qlik Sense.
        • +
        • Check the XML appender files deployed to the Qlik Sense servers. Make sure they send UDP events to the host and port where Butler is listening.
        • +
        • Try pinging the host where Butler is running, from the Qlik Sense server (ping <butler host>). If the ping fails, there is probably a network issue.
        • +
        • Try doing a telnet to the UDP port where Butler is listening from the Qlik Sense server (telnet <butler host> <butler port>). If the telnet fails, there is for sure a network issue.
        • +
        • Make sure reload failure events are enabled in the Butler configuration file.
        • +
        +
      • +
      +
    • +
    • Are reload failure events received from some Sense nodes, but not others? +
        +
      • Check the XML appenders on the nodes where the events are not received.
      • +
      • Check the network connectivity between the nodes and the Butler host.
      • +
      • The XML appender files can be identical on all nodes.
      • +
      +
    • +
    • Are some reload failure events forwarded to destinations, but not others? +
        +
      • Check the Butler log files.
      • +
      • Is rate limiting enabled? If so, check the rate limiting settings in the Butler configuration file.
      • +
      • If events arrive more frequently than the rate limiting settings allow, Butler will not forward all events. +A failed rate limiting check will result in a log warning:
        +Rate limiting failed. Not sending reload notification email for task ...
      • +
      +
    • +
    + +
    + + + + + + + + + + + + + + + + + + @@ -16770,7 +16892,7 @@

    Telemetry data

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/_print/index.html b/docs/docs/about/_print/index.html index 56060acc..74785e40 100644 --- a/docs/docs/about/_print/index.html +++ b/docs/docs/about/_print/index.html @@ -879,7 +879,7 @@

    Field level description of te

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/butler-family/index.html b/docs/docs/about/butler-family/index.html index 32caa1b6..2dc74b37 100644 --- a/docs/docs/about/butler-family/index.html +++ b/docs/docs/about/butler-family/index.html @@ -310,6 +310,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -587,7 +589,7 @@

    Butler Icon Uploader

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/butler/index.html b/docs/docs/about/butler/index.html index 603306ec..1e5b279b 100644 --- a/docs/docs/about/butler/index.html +++ b/docs/docs/about/butler/index.html @@ -310,6 +310,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -529,7 +531,7 @@

    Butler

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/contributing/index.html b/docs/docs/about/contributing/index.html index 48675725..6f528547 100644 --- a/docs/docs/about/contributing/index.html +++ b/docs/docs/about/contributing/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -551,7 +553,7 @@

    Security/Disclosure

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/index.html b/docs/docs/about/index.html index 2e406fec..6e42976d 100644 --- a/docs/docs/about/index.html +++ b/docs/docs/about/index.html @@ -324,6 +324,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -591,7 +593,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/telemetry/index.html b/docs/docs/about/telemetry/index.html index 8270484a..677cc7a1 100644 --- a/docs/docs/about/telemetry/index.html +++ b/docs/docs/about/telemetry/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -762,7 +764,7 @@

    Field level description of te

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/use-cases/_print/index.html b/docs/docs/about/use-cases/_print/index.html index 4cbaec4e..ee8bab36 100644 --- a/docs/docs/about/use-cases/_print/index.html +++ b/docs/docs/about/use-cases/_print/index.html @@ -359,7 +359,7 @@

    Tip: Butler SOS

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/use-cases/index.html b/docs/docs/about/use-cases/index.html index 28c61d0e..c2b1946a 100644 --- a/docs/docs/about/use-cases/index.html +++ b/docs/docs/about/use-cases/index.html @@ -307,6 +307,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -675,7 +677,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/use-cases/retired/index.html b/docs/docs/about/use-cases/retired/index.html index a287813e..d99530c4 100644 --- a/docs/docs/about/use-cases/retired/index.html +++ b/docs/docs/about/use-cases/retired/index.html @@ -310,6 +310,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -552,7 +554,7 @@

    Tip: Butler SOS

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/about/versioning/index.html b/docs/docs/about/versioning/index.html index d502a5ad..8bd01708 100644 --- a/docs/docs/about/versioning/index.html +++ b/docs/docs/about/versioning/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -543,7 +545,7 @@

    Documentation updates

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/_print/index.html b/docs/docs/concepts/_print/index.html index 9d112f46..000a2b5f 100644 --- a/docs/docs/concepts/_print/index.html +++ b/docs/docs/concepts/_print/index.html @@ -1886,7 +1886,7 @@

    Deprecated feature

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/_print/index.html b/docs/docs/concepts/failed-reloads/_print/index.html index 7f4a7d59..33c9b0f1 100644 --- a/docs/docs/concepts/failed-reloads/_print/index.html +++ b/docs/docs/concepts/failed-reloads/_print/index.html @@ -523,7 +523,7 @@

    Reload script logs

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/alert-emails/_print/index.html b/docs/docs/concepts/failed-reloads/alert-emails/_print/index.html index bdba7a0b..72d0b747 100644 --- a/docs/docs/concepts/failed-reloads/alert-emails/_print/index.html +++ b/docs/docs/concepts/failed-reloads/alert-emails/_print/index.html @@ -331,7 +331,7 @@

    Seeing is believing

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/alert-emails/index.html b/docs/docs/concepts/failed-reloads/alert-emails/index.html index 0072b7d1..e299e135 100644 --- a/docs/docs/concepts/failed-reloads/alert-emails/index.html +++ b/docs/docs/concepts/failed-reloads/alert-emails/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -683,7 +685,7 @@

    Seeing is believing

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/alerts-slack-teams/_print/index.html b/docs/docs/concepts/failed-reloads/alerts-slack-teams/_print/index.html index 27c72e07..524787be 100644 --- a/docs/docs/concepts/failed-reloads/alerts-slack-teams/_print/index.html +++ b/docs/docs/concepts/failed-reloads/alerts-slack-teams/_print/index.html @@ -231,7 +231,7 @@

    Seeing is believing

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/alerts-slack-teams/index.html b/docs/docs/concepts/failed-reloads/alerts-slack-teams/index.html index da34f661..3446c464 100644 --- a/docs/docs/concepts/failed-reloads/alerts-slack-teams/index.html +++ b/docs/docs/concepts/failed-reloads/alerts-slack-teams/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -575,7 +577,7 @@

    Seeing is believing

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/failed-logs-storage/_print/index.html b/docs/docs/concepts/failed-reloads/failed-logs-storage/_print/index.html index 7bcb32db..7cee86f9 100644 --- a/docs/docs/concepts/failed-reloads/failed-logs-storage/_print/index.html +++ b/docs/docs/concepts/failed-reloads/failed-logs-storage/_print/index.html @@ -221,7 +221,7 @@

    Reload script logs

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/failed-logs-storage/index.html b/docs/docs/concepts/failed-reloads/failed-logs-storage/index.html index c064f4ad..b9a0cfd7 100644 --- a/docs/docs/concepts/failed-reloads/failed-logs-storage/index.html +++ b/docs/docs/concepts/failed-reloads/failed-logs-storage/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -557,7 +559,7 @@

    Reload script logs

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/failed-reloads/index.html b/docs/docs/concepts/failed-reloads/index.html index 7ee915e9..43714cf7 100644 --- a/docs/docs/concepts/failed-reloads/index.html +++ b/docs/docs/concepts/failed-reloads/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -554,7 +556,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/file-system-access/_print/index.html b/docs/docs/concepts/file-system-access/_print/index.html index c36e79e1..5412282e 100644 --- a/docs/docs/concepts/file-system-access/_print/index.html +++ b/docs/docs/concepts/file-system-access/_print/index.html @@ -221,7 +221,7 @@

    Convenience subs

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/file-system-access/index.html b/docs/docs/concepts/file-system-access/index.html index be076cc3..909a07f6 100644 --- a/docs/docs/concepts/file-system-access/index.html +++ b/docs/docs/concepts/file-system-access/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -556,7 +558,7 @@

    Convenience subs

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/incident-mgmt-tools/_print/index.html b/docs/docs/concepts/incident-mgmt-tools/_print/index.html index 514b529b..ff2deaec 100644 --- a/docs/docs/concepts/incident-mgmt-tools/_print/index.html +++ b/docs/docs/concepts/incident-mgmt-tools/_print/index.html @@ -563,7 +563,7 @@

    Example: Qlik Sense and Signl4

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/incident-mgmt-tools/index.html b/docs/docs/concepts/incident-mgmt-tools/index.html index a8b4b5d1..a7cc3f89 100644 --- a/docs/docs/concepts/incident-mgmt-tools/index.html +++ b/docs/docs/concepts/incident-mgmt-tools/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -546,7 +548,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/incident-mgmt-tools/new-relic/_print/index.html b/docs/docs/concepts/incident-mgmt-tools/new-relic/_print/index.html index 414c487e..3e17b2e2 100644 --- a/docs/docs/concepts/incident-mgmt-tools/new-relic/_print/index.html +++ b/docs/docs/concepts/incident-mgmt-tools/new-relic/_print/index.html @@ -349,7 +349,7 @@

    New Relic screen shots

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/incident-mgmt-tools/new-relic/index.html b/docs/docs/concepts/incident-mgmt-tools/new-relic/index.html index 05d7b529..fc72aef7 100644 --- a/docs/docs/concepts/incident-mgmt-tools/new-relic/index.html +++ b/docs/docs/concepts/incident-mgmt-tools/new-relic/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -685,7 +687,7 @@

    New Relic screen shots

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/incident-mgmt-tools/signl4/_print/index.html b/docs/docs/concepts/incident-mgmt-tools/signl4/_print/index.html index 612ccfaa..ddf92754 100644 --- a/docs/docs/concepts/incident-mgmt-tools/signl4/_print/index.html +++ b/docs/docs/concepts/incident-mgmt-tools/signl4/_print/index.html @@ -320,7 +320,7 @@

    Example: Qlik Sense and Signl4

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/incident-mgmt-tools/signl4/index.html b/docs/docs/concepts/incident-mgmt-tools/signl4/index.html index 9e7ad2dd..c36688b3 100644 --- a/docs/docs/concepts/incident-mgmt-tools/signl4/index.html +++ b/docs/docs/concepts/incident-mgmt-tools/signl4/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -656,7 +658,7 @@

    Example: Qlik Sense and Signl4

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/index.html b/docs/docs/concepts/index.html index 072eb78d..b751bb2b 100644 --- a/docs/docs/concepts/index.html +++ b/docs/docs/concepts/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -616,7 +618,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/key-value/_print/index.html b/docs/docs/concepts/key-value/_print/index.html index 8299d2ed..419b4c58 100644 --- a/docs/docs/concepts/key-value/_print/index.html +++ b/docs/docs/concepts/key-value/_print/index.html @@ -262,7 +262,7 @@

    Persistence of key-value data

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/key-value/index.html b/docs/docs/concepts/key-value/index.html index 6d712ab4..7826a88a 100644 --- a/docs/docs/concepts/key-value/index.html +++ b/docs/docs/concepts/key-value/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -597,7 +599,7 @@

    Persistence of key-value data

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/mqtt/_print/index.html b/docs/docs/concepts/mqtt/_print/index.html index 095cff6f..5a6a8bb7 100644 --- a/docs/docs/concepts/mqtt/_print/index.html +++ b/docs/docs/concepts/mqtt/_print/index.html @@ -238,7 +238,7 @@

    Incoming MQTT - subscribe

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/mqtt/index.html b/docs/docs/concepts/mqtt/index.html index 08d2a939..1b0a7121 100644 --- a/docs/docs/concepts/mqtt/index.html +++ b/docs/docs/concepts/mqtt/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -574,7 +576,7 @@

    Incoming MQTT - subscribe

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/real-time-metrics/_print/index.html b/docs/docs/concepts/real-time-metrics/_print/index.html index dcd55169..8e9328f7 100644 --- a/docs/docs/concepts/real-time-metrics/_print/index.html +++ b/docs/docs/concepts/real-time-metrics/_print/index.html @@ -216,7 +216,7 @@

    Deprecated feature

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/real-time-metrics/index.html b/docs/docs/concepts/real-time-metrics/index.html index da6acdb6..d6cd123a 100644 --- a/docs/docs/concepts/real-time-metrics/index.html +++ b/docs/docs/concepts/real-time-metrics/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -542,7 +544,7 @@

    Deprecated feature

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/scheduler/_print/index.html b/docs/docs/concepts/scheduler/_print/index.html index c1d8facb..fc3fd8c6 100644 --- a/docs/docs/concepts/scheduler/_print/index.html +++ b/docs/docs/concepts/scheduler/_print/index.html @@ -242,7 +242,7 @@

    The Butler scheduler

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/scheduler/index.html b/docs/docs/concepts/scheduler/index.html index ac6fe02a..212dee66 100644 --- a/docs/docs/concepts/scheduler/index.html +++ b/docs/docs/concepts/scheduler/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -577,7 +579,7 @@

    The Butler scheduler

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/start-sense-tasks/_print/index.html b/docs/docs/concepts/start-sense-tasks/_print/index.html index 916f1f54..138a46ba 100644 --- a/docs/docs/concepts/start-sense-tasks/_print/index.html +++ b/docs/docs/concepts/start-sense-tasks/_print/index.html @@ -255,7 +255,7 @@

    Start tasks by custom properties

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/start-sense-tasks/index.html b/docs/docs/concepts/start-sense-tasks/index.html index 68b7d9b5..e2b688a6 100644 --- a/docs/docs/concepts/start-sense-tasks/index.html +++ b/docs/docs/concepts/start-sense-tasks/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -595,7 +597,7 @@

    Start tasks by custom properties

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/successful-reloads/_print/index.html b/docs/docs/concepts/successful-reloads/_print/index.html index 9c3f82fd..31d266b9 100644 --- a/docs/docs/concepts/successful-reloads/_print/index.html +++ b/docs/docs/concepts/successful-reloads/_print/index.html @@ -271,7 +271,7 @@

    Config file settings

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/successful-reloads/index.html b/docs/docs/concepts/successful-reloads/index.html index b7bac63a..2a28122b 100644 --- a/docs/docs/concepts/successful-reloads/index.html +++ b/docs/docs/concepts/successful-reloads/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -617,7 +619,7 @@

    Config file settings

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/udp/_print/index.html b/docs/docs/concepts/udp/_print/index.html index 4ae7cf2b..a93ef009 100644 --- a/docs/docs/concepts/udp/_print/index.html +++ b/docs/docs/concepts/udp/_print/index.html @@ -231,7 +231,7 @@

    Testing the failed task UDP server
    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/udp/index.html b/docs/docs/concepts/udp/index.html index b9b5221a..751164c4 100644 --- a/docs/docs/concepts/udp/index.html +++ b/docs/docs/concepts/udp/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -564,7 +566,7 @@

    Testing the failed task UDP server
    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/windows-services/_print/index.html b/docs/docs/concepts/windows-services/_print/index.html index 02a2e392..34063ca6 100644 --- a/docs/docs/concepts/windows-services/_print/index.html +++ b/docs/docs/concepts/windows-services/_print/index.html @@ -360,7 +360,7 @@

    Config file settings

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/concepts/windows-services/index.html b/docs/docs/concepts/windows-services/index.html index 4275ac34..23182d17 100644 --- a/docs/docs/concepts/windows-services/index.html +++ b/docs/docs/concepts/windows-services/index.html @@ -315,6 +315,8 @@

  • Butler as a Windows service +
  • + When things don't work
  • @@ -703,7 +705,7 @@

    Config file settings

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/_print/index.html b/docs/docs/examples/_print/index.html index f342b93e..0dfaca17 100644 --- a/docs/docs/examples/_print/index.html +++ b/docs/docs/examples/_print/index.html @@ -390,6 +390,25 @@

    Examples

    + + + + + + +
  • 9: When things don't work as expected
  • + + + +
      + + + + + + + +
    @@ -2418,6 +2437,109 @@

    8 - Run Butler as a Windows service + + + + + +
    + +

    9 - When things don't work as expected

    +
    Tips and tricks for troubleshooting Butler.
    +

    Butler is a complex piece of software, and it is not uncommon to run into issues when setting up and configuring Butler.
    +In the vast majority of cases, the issues are caused by misconfiguration, and not by bugs in the tool itself.

    +

    This page contains some tips and tricks that can be useful when troubleshooting a Butler instance.

    +

    General things to check

    +

    Is Butler running?

    +

    The first thing to check is if Butler is running at all.

    +

    If Butler is running as a Windows service, check the Windows Services applet to see if the service is running.

    +

    If Butler is running as a Docker container, check the Docker container status with the docker ps command.

    +

    Logs

    +

    Make sure logging to file is enabled in the Butler configuration file.
    +Take note of the log file location.

    +

    Then check the log files for errors and warnings.

    +

    In theory errors and warnings can occur as part of normal operation, but that should be rate.
    +If there are errors or warnings during startup, or if there are a lot of errors and warnings, then there is most likely a problem.

    +

    You can also try increasing the log level to verbose or even debug to get more information about what’s happening, and where in Butler the problem is occurring.

    +

    Logging level is configured in the Butler configuration file or via the --loglevel command line parameter (which takes precedence over the configuration file).

    +

    Feature specific issues

    +

    Failed reload alerts not working

    +

    Butler offers quite comprehensive support for dealing with failed or aborted reloads tasks.
    +As such there are a number of things that can go wrong and settings that can be misconfigured.

    +

    When configured correctly, Butler’s logs can look like below.
    +In this example Butler has received a reload task failure event from Qlik Sense, and is now sending out notifications to the following channels:

    +
      +
    • Script log archive (all failed reload logs are archived to a folder on disk)
    • +
    • InfluxDB (from where the reload failure can be visualized in a Grafana dashboard)
    • +
    • Slack
    • +
    • Teams
    • +
    • Outgoing webhook
    • +
    • Email
    • +
    +
    2024-01-10T05:47:52.992Z info: SCRIPTLOG STORE: Writing failed task script log: C:\tools\butler\config\scriptlog\2024-01-10\2024-01-10_06-47-52_appId=8f1d1ecf-97a6-4eb5-8f47-f9156300b854_taskId=22b106a8-e7ed-4466-b700-014f060bef16.log
    +2024-01-10T05:47:52.994Z info: INFLUXDB RELOAD TASK FAILED: Sending reload task notification to InfluxDB
    +2024-01-10T05:47:53.008Z info: SLACK RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.017Z info: TEAMS RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.021Z info: WEBHOOK OUT RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.300Z info: EMAIL RELOAD TASK FAILED ALERT: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)", Recipient: "joe@company.com"
    +
    +

    +

    Tip

    Rate limiting is defined in the Butler configuration file.
    +If the rate limiting condition is met, this will be shown as “Rate limiting check passed for failed task notification” in the logs.

    +

    Things to check:

    +
      +
    • Is Butler receiving the reload task events from Qlik Sense? +
        +
      • Check the Butler log files. +When Butler receives a reload task event from Qlik Sense, it will check if rate limiting conditions are met, and also log a message about that. +If there are no such messages: +
          +
        • Butler has not received the event from Qlik Sense.
        • +
        • Check the XML appender files deployed to the Qlik Sense servers. Make sure they send UDP events to the host and port where Butler is listening.
        • +
        • Try pinging the host where Butler is running, from the Qlik Sense server (ping <butler host>). If the ping fails, there is probably a network issue.
        • +
        • Try doing a telnet to the UDP port where Butler is listening from the Qlik Sense server (telnet <butler host> <butler port>). If the telnet fails, there is for sure a network issue.
        • +
        • Make sure reload failure events are enabled in the Butler configuration file.
        • +
        +
      • +
      +
    • +
    • Are reload failure events received from some Sense nodes, but not others? +
        +
      • Check the XML appenders on the nodes where the events are not received.
      • +
      • Check the network connectivity between the nodes and the Butler host.
      • +
      • The XML appender files can be identical on all nodes.
      • +
      +
    • +
    • Are some reload failure events forwarded to destinations, but not others? +
        +
      • Check the Butler log files.
      • +
      • Is rate limiting enabled? If so, check the rate limiting settings in the Butler configuration file.
      • +
      • If events arrive more frequently than the rate limiting settings allow, Butler will not forward all events. +A failed rate limiting check will result in a log warning:
        +Rate limiting failed. Not sending reload notification email for task ...
      • +
      +
    • +
    + +
    + + + + + + + + + + + + + + + + + + @@ -2493,7 +2615,7 @@

    8 - Run Butler as a Windows service

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/butler-windows-service/_print/index.html b/docs/docs/examples/butler-windows-service/_print/index.html index 836ff0f1..9e427560 100644 --- a/docs/docs/examples/butler-windows-service/_print/index.html +++ b/docs/docs/examples/butler-windows-service/_print/index.html @@ -203,7 +203,7 @@

    Run Butler as a Windows service

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/butler-windows-service/index.html b/docs/docs/examples/butler-windows-service/index.html index 000e8a1c..a06bed75 100644 --- a/docs/docs/examples/butler-windows-service/index.html +++ b/docs/docs/examples/butler-windows-service/index.html @@ -308,6 +308,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -529,7 +531,7 @@

    Run Butler as a Windows service

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/file-copy-move-delete/_print/index.html b/docs/docs/examples/file-copy-move-delete/_print/index.html index f91a6723..980e686d 100644 --- a/docs/docs/examples/file-copy-move-delete/_print/index.html +++ b/docs/docs/examples/file-copy-move-delete/_print/index.html @@ -404,7 +404,7 @@

    Examples using UNC paths

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/file-copy-move-delete/index.html b/docs/docs/examples/file-copy-move-delete/index.html index 485a6174..33220e5d 100644 --- a/docs/docs/examples/file-copy-move-delete/index.html +++ b/docs/docs/examples/file-copy-move-delete/index.html @@ -319,6 +319,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -745,7 +747,7 @@

    Examples using UNC paths

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/index.html b/docs/docs/examples/index.html index 407e024d..7da0534b 100644 --- a/docs/docs/examples/index.html +++ b/docs/docs/examples/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -522,6 +524,14 @@

  • + +
    +
    + When things don't work as expected +
    +

    Tips and tricks for troubleshooting Butler.

    +
    +

    @@ -605,7 +615,7 @@

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/index.xml b/docs/docs/examples/index.xml index e10d801d..76b9d8a8 100644 --- a/docs/docs/examples/index.xml +++ b/docs/docs/examples/index.xml @@ -873,5 +873,92 @@ Warnings in log for the previous scenario. + + Docs: When things don't work as expected + https://butler.ptarmiganlabs.com/docs/examples/when-things-dont-work/ + Mon, 01 Jan 0001 00:00:00 +0000 + + https://butler.ptarmiganlabs.com/docs/examples/when-things-dont-work/ + + + + <p>Butler is a complex piece of software, and it is not uncommon to run into issues when <a href="https://butler.ptarmiganlabs.com/docs/getting-started/setup/">setting up and configuring</a> Butler.<br> +In the vast majority of cases, the issues are caused by misconfiguration, and not by bugs in the tool itself.</p> +<p>This page contains some tips and tricks that can be useful when troubleshooting a Butler instance.</p> +<h2 id="general-things-to-check">General things to check</h2> +<h3 id="is-butler-running">Is Butler running?</h3> +<p>The first thing to check is if Butler is running at all.</p> +<p>If Butler is running as a Windows service, check the Windows Services applet to see if the service is running.</p> +<p>If Butler is running as a Docker container, check the Docker container status with the <code>docker ps</code> command.</p> +<h3 id="logs">Logs</h3> +<p>Make sure logging to file is enabled in the Butler configuration file.<br> +Take note of the log file location.</p> +<p>Then check the log files for errors and warnings.</p> +<p>In theory errors and warnings can occur as part of normal operation, but that should be rate.<br> +If there are errors or warnings during startup, or if there are a lot of errors and warnings, then there is most likely a problem.</p> +<p>You can also try increasing the log level to <code>verbose</code> or even <code>debug</code> to get more information about what&rsquo;s happening, and where in Butler the problem is occurring.</p> +<p>Logging level is configured in the Butler configuration file or via the <code>--loglevel</code> command line parameter (which takes precedence over the configuration file).</p> +<h2 id="feature-specific-issues">Feature specific issues</h2> +<h3 id="failed-reload-alerts-not-working">Failed reload alerts not working</h3> +<p>Butler offers quite comprehensive support for dealing with failed or aborted reloads tasks.<br> +As such there are a number of things that can go wrong and settings that can be misconfigured.</p> +<p>When configured correctly, Butler&rsquo;s logs can look like below.<br> +In this example Butler has received a reload task failure event from Qlik Sense, and is now sending out notifications to the following channels:</p> +<ul> +<li>Script log archive (all failed reload logs are archived to a folder on disk)</li> +<li>InfluxDB (from where the reload failure can be visualized in a Grafana dashboard)</li> +<li>Slack</li> +<li>Teams</li> +<li>Outgoing webhook</li> +<li>Email</li> +</ul> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>2024-01-10T05:47:52.992Z info: SCRIPTLOG STORE: Writing failed task script log: C:\tools\butler\config\scriptlog\2024-01-10\2024-01-10_06-47-52_appId=8f1d1ecf-97a6-4eb5-8f47-f9156300b854_taskId=22b106a8-e7ed-4466-b700-014f060bef16.log +</span></span><span style="display:flex;"><span>2024-01-10T05:47:52.994Z info: INFLUXDB RELOAD TASK FAILED: Sending reload task notification to InfluxDB +</span></span><span style="display:flex;"><span>2024-01-10T05:47:53.008Z info: SLACK RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: &#34;Reload of Test failing reloads 1 (emojis supported! 🤪)&#34; +</span></span><span style="display:flex;"><span>2024-01-10T05:47:53.017Z info: TEAMS RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: &#34;Reload of Test failing reloads 1 (emojis supported! 🤪)&#34; +</span></span><span style="display:flex;"><span>2024-01-10T05:47:53.021Z info: WEBHOOK OUT RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: &#34;Reload of Test failing reloads 1 (emojis supported! 🤪)&#34; +</span></span><span style="display:flex;"><span>2024-01-10T05:47:53.300Z info: EMAIL RELOAD TASK FAILED ALERT: Rate limiting check passed for failed task notification. Task name: &#34;Reload of Test failing reloads 1 (emojis supported! 🤪)&#34;, Recipient: &#34;joe@company.com&#34; +</span></span></code></pre></div><style type="text/css">.notice{padding:18px;line-height:24px;margin-bottom:24px;border-radius:4px;color:#444;background:#e7f2fa}.notice p:last-child{margin-bottom:0}.notice-title{margin:-18px -18px 12px;padding:4px 18px;border-radius:4px 4px 0 0;font-weight:700;color:#fff;background:#6ab0de}.notice.warning .notice-title{background:rgba(217,83,79,.9)}.notice.warning{background:#fae2e2}.notice.info .notice-title{background:#f0b37e}.notice.info{background:#fff2db}.notice.note .notice-title{background:#6ab0de}.notice.note{background:#e7f2fA}.notice.tip .notice-title{background:rgba(92,184,92,.8)}.notice.tip{background:#e6f9e6}.icon-notice{display:inline-flex;align-self:center;margin-right:8px}.icon-notice img,.icon-notice svg{height:1em;width:1em;fill:currentColor}.icon-notice img,.icon-notice.baseline svg{top:0.125em;position:relative}</style> +<p><svg width="0" height="0" display="none" xmlns="http://www.w3.org/2000/svg"><symbol id="tip-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet"><path d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"/></symbol><symbol id="note-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet"><path d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></symbol><symbol id="warning-notice" viewBox="0 0 576 512" preserveAspectRatio="xMidYMid meet"><path d="M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></symbol><symbol id="info-notice" viewBox="0 0 512 512" preserveAspectRatio="xMidYMid meet"><path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/></symbol></svg><div class="notice tip" ></p> +<p class="first notice-title"><span class="icon-notice baseline"><svg><use href="#tip-notice"></use></svg></span>Tip</p><p>Rate limiting is defined in the Butler configuration file.<br> +If the rate limiting condition is met, this will be shown as &ldquo;Rate limiting check passed for failed task notification&rdquo; in the logs.</p></div> +<p>Things to check:</p> +<ul> +<li>Is Butler receiving the reload task events from Qlik Sense? +<ul> +<li>Check the Butler log files. +When Butler receives a reload task event from Qlik Sense, it will check if rate limiting conditions are met, and also log a message about that. +If there are no such messages: +<ul> +<li>Butler has not received the event from Qlik Sense.</li> +<li>Check the XML appender files deployed to the Qlik Sense servers. Make sure they send UDP events to the host and port where Butler is listening.</li> +<li>Try pinging the host where Butler is running, from the Qlik Sense server (<code>ping &lt;butler host&gt;</code>). If the ping fails, there is probably a network issue.</li> +<li>Try doing a telnet to the UDP port where Butler is listening from the Qlik Sense server (<code>telnet &lt;butler host&gt; &lt;butler port&gt;</code>). If the telnet fails, there is for sure a network issue.</li> +<li>Make sure reload failure events are enabled in the Butler configuration file.</li> +</ul> +</li> +</ul> +</li> +<li>Are reload failure events received from some Sense nodes, but not others? +<ul> +<li>Check the XML appenders on the nodes where the events are not received.</li> +<li>Check the network connectivity between the nodes and the Butler host.</li> +<li>The XML appender files can be identical on all nodes.</li> +</ul> +</li> +<li>Are some reload failure events forwarded to destinations, but not others? +<ul> +<li>Check the Butler log files.</li> +<li>Is rate limiting enabled? If so, check the rate limiting settings in the Butler configuration file.</li> +<li>If events arrive more frequently than the rate limiting settings allow, Butler will not forward all events. +A failed rate limiting check will result in a log warning:<br> +<code>Rate limiting failed. Not sending reload notification email for task ...</code></li> +</ul> +</li> +</ul> + + + + diff --git a/docs/docs/examples/monitoring-butler/_print/index.html b/docs/docs/examples/monitoring-butler/_print/index.html index 137cb1b2..76e68a03 100644 --- a/docs/docs/examples/monitoring-butler/_print/index.html +++ b/docs/docs/examples/monitoring-butler/_print/index.html @@ -300,7 +300,7 @@

    Butler + New Relic = 😎🌟

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/monitoring-butler/index.html b/docs/docs/examples/monitoring-butler/index.html index 740191ad..e18821e6 100644 --- a/docs/docs/examples/monitoring-butler/index.html +++ b/docs/docs/examples/monitoring-butler/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -637,7 +639,7 @@

    Butler + New Relic = 😎🌟

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/openapi-docs/_print/index.html b/docs/docs/examples/openapi-docs/_print/index.html index d2dc6706..dd9a839c 100644 --- a/docs/docs/examples/openapi-docs/_print/index.html +++ b/docs/docs/examples/openapi-docs/_print/index.html @@ -289,7 +289,7 @@

    List available Sense

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/openapi-docs/index.html b/docs/docs/examples/openapi-docs/index.html index dcf047cd..3ee52b4b 100644 --- a/docs/docs/examples/openapi-docs/index.html +++ b/docs/docs/examples/openapi-docs/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -630,7 +632,7 @@

    List available Sense

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/reload-chaining/_print/index.html b/docs/docs/examples/reload-chaining/_print/index.html index 2b7358dc..b396f710 100644 --- a/docs/docs/examples/reload-chaining/_print/index.html +++ b/docs/docs/examples/reload-chaining/_print/index.html @@ -426,7 +426,7 @@

    Script section 1: Init

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/reload-chaining/index.html b/docs/docs/examples/reload-chaining/index.html index 6b4cbf5a..69565f90 100644 --- a/docs/docs/examples/reload-chaining/index.html +++ b/docs/docs/examples/reload-chaining/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -770,7 +772,7 @@

    Script section 1: Init

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/scheduling/_print/index.html b/docs/docs/examples/scheduling/_print/index.html index 1ea12b58..575336b8 100644 --- a/docs/docs/examples/scheduling/_print/index.html +++ b/docs/docs/examples/scheduling/_print/index.html @@ -362,7 +362,7 @@

    Starting and stopping a schedule

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/scheduling/index.html b/docs/docs/examples/scheduling/index.html index 90137650..37c3558b 100644 --- a/docs/docs/examples/scheduling/index.html +++ b/docs/docs/examples/scheduling/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -698,7 +700,7 @@

    Starting and stopping a schedule

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/_print/index.html b/docs/docs/examples/sense-demo-apps/_print/index.html index b310fc63..476f8711 100644 --- a/docs/docs/examples/sense-demo-apps/_print/index.html +++ b/docs/docs/examples/sense-demo-apps/_print/index.html @@ -464,7 +464,7 @@

    Seeing is believing

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/_print/index.html b/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/_print/index.html index a057b331..83807968 100644 --- a/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/_print/index.html +++ b/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/_print/index.html @@ -217,7 +217,7 @@

    Calling the Butler A

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/index.html b/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/index.html index 20cf9d22..d75eabf0 100644 --- a/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/index.html +++ b/docs/docs/examples/sense-demo-apps/butler-5.0-demo-app/index.html @@ -319,6 +319,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -553,7 +555,7 @@

    Calling the Butler A

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/index.html b/docs/docs/examples/sense-demo-apps/index.html index ab25d92a..56c51031 100644 --- a/docs/docs/examples/sense-demo-apps/index.html +++ b/docs/docs/examples/sense-demo-apps/index.html @@ -319,6 +319,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -577,7 +579,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/partial-loads/_print/index.html b/docs/docs/examples/sense-demo-apps/partial-loads/_print/index.html index eaf66cd2..01780cab 100644 --- a/docs/docs/examples/sense-demo-apps/partial-loads/_print/index.html +++ b/docs/docs/examples/sense-demo-apps/partial-loads/_print/index.html @@ -232,7 +232,7 @@

    Video showing how to use demo apps
    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/partial-loads/index.html b/docs/docs/examples/sense-demo-apps/partial-loads/index.html index 0b244a43..4f89fdb5 100644 --- a/docs/docs/examples/sense-demo-apps/partial-loads/index.html +++ b/docs/docs/examples/sense-demo-apps/partial-loads/index.html @@ -323,6 +323,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -570,7 +572,7 @@

    Video showing how to use demo apps
    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/post-to-slack/_print/index.html b/docs/docs/examples/sense-demo-apps/post-to-slack/_print/index.html index 7e2cda1e..876b2fe1 100644 --- a/docs/docs/examples/sense-demo-apps/post-to-slack/_print/index.html +++ b/docs/docs/examples/sense-demo-apps/post-to-slack/_print/index.html @@ -214,7 +214,7 @@

    Load script

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/post-to-slack/index.html b/docs/docs/examples/sense-demo-apps/post-to-slack/index.html index fd73bde3..f9503f1a 100644 --- a/docs/docs/examples/sense-demo-apps/post-to-slack/index.html +++ b/docs/docs/examples/sense-demo-apps/post-to-slack/index.html @@ -311,6 +311,8 @@

  • Butler as a Windows service +
  • + When things don't work
  • @@ -550,7 +552,7 @@

    Load script

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/publish-to-mqtt/_print/index.html b/docs/docs/examples/sense-demo-apps/publish-to-mqtt/_print/index.html index da5a072a..2d5a7920 100644 --- a/docs/docs/examples/sense-demo-apps/publish-to-mqtt/_print/index.html +++ b/docs/docs/examples/sense-demo-apps/publish-to-mqtt/_print/index.html @@ -225,7 +225,7 @@

    Seeing is believing

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/sense-demo-apps/publish-to-mqtt/index.html b/docs/docs/examples/sense-demo-apps/publish-to-mqtt/index.html index 3bf8a9de..7b11d3ae 100644 --- a/docs/docs/examples/sense-demo-apps/publish-to-mqtt/index.html +++ b/docs/docs/examples/sense-demo-apps/publish-to-mqtt/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -562,7 +564,7 @@

    Seeing is believing

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/_print/index.html b/docs/docs/examples/start-task/_print/index.html index e1842b23..f0e74d89 100644 --- a/docs/docs/examples/start-task/_print/index.html +++ b/docs/docs/examples/start-task/_print/index.html @@ -1084,7 +1084,7 @@

    Seeing is believing

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/index.html b/docs/docs/examples/start-task/index.html index d3256204..28687e62 100644 --- a/docs/docs/examples/start-task/index.html +++ b/docs/docs/examples/start-task/index.html @@ -307,6 +307,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -550,7 +552,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/start-task-from-mqtt/_print/index.html b/docs/docs/examples/start-task/start-task-from-mqtt/_print/index.html index 7a9bc916..924861e7 100644 --- a/docs/docs/examples/start-task/start-task-from-mqtt/_print/index.html +++ b/docs/docs/examples/start-task/start-task-from-mqtt/_print/index.html @@ -233,7 +233,7 @@

    Seeing is believing

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/start-task-from-mqtt/index.html b/docs/docs/examples/start-task/start-task-from-mqtt/index.html index c14e6fb3..15fa14cb 100644 --- a/docs/docs/examples/start-task/start-task-from-mqtt/index.html +++ b/docs/docs/examples/start-task/start-task-from-mqtt/index.html @@ -308,6 +308,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -571,7 +573,7 @@

    Seeing is believing

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/start-task-from-rest/_print/index.html b/docs/docs/examples/start-task/start-task-from-rest/_print/index.html index 6ae1644e..a935649e 100644 --- a/docs/docs/examples/start-task/start-task-from-rest/_print/index.html +++ b/docs/docs/examples/start-task/start-task-from-rest/_print/index.html @@ -770,7 +770,7 @@

    Sending parameters to apps

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/start-task-from-rest/index.html b/docs/docs/examples/start-task/start-task-from-rest/index.html index ca7a5de5..de31db61 100644 --- a/docs/docs/examples/start-task/start-task-from-rest/index.html +++ b/docs/docs/examples/start-task/start-task-from-rest/index.html @@ -308,6 +308,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -1121,7 +1123,7 @@

    Sending parameters to apps

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/start-task-from-script/_print/index.html b/docs/docs/examples/start-task/start-task-from-script/_print/index.html index 09ac3813..3fa08c51 100644 --- a/docs/docs/examples/start-task/start-task-from-script/_print/index.html +++ b/docs/docs/examples/start-task/start-task-from-script/_print/index.html @@ -337,7 +337,7 @@

    Example 1

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/start-task/start-task-from-script/index.html b/docs/docs/examples/start-task/start-task-from-script/index.html index b6584df6..f83fb4ae 100644 --- a/docs/docs/examples/start-task/start-task-from-script/index.html +++ b/docs/docs/examples/start-task/start-task-from-script/index.html @@ -309,6 +309,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -688,7 +690,7 @@

    Example 1

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/examples/when-things-dont-work/_print/index.html b/docs/docs/examples/when-things-dont-work/_print/index.html new file mode 100644 index 00000000..e6d9ee56 --- /dev/null +++ b/docs/docs/examples/when-things-dont-work/_print/index.html @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + +When things don't work as expected | Butler + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +
    +
    + + + + + +
    +
    +

    +This is the multi-page printable view of this section. +Click here to print. +

    +Return to the regular view of this page. +

    +
    + + + +

    When things don't work as expected

    +
    Tips and tricks for troubleshooting Butler.
    + + + + +
      + + + + + + + + +
    + + +
    +

    Butler is a complex piece of software, and it is not uncommon to run into issues when setting up and configuring Butler.
    +In the vast majority of cases, the issues are caused by misconfiguration, and not by bugs in the tool itself.

    +

    This page contains some tips and tricks that can be useful when troubleshooting a Butler instance.

    +

    General things to check

    +

    Is Butler running?

    +

    The first thing to check is if Butler is running at all.

    +

    If Butler is running as a Windows service, check the Windows Services applet to see if the service is running.

    +

    If Butler is running as a Docker container, check the Docker container status with the docker ps command.

    +

    Logs

    +

    Make sure logging to file is enabled in the Butler configuration file.
    +Take note of the log file location.

    +

    Then check the log files for errors and warnings.

    +

    In theory errors and warnings can occur as part of normal operation, but that should be rate.
    +If there are errors or warnings during startup, or if there are a lot of errors and warnings, then there is most likely a problem.

    +

    You can also try increasing the log level to verbose or even debug to get more information about what’s happening, and where in Butler the problem is occurring.

    +

    Logging level is configured in the Butler configuration file or via the --loglevel command line parameter (which takes precedence over the configuration file).

    +

    Feature specific issues

    +

    Failed reload alerts not working

    +

    Butler offers quite comprehensive support for dealing with failed or aborted reloads tasks.
    +As such there are a number of things that can go wrong and settings that can be misconfigured.

    +

    When configured correctly, Butler’s logs can look like below.
    +In this example Butler has received a reload task failure event from Qlik Sense, and is now sending out notifications to the following channels:

    +
      +
    • Script log archive (all failed reload logs are archived to a folder on disk)
    • +
    • InfluxDB (from where the reload failure can be visualized in a Grafana dashboard)
    • +
    • Slack
    • +
    • Teams
    • +
    • Outgoing webhook
    • +
    • Email
    • +
    +
    2024-01-10T05:47:52.992Z info: SCRIPTLOG STORE: Writing failed task script log: C:\tools\butler\config\scriptlog\2024-01-10\2024-01-10_06-47-52_appId=8f1d1ecf-97a6-4eb5-8f47-f9156300b854_taskId=22b106a8-e7ed-4466-b700-014f060bef16.log
    +2024-01-10T05:47:52.994Z info: INFLUXDB RELOAD TASK FAILED: Sending reload task notification to InfluxDB
    +2024-01-10T05:47:53.008Z info: SLACK RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.017Z info: TEAMS RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.021Z info: WEBHOOK OUT RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.300Z info: EMAIL RELOAD TASK FAILED ALERT: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)", Recipient: "joe@company.com"
    +
    +

    +

    Tip

    Rate limiting is defined in the Butler configuration file.
    +If the rate limiting condition is met, this will be shown as “Rate limiting check passed for failed task notification” in the logs.

    +

    Things to check:

    +
      +
    • Is Butler receiving the reload task events from Qlik Sense? +
        +
      • Check the Butler log files. +When Butler receives a reload task event from Qlik Sense, it will check if rate limiting conditions are met, and also log a message about that. +If there are no such messages: +
          +
        • Butler has not received the event from Qlik Sense.
        • +
        • Check the XML appender files deployed to the Qlik Sense servers. Make sure they send UDP events to the host and port where Butler is listening.
        • +
        • Try pinging the host where Butler is running, from the Qlik Sense server (ping <butler host>). If the ping fails, there is probably a network issue.
        • +
        • Try doing a telnet to the UDP port where Butler is listening from the Qlik Sense server (telnet <butler host> <butler port>). If the telnet fails, there is for sure a network issue.
        • +
        • Make sure reload failure events are enabled in the Butler configuration file.
        • +
        +
      • +
      +
    • +
    • Are reload failure events received from some Sense nodes, but not others? +
        +
      • Check the XML appenders on the nodes where the events are not received.
      • +
      • Check the network connectivity between the nodes and the Butler host.
      • +
      • The XML appender files can be identical on all nodes.
      • +
      +
    • +
    • Are some reload failure events forwarded to destinations, but not others? +
        +
      • Check the Butler log files.
      • +
      • Is rate limiting enabled? If so, check the rate limiting settings in the Butler configuration file.
      • +
      • If events arrive more frequently than the rate limiting settings allow, Butler will not forward all events. +A failed rate limiting check will result in a log warning:
        +Rate limiting failed. Not sending reload notification email for task ...
      • +
      +
    • +
    + +
    +
    + + + + + + + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    + + + + + + + +
    +
    + + + + + + + +
    +
    + © 2024 Ptarmigan Labs AB All Rights Reserved + + +

    About

    + +
    +
    +
    +
    + + +
    + + + + + + diff --git a/docs/docs/examples/when-things-dont-work/index.html b/docs/docs/examples/when-things-dont-work/index.html new file mode 100644 index 00000000..ab9d410b --- /dev/null +++ b/docs/docs/examples/when-things-dont-work/index.html @@ -0,0 +1,638 @@ + + + + + + + + + + + + + + + + + + + + + + + + +When things don't work as expected | Butler + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +
    + + +
    + + + + + +
    +

    When things don't work as expected

    +
    Tips and tricks for troubleshooting Butler.
    + +

    Butler is a complex piece of software, and it is not uncommon to run into issues when setting up and configuring Butler.
    +In the vast majority of cases, the issues are caused by misconfiguration, and not by bugs in the tool itself.

    +

    This page contains some tips and tricks that can be useful when troubleshooting a Butler instance.

    +

    General things to check

    +

    Is Butler running?

    +

    The first thing to check is if Butler is running at all.

    +

    If Butler is running as a Windows service, check the Windows Services applet to see if the service is running.

    +

    If Butler is running as a Docker container, check the Docker container status with the docker ps command.

    +

    Logs

    +

    Make sure logging to file is enabled in the Butler configuration file.
    +Take note of the log file location.

    +

    Then check the log files for errors and warnings.

    +

    In theory errors and warnings can occur as part of normal operation, but that should be rate.
    +If there are errors or warnings during startup, or if there are a lot of errors and warnings, then there is most likely a problem.

    +

    You can also try increasing the log level to verbose or even debug to get more information about what’s happening, and where in Butler the problem is occurring.

    +

    Logging level is configured in the Butler configuration file or via the --loglevel command line parameter (which takes precedence over the configuration file).

    +

    Feature specific issues

    +

    Failed reload alerts not working

    +

    Butler offers quite comprehensive support for dealing with failed or aborted reloads tasks.
    +As such there are a number of things that can go wrong and settings that can be misconfigured.

    +

    When configured correctly, Butler’s logs can look like below.
    +In this example Butler has received a reload task failure event from Qlik Sense, and is now sending out notifications to the following channels:

    +
      +
    • Script log archive (all failed reload logs are archived to a folder on disk)
    • +
    • InfluxDB (from where the reload failure can be visualized in a Grafana dashboard)
    • +
    • Slack
    • +
    • Teams
    • +
    • Outgoing webhook
    • +
    • Email
    • +
    +
    2024-01-10T05:47:52.992Z info: SCRIPTLOG STORE: Writing failed task script log: C:\tools\butler\config\scriptlog\2024-01-10\2024-01-10_06-47-52_appId=8f1d1ecf-97a6-4eb5-8f47-f9156300b854_taskId=22b106a8-e7ed-4466-b700-014f060bef16.log
    +2024-01-10T05:47:52.994Z info: INFLUXDB RELOAD TASK FAILED: Sending reload task notification to InfluxDB
    +2024-01-10T05:47:53.008Z info: SLACK RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.017Z info: TEAMS RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.021Z info: WEBHOOK OUT RELOAD TASK FAILED: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)"
    +2024-01-10T05:47:53.300Z info: EMAIL RELOAD TASK FAILED ALERT: Rate limiting check passed for failed task notification. Task name: "Reload of Test failing reloads 1 (emojis supported! 🤪)", Recipient: "joe@company.com"
    +
    +

    +

    Tip

    Rate limiting is defined in the Butler configuration file.
    +If the rate limiting condition is met, this will be shown as “Rate limiting check passed for failed task notification” in the logs.

    +

    Things to check:

    +
      +
    • Is Butler receiving the reload task events from Qlik Sense? +
        +
      • Check the Butler log files. +When Butler receives a reload task event from Qlik Sense, it will check if rate limiting conditions are met, and also log a message about that. +If there are no such messages: +
          +
        • Butler has not received the event from Qlik Sense.
        • +
        • Check the XML appender files deployed to the Qlik Sense servers. Make sure they send UDP events to the host and port where Butler is listening.
        • +
        • Try pinging the host where Butler is running, from the Qlik Sense server (ping <butler host>). If the ping fails, there is probably a network issue.
        • +
        • Try doing a telnet to the UDP port where Butler is listening from the Qlik Sense server (telnet <butler host> <butler port>). If the telnet fails, there is for sure a network issue.
        • +
        • Make sure reload failure events are enabled in the Butler configuration file.
        • +
        +
      • +
      +
    • +
    • Are reload failure events received from some Sense nodes, but not others? +
        +
      • Check the XML appenders on the nodes where the events are not received.
      • +
      • Check the network connectivity between the nodes and the Butler host.
      • +
      • The XML appender files can be identical on all nodes.
      • +
      +
    • +
    • Are some reload failure events forwarded to destinations, but not others? +
        +
      • Check the Butler log files.
      • +
      • Is rate limiting enabled? If so, check the rate limiting settings in the Butler configuration file.
      • +
      • If events arrive more frequently than the rate limiting settings allow, Butler will not forward all events. +A failed rate limiting check will result in a log warning:
        +Rate limiting failed. Not sending reload notification email for task ...
      • +
      +
    • +
    + +
    + + + + + + + + + +
    + + + + +
    + +
    +
    +
    + +
    +
    +
    +
    + + + + + + + +
    +
    + + + + + + + +
    +
    + © 2024 Ptarmigan Labs AB All Rights Reserved + + +

    About

    + +
    +
    +
    +
    + + +
    + + + + + + \ No newline at end of file diff --git a/docs/docs/examples/when-things-dont-work/index.xml b/docs/docs/examples/when-things-dont-work/index.xml new file mode 100644 index 00000000..82def54f --- /dev/null +++ b/docs/docs/examples/when-things-dont-work/index.xml @@ -0,0 +1,18 @@ + + + Butler – When things don't work as expected + https://butler.ptarmiganlabs.com/docs/examples/when-things-dont-work/ + Recent content in When things don't work as expected on Butler + Hugo -- gohugo.io + en + + + + + + + + + + + diff --git a/docs/docs/getting-started/_print/index.html b/docs/docs/getting-started/_print/index.html index 7e014ef7..9a8acc63 100644 --- a/docs/docs/getting-started/_print/index.html +++ b/docs/docs/getting-started/_print/index.html @@ -6047,7 +6047,7 @@

    When things aren’t working

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/index.html b/docs/docs/getting-started/index.html index 16ed07a8..02a0372f 100644 --- a/docs/docs/getting-started/index.html +++ b/docs/docs/getting-started/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -579,7 +581,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/install/_print/index.html b/docs/docs/getting-started/install/_print/index.html index 1bc3946d..54c8e4f7 100644 --- a/docs/docs/getting-started/install/_print/index.html +++ b/docs/docs/getting-started/install/_print/index.html @@ -659,7 +659,7 @@

    Installation steps

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/install/choose-platform/index.html b/docs/docs/getting-started/install/choose-platform/index.html index 070efcff..1d81a68b 100644 --- a/docs/docs/getting-started/install/choose-platform/index.html +++ b/docs/docs/getting-started/install/choose-platform/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -552,7 +554,7 @@

    Butler as a Node.js application

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/install/docker/index.html b/docs/docs/getting-started/install/docker/index.html index 8773d875..0b03e802 100644 --- a/docs/docs/getting-started/install/docker/index.html +++ b/docs/docs/getting-started/install/docker/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -735,7 +737,7 @@

    Installation steps

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/install/index.html b/docs/docs/getting-started/install/index.html index 1bc15731..5c506e3c 100644 --- a/docs/docs/getting-started/install/index.html +++ b/docs/docs/getting-started/install/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -635,7 +637,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/install/native/index.html b/docs/docs/getting-started/install/native/index.html index 77960cc5..c47a8578 100644 --- a/docs/docs/getting-started/install/native/index.html +++ b/docs/docs/getting-started/install/native/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -564,7 +566,7 @@

    Installation steps

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/install/nodejs/index.html b/docs/docs/getting-started/install/nodejs/index.html index 58145b78..50572c0e 100644 --- a/docs/docs/getting-started/install/nodejs/index.html +++ b/docs/docs/getting-started/install/nodejs/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -565,7 +567,7 @@

    Installation steps

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/operations/_print/index.html b/docs/docs/getting-started/operations/_print/index.html index 74240b8f..f82b6a93 100644 --- a/docs/docs/getting-started/operations/_print/index.html +++ b/docs/docs/getting-started/operations/_print/index.html @@ -515,7 +515,7 @@

    Windows services

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/operations/docker/index.html b/docs/docs/getting-started/operations/docker/index.html index e94b5b77..649d55c7 100644 --- a/docs/docs/getting-started/operations/docker/index.html +++ b/docs/docs/getting-started/operations/docker/index.html @@ -324,6 +324,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -561,7 +563,7 @@

    Running Butler in Docker

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/operations/index.html b/docs/docs/getting-started/operations/index.html index 97f1d978..a0fc3114 100644 --- a/docs/docs/getting-started/operations/index.html +++ b/docs/docs/getting-started/operations/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -594,7 +596,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/operations/nodejs/index.html b/docs/docs/getting-started/operations/nodejs/index.html index 72123846..a48bbe68 100644 --- a/docs/docs/getting-started/operations/nodejs/index.html +++ b/docs/docs/getting-started/operations/nodejs/index.html @@ -318,6 +318,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -580,7 +582,7 @@

    Windows services

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/operations/standalone/index.html b/docs/docs/getting-started/operations/standalone/index.html index e7d0ed6b..ef8ea583 100644 --- a/docs/docs/getting-started/operations/standalone/index.html +++ b/docs/docs/getting-started/operations/standalone/index.html @@ -314,6 +314,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -692,7 +694,7 @@

    --api-rate-limit

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/overview/_print/index.html b/docs/docs/getting-started/overview/_print/index.html index 30dfc466..3a5342f9 100644 --- a/docs/docs/getting-started/overview/_print/index.html +++ b/docs/docs/getting-started/overview/_print/index.html @@ -237,7 +237,7 @@

    3. Try it out!

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/overview/index.html b/docs/docs/getting-started/overview/index.html index c72c862a..58ea7132 100644 --- a/docs/docs/getting-started/overview/index.html +++ b/docs/docs/getting-started/overview/index.html @@ -323,6 +323,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -576,7 +578,7 @@

    3. Try it out!

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/_print/index.html b/docs/docs/getting-started/setup/_print/index.html index d4d7309a..e184922f 100644 --- a/docs/docs/getting-started/setup/_print/index.html +++ b/docs/docs/getting-started/setup/_print/index.html @@ -4944,7 +4944,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/data-connections/_print/index.html b/docs/docs/getting-started/setup/data-connections/_print/index.html index 9fd0e86b..63afc76a 100644 --- a/docs/docs/getting-started/setup/data-connections/_print/index.html +++ b/docs/docs/getting-started/setup/data-connections/_print/index.html @@ -335,7 +335,7 @@

    Remember!

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/data-connections/index.html b/docs/docs/getting-started/setup/data-connections/index.html index a219476c..d2317cb6 100644 --- a/docs/docs/getting-started/setup/data-connections/index.html +++ b/docs/docs/getting-started/setup/data-connections/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -673,7 +675,7 @@

    Remember!

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/docker-health-check/_print/index.html b/docs/docs/getting-started/setup/docker-health-check/_print/index.html index 765b1d86..c283185f 100644 --- a/docs/docs/getting-started/setup/docker-health-check/_print/index.html +++ b/docs/docs/getting-started/setup/docker-health-check/_print/index.html @@ -227,7 +227,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/docker-health-check/index.html b/docs/docs/getting-started/setup/docker-health-check/index.html index 8b17869e..23888341 100644 --- a/docs/docs/getting-started/setup/docker-health-check/index.html +++ b/docs/docs/getting-started/setup/docker-health-check/index.html @@ -319,6 +319,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -563,7 +565,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/file-system-access/_print/index.html b/docs/docs/getting-started/setup/file-system-access/_print/index.html index 8863df9c..a76397eb 100644 --- a/docs/docs/getting-started/setup/file-system-access/_print/index.html +++ b/docs/docs/getting-started/setup/file-system-access/_print/index.html @@ -249,7 +249,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/file-system-access/index.html b/docs/docs/getting-started/setup/file-system-access/index.html index 46447ed6..2cfb4828 100644 --- a/docs/docs/getting-started/setup/file-system-access/index.html +++ b/docs/docs/getting-started/setup/file-system-access/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -587,7 +589,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/heartbeats/_print/index.html b/docs/docs/getting-started/setup/heartbeats/_print/index.html index 5091b6a0..0915e9a1 100644 --- a/docs/docs/getting-started/setup/heartbeats/_print/index.html +++ b/docs/docs/getting-started/setup/heartbeats/_print/index.html @@ -228,7 +228,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/heartbeats/index.html b/docs/docs/getting-started/setup/heartbeats/index.html index d2dd1adc..37e6fcaa 100644 --- a/docs/docs/getting-started/setup/heartbeats/index.html +++ b/docs/docs/getting-started/setup/heartbeats/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -565,7 +567,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/incident-mgmt-tools/_print/index.html b/docs/docs/getting-started/setup/incident-mgmt-tools/_print/index.html index 41a6c42e..babeb7b3 100644 --- a/docs/docs/getting-started/setup/incident-mgmt-tools/_print/index.html +++ b/docs/docs/getting-started/setup/incident-mgmt-tools/_print/index.html @@ -653,7 +653,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/incident-mgmt-tools/index.html b/docs/docs/getting-started/setup/incident-mgmt-tools/index.html index a1549d33..79673098 100644 --- a/docs/docs/getting-started/setup/incident-mgmt-tools/index.html +++ b/docs/docs/getting-started/setup/incident-mgmt-tools/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -554,7 +556,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/_print/index.html b/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/_print/index.html index 398d089f..598c4510 100644 --- a/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/_print/index.html +++ b/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/_print/index.html @@ -506,7 +506,7 @@

    Control which New Reli

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/index.html b/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/index.html index f63c3e06..d6c438a6 100644 --- a/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/index.html +++ b/docs/docs/getting-started/setup/incident-mgmt-tools/new-relic/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -860,7 +862,7 @@

    Control which New Reli

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/_print/index.html b/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/_print/index.html index f8a9a724..f161ebe0 100644 --- a/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/_print/index.html +++ b/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/_print/index.html @@ -248,7 +248,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/index.html b/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/index.html index 942ea128..6900d253 100644 --- a/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/index.html +++ b/docs/docs/getting-started/setup/incident-mgmt-tools/signl4/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -589,7 +591,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/index.html b/docs/docs/getting-started/setup/index.html index 28763ad0..20d8b097 100644 --- a/docs/docs/getting-started/setup/index.html +++ b/docs/docs/getting-started/setup/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -696,7 +698,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/key-value-store/_print/index.html b/docs/docs/getting-started/setup/key-value-store/_print/index.html index f023d70d..f2e814b2 100644 --- a/docs/docs/getting-started/setup/key-value-store/_print/index.html +++ b/docs/docs/getting-started/setup/key-value-store/_print/index.html @@ -226,7 +226,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/key-value-store/index.html b/docs/docs/getting-started/setup/key-value-store/index.html index 60f12a22..7a2ae9f8 100644 --- a/docs/docs/getting-started/setup/key-value-store/index.html +++ b/docs/docs/getting-started/setup/key-value-store/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -564,7 +566,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/mqtt/_print/index.html b/docs/docs/getting-started/setup/mqtt/_print/index.html index d030baf5..8a4040a0 100644 --- a/docs/docs/getting-started/setup/mqtt/_print/index.html +++ b/docs/docs/getting-started/setup/mqtt/_print/index.html @@ -260,7 +260,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/mqtt/index.html b/docs/docs/getting-started/setup/mqtt/index.html index 7f601e2a..8c68aa80 100644 --- a/docs/docs/getting-started/setup/mqtt/index.html +++ b/docs/docs/getting-started/setup/mqtt/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -602,7 +604,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/qlik-sense-server-settings/_print/index.html b/docs/docs/getting-started/setup/qlik-sense-server-settings/_print/index.html index d275f620..f4229b80 100644 --- a/docs/docs/getting-started/setup/qlik-sense-server-settings/_print/index.html +++ b/docs/docs/getting-started/setup/qlik-sense-server-settings/_print/index.html @@ -240,7 +240,7 @@

    Settings in main config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/qlik-sense-server-settings/index.html b/docs/docs/getting-started/setup/qlik-sense-server-settings/index.html index 07487708..4151a5a8 100644 --- a/docs/docs/getting-started/setup/qlik-sense-server-settings/index.html +++ b/docs/docs/getting-started/setup/qlik-sense-server-settings/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -577,7 +579,7 @@

    Settings in main config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/_print/index.html index 4b24e641..7d4068d6 100644 --- a/docs/docs/getting-started/setup/reload-alerts/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/_print/index.html @@ -1912,7 +1912,7 @@

    PUT and POST calls

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-emails/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-emails/_print/index.html index 8543e9a5..dfd4c27f 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-emails/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-emails/_print/index.html @@ -522,7 +522,7 @@

    Template fields reference

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-emails/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-emails/index.html index 41dd21a5..82106ea6 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-emails/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-emails/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -870,7 +872,7 @@

    Template fields reference

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/_print/index.html index a1990466..47fbcd9c 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/_print/index.html @@ -284,7 +284,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/index.html index 0074a235..96eec7f5 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-influxdb/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -632,7 +634,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/_print/index.html index fdd93ec2..d2e3afd0 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/_print/index.html @@ -264,7 +264,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/index.html index 984a2095..e03ba1c9 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-mqtt/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -610,7 +612,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/_print/index.html index 1861d595..2c50c99f 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/_print/index.html @@ -444,7 +444,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/index.html index 36c6b912..1277b044 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-new-relic/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -793,7 +795,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-slack/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-slack/_print/index.html index 5ede8e0a..998c42bb 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-slack/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-slack/_print/index.html @@ -331,7 +331,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-slack/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-slack/index.html index 7200ecc2..895f7b32 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-slack/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-slack/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -679,7 +681,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-teams/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-teams/_print/index.html index 2bf917dd..4f1cf1f7 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-teams/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-teams/_print/index.html @@ -318,7 +318,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-teams/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-teams/index.html index 112d1940..72197ffb 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-teams/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-teams/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -666,7 +668,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/_print/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/_print/index.html index f28be4c9..04474872 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/_print/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/_print/index.html @@ -321,7 +321,7 @@

    PUT and POST calls

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/index.html b/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/index.html index a59dcfcc..8edf4012 100644 --- a/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/alert-webhook-out/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -668,7 +670,7 @@

    PUT and POST calls

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-alerts/index.html b/docs/docs/getting-started/setup/reload-alerts/index.html index 393e8f50..92e8d896 100644 --- a/docs/docs/getting-started/setup/reload-alerts/index.html +++ b/docs/docs/getting-started/setup/reload-alerts/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -909,7 +911,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-script-logs/_print/index.html b/docs/docs/getting-started/setup/reload-script-logs/_print/index.html index b3d647ad..e6802a47 100644 --- a/docs/docs/getting-started/setup/reload-script-logs/_print/index.html +++ b/docs/docs/getting-started/setup/reload-script-logs/_print/index.html @@ -247,7 +247,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/reload-script-logs/index.html b/docs/docs/getting-started/setup/reload-script-logs/index.html index 800244eb..4900bd36 100644 --- a/docs/docs/getting-started/setup/reload-script-logs/index.html +++ b/docs/docs/getting-started/setup/reload-script-logs/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -585,7 +587,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/rest-api/_print/index.html b/docs/docs/getting-started/setup/rest-api/_print/index.html index c28c6e1f..88f7e161 100644 --- a/docs/docs/getting-started/setup/rest-api/_print/index.html +++ b/docs/docs/getting-started/setup/rest-api/_print/index.html @@ -321,7 +321,7 @@

    Settings in main config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/rest-api/index.html b/docs/docs/getting-started/setup/rest-api/index.html index 2484a6ae..1520d624 100644 --- a/docs/docs/getting-started/setup/rest-api/index.html +++ b/docs/docs/getting-started/setup/rest-api/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -666,7 +668,7 @@

    Settings in main config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/scheduler/_print/index.html b/docs/docs/getting-started/setup/scheduler/_print/index.html index 97dd1916..9d270f62 100644 --- a/docs/docs/getting-started/setup/scheduler/_print/index.html +++ b/docs/docs/getting-started/setup/scheduler/_print/index.html @@ -269,7 +269,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/scheduler/index.html b/docs/docs/getting-started/setup/scheduler/index.html index fbb79a3a..a84c24a2 100644 --- a/docs/docs/getting-started/setup/scheduler/index.html +++ b/docs/docs/getting-started/setup/scheduler/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -608,7 +610,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/start-task-filter/_print/index.html b/docs/docs/getting-started/setup/start-task-filter/_print/index.html index 48616f9b..9fe953a1 100644 --- a/docs/docs/getting-started/setup/start-task-filter/_print/index.html +++ b/docs/docs/getting-started/setup/start-task-filter/_print/index.html @@ -252,7 +252,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/start-task-filter/index.html b/docs/docs/getting-started/setup/start-task-filter/index.html index 107f7408..5a8129af 100644 --- a/docs/docs/getting-started/setup/start-task-filter/index.html +++ b/docs/docs/getting-started/setup/start-task-filter/index.html @@ -323,6 +323,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -588,7 +590,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/telemetry/_print/index.html b/docs/docs/getting-started/setup/telemetry/_print/index.html index bd4e4d42..c35ea53c 100644 --- a/docs/docs/getting-started/setup/telemetry/_print/index.html +++ b/docs/docs/getting-started/setup/telemetry/_print/index.html @@ -217,7 +217,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/telemetry/index.html b/docs/docs/getting-started/setup/telemetry/index.html index 0fb3186d..82a714c5 100644 --- a/docs/docs/getting-started/setup/telemetry/index.html +++ b/docs/docs/getting-started/setup/telemetry/index.html @@ -312,6 +312,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -554,7 +556,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/uptime-monitor/_print/index.html b/docs/docs/getting-started/setup/uptime-monitor/_print/index.html index 59d0db0c..e3f21b65 100644 --- a/docs/docs/getting-started/setup/uptime-monitor/_print/index.html +++ b/docs/docs/getting-started/setup/uptime-monitor/_print/index.html @@ -284,7 +284,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/uptime-monitor/index.html b/docs/docs/getting-started/setup/uptime-monitor/index.html index 81a328d1..7bf7d8d2 100644 --- a/docs/docs/getting-started/setup/uptime-monitor/index.html +++ b/docs/docs/getting-started/setup/uptime-monitor/index.html @@ -315,6 +315,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -626,7 +628,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/user-events/_print/index.html b/docs/docs/getting-started/setup/user-events/_print/index.html index 15dbe370..c329d3da 100644 --- a/docs/docs/getting-started/setup/user-events/_print/index.html +++ b/docs/docs/getting-started/setup/user-events/_print/index.html @@ -215,7 +215,7 @@

    Deprecated feature

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/user-events/index.html b/docs/docs/getting-started/setup/user-events/index.html index 042fe919..eef0ef18 100644 --- a/docs/docs/getting-started/setup/user-events/index.html +++ b/docs/docs/getting-started/setup/user-events/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -544,7 +546,7 @@

    Deprecated feature

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/which-config-file/_print/index.html b/docs/docs/getting-started/setup/which-config-file/_print/index.html index 55b7c17a..a5100374 100644 --- a/docs/docs/getting-started/setup/which-config-file/_print/index.html +++ b/docs/docs/getting-started/setup/which-config-file/_print/index.html @@ -329,7 +329,7 @@

    Setting environment variables

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/which-config-file/index.html b/docs/docs/getting-started/setup/which-config-file/index.html index 605962b0..bfd9d85d 100644 --- a/docs/docs/getting-started/setup/which-config-file/index.html +++ b/docs/docs/getting-started/setup/which-config-file/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -673,7 +675,7 @@

    Setting environment variables

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/_print/index.html index 59020e34..384aa54e 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/_print/index.html @@ -1108,7 +1108,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/email/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/email/_print/index.html index b47d7a55..d745e0ac 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/email/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/email/_print/index.html @@ -293,7 +293,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/email/index.html b/docs/docs/getting-started/setup/windows-service-monitor/email/index.html index 66838ebc..ac68927e 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/email/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/email/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -634,7 +636,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/index.html b/docs/docs/getting-started/setup/windows-service-monitor/index.html index c88ad255..3f2eabfc 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/index.html @@ -327,6 +327,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -685,7 +687,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/influxdb/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/influxdb/_print/index.html index 7843e5f5..275fb1e1 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/influxdb/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/influxdb/_print/index.html @@ -231,7 +231,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/influxdb/index.html b/docs/docs/getting-started/setup/windows-service-monitor/influxdb/index.html index 5abb7bb8..89cca519 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/influxdb/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/influxdb/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -572,7 +574,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/mqtt/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/mqtt/_print/index.html index e9e939ab..42ae4f3f 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/mqtt/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/mqtt/_print/index.html @@ -240,7 +240,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/mqtt/index.html b/docs/docs/getting-started/setup/windows-service-monitor/mqtt/index.html index 3884a831..e6686b34 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/mqtt/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/mqtt/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -581,7 +583,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/new-relic/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/new-relic/_print/index.html index 53e42cb2..46512b7d 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/new-relic/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/new-relic/_print/index.html @@ -303,7 +303,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/new-relic/index.html b/docs/docs/getting-started/setup/windows-service-monitor/new-relic/index.html index bf878c58..21493f1b 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/new-relic/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/new-relic/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -649,7 +651,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/slack/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/slack/_print/index.html index 7a33b8a3..bc7b6b39 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/slack/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/slack/_print/index.html @@ -293,7 +293,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/slack/index.html b/docs/docs/getting-started/setup/windows-service-monitor/slack/index.html index 88c0b7d0..5d169c69 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/slack/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/slack/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -638,7 +640,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/teams/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/teams/_print/index.html index b8aee859..f56d71aa 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/teams/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/teams/_print/index.html @@ -287,7 +287,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/teams/index.html b/docs/docs/getting-started/setup/windows-service-monitor/teams/index.html index 587fa77d..50861692 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/teams/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/teams/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -632,7 +634,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/_print/index.html b/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/_print/index.html index 7e763ade..ee5d8151 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/_print/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/_print/index.html @@ -250,7 +250,7 @@

    Settings in config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/index.html b/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/index.html index bcd08561..f780e387 100644 --- a/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/index.html +++ b/docs/docs/getting-started/setup/windows-service-monitor/webhook-out/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -598,7 +600,7 @@

    Settings in config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/upgrade/_print/index.html b/docs/docs/getting-started/upgrade/_print/index.html index dc64e882..dbf4e6bc 100644 --- a/docs/docs/getting-started/upgrade/_print/index.html +++ b/docs/docs/getting-started/upgrade/_print/index.html @@ -273,7 +273,7 @@

    When things aren’t working

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/getting-started/upgrade/index.html b/docs/docs/getting-started/upgrade/index.html index 70175bcb..a9f1ebf3 100644 --- a/docs/docs/getting-started/upgrade/index.html +++ b/docs/docs/getting-started/upgrade/index.html @@ -319,6 +319,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -614,7 +616,7 @@

    When things aren’t working

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/index.html b/docs/docs/index.html index 0118c3b8..0a8ed722 100644 --- a/docs/docs/index.html +++ b/docs/docs/index.html @@ -307,6 +307,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -1083,7 +1085,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/legal-stuff/_print/index.html b/docs/docs/legal-stuff/_print/index.html index f73e725b..15e478fc 100644 --- a/docs/docs/legal-stuff/_print/index.html +++ b/docs/docs/legal-stuff/_print/index.html @@ -239,7 +239,7 @@

    Telemetry data

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/legal-stuff/index.html b/docs/docs/legal-stuff/index.html index 38192a1f..b6493579 100644 --- a/docs/docs/legal-stuff/index.html +++ b/docs/docs/legal-stuff/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -572,7 +574,7 @@

    Telemetry data

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/_print/index.html b/docs/docs/reference/_print/index.html index 706117b2..99c793c3 100644 --- a/docs/docs/reference/_print/index.html +++ b/docs/docs/reference/_print/index.html @@ -5371,7 +5371,7 @@

    9 - Test cases

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/alert-template-fields/_print/index.html b/docs/docs/reference/alert-template-fields/_print/index.html index d4dc2d2d..3367d62b 100644 --- a/docs/docs/reference/alert-template-fields/_print/index.html +++ b/docs/docs/reference/alert-template-fields/_print/index.html @@ -1046,7 +1046,7 @@

    Outbound webhooks

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/alert-template-fields/index.html b/docs/docs/reference/alert-template-fields/index.html index da768818..b1fd88fe 100644 --- a/docs/docs/reference/alert-template-fields/index.html +++ b/docs/docs/reference/alert-template-fields/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -558,7 +560,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/alert-template-fields/reload-tasks/_print/index.html b/docs/docs/reference/alert-template-fields/reload-tasks/_print/index.html index adfec991..3740bd0b 100644 --- a/docs/docs/reference/alert-template-fields/reload-tasks/_print/index.html +++ b/docs/docs/reference/alert-template-fields/reload-tasks/_print/index.html @@ -501,7 +501,7 @@

    Warning

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/alert-template-fields/reload-tasks/index.html b/docs/docs/reference/alert-template-fields/reload-tasks/index.html index 9fb6420b..b421408d 100644 --- a/docs/docs/reference/alert-template-fields/reload-tasks/index.html +++ b/docs/docs/reference/alert-template-fields/reload-tasks/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -837,7 +839,7 @@

    Warning

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/alert-template-fields/windows-services/_print/index.html b/docs/docs/reference/alert-template-fields/windows-services/_print/index.html index b741117a..baad4b41 100644 --- a/docs/docs/reference/alert-template-fields/windows-services/_print/index.html +++ b/docs/docs/reference/alert-template-fields/windows-services/_print/index.html @@ -646,7 +646,7 @@

    Outbound webhooks

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/alert-template-fields/windows-services/index.html b/docs/docs/reference/alert-template-fields/windows-services/index.html index e6f768e9..97d49c17 100644 --- a/docs/docs/reference/alert-template-fields/windows-services/index.html +++ b/docs/docs/reference/alert-template-fields/windows-services/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -996,7 +998,7 @@

    Outbound webhooks

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/config-file/_print/index.html b/docs/docs/reference/config-file/_print/index.html index 43515a89..62ae9704 100644 --- a/docs/docs/reference/config-file/_print/index.html +++ b/docs/docs/reference/config-file/_print/index.html @@ -1032,7 +1032,7 @@

    Main Butler config file

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/config-file/index.html b/docs/docs/reference/config-file/index.html index 4665e146..dff2ae5c 100644 --- a/docs/docs/reference/config-file/index.html +++ b/docs/docs/reference/config-file/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -1369,7 +1371,7 @@

    Main Butler config file

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/index.html b/docs/docs/reference/index.html index 159ee176..35176497 100644 --- a/docs/docs/reference/index.html +++ b/docs/docs/reference/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -609,7 +611,7 @@
  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/influxdb/_print/index.html b/docs/docs/reference/influxdb/_print/index.html index 09586c5c..88d48144 100644 --- a/docs/docs/reference/influxdb/_print/index.html +++ b/docs/docs/reference/influxdb/_print/index.html @@ -570,7 +570,7 @@

    Fields

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/influxdb/index.html b/docs/docs/reference/influxdb/index.html index a1e13cff..05fed526 100644 --- a/docs/docs/reference/influxdb/index.html +++ b/docs/docs/reference/influxdb/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -926,7 +928,7 @@

    Fields

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/key-value/_print/index.html b/docs/docs/reference/key-value/_print/index.html index 8110d28a..e59aecca 100644 --- a/docs/docs/reference/key-value/_print/index.html +++ b/docs/docs/reference/key-value/_print/index.html @@ -217,7 +217,7 @@

    Time to live

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/key-value/index.html b/docs/docs/reference/key-value/index.html index 8416485c..14cc906d 100644 --- a/docs/docs/reference/key-value/index.html +++ b/docs/docs/reference/key-value/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -552,7 +554,7 @@

    Time to live

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/rest-api-1/_print/index.html b/docs/docs/reference/rest-api-1/_print/index.html index 21312406..a5bbf4ef 100644 --- a/docs/docs/reference/rest-api-1/_print/index.html +++ b/docs/docs/reference/rest-api-1/_print/index.html @@ -313,6 +313,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -555,7 +557,7 @@

    Remember

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/rest-api-1/index.html b/docs/docs/reference/rest-api-1/index.html index 489d7ad5..b2790b6d 100644 --- a/docs/docs/reference/rest-api-1/index.html +++ b/docs/docs/reference/rest-api-1/index.html @@ -313,6 +313,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -556,7 +558,7 @@

    Remember

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/rest-api-2/_print/index.html b/docs/docs/reference/rest-api-2/_print/index.html index 135fba1e..362b701f 100644 --- a/docs/docs/reference/rest-api-2/_print/index.html +++ b/docs/docs/reference/rest-api-2/_print/index.html @@ -2549,7 +2549,7 @@

    REST API documentation (alternative format)

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/rest-api-2/index.html b/docs/docs/reference/rest-api-2/index.html index 7240b58c..605df01a 100644 --- a/docs/docs/reference/rest-api-2/index.html +++ b/docs/docs/reference/rest-api-2/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -2875,7 +2877,7 @@

    REST API documentation (alternative format)

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/scheduler/_print/index.html b/docs/docs/reference/scheduler/_print/index.html index aa94d7bd..91fad061 100644 --- a/docs/docs/reference/scheduler/_print/index.html +++ b/docs/docs/reference/scheduler/_print/index.html @@ -364,7 +364,7 @@

    Manual vs API created schedules

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/scheduler/index.html b/docs/docs/reference/scheduler/index.html index 3325385d..742c4cd9 100644 --- a/docs/docs/reference/scheduler/index.html +++ b/docs/docs/reference/scheduler/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -703,7 +705,7 @@

    Manual vs API created schedules

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/sense-helper-subs/_print/index.html b/docs/docs/reference/sense-helper-subs/_print/index.html index bbab5b71..2d44f5c0 100644 --- a/docs/docs/reference/sense-helper-subs/_print/index.html +++ b/docs/docs/reference/sense-helper-subs/_print/index.html @@ -354,7 +354,7 @@

    Helper subs on the todo list

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/sense-helper-subs/index.html b/docs/docs/reference/sense-helper-subs/index.html index 6cb380ba..a173a493 100644 --- a/docs/docs/reference/sense-helper-subs/index.html +++ b/docs/docs/reference/sense-helper-subs/index.html @@ -327,6 +327,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -688,7 +690,7 @@

    Helper subs on the todo list

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/test-cases/_print/index.html b/docs/docs/reference/test-cases/_print/index.html index a53d3cf5..819a5414 100644 --- a/docs/docs/reference/test-cases/_print/index.html +++ b/docs/docs/reference/test-cases/_print/index.html @@ -203,7 +203,7 @@

    Test cases

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/reference/test-cases/index.html b/docs/docs/reference/test-cases/index.html index 23d57eb6..00eccb44 100644 --- a/docs/docs/reference/test-cases/index.html +++ b/docs/docs/reference/test-cases/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -529,7 +531,7 @@

    Test cases

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/security/_print/index.html b/docs/docs/security/_print/index.html index db62e9cb..5c98310b 100644 --- a/docs/docs/security/_print/index.html +++ b/docs/docs/security/_print/index.html @@ -244,7 +244,7 @@

    Butler talking to Qlik Sense

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/docs/security/index.html b/docs/docs/security/index.html index 8c5d0a4c..f5237aa7 100644 --- a/docs/docs/security/index.html +++ b/docs/docs/security/index.html @@ -311,6 +311,8 @@
  • Butler as a Windows service +
  • + When things don't work
  • @@ -576,7 +578,7 @@

    Butler talking to Qlik Sense

  • - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/index.html b/docs/index.html index ec60fadf..eb63fa2a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -563,7 +563,7 @@

    Don’t be a stranger!

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/js/main.min.0cd5c153248014fda972176585d110ddeb65fc2344eb40a24db82d348d3b83a5.js b/docs/js/main.min.0cd5c153248014fda972176585d110ddeb65fc2344eb40a24db82d348d3b83a5.js new file mode 100644 index 00000000..f0fcf228 --- /dev/null +++ b/docs/js/main.min.0cd5c153248014fda972176585d110ddeb65fc2344eb40a24db82d348d3b83a5.js @@ -0,0 +1,5 @@ +/*! + * Bootstrap v4.6.2 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */(function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("jquery")):typeof define=="function"&&define.amd?define(["exports","jquery"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e.bootstrap={},e.jQuery))})(this,function(e,t){"use strict";function Gi(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s,i,a,r,c,l,d,h,m,f,g,v,b,j,y,_,w,O,x,C,E,k,S,M,F,T,z,D,N,L,R,P,H,V,$,W,U,K,q,Y,G,X,Q,Z,J,n=Gi(t),_e,un,fn,jn,be,$e,_n,Sn,Mn,Kn,qn,go,Si,Ai,Ei,Ci,re,le,ge,Oi,ji,vi,gi,fi,li,wt,ii,oi,ni,Fe,ti,_t,Ko,bt,Wo,$o,Bo,Io,zo,To,So,Ao,ko,Eo,Oo,_o,pe,ae,yo,bo,lo,gt,ro,ao,io,Js,Qs,Xs,Gs,Ys,Ks,Us,Vs,Bs,Ee,Is,Hs,Ns,Ts,Fs,Ss,Ge,As,Ze,vs,ps,ms,ye,Le,et,hs,cs,rs,os,es,Jn,Xn,ct,Ie,Gn,Yn,Wn,$n,Ot,xt,mn,hn,bn,Dt,Ye,Ke,Ln,Rn,ue,Oe,Bn,te,Be,Un,ft,mt,De,ze,Qn,Zn,Me,ts,ns,ss,ot,is,st,nt,ls,ds,us,Ne,Qe,fs,ce,gs,Ue,bs,js,ys,_s,ws,Os,xs,Cs,Es,ks,Ms,zs,Ds,Je,Ls,Rs,Ps,tt,ke,it,$s,Ws,at,rt,qs,Ae,lt,He,dt,Zs,ut,eo,to,Kt,so,oo,ht,pt,Ve,co,uo,ho,mo,fo,po,jo,ve,Ut,vt,xo,Co,se,oe,ie,qe,Mo,Fo,Re,Do,No,Lo,Ro,Po,Ho,Vo,he,Uo,jt,qo,Yo,Go,Xo,Qo,Zo,Jo,ei,we,si,xe,Se,ai,ri,ci,di,ui,hi,mi,Ct,pi,Et,Pe,bi,Xe,yi,_i,wi,St,xi,ki,me,Mi,Fi,wo,ee,no,Mt,Ft,Hn,Pn,Nn,Dn,zn,Tn,Fn,Tt,zt,An,kn,wn,vn,Ce,gn,pn,Rt,Pt,Ht,dn,ln,cn,on,sn,Wt,tn,de;function Jt(e,t){for(var n,s=0;s=r)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}},s.jQueryDetection(),Zi(),W="alert",jn="4.6.2",be="bs.alert",$e="."+be,_n=".data-api",Sn=n.default.fn[W],Mn="alert",Kn="fade",qn="show",go="close"+$e,Si="closed"+$e,Ai="click"+$e+_n,Ei='[data-dismiss="alert"]',M=function(){function e(e){this._element=e}var t=e.prototype;return t.close=function(t){var s,n=this._element;if(t&&(n=this._getRootElement(t)),s=this._triggerCloseEvent(n),s.isDefaultPrevented())return;this._removeElement(n)},t.dispose=function(){n.default.removeData(this._element,be),this._element=null},t._getRootElement=function(t){var i=s.getSelectorFromElement(t),o=!1;return i&&(o=document.querySelector(i)),o||(o=n.default(t).closest("."+Mn)[0]),o},t._triggerCloseEvent=function(t){var s=n.default.Event(go);return n.default(t).trigger(s),s},t._removeElement=function(t){var o,i=this;if(n.default(t).removeClass(qn),!n.default(t).hasClass(Kn)){this._destroyElement(t);return}o=s.getTransitionDurationFromElement(t),n.default(t).one(s.TRANSITION_END,function(e){return i._destroyElement(t,e)}).emulateTransitionEnd(o)},t._destroyElement=function(t){n.default(t).detach().trigger(Si).remove()},e._jQueryInterface=function(s){return this.each(function(){var o=n.default(this),t=o.data(be);t||(t=new e(this),o.data(be,t)),s==="close"&&t[s](this)})},e._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},u(e,null,[{key:"VERSION",get:function(){return jn}}]),e}(),n.default(document).on(Ai,Ei,M._handleDismiss(new M)),n.default.fn[W]=M._jQueryInterface,n.default.fn[W].Constructor=M,n.default.fn[W].noConflict=function(){return n.default.fn[W]=Sn,M._jQueryInterface},K="button",Ci="4.6.2",re="bs.button",le="."+re,ge=".data-api",Oi=n.default.fn[K],h="active",ji="btn",vi="focus",gi="click"+le+ge,fi="focus"+le+ge+" "+("blur"+le+ge),li="load"+le+ge,wt='[data-toggle^="button"]',ii='[data-toggle="buttons"]',oi='[data-toggle="button"]',ni='[data-toggle="buttons"] .btn',Fe='input:not([type="hidden"])',ti=".active",_t=".btn",X=function(){function e(e){this._element=e,this.shouldAvoidTriggerChange=!1}var t=e.prototype;return t.toggle=function(){var t,o,s=!0,i=!0,a=n.default(this._element).closest(ii)[0];a&&(t=this._element.querySelector(Fe),t&&(t.type==="radio"&&(t.checked&&this._element.classList.contains(h)?s=!1:(o=a.querySelector(ti),o&&n.default(o).removeClass(h))),s&&((t.type==="checkbox"||t.type==="radio")&&(t.checked=!this._element.classList.contains(h)),this.shouldAvoidTriggerChange||n.default(t).trigger("change")),t.focus(),i=!1)),this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(i&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(h)),s&&n.default(this._element).toggleClass(h))},t.dispose=function(){n.default.removeData(this._element,re),this._element=null},e._jQueryInterface=function(s,o){return this.each(function(){var i=n.default(this),t=i.data(re);t||(t=new e(this),i.data(re,t)),t.shouldAvoidTriggerChange=o,s==="toggle"&&t[s]()})},u(e,null,[{key:"VERSION",get:function(){return Ci}}]),e}(),n.default(document).on(gi,wt,function(e){var s,t=e.target,o=t;if(n.default(t).hasClass(ji)||(t=n.default(t).closest(_t)[0]),!t||t.hasAttribute("disabled")||t.classList.contains("disabled"))e.preventDefault();else{if(s=t.querySelector(Fe),s&&(s.hasAttribute("disabled")||s.classList.contains("disabled"))){e.preventDefault();return}(o.tagName==="INPUT"||t.tagName!=="LABEL")&&X._jQueryInterface.call(n.default(t),"toggle",o.tagName==="INPUT")}}).on(fi,wt,function(e){var t=n.default(e.target).closest(_t)[0];n.default(t).toggleClass(vi,/^focus(in)?$/.test(e.type))}),n.default(window).on(li,function(){for(var t,n,s,i,a,e=[].slice.call(document.querySelectorAll(ni)),o=0,r=e.length;o0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(pe)},e.nextWhenVisible=function(){var t=n.default(this._element);!document.hidden&&t.is(":visible")&&t.css("visibility")!=="hidden"&&this.next()},e.prev=function(){this._isSliding||this._slide(ae)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(Ns)&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var s,o,i=this;if(this._activeElement=this._element.querySelector(Ee),s=this._getItemIndex(this._activeElement),t>this._items.length-1||t<0)return;if(this._isSliding){n.default(this._element).one(gt,function(){return i.to(t)});return}if(s===t){this.pause(),this.cycle();return}o=t>s?pe:ae,this._slide(o,this._items[t])},e.dispose=function(){n.default(this._element).off(i),n.default.removeData(this._element,J),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=o({},Ge,t),s.typeCheckConfig(S,t,As),t},e._handleSwipe=function(){var t,n=Math.abs(this.touchDeltaX);if(n<=zo)return;t=n/this.touchDeltaX,this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()},e._addEventListeners=function(){var t=this;this._config.keyboard&&n.default(this._element).on(ro,function(e){return t._keydown(e)}),this._config.pause==="hover"&&n.default(this._element).on(ao,function(e){return t.pause(e)}).on(io,function(e){return t.cycle(e)}),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var s,o,i,t=this;if(!this._touchSupported)return;s=function(n){t._pointerEvent&&Ze[n.originalEvent.pointerType.toUpperCase()]?t.touchStartX=n.originalEvent.clientX:t._pointerEvent||(t.touchStartX=n.originalEvent.touches[0].clientX)},i=function(n){t.touchDeltaX=n.originalEvent.touches&&n.originalEvent.touches.length>1?0:n.originalEvent.touches[0].clientX-t.touchStartX},o=function(n){t._pointerEvent&&Ze[n.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=n.originalEvent.clientX-t.touchStartX),t._handleSwipe(),t._config.pause==="hover"&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},Io+t._config.interval))},n.default(this._element.querySelectorAll(Hs)).on(Ks,function(e){return e.preventDefault()}),this._pointerEvent?(n.default(this._element).on(Gs,function(e){return s(e)}),n.default(this._element).on(Ys,function(e){return o(e)}),this._element.classList.add(_o)):(n.default(this._element).on(Js,function(e){return s(e)}),n.default(this._element).on(Qs,function(e){return i(e)}),n.default(this._element).on(Xs,function(e){return o(e)}))},e._keydown=function(t){if(/input|textarea/i.test(t.target.tagName))return;switch(t.which){case $o:t.preventDefault(),this.prev();break;case Bo:t.preventDefault(),this.next();break}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(Is)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,n){var o,i,a=t===pe,r=t===ae,s=this._getItemIndex(n),c=this._items.length-1,l=r&&s===0||a&&s===c;return l&&!this._config.wrap?n:(i=t===ae?-1:1,o=(s+i)%this._items.length,o===-1?this._items[this._items.length-1]:this._items[o])},e._triggerSlideEvent=function(t,s){var i=this._getItemIndex(t),a=this._getItemIndex(this._element.querySelector(Ee)),o=n.default.Event(lo,{relatedTarget:t,direction:s,from:a,to:i});return n.default(this._element).trigger(o),o},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var s,o=[].slice.call(this._indicatorsElement.querySelectorAll(Bs));n.default(o).removeClass(w),s=this._indicatorsElement.children[this._getItemIndex(t)],s&&n.default(s).addClass(w)}},e._updateInterval=function(){var t,n=this._activeElement||this._element.querySelector(Ee);if(!n)return;t=parseInt(n.getAttribute("data-interval"),10),t?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=t):this._config.interval=this._config.defaultInterval||this._config.interval},e._slide=function(t,o){var r,c,l,d,m,f,u=this,a=this._element.querySelector(Ee),p=this._getItemIndex(a),i=o||a&&this._getItemByDirection(t,a),g=this._getItemIndex(i),h=Boolean(this._interval);if(t===pe?(r=ko,c=Eo,l=yo):(r=Ao,c=Oo,l=bo),i&&n.default(i).hasClass(w)){this._isSliding=!1;return}if(m=this._triggerSlideEvent(i,l),m.isDefaultPrevented())return;if(!a||!i)return;this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(i),this._activeElement=i,d=n.default.Event(gt,{relatedTarget:i,direction:l,from:p,to:g}),n.default(this._element).hasClass(So)?(n.default(i).addClass(c),s.reflow(i),n.default(a).addClass(r),n.default(i).addClass(r),f=s.getTransitionDurationFromElement(a),n.default(a).one(s.TRANSITION_END,function(){n.default(i).removeClass(r+" "+c).addClass(w),n.default(a).removeClass(w+" "+c+" "+r),u._isSliding=!1,setTimeout(function(){return n.default(u._element).trigger(d)},0)}).emulateTransitionEnd(f)):(n.default(a).removeClass(w),n.default(i).addClass(w),this._isSliding=!1,n.default(this._element).trigger(d)),h&&this.cycle()},t._jQueryInterface=function(s){return this.each(function(){var a,e=n.default(this).data(J),i=o({},Ge,n.default(this).data());if(typeof s=="object"&&(i=o({},i,s)),a=typeof s=="string"?s:i.slide,e||(e=new t(this,i),n.default(this).data(J,e)),typeof s=="number")e.to(s);else if(typeof a=="string"){if(typeof e[a]=="undefined")throw new TypeError('No method named "'+a+'"');e[a]()}else i.interval&&i.ride&&(e.pause(),e.cycle())})},t._dataApiClickHandler=function(i){var a,r,c,l=s.getSelectorFromElement(this);if(!l)return;if(a=n.default(l)[0],!a||!n.default(a).hasClass(To))return;c=o({},n.default(a).data(),n.default(this).data()),r=this.getAttribute("data-slide-to"),r&&(c.interval=!1),t._jQueryInterface.call(n.default(a),c),r&&n.default(a).data(J).to(r),i.preventDefault()},u(t,null,[{key:"VERSION",get:function(){return Ko}},{key:"Default",get:function(){return Ge}}]),t}(),n.default(document).on(Vs,Fs,E._dataApiClickHandler),n.default(window).on(Us,function(){for(var t,s=[].slice.call(document.querySelectorAll(Ss)),e=0,o=s.length;e0&&(this._selector=n,this._triggerArray.push(i));this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){n.default(this._element).hasClass(y)?this.hide():this.show()},e.show=function(){var o,a,r,c,l,d,u,h,i=this;if(this._isTransitioning||n.default(this._element).hasClass(y))return;if(this._parent&&(o=[].slice.call(this._parent.querySelectorAll(Xn)).filter(function(e){return typeof i._config.parent=="string"?e.getAttribute("data-parent")===i._config.parent:e.classList.contains(L)}),o.length===0&&(o=null)),o&&(r=n.default(o).not(this._selector).data(_),r&&r._isTransitioning))return;if(c=n.default.Event(cs),n.default(this._element).trigger(c),c.isDefaultPrevented())return;o&&(t._jQueryInterface.call(n.default(o).not(this._selector),"hide"),r||n.default(o).data(_,null)),a=this._getDimension(),n.default(this._element).removeClass(L).addClass(ye),this._element.style[a]=0,this._triggerArray.length&&n.default(this._triggerArray).removeClass(Le).attr("aria-expanded",!0),this.setTransitioning(!0),l=function(){n.default(i._element).removeClass(ye).addClass(L+" "+y),i._element.style[a]="",i.setTransitioning(!1),n.default(i._element).trigger(rs)},d=a[0].toUpperCase()+a.slice(1),u="scroll"+d,h=s.getTransitionDurationFromElement(this._element),n.default(this._element).one(s.TRANSITION_END,l).emulateTransitionEnd(h),this._element.style[a]=this._element[u]+"px"},e.hide=function(){var t,o,i,a,r,c,d,u,h,l=this;if(this._isTransitioning||!n.default(this._element).hasClass(y))return;if(i=n.default.Event(os),n.default(this._element).trigger(i),i.isDefaultPrevented())return;if(t=this._getDimension(),this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",s.reflow(this._element),n.default(this._element).addClass(ye).removeClass(L+" "+y),a=this._triggerArray.length,a>0)for(o=0;o=0)return 1;return 0}();function zi(e){var t=!1;return function(){if(t)return;t=!0,window.Promise.resolve().then(function(){t=!1,e()})}}function Li(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},Yn))}}Wn=q&&window.Promise,$n=Wn?zi:Li;function Vn(e){var t={};return e&&t.toString.call(e)==="[object Function]"}function A(e,t){if(e.nodeType!==1)return[];var s=e.ownerDocument.defaultView,n=s.getComputedStyle(e,null);return t?n[t]:n}function yt(e){return e.nodeName==="HTML"?e:e.parentNode||e.host}function je(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=A(e),n=t.overflow,s=t.overflowX,o=t.overflowY;return/(auto|scroll|overlay)/.test(n+o+s)?e:je(yt(e))}function In(e){return e&&e.referenceNode?e.referenceNode:e}Ot=q&&!!(window.MSInputMethodContext&&document.documentMode),xt=q&&/MSIE 10/.test(navigator.userAgent);function B(e){return e===11?Ot:e===10?xt:Ot||xt}function I(e){if(!e)return document.documentElement;for(var n,s=B(10)?document.body:null,t=e.offsetParent||null;t===s&&e.nextElementSibling;)t=(e=e.nextElementSibling).offsetParent;return n=t&&t.nodeName,!n||n==="BODY"||n==="HTML"?e?e.ownerDocument.documentElement:document.documentElement:["TH","TD","TABLE"].indexOf(t.nodeName)!==-1&&A(t,"position")==="static"?I(t):t}function Ri(e){var t=e.nodeName;return t!=="BODY"&&(t==="HTML"||I(e.firstElementChild)===e)}function At(e){return e.parentNode!==null?At(e.parentNode):e}function Te(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var n,o,i=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,a=i?e:t,r=i?t:e,s=document.createRange();return s.setStart(a,0),s.setEnd(r,0),n=s.commonAncestorContainer,e!==n&&t!==n||a.contains(r)?Ri(n)?n:I(n):(o=At(e),o.host?Te(o.host,t):Te(e,At(t).host))}function ne(e){var s,o,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"top",t=i==="top"?"scrollTop":"scrollLeft",n=e.nodeName;return n==="BODY"||n==="HTML"?(s=e.ownerDocument.documentElement,o=e.ownerDocument.scrollingElement||s,o[t]):e[t]}function Pi(e,t){var i=arguments.length>2&&arguments[2]!==void 0&&arguments[2],s=ne(t,"top"),o=ne(t,"left"),n=i?-1:1;return e.top+=s*n,e.bottom+=s*n,e.left+=o*n,e.right+=o*n,e}function En(e,t){var n=t==="x"?"Left":"Top",s=n==="Left"?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+s+"Width"])}function xn(e,t,n,s){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],B(10)?parseInt(n["offset"+e])+parseInt(s["margin"+(e==="Height"?"Top":"Left")])+parseInt(s["margin"+(e==="Height"?"Bottom":"Right")]):0)}function On(e){var n=e.body,t=e.documentElement,s=B(10)&&getComputedStyle(t);return{height:xn("Height",n,t,s),width:xn("Width",n,t,s)}}mn=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},hn=function(){function e(e,t){for(var n,s=0;s2&&arguments[2]!==void 0&&arguments[2],h=B(10),m=t.nodeName==="HTML",o=It(e),s=It(t),c=je(e),i=A(t),l=parseFloat(i.borderTopWidth),d=parseFloat(i.borderLeftWidth);return u&&m&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0)),n=p({top:o.top-s.top-l,left:o.left-s.left-d,width:o.width,height:o.height}),n.marginTop=0,n.marginLeft=0,!h&&m&&(a=parseFloat(i.marginTop),r=parseFloat(i.marginLeft),n.top-=l-a,n.bottom-=l-a,n.left-=d-r,n.right-=d-r,n.marginTop=a,n.marginLeft=r),(h&&!u?t.contains(c):t===c&&c.nodeName!=="BODY")&&(n=Pi(n,t)),n}function da(e){var s=arguments.length>1&&arguments[1]!==void 0&&arguments[1],t=e.ownerDocument.documentElement,n=Bt(e,t),o=Math.max(t.clientWidth,window.innerWidth||0),i=Math.max(t.clientHeight,window.innerHeight||0),a=s?0:ne(t),r=s?0:ne(t,"left"),c={top:a-n.top+n.marginTop,left:r-n.left+n.marginLeft,width:o,height:i};return p(c)}function Zt(e){var t,n=e.nodeName;return n!=="BODY"&&n!=="HTML"&&(A(e,"position")==="fixed"||(t=yt(e),!!t&&Zt(t)))}function Xt(e){if(!e||!e.parentElement||B())return document.documentElement;for(var t=e.parentElement;t&&A(t,"transform")==="none";)t=t.parentElement;return t||document.documentElement}function kt(e,t,n,s){if(c=arguments.length>4&&arguments[4]!==void 0&&arguments[4],o={top:0,left:0},l=c?Xt(e):Te(e,In(t)),s==="viewport")o=da(l,c);else if(i=void 0,s==="scrollParent"?(i=je(yt(t)),i.nodeName==="BODY"&&(i=e.ownerDocument.documentElement)):s==="window"?i=e.ownerDocument.documentElement:i=s,a=Bt(i,l,c),i.nodeName==="HTML"&&!Zt(l)){var o,i,a,r,c,l,d=On(e.ownerDocument),u=d.height,h=d.width;o.top+=a.top-a.marginTop,o.bottom=u+a.top,o.left+=a.left-a.marginLeft,o.right=h+a.left}else o=a;return n=n||0,r=typeof n=="number",o.left+=r?n:n.left||0,o.top+=r?n:n.top||0,o.right-=r?n:n.right||0,o.bottom-=r?n:n.bottom||0,o}function Yi(e){var t=e.width,n=e.height;return t*n}function qt(e,t,n,s,o){var i,a,c,l,d,u,h=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;return e.indexOf("auto")===-1?e:(i=kt(n,s,h,o),a={top:{width:i.width,height:t.top-i.top},right:{width:i.right-t.right,height:i.height},bottom:{width:i.width,height:i.bottom-t.bottom},left:{width:t.left-i.left,height:i.height}},c=Object.keys(a).map(function(e){return r({key:e},a[e],{area:Yi(a[e])})}).sort(function(e,t){return t.area-e.area}),l=c.filter(function(e){var t=e.width,s=e.height;return t>=n.clientWidth&&s>=n.clientHeight}),u=l.length>0?l[0].key:c[0].key,d=e.split("-")[1],u+(d?"-"+d:""))}function Yt(e,t,n){var s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,o=s?Xt(t):Te(t,In(n));return Bt(n,o,s)}function Gt(e){var n=e.ownerDocument.defaultView,t=n.getComputedStyle(e),s=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),o=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0),i={width:e.offsetWidth+o,height:e.offsetHeight+s};return i}function We(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function Qt(e,t,n){n=n.split("-")[0];var o=Gt(e),i={width:o.width,height:o.height},a=["right","left"].indexOf(n)!==-1,r=a?"top":"left",s=a?"left":"top",c=a?"height":"width",l=a?"width":"height";return i[r]=t[r]+t[c]/2-o[c]/2,n===s?i[s]=t[s]-o[l]:i[s]=t[We(s)],i}function fe(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function ma(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var s=fe(e,function(e){return e[t]===n});return e.indexOf(s)}function en(e,t,n){var s=n===void 0?e:e.slice(0,ma(e,"name",n));return s.forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&Vn(n)&&(t.offsets.popper=p(t.offsets.popper),t.offsets.reference=p(t.offsets.reference),t=n(t,e))}),t}function ha(){if(this.state.isDestroyed)return;var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=Yt(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=qt(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=Qt(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=en(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}function nn(e,t){return e.some(function(e){var n=e.name,s=e.enabled;return s&&n===t})}function Vt(e){for(var n,s,o=[!1,"ms","Webkit","Moz","O"],i=e.charAt(0).toUpperCase()+e.slice(1),t=0;ta[r]&&(e.offsets.popper[n]+=o[n]+i-a[r]),e.offsets.popper=p(e.offsets.popper),g=o[n]+o[m]/2-i/2,h=A(e.instance.popper),v=parseFloat(h["margin"+u]),b=parseFloat(h["border"+u+"Width"]),l=g-e.offsets.popper[n]-v-b,l=Math.max(Math.min(a[m]-i,l),0),e.arrowElement=s,e.offsets.arrow=(d={},z(d,n,Math.round(l)),z(d,j,""),d),e}function Di(e){return e==="end"?"start":e==="start"?"end":e}Dt=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Ye=Dt.slice(3);function Cn(e){var s=arguments.length>1&&arguments[1]!==void 0&&arguments[1],t=Ye.indexOf(e),n=Ye.slice(t+1).concat(Ye.slice(0,t));return s?n.reverse():n}Ke={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function qi(e,t){if(nn(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var i=kt(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split("-")[0],a=We(n),s=e.placement.split("-")[1]||"",o=[];switch(t.behavior){case Ke.FLIP:o=[n,a];break;case Ke.CLOCKWISE:o=Cn(n);break;case Ke.COUNTERCLOCKWISE:o=Cn(n,!0);break;default:o=t.behavior}return o.forEach(function(c,l){if(n!==c||o.length===l+1)return e;n=e.placement.split("-")[0],a=We(n);var u=e.offsets.popper,m=e.offsets.reference,d=Math.floor,j=n==="left"&&d(u.right)>d(m.left)||n==="right"&&d(u.left)d(m.top)||n==="bottom"&&d(u.top)d(i.right),f=d(u.top)d(i.bottom),b=n==="left"&&g||n==="right"&&p||n==="top"&&f||n==="bottom"&&v,h=["top","bottom"].indexOf(n)!==-1,_=!!t.flipVariations&&(h&&s==="start"&&g||h&&s==="end"&&p||!h&&s==="start"&&f||!h&&s==="end"&&v),w=!!t.flipVariationsByContent&&(h&&s==="start"&&p||h&&s==="end"&&g||!h&&s==="start"&&v||!h&&s==="end"&&f),y=_||w;(j||b||y)&&(e.flipped=!0,(j||b)&&(n=o[l+1]),y&&(s=Di(s)),e.placement=n+(s?"-"+s:""),e.offsets.popper=r({},e.offsets.popper,Qt(e.instance.popper,e.offsets.reference,e.placement)),e=en(e.instance.modifiers,e,"flip"))}),e}function Ki(e){var r=e.offsets,o=r.popper,n=r.reference,c=e.placement.split("-")[0],s=Math.floor,i=["top","bottom"].indexOf(c)!==-1,a=i?"right":"bottom",t=i?"left":"top",l=i?"width":"height";return o[a]s(n[a])&&(e.offsets.popper[t]=s(n[a])),e}function Ui(e,t,n,s){var a,r,l,c=e.match(/((?:-|\+)?\d*\.?\d*)(.*)/),i=+c[1],o=c[2];if(!i)return e;if(o.indexOf("%")===0){switch(a=void 0,o){case"%p":a=n;break;case"%":case"%r":default:a=s}return l=p(a),l[t]/100*i}return o==="vh"||o==="vw"?(r=void 0,o==="vh"?r=Math.max(document.documentElement.clientHeight,window.innerHeight||0):r=Math.max(document.documentElement.clientWidth,window.innerWidth||0),r/100*i):i}function Wi(e,t,n,s){var a,r,c=[0,0],l=["right","left"].indexOf(s)!==-1,o=e.split(/(\+|-)/).map(function(e){return e.trim()}),i=o.indexOf(fe(o,function(e){return e.search(/,|\s/)!==-1}));return o[i]&&o[i].indexOf(",")===-1&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."),r=/\s*,\s*|\s+/,a=i!==-1?[o.slice(0,i).concat([o[i].split(r)[0]]),[o[i].split(r)[1]].concat(o.slice(i+1))]:[o],a=a.map(function(e,s){var i=(s===1?!l:l)?"height":"width",o=!1;return e.reduce(function(e,t){return e[e.length-1]===""&&["+","-"].indexOf(t)!==-1?(e[e.length-1]=t,o=!0,e):o?(e[e.length-1]+=t,o=!1,e):e.concat(t)},[]).map(function(e){return Ui(e,i,t,n)})}),a.forEach(function(e,t){e.forEach(function(n,s){Lt(n)&&(c[t]+=n*(e[s-1]==="-"?-1:1))})}),c}function $i(e,t){var i=t.offset,r=e.placement,a=e.offsets,n=a.popper,c=a.reference,o=r.split("-")[0],s=void 0;return Lt(+i)?s=[+i,0]:s=Wi(i,n,c,o),o==="left"?(n.top+=s[0],n.left-=s[1]):o==="right"?(n.top+=s[0],n.left+=s[1]):o==="top"?(n.left+=s[0],n.top-=s[1]):o==="bottom"&&(n.left+=s[0],n.top+=s[1]),e.popper=n,e}function Vi(e,t){i=t.boundariesElement||I(e.instance.popper),e.instance.reference===i&&(i=I(i));var n,o,i,c,l,a=Vt("transform"),s=e.instance.popper.style,d=s.top,u=s.left,h=s[a];return s.top="",s.left="",s[a]="",o=kt(e.instance.popper,e.instance.reference,t.padding,i,e.positionFixed),s.top=d,s.left=u,s[a]=h,t.boundaries=o,c=t.priority,n=e.offsets.popper,l={primary:function(s){var i=n[s];return n[s]o[s]&&!t.escapeWithReference&&(a=Math.min(n[i],o[s]-(s==="right"?n.width:n.height))),z({},i,a)}},c.forEach(function(e){var t=["left","top"].indexOf(e)!==-1?"primary":"secondary";n=r({},n,l[t](e))}),e.offsets.popper=n,e}function Bi(e){if(n=e.placement,i=n.split("-")[0],s=n.split("-")[1],s){var n,s,i,a=e.offsets,o=a.reference,c=a.popper,l=["bottom","top"].indexOf(i)!==-1,t=l?"left":"top",d=l?"width":"height",u={start:z({},t,o[t]),end:z({},t,o[t]+o[d]-c[d])};e.offsets.popper=r({},c,u[s])}return e}function Ii(e){if(!yn(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=fe(e.instance.modifiers,function(e){return e.name==="preventOverflow"}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&arguments[2]!==void 0?arguments[2]:{};mn(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(s.update)},this.update=$n(this.update.bind(this)),this.options=r({},e.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(r({},e.Defaults.modifiers,o.modifiers)).forEach(function(t){s.options.modifiers[t]=r({},e.Defaults.modifiers[t]||{},o.modifiers?o.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return r({name:e},s.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&Vn(e.onLoad)&&e.onLoad(s.reference,s.popper,s.options,e,s.state)}),this.update(),i=this.options.eventsEnabled,i&&this.enableEventListeners(),this.state.eventsEnabled=i}return hn(e,[{key:"update",value:function(){return ha.call(this)}},{key:"destroy",value:function(){return la.call(this)}},{key:"enableEventListeners",value:function(){return ra.call(this)}},{key:"disableEventListeners",value:function(){return ia.call(this)}}]),e}(),ue.Utils=(typeof window!="undefined"?window:global).PopperUtils,ue.placements=Dt,ue.Defaults=Rn,Oe=ue,T="dropdown",Bn="4.6.2",te="bs.dropdown",m="."+te,Be=".data-api",Un=n.default.fn[T],Y=27,ft=32,mt=9,De=38,ze=40,Qn=3,Zn=new RegExp(De+"|"+ze+"|"+Y),Me="disabled",l="show",ts="dropup",ns="dropright",ss="dropleft",ot="dropdown-menu-right",is="position-static",st="hide"+m,nt="hidden"+m,ls="show"+m,ds="shown"+m,us="click"+m,Ne="click"+m+Be,Qe="keydown"+m+Be,fs="keyup"+m+Be,ce='[data-toggle="dropdown"]',gs=".dropdown form",Ue=".dropdown-menu",bs=".navbar-nav",js=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",ys="top-start",_s="top-end",ws="bottom-start",Os="bottom-end",xs="right-start",Cs="left-start",Es={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},ks={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},f=function(){function e(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=e.prototype;return t.toggle=function(){if(this._element.disabled||n.default(this._element).hasClass(Me))return;var s=n.default(this._menu).hasClass(l);if(e._clearMenus(),s)return;this.show(!0)},t.show=function(o){if(o===void 0&&(o=!1),this._element.disabled||n.default(this._element).hasClass(Me)||n.default(this._menu).hasClass(l))return;var a,r={relatedTarget:this._element},c=n.default.Event(ls,r),i=e._getParentFromElement(this._element);if(n.default(i).trigger(c),c.isDefaultPrevented())return;if(!this._inNavbar&&o){if(typeof Oe=="undefined")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");a=this._element,this._config.reference==="parent"?a=i:s.isElement(this._config.reference)&&(a=this._config.reference,typeof this._config.reference.jquery!="undefined"&&(a=this._config.reference[0])),this._config.boundary!=="scrollParent"&&n.default(i).addClass(is),this._popper=new Oe(a,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&n.default(i).closest(bs).length===0&&n.default(document.body).children().on("mouseover",null,n.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),n.default(this._menu).toggleClass(l),n.default(i).toggleClass(l).trigger(n.default.Event(ds,r))},t.hide=function(){if(this._element.disabled||n.default(this._element).hasClass(Me)||!n.default(this._menu).hasClass(l))return;var s={relatedTarget:this._element},o=n.default.Event(st,s),i=e._getParentFromElement(this._element);if(n.default(i).trigger(o),o.isDefaultPrevented())return;this._popper&&this._popper.destroy(),n.default(this._menu).toggleClass(l),n.default(i).toggleClass(l).trigger(n.default.Event(nt,s))},t.dispose=function(){n.default.removeData(this._element,te),n.default(this._element).off(m),this._element=null,this._menu=null,this._popper!==null&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),this._popper!==null&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var t=this;n.default(this._element).on(us,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},t._getConfig=function(t){return t=o({},this.constructor.Default,n.default(this._element).data(),t),s.typeCheckConfig(T,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var n=e._getParentFromElement(this._element);n&&(this._menu=n.querySelector(Ue))}return this._menu},t._getPlacement=function(){var s=n.default(this._element.parentNode),t=ws;return s.hasClass(ts)?t=n.default(this._menu).hasClass(ot)?_s:ys:s.hasClass(ns)?t=xs:s.hasClass(ss)?t=Cs:n.default(this._menu).hasClass(ot)&&(t=Os),t},t._detectNavbar=function(){return n.default(this._element).closest(".navbar").length>0},t._getOffset=function(){var n=this,t={};return typeof this._config.offset=="function"?t.fn=function(e){return e.offsets=o({},e.offsets,n._config.offset(e.offsets,n._element)),e}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return this._config.display==="static"&&(t.modifiers.applyStyle={enabled:!1}),o({},t,this._config.popperConfig)},e._jQueryInterface=function(s){return this.each(function(){var t=n.default(this).data(te),o=typeof s=="object"?s:null;if(t||(t=new e(this,o),n.default(this).data(te,t)),typeof s=="string"){if(typeof t[s]=="undefined")throw new TypeError('No method named "'+s+'"');t[s]()}})},e._clearMenus=function(s){if(s&&(s.which===Qn||s.type==="keyup"&&s.which!==mt))return;for(var a,r,c,d,u,i=[].slice.call(document.querySelectorAll(ce)),o=0,h=i.length;o0&&o--,s.which===ze&&odocument.documentElement.clientHeight,o||(this._element.style.overflowY="hidden"),this._element.classList.add(it),i=s.getTransitionDurationFromElement(this._dialog),n.default(this._element).off(s.TRANSITION_END),n.default(this._element).one(s.TRANSITION_END,function(){t._element.classList.remove(it),o||n.default(t._element).one(s.TRANSITION_END,function(){t._element.style.overflowY=""}).emulateTransitionEnd(t._element,i)}).emulateTransitionEnd(i),this._element.focus()},e._showElement=function(t){var i,c,l,o=this,a=n.default(this._element).hasClass(x),r=this._dialog?this._dialog.querySelector(Kt):null;(!this._element.parentNode||this._element.parentNode.nodeType!==Node.ELEMENT_NODE)&&document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),n.default(this._dialog).hasClass(Ls)&&r?r.scrollTop=0:this._element.scrollTop=0,a&&s.reflow(this._element),n.default(this._element).addClass(ke),this._config.focus&&this._enforceFocus(),c=n.default.Event(qs,{relatedTarget:t}),i=function(){o._config.focus&&o._element.focus(),o._isTransitioning=!1,n.default(o._element).trigger(c)},a?(l=s.getTransitionDurationFromElement(this._dialog),n.default(this._dialog).one(s.TRANSITION_END,i).emulateTransitionEnd(l)):i()},e._enforceFocus=function(){var t=this;n.default(document).off(Ae).on(Ae,function(e){document!==e.target&&t._element!==e.target&&n.default(t._element).has(e.target).length===0&&t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown?n.default(this._element).on(dt,function(e){t._config.keyboard&&e.which===Je?(e.preventDefault(),t.hide()):!t._config.keyboard&&e.which===Je&&t._triggerBackdropTransition()}):this._isShown||n.default(this._element).off(dt)},e._setResizeEvent=function(){var t=this;this._isShown?n.default(window).on(lt,function(e){return t.handleUpdate(e)}):n.default(window).off(lt)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop(function(){n.default(document.body).removeClass(tt),t._resetAdjustments(),t._resetScrollbar(),n.default(t._element).trigger(at)})},e._removeBackdrop=function(){this._backdrop&&(n.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var a,r,c,o=this,i=n.default(this._element).hasClass(x)?x:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=Ps,i&&this._backdrop.classList.add(i),n.default(this._backdrop).appendTo(document.body),n.default(this._element).on(He,function(e){if(o._ignoreBackdropClick){o._ignoreBackdropClick=!1;return}if(e.target!==e.currentTarget)return;o._config.backdrop==="static"?o._triggerBackdropTransition():o.hide()}),i&&s.reflow(this._backdrop),n.default(this._backdrop).addClass(ke),!t)return;if(!i){t();return}r=s.getTransitionDurationFromElement(this._backdrop),n.default(this._backdrop).one(s.TRANSITION_END,t).emulateTransitionEnd(r)}else!this._isShown&&this._backdrop?(n.default(this._backdrop).removeClass(ke),a=function(){o._removeBackdrop(),t&&t()},n.default(this._element).hasClass(x)?(c=s.getTransitionDurationFromElement(this._backdrop),n.default(this._backdrop).one(s.TRANSITION_END,a).emulateTransitionEnd(c)):a()):t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:mo,popperConfig:null},Po={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Ho={HIDE:"hide"+d,HIDDEN:"hidden"+d,SHOW:"show"+d,SHOWN:"shown"+d,INSERTED:"inserted"+d,CLICK:"click"+d,FOCUSIN:"focusin"+d,FOCUSOUT:"focusout"+d,MOUSEENTER:"mouseenter"+d,MOUSELEAVE:"mouseleave"+d},g=function(){function t(e,t){if(typeof Oe=="undefined")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(!this._isEnabled)return;if(t){var o=this.constructor.DATA_KEY,s=n.default(t.currentTarget).data(o);s||(s=new this.constructor(t.currentTarget,this._getDelegateConfig()),n.default(t.currentTarget).data(o,s)),s._activeTrigger.click=!s._activeTrigger.click,s._isWithActiveTrigger()?s._enter(null,s):s._leave(null,s)}else{if(n.default(this.getTipElement()).hasClass(oe)){this._leave(null,this);return}this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),n.default.removeData(this.element,this.constructor.DATA_KEY),n.default(this.element).off(this.constructor.EVENT_KEY),n.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&n.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t,i,a,r,c,l,d,u,h,m,o=this;if(n.default(this.element).css("display")==="none")throw new Error("Please use show on visible elements");if(i=n.default.Event(this.constructor.Event.SHOW),this.isWithContent()&&this._isEnabled){if(n.default(this.element).trigger(i),a=s.findShadowRoot(this.element),d=n.default.contains(a!==null?a:this.element.ownerDocument.documentElement,this.element),i.isDefaultPrevented()||!d)return;t=this.getTipElement(),r=s.getUID(this.constructor.NAME),t.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&n.default(t).addClass(se),u=typeof this.config.placement=="function"?this.config.placement.call(this,t,this.element):this.config.placement,c=this._getAttachment(u),this.addAttachmentClass(c),h=this._getContainer(),n.default(t).data(this.constructor.DATA_KEY,this),n.default.contains(this.element.ownerDocument.documentElement,this.tip)||n.default(t).appendTo(h),n.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new Oe(this.element,t,this._getPopperConfig(c)),n.default(t).addClass(oe),n.default(t).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&n.default(document.body).children().on("mouseover",null,n.default.noop),l=function(){o.config.animation&&o._fixTransition();var t=o._hoverState;o._hoverState=null,n.default(o.element).trigger(o.constructor.Event.SHOWN),t===qe&&o._leave(null,o)},n.default(this.tip).hasClass(se)?(m=s.getTransitionDurationFromElement(this.tip),n.default(this.tip).one(s.TRANSITION_END,l).emulateTransitionEnd(m)):l()}},e.hide=function(t){var c,o=this,i=this.getTipElement(),a=n.default.Event(this.constructor.Event.HIDE),r=function(){o._hoverState!==ie&&i.parentNode&&i.parentNode.removeChild(i),o._cleanTipClass(),o.element.removeAttribute("aria-describedby"),n.default(o.element).trigger(o.constructor.Event.HIDDEN),o._popper!==null&&o._popper.destroy(),t&&t()};if(n.default(this.element).trigger(a),a.isDefaultPrevented())return;n.default(i).removeClass(oe),"ontouchstart"in document.documentElement&&n.default(document.body).children().off("mouseover",null,n.default.noop),this._activeTrigger[Do]=!1,this._activeTrigger[Re]=!1,this._activeTrigger[N]=!1,n.default(this.tip).hasClass(se)?(c=s.getTransitionDurationFromElement(i),n.default(i).one(s.TRANSITION_END,r).emulateTransitionEnd(c)):r(),this._hoverState=""},e.update=function(){this._popper!==null&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){n.default(this.getTipElement()).addClass(vt+"-"+t)},e.getTipElement=function(){return this.tip=this.tip||n.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(n.default(t.querySelectorAll(Mo)),this.getTitle()),n.default(t).removeClass(se+" "+oe)},e.setElementContent=function(t,s){if(typeof s=="object"&&(s.nodeType||s.jquery)){this.config.html?n.default(s).parent().is(t)||t.empty().append(s):t.text(n.default(s).text());return}this.config.html?(this.config.sanitize&&(s=vo(s,this.config.whiteList,this.config.sanitizeFn)),t.html(s)):t.text(s)},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t=typeof this.config.title=="function"?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var n=this,s={placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Fo},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&n._handlePopperPlacementChange(t)},onUpdate:function(t){return n._handlePopperPlacementChange(t)}};return o({},s,this.config.popperConfig)},e._getOffset=function(){var n=this,t={};return typeof this.config.offset=="function"?t.fn=function(e){return e.offsets=o({},e.offsets,n.config.offset(e.offsets,n.element)),e}:t.offset=this.config.offset,t},e._getContainer=function(){return this.config.container===!1?document.body:s.isElement(this.config.container)?n.default(this.config.container):n.default(document).find(this.config.container)},e._getAttachment=function(t){return Lo[t.toUpperCase()]},e._setListeners=function(){var t=this,s=this.config.trigger.split(" ");s.forEach(function(e){if(e==="click")n.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==No){var s=e===N?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o=e===N?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;n.default(t.element).on(s,t.config.selector,function(e){return t._enter(e)}).on(o,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},n.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||t!=="string")&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,s){var o=this.constructor.DATA_KEY;if(s=s||n.default(t.currentTarget).data(o),s||(s=new this.constructor(t.currentTarget,this._getDelegateConfig()),n.default(t.currentTarget).data(o,s)),t&&(s._activeTrigger[t.type==="focusin"?Re:N]=!0),n.default(s.getTipElement()).hasClass(oe)||s._hoverState===ie){s._hoverState=ie;return}if(clearTimeout(s._timeout),s._hoverState=ie,!s.config.delay||!s.config.delay.show){s.show();return}s._timeout=setTimeout(function(){s._hoverState===ie&&s.show()},s.config.delay.show)},e._leave=function(t,s){var o=this.constructor.DATA_KEY;if(s=s||n.default(t.currentTarget).data(o),s||(s=new this.constructor(t.currentTarget,this._getDelegateConfig()),n.default(t.currentTarget).data(o,s)),t&&(s._activeTrigger[t.type==="focusout"?Re:N]=!1),s._isWithActiveTrigger())return;if(clearTimeout(s._timeout),s._hoverState=qe,!s.config.delay||!s.config.delay.hide){s.hide();return}s._timeout=setTimeout(function(){s._hoverState===qe&&s.hide()},s.config.delay.hide)},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var i=n.default(this.element).data();return Object.keys(i).forEach(function(e){Co.indexOf(e)!==-1&&delete i[e]}),t=o({},this.constructor.Default,i,typeof t=="object"&&t?t:{}),typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),typeof t.title=="number"&&(t.title=t.title.toString()),typeof t.content=="number"&&(t.content=t.content.toString()),s.typeCheckConfig(j,t,this.constructor.DefaultType),t.sanitize&&(t.template=vo(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t,n={};if(this.config)for(t in this.config)this.constructor.Default[t]!==this.config[t]&&(n[t]=this.config[t]);return n},e._cleanTipClass=function(){var s=n.default(this.getTipElement()),t=s.attr("class").match(xo);t!==null&&t.length&&s.removeClass(t.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),s=this.config.animation;if(t.getAttribute("x-placement")!==null)return;n.default(t).removeClass(se),this.config.animation=!1,this.hide(),this.show(),this.config.animation=s},t._jQueryInterface=function(s){return this.each(function(){var o=n.default(this),e=o.data(ve),i=typeof s=="object"&&s;if(!e&&/dispose|hide/.test(s))return;if(e||(e=new t(this,i),o.data(ve,e)),typeof s=="string"){if(typeof e[s]=="undefined")throw new TypeError('No method named "'+s+'"');e[s]()}})},u(t,null,[{key:"VERSION",get:function(){return jo}},{key:"Default",get:function(){return Ro}},{key:"NAME",get:function(){return j}},{key:"DATA_KEY",get:function(){return ve}},{key:"Event",get:function(){return Ho}},{key:"EVENT_KEY",get:function(){return d}},{key:"DefaultType",get:function(){return Po}}]),t}(),n.default.fn[j]=g._jQueryInterface,n.default.fn[j].Constructor=g,n.default.fn[j].noConflict=function(){return n.default.fn[j]=Ut,g._jQueryInterface},O="popover",Vo="4.6.2",he="bs.popover",c="."+he,Uo=n.default.fn[O],jt="bs-popover",qo=new RegExp("(^|\\s)"+jt+"\\S+","g"),Yo="fade",Go="show",Xo=".popover-header",Qo=".popover-body",Zo=o({},g.Default,{placement:"right",trigger:"click",content:"",template:''}),Jo=o({},g.DefaultType,{content:"(string|element|function)"}),ei={HIDE:"hide"+c,HIDDEN:"hidden"+c,SHOW:"show"+c,SHOWN:"shown"+c,INSERTED:"inserted"+c,CLICK:"click"+c,FOCUSIN:"focusin"+c,FOCUSOUT:"focusout"+c,MOUSEENTER:"mouseenter"+c,MOUSELEAVE:"mouseleave"+c},we=function(e){ua(t,e);function t(){return e.apply(this,arguments)||this}var s=t.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){n.default(this.getTipElement()).addClass(jt+"-"+t)},s.getTipElement=function(){return this.tip=this.tip||n.default(this.config.template)[0],this.tip},s.setContent=function(){var t,s=n.default(this.getTipElement());this.setElementContent(s.find(Xo),this.getTitle()),t=this._getContent(),typeof t=="function"&&(t=t.call(this.element)),this.setElementContent(s.find(Qo),t),s.removeClass(Yo+" "+Go)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var s=n.default(this.getTipElement()),t=s.attr("class").match(qo);t!==null&&t.length>0&&s.removeClass(t.join(""))},t._jQueryInterface=function(s){return this.each(function(){var e=n.default(this).data(he),o=typeof s=="object"?s:null;if(!e&&/dispose|hide/.test(s))return;if(e||(e=new t(this,o),n.default(this).data(he,e)),typeof s=="string"){if(typeof e[s]=="undefined")throw new TypeError('No method named "'+s+'"');e[s]()}})},u(t,null,[{key:"VERSION",get:function(){return Vo}},{key:"Default",get:function(){return Zo}},{key:"NAME",get:function(){return O}},{key:"DATA_KEY",get:function(){return he}},{key:"Event",get:function(){return ei}},{key:"EVENT_KEY",get:function(){return c}},{key:"DefaultType",get:function(){return Jo}}]),t}(g),n.default.fn[O]=we._jQueryInterface,n.default.fn[O].Constructor=we,n.default.fn[O].noConflict=function(){return n.default.fn[O]=Uo,we._jQueryInterface},b="scrollspy",si="4.6.2",xe="bs.scrollspy",Se="."+xe,ai=".data-api",ri=n.default.fn[b],ci="dropdown-item",v="active",di="activate"+Se,ui="scroll"+Se,hi="load"+Se+ai,mi="offset",Ct="position",pi='[data-spy="scroll"]',Et=".nav, .list-group",Pe=".nav-link",bi=".nav-item",Xe=".list-group-item",yi=".dropdown",_i=".dropdown-item",wi=".dropdown-toggle",St={offset:10,method:"auto",target:""},xi={offset:"number",method:"string",target:"(string|element)"},$=function(){function t(e,t){var s=this;this._element=e,this._scrollElement=e.tagName==="BODY"?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+Pe+","+(this._config.target+" "+Xe+",")+(this._config.target+" "+_i),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,n.default(this._scrollElement).on(ui,function(e){return s._process(e)}),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var i,t=this,a=this._scrollElement===this._scrollElement.window?mi:Ct,o=this._config.method==="auto"?a:this._config.method,r=o===Ct?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),i=[].slice.call(document.querySelectorAll(this._selector)),i.map(function(e){var t,a,i=s.getSelectorFromElement(e);return i&&(t=document.querySelector(i)),t&&(a=t.getBoundingClientRect(),a.width||a.height)?[n.default(t)[o]().top+r,i]:null}).filter(Boolean).sort(function(e,t){return e[0]-t[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){n.default.removeData(this._element,xe),n.default(this._scrollElement).off(Se),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if(t=o({},St,typeof t=="object"&&t?t:{}),typeof t.target!="string"&&s.isElement(t.target)){var i=n.default(t.target).attr("id");i||(i=s.getUID(b),n.default(t.target).attr("id",i)),t.target="#"+i}return s.typeCheckConfig(b,t,xi),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t,s,i,n=this._getScrollTop()+this._config.offset,o=this._getScrollHeight(),a=this._config.offset+o-this._getOffsetHeight();if(this._scrollHeight!==o&&this.refresh(),n>=a){s=this._targets[this._targets.length-1],this._activeTarget!==s&&this._activate(s);return}if(this._activeTarget&&n0){this._activeTarget=null,this._clear();return}for(t=this._offsets.length;t--;)i=this._activeTarget!==this._targets[t]&&n>=this._offsets[t]&&(typeof this._offsets[t+1]=="undefined"||n',t.href="#"+e.id,e.insertAdjacentElement("beforeend",t),e.addEventListener("mouseenter",function(){t.style.visibility="initial"}),e.addEventListener("mouseleave",function(){t.style.visibility="hidden"})}})})}(jQuery),function(e){"use strict";var t={init:function(){e(document).ready(function(){e(document).on("keypress",".td-search input",function(t){if(t.keyCode!==13)return;var n=e(this).val(),s="https://ctrl-q.ptarmiganlabs.com/search/?q="+n;return document.location=s,!1})})}};t.init()}(jQuery),function(){var e,t,n=function(){e=document.createElement("div"),e.classList.add("drawioframe"),t=document.createElement("iframe"),e.appendChild(t),document.body.appendChild(e)},s=function(){e&&(document.body.removeChild(e),e=void 0,t=void 0)},o=function(e,o){var i,a,r="https://embed.diagrams.net/";r+="?embed=1&ui=atlas&spin=1&modified=unsavedChanges&proto=json&saveAndEdit=1&noSaveBtn=1",i=document.createElement("div"),i.classList.add("drawio"),e.parentNode.insertBefore(i,e),i.appendChild(e),a=document.createElement("button"),a.classList.add("drawiobtn"),a.insertAdjacentHTML("beforeend",''),i.appendChild(a),a.addEventListener("click",function(){if(t)return;n();var a=function(n){var i,c,r=t.contentWindow;if(n.data.length>0&&n.source==r){if(i=JSON.parse(n.data),i.event=="init")r.postMessage(JSON.stringify({action:"load",xml:o}),"*");else if(i.event=="save")c=o.indexOf("data:image/png")==0?"xmlpng":"xmlsvg",r.postMessage(JSON.stringify({action:"export",format:c}),"*");else if(i.event=="export"){const n=e.src.replace(/^.*?([^/]+)$/,"$1"),t=document.createElement("a");t.setAttribute("href",i.data),t.setAttribute("download",n),document.body.appendChild(t),t.click(),t.parentNode.removeChild(t)}(i.event=="exit"||i.event=="export")&&(window.removeEventListener("message",a),s())}};window.addEventListener("message",a),t.setAttribute("src",r)})};document.addEventListener("DOMContentLoaded",function(){for(const s of document.getElementsByTagName("img")){const n=s,t=n.getAttribute("src");if(!t.endsWith(".svg")&&!t.endsWith(".png"))continue;const e=new XMLHttpRequest;e.responseType="blob",e.open("GET",t),e.addEventListener("load",function(){const t=new FileReader;t.addEventListener("load",function(){if(t.result.indexOf("mxfile")!=-1){const t=new FileReader;t.addEventListener("load",function(){const e=t.result;o(n,e)}),t.readAsDataURL(e.response)}}),t.readAsBinaryString(e.response)}),e.send()}})}() \ No newline at end of file diff --git a/docs/search/index.html b/docs/search/index.html index 7dfd5344..f0e30d4a 100644 --- a/docs/search/index.html +++ b/docs/search/index.html @@ -154,7 +154,7 @@

    Search Results

    - © 2023 Ptarmigan Labs AB All Rights Reserved + © 2024 Ptarmigan Labs AB All Rights Reserved

    About

    diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 33b562eb..1c16910b 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -316,6 +316,8 @@ https://butler.ptarmiganlabs.com/docs/concepts/real-time-metrics/ 2023-12-15T15:31:42+01:00 + + https://butler.ptarmiganlabs.com/docs/examples/when-things-dont-work/ https://butler.ptarmiganlabs.com/blog/2023/04/14/butler-blog-moved-to-ptarmiganlabs.com/ 2023-04-14T10:18:33+02:00