Joe Li
0c02e0a3fb
fix(reports): handle missing executor user and revert Slack v2 atomically
...
Two robustness fixes in the alert/report execution command:
1. Missing executor user: when the configured executor cannot be resolved
(security_manager.find_user returns None), the content-generation sites
(_get_screenshots / _get_csv_data / _get_embedded_data) now raise a
dedicated ReportScheduleExecutorNotFoundError instead of failing later
with an opaque NoneType error. The guard lives at the content sites so
it raises inside the state machine's error envelope, preserving the
ERROR execution-log row and the owner error notification. The run()
boundary continues to delegate to the state machine (a missing user is
tolerated there, matching prior behavior) so visibility is unchanged.
2. Slack v2 migration revert: update_report_schedule_slack_v2 now snapshots
every recipient it mutates and reverts all of them on failure, instead
of only the loop variable, and no longer raises UnboundLocalError when
the failure occurs before the loop binds a recipient.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 11:11:15 -07:00
Joe Li
4c9b5c54f1
fix(reports): bound webhook notification retry wall-clock time
...
Webhook notification retries used backoff without a max_time bound, so a
hanging or persistently-failing target could stall a worker for minutes
per bad URL (up to ~5 socket waits at timeout=60 plus retry sleeps),
starving sequential report dispatch.
Add max_time=120 to the backoff decorator on WebhookNotification.send.
factor/base/max_tries are unchanged, so legitimately-transient 5xx
targets are still retried; max_time only caps total wall-clock so a bad
target cannot monopolize a worker. max_time is checked between attempts,
so the final in-flight request still runs its full timeout.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 11:11:15 -07:00
abhyudaytomar
09c7ba14df
fix(export): sanitize control characters in titles to prevent export failures ( #39294 )
...
Co-authored-by: Abhyuday Tomar <abhyuday.tomar@exotel.com >
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-24 11:03:46 -07:00
yousoph
f6ce105450
fix(pandas-postprocessing): handle prophet errors and validate minimum data points for forecast ( #41180 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-24 10:44:23 -07:00
Shashwati Bhattacharyaa
91188a0302
fix(config): Wire LOGO_TARGET_PATH and document custom spinner usage ( #36951 )
...
Co-authored-by: Shashwati <shashwatibhattacaharya21.2@gmail.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Evan Rusackas <evan@rusackas.com >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
2026-06-24 01:56:15 -07:00
Greg Neighbors
caf81e71d2
feat(mcp): add typed Pydantic response schemas to generate_explore_link tool ( #39900 )
...
Co-authored-by: gkneighb <26003+gkneighb@users.noreply.github.com >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-06-24 01:53:08 -07:00
Eddy
1b8c6d109d
feat: added deterministic field generation to dashboard export ( #36339 )
...
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-24 01:41:44 -07:00
Puneet Dixit
7b9bcdd951
fix(bigquery): preserve catalog in partition metadata lookup ( #40200 )
...
Co-authored-by: Puneet Dixit <rvit23bcs086.rvitm@rvei.edu.in >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-06-24 01:41:06 -07:00
yousoph
1d0866556f
fix(sql_lab): serialize dict/list cell values as valid JSON strings ( #41099 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 20:39:23 -07:00
Evan Rusackas
b4dfeef2fd
fix(reports): add network timeouts so schedules can't hang forever ( #41250 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-23 18:01:03 -07:00
crabulous
3bc3f47d67
fix(dataset): import/export jinja template bug ( #28790 )
...
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 13:25:49 -07:00
Durgaprasad M L
acb996a324
feat(mcp): support virtual dataset metrics and improve adhoc SQL metric discoverability ( #40935 )
...
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-23 12:19:44 -07:00
Ayush Sharaf
d3d5297025
fix(reports): preserve dashboard state in tab permalinks ( #39708 )
...
Co-authored-by: Ayush Kumar Sharaf <sharaf@Ayushs-MacBook-Air.local >
Co-authored-by: Evan Rusackas <evan@preset.io >
Co-authored-by: Ayush Kumar Sharaf <ayush.sharaf@314ecorp.com >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 12:15:41 -07:00
Ville Brofeldt
b061b5d317
chore: fix lint on untouched files ( #41333 )
2026-06-23 11:29:19 -07:00
Evan Rusackas
386893f9f2
feat(security): record audit metadata on guest token issuance ( #41305 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-23 11:25:44 -07:00
Evan Rusackas
c1787a67aa
fix(extensions): log extension-init failures via the logger, not print() ( #41304 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-23 11:25:33 -07:00
Evan Rusackas
dee5859599
fix(rls): reject empty or whitespace-only RLS clauses ( #41297 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-23 11:24:38 -07:00
Elizabeth Thompson
9d56b1721d
fix(models): use Series.iloc for positional access in post_process_df ( #41344 )
2026-06-23 11:22:22 -07:00
Alexis
ca3c420412
fix(trino): ignore Iceberg $partitions metadata fields in partition detection ( #41055 )
...
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-06-23 10:13:23 -07:00
Evan Rusackas
5e8a0c0244
fix(embedded): allow guest users to sort table columns in embedded dashboards ( #41218 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-23 10:10:55 -07:00
Evan Rusackas
66f5ab2d2f
fix(ssh-tunnel): support ed25519 and ECDSA keys, not just RSA ( #24180 ) ( #40139 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
2026-06-23 09:15:45 -07:00
Harshit-Tiwary
36781fbf47
fix(i18n): wrap table access error message with gettext for translation ( #38489 )
...
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-22 20:28:05 -07:00
Shaitan
215b207ae4
fix(sql): detect set operations and nested selects in subquery check ( #38452 )
...
Co-authored-by: sha174n <pedro.sousa@preset.io >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 20:27:32 -07:00
Vitor Avila
3b46a5f121
fix(chart API): Consider time grain filters with the filters_dashboard_id param ( #41290 )
2026-06-22 20:01:24 -03:00
Hans Yu
c49391ab08
refactor: update Connection.execute() to use queries with text() ( #40277 )
2026-06-22 15:36:15 -07:00
Antonio Pio Volgarino
e34b7c2daf
fix(gsheets): pass service_account_info via adapter_kwargs ( #38443 )
...
Co-authored-by: Antonio Pio Volgarino <avolgarino@zanichelli.it >
Co-authored-by: Joe Li <joe@preset.io >
Co-authored-by: Evan Rusackas <evan@preset.io >
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-22 11:34:08 -07:00
Daniel Vaz Gaspar
27a65257ee
perf(screenshots): reuse Playwright browser across tasks instead of launching per-task ( #41243 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-06-22 11:32:30 -07:00
Pham Quang Binh
36632c20eb
fix(databases): apply IMPERSONATE_WITH_EMAIL_PREFIX to StarRocks engine ( #37984 )
2026-06-22 23:45:05 +07:00
Ujjwal Jain
449bd69802
fix(logging): safely render database URIs in startup warnings ( #38229 )
2026-06-22 09:05:16 -07:00
Evan Rusackas
b8aeecfc44
fix(export): dashboard export must not leak env-local chartIds ( #32972 ) ( #40588 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 03:50:29 -07:00
Jean Dupuis
b2e5f80db2
fix(sql): preserve multi-arg DISTINCT in sanitize_clause and format ( #39340 )
2026-06-19 13:02:50 -07:00
Vitor Avila
334b13c3d9
fix(chart API): apply dashboard filters by live scope, not stale chartsInScope ( #41214 )
2026-06-19 15:22:54 -03:00
Vitor Avila
9e130e5927
fix(chart): preserve SQL_QUERY_MUTATOR line comments structure ( #41215 )
2026-06-19 15:07:24 -03:00
André Meyer
141f045104
test: add unit tests for get_current_user (superset/tasks/utils.py) ( #40878 )
...
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-06-19 10:09:53 -07:00
dependabot[bot]
919bd35028
chore(deps): bump marshmallow from 3.26.2 to 4.3.0 ( #39751 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
2026-06-19 10:02:35 -07:00
Amin Ghadersohi
1467006427
fix(mcp): generate durable explore permalink URL instead of ephemeral form_data_key ( #40773 )
2026-06-19 08:50:11 -07:00
Furkan Emre Güngör
9d3efb0aab
fix(csv): apply CSV_EXPORT encoding explicitly, Werkzeug 3 removed Response.charset ( #40801 )
2026-06-19 08:49:27 -07:00
Elizabeth Thompson
0c9ece65bb
fix(reports): require user in get_screenshot, simplify Selenium lifecycle, and fail on tiled screenshot error ( #41080 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 15:46:17 -07:00
Elizabeth Thompson
7040388ad1
fix(query_object_factory): normalize deprecated query fields before constructing QueryObject ( #41204 )
2026-06-18 15:02:07 -07:00
Abdul Rehman
76e2418f1e
fix(mcp): add safeguards to ensure all MCP tools are wrapped with mcp_auth_hook ( #40412 )
...
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-06-18 10:27:53 -07:00
Vitor Avila
b4e3452bfd
fix(chart API): Do not duplicate Jinja-applied filters with filters_dashboard_id ( #41131 )
2026-06-18 14:25:54 -03:00
Durgaprasad M L
7e98410743
fix(theme): embedded method overrides dashboard level config ( #40777 )
...
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me >
2026-06-17 18:33:04 -07:00
Hans Yu
883b7a286d
refactor: update SQLAlchemy select() syntax to 2.0 ( #40276 )
2026-06-17 17:50:32 -07:00
jesperct
ef82da8458
fix(charts): apply datetime format to unaggregated temporal columns ( #41060 )
2026-06-17 14:56:09 -07:00
Shaitan
6a1091d576
fix(sql): broaden mutating-statement detection in SQL Lab parser ( #40421 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
Co-authored-by: sha174n <pedro.sousa@preset.io >
2026-06-16 15:07:34 -07:00
Elizabeth Thompson
f1ae683923
fix(deps): replace deprecated np.NaN with np.nan ( #41118 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-16 14:19:08 -07:00
Bob Jo
257dafeec5
fix(query): don't mutate ad-hoc ORDER BY expressions when building queries ( #40993 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-16 13:03:39 -04:00
Alexandru Soare
6d08e79259
feat(security): Add extension hooks for custom access control, ownership, and asset lifecycle ( #40707 )
2026-06-16 15:25:03 +03:00
Amin Ghadersohi
7cb4990403
feat(mcp): add create_dataset tool to register physical tables as datasets ( #40340 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-15 23:25:29 -04:00
Amin Ghadersohi
c1b5d05f83
fix(bigquery): set default dataset from schema in adjust_engine_params ( #40776 )
2026-06-15 18:37:06 -04:00