From d37eff2259c43689afe0031233e6b357d61ba531 Mon Sep 17 00:00:00 2001 From: "Michael S. Molina" Date: Wed, 5 Oct 2022 14:55:46 -0300 Subject: [PATCH] feat: Adds the CROSS_REFERENCE feature flag --- RESOURCES/FEATURE_FLAGS.md | 64 +++++++++++-------- .../src/utils/featureFlags.ts | 62 +++++++++--------- superset/config.py | 1 + 3 files changed, 72 insertions(+), 55 deletions(-) diff --git a/RESOURCES/FEATURE_FLAGS.md b/RESOURCES/FEATURE_FLAGS.md index fb2a6c07189b..807319cd6b21 100644 --- a/RESOURCES/FEATURE_FLAGS.md +++ b/RESOURCES/FEATURE_FLAGS.md @@ -16,71 +16,85 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> + # Superset Feature Flags + This is a list of the current Superset optional features. See config.py for default values. These features can be turned on/off by setting your preferred values in superset_config.py to True/False respectively ## In Development + These features are considered **unfinished** and should only be used on development environments. +[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY" + - CLIENT_CACHE +- CROSS_REFERENCES - DASHBOARD_CACHE - DASHBOARD_NATIVE_FILTERS_SET - DISABLE_DATASET_SOURCE_EDIT +- DRILL_TO_DETAIL +- ENABLE_ADVANCED_DATA_TYPES - ENABLE_EXPLORE_JSON_CSRF_PROTECTION +- ENABLE_TEMPLATE_REMOVE_FILTERS - KV_STORE - PRESTO_EXPAND_DATA - REMOVE_SLICE_LEVEL_LABEL_COLORS - SHARE_QUERIES_VIA_KV_STORE - TAGGING_SYSTEM -- ENABLE_TEMPLATE_REMOVE_FILTERS -- DRILL_TO_DETAIL -- ENABLE_ADVANCED_DATA_TYPES ## In Testing + These features are **finished** but currently being tested. They are usable, but may still contain some bugs. +[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY" + - ALERT_REPORTS: [(docs)](https://superset.apache.org/docs/installation/alerts-reports) -- DYNAMIC_PLUGINS: [(docs)](https://superset.apache.org/docs/installation/running-on-kubernetes) +- ALLOW_FULL_CSV_EXPORT +- CACHE_IMPERSONATION +- DASHBOARD_EDIT_CHART_IN_NEW_TAB +- DASHBOARD_FILTERS_EXPERIMENTAL - DASHBOARD_NATIVE_FILTERS -- GLOBAL_ASYNC_QUERIES [(docs)](https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries) -- VERSIONED_EXPORT +- DYNAMIC_PLUGINS: [(docs)](https://superset.apache.org/docs/installation/running-on-kubernetes) +- ENABLE_FILTER_BOX_MIGRATION - ENABLE_JAVASCRIPT_CONTROLS - GENERIC_CHART_AXES -- ENABLE_FILTER_BOX_MIGRATION -- UX_BETA -- USE_ANALAGOUS_COLORS -- DASHBOARD_EDIT_CHART_IN_NEW_TAB -- CACHE_IMPERSONATION +- GLOBAL_ASYNC_QUERIES [(docs)](https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries) - RLS_IN_SQLLAB -- DASHBOARD_FILTERS_EXPERIMENTAL -- ALLOW_FULL_CSV_EXPORT - +- USE_ANALAGOUS_COLORS +- UX_BETA +- VERSIONED_EXPORT ## Stable + These features flags are **safe for production** and have been tested. +[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY" + +- ALERTS_ATTACH_REPORTS +- ALLOW_ADHOC_SUBQUERY - DASHBOARD_CROSS_FILTERS - DASHBOARD_RBAC [(docs)](https://superset.apache.org/docs/creating-charts-dashboards/first-dashboard#manage-access-to-dashboards) -- ESCAPE_MARKDOWN_HTML +- DISABLE_LEGACY_DATASOURCE_EDITOR +- DRUID_JOINS +- EMBEDDABLE_CHARTS +- EMBEDDED_SUPERSET +- ENABLE_DND_WITH_CLICK_UX +- ENABLE_EXPLORE_DRAG_AND_DROP - ENABLE_TEMPLATE_PROCESSING +- ENFORCE_DB_ENCRYPTION_UI +- ESCAPE_MARKDOWN_HTML - LISTVIEWS_DEFAULT_CARD_VIEW - SCHEDULED_QUERIES [(docs)](https://superset.apache.org/docs/installation/alerts-reports) -- SQL_VALIDATORS_BY_ENGINE [(docs)](https://superset.apache.org/docs/installation/sql-templating) - SQLLAB_BACKEND_PERSISTENCE +- SQL_VALIDATORS_BY_ENGINE [(docs)](https://superset.apache.org/docs/installation/sql-templating) - THUMBNAILS [(docs)](https://superset.apache.org/docs/installation/cache) -- ENABLE_EXPLORE_DRAG_AND_DROP -- ENABLE_DND_WITH_CLICK_UX -- EMBEDDABLE_CHARTS -- EMBEDDED_SUPERSET -- ALERTS_ATTACH_REPORTS -- ALLOW_ADHOC_SUBQUERY -- DRUID_JOINS -- DISABLE_LEGACY_DATASOURCE_EDITOR -- ENFORCE_DB_ENCRYPTION_UI ## Deprecated Flags + These features flags currently default to True and **will be removed in a future major release**. For this current release you can turn them off by setting your config to False, but it is advised to remove or set these flags in your local configuration to **True** so that you do not experience any unexpected changes in a future release. +[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY" + - ALLOW_DASHBOARD_DOMAIN_SHARDING - DISPLAY_MARKDOWN_HTML - FORCE_DATABASE_CONNECTIONS_SSL diff --git a/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts b/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts index ebc15e774a93..f314748c1466 100644 --- a/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts +++ b/superset-frontend/packages/superset-ui-core/src/utils/featureFlags.ts @@ -19,46 +19,48 @@ // We can codegen the enum definition based on a list of supported flags that we // check into source control. We're hardcoding the supported flags for now. export enum FeatureFlag { - ALLOW_DASHBOARD_DOMAIN_SHARDING = 'ALLOW_DASHBOARD_DOMAIN_SHARDING', + // PLEASE KEEP THE LIST SORTED ALPHABETICALLY + ALERTS_ATTACH_REPORTS = 'ALERTS_ATTACH_REPORTS', ALERT_REPORTS = 'ALERT_REPORTS', + ALLOW_DASHBOARD_DOMAIN_SHARDING = 'ALLOW_DASHBOARD_DOMAIN_SHARDING', + ALLOW_FULL_CSV_EXPORT = 'ALLOW_FULL_CSV_EXPORT', CLIENT_CACHE = 'CLIENT_CACHE', - DYNAMIC_PLUGINS = 'DYNAMIC_PLUGINS', - ENABLE_ADVANCED_DATA_TYPES = 'ENABLE_ADVANCED_DATA_TYPES', - SCHEDULED_QUERIES = 'SCHEDULED_QUERIES', - SQL_VALIDATORS_BY_ENGINE = 'SQL_VALIDATORS_BY_ENGINE', - ESTIMATE_QUERY_COST = 'ESTIMATE_QUERY_COST', - SHARE_QUERIES_VIA_KV_STORE = 'SHARE_QUERIES_VIA_KV_STORE', - SQLLAB_BACKEND_PERSISTENCE = 'SQLLAB_BACKEND_PERSISTENCE', - THUMBNAILS = 'THUMBNAILS', - LISTVIEWS_DEFAULT_CARD_VIEW = 'LISTVIEWS_DEFAULT_CARD_VIEW', - DISABLE_LEGACY_DATASOURCE_EDITOR = 'DISABLE_LEGACY_DATASOURCE_EDITOR', - DISABLE_DATASET_SOURCE_EDIT = 'DISABLE_DATASET_SOURCE_EDIT', - DISPLAY_MARKDOWN_HTML = 'DISPLAY_MARKDOWN_HTML', - ESCAPE_MARKDOWN_HTML = 'ESCAPE_MARKDOWN_HTML', - DASHBOARD_NATIVE_FILTERS = 'DASHBOARD_NATIVE_FILTERS', + CROSS_REFERENCES = 'CROSS_REFERENCES', DASHBOARD_CROSS_FILTERS = 'DASHBOARD_CROSS_FILTERS', - DASHBOARD_NATIVE_FILTERS_SET = 'DASHBOARD_NATIVE_FILTERS_SET', + DASHBOARD_EDIT_CHART_IN_NEW_TAB = 'DASHBOARD_EDIT_CHART_IN_NEW_TAB', DASHBOARD_FILTERS_EXPERIMENTAL = 'DASHBOARD_FILTERS_EXPERIMENTAL', + DASHBOARD_NATIVE_FILTERS = 'DASHBOARD_NATIVE_FILTERS', + DASHBOARD_NATIVE_FILTERS_SET = 'DASHBOARD_NATIVE_FILTERS_SET', + DASHBOARD_RBAC = 'DASHBOARD_RBAC', + DATAPANEL_CLOSED_BY_DEFAULT = 'DATAPANEL_CLOSED_BY_DEFAULT', + DISABLE_DATASET_SOURCE_EDIT = 'DISABLE_DATASET_SOURCE_EDIT', + DISABLE_LEGACY_DATASOURCE_EDITOR = 'DISABLE_LEGACY_DATASOURCE_EDITOR', + DISPLAY_MARKDOWN_HTML = 'DISPLAY_MARKDOWN_HTML', + DRILL_TO_DETAIL = 'DRILL_TO_DETAIL', + DYNAMIC_PLUGINS = 'DYNAMIC_PLUGINS', + EMBEDDABLE_CHARTS = 'EMBEDDABLE_CHARTS', EMBEDDED_SUPERSET = 'EMBEDDED_SUPERSET', + ENABLE_ADVANCED_DATA_TYPES = 'ENABLE_ADVANCED_DATA_TYPES', + ENABLE_DND_WITH_CLICK_UX = 'ENABLE_DND_WITH_CLICK_UX', + ENABLE_EXPLORE_DRAG_AND_DROP = 'ENABLE_EXPLORE_DRAG_AND_DROP', ENABLE_FILTER_BOX_MIGRATION = 'ENABLE_FILTER_BOX_MIGRATION', - VERSIONED_EXPORT = 'VERSIONED_EXPORT', - GLOBAL_ASYNC_QUERIES = 'GLOBAL_ASYNC_QUERIES', + ENABLE_JAVASCRIPT_CONTROLS = 'ENABLE_JAVASCRIPT_CONTROLS', ENABLE_TEMPLATE_PROCESSING = 'ENABLE_TEMPLATE_PROCESSING', - ENABLE_EXPLORE_DRAG_AND_DROP = 'ENABLE_EXPLORE_DRAG_AND_DROP', - ENABLE_DND_WITH_CLICK_UX = 'ENABLE_DND_WITH_CLICK_UX', - FORCE_DATABASE_CONNECTIONS_SSL = 'FORCE_DATABASE_CONNECTIONS_SSL', ENABLE_TEMPLATE_REMOVE_FILTERS = 'ENABLE_TEMPLATE_REMOVE_FILTERS', - ENABLE_JAVASCRIPT_CONTROLS = 'ENABLE_JAVASCRIPT_CONTROLS', - DASHBOARD_RBAC = 'DASHBOARD_RBAC', - ALERTS_ATTACH_REPORTS = 'ALERTS_ATTACH_REPORTS', - ALLOW_FULL_CSV_EXPORT = 'ALLOW_FULL_CSV_EXPORT', - UX_BETA = 'UX_BETA', + ESCAPE_MARKDOWN_HTML = 'ESCAPE_MARKDOWN_HTML', + ESTIMATE_QUERY_COST = 'ESTIMATE_QUERY_COST', + FORCE_DATABASE_CONNECTIONS_SSL = 'FORCE_DATABASE_CONNECTIONS_SSL', GENERIC_CHART_AXES = 'GENERIC_CHART_AXES', + GLOBAL_ASYNC_QUERIES = 'GLOBAL_ASYNC_QUERIES', + LISTVIEWS_DEFAULT_CARD_VIEW = 'LISTVIEWS_DEFAULT_CARD_VIEW', + SCHEDULED_QUERIES = 'SCHEDULED_QUERIES', + SHARE_QUERIES_VIA_KV_STORE = 'SHARE_QUERIES_VIA_KV_STORE', + SQLLAB_BACKEND_PERSISTENCE = 'SQLLAB_BACKEND_PERSISTENCE', + SQL_VALIDATORS_BY_ENGINE = 'SQL_VALIDATORS_BY_ENGINE', + THUMBNAILS = 'THUMBNAILS', USE_ANALAGOUS_COLORS = 'USE_ANALAGOUS_COLORS', - DASHBOARD_EDIT_CHART_IN_NEW_TAB = 'DASHBOARD_EDIT_CHART_IN_NEW_TAB', - EMBEDDABLE_CHARTS = 'EMBEDDABLE_CHARTS', - DRILL_TO_DETAIL = 'DRILL_TO_DETAIL', - DATAPANEL_CLOSED_BY_DEFAULT = 'DATAPANEL_CLOSED_BY_DEFAULT', + UX_BETA = 'UX_BETA', + VERSIONED_EXPORT = 'VERSIONED_EXPORT', } export type ScheduleQueriesProps = { JSONSCHEMA: { diff --git a/superset/config.py b/superset/config.py index e505a8355c5a..34c36c210fb9 100644 --- a/superset/config.py +++ b/superset/config.py @@ -464,6 +464,7 @@ def _try_json_readsha(filepath: str, length: int) -> Optional[str]: "EMBEDDABLE_CHARTS": True, "DRILL_TO_DETAIL": False, "DATAPANEL_CLOSED_BY_DEFAULT": False, + "CROSS_REFERENCES": False, } # Feature flags may also be set via 'SUPERSET_FEATURE_' prefixed environment vars.