ptarmiganlabs / butler

Butler brings superpowers to Qlik Sense Enterprise on Windows! Advanced reload failure alerts, task scheduler, key-value store, file system access and much more.
https://butler.ptarmiganlabs.com
MIT License
58 stars 8 forks source link

upgrade to butler v3.1.0 error rest api qlik sense #106

Closed hvdbunte closed 3 years ago

hvdbunte commented 3 years ago

Hi,

We have used butler for a bit more then a year to sent slack messages from our qlik sense server. We installed it on our local qlik sense server.

We installed a new server and upgraded our qlik environment to april 2020 and I thought I will upgrade butler as well to the latest version. I followed the configuration steps and it is running when I start node butler.js from an elevated prompt.

But now I have the following issue. I created a rest api connector in Qlik to use this to send messages to slack. But when I create the rest api connector with the following settings, copied from our previous server, it gives this error: failed to connect to server. Please check connection parameters. see screenshots for the settings I have used

I don't have a lot of experience with this but the previous version worked great so hopefully somebody can help to give some guidance to fix this.

Kind Regards,

Hvdbunte

Describe environment:

Config file(s) What's the content of the config file(s) you use?


Butler: Logging configuration logLevel: info # Log level. Possible log levels are silly, debug, verbose, info, warn, error fileLogging: false # true/false to enable/disable logging to disk file logDirectory: log # Subdirectory where log files are stored (no trailing / )

Heartbeats can be used to send "I'm alive" messages to any other tool, e.g. a infrastructure monitoring tool heartbeat: enabled: false remoteURL: http://my.monitoring.server/some/path/ frequency: every 1 hour # https://bunkat.github.io/later/parsers.html

slackConfig: enable: true webhookURL: https://hooks.slack.com/services/my_webhook loginNotificationChannel: team-bi-monitoring taskFailureChannel: team-bi-monitoring

mqttConfig: enable: false brokerHost: brokerPort: 1883 taskFailureTopic: qliksense/task_failure taskFailureServerStatusTopic: qliksense/butler/task_failure_server sessionStartTopic: qliksense/session/start sessionStopTopic: qliksense/session/stop connectionOpenTopic: qliksense/connection/open connectionCloseTopic: qliksense/connection/close sessionServerStatusTopic: qliksense/butler/session_server activeUserCountTopic: qliksense/users/active/count activeUsersTopic: qliksense/users/active/usernames

udpServerConfig: enable: true serverHost: qliksense-p portSessionConnectionEvents: 9997 portTaskFailure: 9998

restServerConfig: enable: true serverHost: qliksense-p serverPort: 8080

Enable/disable individual REST API endpoints. Set config item below to true to enable that endpoint. restServerEndpointsEnable: activeUserCount: true activeUsers: true slackPostMessage: true createDir: true createDirQVD: true mqttPublishMessage: true senseStartTask: true senseAppDump: true senseListApps: true butlerping: true base62ToBase16: true base16ToBase62: true

Certificates to use when connecting to Sense. Get these from the Certificate Export in QMC. cert: clientCert: C:\ProgramData\Qlik\Sense\Repository\Exported Certificates.Local Certificates\client.pem clientCertKey: C:\ProgramData\Qlik\Sense\Repository\Exported Certificates.Local Certificates\client_key.pem clientCertCA: C:\ProgramData\Qlik\Sense\Repository\Exported Certificates.Local Certificates\root.pem

If running Butler in a Docker container, the cert paths MUST be the following

# clientCert: /nodeapp/config/certificate/client.pem
# clientCertKey: /nodeapp/config/certificate/client_key.pem
# clientCertCA: /nodeapp/config/certificate/root.pem

configEngine: engineVersion: 12.170.2 # Qlik Associative Engine version to use with Enigma.js. Ver 12.170.2 works with Feb 2019 host: qliksense-p port: 4747 useSSL: true headers: X-Qlik-User: UserDirectory=Internal;UserId=sa_repository rejectUnauthorized: false

configQRS: authentication: certificates host: qliksense-p useSSL: true port: 4242 headerKey: X-Qlik-User headerValue: UserDirectory=Internal; UserId=sa_repository

configDirectories:

enableDirectoryCreation: false

qvdPath: <Path to folder under which QVDs are stored>

gitHub: host: api.github.com pathPrefix: ''

image image image

mountaindude commented 3 years ago

Sorry for not responding sooner, lots of things going on.

I strongly recommend upgrading to most recent version of Butler (4.3). It adds many security updates as well as a much more mature REST API with proper Swagger documentation. There are also great improvements when it comes to task scheduling, parameter passing between reload tasks and last but certainly not least: Alerts when reload tasks fail.

Or wait for the soon to be released 5.0 version, which adds yet another 15-ish features and improvements.

mountaindude commented 3 years ago

Oh, forgot:

With respect to the issues you experience with Butler 3.1.0, I unfortunately don't have the bandwidth to look into them. Focus right now is on Butler 5.0, which will be worth waiting for (I hope...)!