TVL Managed Superset

Version Control your Apache Superset Dashboards 2026

Version Apache Superset dashboards in Git: workflow, CI/CD, branches, code review.

Versioning Apache Superset dashboards in Git provides traceability, rollback, code review, and automated deployment — exactly like application code. This guide details the "Dashboards as Code" workflow in 2026.

1. Why version?

  • Traceability: who changed what and when;
  • Rollback: revert to a previous dashboard version;
  • Code review: validate changes before production;
  • CI/CD: automatic deployment after merge;
  • Documentation: Git becomes the source of truth.

If you want a preconfigured stack, TVL Managed Superset offers GitHub integration by default.

2. Dashboards as Code architecture

  1. Dedicated Git repo superset-dashboards;
  2. Structure: dashboards/, datasets/, databases/;
  3. Daily export from prod instance to Git;
  4. PR review for changes;
  5. CI/CD that imports to staging then prod after validation.

3. Repo structure

superset-dashboards/
├── dashboards/
│   ├── exec_overview.yaml
│   ├── product_analytics.yaml
│   └── ...
├── datasets/
│   ├── fct_orders.yaml
│   ├── dim_customers.yaml
│   └── ...
├── databases/
│   └── warehouse.yaml
├── .github/
│   └── workflows/
│       ├── export-from-prod.yml
│       └── deploy-to-prod.yml
└── README.md

4. Daily export job

# .github/workflows/export-from-prod.yml
name: Export from Prod
on:
  schedule:
    - cron: '0 3 * * *'  # 3 AM

jobs:
  export:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Login Superset
        run: |
          TOKEN=$(curl -X POST https://superset.example.com/api/v1/security/login ...)
          echo "TOKEN=$TOKEN" >> $GITHUB_ENV
      - name: Export dashboards
        run: |
          for id in $(curl -s ... | jq -r '.result[].id'); do
            curl -s ... -o dashboards/$id.zip
            unzip dashboards/$id.zip -d dashboards/raw/
          done
      - name: Commit
        run: |
          git add .
          git diff --cached --quiet || git commit -m "Daily export $(date +%F)"
          git push

5. PR review workflow

  1. Edit a dashboard on Superset staging;
  2. Export the dashboard from staging;
  3. PR on the Git repo with the diff;
  4. Review by the data lead;
  5. Merge → CI deploys to prod.

This configuration is applied by default on TVL Managed Superset, which follows community best practices.

6. Deployment job

# .github/workflows/deploy-to-prod.yml
name: Deploy to Prod
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Import dashboards
        run: |
          for f in dashboards/*.zip; do
            curl -X POST https://superset.example.com/api/v1/dashboard/import/ \
              -H "Authorization: Bearer $TOKEN" \
              -F "formData=@$f"
          done

7. Best practices

  • Feature branches per dashboard being edited;
  • Mandatory review before merge to main;
  • Conventional commits: feat(dashboard): add MRR cohort;
  • Tags for stable versions;
  • Documentation in README for each dashboard.

8. Common pitfalls

  • Unreadable YAML diff: JSON layout changes at every save;
  • Inconsistent UUIDs between staging and prod;
  • Different DB connections between environments;
  • Non-deterministic export: field order can change;
  • Secrets in Git: virtual datasets with hardcoded credentials.

9. Complementary tools

  • preset.io: managed versioning;
  • superset-cli community tools;
  • dbt + exposures: reference Superset from dbt.

10. Conclusion

Versioning Apache Superset in Git transforms BI into rigorous data engineering. The Dashboards as Code workflow brings traceability, rollback, and automation. For data-mature organizations, it's the only way to scale cleanly to 50+ dashboards without chaos.

Want the benefits of Apache Superset without the friction of installation and maintenance? Deploy your instance in 3 clicks with TVL Managed Superset, hosted in Europe (OVHcloud, Roubaix, France).

For more: export dashboard, import dashboard, Superset CLI.