Commit Graph

110 Commits

Author SHA1 Message Date
Elizabeth Thompson
976e0d9d3e fix(reports): fail-loud WARNING diagnostics and log-context tracing for tile readiness
Companion to the previous commit's positive per-tile readiness check,
carrying the rest of PR #42119's changes onto this base:

- Per-tile readiness timeout logs at WARNING (customer chart-loading
  issue, not a system fault -- matching #38130/#38441) with elapsed wait
  time, tile index/total, load_wait, and the identity + stuck-state of
  each unready chart holder (waiting_on_database / spinner_mounted /
  nothing_mounted), then re-raises so the report fails rather than
  shipping a blank or spinner tile. A per-tile DEBUG line logs readiness
  wait time for profiling.
- The deliberate readiness-timeout re-raise is tracked with an explicit
  flag rather than `except PlaywrightTimeout` at the outer level, since
  PlaywrightTimeout is aliased to bare Exception when playwright isn't
  installed and would otherwise swallow-or-propagate the wrong cases.
- Threads an optional log_context (e.g. "execution_id=<uuid>") from
  BaseReportState._get_screenshots through BaseScreenshot.get_screenshot
  and both WebDriverProxy implementations into take_tiled_screenshot,
  so timeout logs correlate back to the report run. Defaults to None
  for callers outside the report pipeline (thumbnails).

Backported from apache/superset#42119 (commits 37da786b52, f6feb70eca,
97d15485ad squashed) onto this branch's base; only the log lines this
change itself adds or touches carry the context suffix -- pre-existing
log lines on this base (f-string style) are left as-is.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-21 18:37:47 +00:00
Elizabeth Thompson
a9ff21b573 fix(reports): positive per-tile chart readiness check for tiled screenshots
`take_tiled_screenshot()` waited for the *absence* of `.loading` elements
visible in the viewport before capturing each tile. With
DashboardVirtualization on (default), a chart holder that has just scrolled
into view but hasn't fired its IntersectionObserver callback yet mounts
neither a spinner nor a chart, so the predicate passed vacuously and the
tile was captured blank. On top of that, a per-tile timeout was caught,
logged as a warning, and the tile was captured anyway -- delivering a
spinner screenshot to report recipients instead of failing the report.

Replace the absence-of-`.loading` predicate with a positive readiness
check: every chart holder (`data-test="dashboard-component-chart-holder"`)
intersecting the viewport must show a terminal state (a rendered chart via
`.slice_container`, or an error/empty state via `[role="alert"]` /
`.ant-empty` / `.missing-chart-container`) before a tile is captured. A
holder with nothing mounted no longer satisfies the wait.

