Superset Import/Export
Convenience-wrapper around superset's REST API to download and upload snapshots of all assets.
Getting Started
- Install uv
- Install Superset IO as tool
# macOS, Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# uv tool provides global cli, creates an isolated environment
uv tool install git+https://github.com/linkFISH-Consulting/coasti_superset_io
To avoid entering your credentials on every import or export, you can set them as environment variables. Passwords are best placed into files so they dont appear in the history: Create a file ~/path/to/mypass that only holds the password.
# Linux
export SUPERSET_BASE_URL="https://superset-demo.example.com"
export SUPERSET_USER="user@example.com"
export SUPERSET_PASSWORD_FILE="~/path/to/mypass"
# Windows (Powershell)
$env:SUPERSET_BASE_URL="https://superset-demo.example.com"
$env:SUPERSET_USER="user@example.com"
$env:SUPERSET_PASSWORD_FILE="~/path/to/mypass"
superset-io --help
superset-io test
superset-io download ~/path/to/save/at
superset-io explore ~/path/to/save/at list
superset-io explore ~/path/to/save/at graph
Superset Frontend Development Workflow
The aim of this tool is a code-first approach to Frontend development. Therefore, the ground truth is not what you see in superset, but what lives as yaml files in the Frontend Folder in the source control, e.g. Github.
This allows automatic and versioned rollouts:
flowchart LR
subgraph Lokal
LocalServer["Superset Dev Server"]
LocalFolder["Frontend Ordner"]
end
subgraph Github
Repo["Repo"]
end
subgraph Demo Server
DemoServer["Superset Demo Server"]
DemoFolder["Frontend Ordner"]
end
LocalFolder --> |Commit<br>Pull Request| Repo
Repo --> |Clone<br>Pull| LocalFolder
LocalServer --> |superset-io:<br>download| LocalFolder
LocalFolder --> |upload| LocalServer
DemoFolder --> |superset-io:<br>upload| DemoServer
Repo --> |"download<br>(nächtlich)"| DemoFolder
Contribution
- Install the required dependencies (including dev, test dependencies and all optional dependencies)
uv sync --all-groups --all-extras
- Make your changes in a new branch.
git checkout -b my-feature-branch
- Write code
- Add or update tests as needed
- Update documentation if your changes affect the public API
- Ensure code meets quality standards.
# Activate the virtual environment first
source ./.venv/bin/activate
# Check code style and formatting
ruff check . --fix
ruff format .
# Run type checking
mypy .
If this looks tedious you may alternatively install the pre-commit hooks to automatically enforce code quality standards before each commit (this runs the commands above automatically).
# Install the git hooks
pre-commit install
Once installed, every git commit will trigger automatic formatting with ruff, type checking with mypy, and linting. If you need to skip these checks (e.g., for a work-in-progress commit), use git commit --no-verify.
- Make sure all tests run successfully
pytest
Optionally you can make sure the integrations tests also running successfully. This needs docker compose to be installed on the system.
# Either let pytest stop start the container
pytest --integration
# Or do it manually
cd ./tests/integration
docker compose up
pytest --integration
- Commit your changes with clear messages.
git add .
git commit -m "Add feature X"
Metadata
Release files for coasti-superset-io 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| coasti_superset_io-0.3.0.tar.gz | 119.3 kB | Without provenance | Details for coasti_superset_io-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| coasti_superset_io-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for coasti_superset_io-0.3.0-py3-none-any.whl |
Total release size: 150.5 kB
Release files / coasti_superset_io-0.3.0.tar.gz
| Download URL | coasti_superset_io-0.3.0.tar.gz |
|---|---|
| Size | 119.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
64236bd8040bfb38d9aee96b3a7b578f911ac911918a4ab01eee35e77a22e3c7
|
|
BLAKE2b-256 checksum How to use checksums |
2b5fa924e3e0c8f04ec3ba54d9055a54de7ec16deb1e2fe47584d7d1f8852036
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / coasti_superset_io-0.3.0-py3-none-any.whl
| Download URL | coasti_superset_io-0.3.0-py3-none-any.whl |
|---|---|
| Size | 31.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fb3aaa05c06f3744b7bc514dadf756adab029903f2e6ae7030a962163628a8ab
|
|
BLAKE2b-256 checksum How to use checksums |
f88be4759ddd05f45f70bddc63709118d3a06d92dd598d1fdb5366cb1cf80907
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for coasti-superset-io 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.