Maxime Beauchemin
39aff3eecb
fix(charts): add return type annotation to test function
...
Address CodeAnt AI review comment — add explicit -> None return type
annotation to test_extract_dataframe_dtypes_with_duplicate_columns.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-06-16 19:27:22 +00:00
Maxime Beauchemin
8bc22ba0b8
fix: shorten docstring to pass E501 line length check
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-06-16 19:26:49 +00:00
Maxime Beauchemin
c4effbc62e
fix(charts): address code review — check all join keys and fix timeOffset.ts
...
1. Check any join key (not just the first) for temporal dtype when
validating time grain requirement. Fixes edge case where temporal
key is not the first in the join_keys list.
2. Fix substring matching bugs in timeOffset.ts:
- getTimeOffset: use startsWith for <offset>, pattern
- getOriginalSeries: use startsWith+slice for <offset>, pattern
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-06-16 19:26:49 +00:00
Maxime Beauchemin
dd0d2916d3
fix(charts): only require time grain when join key is temporal
...
Refine the time grain validation to check whether the first join key
is a datetime column before raising. Table charts with time comparison
use non-temporal dimension joins that work without a time grain.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-06-16 19:26:49 +00:00
Maxime Beauchemin
af98460622
fix(charts): handle duplicate column names in extract_dataframe_dtypes
...
When a DataFrame has duplicate column names (e.g. from time comparison
post-processing), `df[column]` returns a DataFrame instead of a Series.
Calling `.isna().all()` on a DataFrame produces a Series of booleans,
which raises "truth value of a Series is ambiguous" in the `if` check.
Fix by using positional indexing (`df.iloc[:, i]`) to always retrieve a
single Series regardless of duplicate column names.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-06-16 19:26:49 +00:00
Maxime Beauchemin
cf4e37b932
fix(charts): raise error when time comparison is used without a time grain
...
Without a time grain, the offset join columns that align shifted dates
to original dates are never created. The join falls back to raw column
values, producing silently wrong results (identical values instead of
shifted data). Replace the existing dead-code validation with a check
that raises a helpful error early.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-06-16 19:26:24 +00:00
Maxime Beauchemin
0c06c2f657
fix(charts): use separator-aware matching for time shift column grouping
...
The `endswith(ts)` check in `get_column_groups` matched columns
incorrectly when time shifts shared a numeric suffix — e.g.
"metric__22 weeks ago".endswith("2 weeks ago") returned True,
causing columns to be misclassified. Use `endswith(TIME_COMPARISON + ts)`
to include the "__" separator in the match.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-06-16 19:26:23 +00: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
Evan Rusackas
e16bb29faf
fix(embedded): allow guests to apply a Time Grain native filter ( #32768 ) ( #41017 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-15 15:22:21 -07:00
Elizabeth Thompson
09b4bc51a3
fix(charts): rename deprecated query object fields in schema before QueryObject construction ( #41056 )
2026-06-15 14:45:41 -07:00
Evan Rusackas
379435b7eb
feat(ssh_tunnel): add opt-in server host key verification ( #40673 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-15 12:17:14 -07:00
Amin Ghadersohi
4b96b91b53
feat(mcp): add aggregation field to BigNumberChartConfig for Big Number with Trendline ( #40775 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-06-15 14:40:37 -04:00
Minh Vu
bf5daf0a1e
fix(mcp): redirect stdio click echo without recursion ( #40814 )
2026-06-15 10:10:40 -07:00
Joe Li
b656b1d477
fix(reports): escape LIKE wildcards in text filter and preserve typed screenshot width ( #40980 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 09:59:40 -07:00
Amin Ghadersohi
820e3d18d3
fix(mcp): make search_tools query optional to fix null content on tool discovery ( #40906 )
2026-06-15 11:32:40 -04:00
Evan Rusackas
9d2f625e55
feat(encrypt): selectable encryption engine + AES-GCM re-encryption migrator ( #40654 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-15 08:10:08 -07:00
Kim Jeong Ju
9ec9c8658b
fix(query_context_processor): apply CSV encoding to follow the encoding settings of 'CSV_EXPORT' ( #34806 )
...
Co-authored-by: Jeong Ju, Kim <haje01@webzen.com >
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 08:55:25 -07:00
Evan Rusackas
9f81565625
feat(uploads): add optional max file size for data uploads ( #40860 )
2026-06-14 19:46:48 +07:00
Nitish Agarwal
c934498696
fix(dashboard): do not add importer as owner when overwriting existing dashboard ( #38615 )
...
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 05:10:03 -07:00
Evan Rusackas
d120b1c250
feat(security): enforce password complexity policy (min length + common-password blocklist) ( #40670 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-13 16:31:23 -07:00
Yuvraj Singh Chauhan
3c6239363b
fix(db): preserve percent encoding in database passwords ( #36783 )
...
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-13 13:52:00 -07:00
Shaitan
5fb13f102a
fix(network): validate target hostname in outbound requests ( #39301 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
Co-authored-by: Arpit Jain <3242828+arpitjain099@users.noreply.github.com >
Co-authored-by: Mafi <matt.fitzgerald@gmail.com >
Co-authored-by: Matt Fitzgerald <matt.fitzgerald@preset.io >
Co-authored-by: Richard Fogaca Nienkotter <63572350+richardfogaca@users.noreply.github.com >
Co-authored-by: Superset Dev <dev@superset.apache.org >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: sadpandajoe <jcli38@gmail.com >
Co-authored-by: JUST.in DO IT <justin.park@airbnb.com >
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com >
Co-authored-by: sha174n <pedro.sousa@preset.io >
2026-06-13 20:26:58 +01:00
Shaitan
aa3d2b9e81
fix(dashboard): validate native-filter data requests against filter targets ( #40979 )
...
Co-authored-by: sha174n <pedro.sousa@preset.io >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 19:02:28 +01:00
Shaitan
e5986b32ff
fix(charts): evaluate access before rendering query filters; isolate macro env ( #40982 )
...
Co-authored-by: sha174n <pedro.sousa@preset.io >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 19:01:54 +01:00
Shaitan
a41869ec7d
fix(dashboard): build example-export sample data through the dataset query path ( #40976 )
...
Co-authored-by: sha174n <pedro.sousa@preset.io >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 19:01:35 +01:00
Cole Murray
6487cf03c5
fix(security): Add input validation to cancel_query_id to prevent injection ( #36722 )
...
Signed-off-by: ColeMurray <cole@waclaude.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-13 10:56:14 -07:00
Evan Rusackas
b05fe4857e
fix(chart): require chart access for query_context-only updates ( #40648 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-13 04:16:29 -07:00
Amin Ghadersohi
2f008afca9
fix(mcp): add dataset_id to update_chart to support rebinding chart datasource ( #40853 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 10:42:53 -04:00
Evan Rusackas
814b72c6f9
feat(security): force password change on first use (opt-in) ( #40669 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-11 22:23:10 -07:00
Evan Rusackas
663b47aa75
feat: support guest-token revocation per embedded dashboard ( #40676 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-11 19:37:22 -07:00
Evan Rusackas
9938ee273f
feat: terminate active sessions when an account is disabled ( #40695 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-11 19:37:13 -07:00
Abdul Rehman
42d0c4436e
fix(permalink): accept null entries in activeTabs for v5-imported dashboards ( #40969 )
2026-06-11 22:03:27 +07:00
Evan Rusackas
6c5ad1e912
fix(sqllab): apply SQL controls (RLS/DML/disallowed) to cost estimation ( #40662 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-11 05:33:42 -07:00
Richard Fogaca Nienkotter
046b1b61b3
fix(maps): preserve OSM styles and configurable renderer defaults ( #40804 )
2026-06-10 22:26:00 -03:00
Dylan Cavalcante
f79a88c685
test(core): add unit tests for split function ( #40819 )
...
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com >
Co-authored-by: Evan <evan@preset.io >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-10 16:12:35 -07:00
Evan Rusackas
5a0e3f15ca
feat(embedded): add guest token revocation support ( #40671 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-10 09:17:30 -07:00
Evan Rusackas
08b8bdecbd
fix(charts): tighten chart schema input validation (query_context JSON, prophet/rolling bounds) ( #40634 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-10 08:17:12 -07:00
Evan Rusackas
0a1e51f542
fix(schemas): tighten guest dataset fields, external_url protocols, ssh creds, prophet bounds ( #40640 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 18:30:30 -07:00
Elizabeth Thompson
c0e78f39d7
fix: replace deprecated appbuilder.app with current_app ( #40876 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-09 15:01:43 -07:00
dependabot[bot]
543ad04ca0
chore(deps): bump pyarrow from 20.0.0 to 24.0.0 ( #39756 )
...
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 >
2026-06-09 12:51:33 -07:00
Evan Rusackas
004101a752
fix(rls): apply standard datasource access checks in RLS rule commands ( #40650 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 11:24:12 -07:00
Evan Rusackas
568f34d6d8
fix(mcp): enforce audience, algorithm, issuer binding, and token scopes (strict mode) ( #40653 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 11:08:20 -07:00
Evan Rusackas
065578e48a
fix(commands,api): enforce command validation, sanitize export filename/token, set cache TTLs ( #40655 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 10:29:46 -07:00
EMMANUELA OPURUM
6311e2c315
fix: use pd.to_numeric in df_metrics_to_num to handle string-encoded numerics from ClickHouse ( #40190 )
...
Co-authored-by: Emmanuela Opurum <youremail@example.com >
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com >
2026-06-09 10:28:34 -07:00
Evan Rusackas
0133ebc9f2
feat(mcp): log successful JWT authentication events ( #40864 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 09:34:52 -07:00
Evan Rusackas
b64dd4af4a
fix(mcp): handle JWKS fetch network errors during token verification ( #40869 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 09:34:33 -07:00
Evan Rusackas
7b1e1e5668
fix(charts): route CSV result format through the escaping CSV writer ( #40859 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 09:33:46 -07:00