Skip to main content
Version: Next

Feature Flags

Superset uses feature flags to control the availability of features. Feature flags allow gradual rollout of new functionality and provide a way to enable experimental features.

To enable a feature flag, add it to your superset_config.py:

FEATURE_FLAGS = {
"ENABLE_TEMPLATE_PROCESSING": True,
}

Lifecycle

Feature flags progress through lifecycle stages:

StageDescription
DevelopmentExperimental features under active development. May be incomplete or unstable.
TestingFeature complete but undergoing testing. Usable but may contain bugs.
StableProduction-ready features. Safe for all deployments.
DeprecatedFeatures scheduled for removal. Migrate away from these.

Development

These features are experimental and under active development. Use only in development environments.

FlagDefaultDescription
AG_GRID_TABLE_ENABLEDFalseEnables Table V2 (AG Grid) viz plugin
ALERT_REPORT_TABSFalseEnables experimental tabs UI for Alerts and Reports
CHART_PLUGINS_EXPERIMENTALFalseEnables experimental chart plugins
CSV_UPLOAD_PYARROW_ENGINEFalseExperimental PyArrow engine for CSV parsing (may have issues with dates/nulls)
DATASET_FOLDERSFalseAllow metrics and columns to be grouped into folders in the chart builder
DATE_RANGE_TIMESHIFTS_ENABLEDFalseEnable support for date range timeshifts (e.g., "2015-01-03 : 2015-01-04") in addition to relative timeshifts (e.g., "1 day ago")
ENABLE_ADVANCED_DATA_TYPESFalseEnables advanced data type support
ENABLE_EXTENSIONSFalseEnable Superset extensions for custom functionality without modifying core
MATRIXIFYFalseEnable Matrixify feature for matrix-style chart layouts
OPTIMIZE_SQLFalseTry to optimize SQL queries — for now only predicate pushdown is supported
PRESTO_EXPAND_DATAFalseExpand nested types in Presto into extra columns/arrays. Experimental, doesn't work with all nested types.
TABLE_V2_TIME_COMPARISON_ENABLEDFalseEnable Table V2 time comparison feature
TAGGING_SYSTEMFalseEnables the tagging system for organizing assets

Testing

These features are complete but still being tested. They are usable but may have bugs.

FlagDefaultDescription
ALERT_REPORTSFalseEnables Alerts and Reports functionality (docs)
ALERT_REPORTS_FILTERFalseEnables filter functionality in Alerts and Reports
ALERT_REPORT_SLACK_V2FalseEnables Slack V2 integration for Alerts and Reports
ALERT_REPORT_WEBHOOKFalseEnables webhook integration for Alerts and Reports
ALLOW_FULL_CSV_EXPORTFalseAllow users to export full CSV of table viz type. Warning: Could cause server memory/compute issues with large datasets.
CACHE_IMPERSONATIONFalseEnable caching per impersonation key in datasources with user impersonation
DATE_FORMAT_IN_EMAIL_SUBJECTFalseAllow users to optionally specify date formats in email subjects (docs)
DYNAMIC_PLUGINSFalseEnable dynamic plugin loading
ENABLE_DASHBOARD_DOWNLOAD_WEBDRIVER_SCREENSHOTFalseGenerate screenshots (PDF/JPG) of dashboards using web driver. Depends on ENABLE_DASHBOARD_SCREENSHOT_ENDPOINTS.
ENABLE_DASHBOARD_SCREENSHOT_ENDPOINTSFalseEnables endpoints to cache and retrieve dashboard screenshots via webdriver. Requires Celery and THUMBNAIL_CACHE_CONFIG.
ENABLE_SUPERSET_META_DBFalseAllows users to add a superset:// DB that can query across databases. Experimental with potential security/performance risks. See SUPERSET_META_DB_LIMIT. (docs)
ESTIMATE_QUERY_COSTFalseEnable query cost estimation. Supported in Presto, Postgres, and BigQuery. Requires `cost_estimate_enabled: true` in database `extra` attribute.
GLOBAL_ASYNC_QUERIESFalseEnable async queries for dashboards and Explore via WebSocket. Requires Redis 5.0+ and Celery workers. (docs)
IMPERSONATE_WITH_EMAIL_PREFIXFalseWhen impersonating a user, use the email prefix instead of username
PLAYWRIGHT_REPORTS_AND_THUMBNAILSFalseReplace Selenium with Playwright for reports and thumbnails. Supports deck.gl visualizations. Requires playwright pip package.
RLS_IN_SQLLABFalseApply RLS rules to SQL Lab queries. Requires query parsing/manipulation. May break queries or allow RLS bypass. Use with care!
SSH_TUNNELINGFalseAllow users to enable SSH tunneling when creating a DB connection. DB engine must support SSH Tunnels. (docs)
USE_ANALOGOUS_COLORSFalseUse analogous colors in charts

