Evan
4e8d0e0abe
test: add type hints to new orderby jinja test
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-07 19:01:01 -07:00
Evan
5da4fe7996
fix(sqla): render Jinja templates in calculated columns used via orderby adhoc metrics
...
A calculated column's Jinja expression was rendered correctly in SELECT,
WHERE, and GROUP BY, but not when the column was referenced by a SIMPLE
adhoc metric (e.g. MAX(calc_col)) used in ORDER BY, since
`adhoc_metric_to_sqla` wasn't passed the template processor at that call
site in `get_sqla_query`. Add a failing-first integration test that pins
the bug, then fix it by threading `template_processor` through.
Fixes #29378
2026-07-07 17:21:31 -07:00
Mike Bridge
04f8b700d7
feat(datasets): soft-delete and restore ( #40130 )
...
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 08:57:08 -07:00
amaannawab923
9b508ebe0d
fix(ag-grid): honor dataset hour offset in time range filters ( #41391 )
...
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com >
Co-authored-by: Enzo Martellucci <enzomartellucci@gmail.com >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-07 17:12:01 +02:00
Evan Rusackas
2aa43f6f0f
fix(sql): stop sanitize_clause from rewriting user SQL semantics ( #36113 ) ( #41125 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-07-06 18:03:26 -07:00
yousoph
c0b0a2fdaf
feat(tags): add favorites filter to Tags list view ( #41461 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-06 12:55:01 -07:00
Mike Bridge
a7a051777c
feat(charts): soft-delete and restore ( #40129 )
...
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-07-06 10:07:04 -07:00
Joe Li
1e50316bcc
chore(reports): deprecate Slack v1 and harden Slack v2 tests ( #39914 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-07-04 16:41:39 -07:00
Evan Rusackas
47bc3e2dc1
fix: correct Security menu case for MySQL deployments ( #40527 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: Joe Li <joe@preset.io >
2026-07-02 17:23:31 -07:00
Mehmet Salih Yavuz
a48ca9ce72
fix(sqllab): reject blank saved query and dataset names ( #41624 )
...
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com >
2026-07-02 14:03:14 +03:00
Amin Ghadersohi
c3f5e997a1
feat(mcp): chart type plugin registry for extensible generate_chart ( #39922 )
2026-07-02 00:31:19 -04:00
Mike Bridge
af0a55a4f3
feat(dashboards): soft-delete and restore ( #40128 )
...
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-07-01 17:20:44 -07:00
Mike Bridge
393adc4535
refactor(db): composite PK on M2M association tables ( #39859 )
...
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-07-01 13:07:15 -07:00
Joe Li
bed1034c2f
refactor(frontend): centralize subdirectory URL prefixing behind nav helpers ( #39925 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Co-authored-by: Evan <evan@preset.io >
2026-07-01 11:20:13 -07:00
Evan Rusackas
4bf203ee70
chore(config): default SMTP_SSL_SERVER_AUTH to True ( #40647 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-30 13:50:38 -07:00
Evan Rusackas
3b82d2a170
fix(security): clean up stale can_import permission on ImportExportRestApi ( #41309 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-29 17:38:18 -07:00
Ville Brofeldt
ece8d8ffca
fix(datasource): allow Gamma to load combined datasource list ( #41553 )
2026-06-29 15:08:29 -07:00
Evan Rusackas
adc03ce525
refactor: make import/expression layer SQLAlchemy 2.0-compatible ( #41179 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-29 11:38:59 -07:00
Shaitan
f95ebed8ba
fix: apply object access checks in tag bulk_create and update commands ( #41457 )
...
Signed-off-by: sha174n <shaitan@zx48.net >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 10:07:26 -07:00
David
90fe1f5b7c
fix(auth): redirect to login on failure to access dashboard permalink ( #40769 )
2026-06-28 17:49:25 -07:00
Abdul Rehman
ebb32de625
fix(cachekey): use data_cache for chart query result invalidation ( #40493 )
2026-06-26 18:01:14 -07:00
Evan Rusackas
6f12dbf0e1
feat(api): log rejected related/distinct field access as security events ( #41306 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-26 15:45:36 -07:00
Evan Rusackas
bfa6cfac85
fix(database): mask SSH tunnel credentials explicitly on read paths ( #41293 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-26 12:07:02 -07:00
Evan Rusackas
0efcbcdd81
test(security): regression coverage for #36130 FAB permission view templates ( #41130 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-26 12:06:27 -07:00
SkinnyPigeon
0d43c2c12c
feat(reports): trigger alerts ( #41336 )
2026-06-25 22:01:39 -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
Shlummie
a57b5f6078
fix(deckgl): show dashboard filter badges for multi-layer charts ( #40003 )
...
Co-authored-by: Evan Rusackas <evan@rusackas.com >
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-24 02:14:25 -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
Abdul Rehman
c2fb94cedf
perf(filters): cache column-values endpoint to skip DB on repeat requests ( #40839 )
2026-06-23 23:41:26 -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
peng weikang
18fea37e84
fix(SavedQueries): allow other admin users see "saved queries" ( #20604 ) ( #21769 )
2026-06-23 12:14:48 -07:00
Ville Brofeldt
b061b5d317
chore: fix lint on untouched files ( #41333 )
2026-06-23 11:29:19 -07:00
Evan Rusackas
1d3daf2ac8
fix(security): return generic error and log internally in RoleRestAPI.get_list ( #41295 )
...
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-23 11:24:26 -07:00
Hans Yu
c49391ab08
refactor: update Connection.execute() to use queries with text() ( #40277 )
2026-06-22 15:36:15 -07:00
Abdul Rehman
cb1694575c
fix(dataset-api): disambiguate get_or_create by schema ( #40494 )
2026-06-22 09:45:02 -07:00
Grégoire Gailly
cc9c20fcb6
feat(dashboard): Edit dashboard description from ui (and api) and show tooltip on dashboard list view ( #36071 )
2026-06-19 08:49:14 -07:00
Amin Ghadersohi
eebe1a1a5b
fix(dashboards): remove thumbnail_url from list API to reduce cache cost ( #38567 )
2026-06-17 09:35:21 -06:00
Joao Amaral
750518cf6f
fix(celery): check app context before session removal in teardown ( #37574 )
...
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com >
Co-authored-by: Daniel Vaz Gaspar <danielvazgaspar@gmail.com >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2026-06-17 10:44:27 -03:00
Xie Yanbo
a27ec1923e
chore(export): Added ability to export chart YAML files with Unicode characters, fix #20331 ( #28008 )
...
Co-authored-by: Evan Rusackas <evan@preset.io >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 07:55:19 +01: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
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
Cezar
df0668eda5
feat(api): return uuid in POST response for dataset, chart, and dashboard ( #37806 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-13 16:53:08 -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
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
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
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
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
Evan Rusackas
00e3682aaf
fix(dashboard): URL-encode native_filters in permalink redirect ( #40660 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-09 11:37:08 -07:00