Snapshots all four versioned Docusaurus sections at v6.1.0. Built on top of the version-cutting tooling work in chore/docs-cut-6.1.0-versions so the snapshot benefits from: - Auto-gen refresh before snapshotting (database pages from engine spec metadata, API reference from openapi.json, component pages from Storybook stories) — captured at the SHA we cut from rather than whatever happened to be on disk. - Data-import freeze: country list, feature flag table, database diagnostics, and component metadata are copied into snapshot-local `_versioned_data/` dirs so the historical version doesn't silently mutate when the source files change. - Depth-aware import-path rewriter that handles deeply-nested component MDX files referencing `../../../src/` from the snapshot. Versioning behavior: `lastVersion` stays at `current` for every section, so the canonical URLs (`/docs/...`, `/admin-docs/...`, `/developer-docs/...`, `/components/...`) continue to render content from master. The `current` version is consistently labeled "Next" with an `unreleased` banner, and `6.1.0` is a historical pin accessible only via its explicit version segment. Component playground: previously `disabled: true` in versions-config.json, now enabled and versioned. The plugin block in docusaurus.config.ts was already gated only by the `disabled` flag, so no other code changes were needed to bring it back online. The frozen `databases.json` in the snapshot is the canonical 80-database artifact from the latest committed state in master (preserved by the generator's input-hash cache), not a fallback regenerated from a local Flask environment.
3.5 KiB
title, sidebar_position
| title | sidebar_position |
|---|---|
| Overview | 1 |
Overview
Apache Superset's extension system enables organizations to build custom features without modifying the core codebase. Inspired by the VS Code extension model, this architecture addresses a long-standing challenge: teams previously had to fork Superset or make invasive modifications to add capabilities like query optimizers, custom panels, or specialized integrations—resulting in maintenance overhead and codebase fragmentation.
The extension system introduces a modular, plugin-based architecture where both built-in features and external extensions use the same well-defined APIs. This "lean core" approach ensures that any capability available to Superset's internal features is equally accessible to community-developed extensions, fostering a vibrant ecosystem while reducing the maintenance burden on core contributors.
What are Superset Extensions?
Superset extensions are self-contained .supx packages that extend the platform's capabilities through standardized contribution points. Each extension can include both frontend (React/TypeScript) and backend (Python) components, bundled together and loaded dynamically at runtime using Webpack Module Federation.
Extension Capabilities
Extensions can provide:
- Custom UI Components: New panels, views, and interactive elements
- Commands and Menus: Custom actions accessible via menus and keyboard shortcuts
- REST API Endpoints: Backend services under the
/extensions/namespace - MCP Tools and Prompts: AI agent capabilities for enhanced user assistance
UI Components for Extensions
Extension developers have access to pre-built UI components via @apache-superset/core/components. Browse all available components on the UI Components page and filter by Extension Compatible to see components available to extensions.
Next Steps
- Quick Start - Build your first extension with a complete walkthrough
- Architecture - Design principles and system overview
- Dependencies - Managing dependencies and understanding API stability
- Contribution Types - Available extension points
- Development - Project structure, APIs, and development workflow
- Deployment - Packaging and deploying extensions
- MCP Integration - Adding AI agent capabilities using extensions
- Security - Security considerations and best practices
- Tasks - Framework for creating and managing long running tasks
- Community Extensions - Browse extensions shared by the community