The CLI export command creates a package that consists of applications and their associated blueprints and deployment profiles, external services, policies, artifact repositories, services, logical templates, and available custom tasks to export between different Application Services instances.

The export package has two formats, a compressed archive file format and an uncompressed file format. The compressed format has a .zip file type and is the default. The uncompressed format is an XML file and can have any file type. The import-package command accepts both formats.

You cannot export objects with names that contain a tab, underscore, new line, or carriage return character.

When you export an application, service, external service, script task, or policy version, all of the secure properties are removed by default to avoid exporting sensitive information such as passwords to another Application Services instance.

When you run the import command, the entire package is imported to the designated server. You cannot selectively import elements from the export package.

The export-package command

The CLI export-package command has the following format.

export-package --exportFilePath pathname --fromGroup obgname --CommandOption [[--CommandOption] ...] [--uncompressed]

The following table describes the required components of the export-package command.

CLI Command Component

Description

export-package

The export-package command name.

--exportFilePath pathname

Specifies the path name of the export package to be created. For example, --exportFilePath /home/dev/joomla.zip specifies the location and name of the joomla.zip export package. You must use the --uncompressed option when the export package has a .xml file extension.

--fromGroup busgroupname

Specifies the owning business group of the object to export. Policies are excluded. Anyone in the tenant can access a policy, so the owning business group is ignored.

--CommandOption

Specifies the type, name, and version of the object to export. For example, the command option --applicationVersion distmaps:1.0.0 specifies an application with the name distmaps and the version 1.0.0. An export-package command can have multiple command options, but must have at least one command option.

The following table describes the command options you can use when exporting one or more objects.

CLI Command Option

Description

--applicationVersion Name:VersionID

Specifies the object and version to export.

  • Name is the name of the application, service, script task, external service, policy, or artifact repository to export. A name is case-insensitive. If a name contains a space, enclose it in double quotes.

  • VersionID is the version identifier for the object in the form major . minor . micro {-qualifier}, for example 1.0.0-beta.

You can export multiple objects of the same type with a single export command by separating the version names with commas. If a version name in a list of version names contains a space, enclose the entire list in double quotes.

export-package --exportFilePath pkgname.zip --fromGroup Dev 
--applicationVersion "aname1:1.0.0,aname two:1.0.0,aname3:1.0.0"

You can also export multiple types of objects with the same export command.

export-package --exportFilePath pkgname.zip --fromGroup Dev 
--applicationVersion aname:1.0.0 --serviceVersion sname:1.0.0 --scriptTaskVersion stname:1.0.0 

The ALL keyword exports all versions of the object type in the specified business group.

export-package --exportFilePath pkgname.zip --fromGroup Dev 
--applicationVersion ALL --serviceVersion ALL --scriptTaskVersion ALL

--serviceVersion Name:VersionID

--scriptTaskVersion Name:VersionID

--externalServiceVersion Name:VersionID

--policyVersion Name:VersionID

--repoVersion Name:1.0.0

--uncompressed

Export the package in uncompressed format. Required for export packages with a .xml file extension.

Exporting dependencies

When you export an object, you also export its dependencies. For a high-level object like an application, dependencies can include services, VM templates, script tasks, and more. The export command validates the owning business group of the top-level object, but not of the dependent objects which might belong to different business groups. The command simply exports the dependent objects as part of the top-level object. For example, suppose an application belongs to the Development business group but a service in the application belongs to the Production business group. A member of the Development group can export the application which includes the service. However, a member of the Production business group can export only the service but not the application. Of course, a member of both business groups can export both objects together or independently.

Export requirements

The following table shows when you must belong to the owning business group to export or import an object.

Exported Object

Business Group Requirements

Application

Service

External Service

VmTemplate

The following tasks require membership in the owning business group.

  • Export the object.

  • Export the private object as a dependency.

The following tasks allow membership in any business group in the tenant.

  • View a shared application or service.

  • Export the shared object as a dependency.

Script Task

(always shared)

The following tasks require membership in the owning business group.

  • Export the object.

The following task allows membership in any business group in the tenant.

  • View the object.

Policy

(always shared)

The following tasks allow membership in any business group in the tenant.

  • Export the object.

Artifact repository

(always shared)

The following tasks require membership in the owning business group.

  • Export the object.