Applications are currently available with Portfolios in SonarQube Enterprise Edition.
But Applications are made for developers, to manage highly-coupled projects as a synthetic one. They can be useful to many companies which have solutions composed of several projects, each one being possibly maintained by a different team.
We want the feature to be available to our DE customers who already analyze branches and PRs for their projects, and not only to Enterprise Edition users.
- As a Developer Edition user who have creation permission for Applications, I want to be able to create a new application.
- Then, as the administrator of this application, I want to be able to update its definition, adding projects, and to delete it.
- As in Enterprise Edition, applications should then handled in the same way as projects.
- Applications are dynamically updated and there's no need to manually trigger their computation except when they've just defined and updated the content of their application.
- As an Enterprise Edition user, applications should keep behave the same way:
- I should still be able to add Applications to Portfolios.
- Portfolios must keep being computed dynamically or on a regular basis depending on the configuration.Note:
- In DE, we will not have an administrative page where admin users can list and manage Applications.
Applications will be created via the "+" menu in the top-right, and can be edited by using the "Application Settings > Edit Definition" menu on the Application itself.
- We do not remove Applications from the "Administration > Portfolios" page in EE.
- The frontend code will not be part of an extension in this initial step. The code will ship as part of the CE (just as we do for the Portfolio Dashboard), and will be hidden via a feature toggle.
- We will not support XML import for Applications.
- Applications show up under Project Administration
- Applications and Portfolios are tightly linked together, Applications and Portfolios being "logical subsets" of View (they're the same class; see
MMF-938, as well as this investigation on their data structure)
- Applications use the same View data model, Xml persistence, and View ce refresh tasks as Portfolios
- Frontend mainly has a Portfolio concept, and uses "if isApplication" to show/hide application specifics where needed
- Applications and Portfolios are both part of the Governance core extension, which is part of EE
- Move the Governance core extension to DE, and "disable" Portfolios via a feature toggle (similar to what we do for Multiple ALM Binding support in DE vs EE)
- Move backend logic necessary for Applications to the developer-server extension
- all webservices in applications/
- views/refresh will be copied to applications/refresh
- all common classes between both extensions need to be moved to developer-server.
- Internal endpoint views/app will be moved to metrics/user_metrics
- Keep all existing frontend code in the governance extension (needed for the Portfolio UI extension points), and copy the governance/console App (and all its dependencies) to a new app in sonar-web. Update the Application Settings menu to use this new app for the "Edit Definition" page.
- This implies the existing governance/console App will continue to exist and function for Portfolios.
- Copy the "Create Application" form modal to sonar-web.
- The modal will only show up in DE+ by checking Qualifiers availability.