Build automation repositories
The Itential Open Source Pre-Builts repository is no longer actively maintained. Those pre-builts have been certified up to Platform 2023.2, but can still be imported to Platform 6. We recommend transitioning to Projects for the best experience.
This guide defines the minimum requirements and process to have a functioning Pre-built Automation repository. Once configured properly, Admin Essentials is able to query the repository and incorporate and manage your custom pre-built automations.
Itential Platform supports the configuration of custom and multiple pre-built automation repositories. This means you can provide a configuration to fetch pre-built automations from your own custom repository, as opposed to previous releases where it was only possible to pull from Itential’s official open-source library.
The following conventions must be followed for Admin Essentials to properly integrate with the custom pre-built automation repository.
Structure of a pre-built automation repository
The pre-built automation repository must be in GitLab. Each pre-built automation is its own GitLab repository.
The branching strategy within each GitLab repository can be customized for development purposes; however, for a pre-built automation to properly appear in Admin Essentials, each must follow a specific branch naming convention considered as the release branches.
Pre-built automation versioning requirements
Most Itential Platform releases follow a version convention like the one below:
x.y.z-2023.1.m
The “2023.1” equates to the major release of Itential Platform and the “m” is the maintenance release.
For a pre-built automation to be consumed by an Itential Platform environment with the above version, the pre-built automation must also have that same versioning structure in the package.json file. The version uses the traditional major.minor.patch Semantic Versioning, followed by a dash (”-”) and the corresponding major release of Itential Platform (YYYY.Z), then each change to the prebuilt increments the maintenance number.
One branch can only support one version of Itential Platform. For the version checking features to function properly, these rules must be followed on creation of the pre-built automation.
Branch naming requirement for pre-built automations
The pre-built automation must also be tied to a specific release by creating a branch named with release/YYYY.Z. This versioning scheme is accomplished by having different Git branches to reflect different release versions.
For example, if you have a custom pre-built automation, the repository branches would be:
Structure of a pre-built automation
Each pre-built automation must include the following directories and files to be consumable by Itential Platform:
bundles
The bundles directory consists of a directory map of all Itential Platform component files contained within the pre-built automation. An example directory structure for a pre-built automation that contains one of each supported component type (two transformations) would be:
The JSON files under each sub-directory contain the data for that component type. These files are the exports from an Itential Platform environment.
README.md
Every pre-built automation is required to have a README.md file. This file describes the contents and use-cases of the pre-built automation and is displayed on the Admin Essentials Browse page as well as when browsing a pre-built automation’s Details.
manifest.json
The manifest.json file is a map of all components contained within the pre-built automation. It informs Itential Platform of the content along with the name, type, and location of each component in the bundle.
package.json
The package.json file follows conventions set by npm.
artifact.json
The artifact.json file is the most important aspect of the pre-built automation. It is a combination of all the files mentioned above, containing all the information needed to consume a pre-built automation into an Itential Platform environment.
The metadata property contains the package.json; manifest contains the manifest.json; and bundles is the concatenation of each of the files under the /bundles directory.
For ease of reading, the actual content for the bundles directory is represented by ellipses.