Deploying an Extension
Once an extension has been developed, the deployment process involves packaging and uploading it to the host application.
Packaging is handled by the superset-extensions bundle
command, which:
- Builds frontend assets using Webpack (with Module Federation configuration).
- Collects backend Python source files and all necessary resources.
- Generates a
manifest.json
with build-time metadata, including the contents ofextension.json
and references to built assets. - Packages everything into a
.supx
file (a zip archive with a specific structure required by Superset).
Uploading is accomplished through Superset's REST API at /api/v1/extensions/import/
. The endpoint accepts the .supx
file as form data and processes it by:
- Extracting and validating the extension metadata and manifest.
- Storing extension assets in the metadata database for dynamic loading.
- Registering the extension in the metadata database, including its name, version, author, and capabilities.
- Automatically activating the extension, making it immediately available for use and management via the Superset UI or API.
This API-driven approach enables automated deployment workflows and simplifies extension management for administrators. Extensions can be uploaded through the Swagger UI, programmatically via scripts, or through the management interface:
https://github.com/user-attachments/assets/98b16cdd-8ec5-4812-9d5e-9915badd8f0d