Migrate a project to another Environment/Org

POST https://{controlplane_path}/api/1/rest/public/project/migrate/{project_path}      

Overview

This API migrates a SnapLogic Project from one Environment/Org to another.

If the destination project does not exist, it will be created.

Prerequisites

  • Read access to the source project
  • Write access to the target Environment/Org

Request

 POST https://{controlplane_path}/api/1/rest/public/project/migrate/{project_path}

Path parameters

Key Description
controlplane_path Required. The path to the SnapLogic control plane: elastic.snaplogic.com
For the UAT or EMEA control plane, substitute the name for elastic. For example:
  • uat.elastic.snaplogic.com
  • emea.snaplogic.com
project_path
Required. The path of the source SnapLogic project.

Format: /{env_org}/{project_space}/{project_name}

Important: The path comparison is case-sensitive.

Query parameters

None.

Request header

Basic authentication

To use basic authentication, specify Basic for authorization in the request header, add your credentials (email and password for your SnapLogic user or service account), and specify application/json for content type. For example:


Authorization: Basic {base64_encoded <email>:<password>}
Content-Type: application/json
          

Example of basic authentication using Postman:

Learn more about the basic authentication header in REST API requests.

JWT authentication

When using JWT authentication, the API request includes specific headers. In the request header, specify Bearer Token for authorization, add the token, and specify application/json for content type. These headers are automatically added when you configure bearer token authentication in your API client. The authorization header contains the word Bearer followed by a space and your JWT.


Authorization: Bearer Token {token}
Content-Type: application/json
          

Example of JWT authentication using Postman:

Request body

 {
  "dest_path" : "...",
  "asset_types" : [ ... ],
  "duplicate_check" : true,
  "async" : true
}
Key Type Description
dest_path string Required. The path to the destination Project.
asset_types array The list of asset types to migrate.
Valid values:
  • Account
  • File
  • Job (task)
  • Pipeline
  • Policy
Important:
If you are migrating or copying accounts or policies to a different environment (Org):
  • The source environment must recognize the destination as a trusted environment.
  • The destination environment must have at least the same security level as the source environment.
Learn how to add a trusted Environment/Org.
duplicate_check Boolean

If true, throws an exception if a project with the same name already exists at the destination path.

If false, overwrites any existing project with the same name at the destination path.

Default: true

async Boolean If true, the migration proceeds asynchronously.

A response is immediately returned with status_token and status_url, which you can use to check on the status of the migration (Started, Completed, or Failed).

Default: true

Response

{
    "response_map": {},
    "http_status_code": 200
}

Notes

Project Migration Guidelines

  • The first migration to the destination Environment/Org creates a new Project if there is no conflict. However, the existing Project is overwritten if there is a conflict.
  • When you include previously migrated accounts and Tasks in subsequent migrations, the API overwrites any changes that you may have manually made to the assets after the initial migration.
  • If the account name is changed after the migration, you must update all references to that account in the Pipelines.
  • Every time you migrate a Project, SnapLogic retains existing associations between Pipelines and Tasks if the associated Tasks are included in the migration.