Commit Graph

19943 Commits

Author SHA1 Message Date
Claude
6218dcbbb3 feat(dashboard): ComponentHeaderControls — Phase 2
Shared vertical-dots menu component for dashboard grid components.
Generic `items: ComponentMenuItem[]` API — each component (Chart,
Markdown, Row, Column, Tabs) plugs in its own list; the visual chrome
(dots icon trigger, dropdown surface, accessible label, divider
handling, danger/disabled styling) lives in this one component.

Built on `MenuDotsDropdown` from `@superset-ui/core/components` so the
trigger styling matches Chart's existing `SliceHeaderControls` — Phase
4's per-component PRs will converge `SliceHeaderControls` and the
other menu patterns (Markdown's `MarkdownModeDropdown`, Row/Col's
gear-icon + `WithPopoverMenu`) onto this same component.

Phase 2 lands the component + tests only. The actual per-component
menu conversions are user-visible UX changes (e.g. Markdown loses its
toggle-style Edit/Preview switcher and gains a dots menu) and ship in
Phase 4 alongside theme wiring per component, so each can be reviewed
in isolation rather than as a sweeping refactor.

4 passing tests: empty items renders nothing, trigger renders, onClick
fires from menu selection, disabled items don't fire onClick.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:58:17 -07:00
Claude
a1a3454b5c feat(dashboard): per-component theme provider — Phase 1 (Chart PoC)
Adds the skeleton for granular (per-component) theming on dashboard grid
components, with the inheritance chain:
  Instance theme -> Dashboard theme -> Tab theme
                 -> Row/Col theme   -> Chart/Markdown theme

This commit lands Phase 1 from the SIP (`SIP.md` at repo root): the
storage shape and the resolver, wired into `ChartHolder` as the
proof-of-concept call site. No UI yet — `themeId` must be set via Redux
devtools / position_json hand-edit to verify visually. Phase 2 will
introduce the `ComponentHeaderControls` menu and Phase 3 the
`ThemeSelectorModal` that drives this from a real UI.

Surface:

- `LayoutItemMeta.themeId?: number | null` — optional CRUD theme id
  stored per-component in `position_json` meta (no schema migration; the
  meta map is already open-ended). `null` and `undefined` both mean
  "inherit from parent".

- `pickEffectiveThemeId(layoutId, layout)` — pure resolver. Walks
  `parents` up the layout map from the given node until it finds a
  numeric `themeId` or hits `DASHBOARD_ROOT_ID`. Hop-capped at 32 to
  defend against malformed parents chains.

- `useEffectiveThemeId(layoutId)` — Redux hook variant.

- `<ComponentThemeProvider layoutId={...}>` — wraps children in the
  resolved theme's `SupersetThemeProvider`. Lazy-fetches via the
  existing `ThemeController.createDashboardThemeProvider`, which already
  caches by id so N components sharing one theme = 1 fetch. Pass-through
  when no ancestor sets a `themeId`.

- `ChartHolder.tsx` — wraps the existing `<AntdThemeProvider>` (which is
  a popup-container shim for fullscreen mode, not a token provider) so
  per-component tokens are set before antd's ConfigProvider for popup
  targeting.

Tests: 8 unit cases for `pickEffectiveThemeId` covering own / inherited /
null-skip / no-ancestor / root-stop / malformed-parents / other-meta /
missing-id.

Closes the spirit of the closed PR #36749 (which became unrebasable
after .jsx -> .tsx + React 18 + theme controller churn).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:28:03 -07:00
Claude
9732c130d2 docs(sip): draft granular component theming SIP
Draft Superset Improvement Proposal for component-level theming on
dashboard grid components (Charts, Markdown, Row, Column, Tabs) with
inheritance Instance -> Dashboard -> Tab -> Row/Col -> Chart.

Supersedes the closed PR #36749 (became unrebasable after .jsx -> .tsx
conversion, React 18 upgrade, and theme-controller churn since 2025-12).

