mirror of
https://github.com/apache/superset.git
synced 2026-09-04 14:31:46 +00:00
chore(tags): stop auto-generating type:/editor:/favorited_by: tags
villebro noted on #43390 that these system-generated tags appear to be unused. Confirmed: every tags list and filter in the frontend explicitly excludes non-custom tags (ChartList, DashboardList, SavedQueryList, the chart PropertiesModal, the dashboard Header), so nothing ever surfaced them to a user. What remained was pure write-side overhead: 13 SQLAlchemy event listeners across 5 models firing on every chart/ dashboard/query/dataset save and every favorite/unfavorite, plus a whole performance-optimization mixin (CustomTagsOptimizationMixin, DASHBOARD_LIST_CUSTOM_TAGS_ONLY) that existed purely to strip the resulting noise back out of dashboard-list responses. This removes the generation: - superset/tags/models.py: drop ObjectUpdater's editor:/type: generation (after_insert/after_update) and FavStarUpdater's favorited_by: generation entirely. Keeps after_delete (tagged_object cleanup applies to every tag, custom included, and nothing else removes those rows since tagged_object.object_id has no FK - see its column comment). - superset/tags/core.py: only registers the delete-cleanup listeners now. - superset/common/tags.py + the `sync_tags` CLI command: removed (the backfill path for the generation this removes). - superset/views/custom_tags_api_mixin.py, DASHBOARD_LIST_CUSTOM_TAGS_ONLY, Dashboard.custom_tags, and the schema/API plumbing built around them: removed - nothing left to optimize away once implicit tags stop accumulating. Kept for backward compatibility, since MCP's list_tags/get_tag_info tools document these tag types and upgraded deployments may already have rows of these types: the TagType enum values, the custom_tag API filter, and bulk-delete protection for non-custom tags. Docstrings updated to say these are legacy/no longer generated rather than actively implicit. Also fixes a real, currently-broken import in superset/daos/tag.py (current_user_can_modify_object doesn't live in superset.commands.tag.utils, only in superset.commands.utils) that otherwise blocks every test in this area from running at all. Filed and fixed separately as #43467; this commit will collapse away on rebase once that merges. Follow-up to #43390. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Vendored
-7
@@ -3257,12 +3257,6 @@
|
||||
"description": "Override CSS for the dashboard.",
|
||||
"type": "string"
|
||||
},
|
||||
"custom_tags": {
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/Tag1"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"dashboard_title": {
|
||||
"description": "A title for the dashboard.",
|
||||
"type": "string"
|
||||
@@ -17207,7 +17201,6 @@
|
||||
"charts": [],
|
||||
"created_on_delta_humanized": "string",
|
||||
"css": "string",
|
||||
"custom_tags": [],
|
||||
"dashboard_title": "string",
|
||||
"id": 1,
|
||||
"is_managed_externally": true,
|
||||
|
||||
Reference in New Issue
Block a user