Posted at

Redash v6 の変更内容一覧を CHANGELOG と Pull Request から確認する


はじめに

2018年12月16日に Redash v6.0.0 がリリースされたので、CHANGELOGPull Request を確認しながらリリース内容をまとめました。

今回はベータ版が出てから約2週間という比較的短期間での正式リリースとなりました。「5つの新しいデータソースに対応」や、「(スマホのような)小さい画面向けのレイアウト改善」のほか、多数の機能追加と変更およびバグフィックスが行われています。

また、過去のリリース内容は以下にまとめていますので、バージョンアップを検討中の方などの参考になればと思います。


v6.0.0 - 2018-12-16


変更


  • ワーカの refresh_queries 実行時ログを簡略化 [#3183]


    • クエリの organization が無効時のログレベルを info から debug に変更




修正


  • production のビルドでフロントエンドの正しいバージョンが表示されていない問題を修正 [#3163]

  • Clickhouse データソースで int() の変換エラーを修正 [#3161]

  • クエリの実行結果取得時に record_event を直接実行するようにした [#3166]

  • 集計結果の column フィールドが存在しない時に Alert.evaluate が失敗する問題を修正 [#3167]

  • API のユーザ取得で、無効ユーザの情報は返さないように修正 [#3162]

  • クエリ名の空値登録を許可しないように修正 [#3171]


    • フロントエンド側のチェックを追加



  • ユーザの無効化時エラーを修正 [#3175] [#3186]


    • エラーメッセージをより詳細に変更

    • ステータスコードを400から403に変更



  • Redshift データソースでドットを含むスキーマ名をサポート [#3182]

  • Celery コードでアプリの作成時に、すでにアプリが存在すればそちらを使用し、新たに作成しないように修正 [#3187]


その他


  • Cypress の初期データと Percy のセットアップを追加 [#3155]

  • pytest のカバレッジを CI だけで実行するようにした [#3180]


v6.0.0-beta - 2018-12-03


追加

before
after



  • QueryResult データソースで cached_query_ をプレフィックスに追加するとキャッシュを取得するようにした [#2855]

  • タスクの定期実行を行えるように拡張を追加 [#2740]

  • Google Spreadsheets データソースで URL による指定に対応 [#2924]


    • これまではシートのキーによる指定しか対応していなかった



  • Alert の通知先として PagerDuty に対応 [#2903]



  • ダッシュボードウィジェットの拡大表示に対応 [#2824]


    • モーダル形式で特定のウィジェットを表示できる



  • Visualization タイプにカウンターを追加 [#2900]

  • フロントエンドの拡張に対応 [#2565]



    • client/app/extensions にフロントエンドのファイルを追加するとビルド対象になる?
      詳細が不明



  • 対応データソースに IBM Db2 を追加 [#2848]

  • 共有ダッシュボードに自動リフレッシュのオプションを追加 [#2959]

  • リストページの表示件数指定に対応 [#2993]



    • REDASH_PAGE_SIZE で1ページあたりの表示件数、REDASH_PAGE_SIZE_OPTIONS で1ページあたりの表示件数の区切りが指定可能になった



  • Plotly によるヒートマップチャートを追加 [#2080 Plotly]

  • CLI の "./manage.py groups list" でグループに所属するユーザ一覧の表示に対応 [#2991]



  • クエリフォーマッターのオプションを追加 [#2342]


    • 次のフォーマットオプションを追加(デフォルトではどちらもオン)



      • SQLPARSE_FORMAT_REINDENT でインデントのオン・オフ


      • SQLPARSE_FORMAT_KEYWORD_CASE でキーワード大文字化のオン・オフ





  • Query Results データソースのテストを追加 [#3031]

  • 対応データソースに Kylin を追加 [#2936]

  • 対応データソースに Druid を追加 [#3047]

  • パーミッション変更フラグを設定画面で切り替えられるようになった [#3077]

  • CLI の "manage.py groups list" の結果にパーミッションを表示 [#3007]

  • Python データソースに get_current_user() を追加 [#3088]


    • 実行時のユーザ情報を取得出来る



  • クエリの自動補完切り替えをイベントとして保存 [#3114]

  • 対応データソースに Rockset を追加 [#3068]

  • フロントエンドのバージョンを表示するようにした [#3105]


    • 以前はサーバサイドのみの表示だったが、カッコ内に追加





変更


  • クエリエディタを React に移行 [#2636]


    • Angular から React に移行する一環と思われる



  • edit-in-place コンポーネントを React 化 [#2637]

  • イベントログの作成をフロントエンドからサーバサイドに移行 [#2766]

  • モバイルページのデザイン修正 [#2796]


    • v4 で大幅なデザイン変更があった際にモバイルページのデザインが上手く追従できていなかった



  • タグ一覧のソートをサーバサイドで行い、タグ付けされた項目数を表示するようにした [#2833]

  • URL データソースの認証に対応 [#2318]

  • Yandex Metrika を Metrica に名前変更 [#2884]


    • プロモーションによる変更?



  • MySQL データソースでテーブル一覧を取得する際に sys スキーマを除外した [#2909]

  • JSON の読み込みとダンプ処理を標準ライブラリの json から simplejson に変更 [#2817]

  • y-値として Plotly の関数を使用[#2872]



    • $6,123.88 -> 6123.88 のような数値への変換が正しく行えていなかった



  • タグの入力モーダルを表示した際に入力項目にカーソルをフォーカスする [#2938]


    • 入力時の UX 改善



  • クエリページのデザインを改良 [#2927]


    • タグカウントのデザインを改良

    • "Edit source" ボタンのアイコンを変更("Embed elsewhere" ボタンと類似していたため)

    • "Save" と "Execute" ボタンのアイコンとラベルの間隔を調整



  • CLI の "./manage.py users list" で activity を表示する [#2950]

  • Presto データソースで http/https スキーマの対応とエラーメッセージの安全な読み込みに対応 [#2968]

  • CLI の "./manage.py users list" でグループを表示 [#2967]

  • MongoDB データソースで mongodb+srv フォーマットに対応するために requirements を更新 [#2603]

  • の取得を行わないようにした [#2961 MongoDB データソースでスキーマ取得時に system collections]

  • アラート送信時の HTTP リクエストにタイムアウトを設定 [#2960]


    • 5秒



  • Databricks データソースのロゴを新規に追加、デフォルトで有効にした [#2983]


    • リファクタリングとしてクラス名も変更



  • テーブル表示の項目数を増やし、デフォルトを 25 に変更した [#2982]


  • Redshift データソースでユーザがアクセス出来ないテーブルを非表示にした [#2866]

  • クエリのマスタッシュでhtml-escape クエリパラメータをエスケープしないようにした [#3058]


    • マスタッシュはパラメータとして参照できる記法

    • 例えば {{ param }}



  • クエリエディタで自動補完を初期設定としてオンにする [#3079]

  • クエリ結果一覧で tel://, sms://, mailto:// 形式のリンクに対応 [#3084]

  • Clickhouse データソースで WITH TOTALS オプションに対応 [#3083]

  • バブルチャートの色を修正 [#3063]

  • BigQuery データソースの追加時に Standard SQL をデフォルトに変更 [#3085]


    • BigQuery には Standard SQL と Legacy SQL があり、Standard SQL が推奨される



  • 新規タグの入力時に自動補完されない問題を修正 [#3094]

  • クエリの入力補完トグルを改善 [#2984]


    • 補完の状態(有効、無効)の判断をしやすくするために UI/UX を改善



  • クエリのフォーク時に新しいタブとして開く [#3089]

  • MongoDB データソースでカラムのソートをサポート [#3126]

  • クエリ結果の表示速度改善 [#3128]



  • Vertica データソースのドライバを更新し、タイムアウトの指定に対応 [#3125]

  • Postgres/Redshift データソースのスキーマでユニコードをサポート [#3124]

  • タグコンポーネントを React に移行 [#3138]

  • パーミッション管理モーダルを改善 [#3139]

  • ユーザ一覧ページのグループタグを改善 [#3149]


    • タグの色を変更

    • 複数タグ(グループ)が付けられている場合に、分けて表示するようにした



  • アラート先のロゴを最適化 [#3146]

  • データソースのロゴを追加・最適化 [#3147]

  • タグ付けされた項目が見つからなかった時の表示位置を修正 [#3148]


  • json_dumps で buffer オブジェクトをサポート [#3156]


修正


  • Webhook アラートでの不正な alert.to_dict() の参照を廃止 [#2849]

  • カウンター visualization テキストのスケールを変更 [#2840]

  • 共有ダッシュボードでウィジェットのタイトルが表示されない問題を修正 [#2854]

  • クエリ実行のベースクラスで認証用の例外操作コードを整理 [#2318]

  • registerAll で EditInPlace コンポーネントが実行されるため、Javascript のビルドに失敗する問題を修正 [#2886]

  • 保存していないクエリではドロップダウンのメニューに “Add to dashboard” を表示しない [#2911]

  • クエリ名に半角スペースが複数存在する場合、エクスポート時のファイル名に半角スペースが入る問題を修正 [#2916]

  • クエリ名を変更しても変更前のクエリ名でエクスポートされる問題を修正 [#2917]

  • Athena データソースで Glue スキーマの取得に失敗する問題を修正 [#2868]

  • 日付値のフィルタで値が重複する問題を修正 [#2929]

  • Chart グラフでy軸の線が長くなった際にグラフが正しく表示できなくなる問題を修正 [#2875]


    • + plotly.js のバージョンアップ



  • admin API でイベントの保存に失敗する問題を修正 [#2937]

  • Clickhouse データソースで細かい修正 [#2953]


    • クエリの最後の行でコメントを入れられるように FORMAT キーワードの前に改行を入れた

    • 接続タイムアウトをデフォルトで5秒に(ただし、#2956 で30秒に変更された)



  • Plot のホバー時に表示がおかしくなる問題を修正 [#2941]

  • EditInPlace コンポーネントへの CSS 適用漏れに対応 [#2957]

  • クエリを保存していない場合 "Add description" を表示しないようにした [#2897]

  • 小さい画面向けにクエリページのレイアウトを向上 [#2922]

  • Clickhouse データソースで接続タイムアウトを変更できるようにした [#2956]


    • デフォルトを5秒から30秒へ変更



  • クエリ一覧でタグに該当するクエリがなかった場合にタグが表示されない問題を修正 [#2964]

  • クエリの検索結果一覧の並び順を検索のスコア順に変更 [#2757]


    • 以前はクエリの作成日順だった



  • Query Results データソースで次の改善 [#2969]



    • " で囲むことにより - などのキーワードをクエリに含められるようにした

    • テーブル作成時のエラーメッセージを分かりやすくした



  • TreasureData データソースでカラム名が重複した時に値がおかしくなる問題を修正 [#2867]

  • 主にドキュメントの URL スキーマを http から https に変更 [#2994]

  • バージョンチェック時の不正な prop type warning を解消 [#2992]

  • チャートの一部がツールボックスに重なる問題を修正 [#3022]

  • ダッシュボードをリフレッシュした時に、チャートのレスポンシブ対応が崩れる問題を修正 [#2998]

  • Postgres データソースで NaN 値の扱いに対応 [#3034]


    • 例えば select 'NaN'::double precision の実行がエラーになっていた



  • クエリの結果に未定義の値があった場合、ソートが正しく行われない問題を修正 [#2745]


    • 具体的には次のような場合



{ 'a': 11, 'b':21 },

{ 'a': 12 }, // b の要素が存在しない
{ 'a': 13, 'b':23 }


  • CLI の list 出力時に名前でソートするようにした [#3041]


    • テストも追加されている



  • クエリ一覧ページでタグを表示する [#2803] [#3006]

  • グループページで edit-in-place コンポーネントの isEditable が無視される問題を修正 [#3049]

  • Google Analytics で結果が空の場合にエラーになる問題を修正 [#2965]

  • テーブル visualization で不要な場合にはスクロールバーを表示しないようにした [#3061]

  • フッターの項目区切りに半角スペースを追加 [#3076]


    • バージョンやドキュメントへのリンクなどが表示されている箇所

    • ドットも &#8226 から \u2022 に変更



  • URL データソースの設定で URL の入力を必須としないようにした [#2919]

  • クエリエディタで AngularJS の更新を正しく行うようにした [#3098]


    • 具体例として、フォーマットボタンを押した時に入力したクエリが消える問題があった



  • クエリ結果のフロントエンド側で余分な正規表現パターンを削除 [#3100]


    • サニタイズのチェック時に https? があるため http は不要だった



  • QueryResult でリンクされた際にクエリの更新日時が更新されないようにした [#2978]

  • クエリページのヘッダレイアウトを修正[#3046]


    • クエリ名とタグの部分



  • Mongo データソースでビューがある時に、コレクションのフィールドが取得できない問題を修正 [#3097]

  • クエリエディタの状態管理がおかしい問題を修正 [#3107]


    • クエリの入力中にカーソルが単語の先頭に移動したりしていた



  • モバイルページのクエリ結果画面で padding が狭い問題を修正 [#3111]

  • クエリエディタの編集メニューで不要な区切り線が表示される問題を修正 [#3122]


    • アーカイブ出来ないクエリを開いた際に区切り線が表示されていた



  • タグ付けされたダッシュボードとクエリのカウントが不正な問題を修正 [#3120]

  • MySQL 8 データソースでスキーマ情報のリフレッシュに失敗する問題を修正 [#3141]

  • ダッシュボードのタイトルを編集時に読み込み中のマーカーに置き換わる問題を修正 [#3142]


その他


  • セットアップスクリプトを Ubuntu 18.04 LTS 上の Docker に対応 [#2850]

  • Jest ベースのテストを追加 [#2985]

  • Netlify によるプレビューに対応 [#2999]


    • PR 作成時(と push 時?)に Netlify に自動デプロイが行われ、レビュー時の動作確認がとても簡単になった

    • ただし、フロントエンド側の変更にのみ対応




  • Cypress ベースの E2E テストを導入 [#3000]


    • テスト内容はログイン、データソース作成、ログアウト



  • Ant のスタイル定義を移動した [#2898]


    • less ファイルの @import 文を集約し、順番としてデフォルトのスタイルを読み込んだあとにカスタマイズしたスタイルを読むようにした


    • Ant (antd) は React 向けの UI ライブラリ



  • BigMessage の webpack ビルドエラーを修正 [#2910]

  • CI のユニットテストで requirements_all_ds.txt のパッケージインストールをスキップして高速化 [#2928]


  • build-tarball ジョブが失敗する問題を修正 [#2963]


    • CircleCI で実行している



  • root での setup.sh 実行に失敗する問題を修正 [#2996]

  • make のターゲット宣言を変更 [#2989]



    • .PHONY の修正



  • Flask-Admin を 1.5.2 にバージョンアップ [#3036]

  • ドキュメントのリンクを修正 [#2901]


  • make clean 時に Redash の docker コンテナのみ削除するようにした [#3073]


    • 修正前はコンテナを一括で削除していた



  • 依存パッケージから pytest-watch を削除 [#3048]


    • Flask のリロードが安定しない問題の修正



  • docker-compose.yml のバージョンを3にして、Redis は3系、Postgres は9.5系の最新バージョンを利用するようにした [#2905]

  • Makefile にテスト用のターゲットを追加・変更 [#3032]



    • make up の追加 ... コンテナのビルドと起動


    • make down の追加 ... コンテナの終了


    • make lint の追加 ... Flake8 による静的コードテストを実行


    • make frontend-unit-tests の追加 ... フロントエンドのテストを実行


    • make test の追加 ... 静的コードテスト、フロントエンドとバックエンドのテストを実行


    • make test_db の変更 ... データベース tests が存在すれば削除するように変更



  • Webpack 4 にバージョンアップ [#2933]

  • セットアップスクリプトをバージョンアップ [#2908]

  • 参照している snowflake_connector_python パッケージをバージョンアップ [#2946]

  • Celery 4.2.1 へバージョンアップ [#2773]

  • CircleCI で Python 2 系と 3 系で flake8 のテストをパスするようにした [#2881]



    • six を使って互換対応



  • 不要なパッケージ (honcho, wsgiref) を削除 [#2907]

  • master ブランチの Docker イメージを作成 [#3039]

  • minify 後の registerAll に失敗する問題を修正 [#3106]