REDASH_MULTI_ORGを利用する
概要
- redashで複数組織を管理したい場合(互いにダッシュボードを見れないように管理したい場合)REDASH_MULTI_ORG機能を利用する必要がある。
- groupsは組織内でユーザ権限を分けることはできるが、組織単位で制御ができない。
- 今回はdocker-imageから引っ張って来たre:dashで検証
- REDASH_MULTI_ORGはドキュメントが少ないので、手順とデバッグの方法を記載する。
REDASH_MULTI_ORGの適用手順
- envにREDASH_MULTI_ORG=trueを追加する。
- docker-compose downで一度コンテナを削除する
- docker-compose up -d でコンテナを再生成する ←この時にenvが適用されるようでrestartだと適用されない模様
-
http://{URL}/login
→http://{URL}/default/login
でアクセスする
organizations
テーブルのslug
がpathに適用されるため、デフォがdefault
になる。(←ここが分からずハマった。。) -
organizations
テーブルに
insert into organizations (updated_at,created_at,name,slug,settings) values (now(),now(),'Test','test_org','{}');
のように新しい組織を突っ込む - 5で突っ込んだ組織のidで
update users set org_id={5で追加したorg_id} where id={user_id};
ユーザを更新する。 -
http://{URL}/test/login
で新しい組織でアクセス可能になる。
デバッグ方法
-
docker exec -it -u root redash_server_1 bash
でappコンテナに入る -
apt update; apt install vim
でとりあえずvimを入れる -
〜.py
を編集し、printなどを仕込む。編集したファイルと同名の〜.pyc
を削除する -
python
→import py_compile
→py_compile.compile('〜.pyc')
でコンパイルし直す。 chown redash.redash 〜.pyc
- コンテナからexitし、
docker restart redash_server_1
でコンテナをrestartする。 -
docker logs -f redash_server_1
でログを出力する -
http://{URL}/default
などでアクセスしてログを確認する。
まとめ
OSSのコード真面目に読んでデバッグしたことがあまりなかったので勉強になりました。
REDASH_MULTI_ORGの詳細な利用方法など、redashのドキュメントが充実していない仕様があるようなので、躓きポイントは記事などに落とし、シェアできると幸せになれる気がしました!
(↑我流でやったので良法があればコメントくださいmm)