Add instance wide setting to delay full deletions of projects
Problem to solve
Currently when a user deletes a project, it is immediately executed. This can lead to problems if a deletion was accidental.
Intended users
This would benefit all users of the product.
Further details
This would enable users to cancel a deletion if necessary on their own within the configured time period.
Proposal
We should add an instance wide setting for how long to keep a deleted project around in the database and on disk. For example, an administrator could set the delay to 72 hours. When a project is deleted, a flag would be added to the database that a project is pending deletion and the time the request was initiated would be recorded. During the waiting period, the project would appear that it had been flagged for deletion in the UI and anyone with appropriate access could cancel the deletion.
Permissions and Security
The permissions to cancel the deletion should be limited to users who could initiate a delete.
What is the type of buyer?
This would be relevant to all GitLab users and administrators and should be available in Core.