Redashbot V2は、RedashのためのオープンソースSlack botです。
(hakobera/redashbotからフォークされましたが、ほぼすべてのコードを書き直し、V2として公開しています。)
- Chartのスクリーンショット
- Dashboardのスクリーンショット
- 表形式の結果(※スクリーンショットではありません)
- Dockerデプロイメント
サーバーレスなデプロイメント- HTTP基盤の新しいSlackアプリ(非RTMスタイル)
- オープンソース!
- Visualization
@botname <Query URL>#<Viz ID>- e.g.
@redash https://your-redash-server.example.com/queries/1#2
- e.g.
- Dashboard
@botname <Dashboard URL>- e.g.
@redash https://your-redash-server.example.com/dashboards/dashboard-name
- e.g.
- Table
@botname <Query URL>#table- e.g.
@redash https://your-redash-server.example.com/queries/1#table
- e.g.
Slackアプリを作成し、環境変数SLACK_BOT_TOKENとSLACK_SIGNING_SECRETを設定してください。
公式ドキュメントを参照してください。
イベントサブスクリプションページでは、Request URLはhttps://<your-domain>/slack/eventsになります。
その後、npm startまたはdocker run yamitzky/redashbot:mainを実行して起動します。Dockerを使用する場合は、-eオプションまたは.envファイルを介して環境変数を渡すことを忘れないでください。
/redash-capture [URL]でredashbotを使用できます。
アプリのスラッシュコマンドページで、[Create New Command]をクリックして送信します。Commandは/redash-capture、Request URLはhttps://<your-domain>/slack/eventsを指定してください。
redashbotをワークフローステップとして使用できます。
アプリのInteractivity & Shortcutsページで、Interactivityを有効にします。Request URLはhttps://<your-domain>/slack/eventsになります。
その後、Workflow Stepsページに移動し、[Add Step]をクリックして送信します。Callback IDはredash_captureを指定してください。
SlackのBotトークン。
Slackの署名シークレット。
Socket Modeを有効にするにはtrueに設定します。有効にすると、BotはHTTPエンドポイントの代わりにWebSocket接続を使用します。
Socket Mode用のアプリレベルトークン。SLACK_SOCKET_MODE=trueの場合に必要です。トークンはxapp-で始まる必要があります。
HTTPサーバーのポート番号。デフォルトは3000です。
RedashのURLとそのAPIキー。
Botからアクセス可能なRedashのURL。
複数のRedashを一度に使用したい場合は、以下のようにこの変数を指定します。
REDASH_HOSTS_AND_API_KEYS="http://redash1.example.com;TOKEN1,http://redash2.example.com;TOKEN2"
または、各RedashにREDASH_HOST_ALIASを指定する必要がある場合は、以下のようにします。
REDASH_HOSTS_AND_API_KEYS="http://redash1.example.com;http://redash1-alias.example.com;TOKEN1,http://redash2.example.com;TOKEN2"
キャプチャ前に読み込み完了を待つミリ秒数。
chromium、firefox、またはwebkit。デフォルトはchromiumです。
ブラウザのタイムアウト時間(ミリ秒)。デフォルトはSLEEP_TIMEの値、またはSLEEP_TIMEが設定されていない場合は10000です。
RedashリクエストにカスタムHTTPヘッダーを追加します。セミコロン区切りのkey:value形式で指定します。
例:
REDASH_CUSTOM_HEADERS="CF-Access-Client-Id:your-client-id;CF-Access-Client-Secret:your-client-secret"
このリポジトリをクローンし、以下を実行します。
$ npm install
$ npx playwright install
$ export REDASH_HOST=https://your-redash-server.example.com
$ export REDASH_API_KEY=your-redash-api-key
$ export SLACK_BOT_TOKEN=your-slack-bot-token
$ export SLACK_SIGNING_SECRET=your-slack-signing-secret
$ # Socket Mode(オプション)
$ export SLACK_SOCKET_MODE=true
$ export SLACK_APP_TOKEN=xapp-your-app-token
$ npm startRedashbotはNodeプログラムとして作られています。
npm start
Dockerイメージが提供されています。現在、latestタグはv1(旧バージョン)に使用されているため、2.0.0などを使用する必要があります。
docker run -it --rm -e SLACK_BOT_TOKEN=$SLACK_BOT_TOKEN -e SLACK_SIGNING_SECRET=$SLACK_SIGNING_SECRET -e REDASH_HOSTS_AND_API_KEYS=$REDASH_HOSTS_AND_API_KEYS -p 3000:3000 yamitzky/redashbot:2.0.0
docker-composeも提供されています。
docker-compose up
以下のボタンをクリックするだけで、簡単にredashbotをHerokuにデプロイできます。
