Skip to content

Latest commit

 

History

History
146 lines (90 loc) · 5.04 KB

README.ja.md

File metadata and controls

146 lines (90 loc) · 5.04 KB

Redash用Slack Bot V2

English README

Redashbot V2は、RedashのためのオープンソースSlack botです。

(hakobera/redashbotからフォークされましたが、ほぼすべてのコードを書き直し、V2として公開しています。)

機能

  • Chartのスクリーンショット
  • Dashboardのスクリーンショット
  • 表形式の結果(※スクリーンショットではありません)
  • Dockerデプロイメント
  • サーバーレスなデプロイメント
  • HTTP基盤の新しいSlackアプリ(非RTMスタイル)
  • オープンソース!

screenshot.png

使用方法

  • Visualization
    • @botname <Query URL>#<Viz ID>
      • e.g. @redash https://your-redash-server.example.com/queries/1#2
  • Dashboard
    • @botname <Dashboard URL>
      • e.g. @redash https://your-redash-server.example.com/dashboards/dashboard-name
  • Table
    • @botname <Query URL>#table
      • e.g. @redash https://your-redash-server.example.com/queries/1#table

セットアップ

Slackアプリを作成し、環境変数SLACK_BOT_TOKENSLACK_SIGNING_SECRETを設定してください。

公式ドキュメントを参照してください。

イベントサブスクリプションページでは、Request URLhttps://<your-domain>/slack/eventsになります。

その後、npm startまたはdocker run yamitzky/redashbot:mainを実行して起動します。Dockerを使用する場合は、-eオプションまたは.envファイルを介して環境変数を渡すことを忘れないでください。

スラッシュコマンド(オプション)

/redash-capture [URL]でredashbotを使用できます。

アプリのスラッシュコマンドページで、[Create New Command]をクリックして送信します。Command/redash-captureRequest URLhttps://<your-domain>/slack/eventsを指定してください。

ワークフローステップ(オプション)

redashbotをワークフローステップとして使用できます。

アプリのInteractivity & Shortcutsページで、Interactivityを有効にします。Request URLhttps://<your-domain>/slack/eventsになります。

その後、Workflow Stepsページに移動し、[Add Step]をクリックして送信します。Callback IDredash_captureを指定してください。

環境変数

SLACK_BOT_TOKEN(必須)

SlackのBotトークン。

SLACK_SIGNING_SECRET(必須)

Slackの署名シークレット。

REDASH_HOSTとREDASH_API_KEY(オプション)

RedashのURLとそのAPIキー。

REDASH_HOST_ALIAS(オプション)

Botからアクセス可能なRedashのURL。

REDASH_HOSTS_AND_API_KEYS(オプション)

複数の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"

SLEEP_TIME(オプション)

キャプチャ前に読み込み完了を待つミリ秒数。

BROWSER(オプションかつ実験的)

chromiumfirefox、またはwebkit。デフォルトはchromiumです。

REDASH_CUSTOM_HEADERS(オプション)

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
$ npm start

デプロイ

RedashbotはNodeプログラムとして作られています。

npm start

Docker

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

Heroku(テストされていません!)

以下のボタンをクリックするだけで、簡単にredashbotをHerokuにデプロイできます。

Deploy