Group and project deletion improvements
Group and project deletion improvements
Goals of this epic
- Standardize and unify the deletion experience:
- Align the user interface and workflow for deleting projects, groups, and organizations across all areas of GitLab (including the admin area).
- Migrate all deletion-related components to Vue and use standardized GitLab UI components to ensure consistency.
- Implement a uniform style and messaging for deletion actions, confirmation modals, and pending deletion states.
- Improve the delayed deletion and recovery process:
- Ensure delayed deletion works consistently for both groups and projects, including at the organization level.
- Implement better visibility and management of items pending deletion, such as adding recovery options to the group overview and admin area.
- Address issues related to the creation of new records with the same name as soft-deleted records.
- Enhance deletion logic and performance:
- Implement the ability to cancel existing CI/CD jobs and prevent new pipelines from being created during the deletion process.
- Address bugs related to projects never being deleted or deletion failing when there are too many artifacts.
- Improve the handling of deletion permissions, especially for soft-deleted records when the user who initiated the deletion no longer has the necessary permissions.
Benefits for users
- Improved user experience:
- A standardized and unified deletion experience across projects, groups, and organizations will reduce confusion and make the process more intuitive.
- Consistent UI components and messaging will help users understand the deletion process better, regardless of where they are in the GitLab interface.
- Enhanced control and management:
- Better visibility and management of items pending deletion will give users more control over their data.
- Improved recovery options for soft-deleted items will provide a safety net for accidental deletions.
- Increased reliability:
- Consistent delayed deletion for both groups and projects will ensure users have time to reconsider or recover accidentally deleted items.
- Improved performance:
- Enhancing deletion logic, such as canceling existing CI/CD jobs during deletion, will lead to faster and more efficient deletion processes.
Benefits for the product
- Reduced technical debt:
- Migrating deletion-related components to Vue and using standardized GitLab UI components will make the codebase more maintainable and easier to update in the future.
- Unifying the deletion experience across different areas of GitLab will reduce complexity in the long run.
- Improved system performance:
- Addressing issues with deletion failures and optimizing the deletion process will lead to better overall system performance and resource utilization.
- Enhanced customer satisfaction:
- A more consistent and reliable deletion process will likely lead to fewer support tickets and improved customer satisfaction.
- Addressing bugs related to failed deletions or projects never being deleted will increase trust in the system.
- Better alignment with premium features:
- Improving the delayed deletion and recovery process aligns well with GitLab's premium features.
- Easier implementation of future features:
- A standardized deletion process will make it easier to implement new features or improvements related to data management and organization structures (like the new Organizations feature).
- Improved security and compliance:
- Better handling of deletion permissions and consistent delayed deletion processes can help improve overall security and compliance with data protection regulations.
Overview of deletion interactions
Action | Project | Group | Admin Project | Admin Group | Organization project | Organization group | Status |
---|---|---|---|---|---|---|---|
Deletion action (first) | ![]() |
![]() |
|||||
Deletion action (second) | ![]() |
![]() |
|||||
Pending deletion confirmation | ![]() |
![]() |
|||||
Deletion confirmation modal | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
Deletion confirmation |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() |
![]() |
![]() |
Restore action | ![]() |
![]() |
|||||
Restore confirmation |
![]() ![]() |
![]() ![]() |
- Show closed items
Link items together to show that they're related or that one is blocking others.