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>&nbsp;&nbsp;[![Chat
 with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=githu
 b)&nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](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

Reply via email to