How to Enable UPM Safe Mode using UPM REST API - Bitbucket Data Center
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Sometimes, it might be useful to set up the UPM to Safe Mode in your instance. When troubleshooting your instance, some plugins can be the culprit of issues, and you want to isolate that. For example:
While the link above explains how to do so manually, you might want to programmatically perform this action using the UPM REST API.
Solution
How can I write a script then?
Enable
You can run the following curl command to enable safe mode over the REST API, also expect the following output:
$ curl -H "Content-Type:application/vnd.atl.plugins.safe.mode.flag+json" --user admin:admin -X PUT -d '{"enabled": true, "links": {}}' http://localhost:7990/rest/plugins/1.0/safe-mode
{"enabled":true,"links":{"exit-safe-mode-restore":"/rest/plugins/1.0/safe-mode?keepState=false","exit-safe-mode-keep":"/rest/plugins/1.0/safe-mode?keepState=true"}}
Disable
You can run the following cURL call to disable the UPM Safe mode:
$ curl -H "Content-Type:application/vnd.atl.plugins.safe.mode.flag+json" --user admin:admin -X PUT -d '{"enabled": false, "links": {}}' http://localhost:7990/rest/plugins/1.0/safe-mode?keepState=true
{"enabled":false,"links":{"safe-mode":"/rest/plugins/1.0/safe-mode"}}
The value for keepState
is asking if you want to keep the current state which, because you are now in Safe mode, the current state is disabled. If you want to exit UPM Safe mode and have your plugins return to the state they were in when you entered Safe mode then you should set keepState=false
.
Check
You can always check UPM status by using the call below:
$ curl -u admin:admin http://localhost:7990/rest/plugins/latest/safe-mode
{"enabled":false,"links":{"safe-mode":"/rest/plugins/1.0/safe-mode"}}
Was this helpful?