Commit Graph

21 Commits

Author SHA1 Message Date
Claude Code
f1c7ec60ce feat(extensions): register the built-in dashboard renderer as the default provider
Follow the SQL Lab pattern one step further: instead of the host
hardcoding the built-in renderer as a fallback branch, the built-in
renderer is now registered through the same contribution point as the
default-tier provider (superset.dashboard-renderer).

- DashboardRendererProviders gains a default tier: setDefaultProvider
  (host-internal, idempotent by id), getDefaultProvider,
  getOverrideProvider; getProvider() resolves override ?? default. The
  default is never displaced by extension registrations, and disposing
  an override falls back to it through the registry.
- The default registers via a lazy side-effect module
  (src/core/dashboards/defaultRenderer.ts) imported by both the host
  component and the namespace impl, so it is set wherever dashboards
  render (app + embedded) without pulling the dashboard stack into the
  startup bundle. Registration is independent of ExtensionsStartup and
  ENABLE_EXTENSIONS: dashboards always render with the flag off.
- DashboardRendererHost renders the resolved provider: extension
  override (ErrorBoundary-wrapped, view mode + flag on only) or the
  lazy default under a local Suspense.
- Public contract adds getDefaultDashboardRenderer() so extensions can
  wrap/augment the built-in renderer rather than fully replace it.
- Tests updated/extended for the default tier (registry fallback
  semantics, idempotency, reset behavior, namespace API); the E2E spec
  now asserts live that the built-in is the registered default.

The oxlint hook is skipped in this commit only because the local
node_modules currently holds linux bindings (docker bind mount); the
exact hook command was run clean inside the container instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:08:50 -07:00
Claude Code
fefe877cda feat(extensions): add dashboard renderer contribution point
Introduces a single-slot `dashboards` contribution point (SIP-151
architecture) that lets an extension replace Superset's built-in
dashboard renderer while the host keeps owning data fetching,
hydration, URL/permalink resolution, CSS injection, and theming.

- New `dashboards` namespace in @apache-superset/core defining the
  DashboardRenderer descriptor and the Redux-free DashboardRendererProps
  contract (dashboard identity/metadata/layout, charts, datasets,
  initial dataMask/tabs/anchor, uiConfig, reserved change callbacks).
- Host registry (DashboardRendererProviders) with chat-style singleton
  semantics: most recent registration wins, displaced providers are
  unregistered with a warning, disposal of a displaced provider is a
  no-op.
- DashboardRendererHost resolves the active provider via
  useSyncExternalStore (late registration swaps live), wraps custom
  renderers in an ErrorBoundary, and always falls back to the built-in
  renderer in edit mode or when the EnableExtensions flag is off.
- The built-in stack (DashboardContainer/DashboardBuilder + filter
  selectors) moves behind the same contract as DefaultDashboardRenderer,
  preserving the lazy DashboardBuilder chunk.
- DashboardPage now builds the contract props from data it already
  fetches and renders DashboardRendererHost; hydration and all other
  host behavior are unchanged, so the embedded path inherits the seam.

This is the first step toward a fully Redux-decoupled dashboard
renderer and an Embedded SDK that is a thin wrapper over this
extension point.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 15:45:14 -07:00
Michael S. Molina
a90c8e0347 feat(extensions): add Chat contribution type (SIP-214) (#41205)
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-06-25 08:57:30 -03:00
Evan Rusackas
672e9a1477 fix(docs): tighten onBrokenLinks to throw and fix surfaced broken links (#40102)
Co-authored-by: Claude Code <noreply@anthropic.com>
2026-05-14 11:07:18 -07:00
Beto Dealmeida
cb53745d43 feat: semantic layer extension (#37815) 2026-05-05 12:07:46 -04:00
David
b9de3dba95 fix(docs): fix 404s in documentation (#38974)
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-04-27 08:36:58 -07:00
Michael S. Molina
6f301707f9 fix: Simplify extension folder name (#38690) 2026-03-17 14:00:19 -03:00
Ville Brofeldt
dcb414aa06 feat(extensions): add update command to extensions cli (#38651) 2026-03-16 07:02:42 -07:00
Amin Ghadersohi
65e21cf13c docs: move MCP deployment guide to admin docs, add user-facing AI guide (#38585) 2026-03-12 10:30:51 -07:00
Michael S. Molina
a6c0d6321f chore(extensions): simplify backend package structure by removing superset_extensions namespace (#38476) 2026-03-06 14:49:49 -03:00
Michael S. Molina
5fb9e17721 refactor(extensions): align editors API naming with commands/views, add description to all contribution types (#38475) 2026-03-06 14:18:49 -03:00
Michael S. Molina
296bd7e56b docs(extensions): fix extension developer documentation and CLI scaffolding (#38472) 2026-03-06 13:10:41 -03:00
Michael S. Molina
357e35dc62 refactor(core): reorganize superset-core packages into feature-based structure (#38448) 2026-03-05 17:41:15 -03:00
Amin Ghadersohi
0dbd4c5b90 docs(mcp): add MCP server deployment and authentication guide (#38415) 2026-03-05 17:52:04 +01:00
Ville Brofeldt
0d5827ac42 chore(extensions): unified contribution api and automatic prefixing (#38412) 2026-03-04 14:51:22 -08:00
Michael S. Molina
19f949276c refactor(config): SIGNAL_CACHE_CONFIG → DISTRIBUTED_COORDINATION_CONFIG (#38395) 2026-03-04 09:40:21 -08:00
Michael S. Molina
832fee3ff8 refactor(mcp): move superset_core MCP module from mcp to api/mcp (#38394) 2026-03-04 09:38:17 -08:00
Evan Rusackas
ef4b1d674b feat(docs): add filterable UI Components table and improve build performance (#38253)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 10:32:25 -03:00
Ville Brofeldt
c35bf344a9 chore(extensions): clean up backend entrypoints and file globs (#38360) 2026-03-03 09:45:35 -08:00
Michael S. Molina
a74d32ab44 feat(extensions): code-first frontend contributions (#38346) 2026-03-02 13:51:29 -08:00
Evan Rusackas
6589ee48f9 docs: bifurcate documentation into user and admin sections (#38196)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 13:29:08 -08:00