tree: 3dfe222c912e7e4235c6c3fc17ae4dc3bb12efae [path history] [tgz]
  1. src/
  2. tests/
  3. CHANGELOG.md
  4. LICENSE.txt
  5. pyproject.toml
  6. README.md
superset-extensions-cli/README.md

apache-superset-extensions-cli

PyPI version License Python 3.10+

Official command-line interface for building, bundling, and managing Apache Superset extensions. This CLI tool provides developers with everything needed to create, develop, and package extensions for the Superset ecosystem.

🚀 Features

  • Extension Scaffolding - Generate initial folder structure and scaffold new extension projects
  • Development Server - Automatically rebuild extensions as files change during development
  • Build System - Build extension assets for production deployment
  • Bundle Packaging - Package extensions into distributable .supx files

📦 Installation

pip install apache-superset-extensions-cli

🛠️ Quick Start

Available Commands

# Generate initial folder structure and scaffold a new extension project
superset-extensions init <extension-name>

# Automatically rebuild extension as files change during development
superset-extensions dev

# Build extension assets for production
superset-extensions build

# Package extension into a distributable .supx file
superset-extensions bundle

📋 Extension Structure

The CLI generates extensions with the following structure:

extension_name/
├── extension.json              # Extension configuration and metadata
├── frontend/                   # Frontend code
│   ├── src/                   # TypeScript/React source files
│   ├── webpack.config.js      # Frontend build configuration
│   ├── tsconfig.json          # TypeScript configuration
│   └── package.json           # Frontend dependencies
├── backend/                   # Backend code
│   ├── src/
│   │   └── dataset_references/ # Python package source
│   ├── tests/                 # Backend tests
│   ├── pyproject.toml         # Python package configuration
│   └── requirements.txt       # Python dependencies
├── dist/                      # Built extension files (generated)
│   ├── manifest.json          # Generated extension manifest
│   ├── frontend/
│   │   └── dist/              # Built frontend assets
│   │       ├── remoteEntry.*.js  # Module federation entry
│   │       └── *.js           # Additional frontend bundles
│   └── backend/
│       └── dataset_references/ # Built backend package
│           ├── __init__.py
│           ├── api.py
│           └── entrypoint.py
├── dataset_references-1.0.0.supx  # Packaged extension file (generated)
└── README.md                  # Extension documentation

🤝 Contributing

We welcome contributions! Please see the Contributing Guide for details.

📄 License

Licensed under the Apache License, Version 2.0. See LICENSE for details.

🔗 Links


Note: This package is currently in early development. APIs and commands may change before the 1.0.0 release. Please check the changelog for breaking changes between versions.