Amin Ghadersohi
39121791e8
update: wip
2025-07-30 14:20:38 -04:00
Amin Ghadersohi
9d40fe913f
update: wip
2025-07-30 14:20:37 -04:00
Amin Ghadersohi
748ae49c8c
update: wip
2025-07-30 14:20:37 -04:00
Amin Ghadersohi
a9d543b6f4
update: unify FastMCP server, modularize tools, and document new DAO-based architecture
...
- Replace dual Flask/FastAPI setup with a single, unified FastMCP server (`server.py`)
- Introduce `MCPDAOWrapper` for secure, context-aware DAO access (`dao_wrapper.py`)
- Refactor all MCP tools to be modular and domain-organized (`tools/dashboard/`, `tools/chart/`, `tools/dataset/`, `tools/system/`)
- Strongly type all tool contracts with Pydantic v2 models, including full field documentation for LLM/OpenAPI compatibility
- Refactor and extend `BaseDAO` for robust, generic CRUD/list operations
- Add and update documentation:
- Architecture and flow diagrams (`README_ARCHITECTURE.md`)
- Tool schema reference and usage instructions (`README.md`, `README_SCHEMAS.md`)
- Phase 1 status and roadmap (`README_PHASE1_STATUS.md`)
- Implement and test all core list/info tools for dashboards, datasets, and charts, with full search and filter support
- Add chart creation tool (`create_chart_simple`)
- Provide extension points for Preset-specific auth, RBAC, and logging (stubbed in Phase 1)
- Prepare for LLM/agent workflows and future command-based mutations (create/update/delete)
- Expand and update unit/integration test coverage for all tools
2025-07-30 14:20:37 -04:00
Amin Ghadersohi
0f97002520
update: Refactor BaseDAO: enhance column operator logic and expand test coverage
...
- Improved the BaseDAO class to robustly handle column operator logic, ensuring all supported operators (eq, ne, sw, ew, in, nin, gt, gte, lt, lte, like, ilike, is_null, is_not_null) are consistently applied via ColumnOperatorEnum.
- Refactored the apply_column_operators and list methods for clarity and reliability, including better handling of columns, relationships, and search.
- Removed 1 index base page handing from list
2025-07-30 14:20:37 -04:00
Amin Ghadersohi
2312250127
update: add idea of ColumnOperator
2025-07-30 14:20:36 -04:00
Amin Ghadersohi
cd52193869
update: add helper for applying base filter
2025-07-30 14:20:36 -04:00
Amin Ghadersohi
9ffe680aaa
feat(dao): add robust generic list and count methods to BaseDAO with full test coverage
...
- Introduced generic `list` and `count` methods to BaseDAO for consistent querying and counting across all DAOs.
- Both methods support filtering (including IN queries), ordering, pagination, search across columns, custom FAB-style filters, and always-on base filters.
- Added comprehensive unit tests for `list` and `count` in `tests/unit_tests/dao/base_test.py`, covering:
- Filtering (including boolean, None, and IN queries)
- Ordering (asc/desc, multiple columns)
- Pagination (including out-of-range)
- Search across columns
- Custom filter logic
- Always-on base filter logic
- Edge cases and skip_base_filter
- Moved common test fixtures to `conftest.py` for reuse.
2025-07-30 14:20:36 -04:00
Maxime Beauchemin
bf967d6ba4
fix(charts): Fix unquoted 'Others' literal in series limit GROUP BY clause ( #34390 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-29 17:36:10 -07:00
Beto Dealmeida
32626ab707
fix: use catalog name on generated queries ( #34360 )
2025-07-29 12:30:46 -04:00
Beto Dealmeida
122bb68e5a
fix: subquery alias in RLS ( #34374 )
2025-07-28 22:58:15 -04:00
Beto Dealmeida
914ce9aa4f
feat: read column metadata ( #34359 )
2025-07-28 22:57:57 -04:00
Maxime Beauchemin
1be2287b3a
feat(timeseries): enhance 'Series Limit' to support grouping the long tail ( #34308 )
2025-07-25 16:26:32 -07:00
Maxime Beauchemin
e741a3167f
feat: add a theme CRUD page to manage themes ( #34182 )
...
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me >
2025-07-25 13:26:41 -07:00
Beto Dealmeida
b794b192d1
fix: return 422 on invalid SQL ( #34303 )
2025-07-24 16:40:56 -04:00
Maxime Beauchemin
3f8472ca7b
chore: move some rules from ruff -> pylint ( #34292 )
2025-07-24 09:40:49 -07:00
LisaHusband
7a1c056374
fix(charting): correctly categorize numeric columns with NULL values ( #34213 )
2025-07-24 15:46:58 +03:00
Michael S. Molina
1e5a4e9bdc
fix: Saved queries list break if one query can't be parsed ( #34289 )
2025-07-24 08:30:04 -03:00
Ahmed Habeeb
43775e9373
fix(sqllab_export): manually encode CSV output to support utf-8-sig ( #34235 )
2025-07-23 18:44:56 -07:00
Maxime Beauchemin
2db8f809ba
fix: proper handling of boolean filters with snowflake ( #34199 )
...
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net >
2025-07-18 12:13:52 -07:00
Maxime Beauchemin
1958df6b83
fix: dataset endpoint /rowlevelsecurity/related/tables doesn't apply filters as expected ( #34192 )
2025-07-17 15:51:03 -07:00
Mehmet Salih Yavuz
16f4516903
chore(Oracle): Update oracle column length to 128 ( #34179 )
2025-07-16 14:58:19 +03:00
Gabriel Torres Ruiz
42d9a78777
feat(theming): Introduce bootstrap-driven Superset theme configurations ( #34144 )
2025-07-15 09:43:08 -07:00
Maxime Beauchemin
c42be77c25
feat(i18n): load language pack asynchronously ( #34119 )
2025-07-14 10:59:29 -07:00
Beto Dealmeida
68b84acd93
feat: improve Doris catalog support ( #34140 )
2025-07-14 12:01:08 -04:00
Richard Fogaca Nienkotter
85034b9748
feat(deck-gl): Enable individual deck.gl layer selection in FilterScope tree ( #33769 )
...
Co-authored-by: richardfn <richard.fogaca@appsilon.com >
Co-authored-by: amaannawab923 <amaannawab923@gmail.com >
2025-07-08 18:37:47 +03:00
Vitor Avila
733f112142
fix: Support metric currency as dict during import ( #34080 )
2025-07-07 14:00:56 -03:00
Đỗ Trọng Hải
1a54b761c1
feat(db): remove Rockset DB support ( #33929 )
2025-06-27 23:12:54 +07:00
Fredrik Hyyrynen
eec563b0b4
fix: add suffix to Drill labels to avoid collision ( #32857 )
...
Co-authored-by: Fredrik Hyyrynen <fredrik.hyyrynen@ngm.se >
Co-authored-by: Evan Rusackas <evan@rusackas.com >
Co-authored-by: pre-commit <pre-commit@users.noreply.github.com >
2025-06-26 11:28:05 -07:00
Vitor Avila
a56d7252c2
fix: Consider default catalog when getting tables and view lists ( #33916 )
2025-06-26 13:55:10 -03:00
Mehmet Salih Yavuz
a13a590796
feat(User Registrations): Migrate user registrations fab view ( #33631 )
2025-06-25 14:26:21 +02:00
Maxime Beauchemin
dd129fa403
feat(theming): land Ant Design v5 overhaul — dynamic themes, real dark mode + massive styling refactor ( #31590 )
...
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com >
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com >
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me >
Co-authored-by: Geido <60598000+geido@users.noreply.github.com >
Co-authored-by: Alexandru Soare <37236580+alexandrusoare@users.noreply.github.com >
Co-authored-by: Damian Pendrak <dpendrak@gmail.com >
Co-authored-by: Pius Iniobong <67148161+payose@users.noreply.github.com >
Co-authored-by: Enzo Martellucci <enzomartellucci@gmail.com >
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com >
2025-06-20 13:38:58 -07:00
Beto Dealmeida
404f7c1043
feat: initial Dremio sqlglot dialect ( #33847 )
2025-06-20 12:05:45 -07:00
Beto Dealmeida
21d8d57380
fix: select star ( #33763 )
2025-06-13 14:59:52 -04:00
Vitor Avila
86e7139245
fix: Dataset currency ( #33682 )
2025-06-09 22:47:14 -03:00
Le Xich Long
fc7ba060c1
feat(clickhouse): allow dynamic schema ( #32610 )
2025-06-09 16:18:05 -06:00
Kasper Mol
cc3460832f
fix(template_processing): get_filters now works for IS_NULL and IS_NOT_NULL operators ( #33296 )
2025-06-05 00:46:33 -03:00
Beto Dealmeida
edc60914f6
chore: 100% test coverage for SQL parsing ( #33568 )
2025-06-04 22:18:09 -04:00
Vitor Avila
c9518485ba
fix: Do not convert dataset changed_on to UTC ( #33693 )
2025-06-04 22:24:18 -03:00
Beto Dealmeida
a26e1d822a
chore: remove sqlparse ( #33564 )
2025-06-04 19:31:41 -04:00
arafoperata
ff34e3c81e
fix: optimize catalog permission sync when importing dashboards ( #33679 )
2025-06-04 13:21:17 -04:00
Enzo Martellucci
20519158d2
feat(UserInfo): Migrate User Info FAB to React ( #33620 )
2025-06-03 19:24:22 +02:00
Vitor Avila
cacf1e06d6
fix: Update dataset's last modified date from column/metric update ( #33626 )
2025-06-03 12:20:38 -03:00
Adalbert Makarovych
ade85daee2
feat(database): add SingleStore engine specification ( #32887 )
...
Co-authored-by: Adalbert Makarovych <amakarovych0ua@singlestore.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2025-06-02 11:50:12 -06:00
Pat Buxton
2d26af25c1
feat: Python 3.12 support ( #33434 )
2025-06-02 10:00:37 -07:00
Beto Dealmeida
401ce56fa1
feat: use sqlglot to validate adhoc subquery ( #33560 )
2025-05-30 18:09:19 -04:00
Beto Dealmeida
cf315388f2
feat(sqllab): use sqlglot instead of sqlparse ( #33542 )
2025-05-30 17:08:19 -04:00
Beto Dealmeida
f219dc1794
chore: make DB syntax errors 400 ( #33619 )
2025-05-30 13:04:04 -04:00
Vitor Avila
ed20d2a917
fix(Security): Apply permissions to the AllEntities list/get_objects API endpoint ( #33577 )
2025-05-30 13:39:18 -03:00
Vitor Avila
fdea4e21b0
feat: current_user_rls_rules Jinja macro ( #33614 )
2025-05-29 11:58:40 -03:00