Stable

These features are production-ready and safe to enable.

FlagDefaultDescription
ALERTS_ATTACH_REPORTSTrueWhen enabled, alerts send email/slack with screenshot AND link. When disabled, alerts send only link; reports still send screenshot.
ALLOW_ADHOC_SUBQUERYFalseAllow ad-hoc subqueries in SQL Lab
CACHE_QUERY_BY_USERFalseEnable caching per user key for Superset cache
CSS_TEMPLATESTrueEnables CSS Templates in Settings menu and dashboard forms
DASHBOARD_RBACFalseRole-based access control for dashboards (docs)
DASHBOARD_VIRTUALIZATIONTrueEnables dashboard virtualization for improved performance
DATAPANEL_CLOSED_BY_DEFAULTFalseData panel closed by default in chart builder
DRILL_BYTrueEnable drill-by functionality in charts
DRUID_JOINSFalseEnable Druid JOINs (requires Druid version with JOIN support)
EMBEDDABLE_CHARTSTrueEnable sharing charts with embedding
EMBEDDED_SUPERSETFalseEnable embedded Superset functionality
ENABLE_FACTORY_RESET_COMMANDFalseEnable factory reset CLI command
ENABLE_TEMPLATE_PROCESSINGFalseEnable Jinja templating in SQL queries
ESCAPE_MARKDOWN_HTMLFalseEscape HTML in Markdown components (rather than rendering it)
FILTERBAR_CLOSED_BY_DEFAULTFalseFilter bar closed by default when opening dashboard
FORCE_GARBAGE_COLLECTION_AFTER_EVERY_REQUESTFalseForce garbage collection after every request
LISTVIEWS_DEFAULT_CARD_VIEWFalseUse card view as default in list views
MENU_HIDE_USER_INFOFalseHide user info in the navigation menu
SLACK_ENABLE_AVATARSFalseUse Slack avatars for users. Requires adding slack-edge.com to TALISMAN_CONFIG.
SQLLAB_BACKEND_PERSISTENCETrueEnable SQL Lab backend persistence for query state
SQLLAB_FORCE_RUN_ASYNCFalseForce SQL Lab to run async via Celery regardless of database settings
THUMBNAILSFalseExposes API endpoint to compute thumbnails (docs)

Deprecated

These features are scheduled for removal. Plan to migrate away from them.

FlagDefaultDescription
AVOID_COLORS_COLLISIONTrueAvoid color collisions in charts by using distinct colors
DRILL_TO_DETAILTrueEnable drill-to-detail functionality in charts
ENABLE_JAVASCRIPT_CONTROLSFalseAllow JavaScript in chart controls. WARNING: XSS security vulnerability!

Adding New Feature Flags

When adding a new feature flag to superset/config.py, include the following annotations:

# Description of what the feature does
# @lifecycle: development | testing | stable | deprecated
# @docs: https://superset.apache.org/docs/... (optional)
# @category: runtime_config | path_to_deprecation (optional, for stable flags)
"MY_NEW_FEATURE": False,

This documentation is auto-generated from the annotations in config.py.