Commit Graph
1754 Commits
Author SHA1 Message Date
Enzo MartellucciandClaude Sonnet 5 03d0506daa chore(dashboard-v2): remove docs/superpowers specs/plans from this branch
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 16:17:04 +02:00
Enzo MartellucciandClaude Sonnet 5 0c6c90de58 feat(dashboard-v2): add set_widget_control_values MCP write tool
Third and final sub-project from the control-panel architecture ask,
scoped down after discovering the assumed infrastructure doesn't exist:
Dashboard V2's node.props lives only in the frontend's in-memory
DashboardProvider (explicitly "No persistence"), and
Widget.validate_control_values has never had a real caller -- only its
own REST endpoint handler invokes it, and nothing in the traced human
edit flow does.

Adds a minimal MCP-process-local node store (node_store.py, mirroring
widgets/registry.py's plain-dict idiom) and one new tool that gives
validate_control_values its first real caller: shallow-merges provided
control values onto a node's current values (matching
DashboardProvider.updateProps's own merge semantics), validates the
candidate, and only commits (a single dict reassignment) on success --
so a validation failure is atomic by construction, not by explicit
rollback code. Registered in app.py (a tool exported from tool/__init__.py
but missing from app.py's import list is invisible to a real MCP client
despite passing every direct-call test -- caught this by adding a
Client(mcp)-based registration test, not just _impl calls).

Persistence, default-seeding, generated-value propagation, and the
broader value-precedence contract from the original ask are explicitly
out of scope -- documented as follow-ups in the accompanying spec.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 09:01:26 +02:00
Enzo MartellucciandClaude Sonnet 5 de47f9fa57 docs(dashboard-v2): reconcile control-dependency-graph spec with implementation
Rewrites the spec's Design section to match what shipped: EnricherFn's
signature includes the whole schema (not just its own field), documents
the check_dependencies alias-resolution fix as the first real exercise of
that function, and clarifies the x-dependsOn gate is a coarse pre-filter
alongside Balloons' unchanged fine-grained guard, not a replacement for
it. All three were caught while writing the implementation plan (before
any code was written), so this is a documentation-only reconciliation --
no behavior differs from what the plan specified.

Marks all plan steps complete with actual results (442 tests passing,
clean pre-commit on every task, no frontend files touched).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-27 00:10:11 +02:00
Enzo MartellucciandClaude Sonnet 5 3514e3b79a docs(dashboard-v2): plan the control dependency graph implementation
Corrects three things found while writing the plan, ahead of the spec:
EnricherFn needs the whole schema (not just its own field) since Balloons'
real enricher reads a sibling $defs entry; check_dependencies resolves
x-dependsOn by raw name instead of alias, so it has never actually worked
(verified directly against a real parsed model); and the x-dependsOn gate
is coarser than Balloons' actual guard (dimensions non-empty, series
non-empty) so the enricher keeps its own fine-grained check. Spec gets
reconciled with these once implementation confirms them.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 23:59:27 +02:00
Enzo MartellucciandClaude Sonnet 5 8c72316c61 docs(dashboard-v2): spec the control dependency graph + cycle detection
Second slice of the broader control-panel architecture ask (first was the
composite-control registry). Derives the dependency graph from each
dynamic field's existing x-dependsOn declaration rather than a duplicate
Python-level declaration; disambiguates an x-dependsOn entry naming
another dynamic field (an ordering edge) from one naming a plain field
(a gate, via the previously-dead check_dependencies). Cycle detection
runs once at widget-registration time. Widget.enrich_schema is retired
outright in favor of a per-path enricher registry, with Balloons
retrofitted as the sole proof case -- no concrete second real widget
exists yet, so this is validated against synthetic multi-field test
cases plus the one real single-field regression.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 23:04:27 +02:00
Enzo MartellucciandClaude Sonnet 5 025971377f docs(dashboard-v2): reconcile composite-control spec/plan with implementation
Update both to reflect the recursive $defs field-order fix discovered
while implementing (a top-level-only reorder was verified against the
real widget registry to leave nested $defs entries -- e.g.
$defs.DataBinding -- unreordered, since DataBinding is never itself the
top-level config_class). Mark plan steps complete with the actual
verification results (test counts, mypy narrowing fix, pre-commit
auto-fixes) instead of predictions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 22:03:23 +02:00
Enzo MartellucciandClaude Sonnet 5 4ae65afb1a docs(dashboard-v2): fix field-order regression in composite control spec
Verified that Pydantic always places inherited fields ahead of a
subclass's own fields in model_fields, regardless of redeclaration
position -- the mixin refactor as originally specced would have silently
reordered DataBinding's rendered form (metrics before dataset picker).

