Configure Change Management Systems
FlexDeploy change management systems integration (out of box or custom) can be configured globally for use by various Projects or Pipelines. Configurations can be overridden at the Application, Folder or Pipeline (external approval gate) levels as necessary.
To configure the integration at the Global level, select the Administration->Change Management Systems menu item.
Select a particular change management system by clicking its name, or by selecting the row and clicking on the Edit button. To create a new Change Management System click the New button.
You can the update name, description and Java implementation for custom integrations, whereas, only the description may be modified for out of the box integrations).
Field Name | Required | Description |
---|---|---|
Id | Yes | System generated identifier (read-only). |
Name | Yes | Name of the change management system. (read-only for out of box integrations) |
Description | No | Description of the change management system. |
Java Implementation | Yes | Java Implementation class for the change management integration. (read-only for out of box integrations) |
Ticket Fields
A change management "ticket" is the generic term for a change object, which may be referred to as a "change request" or another term by a particular provider. Every provider has different fields (or attributes) within the ticket, and most often supports decorating the object with your own custom fields. The Ticket Fields tab provides the metadata data describing the relevant fields for a the provider implementation.
To add a new ticket field, click on the Create button and enter the required Field Code, Display Name, Description, Data Type, and whether or not a value is required in order to create a new CMS Ticket.
For ServiceNow, BMC Remedyforce, Freshworks Freshservice, and Jira ITSM, there are a number of out of the box fields which are made available for you by default. These included fields cannot be removed.
The Field Code must match the unique identifier as defined by the provider (i.e. JSON attribute names used in the provider's REST API).
@Since 5.5.0.1, dot-notated fields are supported. This allows for setting fields that are not at the root JSON level in the provider's REST API. At this time, using dot notation to access JSON arrays is not supported.
Example: Adding "fields.customfield_10102.name" to Jira ITSM as a custom field allows accessing and setting the name attribute within the customfield_10102 JSON object while creating a change ticket.
ServiceNow Ticket Fields
Field Code | Display Name | Description | Data Type | Required |
---|---|---|---|---|
short_description | Short Description | A short description for the change ticket | String | No |
description | Description | A description for the change ticket | String | No |
state | State | String | No | |
sys_class_name | Sys Class Name | String | No | |
approval | Approval | String | No | |
start_date | Planned Start Date | String | No | |
end_date | Planned End Date | String | No | |
closed_by | Closed By | String | No | |
impact | Impact | String | No | |
priority | Priority | String | No | |
risk | Risk | String | No | |
requested_by | Requested By | String | No | |
assignment_group | Assignment Group | String | No | |
assigned_to | Assigned To | String | No | |
category | Category | String | No | |
cmdb_ci | CI | String | No | |
type | Type | String | No |
BMC Remedyforce Ticket Fields
Field Code | Display Name | Description | Data Type | Required |
---|---|---|---|---|
BMCServiceDesk__Change_Description__c | Change Description | A description for the change ticket | String | No |
BMCServiceDesk__Reason_for_Change_Details__c | Change Details |
Freshworks Freshservice Ticket Fields
Field Code | Display Name | Description | Data Type | Required |
---|---|---|---|---|
subject | Subject | A subject for the change ticket | String | No |
description | Description | A description for the change ticket | String | No |
change_type | Change Type | Long | Yes | |
status | Status | Long | Yes | |
priority | Priority | Long | Yes | |
impact | Impact | Long | Yes | |
requester_id | Requester Id | Long | Yes | |
risk | Risk | Long | Yes | |
planned_start_date | Start Date | String | Yes | |
planned_end_date | End Date | String | Yes |
Jira ITSM Ticket Fields
Field Code | Display Name | Description | Data Type | Required |
---|---|---|---|---|
fields.summary | Summary | Summary of the change | String | Yes |
fields.project.key | Project Key | Key of project the change is in | String | Yes |
fields.issuetype.name | Issue Type | Type of issue for ticket | String | Yes |
fields.description | Description | Description for the change | String | No |
fields.priority.name | Priority | Priority of the change | String | No |
Default Configuration
The Default Configuration tab allows global configuration for the CMS integration, which defines whether a ticket is required for deployment requests or whether tickets should be automatically created. When creating tickets automatically as part of a deployment request, default values can be provided for one or more of the ticket fields.
The Default Configuration tab provides configuration for the Global scope, meaning it applies to all deployment system-wide. One or more of these options may be selected.
- Require Change Ticket for Deployment - When submitting deployment requests, a user is required to specify a valid Change Management Ticket number.
- Create Change Ticket on Deployment - When a deployment request is submitted, a Change Ticket is automatically created within Change Management System.
When choosing Create Change Ticket on Deployment you have the option of providing a Groovy expression to calculates values for specific fields using a number of context variables.
Since the field values are Groovy expressions, String literals must be entered in double quotes.
All Groovy script fields have access to the following variables, and can be selected using the drop-down on the right side of the field:
Field | Description |
---|---|
EnvironmentName | The name of the target environment. |
PackageName1 | The package name requested for deployment. Same as ProjectVersion for full deployments. |
ProjectName1 | The name of the project requested for deployment. |
ProjectVersion1 | The project version which was requested for deployment. |
StreamName1 | The stream from which the project version was built from. |
WorkflowRequestor1 | The FlexDeploy username which requested the deployment. |
ReleaseName2 | The name of the release being executed. |
1 Variables are only applicable when the ticket scope is Project/Package
2 Variables are only applicable when execution occurs within the context of a release
Example Groovy expressions
- "Deployment request to " + EnvironmentName + " for project " + ProjectName + " by " + WorkflowRequestor
- "Deployment for " + ProjectName + " failed in " + EnvironmentName
- "Simple String"
If you will be creating CMS Tickets per project/package in a pipeline external approval gate, EnvironmentName is the only Groovy variable that is applicable since the context is not related to a particular workflow request. The other variables will resolve to an empty String in that case.
Environment Configuration
Likewise, the Environment Configuration tab allows overriding these settings globally, by environment (e.g require a change ticket for Production deployments only). Click the Add button to add a new configuration, and select an environment. This overrides any configuration on the Default Configuration tab for the selected environment.
The remaining configuration options are exactly as defined for the Default Configuration. Optionally, click the Add button again to add configuration for other environments.
Configuration use within Pipeline
The Require Change Ticket for Deployment option, for both Default Configuration and Environment Configuration, is not applicable for CMS integration within a Pipeline. That configuration is implied by the presence of an External Approval Gate within a pipeline stage. The Create Ticket checkbox of the External Approval gate is defaulted based on the global configuration.
Properties
The Properties tab lists the metadata which is required for this Change Management System. Values for these properties will be provided when you create a Change Management Instance in the topology. See Creating/Editing a Change Management Instance, Property metadata is read-only for out of box integrations.
ServiceNow Properties
Key Name | Display Name | Description | Data Type | Required | Encrypted |
---|---|---|---|---|---|
SN_URL | ServiceNow URL | ServiceNow URL | String | Yes | No |
SN_PORT | ServiceNow Port | ServiceNow Port | String | No | No |
SN_USER_NAME | ServiceNow User Name | ServiceNow User Name | String | Yes | No |
SN_PASSWORD | ServiceNow Password | ServiceNow Password | String | Yes | Yes |
SN_APPROVED_SCRIPT | Approved Check Script | ServiceNow approved check Groovy script | String | No | No |
SN_REJECTED_SCRIPT | Rejected Check Script | ServiceNow rejected check Groovy script | String | No | No |
SN_DONT_POLL | Don't poll | Disable automatic polling (every minute) of ServiceNow tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy. | Boolean | No | No |
BMC Remedyforce Properties
Key Name | Display Name | Description | Data Type | Required | Encrypted |
---|---|---|---|---|---|
FDBMCHR_URL | BMC Helix Remedyforce URL | BMC Helix Remedyforce Instance URL (https://<instance_name>.salesforce.com) | String | Yes | No |
FDBMCHR_USER_NAME | BMC Helix Remedyforce User Name | BMC Helix User Name | String | Yes | No |
FDBMCHR_PASSWORD | BMC Helix Remedyforce Password | BMC Helix Remedyforce Password | String | Yes | Yes |
FDBMCHR_CLIENT_ID | Client Id | Connected App Client Id | String | Yes | Yes |
FDBMCHR_CLIENT_SECRET_ID | Client Secret | BMC Helix Remedyforce Client Secret | String | Yes | Yes |
FDBMCHR_APPROVED_SCRIPT | Approved Check Script | BMC Helix approved check Groovy script | String | No | No |
FDBMCHR_REJECTED_SCRIPT | Rejected Check Script | BMC Helix rejected check Groovy script | String | No | No |
FDBMCHR_DONT_POLL | Don't poll | Disable automatic polling (every minute) of BMC Helix tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy. | Boolean | No | No |
FDBMCHR_SOBJECT_URL | Specified Object URL | Object Name URL (/services/data/vXX.X/sobjects/{OBJECT_NAME}) | String | Yes | No |
FDBMCHR_INCIDENT_CATEGORY_ID | Category Id | Category FK Id (e.g a216g0000005NvDAAU) | String | Yes | No |
Freshworks Freshservice Properties
Key Name | Display Name | Description | Data Type | Required | Encrypted |
---|---|---|---|---|---|
FDFS_URL | Freshservice URL | Freshservice URL (https://<your_helpdesk_domain_name>.freshservice.com) | String | Yes | No |
FDFS_API_KEY | Freshservice API Key | API key for Freshservice | String | Yes | Yes |
FDFS_APPROVED_SCRIPT | Approved Check Script | Freshservice approved check Groovy script | String | No | No |
FDFS_REJECTED_SCRIPT | Rejected Check Script | Freshservice rejected check Groovy script | String | No | No |
FDFS_DONT_POLL | Don't poll | Disable automatic polling (every minute) of Freshservice tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy. | Boolean | No | No |
FDFS_REQUESTER_ID | Freshservice Requester Id | Freshservice agent id for API access(should be a number) | String | No | No |
Jira ITSM Properties
Key Name | Display Name | Description | Data Type | Required | Encrypted |
---|---|---|---|---|---|
FDJIRAITSM_URL | Jira URL | Jira URL (http://myjira.atlassian.net) | String | Yes | No |
FDJIRAITSM_USER_NAME | Jira User | Jira User Name | String | Yes | No |
FDJIRAITSM_API_TOKEN | Jira API Token | API token for Jira | String | Yes | Yes |
FDJIRAITSM_TICKET_URL_PATTERN | Jira Ticket URL Pattern | Jira Ticket URL Pattern (/browse/{JIRA_CHANGE_NUMBER}) | String | Yes | No |
FDJIRAITSM_TICKET_REST_GET_PATTERN | Jira GET Rest API Pattern | Jira Rest API Pattern for GET request (/rest/api/2/issue/{JIRA_CHANGE_NUMBER}) | String | Yes | No |
FDJIRAITSM_TICKET_REST_POST_PATTERN | Jira POST Rest API Pattern | Jira Rest API Pattern for POST request (/rest/api/2/issue) | String | Yes | No |
FDJIRAITSM_APPROVED_SCRIPT | Approved Check Script | Jira approved check Groovy script | String | No | No |
FDJIRAITSM_REJECTED_SCRIPT | Rejected Check Script | Jira rejected check Groovy script | String | No | No |
FDJIRAITSM_DONT_POLL | Don't poll | Disable automatic polling (every minute) of Jira tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy. | Boolean | No | No |
Groovy API
All out of the box Change Management Systems are implemented using Java. For custom integrations, either Java or Groovy can be used to provide the implementation. The Groovy API tab is enabled for custom integrations if no Java Implementation Class is provided. On this tab you can enter the Groovy script defining the implementation. A template script will be generated and should be modified according to your custom implementation.
See Custom Change Management System for details on creating your own custom integration using Java or Groovy.
- style