# Export and upload blueprints

> Export a blueprint as a file to reuse it across Cloud Management Platform (CMP) instances, or to share it in the CloudBolt Forge

---

Site [llms.txt](/llms.txt)

---

The CloudBolt Forge is a repository of sample CMP content. Exported blueprints are typically stored as zip files that contain JSON-formatted metadata about the blueprint, along with its related items and actions.

## Exporting blueprints

You can export a blueprint from the Catalog page or by using the API. To export from the Catalog page:

1. In CMP, select **Catalog**.
1. Select the blueprint you wish to export.
1. Select **Manage blueprint**.
1. On the **Overview** tab, select **Export**.
1. You are prompted to enter an optional password for secret encryption. See [Secrets stored in blueprints](#secrets-stored-in-blueprints) below. Decide whether or not you wish to provide a password (must be at least 12 characters long) and select **Next**.
1. Choose **Export blueprint in sanitized format**, or **Export with instance-specific info from this CloudBolt**. The sanitized version omits potentially sensitive information, or details that may not make sense when importing into a different instance, such as environments and groups.

### Exported blueprint contents

Exports include all build and teardown blueprint items, any discovery configurations, all blueprint-specific resource actions, and all action scripts used by those actions.

Exports also include details of any blueprint-level parameters and, if exported with instance-specific info, the enabled environments for blueprint items, along with any predefined parameters. Any global constraints on those parameters, such as a minimum, maximum, slider increment, or regex, are included as well.

Exports of blueprints that create a resource include all the necessary information about the selected [resource type](/docs/cmp/use/resources/resource-types/). During upload, the platform looks for an existing matching resource type to use, and creates a new one if none is found.

Exports also preserve any **[deployment permissions](/docs/cmp/use/blueprints/share-and-control-access/ordering-permissions/#deployment-permissions)** configured on the blueprint, so permission-controlled ordering behavior is maintained when the blueprint is imported into another CMP instance.

Check out the [CloudBolt Forge](https://github.com/CloudBoltSoftware/cloudbolt-forge) for some example blueprints.

## Uploading blueprints

Blueprints can be uploaded from the Catalog page or imported using the API, with the option to either replace the existing blueprint or create a new one.

1. In CMP, select **Catalog**.
1. Select **Upload**.
1. Select **Choose file**.
1. If the blueprint was exported with a password (see [Exporting blueprints](#exporting-blueprints) above), enter it to decrypt it upon upload.
1. Check **Replace existing** if desired. See the tip below.
1. Select **Save**.

<div class="alert alert-info" role="alert">


If you rely on the Global ID feature to reference blueprints through the API and want to maintain consistency across instances, select **Replace existing** when uploading blueprints. If **Replace existing** is **not** selected, and a blueprint already exists with the same name as the export, two blueprints with different Global IDs will exist within the same instance.
</div>


### Uploaded blueprint contents

#### Actions

Unless you choose to replace the existing blueprint, new versions of all actions are created on upload. If you upload using the **Replace existing** option, CMP looks for actions that match the attributes appropriate to that action type and uses them if they exist. Action items do not change on upload if they were updated on the exported blueprint.

Because only Super Admins can create or edit [plugins](/docs/cmp/use/orchestration/plugins/), a blueprint manager who is not a Super Admin and tries to upload a blueprint that contains one or more plugins receives a permissions error and cannot proceed.

Similarly, because users who are not Super Admins cannot create or edit shared modules, they cannot upload a blueprint that contains a shared module or that would replace an existing one (if they choose to do so), regardless of the action type. These users can still import blueprints that contain no plugins and would not create or replace shared modules. Super Admins can import all blueprints, as long as they also have blueprint management permissions.

#### Parameters

The import process looks for existing matching parameters to use, and creates new ones if none are found.

Global constraints in the export are applied to parameters the upload creates. An existing parameter keeps its global constraints unless you select **Replace existing**. Refreshing a blueprint from a remote source or the Content Library never changes them.

#### Environments

Enabled environments are imported only if an environment with the same name is found. This is due to the more complex, instance-specific, and less user-driven nature of environments.

#### Groups

Groups behave the same way as environments.

## Secrets stored in blueprints

When a blueprint is selected for export or configured to use a remote source URL, any secrets (parameter values with the type 'password') stored in that blueprint can be encrypted with a user-designated password. When the blueprint is imported, another prompt appears to enter that password, which decrypts the secrets.

This is useful for maintaining security when sharing exported objects across CMP instances, or when configuring a remote source blueprint.

If a user-designated password is not entered in the prompt, a default key is used. In that case, the exported blueprint's secrets can only be decrypted when the blueprint is uploaded to the same CMP instance from which it was exported.

<div class="alert alert-info" role="alert">


When you export or import through the API, include a `password` in the request to use a password of your own. Without one, CMP uses the default key.
</div>


<div class="alert alert-warning" role="alert">


Failed decryption or an incorrect password results in no secrets being imported. However, the blueprint itself is still uploaded to CMP.
</div>