Add an explicit, opt-in field_order override to build_configuration_schema
(ClassVar on the model, validated as an exact permutation of the schema's
properties, ValueError on mismatch) so DataBinding can pin its field order
back to today's exact sequence. Confirmed build_configuration_schema has
no other call site today, so this is additive with no blast radius.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 21:47:32 +02:00
Enzo MartellucciandClaude Sonnet 5 38929b431f docs(dashboard-v2): address review on composite control registry spec
Fix invalid MRO in DataBinding(BaseModel, MetricControl) -> single
inheritance from MetricControl (confirmed the two-base form raises
TypeError against pydantic directly). Store registry entries as
CompositeControlInfo (name/title/description/model) instead of discarding
metadata. Expose a stable superset_core.widgets re-export and a read-only
list_composite_controls() accessor instead of a public mutable dict.
Document decorator-side-effect registration semantics for extensions.
Explicitly scope out multi-composite inheritance until a second composite
exists to motivate the collision/merge contract. Strengthen the
schema-identity test to a frozen golden fixture checked at the REST/MCP
boundary. Soften "functionally complete" phrasing on the ad-hoc metric
list[Any] field.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 21:31:17 +02:00
Enzo MartellucciandClaude Sonnet 5 e3abcb716c docs(dashboard-v2): spec composite control registry (MetricControl extraction)
First slice of the broader control-panel architecture ask: a mixin-based
composite-control mechanism in superset_core so reusable field-level
building blocks (starting with MetricControl) can be composed into widget
control models via plain inheritance, without changing served schema shape.
Dependency-graph/cycle-detection and value-propagation contract are scoped
out to follow-up specs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 21:23:38 +02:00
Enzo Martellucci 3a32c8bfcc docs: add Dashboard V2 Data tab spec and implementation plan 2026-08-26 02:17:33 +02:00
Enzo MartellucciandClaude Sonnet 5 e2cece877b docs: add implementation plan for dataset-aware widget controls; ignore Playwright MCP cache
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 16:28:00 +02:00
Enzo MartellucciandClaude Sonnet 5 5a1a81b937 docs: add design spec for dataset-aware widget controls
Extends the widget control panel's x-control vocabulary with
column/metric-reference controls so fields like dimensions and metrics
render dataset-aware pickers instead of plain text/JSON inputs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 14:39:43 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 83ea9a1025 chore(deps): bump js-yaml from 5.2.1 to 5.2.2 in /docs (#42395)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-24 13:33:36 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 857a194c66 chore(deps): bump postcss from 8.5.16 to 8.5.23 in /docs (#42397)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-24 13:33:09 -07:00
Bhargava Vadlamani 7eceebce1c feat(dbspec): Support apache datafusion dbspec (#42374) 2026-07-24 11:56:30 -07:00
ViktorGo86 65528a5b76 docs(map-tiles): add Yandex Maps Tiles API configuration (#42375) 2026-07-24 22:19:20 +07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 0b9a9c5d03 chore(deps): bump body-parser from 1.20.5 to 1.20.6 in /docs (#42370)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-24 21:23:31 +07:00
Yash Shrivastava c5f6d33d21 docs: add pattern to the list of organisations using superset (#42341) 2026-07-23 22:11:17 +07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 6654318491 chore(deps): bump caniuse-lite from 1.0.30001805 to 1.0.30001806 in /docs (#42333)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-23 21:46:27 +07:00
Amitesh Gupta 3ed8889a01 fix: Added PostgreSQL 17.X to the supported database versions table in (#42280) 2026-07-22 16:24:13 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 60a7c18204 chore(deps): bump svgo from 3.3.3 to 3.3.4 in /docs (#42286)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 17:55:25 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 37ef2f381e chore(deps): bump fast-uri from 3.1.3 to 3.1.4 in /docs (#42294)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 17:55:11 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 9c08240fdc chore(deps): bump dompurify from 3.4.11 to 3.4.12 in /docs (#42287)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 16:44:49 -07:00
Ville Brofeldt 15d7d36580 chore: remove deprecated from_dttm and to_dttm jinja vars (#42279) 2026-07-21 15:07:36 -07:00
34ebe3d22a feat(extensions): add a Storage API for extensions (#39171)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com>
Co-authored-by: Benyovszky Máté <benyovszky.mate.work@outlook.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 16:23:56 -03:00
706a65cb02 fix(docs): allow *.run.app in CSP for the Kapa widget backend (#42276)
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 10:18:13 -07:00
Evan RusackasandClaude Sonnet 5 b362d36019 chore: remove deck.gl JavaScript tooltip controls and ENABLE_JAVASCRIPT_CONTROLS (#42126)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-21 10:01:25 -07:00
Hugh A. Miles II 00cb3037e7 feat(dashboard): export dashboard chart data to Excel (async, S3 + email) (#41133) 2026-07-21 12:17:00 -04:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> a1d4cda0cb chore(deps-dev): bump typescript-eslint from 8.63.0 to 8.64.0 in /docs in the typescript-eslint group (#42259)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 01:15:28 -07:00
5a17ae1224 chore: drop Python 3.10 support, require Python 3.11+ (#42045)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-07-20 08:16:22 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 19ca088de6 chore(deps): bump baseline-browser-mapping from 2.10.42 to 2.10.43 in /docs (#42227)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-20 07:44:06 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 7e63b29741 chore(deps): bump antd from 6.5.0 to 6.5.1 in /docs (#42226)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-20 03:56:10 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> b5ae7cbd0d chore(deps): bump caniuse-lite from 1.0.30001803 to 1.0.30001805 in /docs (#42228)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-20 03:56:03 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> a58012fc0f chore(deps): bump the docusaurus-openapi group in /docs with 2 updates (#42195)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-18 16:05:39 +07:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Đỗ Trọng Hảihainenber
dab5f30842 chore(deps): bump @docusaurus/faster from 3.10.1 to 3.10.2 in /docs (#42179)
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: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-07-18 15:55:18 +07:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>hainenber
8299e7f87c chore(deps-dev): bump storybook from 10.4.6 to 10.5.0 in /superset-frontend (#42185)
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-07-18 15:41:22 +07:00
b432f8c917 fix(docs): use modern driver package for CrateDB (#42125)
Co-authored-by: Andreas Motl <andreas.motl@crate.io>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-18 10:05:09 +07:00
innovark fc506c06da feat: added email delivery of XLSX reports (#40885) 2026-07-17 10:35:34 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 929ec58276 chore(deps): bump docusaurus-theme-openapi-docs from 5.1.0 to 5.1.1 in /docs (#42129)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-17 06:05:47 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> bef03fb850 chore(deps-dev): bump prettier from 3.9.4 to 3.9.5 in /docs (#42128)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-17 02:28:19 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 9bb0e376b3 chore(deps): bump docusaurus-plugin-openapi-docs from 5.1.0 to 5.1.1 in /docs (#42131)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-17 02:28:11 -07:00
d57569c54a feat(reports): add XLSX (Excel) attachments for Alerts & Reports (#41424)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Martin Kominek <martin.kominek@stratox.cz>
Co-authored-by: kominma3 <127758497+kominma3@users.noreply.github.com>
2026-07-15 21:49:47 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 0dcf67fa27 chore(deps-dev): bump typescript-eslint from 8.62.1 to 8.63.0 in /docs (#42024)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 21:31:49 +07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> d49365757c chore(deps-dev): bump @typescript-eslint/parser from 8.61.0 to 8.63.0 in /docs (#42025)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 05:14:18 -07:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 68881a60ca chore(deps): bump caniuse-lite from 1.0.30001802 to 1.0.30001803 in /docs (#42026)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14 05:14:14 -07:00
Amin Ghadersohi 62ccdfacc2 fix(mcp): make list-item truncation cap configurable in get_dashboard_info (#41698) 2026-07-13 14:46:10 -04:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 96bf1a1e4c chore(deps): bump caniuse-lite from 1.0.30001800 to 1.0.30001802 in /docs (#41987)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-13 03:26:18 -07:00
Rahul Shelke bea5f8d4a4 fix(dashboard): stagger manual refresh to prevent worker saturation (#40512)
Signed-off-by: shelkesays <674591+shelkesays@users.noreply.github.com>
2026-07-09 17:53:04 -07:00
Ville Brofeldt 33f0fc93ed feat: introduce Subject model and entity editors/viewers (#38831) 2026-07-08 11:00:03 -07:00
01e872c105 refactor: remove the deprecated AVOID_COLORS_COLLISION feature flag (#41800)
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-08 09:48:32 -07:00