Amin Ghadersohi
f5ba09f7af
feat(mcp): add runtime chart plugin enable/disable via _PluginFilterConfig
...
Introduces a dynamic filter layer in the chart type registry so operators can
disable individual plugins (e.g. `handlebars`) without a code deploy:
- `MCP_DISABLED_CHART_PLUGINS: frozenset[str]` — static deny-list in mcp_config.py
- `MCP_CHART_PLUGIN_ENABLED_FUNC: Callable[[str], bool] | None` — dynamic hook
for Harness/Split/per-user targeting; takes precedence over the deny-list
- Both keys are propagated through `get_mcp_config()` defaults
registry.py changes:
- `_PluginFilterConfig` frozen dataclass replaces two bare globals so
configure() replaces them atomically (no torn reads under concurrency)
- `configure(disabled, enabled_func)` — called at app init; accepts any
iterable for `disabled`; validates `enabled_func` is callable
- `_is_plugin_enabled()` — reads config once, fails closed on callable exception
- `get()` / `all_types()` / `is_enabled()` apply the filter at lookup time;
`is_registered()` and `display_name_for_viz_type()` intentionally bypass it
so callers can distinguish "unknown" vs "disabled" and existing charts still
resolve display names for disabled viz types
schema_validator.py: two-step pre-check — `is_registered()` for unknown types,
`is_enabled()` for disabled ones, with distinct `DISABLED_CHART_TYPE` error code.
Wiring:
- `SupersetAppInitializer.configure_mcp_chart_registry()` called after
`configure_feature_flags()` in `init_app()`
- `flask_singleton.py` re-calls `registry.configure()` after the MCP config
overlay so MCP-specific overrides in `superset_config.py` take effect in
standalone MCP mode
Tests: 28 cases in test_registry_filters.py covering deny-list, callable hook,
fail-closed on exception, all_types() filtering, display_name bypass, atomic
reconfigure, and configure() with list/tuple/frozenset inputs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 00:59:54 +00:00
Beto Dealmeida
cb53745d43
feat: semantic layer extension ( #37815 )
2026-05-05 12:07:46 -04:00
Beto Dealmeida
03ad1789f0
feat(alerts/reports): external URL warning ( #35021 )
2026-03-06 11:57:03 -05:00
Ville Brofeldt
0d5827ac42
chore(extensions): unified contribution api and automatic prefixing ( #38412 )
2026-03-04 14:51:22 -08:00
Ville Brofeldt
c35bf344a9
chore(extensions): clean up backend entrypoints and file globs ( #38360 )
2026-03-03 09:45:35 -08:00
Ville Brofeldt
59dd2fa385
feat: add global task framework ( #36368 )
2026-02-09 10:45:56 -08:00
Beto Dealmeida
f2b6c395cd
feat: Add PWA file handler for CSV/XLS/Parquet uploads ( #36191 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 11:24:01 -05:00
Ville Brofeldt
281c0c9672
chore: add paths to backend extension stack traces ( #37300 )
2026-01-21 06:19:28 -08:00
Michael S. Molina
5920cb57ea
refactor(extensions): add Pydantic validation for extension configuration ( #36767 )
2025-12-19 13:33:10 -03:00
Ville Brofeldt
a4860075d2
feat: add mcp abstractions to core ( #36151 )
2025-11-25 08:23:59 -10:00
Ville Brofeldt
c2baba50f9
chore: abstract models and daos into superset-core ( #35259 )
2025-11-14 17:00:44 -08:00
Maxime Beauchemin
d0cc6f115b
feat: add optional garbage collection after requests ( #35061 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-09-16 09:23:39 -07:00
Daniel Vaz Gaspar
a9fb853e3e
fix: Bump FAB to 5.X ( #33055 )
...
Co-authored-by: Joe Li <joe@preset.io >
2025-09-12 09:21:37 +01:00
Michael S. Molina
a8be5a5a0c
chore: Extensions architecture POC ( #31934 )
...
Co-authored-by: Ville Brofeldt <ville.brofeldt@apple.com >
Co-authored-by: Ville Brofeldt <ville@Villes-MacBook-Pro-2024.local >
Co-authored-by: Ville Brofeldt <v_brofeldt@apple.com >
2025-08-22 21:25:52 -03:00
Maxime Beauchemin
c568d463b9
fix: Check migration status before initializing database-dependent features ( #34679 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-21 11:25:47 -07:00
Elizabeth Thompson
99539c786e
fix(initialization): prevent startup failures when database tables don't exist ( #34584 )
2025-08-11 10:49:52 -07:00
Maxime Beauchemin
cb27d5fe8d
chore: proper current_app.config proxy usage ( #34345 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-31 19:27:42 -07:00
Maxime Beauchemin
c480fa7fcf
fix(migrations): prevent theme seeding before themes table exists ( #34433 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-31 11:35:34 -07:00
Maxime Beauchemin
c9e06714f8
fix: prevent theme initialization errors during fresh installs ( #34339 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-29 09:32:53 -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
Maxime Beauchemin
bc0a10fc73
chore: clean up more flask/jinja html views ( #34093 )
2025-07-09 10:16:57 -07:00
PolinaFam
c25e734407
fix(translations): Fix language switching behavior when default language is not English ( #34049 )
...
Co-authored-by: Polina Fam <pfam@ptsecurity.com >
2025-07-07 11:57:17 -07:00
Alexandru Soare
c74fae9663
feat(flag): Added feature_flag for superset security_views ( #34023 )
2025-07-02 14:31:09 +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
Enzo Martellucci
20519158d2
feat(UserInfo): Migrate User Info FAB to React ( #33620 )
2025-06-03 19:24:22 +02:00
Enzo Martellucci
fa0c5891bf
feat(List Groups): Migrate List Groups FAB to React ( #33301 )
2025-06-03 16:18:15 +02:00
Enzo Martellucci
deef923825
feat(Action Logs): Migrate Action Log FAB to React ( #33298 )
2025-05-28 14:08:00 +02:00
Jacob Amrany
00f1fdb3c4
fix: os.makedirs race condition ( #33161 )
2025-04-17 15:09:44 -03:00
Jillian
93fa39a14f
fix(lang): patch FAB's LocaleView to redirect to previous page ( #31692 )
2025-04-15 09:46:06 -07:00
Enzo Martellucci
013379eb86
feat(List Users): Migrate List Users FAB to React ( #32882 )
2025-04-15 17:04:28 +03:00
Kamil Gabryjelski
3c1fc0b722
fix: Broken menu links to datasets and sql lab ( #33114 )
2025-04-13 21:31:21 +02:00
Martyn Gigg
09b92e7d08
feat: Allow superset to be deployed under a prefixed URL ( #30134 )
...
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com >
2025-04-09 13:43:44 -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
Michael S. Molina
687f762457
refactor: Removes the legacy dataset editor ( #31976 )
2025-01-24 14:52:22 -03:00
Michael S. Molina
7cf7267085
refactor: Removes legacy dashboard endpoints ( #31943 )
2025-01-22 15:39:04 -03:00
Michael S. Molina
f5fff5eaad
refactor: Removes legacy CSS template endpoint ( #31942 )
2025-01-22 15:38:44 -03:00
JUST.in DO IT
2874096e27
refactor(sqllab): migrate share queries via kv by permalink ( #29163 )
2025-01-17 16:16:02 -08:00
Beto Dealmeida
4ca5846c7f
feat: old Firebolt dialect ( #31849 )
2025-01-15 09:02:37 -05:00
Maxime Beauchemin
e51b95ffa8
chore: enforce more ruff rules ( #31447 )
...
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2024-12-18 17:41:34 -08:00
Michael S. Molina
fc857d987b
fix: Unable to parse escaped tables ( #30560 )
2024-10-09 13:25:44 -03:00
Maxime Beauchemin
6baeb659a7
fix: set default mysql isolation level to 'READ COMMITTED' ( #30174 )
...
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com >
2024-09-09 17:00:54 -07:00
Evan Rusackas
bf94370d38
chore(init): adding link to secret key instructions ( #29990 )
2024-08-22 11:49:37 -06:00
Maxime Beauchemin
e749efcb97
fix: refactor view error handling into a separate module ( #29330 )
2024-07-09 10:16:40 -07:00
John Bodley
8fb8199a55
chore(dao/command): Add transaction decorator to try to enforce "unit of work" ( #24969 )
2024-06-28 12:33:56 -07:00
Maxime Beauchemin
796726376a
chore: make flask-talisman work with test config ( #29277 )
2024-06-18 14:46:40 -07:00
Daniel Vaz Gaspar
c12deed12e
chore: deprecate multiple old APIs ( #28492 )
2024-05-14 22:00:45 +01:00
Daniel Vaz Gaspar
9a339f08a7
feat: new Columnar upload form and API ( #28192 )
2024-05-06 15:51:42 +01:00
Daniel Vaz Gaspar
e465876ed4
feat: new Excel upload form and API ( #28105 )
2024-04-19 14:19:42 +01:00
Maxime Beauchemin
e9c0ca545f
feat: Slack Avatar integration ( #27849 )
2024-04-16 08:40:27 -07:00