Configuring UPM plugin signature check
Starting with version 7.1, Atlassian Universal Plugin Manager (UPM) is rolling out a useful feature that lets you verify the integrity and origin of plugin and application files using a digital signature. This enhancement not only aims to securely re-enable the app upload feature but also improves security overall, as Marketplace apps will now need to come with a signature too.
On this page:
Configuration
This document explains how to configure the app signing feature and how its enablement can change UPM's behavior.
The app signing feature is disabled by default, but it will be enabled by default in a future version of UPM.
Configuration elements
The configuration lives in a folder that we will refer to as upm configuration folder
in this document.
In the upm configuration folder
, UPM will look for:
- an optional properties file called
upm.properties
- a folder called
truststore
that must contain the certificates issued from Atlassian and app vendors
To ease adoption, this feature can live without any changes to the current product configuration.
Configuration folder location
Apart from the configuration folder location, which requires a restart if you don’t want to use the default location, the configuration folder can be created or updated while the product is running.
The Manage apps page displays the location and safety status of the configuration folder.
The upm configuration folder
location is resolved in the following order:
- Get the value of
atlassian.upm.configuration.directory
system property, which defaults toupmconfig
. - If this value is an absolute path, then it is used as a configuration folder.
- If it is a relative path, then it is resolved relatively from:
- the product’s Shared home directory if it is defined
- the product’s home directory if it is defined
- the current directory (depends on the running process)
If the configuration folder does not exist, UPM will use the default configuration with an empty truststore
. If the feature is enabled with an empty truststore
, all signature checks will fail.
Configuration folder permissions and safety check
The configuration
and truststore
folders must meet some permissions and ownership requirements:
- The user running the product must NOT own the configuration folder or any file or folder it contains.
- The user running the product must NOT have write privileges on the configuration folder or any file or folder it contains.
If UPM’s Safety Check detects that these conditions are not met when installing an app, the installation will fail, a warning message will be logged, and an audit log entry will be added.
Configuration properties
Configuration properties must be added in a file called upm.properties
located in the configuration folder.
The table below describes the supported configuration properties.
Key | Description |
---|---|
This property will be deprecated after the grace period. | Enables the feature
|
| Disables the feature The default value will change at the end of the grace period.
|
| Disables app signature check for uploaded apps This applies if the feature is globally enabled:
|
| Disables app signature check for apps installed from the Marketplace This applies if the feature is globally enabled:
|
| Disables app signature check for apps installed by the PIP directory scanner This applies if the feature is globally enabled:
|
| Disables app signature check for UPM self-installation. This applies if the feature is globally enabled:
|
This might look a bit complex, but the intent is to minimize the configuration effort and make it explicit:
- before the end of the grace period, the feature is disabled and the admin has to enable it
- after the grace period, the feature will be enabled by default and the admin will have to edit the configuration to disable it
Consequences on other UPM configuration
The app signing feature has been added to re-enable app installation by uploading files to the platform.
By default, the Upload app button was disabled in recent product versions, and administrators could re-enable it by setting the upm.plugin.upload.enabled
system property to true
.
The app signature check feature has an impact on this as shown in the following table.
system property value | plugin signature check feature | plugin upload feature |
---|---|---|
true | enabled | enabled |
true | disabled | enabled with warnings |
false | disabled | disabled |
false | enabled | disabled |
unspecified | enabled | enabled |
unspecified | disabled | disabled |