This is a living document — kept in lockstep with the work on
`feat/granular-theming-v2`. Each phase updates the status / shortcomings
/ test-plan sections.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:22:15 -07:00
dependabot[bot]
85c4411041 chore(deps-dev): bump @babel/plugin-transform-modules-systemjs from 7.25.0 to 7.29.4 in /superset-embedded-sdk (#39983)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 10:10:38 -07:00
Mayank Aggarwal
a50de459ae fix(dashboard): restore spacing for charts inside Tabs layout (#38729) 2026-05-13 09:44:05 -07:00
dependabot[bot]
6216e57490 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39698)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 09:35:42 -07:00
dependabot[bot]
cdddb99e9a chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#39880)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:34:42 -07:00
dependabot[bot]
803fed28b8 chore(deps): update react requirement from ^19.2.5 to ^19.2.6 in /superset-frontend/plugins/legacy-plugin-chart-chord (#39929)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 09:34:26 -07:00
dependabot[bot]
8074ae2e38 chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /superset-frontend/cypress-base (#39974)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:34:11 -07:00
dependabot[bot]
577085eece chore(deps-dev): bump fast-uri from 3.0.1 to 3.1.2 in /superset-embedded-sdk (#39978)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:33:57 -07:00
dependabot[bot]
5d40d8aeac chore(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0 (#40016)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:33:14 -07:00
dependabot[bot]
b4cb780e74 chore(deps): update ace-builds requirement from ^1.43.6 to ^1.44.0 in /superset-frontend/packages/superset-ui-core (#40017)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 09:32:35 -07:00
dependabot[bot]
aebc6fbf34 chore(deps-dev): bump @types/node from 25.6.0 to 25.7.0 in /superset-websocket (#40052)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:32:19 -07:00
dependabot[bot]
9e749da93c chore(deps): bump ws from 8.20.0 to 8.20.1 in /superset-websocket (#40085)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:32:05 -07:00
dependabot[bot]
2c7e418d7b chore(deps): bump @ant-design/icons from 6.2.2 to 6.2.3 in /docs (#40086)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:31:51 -07:00
dependabot[bot]
6a1305fe53 chore(deps): update zod requirement from ^4.4.1 to ^4.4.3 in /superset-frontend/plugins/plugin-chart-echarts (#40091)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-13 09:12:39 -07:00
Amin Ghadersohi
726d83d758 fix(mcp): remove stale created_by_fk filter references from MCP privacy layer (#39955) 2026-05-13 11:27:10 -04:00
jesperct
6cebba49ca fix(AlertReportModal): TypeError when pasting text into the Alerts content form search field (#39298)
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-05-13 17:38:55 +03:00
Luiz Otavio
940779ad5f feat(event-log): add event logging for embedded Superset (#40083) 2026-05-13 09:59:48 -03:00
Richard Fogaca Nienkotter
c59ab8bffd feat(mcp): add data boundary instruction to harden against prompt injection (#40080) 2026-05-13 09:40:44 -03:00
Evan Rusackas
e2a8a88d36 docs: Update documentation link for ENABLE_SUPERSET_META_DB (#40076)
Co-authored-by: Claude Code <noreply@anthropic.com>
2026-05-12 20:39:39 -07:00
dependabot[bot]
0d9ecb7664 chore(deps-dev): update @types/node requirement from ^25.6.0 to ^25.7.0 in /superset-frontend/packages/superset-ui-core (#40059)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:34:10 -07:00
dependabot[bot]
1d220f7172 chore(deps-dev): update fs-extra requirement from ^11.3.4 to ^11.3.5 in /superset-frontend/packages/generator-superset (#39930)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:33:47 -07:00
Ville Brofeldt
af4dc3a9aa fix(re-encrypt): handle non-id PKs and make command idempotent (#40079) 2026-05-12 17:59:52 -07:00
Richard Fogaca Nienkotter
fa06989ed7 fix(mcp): return requested update chart previews (#40077) 2026-05-12 21:23:49 -03:00
dependabot[bot]
4d0cc1d7a6 chore(deps): bump zod from 4.4.1 to 4.4.3 in /superset-frontend (#39904)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 17:23:14 -07:00
dependabot[bot]
d8b2c5872b chore(deps-dev): bump @swc/core from 1.15.32 to 1.15.33 in /superset-frontend (#39935)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 17:22:58 -07:00
Elizabeth Thompson
86ba63b072 fix(dashboard): prevent duplicate subdirectory prefix when toggling fullscreen (#39534)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 16:51:37 -07:00
dependabot[bot]
4c14e16e58 chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.20.11 to 7.29.4 in /superset-frontend/cypress-base (#39982)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:25:28 -07:00
dependabot[bot]
fe22e06011 chore(deps): bump mermaid from 11.10.0 to 11.15.0 in /docs (#40038)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:25:09 -07:00
dependabot[bot]
9160da0d27 chore(deps-dev): bump yeoman-test from 11.3.1 to 11.5.2 in /superset-frontend (#40058)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:24:55 -07:00
dependabot[bot]
43a89f8710 chore(deps-dev): bump terser-webpack-plugin from 5.5.0 to 5.6.0 in /superset-frontend (#40061)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 16:24:37 -07:00
Varun Chawla
a77fec68d4 fix(drill-detail): make page-size selector functionally adjustable (#37975)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-05-12 13:39:41 -07:00
Abdul Rehman
e94465208f fix(bar-chart): cap bar width so a single data point doesn't stretch across the chart (#39588)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 13:24:46 -07:00
Abdul Rehman
f2eee4ef46 fix(frontend): prevent LanguagePicker crash when locale is missing from LANGUAGES config (#39585)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 13:22:36 -07:00
yeaight
7445105735 fix(explore): explain disabled chart overwrite option (#39796) 2026-05-12 12:53:59 -07:00
innovark
2392c8e624 fix(Select): fix Russian translations for Select (#35751)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com>
2026-05-12 13:48:42 -04:00
Arpit Jain
39ad6b200f docs(update): fix typos in UPDATING.md (#40068) 2026-05-12 23:40:22 +07:00
Igor Khrol
3363b48180 fix(spark): register Spark SQLAlchemy dialect so spark:// URIs resolve to SparkEngineSpec (#38299)
Co-authored-by: Joe Li <joe@preset.io>
2026-05-12 12:33:17 -04:00
dependabot[bot]
c9fb1bc10f chore(deps-dev): bump @typescript-eslint/parser from 8.59.2 to 8.59.3 in /superset-frontend (#40057)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-05-12 22:27:58 +07:00
Evan Rusackas
658907a0a6 fix(gha): use sound condition gating for latest-tag step (#40035)
Co-authored-by: Superset Dev <dev@superset.apache.org>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 22:27:26 +07:00
Đỗ Trọng Hải
4a79896bb2 chore(build): replace replaceable jest-mock-console with native Jest spies (#38643)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-05-12 21:32:08 +07:00
Đỗ Trọng Hải
b0c5b061c5 fix(sqllab): display horizontal scrollbar in data preview modal (#39799)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-05-12 21:30:54 +07:00
Kasia
c394405fc1 fix(explore): restore spacing between tabs and content in control popovers (#40023) 2026-05-12 14:30:41 +02:00
Kasia
d2ae5fb275 fix(ux): remove CSS-forced uppercase from button labels (#40049) 2026-05-12 14:28:39 +02:00
Amin Ghadersohi
460992d89b fix(mcp): improve not-found errors to suggest corresponding list_* tools (#39919)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-12 02:38:10 -04:00
Amin Ghadersohi
85935b0b88 fix(mcp): handle SSL connection drop during pre-call session teardown (#39917) 2026-05-12 02:32:14 -04:00
innovark
fa168fcc8a fix(Label): use correct color for label component (#38707) 2026-05-11 21:40:31 -07:00
Andy
a6ad0bf169 fix(re-encrypt-secrets): use db.Model.metadata to discover encrypted … (#39390)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 21:16:41 -07:00
Abdul Rehman
fed29b3017 fix(deploy): prevent double-prefix of logo URL in subdirectory deployments (#39472)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-11 21:13:26 -07:00