dosubot[bot] commented on issue #33044: URL: https://github.com/apache/superset/issues/33044#issuecomment-3137095999
<!-- Answer --> Here's a consolidated draft of the SIP proposal for dashboard archiving, reflecting the discussion and feedback so far: --- ## [SIP-163] Archiving Dashboards ### Motivation Superset dashboards currently have two states: published and draft. However, there's a need for a third state—archived—for dashboards that are deprecated but must be retained for reference or compliance. Archiving keeps these dashboards out of default views, reducing clutter and improving performance, especially for instances with many dashboards. ### Proposed Change - Replace the boolean `published` field in the dashboard model with a string/enum `state` field supporting `draft`, `published`, and `archived`. - Add UI controls for archiving/unarchiving dashboards (e.g., via dropdown/modal), with clear status indicators and a filter to show archived dashboards in the list view. - When a dashboard is archived, it is hidden from the default list and only visible when the "archived" filter is enabled. Unarchiving returns it to `draft` status. - The status toggle between draft and published remains a quick-access button; archiving is a less prominent action, accessible via dropdown or modal. - Both "Archive" and "Delete" actions remain available. Archiving is distinct from deleting; deletion removes dashboards, while archiving hides them but retains them in the system. - Alerts/reports referencing archived dashboards are not modified, but ideally, a notification or banner should inform owners if their referenced dashboard is archived. - The design should be future-proofed for possible dashboard versioning and similar status management for charts (see [chart status PR](https://github.com/apache/superset/pull/32969)). ### New or Changed Public Interfaces - Dashboard model: replace `published` boolean with `state` enum/string (`draft`, `published`, `archived`). - REST API and UI: support for new state, archiving/unarchiving actions, and filtering by state. - Status indicators and tooltips in the dashboard list and dashboard view. - Modal/dialog for changing dashboard status, with options for publish, draft, and archive. ### Migration Plan and Compatibility - Add a migration to convert the `published` boolean to a `state` field. - Default all existing dashboards to `published` or `draft` as appropriate. - Archived dashboards default to `archived` state. - The migration should be reversible (downgrade path). ### Rejected Alternatives - Keeping separate boolean fields for each state (e.g., `published`, `archived`)—this increases complexity and is less extensible. - Replacing "Delete" with "Archive"—both actions serve different purposes and should coexist. - Implementing dashboard versioning as part of this SIP—versioning is a separate concern and may be addressed in future proposals. ### Open Questions / Next Steps - Confirm technical feasibility and blockers for migrating from boolean to enum/string for dashboard state. - Define the notification mechanism for alerts/reports referencing archived dashboards. - Coordinate with chart status/archiving efforts for consistency. --- Let me know if anything needs clarification or if you'd like to adjust any part of this draft before moving to a vote. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/d4ff9ab7-499d-4771-abc1-49b4da07d941?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/d4ff9ab7-499d-4771-abc1-49b4da07d941?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/d4ff9ab7-499d-4771-abc1-49b4da07d941?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/d4ff9ab7-499d-4771-abc1-49b4da07d941?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/d4ff9ab7-499d-4771-abc1-49b4da07d941?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/d4ff9ab7-499d-4771-abc1-49b4da07d941?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/d4ff9ab7-499d-4771-abc1-49b4da07d941?feedback_type=other)</sup> [](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=githu b) [](https://go.dosu.dev/discord-bot) [](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/issues/33044) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For additional commands, e-mail: notifications-h...@superset.apache.org