Clone the DevOps Change Velocity application from one instance to another.

Note: Valid for Utah and later.

Base system table exclusion and preservers on global tables used in DevOps

Table name Exclude table entry present? Data preservers entry present?
For DevOps tool
sys_alias No No
http_connection Yes Yes
discovery_credentials Yes Yes
oauth_entity_profile Yes Yes
oauth_entity Yes Yes
jwt_provider Yes Yes
jwt_keystore_aliases Yes Yes
sys_certificate Yes Yes
token_verification Yes Yes
sys_user_group No No
For DevOps apps
cmdb_ci_business_app No No
cmdb_ci_sdlc_component No No
cmdb_application_product_model No No

Tools cloned from source instance

  • The tools that are cloned from source instance will have a Connection alias (sys_alias) associated with them.
  • The Connection record and the Credential record aren’t cloned over from the source instance since those tables are excluded.
  • Tool URL will be empty because the tool URL is dynamically calculated using connection record.
  • Connect test fails because there’s no active connection.
  • All the underlying entities like projects, plans, pipelines, repositories, work items, commits, pipeline execution, and so on must be present under the tool.
  • The tool's token isn’t cloned.
  • New webhook inbound events won’t automatically start to come to the cloned target instance for these tools. The tools must be reconfigured to receive new inbound events.

Manual steps on cloned tools

  1. Create Connection and Credential
    • Use the Create New Connection & Credential action present under the related links on the tool record or manually create the connection (http_connection) and credential (discovery_credentials) record and associate with the tool's connection alias.
    • Manually run the Connect action on the tool and make sure that the tool connection state is Connected.
  2. Regenerate token and configure
    • For the tools that support token-based webhook configuration, use the Regenerate token action from the Related Links on the tool record page.
    • Regenerating the token creates a new token in the token_verification table and creates webhooks for the tool and repos that have Configure status as Configured.
    • For the tools that don't support token-based webhooks, click Configure and enter the user name and password for the DevOps integration user.

Apps cloned from source instance

  • Apps that are cloned from the source instance will have all the app associations intact.
  • Business app and SDLC component links are maintained.
  • Manual steps aren't required after cloning.

Preserving data on target instance

Aim to preserve the existing tools, tool connections, and apps on the target instance.

Level 1 data preservers

Table 1. Required data preservers
Title Table name Purpose Suggested filter
DevOps tool sn_devops_tool To preserve top-level DevOps tool list. connection_state=connected^EQ to preserve all connected tools or filter on specific tool IDs.
Connection & Credential Aliases sys_alias Specified in DevOps tool to hold connection details. idLIKEdevops^ORidLIKEspoke^EQ to preserve all aliases related to DevOps.
DevOps app sn_devops_app To preserve top-level DevOps App list.

Manual steps on preserved tools after cloning

  1. Maintained by

    If the tool on the target instance had any Maintained by user groups specified before cloning, update the user groups, and set them on the tool record manually after cloning.

  2. Discover
    • Projects, pipelines, plans, and repositories aren't present for preserved tools after the clone.
    • For Azure DevOps tools, first perform Discover projects.
    • Perform Discover action on the tool or the project to bring the pipelines, plans, and repositories details.
  3. Track

    Track the required pipelines, plans, and repositories.

  4. Configure
    • Optional for tools where the webhook url holds a reference to tool sys_id only. For example, GitHub, GitLab, Jira, Bitbucket.
    • You must reconfigure Azure DevOps projects because the project sys_id has changed after rediscover.
    • Token remains the same for the tool.
    • Verify that there are no duplicate webhooks created in the third-party DevOps tool after reconfiguring.
  5. Historical import

    Use the import action or workspace to import historical data for plans, repositories, and pipelines.

Manual steps on preserved apps after cloning

  1. Maintained by

    If the app on the target instance had any Maintained by user groups specified before cloning, update the user groups, and set them on the app record manually after cloning.

  2. Associate with app

    Manually reassociate plans, repositories, and pipelines with the app.

  3. Relink to SDLC component and application model

    Manually associate the DevOps app to the SDLC component, and SDLC component to the application model.

