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
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
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
Maxime Beauchemin
c42be77c25
feat(i18n): load language pack asynchronously ( #34119 )
2025-07-14 10:59:29 -07: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
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
Vitor Avila
86e7139245
fix: Dataset currency ( #33682 )
2025-06-09 22:47:14 -03:00
Beto Dealmeida
a26e1d822a
chore: remove sqlparse ( #33564 )
2025-06-04 19:31:41 -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
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
Enzo Martellucci
deef923825
feat(Action Logs): Migrate Action Log FAB to React ( #33298 )
2025-05-28 14:08:00 +02:00
Beto Dealmeida
8de58b9848
feat: use sqlglot to set limit ( #33473 )
2025-05-27 15:20:02 -04:00
Luiz Otavio
57183da315
fix: Adjust viz migrations to also migrate the queries object ( #33285 )
...
Co-authored-by: Michael S. Molina <michael.s.molina@gmail.com >
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com >
2025-05-26 15:00:07 -03:00
Vitor Avila
72cd9dffa3
fix: Persist catalog change during dataset update + validation fixes ( #33384 )
2025-05-08 15:22:25 -03:00
Beto Dealmeida
339ba96600
fix: improve function detection ( #33306 )
2025-05-01 13:45:03 -04:00
Beto Dealmeida
141d0252f2
fix: mask password on DB import ( #33267 )
2025-04-29 10:27:03 -04:00
Jillian
93fa39a14f
fix(lang): patch FAB's LocaleView to redirect to previous page ( #31692 )
2025-04-15 09:46:06 -07:00
Vitor Avila
a5a91d5e48
fix(OAuth2): Update connection should not fail if connection is missing OAuth2 token ( #33100 )
2025-04-14 11:19:55 -03:00
Beto Dealmeida
7ab8534ef6
feat: dataset folders (backend) ( #32520 )
...
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com >
2025-04-11 11:38:08 -07:00
Martyn Gigg
4f97b739b1
fix: Broken Python tests on master after merging prefix branch ( #33095 )
2025-04-11 08:52:35 -07:00
Enzo Martellucci
4f0020d0df
feat(List Roles): Migrate FAB view to React ( #32432 )
...
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com >
2025-04-02 14:06:17 +03:00
Maxime Beauchemin
c83eda9551
feat: add latest partition support for BigQuery ( #30760 )
2025-04-01 17:13:09 -07:00
Kamil Gabryjelski
b92909d621
feat: Enable passing a permalink to cache_dashboard_screenshot endpoint ( #32900 )
2025-03-31 10:40:36 +02:00
bmaquet
174750c9dd
refactor(jinja macro): Update current_user_roles() macro to fetch roles from existing get_user_roles() method ( #32888 )
2025-03-28 20:50:53 -07:00
Vitor Avila
ab22bb1878
fix(Jinja): Emit time grain to table charts even if they don't have a temporal column ( #32871 )
2025-03-28 13:48:49 -03:00
bmaquet
6b96b37c38
feat: Add current_user_roles() Jinja macro ( #32770 )
2025-03-24 18:39:07 -03:00
Vladislav Korenkov
5866f3ec83
fix(import): Missing catalog field in saved query schema ( #32775 )
...
Co-authored-by: Vladislav Koren'kov <korenkov.vv@dns-shop.ru >
2025-03-20 16:33:51 -04:00
sowo
29b62f7c0a
fix(contextmenu): uncaught TypeError ( #28203 )
2025-03-18 20:42:38 -06:00
Daniel Höxtermann
9e3052968b
fix: ensure datasource permission in explore ( #32679 )
2025-03-18 17:15:10 -04:00
Beto Dealmeida
99e69c32ee
fix: coerce datetime conversion errors ( #32683 )
2025-03-18 13:09:23 -04:00
Vitor Avila
e35145c816
feat(file uploads): List only allowed schemas in the file uploads dialog ( #32702 )
2025-03-17 23:36:16 -03:00
JUST.in DO IT
449f51aed5
fix(log): Update recent_activity by event name ( #32681 )
2025-03-17 09:18:47 -07:00
Vitor Avila
0c6d868483
fix(import): Import a DB connection with expanded rows enabled ( #32657 )
2025-03-14 12:02:39 -03:00
Elizabeth Thompson
33aa9030bf
fix: add DateOffset to json serializer ( #32532 )
2025-03-07 16:15:06 -08:00
Antonio Rivero
20e5df501e
fix(migrations): Handle comparator None in old time comparison migration ( #32538 )
2025-03-07 16:30:24 +01:00
Vitor Avila
d2e0e2b79c
fix(Slack): Fix Slack recipients migration to V2 ( #32336 )
2025-03-06 08:52:15 -03:00