The Apprenda platform tracks only a name and description for an application. Many organizations would like to track additional metadata for the applications deployed on the platform. They may want to simply track this information for reference or they may want to leverage this data for integrating the Apprenda platform workflows with external systems. By leveraging the Custom Properties feature of the platform you can enforce additional fields of metadata to be collected for each application prior to the application being deployed.
For our example here we will set up the tracking of two additional pieces of metadata. The first will be an Application ID that will be used to map an application to an existing system that our fictional organization uses to track application development, state, and approvals across the entire organizations application portfolio. We will assume there is already a process in place for obtaining this Application ID and it is required even before development starts. We may want to leverage this Application ID within an extension at some point to contact this external system to validate that an application has been approved for promotion to production (see this post for more information). The second piece of metadata we would like to track is a Cost Center code to allow the platform owner to easily aggregate chargeback under each Cost Center.
The initial setup will be done through the SOC. Under the Configuration menu item there is a link to the Custom Properties
When you click the New Custom Property button you will be presented with the following dialog which we will use to create the Custom Property. Let’s begin by creating the Application ID property. We are going to allow custom values and say that this property applies to Applications.
After clicking Next we will be able to describe in more detail how this Custom Property applies to an Application. We want to keep the default Scope to allow the property to apply to the application as a whole. In order to expose the Custom Property to developers you need to check the box to do so. Additionally we want to make sure that it is required, which will prevent promotion until it is given a value, as well as make it editable.
After clicking Next and then Finish you will have created the Custom Property and any applications from that point on will have to define this value in order to deploy their application.
Repeat this process for the Cost Center property we would like to add as well. Afterwards you should have something like the following:
That is all the setup that is required from the platform owner. So what does this look like from the developer’s point of view now?
The Developer Portal UI will point the developer to the Custom Properties page as part of a number of different workflows in order to make sure they realize it is a necessary part of their deployment.
Once the developers get to their Custom Properties definition page they will be presented with the list of Custom Properties they are able to set. In this case both Application ID and Cost Center show up for them to enter.
Once both of these values have been entered the developer will then be able to promote their application. In this way you can see how by leveraging Custom Properties we can easily customize the metadata we require for an application to be deployed on the platform.
If you want to leverage this custom metadata from within an extension take a look at this post: Leverage Custom Metadata Within an Extension