Cannot enable or disable bundled system apps or modules
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
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
Problem
Since the release of Confluence 7.0, it is no longer possible to enable or disable individual modules of the bundled system apps through the Universal Plugin Manager.
If you have previously disabled an app module prior to upgrade it is no longer possible to re-enable it using the UI, or it may be decided to disable a certain module due to using a third-party vendor app for that function instead.
As an example:
Notifications are not sent for a particular action, such when editing pages yet still receiving notifications for pages created, moved and commented on.
A third-party app or integration is now handling the same task which is now essentially being duplicated, again notifications are a good example or profile related apps.
The following appears when you view the app and expand the individual modules:
Using the Universal Plugin Manager API is a supported method by Atlassian for modifying the apps and the individual states. See the bottom for other options.
Diagnosis
If the modules app is already known check the Universal Plugin Manager for the state
Navigate to the Universal Plugin Manager, Manage Apps > Filter on System > Expand the app > Check the module state and key name
If the module or app is unknown you can query the database for the state of all apps
Run the following database query:
select BANDANAVALUE from BANDANA where BANDANAKEY = 'plugin.manager.state.Map';
The result should be something similar to this:
<map> <entry> <string>com.atlassian.atlassian-failure-cache-plugin</string> <boolean>true</boolean> </entry> <entry> <string>confluence.extra.chart</string> <boolean>false</boolean> </entry> </map>
- From there you can determine which apps or modules are enabled or disabled and also confirm in the Universal Plugin Manager.
To confirm using the UPM API
For a full app:
Retrieve the plugin's JSON representation (with sysadmin credentials):
Please take note of the extra '-key
' string appending theplugin.key
.GET <base-URL>/rest/plugins/1.0/{plugin.key}-key
For an individual module:
Retrieve the module's JSON representation (with sysadmin credentials):
Please take note of the extra '-key
' string appending both theplugin.key
and alsomodule.key
.GET <base-URL>/rest/plugins/1.0/{plugin.key}-key/modules/{module.key}-key
Resolution
Now the app or module has been determined you can use the Universal Plugin Manager API to either enable or disable it.
Make sure to set the content type
correctly as it changes if you're disabling a full app or just an individual module:
Disabling an entire app: 'Content-Type: 'application/vnd.atl.plugins.plugin+json
'
Disabling a single module: 'Content type: 'application/vnd.atl.plugins.plugin.module+json'
How do I enable or disable a plugin?
Run the following curl command and set
enabled
totrue
orfalse.
curl --user "<USER>:<PASSWORD>" --location --request PUT '<baseURL>/rest/plugins/1.0/{plugin.key}-key' \ --header 'Content-Type: application/vnd.atl.plugins.plugin+json' \ --data-raw '{ "enabled": false }'
How do I enable or disable a single module?
Run the following curl command and set
enabled
totrue
orfalse.
curl --user "<USER>:<PASSWORD>" --location --request PUT '<baseURL>/rest/plugins/1.0/{plugin.key}-key/modules/{module.key}-key' \ --header 'Content-Type: application/vnd.atl.plugins.plugin.module+json' \ --data-raw '{ "enabled": false }'
As an example to disable the page edited notification module from the content notifications plugin you would use the following:
curl --user "<USER>:<PASSWORD>" --location --request PUT '<baseURL>/rest/plugins/1.0/com.atlassian.confluence.plugins.confluence-content-notifications-plugin-key/modules/page-edited-notification-key' \
--header 'Content-Type: application/vnd.atl.plugins.plugin.module+json' \
--data-raw '{
"enabled": false
}'
There are methods for altering the database directly to enable and disable individual apps and their modules or resetting all states back to default.
Please bear in mind, modifying the database isn't officially supported by Atlassian and there are more opportunities for errors to occur along with the column data formatting which can also cause issues.
But for further information, you can also refer to these knowledge base articles if required:
- How to manually remove malfunctioning add-ons - Disabling an Add-on from the Database
- How to Manually Change a Plugin Back to Default State Through the Database
- Certain add-ons are disabled but cannot be re-enabled through the UI
- How to reset all Confluence Data Center plugins back to their default state through the database