Joe Li
0cdd9581ce
refactor(reports): deduplicate database check and add precedence integration test
...
Extract repeated effective-database logic into a single computation
in UpdateReportScheduleCommand.validate(). Add integration test
asserting Report + nonexistent DB returns "not allowed" (not "does
not exist") to lock API contract precedence.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-23 13:21:47 -08:00
Joe Li
e6fa96878e
test(reports): add database validation edge case tests
...
- No-mutation-on-422: verify rejected PUT does not change model state
- POST parity guard: confirm POST with Report+database still returns 400
- Bad DB on transition: Report→Alert with nonexistent DB returns 422
- Command-level unit matrix: 12 tests covering all effective type/database
combinations (payload absent vs None vs int, model DB present/absent,
type transitions in both directions)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 18:05:54 -08:00
Joe Li
c78624b20e
fix(reports): validate database field on PUT report schedule
...
PUT /api/v1/report/{id} with {"database": N} on a Report-type schedule
returned 500 instead of a validation error. The POST schema had this
check but the PUT path lacked it.
- Add ReportScheduleDatabaseNotAllowedValidationError exception
- Add command-level validation in UpdateReportScheduleCommand enforcing
both invariants: Reports must not have a database, Alerts must have one
- Add allow_none=True on ReportSchedulePutSchema.database to allow
clearing via PUT (consistent with dashboard field)
- Use explicit null check (database_id is not None) for DB existence
validation to handle edge cases
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 17:27:16 -08:00
Mehmet Salih Yavuz
7b21979fa3
fix(charts): Force refresh uses async mode when GAQ is enabled ( #37845 )
2026-02-16 21:45:10 +03:00
Michael S. Molina
e3e2bece6b
feat(owners): display email in owner selectors ( #37906 )
2026-02-13 09:01:05 -03:00
Jonathan Alberth Quispe Fuentes
88ce1425e2
fix(roles): optimize user fetching and resolve N+1 query issue ( #37235 )
2026-02-12 09:32:19 -08:00
Ville Brofeldt
00d02cb2ea
perf(gtf): improve task base filter ( #37900 )
2026-02-11 10:40:07 -08:00
Kamil Gabryjelski
26a2e12779
perf: fix N+1 query in Slice.datasource property ( #37899 )
2026-02-11 18:57:28 +01:00
Ville Brofeldt
255a0ada81
fix(gtf): add missing user_id to task commands ( #37867 )
2026-02-11 09:04:27 -08:00
Ville Brofeldt
0f1278fa61
fix(gtf): set dedup_key on atomic sql ( #37820 )
2026-02-10 06:56:14 -08:00
Ville Brofeldt
59dd2fa385
feat: add global task framework ( #36368 )
2026-02-09 10:45:56 -08:00
Jamile Celento
2dfc770b0f
fix(native-filters): update TEMPORAL_RANGE filter subject when Time Column filter is applied ( #36985 )
2026-02-04 12:37:17 +03:00
Amin Ghadersohi
0ecc69d2f1
chore(deps): bump fastmcp from 2.14.0 to 2.14.3 ( #37410 )
2026-01-24 07:03:00 -08:00
isaac-jaynes-imperva
3f37cdbf9c
fix(database): include configuration_method in the DB export/import flow ( #36958 )
...
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-01-23 19:34:52 -03:00
Evan Rusackas
dee063a4c5
feat(examples): Modernize example data loading with Parquet and YAML configs ( #36538 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-21 12:42:15 -08:00
Richard Fogaca Nienkotter
f4474b2e3e
feat: Dynamic currency ( #36416 )
2026-01-16 21:58:41 -08:00
Damian Pendrak
35ac4c74fd
feat(dashboard): chart customizations modal and plugins ( #36062 )
2026-01-14 17:00:18 +01:00
Gabriel Torres Ruiz
5edaed2e5b
fix(alerts): wrong alert trigger with custom query ( #35871 )
2026-01-07 18:06:18 +01:00
Felipe López
cedc35e39f
fix(SQLLab): remove error icon displayed when writing Jinja SQL even when the script is correct ( #36422 )
2026-01-06 16:58:40 +03:00
Evan Rusackas
5909e90081
feat(security): add built-in Public role for anonymous dashboard access ( #36548 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-05 10:27:10 -08:00
Daniel Vaz Gaspar
bb22eb1ca8
feat: add option for hash algorithms ( #35621 )
...
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com >
2025-12-09 16:59:07 +00:00
Haoqian Zhang
f4b919bf7d
feat(table): Export table data with "Search box" enabled ( #36281 )
...
Co-authored-by: RebeccaH2003 <114100529+RebeccaH2003@users.noreply.github.com >
2025-12-08 20:42:10 -08:00
Elizabeth Thompson
b35b1d7633
fix: add subdirectory deployment support for app icon and reports urls ( #35098 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Daniel Gaspar <danielvazgaspar@gmail.com >
2025-12-08 16:06:08 -08:00
Luis Sánchez
e7c060466d
fix(SqlLab): enhance SQL formatting with Jinja template support. ( #36277 )
2025-12-08 15:32:05 -08:00
Shunki
440cbc4c1f
fix(roles): Add missing SQLLab permissions for estimate and format ( #36263 )
2025-12-08 14:40:38 -08:00
Beto Dealmeida
c458f99dd4
chore: cleanup ssh tunnel ( #34388 )
2025-12-03 14:26:35 -05:00
Amin Ghadersohi
06a8f4df02
feat(datasets): add datetime format detection to dataset columns ( #36150 )
...
Co-authored-by: Claude Code <claude@anthropic.com >
2025-11-25 14:25:24 -08:00
Daniel Vaz Gaspar
cd36845d56
fix: remove unwanted info from tags REST API ( #36266 )
2025-11-25 16:22:31 +00:00
Antonio Rivero
c966dd4f9e
feat(dashboards): Add config to filter implicit tags in list API ( #36246 )
2025-11-25 11:57:53 +01:00
Beto Dealmeida
a2267d869b
refactor: refactor get_query_result ( #36057 )
2025-11-21 18:14:52 -05:00
Beto Dealmeida
e303537e0c
fix: adhoc column quoting ( #36215 )
2025-11-21 16:32:39 -05:00
Joe Li
a0c29cc260
test: fix flaky MySQL integration test in test_update_v1_response ( #36176 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-21 13:29:47 -08:00
Daniel Vaz Gaspar
348b19cb4c
fix(sqllab): validate results backend writes and enhance 410 diagnostics ( #36222 )
2025-11-21 15:05:48 +00:00
amaannawab923
35f156a1e1
feat(streaming): Streaming CSV uploads for over 100k records for constant memory usage ( #35478 )
2025-11-20 19:16:59 +02:00
Yuvraj Singh Chauhan
28bdec2c79
fix(tags): ensure tag creation is compatible with MySQL by avoiding Markup objects ( #36075 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-17 14:05:42 -08:00
Beto Dealmeida
fb7d0e0e3d
chore: annotate important types ( #36034 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-17 14:41:20 -05:00
Beto Dealmeida
f3e620cd0f
fix: RLS in virtual datasets ( #36061 )
2025-11-14 14:21:09 -05:00
Antonio Rivero
60f29ba6fb
chore(logs): Add is_cached in sync AND async results ( #36102 )
2025-11-13 16:04:49 +01:00
Elizabeth Thompson
c42e3c6837
fix(reports): improve error handling for report schedule execution ( #35800 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-07 17:57:43 -08:00
Amin Ghadersohi
f5f5913a29
test: revert unrelated flaky test fix from MCP PR ( #36015 )
2025-11-06 09:41:27 -08:00
Antonio Rivero
a1d4dff99d
feat(logs): Add is_cached as part of ChartDataRestApi.data actions ( #36001 )
2025-11-05 15:49:56 +01:00
Alexandru Soare
99b61143f6
feat(Chart): Save Chart State globally ( #35343 )
2025-10-29 15:54:07 +02:00
Elizabeth Thompson
61c68f7b8f
fix(reports): Add celery task execution ID to email notification logs ( #35807 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-28 15:31:41 -07:00
Amin Ghadersohi
cc6a5dc29a
feat(mcp): PR1 - Add MCP service scaffold for Apache Superset ( #35163 )
2025-10-24 16:59:23 -07:00
Elizabeth Thompson
1b6d57c3f3
test(tasks): Add tests for log_task_failure signal handler ( #35721 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-20 09:23:18 -07:00
Sam Firke
aede3bb5ba
fix(auth): redirect anonymous attempts to view dashboard with next ( #35345 )
2025-10-16 16:33:37 -04:00
Gabriel Torres Ruiz
de1dd53186
fix(theme-crud): enable overwrite confirmation UI for theme imports ( #35558 )
2025-10-15 18:15:57 -07:00
Daniel Vaz Gaspar
9d50f1b8a2
fix: update chart with dashboards validation ( #35523 )
2025-10-07 07:17:49 +01:00
Beto Dealmeida
62dc5c0306
fix(cache): ensure SQL is sanitized before cache key generation ( #35419 )
2025-10-02 13:25:54 -04:00
Maxime Beauchemin
abc2d46fed
refactor: remove obsolete Flask flash messaging system ( #35237 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-25 00:05:16 -07:00