[BE] Cloud Licensing - Workflow for Expired Cloud License
Summary
After a license expires, the GitLab instance becomes blocked and git features like pushes are blocked. Here's a link to the docs on this: https://docs.gitlab.com/ee/user/admin_area/license.html#what-happens-when-your-license-expires. When a customer is using a license file they will renew their subscription and upload a new license file to reinstate the features or remove the license file. This will be the same behaviour for cloud licenses, but there is currently no way for a customer to remove a cloud license from their self-managed instance. This issue is to design/investigate the removal of a cloud license. Original discussion.
Proposal
- Add a remove license button to the Admin > Subscription page for cloud licenses
- Follow the same removal flow as legacy licenses
We should be able to reuse the same endpoint for deleting legacy licenses, LicensesController#destroy. We'll need to update the Licenses::DestroyService to allow cloud licenses to be destroyed.