We're updating the issue view to help you get more done. 

Add more details to base /jira/rest/plugins/latest/ REST data.

Description

This base REST url returns a list of information but it should be including more. The most important field (for me) that it is currently missing is a 'version' field for each plugin:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 { "plugins": [ { "enabled": true, "links": { "self": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key", "modify": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key", "delete": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key" }, "name": "ActiveObjects Plugin - OSGi Bundle", "userInstalled": false, "static": false, "description": "An OSGi bundle that provides a service that allows plugins to persist objects using the ActiveObjects framework", "key": "com.atlassian.activeobjects.activeobjects-plugin" }, { "enabled": true, "links": { "self": "/jira/rest/plugins/1.0/jira.webfragments.admin-key", "modify": "/jira/rest/plugins/1.0/jira.webfragments.admin-key", "delete": "/jira/rest/plugins/1.0/jira.webfragments.admin-key" }, "name": "Admin Menu Sections", "userInstalled": false, "static": true, "description": "This library includes the web fragments for the administration menu which are core to Jira. It should never be disabled.", "key": "jira.webfragments.admin" },

Currently if I want to get the version of every installed plugin then I have to GET from the '/jira/rest/plugins/latest' and then do an additional GET of every 'self' rest URL that I find in that request. This is very slow.

This is the data that I get back from one example 'self' REST url:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 { "links": { "self": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key", "modify": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key", "delete": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key", "details-link": "/jira/rest/plugins/1.0/pac-details-link/com.atlassian.activeobjects.activeobjects-plugin/0.19.7" }, "key": "com.atlassian.activeobjects.activeobjects-plugin", "enabled": true, "enabledByDefault": true, "version": "0.19.7", "description": "An OSGi bundle that provides a service that allows plugins to persist objects using the ActiveObjects framework", "vendor": { "name": "Atlassian", "link": "http://www.atlassian.com/" }, "name": "ActiveObjects Plugin - OSGi Bundle", "modules": [ { "key": "dispatcher-servlet", "completeKey": "com.atlassian.activeobjects.activeobjects-plugin:dispatcher-servlet", "links": { "self": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key/dispatcher-servlet-key" }, "enabled": true, "optional": true, "name": "Dispatcher Servlet", "recognisableType": true }, { "key": "enable-html-escaping", "completeKey": "com.atlassian.activeobjects.activeobjects-plugin:enable-html-escaping", "links": { "self": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key/enable-html-escaping-key" }, "enabled": true, "optional": false, "name": "Enable HTML escaping context parameter", "description": "Enables automatic HTML escaping in Spring MVC.", "recognisableType": true }, { "key": "web-resources", "completeKey": "com.atlassian.activeobjects.activeobjects-plugin:web-resources", "links": { "self": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key/web-resources-key" }, "enabled": true, "optional": true, "name": "Web Resources", "recognisableType": true }, { "key": "ao-tables-web-item", "completeKey": "com.atlassian.activeobjects.activeobjects-plugin:ao-tables-web-item", "links": { "self": "/jira/rest/plugins/1.0/com.atlassian.activeobjects.activeobjects-plugin-key/ao-tables-web-item-key" }, "enabled": true, "optional": true, "name": "Active Objects Link", "recognisableType": true } ], "userInstalled": false, "optional": true, "unrecognisedModuleTypes": false, "configureUrl": "" }

Considering the differences between the two I would think that the following fields should also be in the base REST results:

  • version

  • vendor

  • optional

They are listed in order of importance; having the version of the plugin in that request would be very useful to anybody querying the url.

Environment

None

Testing Notes

None

Security Policy

None

Status

Assignee

Colin Chauvet

Reporter

Robert Massaioli

Labels

QA Dev

None

Needs Doc

None

Team

None

External issue ID

None

External issue ID

None

Peer Reviewer

None

Mgr Approver

None

CC

None

Product

None

Payment Model

None

Plugin Key

None

App Key

None

Most Recent Approval Ticket

None

Priority

Major