はじめに
v4.0.1 のリリースから約4ヶ月半、2018年9月21日に Redash v5.0.0 がリリースされたので、CHANGELOG と Pull Request を確認しながらリリース内容をまとめました。
今回は、クエリ散乱の解決策として期待できそうな「クエリとダッシュボードのタグ・お気に入り機能」や、以前から要望が高かった「ユーザの無効化」のほか、多数の機能追加と変更およびバグフィックスが行われています。
また、過去のリリース内容は以下にまとめていますので、バージョンアップを検討中の方などの参考になればと思います。
- Redash v4 の変更内容一覧を CHANGELOG と Pull Request から確認する - Qiita
- Redash v3 の変更内容一覧を CHANGELOG と Pull Request から確認する - Qiita
v5.0.1 - 2018-09-27
追加
変更
-
Celery 3.1.26 へのアップデート @jezdez
- Celery 4 へのアップデート準備
v5.0.0 - 2018-09-21
セキュリティ
-
Google OAuth クライアントシークレットを公開しない @arikfr
- Google OAuth の有効時に API
/api/config
から OAuth クライアントシークレットが漏れる問題の対策 - v4 の場合 v4.0.2 にアップグレードするか、手動修正で対応する事を強く推奨
- 詳細は次のページを参照
- Google OAuth の有効時に API
変更
-
モバイルのダッシュボードとクエリページを改善 @kocsmy
- before/after は https://github.com/getredash/redash/issues/2796 を参考に
-
クエリとダッシュボードの favorite と空の状態について UI を改善 @arikfr
- トップページで、クエリまたはダッシュボードが未登録時の細かいメッセージと画面修正
- クエリ検索ボックスの不要な X(クリアボタン)を削除 @kocsmy
-
ダッシュボード一覧のソートを追加 @jezdez
- 作成日時のソートが可能に
-
クエリ一覧の表示を作成日時の降順に変更 @jezdez
- 修正前は昇順だった
- 確かに降順が自然
-
ダッシュボードの非所有者がダッシュボードにアクセス可能なユーザを追加しようとするとエラーを表示する @alison985
- ダッシュボードの権限管理は
REDASH_FEATURE_SHOW_PERMISSIONS_CONTROL
をtrue
にするとダッシュボードページに編集メニューが追加される
- ダッシュボードの権限管理は
-
Celery タスクのクエリ実行時エラーを正しく伝える @alison985
- 以前はエラーの詳細が不明だった
-
ヘッダーの検索ボックスで検索した時にリロードするようにした @jezdez
- ヘッダーでの再検索が出来ない(反応しない)ようになっていた
修正
-
BigQuery のデフォルトのロケーションを US ではなく null にする @arikfr
- EU の場合は明示的に
EU
を指定する必要があったが、null
にすることで US または EU が利用できる
- EU の場合は明示的に
- Fix: query embeds are broken. @arikfr
- Celery ログフォーマットのタイポ修正 @ariarijp
-
「Outdated Queries」リストで QuerySerializer を使用 @jezdez
- このリストは Admin にある(パスは
/admin/queries/outdated
)
- このリストは Admin にある(パスは
- 時々ウィジェットの高さが0になる問題を修正 @kravets-levko
-
Athena で NaN/Infinity を null としてシリアライズするために simple_json に変更 @kravets-levko, @jezdez
- Athena から NaN または Infinity が返ってきた時に、“Error running query: failed communicating with server. Please check your Internet connection and try again.” というエラーが表示されるが、このエラーから原因が分かりづらいため
-
value
フィールドを持たないパラメータのクエリを定期実行のスケジュール実行に失敗する問題を修正 @arikfr-
value
フィールドを持たないパラメータとは?
-
- MongoDB クエリの結果パーサがユニコードキーをサポートしていない問題を修正 @arikfr
-
Google Analytics スキーマがロード出来ない問題を修正 @arikfr
-
defaultProfileId
を持たない Google Analytics プロパティではロードできなかった
-
- date/time パラメータのグローバルオプションが機能しない問題を修正 @kravets-levko
- ウィジェットを移動・リサイズした時に崩れる問題を修正 @kravets-levko
-
フィード名
length
を考慮 @yossi-a- フィード名に
length
を持つデータをグラフ表示できなかった
- フィード名に
- アラートページでクエリの選択ができない問題を修正 @sjakthol
-
Embedded パラメータが有効な時の結果が正しく取得できない問題を修正 @nasmithan
-
REDASH_ALLOW_PARAMETERS_IN_EMBEDS
をtrue
にする事で有効になる
-
-
ダッシュボード検索でユニコード文字列をサポート [@combineads] (https://github.com/combineads)
- 日本のユーザにとって重要
-
ユーザ検索でユニコード文字列をサポート @arikfr
- 日本のユーザにとって重要
- クエリのユニコード文字列が正しく行えないという似た問題があるが、こちらは未解決
その他
- パラメータを使ったスケジュール実行クエリのテストを追加 @alison985
- コードのクリーンアップ @jezdez
- コミッターの jezdez 氏は VS Code 経由で Flake8 を使用しているとのこと
-
QueryResultListResource#post
の docstring を更新 @tdsmith - CirlceCI 2.0 への移行 @jrbenny35, @arikfr
- [CircleCI 1.0 が 2018/8/31 に終了](CircleCI 1.0 End of Life on August 31, 2018)のため
- 修正差分が大きいが、段階的に変更されている
- 不要な init メソッドの削除 @jezdez
v5.0.0-Beta - 2018-08-06
追加
-
Date/Time Range パラメータタイプの追加 @kravets-levko
-
Date
,Date and Time
,Date and Time(with seconds)
の3種類をパラメータの種類に追加
-
-
Alert Destination に ChatWork を対応 @matsumo
- ChatWork は日本発のチャットツールなので、うれしい日本人ユーザも多いのでは?
-
クエリエディタに "Add Parameter" ボタンを追加 @kravets-levko
- パラメータを明示的に追加するボタン
-
BigQuery の設定でロケーションを追加 @kyoshidajp
- これまで指定はできず US または EU マルチリージョン のみ対応だった
- 東京リージョン(
asia-northeast1
)の追加に合わせて対応
- チャートのカラーを指定できるようにした @kravets-levko
- Date/Time パラメータでデフォルト値 "Now" を設定 @kravets-levko
-
クエリエディタに検索機能を追加 @arikfr
-
Control + f
で右上に検索ボックスが表示される - 正規表現や大文字小文字の指定が可能なので、ブラウザ標準のものより高機能
-
-
タグとお気に入り機能をクエリとダッシュボードに追加 @arikfr
- クエリが散漫になるため定期的に不要なものを削除したり、検索性を向上するための命名規則を作るなどの運用が不要になるかも
-
クエリエディタとスキーマブラウザの折りたたむキーボードショートカットを追加 @kravets-levko
- クエリが長くスキーマ情報が不要な場合に便利そう
-
Chrome Logger 機能拡張に対応 @arikfr
- Chrome Logger 機能拡張はサーバ側で対応する事で Chrome のコンソールにログを出力できる
-
ステータスページに Redash データベースのサイズを表示 @alison985
- クエリ結果と全体の2種類のサイズを表示
- クエリ結果のメタデータに Athena のクエリ ID を追加 @tdawber
-
React コンポーネントの導入準備 @washort
- React コンポーネントを使っているのはまだページのフッターのみで、他は underscore から lodash への置き換え
-
対応データソースに Yandex Metrika と AppMetrika を追加 @denisov-vlad
- Yandex はロシアの検索システムの会社
- Yandex Metrika と AppMetrika はそれぞれウェブとアプリの検索サイト
- マイナーなデータソースだが、Redash の作者 Arik 氏は「I always like adding more data sources to Redash 」との事なので、気になるものがあればコントリビュートのチャンスかも
-
チャートの値、ラベル、ツールチップのフォーマットを変更できるようにした @kravets-levko
- 細かい調整が可能になった!
- Policy オブジェクトの導入 @arikfr
-
Admin によるユーザの無効化 @kravets-levko
- ユーザ一覧からユーザの無効化、ユーザ詳細から無効化後の有効化が可能になった
- 以前から CLI からの削除は条件付きで可能だった
- 無効になったユーザが作成したクエリは他のユーザが参照・実行可能
- 退職などでチームを離れたユーザの扱いはこれまでも課題だったが、これで改善されるチームは多そう
-
日付の標準フォーマットを Settings ページから変更できるようにした @kyoshidajp
- 日付フォーマットのデフォルトは
DD/MM/YY
- 2018年8月17日の例:
17/08/18
- 日本人にはあまり馴染みがない
- 2018年8月17日の例:
- フォーマットを追加するには環境変数
REDASH_DATE_FORMAT
に追加する
- 日付フォーマットのデフォルトは
変更
-
ユーザ一覧ページを改善 @arikfr
- 各項目でのソートや検索性能の向上など
- Ant Design の設定を Redash スタイルに調整 @kocsmy
-
フォーマットボタンをパラメータ追加ボタンの右に移動 @arikfr
- フォーマットボタンは常に表示されるように
-
ダッシュボードでクエリの読み込みに失敗した時にメッセージを表示する @kravets-levko
- 以前はスピナーが表示されていた
- キャッシュ済みのクエリ結果は実際の状況を返すようにした @kravets-levko
-
Google Spread Sheets: カラム名が空の場合、明示的に追加する @ariarijp
- 空カラムの名前は
column_{}
のフォーマットで{}
に列名(A
,B
, ...)が入る
- 空カラムの名前は
-
Date/DateTime type パラメータの入力を改善 @kravets-levko
- カレンダーや時間のコンポーネントが追加されて、入力がしやすくなった
-
使い捨てメールアドレスのユーザをブロック @arikfr
- 判定は disposable-email-domains によるブラックリストドメインより
-
YAML の読み込みを
load
からsafe_load
に変更 @denisov-vlad- PyYAML の
load
にはデリシアリズに脆弱性があるため(参考: CVE-2017-18342)
- PyYAML の
-
Google spreadsheets: データのパースで失敗する問題を解消 @atharvai
- 値の型に合ったパースを行うようにした
- 集計結果のページネーションの位置を中央揃えに @alison985
-
集計結果の横スクロールバーにページネーションを含めない @alison985
- 以前の動作は PR の元となった mozilla/redash の Issue を参考に
-
Script Query Runner の改善 @ariarijp
- リファクタリングおよびテストの追加
- ダッシュボードウィジェットのクエリヘッダデザインを改善 @kocsmy
- UI の調整 @kocsmy
- レスポンス向上に @alison985
-
ドキュメントへのリンクを更新 @Pablohn26
- 細かいですが、素晴らしい
-
Script Query Runner の改善 @ariarijp
- リファクタリング、エラーハンドリングの調整、テストの追加
- データソース追加一覧の表示順で大文字小文字の区別をしない @alison985
- Google Spreadsheets Query Runner を改善 @ariarijp
- X軸の表示を改善 @emtwo
-
不要な変数を削除 @ariarijp
- リファクタリング
- この PR で Request Info がインストールされているのを知った!
- クエリページでデータ参照モードの時に Visualization の追加・削除ができるようにした @kravets-levko
-
PostgreSQL:
get_tables
がすべてのビューとパーティションテーブルを返すようにした @coreyhuinker- 「通常のテーブル」「ビュー」「マテリアライズドビュー」「外部テーブル」「パーティションテーブル」の5種類
- パーティション機能は10.0より前からあったが、パーティションテーブルは 10.0 で追加された
-
データソース追加一覧でデータソースをアルファベットの昇順表示 @alison985
- 検索ボックスがあるとはいえ、パット見分かりやすい
-
SAML 認証でレスポンスのパースに失敗した場合エラーメッセージを表示する @sjakthol
- 以前は 500 Internal Server Error を返していた
-
削除確認時に対象の名前を表示する @kyoshidajp
- ダッシュボード、データソース、destination の削除確認ダイアログ表示時
-
削除時に確認ダイアログを表示する @kyoshidajp
- データの削除を慎重に
-
デザインの改善 @kocsmy
- 各種サイズ調整や、初期状態のイラスト表示など
-
スキーマブラウザでデータソースの絞り込み検索を行えるようにした @kyoshidajp
- 1文字入力ごとにインクリメンタルサーチが行われる
- データソースが複数あった場合に便利
修正
-
Elasticsearch: リクエスト時に
source_content_type
パラメータを送信しないようにした @arikfr- 6.0 サポートのために
source_content_type
パラメータを送信していたが、6.0 未満のユーザでエラーになっていた -
Content-Type
ヘッダに指定することで回避
- 6.0 サポートのために
-
input
要素の閉じタグを削除 @maxv-
input
要素は閉じタグが許可されていない(参考)
-
-
BigQuery: スキーマブラウザにすべてのテーブルを表示 @kyoshidajp
- 以前は先頭の50件までしか表示されなかった
- すべてのデータソース取得時に重複をさせない @arikfr
- Hive でレスポンスの型が不正になる問題を修正 @yuua
-
空のクエリを持つウィジェットを追加した時に、ダッシュボードでのレンダリングを行わない @kravets-levko
- この修正が入る前はこの状況になると画面からダッシュボードを編集できなくなっていた
-
ファイルエクスポート時のファイル名を修正 @gabrieldutra
- クエリ名に半角スペースが複数存在した場合、すべて
_
に変換されたファイル名となる - コマンドライン操作時などで便利
- クエリ名に半角スペースが複数存在した場合、すべて
- アラートのチェック前にクエリ結果をコミットするようにした @mtrbean
- ダッシュボードのテキスト追加・編集で内容の文字列を折返すようにした @alison985
-
CLI の create_tables/drop_tables 時の DB 接続エラーを改善する @ariarijp
- 接続失敗時には30秒待って再接続、を繰り返す
- アーカイブされたクエリのメニューにある不要な線を削除 @alison985
-
ダッシュボードのピボットテーブル表示を修正 @deecay
- "Hide Control" がオンとオフのウィジェットがあった時に両方共コントロール可能になっていた
- signed_out.html を修正 @kocsmy
-
値が null の時にフロンエンド側で
null
と表示される問題を修正 @innovia
その他
-
すべての PR に Zeit の Now プレビュービルドを適用 @arikfr
- GitHub Integration の Now を追加
- メンテナのメンバーしか確認できない?
-
Ubuntu のインストールスクリプトを Redash 4.0.1 に対応 @ariarijp
- Docker ベースのスクリプトがリリースされるまではこちらでの対応が続きそう
- Google SpreadSheets のテストを追加 @ariarijp
- Query Results のテストを追加 @ariarijp
-
不要な末尾セミコロンを削除 @sieben
- Python で末尾のセミコロンは文法上問題ないが修正箇所については不要
- PEP 8 を確認したが言及はされていない模様