--- title: Deploying an Extension sidebar_position: 8 --- # 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: 1. Builds frontend assets using Webpack (with Module Federation configuration). 2. Collects backend Python source files and all necessary resources. 3. Generates a `manifest.json` with build-time metadata, including the contents of `extension.json` and references to built assets. 4. 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: 1. Extracting and validating the extension metadata and manifest. 2. Storing extension assets in the metadata database for dynamic loading. 3. Registering the extension in the metadata database, including its name, version, author, and capabilities. 4. 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