[SS] Add drill-to-detail from Dashboard charts and tables
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
調査の方向性
まず Dashboard のチャート、テーブル、KPI のアクションエントリポイントを追跡し、次に issue に記載された Workbench タブ、型付きパラメーター、共有結果テーブルのフローをたどります。関連するユニットテストと Chromium、Firefox、WebKit のテストを実行します。完了とは、検証済みのドリルダウンが安全な詳細タブを開き、1 回だけ実行され、コンテキストを保持し、ソースドキュメントを変更せずに残すことです。
索引モデルが issue の本文から書いたものです。
説明
Summary
Add Superset-style drill-to-detail so an analyst can open the contributing rows behind a chart mark, table cell, KPI, or selected Dashboard context without manually reconstructing the filters in SQL.
The feature must remain SQL-first and explicit. It should reuse saved queries, typed parameters, current Dashboard filter state, and the shared result-table/cell-detail surfaces. Do not attempt arbitrary SQL AST rewriting of an existing aggregation query.
User value
From a Dashboard, an analyst should be able to answer:
- Which rows contributed to this bar or point?
- Which records make up this KPI?
- What is behind this grouped value?
The action should preserve the current Dashboard context and open a detailed, inspectable table in the Workbench or an equivalent dedicated detail surface.
Authoring contract
A tile may explicitly declare a drill target:
- a saved detail query id;
- mappings from one or more raw result columns to the detail query's typed parameters;
- whether current Dashboard filters are also forwarded;
- optional title/label metadata.
Do not infer a detail query from table names, display labels, or the aggregation SQL.
The detail query remains an ordinary saved query. It owns SQL, parameter declarations, optional blocks, presentation, and export behavior. Drill metadata only defines how the source context supplies parameter values.
Interaction semantics
- Expose a
View contributing rowsaction from eligible chart marks, table rows/cells, KPI cards, and accessible context menus. - Use raw values, not formatted labels.
- Preserve the current Dashboard filter values and active state when configured.
- Apply source-mark values after the Dashboard context so explicit drill mappings have deterministic precedence.
- Validate the complete parameter set before opening or running the detail query.
- On invalid, missing, ambiguous, or incompatible mappings, open nothing and surface a clear diagnostic.
- The source Dashboard remains unchanged.
- Keyboard users must be able to invoke the same action from focused eligible content.
Destination behavior
Preferred v1 flow:
- Create/open a Workbench tab linked to the authored detail saved query.
- Seed its typed parameter controls from the resolved Dashboard and mark context.
- Run once after successful validation.
- Show the ordinary full result table with existing sorting, cell detail, copy, and export behavior.
- Make the origin clear in the tab title or a compact context note.
Repeated drills may reuse an existing matching detail tab only when doing so cannot overwrite unrelated unsaved edits. Otherwise open a new tab.
The operation must not modify the saved detail query, source query, Dashboard document, workspace revision, or persisted default parameter values merely by opening the drill.
Scope and security
- Values must flow through ClickHouse native typed parameters; never interpolate literals into SQL.
- Respect the current authenticated ClickHouse connection and server-side authorization.
- Reuse optional filter-block semantics for omitted optional values.
- Do not expose columns or queries the current user cannot execute.
- Preserve cancellation and stale-result protection if a newer drill supersedes an in-flight auto-run in the same destination.
Supported sources for v1
- discrete bars/columns;
- line/area points;
- pie slices;
- table rows and cells;
- KPI cards with explicit mapping metadata.
Time-range brushing is not itself a drill mark, but the active time-range filters should be forwarded as Dashboard context when configured.
Tests
Cover:
- raw mark values versus formatted labels;
- one and multiple mapped dimensions;
- current Dashboard filters forwarded with correct active state;
- deterministic precedence between Dashboard context and mark mappings;
- optional parameters omitted safely;
- unknown/duplicate/incompatible mappings fail before opening/running;
- chart, table, and KPI source actions;
- destination tab creation without overwriting unsaved tabs;
- exactly one validated execution;
- cancellation/stale result behavior for repeated drills;
- source Dashboard and persisted workspace remain unchanged;
- keyboard invocation and accessible labels;
- Chromium, Firefox, and WebKit.
Acceptance criteria
- A tile can explicitly reference an ordinary saved query as its detail target.
- Eligible marks/rows expose an accessible
View contributing rowsaction. - Raw source values and current Dashboard filters are mapped to typed detail-query parameters.
- Invalid mappings or values perform no partial navigation or execution.
- The detail query opens in a safe Workbench tab and runs once.
- Source and destination saved documents remain unchanged by the drill action.
- Existing result-table inspection and export features work on the detail result.
- Unit and real-browser tests pass.
Non-goals
- automatically rewriting arbitrary aggregate SQL into row-level SQL;
- database-level lineage inference;
- semantic joins between datasets;
- drill-by/group-by selection;
- nested breadcrumb/history navigation;
- a modal mini-table that duplicates the Workbench result surface;
- bypassing ClickHouse authorization.
- 主要言語
- TypeScript
- スター
- 8
- フォーク
- 2
- 平均マージ
- 1時間 34分
- マージ済み PR(30日)
- 6
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Altinity/altinity-sql-browser のほかの issue
-
inbox
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Altinity/altinity-sql-browser#605 ·
-
inbox
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Altinity/altinity-sql-browser#509 ·
-
inbox
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Altinity/altinity-sql-browser#489 ·
-
flamegraph オープンenhancement
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
Altinity/altinity-sql-browser#684 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
Altinity/altinity-sql-browser#680 · コメント 2 件 ·
Altinity/altinity-sql-browser の issue をすべて見る
似ている issue
-
blocklist removal
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
MetaMask/eth-phishing-detect#296544 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
pastelsky/bundlephobia#1122 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
category/development priority/P2 scope/file-operations scope/testing type/enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100