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:
| Stage | Description |
|---|---|
| Development | Experimental features under active development. May be incomplete or unstable. |
| Testing | Feature complete but undergoing testing. Usable but may contain bugs. |
| Stable | Production-ready features. Safe for all deployments. |
| Deprecated | Features scheduled for removal. Migrate away from these. |
Development
These features are experimental and under active development. Use only in development environments.
| Flag | Default | Description |
|---|---|---|
AG_GRID_TABLE_ENABLED | False | Enables Table V2 (AG Grid) viz plugin |
ALERT_REPORT_TABS | False | Enables experimental tabs UI for Alerts and Reports |
CHART_PLUGINS_EXPERIMENTAL | False | Enables experimental chart plugins |
CSV_UPLOAD_PYARROW_ENGINE | False | Experimental PyArrow engine for CSV parsing (may have issues with dates/nulls) |
DATASET_FOLDERS | False | Allow metrics and columns to be grouped into folders in the chart builder |
DATE_RANGE_TIMESHIFTS_ENABLED | False | Enable 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_TYPES | False | Enables advanced data type support |
ENABLE_EXTENSIONS | False | Enable Superset extensions for custom functionality without modifying core |
FAB_API_KEY_ENABLED | False | Enable API key authentication via FAB SecurityManager When enabled, users can create/manage API keys in the User Info page |
GRANULAR_EXPORT_CONTROLS | False | Enable granular export controls (can_export_data, can_export_image, can_copy_clipboard) instead of the single can_csv permission |
MATRIXIFY | False | Enable Matrixify feature for matrix-style chart layouts |
MOBILE_CONSUMPTION_MODE | False | Serve a consumption-only mobile experience (dashboards, dashboard list, and home page) on small screens; other views show a "not supported on mobile" screen. Authoring features are hidden on mobile when enabled. |
OPTIMIZE_SQL | False | Try to optimize SQL queries — for now only predicate pushdown is supported |
PARTITION_FILTER_MAPPING | False | Map a dataset's business column onto its physical partition column, so engines that require an explicit partition predicate can prune. Filters on the mapped column are mirrored onto the partition column at query time, so enabling this changes the SQL charts emit rather than only storing configuration. |
PRESTO_EXPAND_DATA | False | Expand nested types in Presto into extra columns/arrays. Experimental, doesn't work with all nested types. |
SEMANTIC_LAYERS | False | Enable semantic layers and show semantic views alongside datasets |
TABLE_V2_TIME_COMPARISON_ENABLED | False | Enable Table V2 time comparison feature |
Testing
These features are complete but still being tested. They are usable but may have bugs.
| Flag | Default | Description |
|---|---|---|
ALERT_REPORTS | False | Enables Alerts and Reports functionality (docs) |
ALERT_REPORTS_FILTER | False | Enables filter functionality in Alerts and Reports |
ALERT_REPORTS_RETRY | False | Enables automatic retry functionality for failed report executions |
ALERT_REPORT_SLACK_V2 | True | Enables Slack V2 integration for Alerts and Reports. Defaults to True; the legacy Slack v1 path is deprecated and will be removed in the next major release. Operators must grant the Slack bot both the `channels:read` and `groups:read` scopes so existing v1 recipients can be auto-upgraded on their next send. Without those scopes, file uploads fail (Slack retired the `files.upload` endpoint in 2025) and only text-only `chat_postMessage` sends will continue to work via the legacy path. |
ALERT_REPORT_WEBHOOK | False | Enables webhook integration for Alerts and Reports |
ALLOW_FULL_CSV_EXPORT | False | Allow users to export full CSV of table viz type. Warning: Could cause server memory/compute issues with large datasets. |
ASSIGN_CREATOR_GROUPS_AS_VIEWERS | False | Share a newly created dashboard or chart read-only with every group its creator belongs to, unless the create payload names viewers explicitly. Requires ENABLE_VIEWERS. Narrows access: an asset with no viewers falls back to datasource permissions; one with viewers is limited to its editors and viewers, and dashboards must also be published before those viewers gain access. |
AWS_DATABASE_IAM_AUTH | False | Enable AWS IAM authentication for database connections (Aurora, Redshift). Allows cross-account role assumption via STS AssumeRole. Security note: When enabled, ensure Superset's IAM role has restricted sts:AssumeRole permissions to prevent unauthorized access. |
CACHE_IMPERSONATION | False | Enable caching per impersonation key in datasources with user impersonation |
DATE_FORMAT_IN_EMAIL_SUBJECT | False | Allow users to optionally specify date formats in email subjects (docs) |
DYNAMIC_PLUGINS | False | Enable dynamic plugin loading |
ENABLE_DASHBOARD_DOWNLOAD_WEBDRIVER_SCREENSHOT | False | Generate screenshots (PDF/JPG) of dashboards using web driver. Depends on ENABLE_DASHBOARD_SCREENSHOT_ENDPOINTS. |
ENABLE_DASHBOARD_SCREENSHOT_ENDPOINTS | False | Enables endpoints to cache and retrieve dashboard screenshots via webdriver. Requires Celery and THUMBNAIL_CACHE_CONFIG. |
ENABLE_SUPERSET_META_DB | False | Allows users to add a superset:// DB that can query across databases. Experimental with potential security/performance risks. See SUPERSET_META_DB_LIMIT. (docs) |
ENABLE_VIEWERS | False | Subject-based viewer access control for dashboards and charts. When enabled, resources can have explicit viewer Subject assignments. |
ESTIMATE_QUERY_COST | False | Enable query cost estimation. Supported in Presto, Postgres, and BigQuery. Requires `cost_estimate_enabled: true` in database `extra` attribute. |
GLOBAL_ASYNC_QUERIES | False | Enable async queries for dashboards and Explore via WebSocket. Requires Redis 5.0+ and Celery workers. (docs) |
IMPERSONATE_WITH_EMAIL_PREFIX | False | When impersonating a user, use the email prefix instead of username |
RLS_IN_SQLLAB | False | Apply RLS rules to SQL Lab queries. Requires query parsing/manipulation. May break queries or allow RLS bypass. Use with care! |
SOFT_DELETE | True | Temporary rollout / kill-switch gate for soft delete (off = legacy hard delete). An emergency stop, not a clean rollback: flipping ON->OFF resurrects already-soft-deleted rows. Retained through this release as the move-back lever; removed (along with its two gate points — BaseDAO.delete routing and the do_orm_execute visibility listener) once post-flip confidence is established. |
SSH_TUNNELING | False | Allow users to enable SSH tunneling when creating a DB connection. DB engine must support SSH Tunnels. (docs) |
TAGGING_SYSTEM | True | Enables the tagging system for organizing assets |
USE_ANALOGOUS_COLORS | False | Use analogous colors in charts |
VERSION_HISTORY | True | Enables chart and dashboard version history panels and their supporting API endpoints. History only accrues while ``ENABLE_VERSIONING_CAPTURE`` is also on; with capture off the panel renders empty or stale history, so the two ship with matching defaults and should be changed together. |
Stable
These features are production-ready and safe to enable.
| Flag | Default | Description |
|---|---|---|
ALERTS_ATTACH_REPORTS | True | When enabled, alerts send email/slack with screenshot AND link. When disabled, alerts send only link; reports still send screenshot. |
ALLOW_ADHOC_SUBQUERY | False | Allow ad-hoc subqueries in SQL Lab |
CACHE_QUERY_BY_USER | False | Enable caching per user key for Superset cache |
CSS_TEMPLATES | True | Enables CSS Templates in Settings menu and dashboard forms |
DASHBOARD_VIRTUALIZATION | True | Enables dashboard virtualization for improved performance |
DASHBOARD_VIRTUALIZATION_DEFER_DATA | False | Supports simultaneous data and dashboard virtualization for backend performance |
DATAPANEL_CLOSED_BY_DEFAULT | False | Data panel closed by default in chart builder |
DISABLE_EMBEDDED_SUPERSET_LOGOUT | False | Hide the logout button in embedded contexts (e.g., when using SSO in iframes) (docs) |
DRILL_BY | True | Enable drill-by functionality in charts |
DRUID_JOINS | False | Enable Druid JOINs (requires Druid version with JOIN support) |
EMBEDDABLE_CHARTS | True | Enable sharing charts with embedding |
EMBEDDED_SUPERSET | False | Enable embedded Superset functionality |
ENABLE_FACTORY_RESET_COMMAND | False | Enable factory reset CLI command |
ENABLE_TEMPLATE_PROCESSING | False | Enable Jinja templating in SQL queries |
ESCAPE_MARKDOWN_HTML | False | Escape HTML in Markdown components (rather than rendering it) |
FILTERBAR_CLOSED_BY_DEFAULT | False | Filter bar closed by default when opening dashboard |
FORCE_GARBAGE_COLLECTION_AFTER_EVERY_REQUEST | False | Force garbage collection after every request |
LISTVIEWS_DEFAULT_CARD_VIEW | False | Use card view as default in list views |
MENU_HIDE_USER_INFO | False | Hide user info in the navigation menu |
SLACK_ENABLE_AVATARS | False | Use Slack avatars for users. Requires adding slack-edge.com to TALISMAN_CONFIG. |
SQLLAB_BACKEND_PERSISTENCE | True | Enable SQL Lab backend persistence for query state |
SQLLAB_FORCE_RUN_ASYNC | False | Force SQL Lab to run async via Celery regardless of database settings |
THUMBNAILS | False | Exposes API endpoint to compute thumbnails (docs) |
Deprecated
These features are scheduled for removal. Plan to migrate away from them.
| Flag | Default | Description |
|---|---|---|
DRILL_TO_DETAIL | True | Enable drill-to-detail functionality in charts |
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.