logo

Superset 1.0

Apache Superset 1.0 is a major milestone that the community has been working towards since the very first commit at a hackathon at Airbnb back in 2015. Superset 1.0 packs a lot of new features, uplevels usability, holds a higher quality standard, and raises the bar for releases to come.

This page chronicles the key advancements that our community has been building up towards this release.

While growing fast over the past four years, Superset had accumulated a certain amount of technical debt, design debt, bugs, and idiosyncrasies. For this release, we wanted to pay the bulk of that debt off, streamlining the core user flows, refreshing the overall look and feel, taking off some of the scaffolding that was left standing around, and more generally, leveling up the user experience.

User Experience

Visually, Superset 1.0 is stunning, introducing card layouts with thumbnails throughout the application, streamlining navigation and content discovery with a new home page, redesigned menus, and generally enriching existing pages.

Behind the scenes, we moved away from Bootstrap 2x in favor of building a proper design system on top of Ant Design. We also redesigned all of our CRUD (Create Read Update Delete), moving away from the rigid scaffolding “auto-magic” provided by FAB (Flask App Builder), to our own React-based solution that enables us to build richer experiences.

More generally, many rough edges got buffed, the whole product got polished, and we managed to get our core user flows to, well, flow nicely.

API

For engineers and hackers, we’ve made Superset much more modular, extensible and integratable. We’re now exposing the building blocks of Superset for engineers to extend or use in other projects. It’s now easier than ever to create new visualization plugins for Superset and to share those plugins back with the community.

We’re excited by the possibilities that this opens and excited to observe a growing ecosystem of plugins take life. We’ve also formalized a public REST API that enables engineers to essentially do everything that users can do in Superset, programmatically.

Honorable Mentions

With 1680 PRs merged and 25+ SIPs (Superset Improvement Proposals) over 2020, it’s hard to summarize what went into this release. Improvements happened in all aspects of the project, from infrastructure to design, through backend and frontend, to community and governance. Here are some honorable mentions that we haven’t been covered above, but deserve a mention in this post:

  • Asynchronous backend improvements
  • Metadata and data pane in explorer view
  • Toolbars redesign (SQL Lab, dashboard, explore)
  • Date range picker redesign
  • Various Docker / Helm improvements
  • Migration of key visualization to plugins using Echarts
  • Time series forecasting leveraging the Prophet library
  • Improvements to and extensive use of our feature flag framework
  • Improved analytics logging, capturing more events more consistently
  • Exploration control panels improvements
  • Improved SQL-to-explore flows

Release Notes

To digest the full set of changes in 1.0, we recommend reading the full Release Notes on Github.

Start Using Superset 1.0

Source Code

You can download Superset 1.0 from any of the following places:

  • Official Apache Software Foundation source release
  • Python package from PyPi
  • this commit tag from Github

Feature Flags & Dependency Configuration

Some of the features in Superset 1.0 require:

  • enabling of specific feature flags (read more about configuring these)
  • custom configuration of additional services (e.g. celery, SMTP server, etc)

In this section, the community takes the first steps to document the feature flags and configuration instructions needed.

FeatureFeature FlagDependenciesDocumentation
Global Async QueriesGLOBAL_ASYNC_QUERIES: TrueRedis 5.0+, celery workers configured and runningExtra documentation
Dashboard Native FiltersDASHBOARD_NATIVE_FILTERS: True
Alerts & ReportingALERTS_REPORTS: TrueCelery workers configured & celery beat process
Homescreen ThumbnailsTHUMBNAILS: TRUE, THUMBNAIL_CACHE_CONFIG: CacheConfig = { "CACHE_TYPE": "null", "CACHE_NO_NULL_WARNING": True}selenium, pillow 7, celery
Dynamic Viz Plugin ImportDYNAMIC_PLUGINS: True