Evan
dc99373579
test(databricks): add return/param type annotations to multi-cloud OAuth fixtures
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 21:33:16 -07:00
fabian_zse
278cfbb694
cloud providers test
2026-06-27 21:33:16 -07:00
fabian_zse
1de21ec5c6
support all cloud providers
2026-06-27 21:33:15 -07:00
fabian_zse
a0fdb2aa31
add databricks oauth support
2026-06-27 21:33:15 -07:00
ʈᵃᵢ
25c9f3510a
test(mcp): set embedded on update_dashboard test mock ( #41495 )
2026-06-28 11:19:01 +07:00
Elizabeth Thompson
5ec0931840
fix(pandas_postprocessing): pass string operator names to GroupBy.agg to avoid FutureWarning ( #41025 )
2026-06-27 15:01:43 -07:00
Shaitan
cd8ac41d16
fix(datasource): validate expressions through the shared adhoc-expression checks ( #41427 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 19:47:59 +01:00
Krishna Chaitanya
a147079043
fix(bigquery): backslash-escape apostrophes in filter values ( #38835 )
...
BigQuery rejects filter values containing apostrophes (e.g. O'Brien): the
sqlalchemy-bigquery dialect renders string literals via repr(), which switches
to double-quote delimiters that BigQuery parses as identifiers, causing a
syntax error.
Monkey-patch the dialect's colspecs with a TypeDecorator whose literal_processor
emits single-quoted literals using backslash escaping ('O\'Brien'). Doubled
single quotes ('O''Brien') are NOT valid in BigQuery (parsed as concatenated
literals). Control characters are emitted as named escapes with a \xhh fallback,
since BigQuery forbids literal control chars in quoted strings. Follows the
existing Databricks dialect pattern.
Fixes #35857
2026-06-27 00:55:47 -07:00
Onur Taşhan
1280eaee18
fix(mcp): include embedded_uuid in get_dashboard_info response ( #41195 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-26 18:00:10 -07:00
Joe Li
98d0ccd7a7
fix(reports): reliability fixes for alert/report execution ( #41177 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 12:09:12 -07:00
Evan Rusackas
8aacb6f793
fix(async): derive async channel from guest token for embedded RLS queries ( closes #31492 ) ( #41397 )
...
Co-authored-by: Devin AI <devin-ai-integration[bot]@users.noreply.github.com>
2026-06-26 12:09:06 -07:00
Evan Rusackas
068a709c14
fix(config): expose build details (git SHA/build number) to admins only ( #41301 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-26 12:08:04 -07:00
Evan Rusackas
71c8e2f69d
fix(config): refuse to start with an empty SECRET_KEY ( #41299 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-26 12:07:17 -07:00
Amin Ghadersohi
a5dbb394e5
fix(thumbnails): add deduplication to dashboard thumbnail Celery tasks ( #38576 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-26 12:41:02 -04:00
SkinnyPigeon
0d43c2c12c
feat(reports): trigger alerts ( #41336 )
2026-06-25 22:01:39 -07:00
Greg Neighbors
2b09b6bc1d
feat(mcp): list_charts accepts dashboards filter ( #40397 )
...
Co-authored-by: gkneighb <26003+gkneighb@users.noreply.github.com >
Co-authored-by: Greg Neighbors <gregneighbors@Gregs-Air-2.lan >
2026-06-25 17:14:11 -07:00
Greg Neighbors
d8bcc66472
feat(mcp): dashboard layout, theme, and CSS control + update_dashboard tool ( #40399 )
...
Co-authored-by: gkneighb <26003+gkneighb@users.noreply.github.com >
Co-authored-by: Greg Neighbors <gregneighbors@Gregs-MacBook-Air-2.local >
Co-authored-by: Greg Neighbors <gregneighbors@Gregs-Air-2.lan >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Co-authored-by: Evan Rusackas <evan@rusackas.com >
2026-06-25 10:41:07 -07:00
Evan Rusackas
4b9b8187b3
fix(config): make Swagger UI opt-in (off by default) ( #41300 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-25 10:34:28 -07:00
Mehmet Salih Yavuz
9a11c15a33
feat(explore): add full-range option for time-shift comparison ( #41334 )
2026-06-25 18:30:33 +03:00
Evan Rusackas
e0f3f93cd4
fix(mcp): require MCP_JWT_AUDIENCE when MCP JWT auth is enabled ( #41292 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-24 16:53:36 -07:00
Evan Rusackas
81f7e42f4e
fix(rls): preserve tables/roles on partial RLS rule updates ( #41294 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-24 16:16:47 -07:00
Evan Rusackas
0fd244b5c6
fix(security): reject unknown fields on guest-token RLS rules ( #41217 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-24 16:16:43 -07:00
Evan Rusackas
4f4663418f
fix(tests): stabilize update_chart MCP test failing on previous-Python CI leg ( #41310 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-24 16:16:14 -07:00
Evan Rusackas
f40abbbefd
fix(mcp): fail closed when the JWT verifier has no pinned algorithm ( #41296 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-24 16:15:42 -07:00
Evan Rusackas
6166af3c3c
fix(mcp): reject non-finite JWT exp instead of 500ing on int() overflow ( #41394 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-24 16:15:29 -07:00
Evan Rusackas
7363774869
fix(theming): deep-merge partial THEME_DEFAULT overrides with built-in defaults ( #41347 )
...
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-24 13:27:32 -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