A per-tile timeout is now logged at ERROR with the tile index, the
load_wait, and the identities of the still-unready chart holders, and
re-raises instead of being swallowed -- the report now fails
(ReportScheduleScreenshotFailedError) instead of silently shipping a
degraded screenshot.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-21 18:28:02 +00:00
Joe Li
151fb74075 fix(charts): render time comparison without a time grain (#42054)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 157ef61fd8)
2026-07-17 11:29:42 -07:00
Maxime Beauchemin
8f6fa85a7b fix(charts): fix time comparison crash when offsets share a numeric prefix (#39344)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
(cherry picked from commit 0efcd54250)
2026-07-17 11:29:42 -07:00
Elizabeth Thompson
074cafc9dd fix(screenshots): catch empty-bytes tiled result and set ERROR on falsy image (#41097)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 134919ea36)
2026-06-30 21:41:27 -07:00
Hugh A. Miles II
e6db576381 feat(dashboard): add Rison-encoded URL filter support (#39795)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
(cherry picked from commit 9a79588d35)
2026-06-12 10:47:55 -07:00
Elizabeth Thompson
3c83e2e18f fix(reports): add per-tile animation wait to prevent partial ECharts renders in tiled screenshots (#40694)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 42367afb25)
2026-06-05 09:16:03 -07:00
Elizabeth Thompson
c952010683 fix(reports): guard null dashboard height in Playwright screenshots (#40179)
(cherry picked from commit f187a8e1c4)
2026-05-22 15:14:47 -07:00
Elizabeth Thompson
680bd7e444 fix(reports): narrow spinner checks to viewport and tighten exception handling (#39895)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 8d2b655c22)
2026-05-21 14:56:21 -07:00
Vitor Avila
cf2f4c0438 fix(OAuth2): Re-query the OAuth2 token to avoid stale reference (#40071)
(cherry picked from commit d40a5cad5d)
2026-05-19 15:12:17 -07:00
Vitor Avila
05e68c3187 fix(db oauth2): Improve OAuth2 flow (#39499)
(cherry picked from commit 191337e08d)
2026-05-19 14:06:43 -07:00
Beto Dealmeida
b968978ad5 fix(oauth2): silence lock acquisition errors on token refresh (#39463)
Co-authored-by: Beto Dealmeida <beto@preset.io>
(cherry picked from commit 5fb89b865d)
2026-05-19 14:03:39 -07:00
Elizabeth Thompson
1e40128f6f fix(reports): poll for spinner absence instead of snapshotting loading elements (#39579)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit f0d521dfc2)
2026-04-30 14:41:56 -07:00
Vitor Avila
4f5152b17d fix: Enforce per-user caching on legacy API endpoint (#39789)
(cherry picked from commit 86eb6176d1)
2026-04-30 14:09:24 -07:00
Amin Ghadersohi
3cda699864 fix(mcp): handle OAuth-authenticated databases in execute_sql (#39166)
(cherry picked from commit 68067d7f44)
2026-04-13 10:16:49 -07:00
Elizabeth Thompson
b36300201f fix(reports): propagate PlaywrightTimeout so execution transitions to ERROR state (#39176)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 587fe4af63)
2026-04-09 14:57:58 -07:00
Vitor Avila
88480c5ea4 feat: support for import/export masked_encrypted_extra (backend) (#38077)
(cherry picked from commit 8c9efe5659)
2026-03-11 14:05:09 -07:00
Beto Dealmeida
443fa69686 feat(alerts/reports): external URL warning (#35021)
(cherry picked from commit 03ad1789f0)
2026-03-09 10:17:13 -07:00
Vitor Avila
3895c754ba feat: Support OAuth2 single-use refresh tokens (#38364)
(cherry picked from commit fa34609952)
2026-03-09 10:16:32 -07:00
Joe Li
ee9e19b9bf feat(oauth2): add PKCE support for database OAuth2 authentication (#37067)
(cherry picked from commit 5d20dc57d7)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 23:33:53 -08:00
Jamile Celento
a3f3c0c3c6 fix(native-filters): update TEMPORAL_RANGE filter subject when Time Column filter is applied (#36985)
(cherry picked from commit 2dfc770b0f)
2026-02-17 23:04:03 -08:00
Daniel Vaz Gaspar
8fad912835 feat(cache): use configurable hash algorithm for flask-caching (#37361)
(cherry picked from commit 290bcc1dbb)
2026-01-26 12:40:53 -08:00
Jean Massucatto
5606d5d2e3 perf(date_parser): bound regex quantifiers for deterministic parsing performance (#36983)
Cherry-picked from master commit 459b4cb23d

Accepted:
- Bounded \s+ to \s{1,5} and \s* to \s{0,5} in time_range_lookup regexes
- Added tests for bounded whitespace validation

Adapted:
- Preserved 6.0-release "first/1st of" patterns between modified sections
- Kept existing tests for "first of" expressions

Original author: Jean Massucatto <massucattoj@gmail.com>
2026-01-26 12:40:52 -08:00
Richard Fogaca Nienkotter
68c7750f35 feat: Dynamic currency (#36416) 2026-01-26 12:40:52 -08:00
Alexandru Soare
b5f3892b8c feat(dates): adding handling for first of (#37098)
(cherry picked from commit 8f35cc93673a56ba499510fbefabf9e4a46d8b6f)
2026-01-26 12:40:52 -08:00
Daniel Vaz Gaspar
3c2004e588 feat: add option for hash algorithms (#35621)
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
(cherry picked from commit bb22eb1ca8)
2026-01-26 12:40:50 -08:00
SkinnyPigeon
1cd27bf27f feat(reports): allow custom na values (#35481)
Co-authored-by: bito-code-review[bot] <188872107+bito-code-review[bot]@users.noreply.github.com>
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
(cherry picked from commit 58758de93d)
2026-01-26 12:40:45 -08:00
Amin Ghadersohi
0f188a96f6 fix: Enable Playwright migration with graceful Selenium fallback (#35063)
Co-authored-by: Claude <noreply@anthropic.com>
(cherry picked from commit fe7f8062f3)
2026-01-26 12:40:43 -08:00
Amin Ghadersohi
6d4b17fcf1 fix(utils): Suppress pandas date parsing warnings in normalize_dttm_col (#35042)
(cherry picked from commit 15e4e8df94)
2026-01-26 12:40:42 -08:00
Elizabeth Thompson
cf18465e0d fix(utils): ensure webdriver timeout compatibility with urllib3 2.x (#34440)
(cherry picked from commit 385471c34d)
2026-01-26 12:40:42 -08:00
Maxime Beauchemin
1ea5e5af44 feat: add customizable brand spinners with theme integration (#34764)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
(cherry picked from commit b0d3f0f0d4)
2026-01-26 12:40:41 -08:00
Elizabeth Thompson
5b51c7e89e fix(screenshots): Only cache thumbnails when image generation succeeds (#36126)
Co-authored-by: Claude <noreply@anthropic.com>
(cherry picked from commit 08c1d03479)
2025-11-25 08:38:39 -08:00
Kamil Gabryjelski
933ec0a918 fix: Flakiness around scrolling during taking tiled screenshots with Playwright (#36051)
(cherry picked from commit 63dfd95aa2)
2025-11-10 11:56:32 -08:00
Mehmet Salih Yavuz
70117eb55f fix(date_parser): add check for time range timeshifts (#36039)
(cherry picked from commit c9f65cf1c2)
2025-11-10 10:08:45 -08:00
Kamil Gabryjelski
3b7a52d1eb fix: Ensure that Playwright tile height is always positive (#36027)
(cherry picked from commit 728bc2c632)
2025-11-07 12:03:10 -08:00
Daniel Vaz Gaspar
41ac8d8d9c fix: unpin holidays and prophet (#35771)
Co-authored-by: Claude <noreply@anthropic.com>
(cherry picked from commit 51aad52e6c)
2025-10-28 10:47:02 -07:00
Gabriel Torres Ruiz
f69bdf5475 fix(error-handling): jinja2 error handling improvements (#34803) 2025-09-03 17:52:08 -07:00
Beto Dealmeida
a475d68693 fix: make get_image() always return BytesIO (#34801)
(cherry picked from commit 1204507d68)
2025-08-25 10:23:57 -07:00
Mehmet Salih Yavuz
cb899f691b fix(csv_tests): Import from utils (#34664) 2025-08-12 15:55:53 -07:00
Elizabeth Thompson
2465ab4a98 chore: add more csv tests (#32663) 2025-08-12 13:26:10 -07:00
Kamil Gabryjelski
57d0e78d40 feat: Tiled screenshots in Playwright reports (#34561) 2025-08-12 08:09:01 +02:00
Maxime Beauchemin
246181a546 feat(docker): Add pytest support to docker-compose-light.yml (#34373)
Co-authored-by: Claude <noreply@anthropic.com>
2025-08-06 00:17:50 -04:00
Maxime Beauchemin
cb27d5fe8d chore: proper current_app.config proxy usage (#34345)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-31 19:27:42 -07:00
LisaHusband
7a1c056374 fix(charting): correctly categorize numeric columns with NULL values (#34213) 2025-07-24 15:46:58 +03:00
Usiel Riedl
662f0fa8f4 chore(reports): add task for slack channels warm-up (#32585) 2025-03-31 14:30:21 -03:00
CharlesNkdl
c0f83a7467 fix(excel export): big number truncation handling (#32739) 2025-03-21 09:39:59 -07:00
Beto Dealmeida
99e69c32ee fix: coerce datetime conversion errors (#32683) 2025-03-18 13:09:23 -04:00
Elizabeth Thompson
33aa9030bf fix: add DateOffset to json serializer (#32532) 2025-03-07 16:15:06 -08:00
Ville Brofeldt
68e8d9858c fix: always extract query source from request (#32525) 2025-03-06 14:17:21 -08:00
Vitor Avila
d2e0e2b79c fix(Slack): Fix Slack recipients migration to V2 (#32336) 2025-03-06 08:52:15 -03:00