Level 2 data preservers

Aim to preserve the data and relations under DevOps tools and DevOps apps. These preservers should be used along with the level1 preservers and manual steps.

Table 2. Required data preservers
Title Table name Purpose Suggested filter
Plugin: DevOps Data Model
Artifact Repository sn_devops_artifact_repository Top-level list of artifact repositories. Required to keep artifact repos that are associated with a preserved tool. tool=toolid^EQ, where toolid is the tool being preserved.
Artifact sn_devops_artifact Top-level list of artifacts. Required to keep artifacts that are associated with a preserved tool. artifact_repository.tool=toolid^EQ, where "toolid" is the tool being preserved.
Pipeline sn_devops_pipeline Top-level list of pipelines. Required to keep pipelines that are associated with a preserved tool. tool=toolid^EQ, where toolid is the tool being preserved.
Release Version sn_devops_plan_version Top-level list of release versions. Required to keep release versions that are associated with a preserved planning tool. plan.tool=toolid^EQ, where toolid is the tool being preserved.
Plan sn_devops_plan Top-level list of plans. Required to keep plans that are associated with a preserved planning tool. tool=toolid^EQ, where toolid is the tool being preserved.
Project sn_devops_project Top-level list of projects. Required to keep projects that are associated with a preserved tool. Currently supported by Azure DevOps. tool=toolid^EQ, where toolid is the tool being preserved.
Repository sn_devops_repository Top-level list of repositories. Required to keep repositories that are associated with a preserved coding tool. tool=toolid^EQ, where toolid is the tool being preserved.
App to Artifact Repository sn_devops_m2m_app_artifact_repository App/Artifact Repo associations. Required to keep the relationship between preserved apps and artifact repositories. app=appid^EQ, where appid is the app being preserved.
App to Artifact sn_devops_m2m_app_artifact App/Artifact associations. Required to keep the relationship between preserved apps and artifacts. app=appid^EQ, where appid is the app being preserved.
App to Plan sn_devops_m2m_app_plan App/Plan associations. Required to keep the relationship between preserved apps and plans. app=appid^EQ, where appid is the app being preserved.
Plugin: DevOps Vulnerability Integrations
DevOps Security Orchestration Relation sn_devops_security_orchestration_relation Required to keep the relation between DevOps entitiy (for example, pipeline) and a security tool. reference_table=sn_devops_pipeline

Custom integration data preservers

Aim to preserve the meta-data related to any custom tool integrations on the target instance. These data preservers can be used with both level1 and level2 preservers.

Table 3. Required data preservers
Title Table name Purpose Suggested filter
Plugin: DevOps Data Model
Custom tool Integration Capability sn_devops_integration_capability Required to keep the supported actions to integration capability mapping records of custom tool integration. tool_integration=customToolIntegrationId^EQ , where customToolIntegrationId is the sys_id of the custom tool integration.
Custom tool Integration Capability Mapping sn_devops_tool_capability_mapping Required to keep the integration capability mapping records of custom tool integration. tool_integration=customToolIntegrationId^EQ , where customToolIntegrationId is the sys_id of the custom tool integration.
Custom DevOps Tool Integration sn_devops_tool_integration Required to keep the tool integration record of custom tool integration. sys_id=customToolIntegrationId^EQ, where customToolIntegrationId is the sys_id of the custom tool integration.
Custom Tool permissions sn_devops_tool_permission Required to keep the permission check records of custom tool integration. tool_integration=customToolIntegrationId^EQ , where customToolIntegrationId is the sys_id of the custom tool integration.
Plugin: DevOps Workspace
Custom tool Onboarding task type sn_devops_ws_onboarding_task_type Required to keep the onboarding task types of custom tool integration. tool_integration=customToolIntegrationId^EQ, where customToolIntegrationId is the sys_id of the custom tool integration.

Level 3 data preservers

Aim to have all the m2m mapping intact in the target instance.
Note: The following are DevOps specific tables. If you require other data to be in place, then you can add those tables in the preservers list. For example, Change Requests.