blob: 0415ecb12b9cff25f6d63ebe51550c0e86f7540a [file] [log] [blame]
[[_wb.assetmanagement]]
= Asset Management
[[_wb.assetmgmtoverview]]
== Asset Management Overview
This section of the documentation describes the main features included that contribute to the Asset Management functionality provided in the KIE Workbench and KIE Drools Workbench.
All the features described here are entirely optional, but the usage is recommended if you are planning to have multiple projects.
All the Asset Management features try to impose good practices on the repository structure that will make the maintainace, versioning and distribution of the projects simple and based on standards.
All the Asset Management features are implemented using jBPM Business Processes, which means that the logic can be reused for external applications as well as adapted for domain specific requirements when needed.
[NOTE]
====
You must set the "kiemgmt" role to your user to be able to use the Asset Management Features
====
[[_wb.assetmgmtmanagedvsunmanaged]]
== Managed vs Unmanaged Repositories
Since the creation of the assets management features repositories can be classified into Managed or Unmanaged.
[[_wb.assetmgmtmanagedrepositories]]
=== Managed Repositories
All new assets management features are available for this type of repositories.
Additionally a managed repository can be "Single Project" or "Multi Project".
A "Single Project" managed repository will contain just one Project.
And a "Multi Project" managed repository can contain multiple Projects.
All of them related through the same parent, and they will share the same group and version information.
[[_wb.assetmgmtunmanagedrepositories]]
=== Unmanaged Repositories
Assets management features are not available for this type or repositories and they basically behaves the same as the repositories created with previous workbench versions.
[[_wb.assetmgmtprocesses]]
== Asset Management Processes
There are 4 main processes which represent the stages of the Asset Management feature: Configure Repository, Promote Changes, Build and Release.
[[_wb.assetmgmtconfigureprocess]]
=== Configure Repository
The Configure Repository process is in charge of the post initialization of the repository.
This process will be automatically triggered if the user selects to create a Managed Repository on the New repository wizzard.
If they decide to use the governance feature the process will kick in and as soon as the repository is created.
A new development and release branches will be created.
Notice that the first time that this process is called, the master branch is picked and both branches (dev and release) will be based on it.
image::Workbench/AssetManagement/asset-mgmt-create-repo.png[align="center"]
By default the asset management feature is not enabled so make sure to select Managed Repository on the New Repository Wizzard.
When we work inside a managed repository, the development branch is selected for the users to work on.
If multiple dev branches are created, the user will need to pick one.
[[_wb.assetmgmtpromoteprocess]]
=== Promote Changes Process
When some work is done in the developments branch and the users reach a point where the changes needs to be tested before going into production, they will start a new Promote Changes process so a more technical user can decide and review what needs to be promoted.
The users belonging to the "kiemgmt" group will see a new Task in their Group Task List which will contain all the files that had being changed.
The user needs to select the assets that will be promoting via the UI.
The underlying process will be cherry-picking the commits selected by the user to the release branch.
The user can specify that a review is needed by a more technical user.
This process can be repeated multiple times if needed before creating the artifacts for the release.
image::Workbench/AssetManagement/asset-mgmt-promote.png[align="center"]
[[_wb.assetmgmtbuildprocess]]
=== Build Process
The Build process can be triggered to build our projects from different branches.
This allows us to have a more flexible way to build and deploy our projects to different runtimes.
image::Workbench/AssetManagement/asset-mgmt-build.png[align="center"]
[[_wb.assetmgmtreleaseprocess]]
=== Release Process
The release process is triggered at any time when the user decided that it is time to generate a release of the project that he/she is working on.
This process will build the project (calling the Build Process) and it will update all the maven artifacts to the next version.
image::Workbench/AssetManagement/asset-mgmt-release.png[align="center"]
[[_wb.assetmgmtusageflow]]
== Usage Flow
This section describes the common usage flow for the asset management features showing all the screens involved.
The first contact with the Asset Management features starts on the Repository creation.
image::Workbench/AssetManagement/new-repo-1page-wizzard.png[align="center"]
If the user chooses to create a Managed Respository a new page in the wizzard is enabled:
image::Workbench/AssetManagement/new-repo-2page-wizzard.png[align="center"]
When a managed repository is created the assets management configuration process is automatically launched in order to create the repository branches, and the corresponding project structure is also created.
[[_wb.assetmgmtrepositorystructure]]
== Repository Structure
Once a repository has been created it can be managed through the Repository Structure Screen.
To open the Repository Structure Screen for a given repository open the Project Authoring Perspective, browse to the given repository and select the "Repository -> Repository Structure" menu option.
.Repository Structure Menu
image::Workbench/AssetManagement/repo-structure-screen-menu.png[align="center"]
[[_wb.assetmgmtrepositorystructuremanagedsingle]]
=== Single Project Managed Repository
The following picture shows an example of a single project managed repository structure.
.Single Project Managed Repository
image::Workbench/AssetManagement/repo-structure-screen-managed-single.png[align="center"]
[[_wb.assetmgmtrepositorystructuremanagedmulti]]
=== Multi Project Managed Repository
The following picture shows an example of a multi project managed repository structure.
.Multi Project Managed Repository
image::Workbench/AssetManagement/repo-structure-screen-managed-multi.png[align="center"]
[[_wb.assetmgmtrepositorystructureunmanaged]]
=== Unmanaged Repository
The following picture shows an example of an unmanaged repository structure.
.Unmanaged Repository
image::Workbench/AssetManagement/repo-structure-screen-unmanaged.png[align="center"]
[[_wb.assetmgmtmanagedrepositoryoperations]]
== Managed Repositories Operations
The following picture shows the screen areas related to managed repositories operations.
.Managed Repositories Operations
image::Workbench/AssetManagement/repo-structure-screen-operation-areas.png[align="center"]
[[_wb.assetmgmtmanagedrepositoryoperationsbranchselector]]
=== Branch Selector
The branch selector lets to switch between the different branches created by the Configure Repository Process.
.Branch Selector
image::Workbench/AssetManagement/repo-structure-screen-operation-branch-selector.png[align="center"]
[[_wb.assetmgmtmanagedrepositoryaddprojecteditdelete]]
=== Project Operations
From the repository structure screen it's also possible to create, edit or delete projects from current repository.
.Add Project to current structure
image::Workbench/AssetManagement/repo-structure-screen-operation-add-project.png[align="center"]
.Edit/Delete projects from current structure
image::Workbench/AssetManagement/repo-structure-screen-operation-edit-delete-project.png[align="center"]
[[_wb.assetmgmtmanagedrepositorycallprocess]]
=== Launch Assets Management Processes
The assets management processes can also be launched from the Project Structure Screen.
.Launch Assets Management Processes
image::Workbench/AssetManagement/repo-structure-screen-operation-lauch-processes.png[align="center"]
[[_wb.assetmgmtmanagedrepositorycallconfigureprocess]]
==== Launch the Configure Repository Process
Filling the parameters bellow a new instance of the Configure Repository can be started.
(see Configure Repository Process)
.Configure Repository Process Parameters
image::Workbench/AssetManagement/repo-structure-screen-operation-launch-configure-process.png[align="center"]
[[_wb.assetmgmtmanagedrepositorycallpromoteprocess]]
==== Launch the Promote Changes Process
Filling the parameters bellow a new instance of the Promote Changes Process can be started.
(see Promote Changes Process)
.Promote Changes Process Parameters
image::Workbench/AssetManagement/repo-structure-screen-operation-launch-promote-changes-process.png[align="center"]
[[_wb.assetmgmtmanagedrepositorycallreleaseprocess]]
==== Launch the Release Process
Filling the parameters bellow a new instance of the Release Process can be started.
(see Release Process)
.Release Process Parameters
image::Workbench/AssetManagement/repo-structure-screen-operation-launch-release-process.png[align="center"]