Evan
51cf2cdfda
fix(ssh-tunnel): address re-review feedback on _load_private_key
...
- add circular-import justification comment on the deferred get_default_port import
- drop no-op continue in the per-type loop
- add NOTE clarifying last_exc reflects the final (RSAKey) attempt
- clarify docstring re paramiko 3.2+ PKey.from_path() and why it's unsafe here
- strengthen ed25519/RSA tests with isinstance assertions on the parsed key type
- add test for passphrase-protected key without password (PasswordRequiredException)
- add test for an unparseable key (SSHException listing all attempted types)
- de-duplicate test setup via _make_manager / _make_ssh_tunnel helpers
- consistent assertion messages across key-type tests
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-05 10:25:30 -07:00
Amin Ghadersohi
5a6cdd8e06
fix(ssh-tunnel): address review feedback on _load_private_key
...
- Re-raise PasswordRequiredException immediately instead of absorbing it
into the try-next-type loop, so callers see an actionable "key requires
passphrase" error rather than "Unable to parse"
- Add `from last_exc` to the final raise to preserve the exception chain
for traceback tools (Sentry et al.)
- Narrow last_exc type annotation to SSHException | None
- Add test_create_tunnel_accepts_ecdsa_private_key (NIST P-256) to cover
the third entry in _SSH_KEY_TYPES
- Move RSA and ECDSA crypto imports to module level (rm inline import)
2026-05-21 20:48:31 +00:00
Claude Code
b90f809ede
fix(ssh-tunnel): support ed25519 and ECDSA keys, not just RSA
...
`SSHManager.create_tunnel` unconditionally called
`RSAKey.from_private_key` regardless of key type, so users who pasted a
modern key (ed25519, ECDSA) got an opaque
`paramiko.ssh_exception.SSHException: unpack requires a buffer of 4
bytes` and the tunnel never opened.
paramiko does not expose a polymorphic `PKey.from_private_key`; each
key class only accepts its own format. Add `_load_private_key` that
tries Ed25519Key → ECDSAKey → RSAKey in order and returns the first
that parses cleanly. Modern types are tried first because RSA's parser
is the most permissive and would happily accept a non-RSA buffer with
the same vague error otherwise.
If none of the loaders succeed, surface a single `SSHException` whose
message lists every type that was attempted — much more actionable
than the original 4-bytes-buffer error.
Companion regression tests (added in this PR's earlier commit) cover
both the new ed25519 path and the backward-compatible RSA path.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 20:48:31 +00:00
Claude Code
da76c68158
test(ssh-tunnel): assert ed25519 SSH keys load for tunnel setup
...
Closes #24180
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 20:48:31 +00:00
dependabot[bot]
48cb3f5885
chore(deps-dev): bump baseline-browser-mapping from 2.10.29 to 2.10.31 in /superset-frontend ( #40320 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-21 13:45:02 -07:00
dependabot[bot]
dcef6f8a41
chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend ( #40322 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-21 13:44:46 -07:00
dependabot[bot]
f09fd63495
chore(deps): bump @googleapis/sheets from 13.0.1 to 13.0.2 in /superset-frontend ( #40324 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-21 13:44:05 -07:00
dependabot[bot]
bc26006a43
chore(deps-dev): update sqlalchemy-drill requirement from <2,>=1.1.4 to >=1.1.10,<2 ( #40310 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-21 13:42:40 -07:00
dependabot[bot]
8b483f320e
chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in /superset-frontend ( #40325 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-21 13:41:40 -07:00
Evan Rusackas
89c2a47433
fix(TableView): reset pagination when data reduces below current page ( #34562 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-05-21 13:39:05 -07:00
JUST.in DO IT
b8b91574e0
fix(view query): Update style for code viewer container ( #39635 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-05-21 13:37:56 -07:00
Jay Masiwal
5526464def
fix(frontend): update safeStringify to surface [Circular] and DRY plugin code ( #39156 )
2026-05-21 13:37:05 -07:00
Evan Rusackas
73f66e4c14
fix(datasets): isolate filter state to fix concurrent /dataset race ( #39685 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-21 11:12:32 -07:00
Elizabeth Thompson
f187a8e1c4
fix(reports): guard null dashboard height in Playwright screenshots ( #40179 )
2026-05-21 09:19:29 -07:00
Mehmet Salih Yavuz
4c3f65ef0b
feat(mcp): make config optional in generate_explore_link ( #39559 )
2026-05-21 18:01:59 +03:00
Mehmet Salih Yavuz
53d8e5bdfa
feat(mcp): include applied dashboard filters in get_chart_info ( #39620 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 17:48:21 +03:00
Mehmet Salih Yavuz
2f95d288dd
fix(mcp): eager-load dataset.metrics to prevent Excel export DetachedInstanceError ( #39483 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 16:34:38 +03:00
Beto Dealmeida
2f5fcc21f9
fix(semantic layers): coerce filter types ( #40222 )
2026-05-21 09:25:27 -04:00
Mehmet Salih Yavuz
d1d07112aa
feat(mcp): add find_users tool and owner filter columns for listings ( #39679 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 15:59:09 +03:00
Alexandru Soare
e3711bec39
fix(recommandation): Fix chart recommandation ( #39886 )
2026-05-21 15:16:16 +03:00
Mehmet Salih Yavuz
ce9cab098f
feat(mcp): chart formatting options across all supported chart types ( #39887 )
2026-05-21 15:00:32 +03:00
dependabot[bot]
a183582291
chore(deps): bump markdown-to-jsx from 9.8.0 to 9.8.1 in /superset-frontend ( #40316 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 22:33:08 -07:00
dependabot[bot]
3acef94ef6
chore(deps): update zod requirement from ^4.4.1 to ^4.4.3 in /superset-frontend/plugins/plugin-chart-echarts ( #40313 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 22:32:46 -07:00
dependabot[bot]
9638eecdb1
chore(deps-dev): bump oxlint from 1.65.0 to 1.66.0 in /superset-frontend ( #40318 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 22:29:45 -07:00
Evan Rusackas
7e74fc4192
fix(charts): handle PostgreSQL INTERVAL type in bar and pie charts ( #34513 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-05-20 22:26:59 -07:00
Evan Rusackas
cdca6f7fdc
fix(sqllab): keep saved-query list working when Jinja dataset(id) references a deleted dataset ( #39703 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-20 21:19:19 -07:00
Maxime Beauchemin
b1ca8cac6b
fix(tests): fix flaky FileHandler test by awaiting LaunchQueue consumer in afterEach ( #39508 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: sadpandajoe <jcli38@gmail.com >
2026-05-20 19:31:01 -07:00
Evan Rusackas
2cd5efa627
ci(deps): bump lower bound on pip dependabot PRs ( #40308 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-21 08:53:57 +07:00
Maxime Beauchemin
a273fe4d62
fix(list-view): preserve user name in filter pill after navigation ( #39505 )
...
Co-authored-by: Joe Li <joe@preset.io >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 16:54:49 -07:00
Evan Rusackas
d203f0de33
chore(sql-lab): finish SqlLab typed-dispatch migration for SaveDatasetModal ( #40040 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
Co-authored-by: Claude <claude@anthropic.com >
2026-05-20 16:04:38 -07:00
Evan Rusackas
a75f9b67b2
chore(superset-ui-switchboard): forward-compat fixes for TypeScript 6.0 (Phase E) ( #40028 )
...
Co-authored-by: Claude <claude@anthropic.com >
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-20 15:37:52 -07:00
Evan Rusackas
3f0858e35d
chore(sql-lab): migrate useDispatch to useAppDispatch ( #40037 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 15:36:27 -07:00
Beto Dealmeida
68c145adc3
feat(semantic layers): add metadata on additive metrics ( #40279 )
2026-05-20 18:29:28 -04:00
Evan Rusackas
4a9aecda4a
fix(dashboard-import): remap chartsInScope on import ( #26338 ) ( #40140 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
Co-authored-by: Claude <claude@anthropic.com >
2026-05-20 13:41:14 -07:00
Evan Rusackas
46b2d7d7a9
test(dashboard-import): pin native filter scope rootPath preservation ( #19944 ) ( #40135 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 12:25:34 -07:00
Evan Rusackas
f8600471fa
test(datasets): regression test for Jinja not rendered on sync columns ( #25839 ) ( #40224 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:46:36 -07:00
Evan Rusackas
b23c65e04f
test(charts): regression for last-modified sort order ( #27500 ) ( #40231 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:43:19 -07:00
Evan Rusackas
aa8255c55c
test(reports): regression for alerts CSV missing chart time filters ( #25538 ) ( #40232 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:42:52 -07:00
Evan Rusackas
10b7bfc8c1
test(helpers): regression for humanize locale activation ( #28331 ) ( #40233 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 11:42:17 -07:00
Evan Rusackas
89cab1860e
chore(codeowners): add @rusackas as translations maintainer ( #40295 )
...
Co-authored-by: Claude <claude@anthropic.com >
2026-05-20 11:41:58 -07:00
dependabot[bot]
b7585122c8
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.3 to 8.59.4 in /superset-websocket ( #40250 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 10:45:00 -07:00
dependabot[bot]
f2d80a183e
chore(deps): bump content-disposition from 1.1.0 to 2.0.0 in /superset-frontend ( #40109 )
...
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 >
2026-05-20 10:41:34 -07:00
Shaitan
69adecd6a3
fix(reports): enforce server-side recipient on chart/dashboard report subscriptions ( #38847 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 10:36:42 -07:00
Mike Bridge
fbffae0444
fix(dataset-editor): drop null warning_markdown from extra JSON serialisation ( #39706 )
...
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 10:34:03 -07:00
dependabot[bot]
6ce7c2e8de
chore(deps-dev): bump react-resizable and @types/react-resizable in /superset-frontend ( #40110 )
...
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-20 10:32:38 -07:00
SkinnyPigeon
105820f1f4
docs(reports): playwright setup clarification ( #40168 )
2026-05-20 10:32:02 -07:00
Evan Rusackas
92b1b0a219
ci(docs): soft-fail badge localization on transient fetch errors ( #40236 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 10:21:58 -07:00
Evan Rusackas
c39a47cbac
test(sql-parser): pin WITH+UNION as non-mutating across dialects ( #25659 ) ( #40138 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 10:08:21 -07:00
dependabot[bot]
dacda71f77
chore(deps-dev): bump typescript-eslint from 8.59.3 to 8.59.4 in /superset-websocket ( #40251 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 09:57:53 -07:00
dependabot[bot]
12a21c8933
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.3 to 8.59.4 in /superset-frontend ( #40256 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-20 09:57:01 -07:00