Cannot enable or disable bundled system apps or modules

Still need help?

The Atlassian Community is here for you.

Ask the community

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:

tip/resting Created with Sketch.

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

  1. Run the following database query:

     select BANDANAVALUE from BANDANA where BANDANAKEY = 'plugin.manager.state.Map';
  2. 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>
  3. 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:


  1. Retrieve the plugin's JSON representation (with sysadmin credentials):
    (info) Please take note of the extra '-key' string appending the plugin.key.

    GET <base-URL>/rest/plugins/1.0/{plugin.key}-key

For an individual module:


  1. Retrieve the module's JSON representation (with sysadmin credentials):
    (info) Please take note of the extra '-key' string appending both the plugin.key and also module.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?

  1. Run the following curl command and set enabled to true or false.

    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?

  1. Run the following curl command and set enabled to true or false.

    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.

(warning) 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:

DescriptionHow to use the UPM API to enable or disable system apps and modules.
ProductConfluence

Last modified on Oct 13, 2021

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.