Commit Graph
14 Commits
Author SHA1 Message Date
Enzo MartellucciandClaude Sonnet 5 d7ae94e64d fix(datasets): make infra-error propagation from fetch_metadata reach the API
get_columns_description wrapped DBAPI connection/operational/database
errors into a generic SupersetGenericDBErrorException before they ever
reached CreateDatasetCommand's dedicated re-raise clause, making that
clause unreachable for virtual datasets. Preserve SupersetDBAPIError
subclasses the same way OAuth2RedirectError is already preserved.

DatasetRestApi.post also flattened these deliberately-unchanged
infra failures (including SupersetTimeoutException) into the generic
except Exception -> 500 "Fatal error" branch, discarding their real
status. Handle them explicitly before that branch.

Addresses PR review comments from msyavuz on apache/superset#43334.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 20:22:22 +02:00
Enzo Martellucci 8105a24b0d Merge branch 'master' into enxdev/fix/sql-lab-save-dataset
# Conflicts:
#	tests/unit_tests/datasets/api_tests.py
2026-09-01 09:19:05 +02:00
Mehmet Salih Yavuz 0eda633b45 fix(dataset): stop a stale edit modal from silently reverting a saved change (#43583) 2026-08-28 21:07:36 +03:00
Enzo MartellucciandClaude Sonnet 5 390be50f37 fix(dataset): let OAuth2RedirectError reach caller through virtual-table path
get_columns_description wrapped every exception (including OAuth2RedirectError)
raised during query execution into SupersetGenericDBErrorException, so a
virtual dataset's OAuth2 challenge never reached the create.py guard meant to
preserve it. Also restore @safe's opaque-500 behavior for unexpected
exceptions on DatasetRestApi.post, since dropping @safe to let
OAuth2RedirectError through otherwise let raw exception text leak via
Flask's global error handler.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 18:28:34 +02:00
b3f718da62 fix(explore): keep certification badges after saving or swapping a dataset (#43319)
Co-authored-by: rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 08:47:36 -07:00
Enzo MartellucciandClaude Sonnet 5 192ddf9a6d fix(dataset): let OAuth2RedirectError survive DatasetRestApi.post
msyavuz's review noted that CreateDatasetCommand's OAuth2RedirectError
re-raise doesn't survive the API layer: DatasetRestApi.post is wrapped
in flask-appbuilder's @safe, which catches any uncaught exception and
flattens it into an opaque 500, dropping the url/tab_id extras the
frontend needs to start the OAuth2 dance. Mirror the pattern already
used by DatabaseRestApi (no @safe + explicit except OAuth2RedirectError:
raise) so the app-level SupersetErrorException handler can build the
correct 403 response instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 11:19:18 +02:00
Enzo Martellucci 540f8cb2d0 fix(sqllab): invalidate the dataset-save gate when the editor SQL changes 2026-08-19 16:52:40 +02:00
Enzo Martellucci aae997e546 fix(sql_lab): return 400 not 500 when raise_for_access hits malformed Jinja 2026-08-19 16:02:09 +02:00
Elizabeth Thompson 7dd6ce835f fix(datasets): catch TemplateError instead of narrower TemplateSyntaxError in render_dataset_fields (#42802) 2026-08-06 15:05:08 -07:00
Evan RusackasandClaude Code 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
Michael S. MolinaandClaude Opus 4.6 94d8735d4b fix(query): pass datasource table to template processor for schema-aware Jinja rendering (#38984)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 13:08:12 -03:00
Evan Rusackas 90651dfe3e fix(dev/ci): pre-commit fixes galore (#32352) 2025-02-24 11:26:45 -07:00
John Bodley 847ed3f5b0 refactor: Ensure Flask framework leverages the Flask-SQLAlchemy session (Phase II) (#26909) 2024-02-14 06:20:15 +13:00
Beto Dealmeida 3e63c82ecc feat: generic marshmallow error component (#25303) 2023-10-03 11:35:28 -07:00