Skip to main content

Superset Import/Export

Convenience-wrapper around superset's REST API to download and upload snapshots of all assets.

Getting Started

  1. Install uv
  2. 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

  1. Install the required dependencies (including dev, test dependencies and all optional dependencies)
uv sync --all-groups --all-extras
  1. 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
  1. 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.

  1. 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
  1. 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)

Source distribution for coasti-superset-io 0.3.0
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)

Table of built distributions (wheels) for coasti-superset-io 0.3.0
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page