Claude Code
a67c02b86a
fix(odps): fix CI failures in tests and requirements
...
- Remove pyodps from requirements/base.txt since it is not listed in
base.in (fixes check-python-deps CI failure)
- Use real sqlite dialect instead of MagicMock in select_star tests to
avoid TypeError from quote_table joining MagicMock strings
- Mock sys.modules for odps in URI-no-match test so the local import
succeeds and reaches the URI pattern matching code path
- Remove broken patch of __func__ readonly attribute that caused
AttributeError
- Fix not-partitioned test to mock sys.modules instead of patching a
module-level name that does not exist
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-11 15:34:37 -07:00
Claude Code
925e20bb04
fix(odps): address review feedback - security, recursion, typing, tests
...
- Move security check before ODPS partition detection (auth before backend calls)
- Wrap is_odps_partitioned_table in try/except with warning log and fallback
- Replace OdpsBaseEngineSpec.get_table_metadata body with NotImplementedError
- Fix select_star signature: engine: Engine -> dialect: Dialect (matches base)
- Update Optional[X] -> X | None for modern Python typing
- Remove broken __eq__ that violated frozen dataclass hash contract
- Fix Partition docstring typos and __str__ description
- Add warning log when ODPS URI does not match expected pattern
- Add tests/unit_tests/db_engine_specs/test_odps.py with 7 unit tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-11 14:00:48 -07:00
Evan Rusackas
23b8d323a3
fix(odps): make pyodps import lazy to prevent CI failures
...
Move the `from odps import ODPS` import from module level to inside
the `is_odps_partitioned_table` method where it is used, wrapped in
try/except ImportError. Also move the `OdpsEngineSpec` import in
`databases/api.py` to be lazy. Remove pyodps from base requirements
since it is an optional dependency (like trino, bigquery, etc).
This prevents ModuleNotFoundError when pyodps is not installed, which
was causing all CI tests to fail with "Failed to create app".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 13:56:05 -07:00
Evan Rusackas
fc73474d53
fix(ci): fix ruff E501 and requirements ordering for pyodps
...
Split long log message string in db_engine_specs/__init__.py to stay
within the 88-character line limit. Move pyodps==0.12.2 to its proper
alphabetical position in requirements/base.txt and remove the manually
appended entry from the end of both requirements files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 13:55:56 -07:00
Evan Rusackas
9dd93d38b6
test(sql): add tests for Partition class
...
Add unit tests for the Partition class to cover __str__ and __eq__
methods and achieve 100% code coverage.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-11 13:55:33 -07:00
Evan Rusackas
909675c2a9
fix(db_engine_specs): validate external engine specs before loading
...
Add validation for external DB engine specs loaded via entry points
to ensure they are proper subclasses of BaseEngineSpec. This prevents
errors when third-party packages (like pyodps) provide outdated or
incompatible engine specs that don't inherit from BaseEngineSpec.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-11 13:55:33 -07:00
Evan Rusackas
3eb1c35512
fix(odps): add engine and engine_name attributes
...
Add missing engine and engine_name class attributes to OdpsEngineSpec
required for the supports_backend() method to work correctly.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-11 13:55:33 -07:00
Evan Rusackas
183ad77ed4
fix(odps): correct import path for Table class
...
Changed import from superset.sql_parse to superset.sql.parse to match
the new module location.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-11 13:55:33 -07:00
Evan Rusackas
a1bf361fe2
fix: ODPS (MaxCompute) data source table preview failed
...
When using the ODPS (MaxCompute) data source, previewing partitioned
tables in SQLLab would fail because ODPS requires a partition to be
specified for partition tables.
This PR adds ODPS-specific handling:
- New OdpsEngineSpec with partition detection support
- Modified select_star to add partition filter for ODPS partition tables
- New Partition dataclass in sql/parse.py
- New is_odps_partitioned_table method in DatabaseDAO
Closes #32301
Co-Authored-By: zhutong6688 <zhutong66@163.com >
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-11 13:55:33 -07:00
dependabot[bot]
ffe60bd960
chore(deps-dev): bump oxlint from 1.51.0 to 1.53.0 in /superset-frontend ( #38571 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 23:41:41 +07:00
dependabot[bot]
d752be5f74
chore(deps): bump dompurify from 3.3.1 to 3.3.2 in /superset-frontend ( #38455 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-11 08:51:40 -07:00
dependabot[bot]
3056c41507
chore(deps): bump caniuse-lite from 1.0.30001775 to 1.0.30001777 in /docs ( #38463 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-11 08:51:21 -07:00
dependabot[bot]
d42e9c4d1b
chore(deps): bump acorn from 8.9.0 to 8.16.0 in /superset-frontend ( #38466 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-11 08:51:10 -07:00
dependabot[bot]
5912941942
chore(deps-dev): bump @typescript-eslint/parser from 8.56.1 to 8.57.0 in /superset-websocket ( #38570 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 22:50:11 +07:00
dependabot[bot]
9b8106b382
chore(deps-dev): bump mini-css-extract-plugin from 2.10.0 to 2.10.1 in /superset-frontend ( #38573 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 22:23:08 +07:00
amaannawab923
9215eb5e45
fix(ag-grid): persist AG Grid column filters in explore permalinks ( #38393 )
2026-03-11 01:56:24 +05:30
Amin Ghadersohi
fe7f220c21
fix(charts): set reasonable default y-axis title margin to prevent label overlap ( #38389 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 19:09:09 +01:00
Amin Ghadersohi
3bb9704cd5
fix(mcp): honor target_tab parameter when adding charts to tabbed dashboards ( #38409 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 10:57:15 -07:00
Amin Ghadersohi
eb77452857
feat(mcp): auto-generate dashboard title from chart names when omitted ( #38410 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 10:56:58 -07:00
Amin Ghadersohi
6d7cfac8b2
fix(mcp): wrap LoggingMiddleware.on_message event_logger in try/except ( #38560 )
2026-03-10 17:48:08 +01:00
Đỗ Trọng Hải
31754a39c9
fix(i18n): correct variable name for translated SQL Lab query message ( #38494 )
...
Signed-off-by: hainenber <dotronghai96@gmail.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-10 21:50:14 +07:00
Michael S. Molina
bde48e563e
fix: SQL Lab tab content padding ( #38561 )
2026-03-10 11:44:31 -03:00
Amin Ghadersohi
0cfd760a36
fix(mcp): improve default chart names with descriptive format ( #38406 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 10:53:05 +01:00
dependabot[bot]
13fe88000a
chore(deps-dev): bump lightningcss from 1.31.1 to 1.32.0 in /superset-frontend ( #38511 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-10 16:51:58 +07:00
dependabot[bot]
cc8ad23d6f
chore(deps): bump react-diff-viewer-continued from 3.4.0 to 4.2.0 in /superset-frontend ( #38552 )
...
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-03-10 15:57:32 +07:00
Amin Ghadersohi
5c2cbb58bc
fix(mcp): add missing __init__.py for chart, dashboard, dataset packages ( #38400 )
2026-03-10 09:52:48 +01:00
Amin Ghadersohi
6342c4f338
feat(mcp): add horizontal bar chart orientation support to generate_chart ( #38390 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 09:52:12 +01:00
Amin Ghadersohi
5fa70bdbd8
fix(mcp): add guardrails to prevent LLM artifact generation ( #38391 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 09:51:23 +01:00
Amin Ghadersohi
2a876e8b86
fix(mcp): add missing command.validate() to MCP chart data tools ( #38521 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 09:50:41 +01:00
Amin Ghadersohi
0533ca9941
feat(mcp): register GlobalErrorHandlerMiddleware and LoggingMiddleware ( #38523 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 09:48:38 +01:00
dependabot[bot]
5f20d2e15a
chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend ( #38548 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 15:21:18 +07:00
dependabot[bot]
6d1d5d64d1
chore(deps): bump antd from 6.3.1 to 6.3.2 in /docs ( #38547 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 15:21:00 +07:00
dependabot[bot]
06d6b513cd
chore(deps-dev): bump jest from 30.2.0 to 30.3.0 in /superset-frontend ( #38549 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 14:39:05 +07:00
dependabot[bot]
afa51125de
chore(deps): bump the storybook group in /docs with 11 updates ( #38501 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-10 10:09:40 +07:00
dependabot[bot]
26c07b1ffb
chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.9.1 to 0.9.2 in /superset-frontend ( #38509 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-10 08:54:43 +07:00
Đỗ Trọng Hải
9ecca47e69
feat(ci): only run precommit on changed files ( #38155 )
...
Signed-off-by: hainenber <dotronghai96@gmail.com >
2026-03-10 08:49:38 +07:00
dependabot[bot]
6c1df93215
chore(deps): bump aquasecurity/trivy-action from 0.34.2 to 0.35.0 ( #38502 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-10 08:46:19 +07:00
dependabot[bot]
06fd0658ae
chore(deps-dev): bump prettier-plugin-packagejson from 3.0.0 to 3.0.2 in /superset-frontend ( #38508 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-10 08:46:01 +07:00
Enzo Martellucci
a17f38a4e2
fix(embedded): add CurrentUserRestApi read permission to Public role defaults ( #38474 )
2026-03-10 00:08:37 +01:00
Amin Ghadersohi
6ef4794778
fix(mcp): resolve chatbot tool call flakiness with URL and instruction fixes ( #38532 )
2026-03-09 23:35:50 +01:00
Amin Ghadersohi
4cd3ce164d
fix(mcp): make fastmcp truly optional during Superset startup ( #38534 )
2026-03-09 15:32:27 -07:00
Evan Rusackas
8e3e57c1c8
fix(docs): swizzle MethodEndpoint to fix SSG crash on all API pages ( #38533 )
...
Co-authored-by: Superset Dev <dev@superset.apache.org >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-09 14:18:59 -07:00
Hugh A. Miles II
61fbfda501
feat(security): add granular export controls (Phase 1) ( #38361 )
2026-03-09 16:44:56 -04:00
Evan Rusackas
9017b9a74f
chore: enable allow_update_branch in .asf.yaml ( #38530 )
...
Co-authored-by: Superset Dev <dev@superset.apache.org >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-09 13:42:09 -07:00
Gabriel Torres Ruiz
bc99b710bd
fix(dashboard): ensure clear all respects required filter validation ( #37681 )
2026-03-09 13:02:57 -07:00
Michael S. Molina
bf55f1e438
chore(extensions): bump superset-core and superset-extensions-cli to 0.1.0rc1 ( #38516 )
2026-03-09 14:40:08 -03:00
Gabriel Torres Ruiz
dca41f9a7b
fix(theme): prevent background color flash on page load ( #38399 )
2026-03-09 09:53:38 -07:00
yousoph
62cebc8a0e
fix(dashboard): prevent Apply button from disabling when required filters are auto-applied ( #38479 )
...
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 09:29:43 -07:00
Michael S. Molina
e70c7944b7
fix(tests): achieve 100% TypeScript coverage for core packages ( #38518 )
2026-03-09 13:25:39 -03:00
yousoph
577654cd02
fix(heatmap): correct tooltip display to show axis values instead of indices ( #38487 )
2026-03-09 08:54:47 -07:00