UAC Utility: Jobs As Code (JaC)
Disclaimer
Your use of this download is governed by Stonebranch’s Terms of Use, which are available at Stonebranch Integration Hub - Terms of Use.
Overview
Jobs-as-code is an approach to automating software delivery pipelines in which the job configuration is managed as code. This approach allows developers to manage job configurations like their application code complete with version control, testing, and continuous integration.
Whether you create your Universal Automation Center (UAC) job definitions using the drag-and-drop designer or as code in a development environment, the UAC jobs-as-code solution provides guidance and tools to integrate those definitions with a Git repository.
Version Information
Template Name | Extension Name | Version | Status |
---|---|---|---|
Jobs As Code | ue-jobs-as-code | 2 (Current 2.1.0) | Fixes and new features are introduced. Compatibility starts from UAC/UAG 7.4.0.0 onwards. |
Jobs As Code | ue-jobs-as-code | 1 | Hot Fixes Only (Until UAC 7.3's End of Support). |
Refer to Changelog for version history information.
Version 2.0.0 introduces new features compatible only with Universal Controller and Universal Agent of version 7.4 onwards. Therefore version 2.0.0 should not be installed if your Universal Controller & Agent is of version less than 7.4
Customers are encouraged to upgrade their Universal Agents to 7.4 to benefit from features introduced in version 2.0.
Software Requirements
This integration requires a Universal Agent and a Python runtime to execute the Universal Task.
Area | Description |
---|---|
Python Version | Requires Python version >=3.7.16. Tested with Python 3.7.16 and 3.11.6 . |
Universal Agent | Both Windows and Linux agents are supported:
|
Universal Controller | Universal Controller Version >= 7.4.0.0 |
Network and Connectivity | This integration needs outbound HTTPS connectivity with GitLab, GitHub, or Bitbucket Cloud for exporting and importing UAC Definitions in addition to HTTPS outbound connectivity to the Universal Controller for retrieving the UAC Definitions and importing them from Git. |
GitLab | Supported editions:
|
GitHub | Supported plans:
|
Bit Bucket | Support plans:
|
Azure DevOps | Supported plans:
|
Key Features
Feature | Description |
---|---|
List UAC Definitions | Query UAC definitions prior to running an actual export to Git, to validate the selection criteria, without any write operations in the target repository. This feature should provide a list of UC definitions that can then be exported to a Git repository. |
Export to Git Repository | Export selected UAC Definitions to the selected Git Repository. By using this feature, the UAC user will be able to export the selected UAC Definitions to an external Git repository. After the export, this repository can be used as a backup or as a basis for developer collaboration on top of a source version control system. |
Import from Git Repository | Import selected UAC Definitions. stored already in Git, back to the selected Universal Controller. This feature provides the opportunity for restoration of the UC server (recovery scenarios) or for updating UAC Definitions. For UC version 7.3, or higher, the import feature can be triggered by using webhooks. |
Feature Flags
There are cases where some functionalities could become deprecated and new features are introduced in a step-wise approach to inform customers early enough to take the necessary steps given potential future breaking changes. The activation/deactivation of those features is controlled by Feature Flags. Not all features are entering this lifecycle approach, but when this is applicable, related feature flags are documented. The Feature State Transition diagram and related information is presented below:
The following features are subject to this lifecycle approach
Feature Description | Feature State History | Information |
---|---|---|
Disable the default commit message prefix. |
| This is a stable feature. To enable the feature set Environment variable UE_FF_DISABLE_DEFAULT_COMMIT_PREFIX=True. Any other value or not setting this environment variable, means that the feature is not activated. |
Supported Actions
Action: List UAC Definitions
Query UAC definitions prior to running an actual export to Git, to validate the selection criteria, without any write operations in the target repository. This feature should provide a list of UC
definitions that can later be exported to a Git repository.
Configuration examples
User Scenario: Query all UAC Definitions that are stored in UAC except Scripts and Custom Days, without a proxy connection. | User Scenario: Query all UAC Definitions that are part of a workflow with the name 'test-workflow', with a proxy connection. |
Action Output
Output Type | Description | Example |
---|---|---|
EXTENSION | Standard Universal Extension format The extension output follows the standard Extension output format, providing:
| |
STDOUT | All definitions matched the selection criteria, in table format. |
Action: Export to Git Repository
Export selected UAC Definitions to the selected Git Repository. By using this feature, the UAC user can export the selected UAC Definitions to an external Git repository. After the export, this repository can be used as a backup or as a basis for developer collaboration on top of a source control versioning system.
Configuration examples
User Scenario: Export to Gitlab UAC Definitions contained in Bundle with name uc_bundle except for Email and Peoplesoft Connections. The selected definitions will be stored under the "/export folder" under the "export/7.3" branch in .yaml format. | User Scenario: Export to Azure DevOps UAC Definitions. Organization and repository names must be included in the Git Service Provider |
Action Output
Output Type | Description | Example |
---|---|---|
EXTENSION | The extension output follows the standard Extension output format, providing:
| |
STDOUT | All definitions matched the selection criteria, in table format. |